Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 3e2f87f

Browse files
Jan WieckJan Wieck
Jan Wieck
authored and
Jan Wieck
committed
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
1 parent 51e8a1d commit 3e2f87f

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/bin/initdb/initdb.sh

+15-13
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#
2727
#
2828
# IDENTIFICATION
29-
# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.56 1998/10/02 16:27:53 momjian Exp $
29+
# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.57 1999/01/28 15:28:40 wieck Exp $
3030
#
3131
#-------------------------------------------------------------------------
3232

@@ -467,11 +467,12 @@ echo "UPDATE pg_type SET typname = 'pg_views' WHERE typname = 'xpg_views';" |\
467467
mv $PGDATA/base/template1/xpg_views $PGDATA/base/template1/pg_views
468468

469469
echo "CREATE RULE \"_RETpg_views\" AS ON SELECT TO pg_views DO INSTEAD \
470-
SELECT relname AS viewname, \
471-
pg_get_userbyid(relowner) AS viewowner, \
472-
pg_get_viewdef(relname) AS definition \
473-
FROM pg_class WHERE relhasrules AND \
474-
pg_get_viewdef(relname) != 'Not a view';" | \
470+
SELECT C.relname AS viewname, \
471+
pg_get_userbyid(C.relowner) AS viewowner, \
472+
pg_get_viewdef(C.relname) AS definition \
473+
FROM pg_class C WHERE C.relhasrules AND \
474+
EXISTS (SELECT rulename FROM pg_rewrite R \
475+
WHERE ev_class = C.oid AND ev_type = '1');" | \
475476
postgres $PGSQL_OPT template1 > /dev/null
476477

477478
echo "Creating view pg_tables"
@@ -489,13 +490,14 @@ echo "UPDATE pg_type SET typname = 'pg_tables' WHERE typname = 'xpg_tables';" |\
489490
mv $PGDATA/base/template1/xpg_tables $PGDATA/base/template1/pg_tables
490491

491492
echo "CREATE RULE \"_RETpg_tables\" AS ON SELECT TO pg_tables DO INSTEAD \
492-
SELECT relname AS tablename, \
493-
pg_get_userbyid(relowner) AS tableowner, \
494-
relhasindex AS hasindexes, \
495-
relhasrules AS hasrules, \
496-
(reltriggers > 0) AS hastriggers \
497-
FROM pg_class WHERE relkind IN ('r', 's') \
498-
AND pg_get_viewdef(relname) = 'Not a view';" | \
493+
SELECT C.relname AS tablename, \
494+
pg_get_userbyid(C.relowner) AS tableowner, \
495+
C.relhasindex AS hasindexes, \
496+
C.relhasrules AS hasrules, \
497+
(C.reltriggers > 0) AS hastriggers \
498+
FROM pg_class C WHERE C.relkind IN ('r', 's') \
499+
AND NOT EXISTS (SELECT rulename FROM pg_rewrite \
500+
WHERE ev_class = C.oid AND ev_type = '1');" | \
499501
postgres $PGSQL_OPT template1 > /dev/null
500502

501503
echo "Creating view pg_indexes"

0 commit comments

Comments
 (0)