From 1e818e7756f0d7e5c9a185f65a1bae80a19ac19a Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:13:36 +0300 Subject: [PATCH 1/7] Postgresql - Show proper types for Composite Types, Enums and Arrays --- plugins/dbgate-plugin-postgres/src/backend/sql/columns.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js b/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js index 0be8a81df..66187251a 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", From 3cd070e211513bf433df5e8bec7b295241c1d497 Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:21:06 +0300 Subject: [PATCH 2/7] Update columns.js --- .../dbgate-plugin-postgres/src/backend/sql/columns.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js b/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js index 66187251a..943fd4770 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js @@ -4,10 +4,10 @@ select table_name as "pure_name", column_name as "column_name", is_nullable as "is_nullable", - case - when (data_type = 'USER-DEFINED' OR data_type = 'ARRAY') then udt_name::regtype::text - else data_type - end + 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", @@ -24,4 +24,4 @@ where ('views:' || table_schema || '.' || table_name) =OBJECT_ID_CONDITION ) order by ordinal_position -`; \ No newline at end of file +`; From 4b2e28483b793cc0ade255fc811540080374b4a6 Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:30:09 +0300 Subject: [PATCH 3/7] Updated columns.js --- plugins/dbgate-plugin-postgres/src/backend/sql/columns.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js b/plugins/dbgate-plugin-postgres/src/backend/sql/columns.js index 943fd4770..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,7 @@ select table_name as "pure_name", column_name as "column_name", is_nullable as "is_nullable", - case + case when (data_type = 'USER-DEFINED' OR data_type = 'ARRAY') then udt_name::regtype::text else data_type end From 4d8c62f3f5d2ceb18be8948ac68bd5a2cd96752b Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:31:25 +0300 Subject: [PATCH 4/7] updated tableModifications.js --- .../src/backend/sql/tableModifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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" From e4ed1637238d3e59f8b037b6f6d0035636ccb3ad Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:33:47 +0300 Subject: [PATCH 5/7] updated tableModifications.js --- .../src/backend/sql/tableModifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js b/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js index b8ad3691d..2afe64b5f 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 || '|' || 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) + 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 || '|' coalesce(infoColumns.character_maximum_length, -1)::varchar(255) || '|' || 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" From b9a974ca278993ef8fba591ec6672c583cce1d7f Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:37:14 +0300 Subject: [PATCH 6/7] updated tableModifications.js --- .../src/backend/sql/tableModifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js b/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js index 2afe64b5f..b563ad079 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 || '|' || case when (infoColumns.data_type = 'USER-DEFINED' OR infoColumns.data_type = 'ARRAY') then infoColumns.udt_name::regtype::text else infoColumns.data_type end || '|' coalesce(infoColumns.character_maximum_length, -1)::varchar(255) || '|' || 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 || '|' || coalesce(infoColumns.character_maximum_length, -1)::varchar(255) || '|' || 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" From 26a46d903726bebcb8976ee7c4f852ef763b4a00 Mon Sep 17 00:00:00 2001 From: Bare7a Date: Sat, 6 Apr 2024 17:39:58 +0300 Subject: [PATCH 7/7] updated tableModifications.js --- .../src/backend/sql/tableModifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js b/plugins/dbgate-plugin-postgres/src/backend/sql/tableModifications.js index b563ad079..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 || '|' || case when (infoColumns.data_type = 'USER-DEFINED' OR infoColumns.data_type = 'ARRAY') then infoColumns.udt_name::regtype::text else infoColumns.data_type end || '|' || coalesce(infoColumns.character_maximum_length, -1)::varchar(255) || '|' || 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"