Re: [HACKERS] Patch for initdb

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: emkxp01(at)mtcc(dot)demon(dot)co(dot)uk
Cc: patches(at)postgreSQL(dot)org, hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] Patch for initdb
Date: 1998-09-09 18:17:31
Message-ID: 199809091817.OAA11518@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Applied. Let's see if this fixes the pg_user problem.

> 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.

>
Content-Description: initdb.sh.patch

> *** 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 \

--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 1998-09-09 18:26:26 Re: [HACKERS] Adding PRIMARY KEY info
Previous Message Bruce Momjian 1998-09-09 18:08:55 Re: [HACKERS] Indixing problems...