diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2009-01-14 21:12:09 +0000 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2009-01-14 21:12:09 +0000 |
commit | 8ae6b4c49f06d581395d36f649ddec2a82bea009 (patch) | |
tree | f0c1b583bebef21dd1ec632a1c5b2bcfb97830e8 | |
parent | 8b583ba2d7a02efa6cb0d77c4317ca89832c027e (diff) |
Make the columns is_insertable_into and is_updatable behave uniformly
correctly. They are supposed to examine which kinds of rules are present,
which they did in some of the info schema views but not in others.
-rw-r--r-- | src/backend/catalog/information_schema.sql | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index 5194d824892..5bb46eedf8a 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -4,7 +4,7 @@ * * Copyright (c) 2003-2009, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.48 2009/01/01 17:23:37 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.49 2009/01/14 21:12:09 petere Exp $ */ /* @@ -655,6 +655,9 @@ CREATE VIEW columns AS CAST(null AS character_data) AS generation_expression, CAST(CASE WHEN c.relkind = 'r' + OR (c.relkind = 'v' + AND EXISTS (SELECT 1 FROM pg_rewrite WHERE ev_class = c.oid AND ev_type = '2' AND is_instead) + AND EXISTS (SELECT 1 FROM pg_rewrite WHERE ev_class = c.oid AND ev_type = '4' AND is_instead)) THEN 'YES' ELSE 'NO' END AS character_data) AS is_updatable FROM (pg_attribute a LEFT JOIN pg_attrdef ad ON attrelid = adrelid AND attnum = adnum), @@ -1882,7 +1885,10 @@ CREATE VIEW tables AS CAST(null AS sql_identifier) AS user_defined_type_name, CAST(CASE WHEN c.relkind = 'r' + OR (c.relkind = 'v' + AND EXISTS (SELECT 1 FROM pg_rewrite WHERE ev_class = c.oid AND ev_type = '3' AND is_instead)) THEN 'YES' ELSE 'NO' END AS character_data) AS is_insertable_into, + CAST('NO' AS character_data) AS is_typed, CAST( CASE WHEN nc.oid = pg_my_temp_schema() THEN 'PRESERVE' -- FIXME |