From 3e2f87f3f35e721935643044c6366ae969e544ac Mon Sep 17 00:00:00 2001 From: Jan Wieck Date: Thu, 28 Jan 1999 15:28:40 +0000 Subject: [PATCH] Changed qualification of pg_views and pg_tables to directly check if a rewrite rule on SELECT exists/not exists instead of asking pg_get_viewdef() function. Jan --- src/bin/initdb/initdb.sh | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/bin/initdb/initdb.sh b/src/bin/initdb/initdb.sh index 1ca47f40e2..56feebfc8d 100644 --- a/src/bin/initdb/initdb.sh +++ b/src/bin/initdb/initdb.sh @@ -26,7 +26,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.56 1998/10/02 16:27:53 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.57 1999/01/28 15:28:40 wieck Exp $ # #------------------------------------------------------------------------- @@ -467,11 +467,12 @@ echo "UPDATE pg_type SET typname = 'pg_views' WHERE typname = 'xpg_views';" |\ mv $PGDATA/base/template1/xpg_views $PGDATA/base/template1/pg_views echo "CREATE RULE \"_RETpg_views\" AS ON SELECT TO pg_views DO INSTEAD \ - SELECT relname AS viewname, \ - pg_get_userbyid(relowner) AS viewowner, \ - pg_get_viewdef(relname) AS definition \ - FROM pg_class WHERE relhasrules AND \ - pg_get_viewdef(relname) != 'Not a view';" | \ + SELECT C.relname AS viewname, \ + pg_get_userbyid(C.relowner) AS viewowner, \ + pg_get_viewdef(C.relname) AS definition \ + FROM pg_class C WHERE C.relhasrules AND \ + EXISTS (SELECT rulename FROM pg_rewrite R \ + WHERE ev_class = C.oid AND ev_type = '1');" | \ postgres $PGSQL_OPT template1 > /dev/null echo "Creating view pg_tables" @@ -489,13 +490,14 @@ echo "UPDATE pg_type SET typname = 'pg_tables' WHERE typname = 'xpg_tables';" |\ mv $PGDATA/base/template1/xpg_tables $PGDATA/base/template1/pg_tables echo "CREATE RULE \"_RETpg_tables\" AS ON SELECT TO pg_tables DO INSTEAD \ - SELECT relname AS tablename, \ - pg_get_userbyid(relowner) AS tableowner, \ - relhasindex AS hasindexes, \ - relhasrules AS hasrules, \ - (reltriggers > 0) AS hastriggers \ - FROM pg_class WHERE relkind IN ('r', 's') \ - AND pg_get_viewdef(relname) = 'Not a view';" | \ + SELECT C.relname AS tablename, \ + pg_get_userbyid(C.relowner) AS tableowner, \ + C.relhasindex AS hasindexes, \ + C.relhasrules AS hasrules, \ + (C.reltriggers > 0) AS hastriggers \ + FROM pg_class C WHERE C.relkind IN ('r', 's') \ + AND NOT EXISTS (SELECT rulename FROM pg_rewrite \ + WHERE ev_class = C.oid AND ev_type = '1');" | \ postgres $PGSQL_OPT template1 > /dev/null echo "Creating view pg_indexes" -- 2.40.0