diff --git a/plugins/dbgate-plugin-postgres/src/backend/sql/indexes.js b/plugins/dbgate-plugin-postgres/src/backend/sql/indexes.js index 3304cbce3..3dbff1352 100644 --- a/plugins/dbgate-plugin-postgres/src/backend/sql/indexes.js +++ b/plugins/dbgate-plugin-postgres/src/backend/sql/indexes.js @@ -5,31 +5,25 @@ module.exports = ` i.relname as "index_name", ix.indisprimary as "is_primary", ix.indisunique as "is_unique", - array_to_string(array_agg(a.attname), '|') as "column_names" + ( + select + array_to_string(array_agg((select a.attname from pg_attribute a where ord = a.attnum and a.attrelid = t.oid)), '|') + from + unnest(ix.indkey) ord + ) as "column_names" from pg_class t, pg_class i, pg_index ix, - pg_attribute a, pg_namespace c where t.oid = ix.indrelid and i.oid = ix.indexrelid - and a.attrelid = t.oid - and a.attnum = ANY(ix.indkey) and t.relkind = 'r' and ix.indisprimary = false and t.relnamespace = c.oid and c.nspname != 'pg_catalog' and ('tables:' || c.nspname || '.' || t.relname) =OBJECT_ID_CONDITION - group by - i.oid, - t.relname, - i.relname, - c.nspname, - ix.indisprimary, - ix.indisunique order by - t.relname, - i.relname + t.relname `;