diff --git a/plugins/dbgate-plugin-postgres/src/backend/Analyser.js b/plugins/dbgate-plugin-postgres/src/backend/Analyser.js index f97795fa3..5ed0a3c39 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-postgres/src/backend/Analyser.js @@ -138,7 +138,9 @@ class Analyser extends DatabaseAnalyser { : null; this.feedback({ analysingMessage: 'Loading routines' }); - const routines = await this.analyserQuery('routines', ['procedures', 'functions']); + const routines = await this.analyserQuery('routines', ['procedures', 'functions'], { + $typeAgg: this.driver.dialect.stringAgg ? 'string_agg' : 'max', + }); this.feedback({ analysingMessage: 'Loading indexes' }); const indexes = this.driver.__analyserInternals.skipIndexes diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/primaryKeys.js b/plugins/dbgate-plugin-postgres/src/backend/sql/primaryKeys.js index aa9542581..6df4ca5c0 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/primaryKeys.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/primaryKeys.js @@ -11,6 +11,7 @@ where table_constraints.table_schema <> 'information_schema' and table_constraints.table_schema <> 'pg_catalog' and table_constraints.table_schema !~ '^pg_toast' + and table_constraints.table_schema !~ '^_timescaledb_' and table_constraints.constraint_type = 'PRIMARY KEY' and ('tables:' || table_constraints.table_schema || '.' || table_constraints.table_name) =OBJECT_ID_CONDITION order by key_column_usage.ordinal_position diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/routines.js b/plugins/dbgate-plugin-postgres/src/backend/sql/routines.js index 24e7aabc1..2b2dfc176 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/routines.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/routines.js @@ -5,7 +5,7 @@ select max(routine_definition) as "definition", max(md5(routine_definition)) as "hash_code", routine_type as "object_type", - string_agg(data_type, '|') as "data_type", + $typeAgg(data_type, '|') as "data_type", max(external_language) as "language" from information_schema.routines where routine_schema != 'information_schema' and routine_schema != 'pg_catalog' and routine_schema !~ '^_timescaledb_'