|
4 | 4 | *
|
5 | 5 | * Copyright (c) 2003-2006, PostgreSQL Global Development Group
|
6 | 6 | *
|
7 |
| - * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.34 2006/09/0421:03:18 momjian Exp $ |
| 7 | + * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.35 2006/09/0423:13:01 tgl Exp $ |
8 | 8 | */
|
9 | 9 |
|
10 | 10 | /*
|
@@ -921,11 +921,18 @@ CREATE VIEW key_column_usage AS
|
921 | 921 | CAST(relnameAS sql_identifier)AS table_name,
|
922 | 922 | CAST(a.attnameAS sql_identifier)AS column_name,
|
923 | 923 | CAST((ss.x).nAS cardinal_number)AS ordinal_position,
|
924 |
| - CAST(nullAS cardinal_number)AS position_in_unique_constraint-- FIXME |
| 924 | + ( |
| 925 | +SELECT CAST(aAS cardinal_number) |
| 926 | +FROM pg_constraint, |
| 927 | + (SELECT aFROM generate_series(1, array_upper(ss.confkey,1)) a)AS foo |
| 928 | +WHERE conrelid=ss.confrelid |
| 929 | +AND conkey[foo.a]=ss.confkey[(ss.x).n] |
| 930 | + )AS position_in_unique_constraint |
925 | 931 | FROM pg_attribute a,
|
926 |
| - (SELECTr.oid,nc.nspnameAS nc_nspname,c.conname, |
927 |
| -nr.nspnameAS nr_nspname,r.relname, |
928 |
| - _pg_expandarray(c.conkey)AS x |
| 932 | + (SELECTr.oid,r.relname,nc.nspnameAS nc_nspname, |
| 933 | +nr.nspnameAS nr_nspname, |
| 934 | +c.conname,c.confkey,c.confrelid, |
| 935 | + _pg_expandarray(c.conkey)AS x |
929 | 936 | FROM pg_namespace nr, pg_class r, pg_namespace nc,
|
930 | 937 | pg_constraint c
|
931 | 938 | WHEREnr.oid=r.relnamespace
|
|