diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js b/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js index 0be8a81df..d2c92ca58 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js @@ -4,7 +4,11 @@ select table_name as "pure_name", column_name as "column_name", is_nullable as "is_nullable", - data_type as "data_type", + case + when (data_type = 'USER-DEFINED' OR data_type = 'ARRAY') then udt_name::regtype::text + else data_type + end + as "data_type", character_maximum_length as "char_max_length", numeric_precision as "numeric_precision", numeric_scale as "numeric_scale", @@ -20,4 +24,4 @@ where ('views:' || table_schema || '.' || table_name) =OBJECT_ID_CONDITION ) order by ordinal_position -`; \ No newline at end of file +`; diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js b/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js index 700405dac..b8ad3691d 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js @@ -2,7 +2,7 @@ module.exports = ` select infoTables.table_schema as "schema_name", infoTables.table_name as "pure_name", ( select md5(string_agg( - infoColumns.column_name || '|' || infoColumns.data_type || '|' || infoColumns.is_nullable::varchar(255) || '|' || coalesce(infoColumns.character_maximum_length, -1)::varchar(255) + infoColumns.column_name || '|' || case when (infoColumns.data_type = 'USER-DEFINED' OR infoColumns.data_type = 'ARRAY') then infoColumns.udt_name::regtype::text else infoColumns.data_type end || '|' || infoColumns.is_nullable::varchar(255) || '|' || coalesce(infoColumns.character_maximum_length, -1)::varchar(255) || '|' || coalesce(infoColumns.numeric_precision, -1)::varchar(255) , ',' order by infoColumns.ordinal_position )) as "hash_code_columns"