summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2002-10-16 03:24:09 +0000
committerBruce Momjian2002-10-16 03:24:09 +0000
commitad8d390185b8840a4540269d2bae2d76a5cf8ed0 (patch)
treed93f9b64350e50f1d92bd0c1f62390ebcf416e08
parent11e5fc943ce70f72ffdc88ba9b9cbd5a395a8b8d (diff)
Fix script to handle autocommit = 'off' by prepending autocommit 'on' to
the start of the psql commandline. This is better than adding BEGIN/END because it handles multiple queries well, and allows the return code for psql to return the proper value.
-rw-r--r--src/bin/scripts/clusterdb2
-rw-r--r--src/bin/scripts/createdb4
-rw-r--r--src/bin/scripts/createlang.sh6
-rw-r--r--src/bin/scripts/createuser2
-rw-r--r--src/bin/scripts/dropdb2
-rw-r--r--src/bin/scripts/droplang4
-rw-r--r--src/bin/scripts/dropuser2
-rw-r--r--src/bin/scripts/vacuumdb2
8 files changed, 12 insertions, 12 deletions
diff --git a/src/bin/scripts/clusterdb b/src/bin/scripts/clusterdb
index e0e9991969..75dfee9446 100644
--- a/src/bin/scripts/clusterdb
+++ b/src/bin/scripts/clusterdb
@@ -176,7 +176,7 @@ do
idx=`echo $tabs | cut -d: -f3`
query="$query CLUSTER $idx ON $nspc.$tab;"
done
- ${PATHNAME}psql $PSQLOPT $ECHOOPT -c "$query" -d $db
+ ${PATHNAME}psql $PSQLOPT $ECHOOPT -c "SET autocommit = 'on';$query" -d $db
if [ "$?" -ne 0 ]
then
echo "$CMDNAME: While clustering $db, the following failed: $query" 1>&2
diff --git a/src/bin/scripts/createdb b/src/bin/scripts/createdb
index 52d996bdf6..adfda5b293 100644
--- a/src/bin/scripts/createdb
+++ b/src/bin/scripts/createdb
@@ -189,7 +189,7 @@ withstring=
[ "$TEMPLATE" ] && withstring="$withstring TEMPLATE = \"$TEMPLATE\""
[ "$withstring" ] && withstring=" WITH$withstring"
-${PATHNAME}psql $PSQLOPT -d template1 -c "CREATE DATABASE \"$dbname\"$withstring"
+${PATHNAME}psql $PSQLOPT -d template1 -c "SET autocommit = 'on';CREATE DATABASE \"$dbname\"$withstring"
if [ "$?" -ne 0 ]; then
echo "$CMDNAME: database creation failed" 1>&2
exit 1
@@ -200,7 +200,7 @@ fi
dbcomment=`echo "$dbcomment" | sed "s/'/\\\\\'/g"`
-${PATHNAME}psql $PSQLOPT -d "$dbname" -c "COMMENT ON DATABASE \"$dbname\" IS '$dbcomment'"
+${PATHNAME}psql $PSQLOPT -d "$dbname" -c "SET autocommit = 'on';COMMENT ON DATABASE \"$dbname\" IS '$dbcomment'"
if [ "$?" -ne 0 ]; then
echo "$CMDNAME: comment creation failed (database was created)" 1>&2
exit 1
diff --git a/src/bin/scripts/createlang.sh b/src/bin/scripts/createlang.sh
index 77630a4564..a3540e461f 100644
--- a/src/bin/scripts/createlang.sh
+++ b/src/bin/scripts/createlang.sh
@@ -270,7 +270,7 @@ fi
# Create the call handler and the language
# ----------
if [ "$handlerexists" = no ]; then
- sqlcmd="CREATE FUNCTION \"$handler\" () RETURNS LANGUAGE_HANDLER AS '$PGLIB/${object}' LANGUAGE C;"
+ sqlcmd="SET autocommit = 'on';CREATE FUNCTION \"$handler\" () RETURNS LANGUAGE_HANDLER AS '$PGLIB/${object}' LANGUAGE C;"
if [ "$showsql" = yes ]; then
echo "$sqlcmd"
fi
@@ -281,7 +281,7 @@ if [ "$handlerexists" = no ]; then
fi
fi
-sqlcmd="CREATE ${trusted}LANGUAGE \"$langname\" HANDLER \"$handler\";"
+sqlcmd="SET autocommit = 'on';CREATE ${trusted}LANGUAGE \"$langname\" HANDLER \"$handler\";"
if [ "$showsql" = yes ]; then
echo "$sqlcmd"
fi
@@ -297,7 +297,7 @@ fi
# seems best to disable public USAGE for an untrusted one.
# ----------
if test -z "$trusted"; then
- sqlcmd="REVOKE ALL ON LANGUAGE \"$langname\" FROM PUBLIC;"
+ sqlcmd="SET autocommit = 'on';REVOKE ALL ON LANGUAGE \"$langname\" FROM PUBLIC;"
if [ "$showsql" = yes ]; then
echo "$sqlcmd"
fi
diff --git a/src/bin/scripts/createuser b/src/bin/scripts/createuser
index e848fc5e96..e8f0d091fc 100644
--- a/src/bin/scripts/createuser
+++ b/src/bin/scripts/createuser
@@ -253,7 +253,7 @@ SUBQUERY=
[ "$CanAddUser" = t ] && QUERY="$QUERY CREATEUSER"
[ "$CanAddUser" = f ] && QUERY="$QUERY NOCREATEUSER"
-${PATHNAME}psql -c "$QUERY" -d template1 $PSQLOPT
+${PATHNAME}psql -c "SET autocommit = 'on';$QUERY" -d template1 $PSQLOPT
if [ "$?" -ne 0 ]; then
echo "$CMDNAME: creation of user \"$NewUser\" failed" 1>&2
exit 1
diff --git a/src/bin/scripts/dropdb b/src/bin/scripts/dropdb
index 9e28ba7444..3a525a0491 100644
--- a/src/bin/scripts/dropdb
+++ b/src/bin/scripts/dropdb
@@ -138,7 +138,7 @@ fi
dbname=`echo "$dbname" | sed 's/\"/\\\"/g'`
-${PATHNAME}psql $PSQLOPT -d template1 -c "DROP DATABASE \"$dbname\""
+${PATHNAME}psql $PSQLOPT -d template1 -c "SET autocommit = 'on';DROP DATABASE \"$dbname\""
if [ "$?" -ne 0 ]; then
echo "$CMDNAME: database removal failed" 1>&2
exit 1
diff --git a/src/bin/scripts/droplang b/src/bin/scripts/droplang
index 889e8a8c60..a027fb5e1b 100644
--- a/src/bin/scripts/droplang
+++ b/src/bin/scripts/droplang
@@ -229,7 +229,7 @@ fi
# ----------
# Drop the language
# ----------
-sqlcmd="DROP LANGUAGE \"$langname\";"
+sqlcmd="SET autocommit = 'on';DROP LANGUAGE \"$langname\";"
if [ "$showsql" = yes ]; then
echo "$sqlcmd"
fi
@@ -256,7 +256,7 @@ if [ "$?" -ne 0 ]; then
exit 1
fi
-sqlcmd="DROP FUNCTION \"$handler\" ();"
+sqlcmd="SET autocommit = 'on';DROP FUNCTION \"$handler\" ();"
if [ "$showsql" = yes ]; then
echo "$sqlcmd"
fi
diff --git a/src/bin/scripts/dropuser b/src/bin/scripts/dropuser
index 82269f6a47..956501070c 100644
--- a/src/bin/scripts/dropuser
+++ b/src/bin/scripts/dropuser
@@ -148,7 +148,7 @@ fi
DelUser=`echo "$DelUser" | sed 's/\"/\\\"/g'`
-${PATHNAME}psql $PSQLOPT -d template1 -c "DROP USER \"$DelUser\""
+${PATHNAME}psql $PSQLOPT -d template1 -c "SET autocommit = 'on';DROP USER \"$DelUser\""
if [ "$?" -ne 0 ]; then
echo "$CMDNAME: deletion of user \"$DelUser\" failed" 1>&2
diff --git a/src/bin/scripts/vacuumdb b/src/bin/scripts/vacuumdb
index 27ff1cc1d5..12513991b4 100644
--- a/src/bin/scripts/vacuumdb
+++ b/src/bin/scripts/vacuumdb
@@ -169,7 +169,7 @@ fi
for db in $dbname
do
[ "$alldb" -a "$quiet" -ne 1 ] && echo "Vacuuming $db"
- ${PATHNAME}psql $PSQLOPT $ECHOOPT -c "VACUUM $full $verbose $analyze $table" -d $db
+ ${PATHNAME}psql $PSQLOPT $ECHOOPT -c "SET autocommit = 'on';VACUUM $full $verbose $analyze $table" -d $db
if [ "$?" -ne 0 ]; then
echo "$CMDNAME: vacuum $table $db failed" 1>&2
exit 1