Commit 5c6a5fe1 authored by Bruce Momjian's avatar Bruce Momjian

Make regression tests safe for autocommit = 'off'.

parent 5a0a79d6
...@@ -993,6 +993,7 @@ ERROR: Relation "test" has no column "........pg.dropped.1........" ...@@ -993,6 +993,7 @@ ERROR: Relation "test" has no column "........pg.dropped.1........"
copy test from stdin; copy test from stdin;
ERROR: copy: line 1, Extra data after last expected column ERROR: copy: line 1, Extra data after last expected column
lost synchronization with server, resetting connection lost synchronization with server, resetting connection
SET autocommit TO 'on';
select * from test; select * from test;
b | c b | c
---+--- ---+---
......
...@@ -46,6 +46,7 @@ lost synchronization with server, resetting connection ...@@ -46,6 +46,7 @@ lost synchronization with server, resetting connection
COPY x from stdin; COPY x from stdin;
ERROR: copy: line 1, Extra data after last expected column ERROR: copy: line 1, Extra data after last expected column
lost synchronization with server, resetting connection lost synchronization with server, resetting connection
SET autocommit TO 'on';
-- various COPY options: delimiters, oids, NULL string -- various COPY options: delimiters, oids, NULL string
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x'; COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
-- check results of copy in -- check results of copy in
......
...@@ -41,6 +41,7 @@ INSERT INTO basictest values ('88', 'haha', 'short', '123.1212'); -- Truncate ...@@ -41,6 +41,7 @@ INSERT INTO basictest values ('88', 'haha', 'short', '123.1212'); -- Truncate
COPY basictest (testvarchar) FROM stdin; -- fail COPY basictest (testvarchar) FROM stdin; -- fail
ERROR: copy: line 1, value too long for type character varying(5) ERROR: copy: line 1, value too long for type character varying(5)
lost synchronization with server, resetting connection lost synchronization with server, resetting connection
SET autocommit TO 'on';
COPY basictest (testvarchar) FROM stdin; COPY basictest (testvarchar) FROM stdin;
select * from basictest; select * from basictest;
testint4 | testtext | testvarchar | testnumeric testint4 | testtext | testvarchar | testnumeric
...@@ -122,6 +123,7 @@ INSERT INTO nulltest values ('a', 'b', 'c', NULL); -- Good ...@@ -122,6 +123,7 @@ INSERT INTO nulltest values ('a', 'b', 'c', NULL); -- Good
COPY nulltest FROM stdin; --fail COPY nulltest FROM stdin; --fail
ERROR: copy: line 1, CopyFrom: Fail to add null value in not null attribute col3 ERROR: copy: line 1, CopyFrom: Fail to add null value in not null attribute col3
lost synchronization with server, resetting connection lost synchronization with server, resetting connection
SET autocommit TO 'on';
COPY nulltest FROM stdin; COPY nulltest FROM stdin;
select * from nulltest; select * from nulltest;
col1 | col2 | col3 | col4 col1 | col2 | col3 | col4
......
...@@ -220,6 +220,7 @@ ERROR: atest2: permission denied ...@@ -220,6 +220,7 @@ ERROR: atest2: permission denied
-- privileges on functions, languages -- privileges on functions, languages
-- switch to superuser -- switch to superuser
\c - \c -
SET autocommit TO 'on';
REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC; REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC;
GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok
GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail
...@@ -270,6 +271,7 @@ SELECT testfunc1(5); -- ok ...@@ -270,6 +271,7 @@ SELECT testfunc1(5); -- ok
DROP FUNCTION testfunc1(int); -- fail DROP FUNCTION testfunc1(int); -- fail
ERROR: testfunc1: must be owner ERROR: testfunc1: must be owner
\c - \c -
SET autocommit TO 'on';
DROP FUNCTION testfunc1(int); -- ok DROP FUNCTION testfunc1(int); -- ok
-- restore to sanity -- restore to sanity
GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC; GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC;
...@@ -293,6 +295,7 @@ select has_table_privilege(1,'rule'); ...@@ -293,6 +295,7 @@ select has_table_privilege(1,'rule');
ERROR: pg_class_aclcheck: relation 1 not found ERROR: pg_class_aclcheck: relation 1 not found
-- superuser -- superuser
\c - \c -
SET autocommit TO 'on';
select has_table_privilege(current_user,'pg_shadow','select'); select has_table_privilege(current_user,'pg_shadow','select');
has_table_privilege has_table_privilege
--------------------- ---------------------
...@@ -543,6 +546,7 @@ from (select oid from pg_class where relname = 'atest1') as t1; ...@@ -543,6 +546,7 @@ from (select oid from pg_class where relname = 'atest1') as t1;
-- clean up -- clean up
\c regression \c regression
SET autocommit TO 'on';
DROP FUNCTION testfunc2(int); DROP FUNCTION testfunc2(int);
DROP FUNCTION testfunc4(boolean); DROP FUNCTION testfunc4(boolean);
DROP VIEW atestv1; DROP VIEW atestv1;
......
...@@ -33,5 +33,6 @@ DROP TABLE temptest; ...@@ -33,5 +33,6 @@ DROP TABLE temptest;
CREATE TEMP TABLE temptest(col int); CREATE TEMP TABLE temptest(col int);
-- test temp table deletion -- test temp table deletion
\c regression \c regression
SET autocommit TO 'on';
SELECT * FROM temptest; SELECT * FROM temptest;
ERROR: Relation "temptest" does not exist ERROR: Relation "temptest" does not exist
#! /bin/sh #! /bin/sh
# $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.27 2002/09/04 18:04:57 petere Exp $ # $Header: /cvsroot/pgsql/src/test/regress/Attic/pg_regress.sh,v 1.28 2002/10/19 01:35:43 momjian Exp $
me=`basename $0` me=`basename $0`
: ${TMPDIR=/tmp} : ${TMPDIR=/tmp}
...@@ -420,7 +420,7 @@ fi ...@@ -420,7 +420,7 @@ fi
# Set up SQL shell for the test. # Set up SQL shell for the test.
# ---------- # ----------
PSQL="$bindir/psql -a -q -X $psql_options" PSQL="$bindir/psql -q -X $psql_options"
# ---------- # ----------
...@@ -473,7 +473,7 @@ fi ...@@ -473,7 +473,7 @@ fi
# ---------- # ----------
message "dropping regression test user accounts" message "dropping regression test user accounts"
"$bindir/psql" $psql_options -c 'drop group regressgroup1; drop group regressgroup2; drop user regressuser1, regressuser2, regressuser3, regressuser4;' $dbname 2>/dev/null "$bindir/psql" $psql_options -c 'SET autocommit TO on;DROP GROUP regressgroup1; DROP GROUP regressgroup2; DROP USER regressuser1, regressuser2, regressuser3, regressuser4;' $dbname 2>/dev/null
if [ $? -eq 2 ]; then if [ $? -eq 2 ]; then
echo "$me: could not drop user accounts" echo "$me: could not drop user accounts"
(exit 2); exit (exit 2); exit
...@@ -545,12 +545,17 @@ do ...@@ -545,12 +545,17 @@ do
formatted=`echo $1 | awk '{printf "%-20.20s", $1;}'` formatted=`echo $1 | awk '{printf "%-20.20s", $1;}'`
$ECHO_N "test $formatted ... $ECHO_C" $ECHO_N "test $formatted ... $ECHO_C"
$PSQL -d "$dbname" <"$inputdir/sql/$1.sql" >"$outputdir/results/$1.out" 2>&1 # use awk to properly output backslashes
(echo "SET autocommit TO 'on';"; awk 'BEGIN {printf "\\set ECHO all\n"}'; cat "$inputdir/sql/$1.sql") |
$PSQL -d "$dbname" >"$outputdir/results/$1.out" 2>&1
else else
# Start a parallel group # Start a parallel group
$ECHO_N "parallel group ($# tests): $ECHO_C" $ECHO_N "parallel group ($# tests): $ECHO_C"
for name do for name do
( $PSQL -d $dbname <"$inputdir/sql/$name.sql" >"$outputdir/results/$name.out" 2>&1 (
# use awk to properly output backslashes
(echo "SET autocommit TO 'on';"; awk 'BEGIN {printf "\\set ECHO all\n"}'; cat "$inputdir/sql/$name.sql") |
$PSQL -d $dbname >"$outputdir/results/$name.out" 2>&1
$ECHO_N " $name$ECHO_C" $ECHO_N " $name$ECHO_C"
) & ) &
done done
......
...@@ -718,6 +718,7 @@ copy test("........pg.dropped.1........") to stdout; ...@@ -718,6 +718,7 @@ copy test("........pg.dropped.1........") to stdout;
copy test from stdin; copy test from stdin;
10 11 12 10 11 12
\. \.
SET autocommit TO 'on';
select * from test; select * from test;
copy test from stdin; copy test from stdin;
21 22 21 22
......
...@@ -71,6 +71,7 @@ COPY x from stdin; ...@@ -71,6 +71,7 @@ COPY x from stdin;
2002 232 40 50 60 70 80 2002 232 40 50 60 70 80
\. \.
SET autocommit TO 'on';
-- various COPY options: delimiters, oids, NULL string -- various COPY options: delimiters, oids, NULL string
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x'; COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
500000,x,45,80,90 500000,x,45,80,90
......
...@@ -41,6 +41,8 @@ COPY basictest (testvarchar) FROM stdin; -- fail ...@@ -41,6 +41,8 @@ COPY basictest (testvarchar) FROM stdin; -- fail
notsoshorttext notsoshorttext
\. \.
SET autocommit TO 'on';
COPY basictest (testvarchar) FROM stdin; COPY basictest (testvarchar) FROM stdin;
short short
\. \.
...@@ -100,6 +102,8 @@ COPY nulltest FROM stdin; --fail ...@@ -100,6 +102,8 @@ COPY nulltest FROM stdin; --fail
a b \N d a b \N d
\. \.
SET autocommit TO 'on';
COPY nulltest FROM stdin; COPY nulltest FROM stdin;
a b c \N a b c \N
\. \.
......
...@@ -147,6 +147,8 @@ SELECT * FROM atestv2; -- fail (even though regressuser2 can access underlying a ...@@ -147,6 +147,8 @@ SELECT * FROM atestv2; -- fail (even though regressuser2 can access underlying a
-- switch to superuser -- switch to superuser
\c - \c -
SET autocommit TO 'on';
REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC; REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC;
GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok
GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail
...@@ -182,6 +184,8 @@ SELECT testfunc1(5); -- ok ...@@ -182,6 +184,8 @@ SELECT testfunc1(5); -- ok
DROP FUNCTION testfunc1(int); -- fail DROP FUNCTION testfunc1(int); -- fail
\c - \c -
SET autocommit TO 'on';
DROP FUNCTION testfunc1(int); -- ok DROP FUNCTION testfunc1(int); -- ok
-- restore to sanity -- restore to sanity
GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC; GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC;
...@@ -199,6 +203,8 @@ select has_table_privilege(1,'rule'); ...@@ -199,6 +203,8 @@ select has_table_privilege(1,'rule');
-- superuser -- superuser
\c - \c -
SET autocommit TO 'on';
select has_table_privilege(current_user,'pg_shadow','select'); select has_table_privilege(current_user,'pg_shadow','select');
select has_table_privilege(current_user,'pg_shadow','insert'); select has_table_privilege(current_user,'pg_shadow','insert');
...@@ -290,6 +296,8 @@ from (select oid from pg_class where relname = 'atest1') as t1; ...@@ -290,6 +296,8 @@ from (select oid from pg_class where relname = 'atest1') as t1;
-- clean up -- clean up
\c regression \c regression
SET autocommit TO 'on';
DROP FUNCTION testfunc2(int); DROP FUNCTION testfunc2(int);
DROP FUNCTION testfunc4(boolean); DROP FUNCTION testfunc4(boolean);
......
...@@ -44,6 +44,7 @@ CREATE TEMP TABLE temptest(col int); ...@@ -44,6 +44,7 @@ CREATE TEMP TABLE temptest(col int);
-- test temp table deletion -- test temp table deletion
\c regression \c regression
SET autocommit TO 'on';
SELECT * FROM temptest; SELECT * FROM temptest;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment