Re: [HACKERS] What is this...? - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] What is this...? |
Date | |
Msg-id | 199803091448.JAA01228@candle.pha.pa.us Whole thread Raw |
In response to | Re: [HACKERS] What is this...? (jwieck@debis.com (Jan Wieck)) |
List | pgsql-hackers |
> > QUERY: copy pg_user from stdin; > > ^^^^^^^ COPY into a view? Cool! > > > Enter info followed by a newline > > End with a backslash and a period on a line by itself. > > So we missed something when renaming pg_user into pg_shadow. > Damn. Here is a patch. Haven't tested it yet, but patch has been applied to source tree. --------------------------------------------------------------------------- *** ./bin/pg_dump/pg_dumpall.orig Fri Mar 6 12:17:36 1998 --- ./bin/pg_dump/pg_dumpall Fri Mar 6 12:18:26 1998 *************** *** 2,8 **** # # pg_dumpall [pg_dump parameters] # dumps all databases to standard output ! # It also dumps the pg_user table # # to adapt to System V vs. BSD 'echo' #set -x --- 2,8 ---- # # pg_dumpall [pg_dump parameters] # dumps all databases to standard output ! # It also dumps the pg_shadow table # # to adapt to System V vs. BSD 'echo' #set -x *************** *** 30,50 **** # we don't use POSTGRES_SUPER_USER_ID because the postgres super user id # could be different on the two installations # ! echo "select datdba into table tmp_pguser \ from pg_database where datname = 'template1';" ! echo "delete from pg_user where usesysid <> tmp_pguser.datdba;" ! echo "drop table tmp_pguser;" # # load all the non-postgres users # ! echo "copy pg_user from stdin;" psql -q template1 <<END ! select pg_user.* ! into table tmp_pg_user ! from pg_user where usesysid <> $POSTGRES_SUPER_USER_ID; ! copy tmp_pg_user to stdout; ! drop table tmp_pg_user; END echo "${BS}." psql -l -A -q -t| tr '|' ' ' | grep -v '^template1 ' | \ --- 30,50 ---- # we don't use POSTGRES_SUPER_USER_ID because the postgres super user id # could be different on the two installations # ! echo "select datdba into table tmp_pg_shadow \ from pg_database where datname = 'template1';" ! echo "delete from pg_shadow where usesysid <> tmp_pg_shadow.datdba;" ! echo "drop table tmp_pg_shadow;" # # load all the non-postgres users # ! echo "copy pg_shadow from stdin;" psql -q template1 <<END ! select pg_shadow.* ! into table tmp_pg_shadow ! from pg_shadow where usesysid <> $POSTGRES_SUPER_USER_ID; ! copy tmp_pg_shadow to stdout; ! drop table tmp_pg_shadow; END echo "${BS}." psql -l -A -q -t| tr '|' ' ' | grep -v '^template1 ' | \ *************** *** 52,58 **** do POSTGRES_USER="`echo \" \ select usename \ ! from pg_user \ where usesysid = $DBUSERID; \" | \ psql -A -q -t template1`" echo "${BS}connect template1 $POSTGRES_USER" --- 52,58 ---- do POSTGRES_USER="`echo \" \ select usename \ ! from pg_shadow \ where usesysid = $DBUSERID; \" | \ psql -A -q -t template1`" echo "${BS}connect template1 $POSTGRES_USER" -- Bruce Momjian | 830 Blythe Avenue maillist@candle.pha.pa.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)
pgsql-hackers by date: