|
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 |
|