diff --git a/plugins/dbgate-plugin-postgres/src/backend/Analyser.js b/plugins/dbgate-plugin-postgres/src/backend/Analyser.js index 5ed0a3c39..646642d53 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-postgres/src/backend/Analyser.js @@ -55,8 +55,8 @@ class Analyser extends DatabaseAnalyser { super(pool, driver, version); } - createQuery(resFileName, typeFields) { - const query = super.createQuery(sql[resFileName], typeFields); + createQuery(resFileName, typeFields, replacements = {}) { + const query = super.createQuery(sql[resFileName], typeFields, replacements); return query; } @@ -139,7 +139,8 @@ class Analyser extends DatabaseAnalyser { this.feedback({ analysingMessage: 'Loading routines' }); const routines = await this.analyserQuery('routines', ['procedures', 'functions'], { - $typeAgg: this.driver.dialect.stringAgg ? 'string_agg' : 'max', + $typeAggFunc: this.driver.dialect.stringAgg ? 'string_agg' : 'max', + $typeAggParam: this.driver.dialect.stringAgg ? ", '|'" : '', }); this.feedback({ analysingMessage: 'Loading indexes' }); diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/routines.js b/plugins/dbgate-plugin-postgres/src/backend/sql/routines.js index 2b2dfc176..d864780c7 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", - $typeAgg(data_type, '|') as "data_type", + $typeAggFunc(data_type $typeAggParam) 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_'