pg_ivm/expected/create_insert2.out
Yugo Nagata 966a865d60 Support for PostgreSQL 15 or earlier
- Not use List APIs for xid that are introduced from PostgreSQL 16

- Fix an error during isolation test
   ERROR:  subquery in FROM must have an alias

- Not use isolation test for PostgreSQL 13
2025-03-11 16:24:34 +09:00

345 lines
10 KiB
Text

Parsed test spec with 2 sessions
starting permutation: s1 create s2 insert c1 check2 c2 mv
step s1: SELECT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
create_immv
-----------
1
(1 row)
step s2: SELECT;
step insert: INSERT INTO a VALUES (2); <waiting ...>
step c1: COMMIT;
step insert: <... completed>
step check2: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c2: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
2|2
(2 rows)
check_mv
--------
ok
(1 row)
starting permutation: s1 create s2 c1 insert check2 c2 mv
step s1: SELECT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
create_immv
-----------
1
(1 row)
step s2: SELECT;
step c1: COMMIT;
step insert: INSERT INTO a VALUES (2);
step check2: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c2: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
2|2
(2 rows)
check_mv
--------
ok
(1 row)
starting permutation: s1 s2 create insert c1 check2 c2 mv
step s1: SELECT;
step s2: SELECT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
create_immv
-----------
1
(1 row)
step insert: INSERT INTO a VALUES (2); <waiting ...>
step c1: COMMIT;
step insert: <... completed>
step check2: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c2: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
2|2
(2 rows)
check_mv
--------
ok
(1 row)
starting permutation: s1 s2 insert create c2 check1 c1 mv
step s1: SELECT;
step s2: SELECT;
step insert: INSERT INTO a VALUES (2);
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
<waiting ...>
step c2: COMMIT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create: <... completed>
create_immv
-----------
1
(1 row)
step check1: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c1: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
(1 row)
check_mv
--------
ng
(1 row)
starting permutation: s1 s2 create c1 insert check2 c2 mv
step s1: SELECT;
step s2: SELECT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
create_immv
-----------
1
(1 row)
step c1: COMMIT;
step insert: INSERT INTO a VALUES (2);
step check2: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c2: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
2|2
(2 rows)
check_mv
--------
ok
(1 row)
starting permutation: s2 insert s1 create c2 check1 c1 mv
step s2: SELECT;
step insert: INSERT INTO a VALUES (2);
step s1: SELECT;
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
<waiting ...>
step c2: COMMIT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create: <... completed>
create_immv
-----------
1
(1 row)
step check1: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c1: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
(1 row)
check_mv
--------
ng
(1 row)
starting permutation: s2 insert s1 c2 create check1 c1 mv
step s2: SELECT;
step insert: INSERT INTO a VALUES (2);
step s1: SELECT;
step c2: COMMIT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
create_immv
-----------
1
(1 row)
step check1: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c1: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
(1 row)
check_mv
--------
ng
(1 row)
starting permutation: s2 s1 insert c2 create check1 c1 mv
step s2: SELECT;
step s1: SELECT;
step insert: INSERT INTO a VALUES (2);
step c2: COMMIT;
tx1: NOTICE: could not create an index on immv "mv" automatically
DETAIL: This target list does not have all the primary key columns, or this view does not contain GROUP BY or DISTINCT clause.
HINT: Create an index on the immv for efficient incremental maintenance.
tx1: WARNING: inconsistent view can be created in isolation level SERIALIZABLE or REPEATABLE READ
DETAIL: The view may not include effects of a concurrent transaction.
HINT: create_immv should be used in isolation level READ COMMITTED, or execute refresh_immv to make sure the view is consistent.
step create:
SELECT pgivm.create_immv('mv(x,y)', 'SELECT * FROM a a1, a a2 WHERE a1.i = a2.i');
CREATE FUNCTION check_mv() RETURNS text AS
$$ SELECT CASE WHEN count(*) = 0 THEN 'ok' ELSE 'ng' END
FROM ((SELECT * FROM mv EXCEPT ALL SELECT * FROM v) UNION ALL
(SELECT * FROM v EXCEPT ALL SELECT * FROM mv)) v $$ LANGUAGE sql;
create_immv
-----------
1
(1 row)
step check1: SELECT check_mv();
check_mv
--------
ok
(1 row)
step c1: COMMIT;
step mv: SELECT * FROM mv ORDER BY 1,2; SELECT check_mv();
x|y
-+-
1|1
(1 row)
check_mv
--------
ng
(1 row)