Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3e2f87f

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 insteadof asking pg_get_viewdef() function.Jan
1 parent51e8a1d commit3e2f87f

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

‎src/bin/initdb/initdb.sh

Lines changed: 15 additions & 13 deletions
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)

[8]ページ先頭

©2009-2025 Movatter.jp