mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-06 15:24:56 +08:00
Make regression tests safe for autocommit = 'off'.
This commit is contained in:
parent
5a0a79d694
commit
5c6a5fe18b
@ -993,6 +993,7 @@ ERROR: Relation "test" has no column "........pg.dropped.1........"
|
||||
copy test from stdin;
|
||||
ERROR: copy: line 1, Extra data after last expected column
|
||||
lost synchronization with server, resetting connection
|
||||
SET autocommit TO 'on';
|
||||
select * from test;
|
||||
b | c
|
||||
---+---
|
||||
|
@ -46,6 +46,7 @@ lost synchronization with server, resetting connection
|
||||
COPY x from stdin;
|
||||
ERROR: copy: line 1, Extra data after last expected column
|
||||
lost synchronization with server, resetting connection
|
||||
SET autocommit TO 'on';
|
||||
-- various COPY options: delimiters, oids, NULL string
|
||||
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
|
||||
-- check results of copy in
|
||||
|
@ -41,6 +41,7 @@ INSERT INTO basictest values ('88', 'haha', 'short', '123.1212'); -- Truncate
|
||||
COPY basictest (testvarchar) FROM stdin; -- fail
|
||||
ERROR: copy: line 1, value too long for type character varying(5)
|
||||
lost synchronization with server, resetting connection
|
||||
SET autocommit TO 'on';
|
||||
COPY basictest (testvarchar) FROM stdin;
|
||||
select * from basictest;
|
||||
testint4 | testtext | testvarchar | testnumeric
|
||||
@ -122,6 +123,7 @@ INSERT INTO nulltest values ('a', 'b', 'c', NULL); -- Good
|
||||
COPY nulltest FROM stdin; --fail
|
||||
ERROR: copy: line 1, CopyFrom: Fail to add null value in not null attribute col3
|
||||
lost synchronization with server, resetting connection
|
||||
SET autocommit TO 'on';
|
||||
COPY nulltest FROM stdin;
|
||||
select * from nulltest;
|
||||
col1 | col2 | col3 | col4
|
||||
|
@ -220,6 +220,7 @@ ERROR: atest2: permission denied
|
||||
-- privileges on functions, languages
|
||||
-- switch to superuser
|
||||
\c -
|
||||
SET autocommit TO 'on';
|
||||
REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC;
|
||||
GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok
|
||||
GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail
|
||||
@ -270,6 +271,7 @@ SELECT testfunc1(5); -- ok
|
||||
DROP FUNCTION testfunc1(int); -- fail
|
||||
ERROR: testfunc1: must be owner
|
||||
\c -
|
||||
SET autocommit TO 'on';
|
||||
DROP FUNCTION testfunc1(int); -- ok
|
||||
-- restore to sanity
|
||||
GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC;
|
||||
@ -293,6 +295,7 @@ select has_table_privilege(1,'rule');
|
||||
ERROR: pg_class_aclcheck: relation 1 not found
|
||||
-- superuser
|
||||
\c -
|
||||
SET autocommit TO 'on';
|
||||
select has_table_privilege(current_user,'pg_shadow','select');
|
||||
has_table_privilege
|
||||
---------------------
|
||||
@ -543,6 +546,7 @@ from (select oid from pg_class where relname = 'atest1') as t1;
|
||||
|
||||
-- clean up
|
||||
\c regression
|
||||
SET autocommit TO 'on';
|
||||
DROP FUNCTION testfunc2(int);
|
||||
DROP FUNCTION testfunc4(boolean);
|
||||
DROP VIEW atestv1;
|
||||
|
@ -33,5 +33,6 @@ DROP TABLE temptest;
|
||||
CREATE TEMP TABLE temptest(col int);
|
||||
-- test temp table deletion
|
||||
\c regression
|
||||
SET autocommit TO 'on';
|
||||
SELECT * FROM temptest;
|
||||
ERROR: Relation "temptest" does not exist
|
||||
|
@ -1,5 +1,5 @@
|
||||
#! /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`
|
||||
: ${TMPDIR=/tmp}
|
||||
@ -420,7 +420,7 @@ fi
|
||||
# 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
|
||||
# ----------
|
||||
|
||||
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
|
||||
echo "$me: could not drop user accounts"
|
||||
(exit 2); exit
|
||||
@ -545,12 +545,17 @@ do
|
||||
formatted=`echo $1 | awk '{printf "%-20.20s", $1;}'`
|
||||
$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
|
||||
# Start a parallel group
|
||||
$ECHO_N "parallel group ($# tests): $ECHO_C"
|
||||
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"
|
||||
) &
|
||||
done
|
||||
|
@ -718,6 +718,7 @@ copy test("........pg.dropped.1........") to stdout;
|
||||
copy test from stdin;
|
||||
10 11 12
|
||||
\.
|
||||
SET autocommit TO 'on';
|
||||
select * from test;
|
||||
copy test from stdin;
|
||||
21 22
|
||||
|
@ -71,6 +71,7 @@ COPY x from stdin;
|
||||
2002 232 40 50 60 70 80
|
||||
\.
|
||||
|
||||
SET autocommit TO 'on';
|
||||
-- various COPY options: delimiters, oids, NULL string
|
||||
COPY x (b, c, d, e) from stdin with oids delimiter ',' null 'x';
|
||||
500000,x,45,80,90
|
||||
|
@ -41,6 +41,8 @@ COPY basictest (testvarchar) FROM stdin; -- fail
|
||||
notsoshorttext
|
||||
\.
|
||||
|
||||
SET autocommit TO 'on';
|
||||
|
||||
COPY basictest (testvarchar) FROM stdin;
|
||||
short
|
||||
\.
|
||||
@ -100,6 +102,8 @@ COPY nulltest FROM stdin; --fail
|
||||
a b \N d
|
||||
\.
|
||||
|
||||
SET autocommit TO 'on';
|
||||
|
||||
COPY nulltest FROM stdin;
|
||||
a b c \N
|
||||
\.
|
||||
|
@ -147,6 +147,8 @@ SELECT * FROM atestv2; -- fail (even though regressuser2 can access underlying a
|
||||
|
||||
-- switch to superuser
|
||||
\c -
|
||||
SET autocommit TO 'on';
|
||||
|
||||
REVOKE ALL PRIVILEGES ON LANGUAGE sql FROM PUBLIC;
|
||||
GRANT USAGE ON LANGUAGE sql TO regressuser1; -- ok
|
||||
GRANT USAGE ON LANGUAGE c TO PUBLIC; -- fail
|
||||
@ -182,6 +184,8 @@ SELECT testfunc1(5); -- ok
|
||||
DROP FUNCTION testfunc1(int); -- fail
|
||||
|
||||
\c -
|
||||
SET autocommit TO 'on';
|
||||
|
||||
DROP FUNCTION testfunc1(int); -- ok
|
||||
-- restore to sanity
|
||||
GRANT ALL PRIVILEGES ON LANGUAGE sql TO PUBLIC;
|
||||
@ -199,6 +203,8 @@ select has_table_privilege(1,'rule');
|
||||
|
||||
-- superuser
|
||||
\c -
|
||||
SET autocommit TO 'on';
|
||||
|
||||
select has_table_privilege(current_user,'pg_shadow','select');
|
||||
select has_table_privilege(current_user,'pg_shadow','insert');
|
||||
|
||||
@ -290,6 +296,8 @@ from (select oid from pg_class where relname = 'atest1') as t1;
|
||||
-- clean up
|
||||
|
||||
\c regression
|
||||
SET autocommit TO 'on';
|
||||
|
||||
DROP FUNCTION testfunc2(int);
|
||||
DROP FUNCTION testfunc4(boolean);
|
||||
|
||||
|
@ -44,6 +44,7 @@ CREATE TEMP TABLE temptest(col int);
|
||||
-- test temp table deletion
|
||||
|
||||
\c regression
|
||||
SET autocommit TO 'on';
|
||||
|
||||
SELECT * FROM temptest;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user