diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-04 23:13:01 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2006-09-04 23:13:01 +0000 |
commit | 44839ac03e8bfbfa4cb8901efd5d066c42bf8f83 (patch) | |
tree | 05821fac1b2da7d39a88ff5d5b134d688a6850ef /src | |
parent | 5a248cd2e412e7834457059f5fb9cf029d957718 (diff) | |
download | postgresql-44839ac03e8bfbfa4cb8901efd5d066c42bf8f83.tar.gz postgresql-44839ac03e8bfbfa4cb8901efd5d066c42bf8f83.zip |
Fix information_schema.key_column_usage to show correct value of
position_in_unique_constraint (column newly added per SQL2003).
Greg Mullane
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/catalog/information_schema.sql | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index 4dad81a24ea..a30cddd2878 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -4,7 +4,7 @@ * * Copyright (c) 2003-2006, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.34 2006/09/04 21:03:18 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.35 2006/09/04 23:13:01 tgl Exp $ */ /* @@ -921,11 +921,18 @@ CREATE VIEW key_column_usage AS CAST(relname AS sql_identifier) AS table_name, CAST(a.attname AS sql_identifier) AS column_name, CAST((ss.x).n AS cardinal_number) AS ordinal_position, - CAST(null AS cardinal_number) AS position_in_unique_constraint -- FIXME + ( + SELECT CAST(a AS cardinal_number) + FROM pg_constraint, + (SELECT a FROM generate_series(1, array_upper(ss.confkey,1)) a) AS foo + WHERE conrelid = ss.confrelid + AND conkey[foo.a] = ss.confkey[(ss.x).n] + ) AS position_in_unique_constraint FROM pg_attribute a, - (SELECT r.oid, nc.nspname AS nc_nspname, c.conname, - nr.nspname AS nr_nspname, r.relname, - _pg_expandarray(c.conkey) AS x + (SELECT r.oid, r.relname, nc.nspname AS nc_nspname, + nr.nspname AS nr_nspname, + c.conname, c.confkey, c.confrelid, + _pg_expandarray(c.conkey) AS x FROM pg_namespace nr, pg_class r, pg_namespace nc, pg_constraint c WHERE nr.oid = r.relnamespace |