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:

Previous
From: "Jackson, DeJuan"
Date:
Subject: RE: [GENERAL] SET LOCK MODE ?
Next
From: "Thomas G. Lockhart"
Date:
Subject: Re: [HACKERS] index fix report