Patch for initdb - Mailing list pgsql-hackers
| From | Keith Parks |
|---|---|
| Subject | Patch for initdb |
| Date | |
| Msg-id | 199809032327.AAA29450@mtcc.demon.co.uk Whole thread Raw |
| Responses |
Re: [HACKERS] Patch for initdb
|
| List | pgsql-hackers |
Hi patchers/hackers.
Here's a patch for initdb that does two things.
1) Encloses the created rulenames in quotes to preserve case
in the creation step. (stores _RETpg... instead of _retpg...)
I believe _RET is standard for views.
2) Renames pg_view to pg_views and pg_rule to pg_rules.
I believe Jan and myself agreed this would be a "good idea"
Both aspects open for discussion.
Are there any docs considerations?
Keith.
*** src/bin/initdb/initdb.sh.orig Thu Sep 3 23:04:10 1998
--- src/bin/initdb/initdb.sh Thu Sep 3 23:14:30 1998
***************
*** 425,431 ****
postgres $PGSQL_OPT template1 > /dev/null
mv $PGDATA/base/template1/xpg_user $PGDATA/base/template1/pg_user
! echo "CREATE RULE _RETpg_user AS ON SELECT TO pg_user DO INSTEAD \
SELECT usename, usesysid, usecreatedb, usetrace, \
usesuper, usecatupd, '********'::text as passwd, \
valuntil FROM pg_shadow;" | \
--- 425,431 ----
postgres $PGSQL_OPT template1 > /dev/null
mv $PGDATA/base/template1/xpg_user $PGDATA/base/template1/pg_user
! echo "CREATE RULE \"_RETpg_user\" AS ON SELECT TO pg_user DO INSTEAD \
SELECT usename, usesysid, usecreatedb, usetrace, \
usesuper, usecatupd, '********'::text as passwd, \
valuntil FROM pg_shadow;" | \
***************
*** 433,465 ****
echo "REVOKE ALL on pg_shadow FROM public" | \
postgres $PGSQL_OPT template1 > /dev/null
! echo "Creating view pg_rule"
! echo "CREATE TABLE xpg_rule ( \
rulename name, \
definition text);" | postgres $PGSQL_OPT template1 > /dev/null
! #move it into pg_rule
! echo "UPDATE pg_class SET relname = 'pg_rule' WHERE relname = 'xpg_rule';" |\
postgres $PGSQL_OPT template1 > /dev/null
! echo "UPDATE pg_type SET typname = 'pg_rule' WHERE typname = 'xpg_rule';" |\
postgres $PGSQL_OPT template1 > /dev/null
! mv $PGDATA/base/template1/xpg_rule $PGDATA/base/template1/pg_rule
! echo "CREATE RULE _RETpg_rule AS ON SELECT TO pg_rule DO INSTEAD \
SELECT rulename, pg_get_ruledef(rulename) AS definition \
FROM pg_rewrite;" | postgres $PGSQL_OPT template1 > /dev/null
! echo "Creating view pg_view"
! echo "CREATE TABLE xpg_view ( \
viewname name, \
definition text);" | postgres $PGSQL_OPT template1 > /dev/null
! #move it into pg_view
! echo "UPDATE pg_class SET relname = 'pg_view' WHERE relname = 'xpg_view';" |\
postgres $PGSQL_OPT template1 > /dev/null
! echo "UPDATE pg_type SET typname = 'pg_view' WHERE typname = 'xpg_view';" |\
postgres $PGSQL_OPT template1 > /dev/null
! mv $PGDATA/base/template1/xpg_view $PGDATA/base/template1/pg_view
! echo "CREATE RULE _RETpg_view AS ON SELECT TO pg_view DO INSTEAD \
SELECT relname AS viewname, \
pg_get_viewdef(relname) AS definition \
FROM pg_class WHERE relhasrules AND \
--- 433,465 ----
echo "REVOKE ALL on pg_shadow FROM public" | \
postgres $PGSQL_OPT template1 > /dev/null
! echo "Creating view pg_rules"
! echo "CREATE TABLE xpg_rules ( \
rulename name, \
definition text);" | postgres $PGSQL_OPT template1 > /dev/null
! #move it into pg_rules
! echo "UPDATE pg_class SET relname = 'pg_rules' WHERE relname = 'xpg_rules';" |\
postgres $PGSQL_OPT template1 > /dev/null
! echo "UPDATE pg_type SET typname = 'pg_rules' WHERE typname = 'xpg_rules';" |\
postgres $PGSQL_OPT template1 > /dev/null
! mv $PGDATA/base/template1/xpg_rules $PGDATA/base/template1/pg_rules
! echo "CREATE RULE \"_RETpg_rules\" AS ON SELECT TO pg_rules DO INSTEAD \
SELECT rulename, pg_get_ruledef(rulename) AS definition \
FROM pg_rewrite;" | postgres $PGSQL_OPT template1 > /dev/null
! echo "Creating view pg_views"
! echo "CREATE TABLE xpg_views ( \
viewname name, \
definition text);" | postgres $PGSQL_OPT template1 > /dev/null
! #move it into pg_views
! echo "UPDATE pg_class SET relname = 'pg_views' WHERE relname = 'xpg_views';" |\
postgres $PGSQL_OPT template1 > /dev/null
! echo "UPDATE pg_type SET typname = 'pg_views' WHERE typname = 'xpg_views';" |\
postgres $PGSQL_OPT template1 > /dev/null
! 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_viewdef(relname) AS definition \
FROM pg_class WHERE relhasrules AND \
pgsql-hackers by date: