From 84dbcec99273fdc59f2aec4e92e218c2d81455dc Mon Sep 17 00:00:00 2001 From: Oliver Tan Date: Thu, 4 Nov 2021 07:16:39 +1100 Subject: [PATCH] make pg_table_metadata CockroachDB compatible CockroachDB doesn't support `index` as a table alias, but PostgreSQL does. Since `idx` is supported by both, change the metadata query accordingly. Refs https://github.com/cockroachdb/cockroach/issues/72407 --- server/src-rsr/pg_table_metadata.sql | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/server/src-rsr/pg_table_metadata.sql b/server/src-rsr/pg_table_metadata.sql index ee7824d818174..ff57c8208d584 100644 --- a/server/src-rsr/pg_table_metadata.sql +++ b/server/src-rsr/pg_table_metadata.sql @@ -59,28 +59,28 @@ LEFT JOIN LATERAL 'constraint', jsonb_build_object('name', class.relname, 'oid', class.oid :: integer), 'columns', coalesce(columns.info, '[]') ) AS info - FROM pg_catalog.pg_index index + FROM pg_catalog.pg_index idx JOIN pg_catalog.pg_class class - ON class.oid = index.indexrelid + ON class.oid = idx.indexrelid LEFT JOIN LATERAL ( SELECT jsonb_agg("column".attname) AS info FROM pg_catalog.pg_attribute "column" WHERE "column".attrelid = "table".oid - AND "column".attnum = ANY (index.indkey) + AND "column".attnum = ANY (idx.indkey) ) AS columns ON true - WHERE index.indrelid = "table".oid - AND index.indisprimary + WHERE idx.indrelid = "table".oid + AND idx.indisprimary ) primary_key ON true -- unique constraints LEFT JOIN LATERAL ( SELECT jsonb_agg(jsonb_build_object('name', class.relname, 'oid', class.oid :: integer)) AS info - FROM pg_catalog.pg_index index + FROM pg_catalog.pg_index idx JOIN pg_catalog.pg_class class - ON class.oid = index.indexrelid - WHERE index.indrelid = "table".oid - AND index.indisunique - AND NOT index.indisprimary + ON class.oid = idx.indexrelid + WHERE idx.indrelid = "table".oid + AND idx.indisunique + AND NOT idx.indisprimary ) unique_constraints ON true -- foreign keys