Skip to content

Commit 8ae6b4c

Browse files
committed
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.
1 parent 8b583ba commit 8ae6b4c

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/backend/catalog/information_schema.sql

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* Copyright (c) 2003-2009, PostgreSQL Global Development Group
66
*
7-
* $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.48 2009/01/01 17:23:37 momjian Exp $
7+
* $PostgreSQL: pgsql/src/backend/catalog/information_schema.sql,v 1.49 2009/01/14 21:12:09 petere Exp $
88
*/
99

1010
/*
@@ -655,6 +655,9 @@ CREATE VIEW columns AS
655655
CAST(null AS character_data) AS generation_expression,
656656

657657
CAST(CASE WHEN c.relkind = 'r'
658+
OR (c.relkind = 'v'
659+
AND EXISTS (SELECT 1 FROM pg_rewrite WHERE ev_class = c.oid AND ev_type = '2' AND is_instead)
660+
AND EXISTS (SELECT 1 FROM pg_rewrite WHERE ev_class = c.oid AND ev_type = '4' AND is_instead))
658661
THEN 'YES' ELSE 'NO' END AS character_data) AS is_updatable
659662

660663
FROM (pg_attribute a LEFT JOIN pg_attrdef ad ON attrelid = adrelid AND attnum = adnum),
@@ -1882,7 +1885,10 @@ CREATE VIEW tables AS
18821885
CAST(null AS sql_identifier) AS user_defined_type_name,
18831886

18841887
CAST(CASE WHEN c.relkind = 'r'
1888+
OR (c.relkind = 'v'
1889+
AND EXISTS (SELECT 1 FROM pg_rewrite WHERE ev_class = c.oid AND ev_type = '3' AND is_instead))
18851890
THEN 'YES' ELSE 'NO' END AS character_data) AS is_insertable_into,
1891+
18861892
CAST('NO' AS character_data) AS is_typed,
18871893
CAST(
18881894
CASE WHEN nc.oid = pg_my_temp_schema() THEN 'PRESERVE' -- FIXME

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy