diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/boolean.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/boolean.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/boolean.out 2024-02-22 13:04:49.011881000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/boolean.out 2024-02-22 13:08:01.699275000 +0000
@@ -44,8 +44,6 @@
SELECT bool 'test' AS error;
ERROR: invalid input syntax for type boolean: "test"
-LINE 1: SELECT bool 'test' AS error;
- ^
SELECT bool 'false' AS false;
false
-------
@@ -54,8 +52,6 @@
SELECT bool 'foo' AS error;
ERROR: invalid input syntax for type boolean: "foo"
-LINE 1: SELECT bool 'foo' AS error;
- ^
SELECT bool 'y' AS true;
true
------
@@ -70,8 +66,6 @@
SELECT bool 'yeah' AS error;
ERROR: invalid input syntax for type boolean: "yeah"
-LINE 1: SELECT bool 'yeah' AS error;
- ^
SELECT bool 'n' AS false;
false
-------
@@ -86,8 +80,6 @@
SELECT bool 'nay' AS error;
ERROR: invalid input syntax for type boolean: "nay"
-LINE 1: SELECT bool 'nay' AS error;
- ^
SELECT bool 'on' AS true;
true
------
@@ -108,16 +100,10 @@
SELECT bool 'o' AS error;
ERROR: invalid input syntax for type boolean: "o"
-LINE 1: SELECT bool 'o' AS error;
- ^
SELECT bool 'on_' AS error;
ERROR: invalid input syntax for type boolean: "on_"
-LINE 1: SELECT bool 'on_' AS error;
- ^
SELECT bool 'off_' AS error;
ERROR: invalid input syntax for type boolean: "off_"
-LINE 1: SELECT bool 'off_' AS error;
- ^
SELECT bool '1' AS true;
true
------
@@ -126,8 +112,6 @@
SELECT bool '11' AS error;
ERROR: invalid input syntax for type boolean: "11"
-LINE 1: SELECT bool '11' AS error;
- ^
SELECT bool '0' AS false;
false
-------
@@ -136,12 +120,8 @@
SELECT bool '000' AS error;
ERROR: invalid input syntax for type boolean: "000"
-LINE 1: SELECT bool '000' AS error;
- ^
SELECT bool '' AS error;
ERROR: invalid input syntax for type boolean: ""
-LINE 1: SELECT bool '' AS error;
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('true', 'bool');
pg_input_is_valid
@@ -299,8 +279,6 @@
INSERT INTO BOOLTBL2 (f1)
VALUES (bool 'XXX');
ERROR: invalid input syntax for type boolean: "XXX"
-LINE 2: VALUES (bool 'XXX');
- ^
-- BOOLTBL2 should be full of false's at this point
SELECT BOOLTBL2.* FROM BOOLTBL2;
f1
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/text.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/text.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/text.out 2024-02-22 13:04:49.016852000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/text.out 2024-02-22 13:08:01.664728000 +0000
@@ -25,8 +25,6 @@
-- this no longer works:
select length(42);
ERROR: function length(integer) does not exist
-LINE 1: select length(42);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
-- But as a special exception for usability's sake, we still allow implicit
-- casting to text in concatenations, so long as the other input is text or
@@ -46,8 +44,6 @@
-- but not this:
select 3 || 4.0;
ERROR: operator does not exist: integer || numeric
-LINE 1: select 3 || 4.0;
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
/*
* various string functions
@@ -168,8 +164,6 @@
--should fail
select concat_ws(',', variadic 10);
ERROR: VARIADIC argument must be an array
-LINE 1: select concat_ws(',', variadic 10);
- ^
/*
* format
*/
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/int2.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/int2.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/int2.out 2024-02-22 13:04:49.013945000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/int2.out 2024-02-22 13:08:01.679728000 +0000
@@ -5,36 +5,20 @@
-- Here we just try to insert bad values.
INSERT INTO INT2_TBL(f1) VALUES ('34.5');
ERROR: invalid input syntax for type smallint: "34.5"
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('34.5');
- ^
INSERT INTO INT2_TBL(f1) VALUES ('100000');
ERROR: value "100000" is out of range for type smallint
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('100000');
- ^
INSERT INTO INT2_TBL(f1) VALUES ('asdf');
ERROR: invalid input syntax for type smallint: "asdf"
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('asdf');
- ^
INSERT INTO INT2_TBL(f1) VALUES (' ');
ERROR: invalid input syntax for type smallint: " "
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES (' ');
- ^
INSERT INTO INT2_TBL(f1) VALUES ('- 1234');
ERROR: invalid input syntax for type smallint: "- 1234"
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('- 1234');
- ^
INSERT INTO INT2_TBL(f1) VALUES ('4 444');
ERROR: invalid input syntax for type smallint: "4 444"
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('4 444');
- ^
INSERT INTO INT2_TBL(f1) VALUES ('123 dt');
ERROR: invalid input syntax for type smallint: "123 dt"
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('123 dt');
- ^
INSERT INTO INT2_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type smallint: ""
-LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('');
- ^
SELECT * FROM INT2_TBL;
f1
--------
@@ -369,16 +353,10 @@
SELECT int2 '0b';
ERROR: invalid input syntax for type smallint: "0b"
-LINE 1: SELECT int2 '0b';
- ^
SELECT int2 '0o';
ERROR: invalid input syntax for type smallint: "0o"
-LINE 1: SELECT int2 '0o';
- ^
SELECT int2 '0x';
ERROR: invalid input syntax for type smallint: "0x"
-LINE 1: SELECT int2 '0x';
- ^
-- cases near overflow
SELECT int2 '0b111111111111111';
int2
@@ -388,8 +366,6 @@
SELECT int2 '0b1000000000000000';
ERROR: value "0b1000000000000000" is out of range for type smallint
-LINE 1: SELECT int2 '0b1000000000000000';
- ^
SELECT int2 '0o77777';
int2
-------
@@ -398,8 +374,6 @@
SELECT int2 '0o100000';
ERROR: value "0o100000" is out of range for type smallint
-LINE 1: SELECT int2 '0o100000';
- ^
SELECT int2 '0x7FFF';
int2
-------
@@ -408,8 +382,6 @@
SELECT int2 '0x8000';
ERROR: value "0x8000" is out of range for type smallint
-LINE 1: SELECT int2 '0x8000';
- ^
SELECT int2 '-0b1000000000000000';
int2
--------
@@ -418,8 +390,6 @@
SELECT int2 '-0b1000000000000001';
ERROR: value "-0b1000000000000001" is out of range for type smallint
-LINE 1: SELECT int2 '-0b1000000000000001';
- ^
SELECT int2 '-0o100000';
int2
--------
@@ -428,8 +398,6 @@
SELECT int2 '-0o100001';
ERROR: value "-0o100001" is out of range for type smallint
-LINE 1: SELECT int2 '-0o100001';
- ^
SELECT int2 '-0x8000';
int2
--------
@@ -438,8 +406,6 @@
SELECT int2 '-0x8001';
ERROR: value "-0x8001" is out of range for type smallint
-LINE 1: SELECT int2 '-0x8001';
- ^
-- underscores
SELECT int2 '1_000';
int2
@@ -474,13 +440,7 @@
-- error cases
SELECT int2 '_100';
ERROR: invalid input syntax for type smallint: "_100"
-LINE 1: SELECT int2 '_100';
- ^
SELECT int2 '100_';
ERROR: invalid input syntax for type smallint: "100_"
-LINE 1: SELECT int2 '100_';
- ^
SELECT int2 '10__000';
ERROR: invalid input syntax for type smallint: "10__000"
-LINE 1: SELECT int2 '10__000';
- ^
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/int4.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/int4.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/int4.out 2024-02-22 13:04:49.013958000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/int4.out 2024-02-22 13:08:01.675782000 +0000
@@ -5,36 +5,20 @@
-- Here we just try to insert bad values.
INSERT INTO INT4_TBL(f1) VALUES ('34.5');
ERROR: invalid input syntax for type integer: "34.5"
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('34.5');
- ^
INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
ERROR: value "1000000000000" is out of range for type integer
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
- ^
INSERT INTO INT4_TBL(f1) VALUES ('asdf');
ERROR: invalid input syntax for type integer: "asdf"
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('asdf');
- ^
INSERT INTO INT4_TBL(f1) VALUES (' ');
ERROR: invalid input syntax for type integer: " "
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES (' ');
- ^
INSERT INTO INT4_TBL(f1) VALUES (' asdf ');
ERROR: invalid input syntax for type integer: " asdf "
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES (' asdf ');
- ^
INSERT INTO INT4_TBL(f1) VALUES ('- 1234');
ERROR: invalid input syntax for type integer: "- 1234"
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('- 1234');
- ^
INSERT INTO INT4_TBL(f1) VALUES ('123 5');
ERROR: invalid input syntax for type integer: "123 5"
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('123 5');
- ^
INSERT INTO INT4_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type integer: ""
-LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('');
- ^
SELECT * FROM INT4_TBL;
f1
-------------
@@ -477,16 +461,10 @@
SELECT int4 '0b';
ERROR: invalid input syntax for type integer: "0b"
-LINE 1: SELECT int4 '0b';
- ^
SELECT int4 '0o';
ERROR: invalid input syntax for type integer: "0o"
-LINE 1: SELECT int4 '0o';
- ^
SELECT int4 '0x';
ERROR: invalid input syntax for type integer: "0x"
-LINE 1: SELECT int4 '0x';
- ^
-- cases near overflow
SELECT int4 '0b1111111111111111111111111111111';
int4
@@ -496,8 +474,6 @@
SELECT int4 '0b10000000000000000000000000000000';
ERROR: value "0b10000000000000000000000000000000" is out of range for type integer
-LINE 1: SELECT int4 '0b10000000000000000000000000000000';
- ^
SELECT int4 '0o17777777777';
int4
------------
@@ -506,8 +482,6 @@
SELECT int4 '0o20000000000';
ERROR: value "0o20000000000" is out of range for type integer
-LINE 1: SELECT int4 '0o20000000000';
- ^
SELECT int4 '0x7FFFFFFF';
int4
------------
@@ -516,8 +490,6 @@
SELECT int4 '0x80000000';
ERROR: value "0x80000000" is out of range for type integer
-LINE 1: SELECT int4 '0x80000000';
- ^
SELECT int4 '-0b10000000000000000000000000000000';
int4
-------------
@@ -526,8 +498,6 @@
SELECT int4 '-0b10000000000000000000000000000001';
ERROR: value "-0b10000000000000000000000000000001" is out of range for type integer
-LINE 1: SELECT int4 '-0b10000000000000000000000000000001';
- ^
SELECT int4 '-0o20000000000';
int4
-------------
@@ -536,8 +506,6 @@
SELECT int4 '-0o20000000001';
ERROR: value "-0o20000000001" is out of range for type integer
-LINE 1: SELECT int4 '-0o20000000001';
- ^
SELECT int4 '-0x80000000';
int4
-------------
@@ -546,8 +514,6 @@
SELECT int4 '-0x80000001';
ERROR: value "-0x80000001" is out of range for type integer
-LINE 1: SELECT int4 '-0x80000001';
- ^
-- underscores
SELECT int4 '1_000_000';
int4
@@ -582,13 +548,7 @@
-- error cases
SELECT int4 '_100';
ERROR: invalid input syntax for type integer: "_100"
-LINE 1: SELECT int4 '_100';
- ^
SELECT int4 '100_';
ERROR: invalid input syntax for type integer: "100_"
-LINE 1: SELECT int4 '100_';
- ^
SELECT int4 '100__000';
ERROR: invalid input syntax for type integer: "100__000"
-LINE 1: SELECT int4 '100__000';
- ^
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/int8.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/int8.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/int8.out 2024-02-22 13:04:49.013996000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/int8.out 2024-02-22 13:08:01.729937000 +0000
@@ -6,32 +6,18 @@
-- Here we just try to insert bad values.
INSERT INTO INT8_TBL(q1) VALUES (' ');
ERROR: invalid input syntax for type bigint: " "
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES (' ');
- ^
INSERT INTO INT8_TBL(q1) VALUES ('xxx');
ERROR: invalid input syntax for type bigint: "xxx"
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES ('xxx');
- ^
INSERT INTO INT8_TBL(q1) VALUES ('3908203590239580293850293850329485');
ERROR: value "3908203590239580293850293850329485" is out of range for type bigint
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES ('39082035902395802938502938...
- ^
INSERT INTO INT8_TBL(q1) VALUES ('-1204982019841029840928340329840934');
ERROR: value "-1204982019841029840928340329840934" is out of range for type bigint
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES ('-1204982019841029840928340...
- ^
INSERT INTO INT8_TBL(q1) VALUES ('- 123');
ERROR: invalid input syntax for type bigint: "- 123"
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES ('- 123');
- ^
INSERT INTO INT8_TBL(q1) VALUES (' 345 5');
ERROR: invalid input syntax for type bigint: " 345 5"
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES (' 345 5');
- ^
INSERT INTO INT8_TBL(q1) VALUES ('');
ERROR: invalid input syntax for type bigint: ""
-LINE 1: INSERT INTO INT8_TBL(q1) VALUES ('');
- ^
SELECT * FROM INT8_TBL;
q1 | q2
------------------+-------------------
@@ -659,8 +645,6 @@
select '-9223372036854775809'::int8;
ERROR: value "-9223372036854775809" is out of range for type bigint
-LINE 1: select '-9223372036854775809'::int8;
- ^
select '9223372036854775807'::int8;
int8
---------------------
@@ -669,8 +653,6 @@
select '9223372036854775808'::int8;
ERROR: value "9223372036854775808" is out of range for type bigint
-LINE 1: select '9223372036854775808'::int8;
- ^
select -('-9223372036854775807'::int8);
?column?
---------------------
@@ -975,16 +957,10 @@
SELECT int8 '0b';
ERROR: invalid input syntax for type bigint: "0b"
-LINE 1: SELECT int8 '0b';
- ^
SELECT int8 '0o';
ERROR: invalid input syntax for type bigint: "0o"
-LINE 1: SELECT int8 '0o';
- ^
SELECT int8 '0x';
ERROR: invalid input syntax for type bigint: "0x"
-LINE 1: SELECT int8 '0x';
- ^
-- cases near overflow
SELECT int8 '0b111111111111111111111111111111111111111111111111111111111111111';
int8
@@ -994,8 +970,6 @@
SELECT int8 '0b1000000000000000000000000000000000000000000000000000000000000000';
ERROR: value "0b1000000000000000000000000000000000000000000000000000000000000000" is out of range for type bigint
-LINE 1: SELECT int8 '0b100000000000000000000000000000000000000000000...
- ^
SELECT int8 '0o777777777777777777777';
int8
---------------------
@@ -1004,8 +978,6 @@
SELECT int8 '0o1000000000000000000000';
ERROR: value "0o1000000000000000000000" is out of range for type bigint
-LINE 1: SELECT int8 '0o1000000000000000000000';
- ^
SELECT int8 '0x7FFFFFFFFFFFFFFF';
int8
---------------------
@@ -1014,8 +986,6 @@
SELECT int8 '0x8000000000000000';
ERROR: value "0x8000000000000000" is out of range for type bigint
-LINE 1: SELECT int8 '0x8000000000000000';
- ^
SELECT int8 '-0b1000000000000000000000000000000000000000000000000000000000000000';
int8
----------------------
@@ -1024,8 +994,6 @@
SELECT int8 '-0b1000000000000000000000000000000000000000000000000000000000000001';
ERROR: value "-0b1000000000000000000000000000000000000000000000000000000000000001" is out of range for type bigint
-LINE 1: SELECT int8 '-0b10000000000000000000000000000000000000000000...
- ^
SELECT int8 '-0o1000000000000000000000';
int8
----------------------
@@ -1034,8 +1002,6 @@
SELECT int8 '-0o1000000000000000000001';
ERROR: value "-0o1000000000000000000001" is out of range for type bigint
-LINE 1: SELECT int8 '-0o1000000000000000000001';
- ^
SELECT int8 '-0x8000000000000000';
int8
----------------------
@@ -1044,8 +1010,6 @@
SELECT int8 '-0x8000000000000001';
ERROR: value "-0x8000000000000001" is out of range for type bigint
-LINE 1: SELECT int8 '-0x8000000000000001';
- ^
-- underscores
SELECT int8 '1_000_000';
int8
@@ -1080,13 +1044,7 @@
-- error cases
SELECT int8 '_100';
ERROR: invalid input syntax for type bigint: "_100"
-LINE 1: SELECT int8 '_100';
- ^
SELECT int8 '100_';
ERROR: invalid input syntax for type bigint: "100_"
-LINE 1: SELECT int8 '100_';
- ^
SELECT int8 '100__000';
ERROR: invalid input syntax for type bigint: "100__000"
-LINE 1: SELECT int8 '100__000';
- ^
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/oid.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/oid.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/oid.out 2024-02-22 13:04:49.015096000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/oid.out 2024-02-22 13:08:01.615260000 +0000
@@ -14,44 +14,24 @@
-- bad inputs
INSERT INTO OID_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type oid: ""
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('');
- ^
INSERT INTO OID_TBL(f1) VALUES (' ');
ERROR: invalid input syntax for type oid: " "
-LINE 1: INSERT INTO OID_TBL(f1) VALUES (' ');
- ^
INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
ERROR: invalid input syntax for type oid: "asdfasd"
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
- ^
INSERT INTO OID_TBL(f1) VALUES ('99asdfasd');
ERROR: invalid input syntax for type oid: "99asdfasd"
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('99asdfasd');
- ^
INSERT INTO OID_TBL(f1) VALUES ('5 d');
ERROR: invalid input syntax for type oid: "5 d"
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('5 d');
- ^
INSERT INTO OID_TBL(f1) VALUES (' 5d');
ERROR: invalid input syntax for type oid: " 5d"
-LINE 1: INSERT INTO OID_TBL(f1) VALUES (' 5d');
- ^
INSERT INTO OID_TBL(f1) VALUES ('5 5');
ERROR: invalid input syntax for type oid: "5 5"
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('5 5');
- ^
INSERT INTO OID_TBL(f1) VALUES (' - 500');
ERROR: invalid input syntax for type oid: " - 500"
-LINE 1: INSERT INTO OID_TBL(f1) VALUES (' - 500');
- ^
INSERT INTO OID_TBL(f1) VALUES ('32958209582039852935');
ERROR: value "32958209582039852935" is out of range for type oid
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('32958209582039852935');
- ^
INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
ERROR: value "-23582358720398502385" is out of range for type oid
-LINE 1: INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
- ^
SELECT * FROM OID_TBL;
f1
------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/float4.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/float4.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/float4.out 2024-02-22 13:04:49.013030000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/float4.out 2024-02-22 13:08:01.795225000 +0000
@@ -10,20 +10,12 @@
-- test for over and under flow
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70');
ERROR: "10e70" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
ERROR: "-10e70" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
ERROR: "10e-70" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
ERROR: "-10e-70" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70'::float8);
ERROR: value out of range: overflow
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70'::float8);
@@ -34,53 +26,29 @@
ERROR: value out of range: underflow
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400');
ERROR: "10e400" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e400');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400');
ERROR: "-10e400" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e400');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400');
ERROR: "10e-400" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-400');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400');
ERROR: "-10e-400" is out of range for type real
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-400');
- ^
-- bad input
INSERT INTO FLOAT4_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type real: ""
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES (' ');
ERROR: invalid input syntax for type real: " "
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES (' ');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
ERROR: invalid input syntax for type real: "xyz"
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
ERROR: invalid input syntax for type real: "5.0.0"
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
ERROR: invalid input syntax for type real: "5 . 0"
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0');
ERROR: invalid input syntax for type real: "5. 0"
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5. 0');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0');
ERROR: invalid input syntax for type real: " - 3.0"
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES (' - 3.0');
- ^
INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5');
ERROR: invalid input syntax for type real: "123 5"
-LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('123 5');
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('34.5', 'float4');
pg_input_is_valid
@@ -140,16 +108,10 @@
-- bad special inputs
SELECT 'N A N'::float4;
ERROR: invalid input syntax for type real: "N A N"
-LINE 1: SELECT 'N A N'::float4;
- ^
SELECT 'NaN x'::float4;
ERROR: invalid input syntax for type real: "NaN x"
-LINE 1: SELECT 'NaN x'::float4;
- ^
SELECT ' INFINITY x'::float4;
ERROR: invalid input syntax for type real: " INFINITY x"
-LINE 1: SELECT ' INFINITY x'::float4;
- ^
SELECT 'Infinity'::float4 + 100.0;
?column?
----------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/float8.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/float8.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/float8.out 2024-02-22 13:04:49.013055000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/float8.out 2024-02-22 13:08:01.751215000 +0000
@@ -14,20 +14,12 @@
-- test for underflow and overflow handling
SELECT '10e400'::float8;
ERROR: "10e400" is out of range for type double precision
-LINE 1: SELECT '10e400'::float8;
- ^
SELECT '-10e400'::float8;
ERROR: "-10e400" is out of range for type double precision
-LINE 1: SELECT '-10e400'::float8;
- ^
SELECT '10e-400'::float8;
ERROR: "10e-400" is out of range for type double precision
-LINE 1: SELECT '10e-400'::float8;
- ^
SELECT '-10e-400'::float8;
ERROR: "-10e-400" is out of range for type double precision
-LINE 1: SELECT '-10e-400'::float8;
- ^
-- test smallest normalized input
SELECT float8send('2.2250738585072014E-308'::float8);
float8send
@@ -38,36 +30,20 @@
-- bad input
INSERT INTO FLOAT8_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type double precision: ""
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES (' ');
ERROR: invalid input syntax for type double precision: " "
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES (' ');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('xyz');
ERROR: invalid input syntax for type double precision: "xyz"
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('xyz');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('5.0.0');
ERROR: invalid input syntax for type double precision: "5.0.0"
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('5.0.0');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('5 . 0');
ERROR: invalid input syntax for type double precision: "5 . 0"
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('5 . 0');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('5. 0');
ERROR: invalid input syntax for type double precision: "5. 0"
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('5. 0');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES (' - 3');
ERROR: invalid input syntax for type double precision: " - 3"
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES (' - 3');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('123 5');
ERROR: invalid input syntax for type double precision: "123 5"
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('123 5');
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('34.5', 'float8');
pg_input_is_valid
@@ -127,16 +103,10 @@
-- bad special inputs
SELECT 'N A N'::float8;
ERROR: invalid input syntax for type double precision: "N A N"
-LINE 1: SELECT 'N A N'::float8;
- ^
SELECT 'NaN x'::float8;
ERROR: invalid input syntax for type double precision: "NaN x"
-LINE 1: SELECT 'NaN x'::float8;
- ^
SELECT ' INFINITY x'::float8;
ERROR: invalid input syntax for type double precision: " INFINITY x"
-LINE 1: SELECT ' INFINITY x'::float8;
- ^
SELECT 'Infinity'::float8 + 100.0;
?column?
----------
@@ -833,20 +803,12 @@
-- test for over- and underflow
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
ERROR: "10e400" is out of range for type double precision
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
ERROR: "-10e400" is out of range for type double precision
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
ERROR: "10e-400" is out of range for type double precision
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
- ^
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
ERROR: "-10e-400" is out of range for type double precision
-LINE 1: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
- ^
DROP TABLE FLOAT8_TBL;
-- Check the float8 values exported for use by other tests
SELECT * FROM FLOAT8_TBL;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/bit.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/bit.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/bit.out 2024-02-22 13:04:49.011862000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/bit.out 2024-02-22 13:08:01.805668000 +0000
@@ -43,20 +43,12 @@
-- Literals with syntax errors
SELECT b' 0';
ERROR: " " is not a valid binary digit
-LINE 1: SELECT b' 0';
- ^
SELECT b'0 ';
ERROR: " " is not a valid binary digit
-LINE 1: SELECT b'0 ';
- ^
SELECT x' 0';
ERROR: " " is not a valid hexadecimal digit
-LINE 1: SELECT x' 0';
- ^
SELECT x'0 ';
ERROR: " " is not a valid hexadecimal digit
-LINE 1: SELECT x'0 ';
- ^
-- Concatenation
SELECT v, b, (v || b) AS concat
FROM BIT_TABLE, VARBIT_TABLE
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/numeric.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/numeric.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/numeric.out 2024-02-22 13:04:49.014766000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/numeric.out 2024-02-22 13:08:02.770209000 +0000
@@ -2228,112 +2228,58 @@
-- bad inputs
INSERT INTO num_input_test(n1) VALUES (' ');
ERROR: invalid input syntax for type numeric: " "
-LINE 1: INSERT INTO num_input_test(n1) VALUES (' ');
- ^
INSERT INTO num_input_test(n1) VALUES (' 1234 %');
ERROR: invalid input syntax for type numeric: " 1234 %"
-LINE 1: INSERT INTO num_input_test(n1) VALUES (' 1234 %');
- ^
INSERT INTO num_input_test(n1) VALUES ('xyz');
ERROR: invalid input syntax for type numeric: "xyz"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('xyz');
- ^
INSERT INTO num_input_test(n1) VALUES ('- 1234');
ERROR: invalid input syntax for type numeric: "- 1234"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('- 1234');
- ^
INSERT INTO num_input_test(n1) VALUES ('5 . 0');
ERROR: invalid input syntax for type numeric: "5 . 0"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('5 . 0');
- ^
INSERT INTO num_input_test(n1) VALUES ('5. 0 ');
ERROR: invalid input syntax for type numeric: "5. 0 "
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('5. 0 ');
- ^
INSERT INTO num_input_test(n1) VALUES ('');
ERROR: invalid input syntax for type numeric: ""
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('');
- ^
INSERT INTO num_input_test(n1) VALUES (' N aN ');
ERROR: invalid input syntax for type numeric: " N aN "
-LINE 1: INSERT INTO num_input_test(n1) VALUES (' N aN ');
- ^
INSERT INTO num_input_test(n1) VALUES ('+NaN');
ERROR: invalid input syntax for type numeric: "+NaN"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('+NaN');
- ^
INSERT INTO num_input_test(n1) VALUES ('-NaN');
ERROR: invalid input syntax for type numeric: "-NaN"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('-NaN');
- ^
INSERT INTO num_input_test(n1) VALUES ('+ infinity');
ERROR: invalid input syntax for type numeric: "+ infinity"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('+ infinity');
- ^
INSERT INTO num_input_test(n1) VALUES ('_123');
ERROR: invalid input syntax for type numeric: "_123"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('_123');
- ^
INSERT INTO num_input_test(n1) VALUES ('123_');
ERROR: invalid input syntax for type numeric: "123_"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('123_');
- ^
INSERT INTO num_input_test(n1) VALUES ('12__34');
ERROR: invalid input syntax for type numeric: "12__34"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('12__34');
- ^
INSERT INTO num_input_test(n1) VALUES ('123_.456');
ERROR: invalid input syntax for type numeric: "123_.456"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('123_.456');
- ^
INSERT INTO num_input_test(n1) VALUES ('123._456');
ERROR: invalid input syntax for type numeric: "123._456"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('123._456');
- ^
INSERT INTO num_input_test(n1) VALUES ('1.2e_34');
ERROR: invalid input syntax for type numeric: "1.2e_34"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('1.2e_34');
- ^
INSERT INTO num_input_test(n1) VALUES ('1.2e34_');
ERROR: invalid input syntax for type numeric: "1.2e34_"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('1.2e34_');
- ^
INSERT INTO num_input_test(n1) VALUES ('1.2e3__4');
ERROR: invalid input syntax for type numeric: "1.2e3__4"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('1.2e3__4');
- ^
INSERT INTO num_input_test(n1) VALUES ('0b1112');
ERROR: invalid input syntax for type numeric: "0b1112"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0b1112');
- ^
INSERT INTO num_input_test(n1) VALUES ('0c1112');
ERROR: invalid input syntax for type numeric: "0c1112"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0c1112');
- ^
INSERT INTO num_input_test(n1) VALUES ('0o12345678');
ERROR: invalid input syntax for type numeric: "0o12345678"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0o12345678');
- ^
INSERT INTO num_input_test(n1) VALUES ('0x1eg');
ERROR: invalid input syntax for type numeric: "0x1eg"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0x1eg');
- ^
INSERT INTO num_input_test(n1) VALUES ('0x12.34');
ERROR: invalid input syntax for type numeric: "0x12.34"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0x12.34');
- ^
INSERT INTO num_input_test(n1) VALUES ('0x__1234');
ERROR: invalid input syntax for type numeric: "0x__1234"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0x__1234');
- ^
INSERT INTO num_input_test(n1) VALUES ('0x1234_');
ERROR: invalid input syntax for type numeric: "0x1234_"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0x1234_');
- ^
INSERT INTO num_input_test(n1) VALUES ('0x12__34');
ERROR: invalid input syntax for type numeric: "0x12__34"
-LINE 1: INSERT INTO num_input_test(n1) VALUES ('0x12__34');
- ^
SELECT * FROM num_input_test;
n1
-----------------------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/txid.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/txid.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/txid.out 2024-02-22 13:04:49.017210000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/txid.out 2024-02-22 13:08:01.646956000 +0000
@@ -24,20 +24,12 @@
-- errors
select '31:12:'::txid_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "31:12:"
-LINE 1: select '31:12:'::txid_snapshot;
- ^
select '0:1:'::txid_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "0:1:"
-LINE 1: select '0:1:'::txid_snapshot;
- ^
select '12:13:0'::txid_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "12:13:0"
-LINE 1: select '12:13:0'::txid_snapshot;
- ^
select '12:16:14,13'::txid_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "12:16:14,13"
-LINE 1: select '12:16:14,13'::txid_snapshot;
- ^
create temp table snapshot_test (
nr integer,
snap txid_snapshot
@@ -239,8 +231,6 @@
SELECT txid_snapshot '1:9223372036854775808:3';
ERROR: invalid input syntax for type pg_snapshot: "1:9223372036854775808:3"
-LINE 1: SELECT txid_snapshot '1:9223372036854775808:3';
- ^
-- test txid_current_if_assigned
BEGIN;
SELECT txid_current_if_assigned() IS NULL;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/uuid.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/uuid.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/uuid.out 2024-02-22 13:04:49.017521000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/uuid.out 2024-02-22 13:08:01.645811000 +0000
@@ -14,31 +14,19 @@
-- too long
INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-1111-111111111111F');
ERROR: invalid input syntax for type uuid: "11111111-1111-1111-1111-111111111111F"
-LINE 1: INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-111...
- ^
-- too short
INSERT INTO guid1(guid_field) VALUES('{11111111-1111-1111-1111-11111111111}');
ERROR: invalid input syntax for type uuid: "{11111111-1111-1111-1111-11111111111}"
-LINE 1: INSERT INTO guid1(guid_field) VALUES('{11111111-1111-1111-11...
- ^
-- valid data but invalid format
INSERT INTO guid1(guid_field) VALUES('111-11111-1111-1111-1111-111111111111');
ERROR: invalid input syntax for type uuid: "111-11111-1111-1111-1111-111111111111"
-LINE 1: INSERT INTO guid1(guid_field) VALUES('111-11111-1111-1111-11...
- ^
INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-2222-222222222222 ');
ERROR: invalid input syntax for type uuid: "{22222222-2222-2222-2222-222222222222 "
-LINE 1: INSERT INTO guid1(guid_field) VALUES('{22222222-2222-2222-22...
- ^
-- invalid data
INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-G111-111111111111');
ERROR: invalid input syntax for type uuid: "11111111-1111-1111-G111-111111111111"
-LINE 1: INSERT INTO guid1(guid_field) VALUES('11111111-1111-1111-G11...
- ^
INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-1111-111111111111');
ERROR: invalid input syntax for type uuid: "11+11111-1111-1111-1111-111111111111"
-LINE 1: INSERT INTO guid1(guid_field) VALUES('11+11111-1111-1111-111...
- ^
-- test non-error-throwing API
SELECT pg_input_is_valid('11', 'uuid');
pg_input_is_valid
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/enum.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/enum.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/enum.out 2024-02-22 13:04:49.012878000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/enum.out 2024-02-22 13:08:01.816619000 +0000
@@ -22,8 +22,6 @@
SELECT 'mauve'::rainbow;
ERROR: invalid input value for enum rainbow: "mauve"
-LINE 1: SELECT 'mauve'::rainbow;
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('red', 'rainbow');
pg_input_is_valid
@@ -616,8 +614,6 @@
SAVEPOINT x;
SELECT 'new'::bogus; -- unsafe
ERROR: unsafe use of new value "new" of enum type bogus
-LINE 1: SELECT 'new'::bogus;
- ^
HINT: New enum values must be committed before they can be used.
ROLLBACK TO x;
SELECT enum_first(null::bogus); -- safe
@@ -658,8 +654,6 @@
ALTER TYPE bogon ADD VALUE 'bad';
SELECT 'bad'::bogon;
ERROR: unsafe use of new value "bad" of enum type bogon
-LINE 1: SELECT 'bad'::bogon;
- ^
HINT: New enum values must be committed before they can be used.
ROLLBACK;
-- but a renamed value is safe to use later in same transaction
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/money.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/money.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/money.out 2024-02-22 13:04:49.014660000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/money.out 2024-02-22 13:08:01.611568000 +0000
@@ -286,12 +286,8 @@
SELECT '123456789012345678'::money;
ERROR: value "123456789012345678" is out of range for type money
-LINE 1: SELECT '123456789012345678'::money;
- ^
SELECT '9223372036854775807'::money;
ERROR: value "9223372036854775807" is out of range for type money
-LINE 1: SELECT '9223372036854775807'::money;
- ^
SELECT '-12345'::money;
money
-------------
@@ -312,12 +308,8 @@
SELECT '-123456789012345678'::money;
ERROR: value "-123456789012345678" is out of range for type money
-LINE 1: SELECT '-123456789012345678'::money;
- ^
SELECT '-9223372036854775808'::money;
ERROR: value "-9223372036854775808" is out of range for type money
-LINE 1: SELECT '-9223372036854775808'::money;
- ^
-- special characters
SELECT '(1)'::money;
money
@@ -371,21 +363,13 @@
SELECT '-92233720368547758.09'::money;
ERROR: value "-92233720368547758.09" is out of range for type money
-LINE 1: SELECT '-92233720368547758.09'::money;
- ^
SELECT '92233720368547758.08'::money;
ERROR: value "92233720368547758.08" is out of range for type money
-LINE 1: SELECT '92233720368547758.08'::money;
- ^
-- rounding
SELECT '-92233720368547758.085'::money;
ERROR: value "-92233720368547758.085" is out of range for type money
-LINE 1: SELECT '-92233720368547758.085'::money;
- ^
SELECT '92233720368547758.075'::money;
ERROR: value "92233720368547758.075" is out of range for type money
-LINE 1: SELECT '92233720368547758.075'::money;
- ^
-- rounding vs. truncation in division
SELECT '878.08'::money / 11::float8;
?column?
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/rangetypes.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rangetypes.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/rangetypes.out 2024-02-22 13:04:49.015907000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rangetypes.out 2024-02-22 13:08:02.865706000 +0000
@@ -6,53 +6,33 @@
-- negative tests; should fail
select ''::textrange;
ERROR: malformed range literal: ""
-LINE 1: select ''::textrange;
- ^
DETAIL: Missing left parenthesis or bracket.
select '-[a,z)'::textrange;
ERROR: malformed range literal: "-[a,z)"
-LINE 1: select '-[a,z)'::textrange;
- ^
DETAIL: Missing left parenthesis or bracket.
select '[a,z) - '::textrange;
ERROR: malformed range literal: "[a,z) - "
-LINE 1: select '[a,z) - '::textrange;
- ^
DETAIL: Junk after right parenthesis or bracket.
select '(",a)'::textrange;
ERROR: malformed range literal: "(",a)"
-LINE 1: select '(",a)'::textrange;
- ^
DETAIL: Unexpected end of input.
select '(,,a)'::textrange;
ERROR: malformed range literal: "(,,a)"
-LINE 1: select '(,,a)'::textrange;
- ^
DETAIL: Too many commas.
select '(),a)'::textrange;
ERROR: malformed range literal: "(),a)"
-LINE 1: select '(),a)'::textrange;
- ^
DETAIL: Missing comma after lower bound.
select '(a,))'::textrange;
ERROR: malformed range literal: "(a,))"
-LINE 1: select '(a,))'::textrange;
- ^
DETAIL: Junk after right parenthesis or bracket.
select '(],a)'::textrange;
ERROR: malformed range literal: "(],a)"
-LINE 1: select '(],a)'::textrange;
- ^
DETAIL: Missing comma after lower bound.
select '(a,])'::textrange;
ERROR: malformed range literal: "(a,])"
-LINE 1: select '(a,])'::textrange;
- ^
DETAIL: Junk after right parenthesis or bracket.
select '[z,a]'::textrange;
ERROR: range lower bound must be less than or equal to range upper bound
-LINE 1: select '[z,a]'::textrange;
- ^
-- should succeed
select ' empty '::textrange;
textrange
@@ -1544,8 +1524,6 @@
-- should fail
select '[2010-01-01 01:00:00 -08, 2010-01-01 02:00:00 -05)'::tstzrange;
ERROR: range lower bound must be less than or equal to range upper bound
-LINE 1: select '[2010-01-01 01:00:00 -08, 2010-01-01 02:00:00 -05)':...
- ^
set timezone to default;
--
-- Test user-defined range of floats
@@ -1628,8 +1606,6 @@
-- should fail
select anyarray_anyrange_func(ARRAY[1,2], numrange(10,20));
ERROR: function anyarray_anyrange_func(integer[], numrange) does not exist
-LINE 1: select anyarray_anyrange_func(ARRAY[1,2], numrange(10,20));
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyarray_anyrange_func(anyarray, anyrange);
-- should fail
@@ -1667,8 +1643,6 @@
select rangetypes_sql(numrange(1,10), ARRAY[2,20]); -- match failure
ERROR: function rangetypes_sql(numrange, integer[]) does not exist
-LINE 1: select rangetypes_sql(numrange(1,10), ARRAY[2,20]);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
create function anycompatiblearray_anycompatiblerange_func(a anycompatiblearray, r anycompatiblerange)
returns anycompatible as 'select $1[1] + lower($2);' language sql;
@@ -1687,8 +1661,6 @@
-- should fail
select anycompatiblearray_anycompatiblerange_func(ARRAY[1.1,2], int4range(10,20));
ERROR: function anycompatiblearray_anycompatiblerange_func(numeric[], int4range) does not exist
-LINE 1: select anycompatiblearray_anycompatiblerange_func(ARRAY[1.1,...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anycompatiblearray_anycompatiblerange_func(anycompatiblearray, anycompatiblerange);
-- should fail
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/pg_lsn.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/pg_lsn.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/pg_lsn.out 2024-02-22 13:04:49.015390000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/pg_lsn.out 2024-02-22 13:08:01.626493000 +0000
@@ -8,24 +8,14 @@
-- Incorrect input
INSERT INTO PG_LSN_TBL VALUES ('G/0');
ERROR: invalid input syntax for type pg_lsn: "G/0"
-LINE 1: INSERT INTO PG_LSN_TBL VALUES ('G/0');
- ^
INSERT INTO PG_LSN_TBL VALUES ('-1/0');
ERROR: invalid input syntax for type pg_lsn: "-1/0"
-LINE 1: INSERT INTO PG_LSN_TBL VALUES ('-1/0');
- ^
INSERT INTO PG_LSN_TBL VALUES (' 0/12345678');
ERROR: invalid input syntax for type pg_lsn: " 0/12345678"
-LINE 1: INSERT INTO PG_LSN_TBL VALUES (' 0/12345678');
- ^
INSERT INTO PG_LSN_TBL VALUES ('ABCD/');
ERROR: invalid input syntax for type pg_lsn: "ABCD/"
-LINE 1: INSERT INTO PG_LSN_TBL VALUES ('ABCD/');
- ^
INSERT INTO PG_LSN_TBL VALUES ('/ABCD');
ERROR: invalid input syntax for type pg_lsn: "/ABCD"
-LINE 1: INSERT INTO PG_LSN_TBL VALUES ('/ABCD');
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('16AE7F7', 'pg_lsn');
pg_input_is_valid
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/regproc.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/regproc.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/regproc.out 2024-02-22 13:04:49.015934000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/regproc.out 2024-02-22 13:08:01.789173000 +0000
@@ -221,53 +221,29 @@
-- without schemaname
SELECT regoper('||//');
ERROR: operator does not exist: ||//
-LINE 1: SELECT regoper('||//');
- ^
SELECT regoperator('++(int4,int4)');
ERROR: operator does not exist: ++(int4,int4)
-LINE 1: SELECT regoperator('++(int4,int4)');
- ^
SELECT regproc('know');
ERROR: function "know" does not exist
-LINE 1: SELECT regproc('know');
- ^
SELECT regprocedure('absinthe(numeric)');
ERROR: function "absinthe(numeric)" does not exist
-LINE 1: SELECT regprocedure('absinthe(numeric)');
- ^
SELECT regclass('pg_classes');
ERROR: relation "pg_classes" does not exist
-LINE 1: SELECT regclass('pg_classes');
- ^
SELECT regtype('int3');
ERROR: type "int3" does not exist
-LINE 1: SELECT regtype('int3');
- ^
-- with schemaname
SELECT regoper('ng_catalog.||/');
ERROR: operator does not exist: ng_catalog.||/
-LINE 1: SELECT regoper('ng_catalog.||/');
- ^
SELECT regoperator('ng_catalog.+(int4,int4)');
ERROR: operator does not exist: ng_catalog.+(int4,int4)
-LINE 1: SELECT regoperator('ng_catalog.+(int4,int4)');
- ^
SELECT regproc('ng_catalog.now');
ERROR: function "ng_catalog.now" does not exist
-LINE 1: SELECT regproc('ng_catalog.now');
- ^
SELECT regprocedure('ng_catalog.abs(numeric)');
ERROR: function "ng_catalog.abs(numeric)" does not exist
-LINE 1: SELECT regprocedure('ng_catalog.abs(numeric)');
- ^
SELECT regclass('ng_catalog.pg_class');
ERROR: relation "ng_catalog.pg_class" does not exist
-LINE 1: SELECT regclass('ng_catalog.pg_class');
- ^
SELECT regtype('ng_catalog.int4');
ERROR: schema "ng_catalog" does not exist
-LINE 1: SELECT regtype('ng_catalog.int4');
- ^
\set VERBOSITY sqlstate \\ -- error message is encoding-dependent
SELECT regcollation('ng_catalog."POSIX"');
ERROR: 42704
@@ -275,36 +251,20 @@
-- schemaname not applicable
SELECT regrole('regress_regrole_test');
ERROR: role "regress_regrole_test" does not exist
-LINE 1: SELECT regrole('regress_regrole_test');
- ^
SELECT regrole('"regress_regrole_test"');
ERROR: role "regress_regrole_test" does not exist
-LINE 1: SELECT regrole('"regress_regrole_test"');
- ^
SELECT regrole('Nonexistent');
ERROR: role "nonexistent" does not exist
-LINE 1: SELECT regrole('Nonexistent');
- ^
SELECT regrole('"Nonexistent"');
ERROR: role "Nonexistent" does not exist
-LINE 1: SELECT regrole('"Nonexistent"');
- ^
SELECT regrole('foo.bar');
ERROR: invalid name syntax
-LINE 1: SELECT regrole('foo.bar');
- ^
SELECT regnamespace('Nonexistent');
ERROR: schema "nonexistent" does not exist
-LINE 1: SELECT regnamespace('Nonexistent');
- ^
SELECT regnamespace('"Nonexistent"');
ERROR: schema "Nonexistent" does not exist
-LINE 1: SELECT regnamespace('"Nonexistent"');
- ^
SELECT regnamespace('foo.bar');
ERROR: invalid name syntax
-LINE 1: SELECT regnamespace('foo.bar');
- ^
/* If objects don't exist, return NULL with no error. */
-- without schemaname
SELECT to_regoper('||//');
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/strings.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/strings.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/strings.out 2024-02-22 13:04:49.016709000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/strings.out 2024-02-22 13:08:04.489298000 +0000
@@ -196,12 +196,8 @@
SELECT E'\\xDeAdBeE'::bytea;
ERROR: invalid hexadecimal data: odd number of digits
-LINE 1: SELECT E'\\xDeAdBeE'::bytea;
- ^
SELECT E'\\xDeAdBeEx'::bytea;
ERROR: invalid hexadecimal digit: "x"
-LINE 1: SELECT E'\\xDeAdBeEx'::bytea;
- ^
SELECT E'\\xDe00BeEf'::bytea;
bytea
------------
@@ -234,8 +230,6 @@
SELECT E'De\\678dBeEf'::bytea;
ERROR: invalid input syntax for type bytea
-LINE 1: SELECT E'De\\678dBeEf'::bytea;
- ^
SET bytea_output TO escape;
SELECT E'\\xDeAdBeEf'::bytea;
bytea
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/numerology.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/numerology.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/numerology.out 2024-02-22 13:04:49.015061000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/numerology.out 2024-02-22 13:08:03.953029000 +0000
@@ -300,8 +300,6 @@
-- error cases
SELECT _100;
ERROR: column "_100" does not exist
-LINE 1: SELECT _100;
- ^
SELECT 100_;
ERROR: trailing junk after numeric literal at or near "100_"
LINE 1: SELECT 100_;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/point.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/point.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/point.out 2024-02-22 13:04:49.015484000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/point.out 2024-02-22 13:08:03.171994000 +0000
@@ -7,24 +7,14 @@
-- Here we just try to insert bad values.
INSERT INTO POINT_TBL(f1) VALUES ('asdfasdf');
ERROR: invalid input syntax for type point: "asdfasdf"
-LINE 1: INSERT INTO POINT_TBL(f1) VALUES ('asdfasdf');
- ^
INSERT INTO POINT_TBL(f1) VALUES ('(10.0 10.0)');
ERROR: invalid input syntax for type point: "(10.0 10.0)"
-LINE 1: INSERT INTO POINT_TBL(f1) VALUES ('(10.0 10.0)');
- ^
INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 10.0) x');
ERROR: invalid input syntax for type point: "(10.0, 10.0) x"
-LINE 1: INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 10.0) x');
- ^
INSERT INTO POINT_TBL(f1) VALUES ('(10.0,10.0');
ERROR: invalid input syntax for type point: "(10.0,10.0"
-LINE 1: INSERT INTO POINT_TBL(f1) VALUES ('(10.0,10.0');
- ^
INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 1e+500)'); -- Out of range
ERROR: "1e+500" is out of range for type double precision
-LINE 1: INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 1e+500)');
- ^
SELECT * FROM POINT_TBL;
f1
-------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/lseg.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/lseg.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/lseg.out 2024-02-22 13:04:49.014485000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/lseg.out 2024-02-22 13:08:02.988439000 +0000
@@ -15,20 +15,12 @@
-- bad values for parser testing
INSERT INTO LSEG_TBL VALUES ('(3asdf,2 ,3,4r2)');
ERROR: invalid input syntax for type lseg: "(3asdf,2 ,3,4r2)"
-LINE 1: INSERT INTO LSEG_TBL VALUES ('(3asdf,2 ,3,4r2)');
- ^
INSERT INTO LSEG_TBL VALUES ('[1,2,3, 4');
ERROR: invalid input syntax for type lseg: "[1,2,3, 4"
-LINE 1: INSERT INTO LSEG_TBL VALUES ('[1,2,3, 4');
- ^
INSERT INTO LSEG_TBL VALUES ('[(,2),(3,4)]');
ERROR: invalid input syntax for type lseg: "[(,2),(3,4)]"
-LINE 1: INSERT INTO LSEG_TBL VALUES ('[(,2),(3,4)]');
- ^
INSERT INTO LSEG_TBL VALUES ('[(1,2),(3,4)');
ERROR: invalid input syntax for type lseg: "[(1,2),(3,4)"
-LINE 1: INSERT INTO LSEG_TBL VALUES ('[(1,2),(3,4)');
- ^
select * from LSEG_TBL;
s
-------------------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/line.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/line.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/line.out 2024-02-22 13:04:49.014464000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/line.out 2024-02-22 13:08:03.019676000 +0000
@@ -19,48 +19,26 @@
-- bad values for parser testing
INSERT INTO LINE_TBL VALUES ('{}');
ERROR: invalid input syntax for type line: "{}"
-LINE 1: INSERT INTO LINE_TBL VALUES ('{}');
- ^
INSERT INTO LINE_TBL VALUES ('{0');
ERROR: invalid input syntax for type line: "{0"
-LINE 1: INSERT INTO LINE_TBL VALUES ('{0');
- ^
INSERT INTO LINE_TBL VALUES ('{0,0}');
ERROR: invalid input syntax for type line: "{0,0}"
-LINE 1: INSERT INTO LINE_TBL VALUES ('{0,0}');
- ^
INSERT INTO LINE_TBL VALUES ('{0,0,1');
ERROR: invalid input syntax for type line: "{0,0,1"
-LINE 1: INSERT INTO LINE_TBL VALUES ('{0,0,1');
- ^
INSERT INTO LINE_TBL VALUES ('{0,0,1}');
ERROR: invalid line specification: A and B cannot both be zero
-LINE 1: INSERT INTO LINE_TBL VALUES ('{0,0,1}');
- ^
INSERT INTO LINE_TBL VALUES ('{0,0,1} x');
ERROR: invalid input syntax for type line: "{0,0,1} x"
-LINE 1: INSERT INTO LINE_TBL VALUES ('{0,0,1} x');
- ^
INSERT INTO LINE_TBL VALUES ('(3asdf,2 ,3,4r2)');
ERROR: invalid input syntax for type line: "(3asdf,2 ,3,4r2)"
-LINE 1: INSERT INTO LINE_TBL VALUES ('(3asdf,2 ,3,4r2)');
- ^
INSERT INTO LINE_TBL VALUES ('[1,2,3, 4');
ERROR: invalid input syntax for type line: "[1,2,3, 4"
-LINE 1: INSERT INTO LINE_TBL VALUES ('[1,2,3, 4');
- ^
INSERT INTO LINE_TBL VALUES ('[(,2),(3,4)]');
ERROR: invalid input syntax for type line: "[(,2),(3,4)]"
-LINE 1: INSERT INTO LINE_TBL VALUES ('[(,2),(3,4)]');
- ^
INSERT INTO LINE_TBL VALUES ('[(1,2),(3,4)');
ERROR: invalid input syntax for type line: "[(1,2),(3,4)"
-LINE 1: INSERT INTO LINE_TBL VALUES ('[(1,2),(3,4)');
- ^
INSERT INTO LINE_TBL VALUES ('[(1,2),(1,2)]');
ERROR: invalid line specification: must be two distinct points
-LINE 1: INSERT INTO LINE_TBL VALUES ('[(1,2),(1,2)]');
- ^
INSERT INTO LINE_TBL VALUES (line(point '(1,0)', point '(1,0)'));
ERROR: invalid line specification: must be two distinct points
select * from LINE_TBL;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/box.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/box.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/box.out 2024-02-22 13:04:49.011895000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/box.out 2024-02-22 13:08:04.518487000 +0000
@@ -26,24 +26,14 @@
-- badly formatted box inputs
INSERT INTO BOX_TBL (f1) VALUES ('(2.3, 4.5)');
ERROR: invalid input syntax for type box: "(2.3, 4.5)"
-LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('(2.3, 4.5)');
- ^
INSERT INTO BOX_TBL (f1) VALUES ('[1, 2, 3, 4)');
ERROR: invalid input syntax for type box: "[1, 2, 3, 4)"
-LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('[1, 2, 3, 4)');
- ^
INSERT INTO BOX_TBL (f1) VALUES ('(1, 2, 3, 4]');
ERROR: invalid input syntax for type box: "(1, 2, 3, 4]"
-LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('(1, 2, 3, 4]');
- ^
INSERT INTO BOX_TBL (f1) VALUES ('(1, 2, 3, 4) x');
ERROR: invalid input syntax for type box: "(1, 2, 3, 4) x"
-LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('(1, 2, 3, 4) x');
- ^
INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
ERROR: invalid input syntax for type box: "asdfasdf(ad"
-LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
- ^
SELECT * FROM BOX_TBL;
f1
---------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/path.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/path.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/path.out 2024-02-22 13:04:49.015379000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/path.out 2024-02-22 13:08:03.081586000 +0000
@@ -15,24 +15,14 @@
-- bad values for parser testing
INSERT INTO PATH_TBL VALUES ('[]');
ERROR: invalid input syntax for type path: "[]"
-LINE 1: INSERT INTO PATH_TBL VALUES ('[]');
- ^
INSERT INTO PATH_TBL VALUES ('[(,2),(3,4)]');
ERROR: invalid input syntax for type path: "[(,2),(3,4)]"
-LINE 1: INSERT INTO PATH_TBL VALUES ('[(,2),(3,4)]');
- ^
INSERT INTO PATH_TBL VALUES ('[(1,2),(3,4)');
ERROR: invalid input syntax for type path: "[(1,2),(3,4)"
-LINE 1: INSERT INTO PATH_TBL VALUES ('[(1,2),(3,4)');
- ^
INSERT INTO PATH_TBL VALUES ('(1,2,3,4');
ERROR: invalid input syntax for type path: "(1,2,3,4"
-LINE 1: INSERT INTO PATH_TBL VALUES ('(1,2,3,4');
- ^
INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
ERROR: invalid input syntax for type path: "(1,2),(3,4)]"
-LINE 1: INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
- ^
SELECT f1 AS open_path FROM PATH_TBL WHERE isopen(f1);
open_path
---------------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/polygon.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/polygon.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/polygon.out 2024-02-22 13:04:49.015497000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/polygon.out 2024-02-22 13:08:04.482440000 +0000
@@ -15,24 +15,14 @@
-- bad polygon input strings
INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');
ERROR: invalid input syntax for type polygon: "0.0"
-LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('0.0');
- ^
INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');
ERROR: invalid input syntax for type polygon: "(0.0 0.0"
-LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('(0.0 0.0');
- ^
INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');
ERROR: invalid input syntax for type polygon: "(0,1,2)"
-LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2)');
- ^
INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
ERROR: invalid input syntax for type polygon: "(0,1,2,3"
-LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
- ^
INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
ERROR: invalid input syntax for type polygon: "asdf"
-LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
- ^
SELECT * FROM POLYGON_TBL;
f1
----------------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/circle.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/circle.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/circle.out 2024-02-22 13:04:49.012002000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/circle.out 2024-02-22 13:08:03.034952000 +0000
@@ -16,24 +16,14 @@
-- bad values
INSERT INTO CIRCLE_TBL VALUES ('<(-100,0),-100>');
ERROR: invalid input syntax for type circle: "<(-100,0),-100>"
-LINE 1: INSERT INTO CIRCLE_TBL VALUES ('<(-100,0),-100>');
- ^
INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10');
ERROR: invalid input syntax for type circle: "<(100,200),10"
-LINE 1: INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10');
- ^
INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10> x');
ERROR: invalid input syntax for type circle: "<(100,200),10> x"
-LINE 1: INSERT INTO CIRCLE_TBL VALUES ('<(100,200),10> x');
- ^
INSERT INTO CIRCLE_TBL VALUES ('1abc,3,5');
ERROR: invalid input syntax for type circle: "1abc,3,5"
-LINE 1: INSERT INTO CIRCLE_TBL VALUES ('1abc,3,5');
- ^
INSERT INTO CIRCLE_TBL VALUES ('(3,(1,2),3)');
ERROR: invalid input syntax for type circle: "(3,(1,2),3)"
-LINE 1: INSERT INTO CIRCLE_TBL VALUES ('(3,(1,2),3)');
- ^
SELECT * FROM CIRCLE_TBL;
f1
----------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/date.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/date.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/date.out 2024-02-22 13:04:49.012325000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/date.out 2024-02-22 13:08:03.380912000 +0000
@@ -11,8 +11,6 @@
INSERT INTO DATE_TBL VALUES ('1997-02-28');
INSERT INTO DATE_TBL VALUES ('1997-02-29');
ERROR: date/time field value out of range: "1997-02-29"
-LINE 1: INSERT INTO DATE_TBL VALUES ('1997-02-29');
- ^
INSERT INTO DATE_TBL VALUES ('1997-03-01');
INSERT INTO DATE_TBL VALUES ('1997-03-02');
INSERT INTO DATE_TBL VALUES ('2000-04-01');
@@ -92,18 +90,12 @@
SELECT date '1/8/1999';
ERROR: date/time field value out of range: "1/8/1999"
-LINE 1: SELECT date '1/8/1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1/18/1999';
ERROR: date/time field value out of range: "1/18/1999"
-LINE 1: SELECT date '1/18/1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '18/1/1999';
ERROR: date/time field value out of range: "18/1/1999"
-LINE 1: SELECT date '18/1/1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '01/02/03';
date
@@ -137,8 +129,6 @@
SELECT date 'January 8, 99 BC';
ERROR: date/time field value out of range: "January 8, 99 BC"
-LINE 1: SELECT date 'January 8, 99 BC';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '99-Jan-08';
date
@@ -154,8 +144,6 @@
SELECT date '08-Jan-99';
ERROR: date/time field value out of range: "08-Jan-99"
-LINE 1: SELECT date '08-Jan-99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '08-Jan-1999';
date
@@ -165,8 +153,6 @@
SELECT date 'Jan-08-99';
ERROR: date/time field value out of range: "Jan-08-99"
-LINE 1: SELECT date 'Jan-08-99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date 'Jan-08-1999';
date
@@ -176,12 +162,8 @@
SELECT date '99-08-Jan';
ERROR: invalid input syntax for type date: "99-08-Jan"
-LINE 1: SELECT date '99-08-Jan';
- ^
SELECT date '1999-08-Jan';
ERROR: invalid input syntax for type date: "1999-08-Jan"
-LINE 1: SELECT date '1999-08-Jan';
- ^
SELECT date '99 Jan 08';
date
------------
@@ -196,8 +178,6 @@
SELECT date '08 Jan 99';
ERROR: date/time field value out of range: "08 Jan 99"
-LINE 1: SELECT date '08 Jan 99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '08 Jan 1999';
date
@@ -207,8 +187,6 @@
SELECT date 'Jan 08 99';
ERROR: date/time field value out of range: "Jan 08 99"
-LINE 1: SELECT date 'Jan 08 99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date 'Jan 08 1999';
date
@@ -242,23 +220,15 @@
SELECT date '08-01-99';
ERROR: date/time field value out of range: "08-01-99"
-LINE 1: SELECT date '08-01-99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '08-01-1999';
ERROR: date/time field value out of range: "08-01-1999"
-LINE 1: SELECT date '08-01-1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '01-08-99';
ERROR: date/time field value out of range: "01-08-99"
-LINE 1: SELECT date '01-08-99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '01-08-1999';
ERROR: date/time field value out of range: "01-08-1999"
-LINE 1: SELECT date '01-08-1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '99-08-01';
date
@@ -286,23 +256,15 @@
SELECT date '08 01 99';
ERROR: date/time field value out of range: "08 01 99"
-LINE 1: SELECT date '08 01 99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '08 01 1999';
ERROR: date/time field value out of range: "08 01 1999"
-LINE 1: SELECT date '08 01 1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '01 08 99';
ERROR: date/time field value out of range: "01 08 99"
-LINE 1: SELECT date '01 08 99';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '01 08 1999';
ERROR: date/time field value out of range: "01 08 1999"
-LINE 1: SELECT date '01 08 1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '99 08 01';
date
@@ -343,8 +305,6 @@
SELECT date '1/18/1999';
ERROR: date/time field value out of range: "1/18/1999"
-LINE 1: SELECT date '1/18/1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '18/1/1999';
date
@@ -390,8 +350,6 @@
SELECT date '99-Jan-08';
ERROR: date/time field value out of range: "99-Jan-08"
-LINE 1: SELECT date '99-Jan-08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999-Jan-08';
date
@@ -425,16 +383,10 @@
SELECT date '99-08-Jan';
ERROR: invalid input syntax for type date: "99-08-Jan"
-LINE 1: SELECT date '99-08-Jan';
- ^
SELECT date '1999-08-Jan';
ERROR: invalid input syntax for type date: "1999-08-Jan"
-LINE 1: SELECT date '1999-08-Jan';
- ^
SELECT date '99 Jan 08';
ERROR: date/time field value out of range: "99 Jan 08"
-LINE 1: SELECT date '99 Jan 08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999 Jan 08';
date
@@ -468,8 +420,6 @@
SELECT date '99 08 Jan';
ERROR: invalid input syntax for type date: "99 08 Jan"
-LINE 1: SELECT date '99 08 Jan';
- ^
SELECT date '1999 08 Jan';
date
------------
@@ -478,8 +428,6 @@
SELECT date '99-01-08';
ERROR: date/time field value out of range: "99-01-08"
-LINE 1: SELECT date '99-01-08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999-01-08';
date
@@ -513,8 +461,6 @@
SELECT date '99-08-01';
ERROR: date/time field value out of range: "99-08-01"
-LINE 1: SELECT date '99-08-01';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999-08-01';
date
@@ -524,8 +470,6 @@
SELECT date '99 01 08';
ERROR: date/time field value out of range: "99 01 08"
-LINE 1: SELECT date '99 01 08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999 01 08';
date
@@ -559,8 +503,6 @@
SELECT date '99 08 01';
ERROR: date/time field value out of range: "99 08 01"
-LINE 1: SELECT date '99 08 01';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999 08 01';
date
@@ -601,8 +543,6 @@
SELECT date '18/1/1999';
ERROR: date/time field value out of range: "18/1/1999"
-LINE 1: SELECT date '18/1/1999';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '01/02/03';
date
@@ -642,8 +582,6 @@
SELECT date '99-Jan-08';
ERROR: date/time field value out of range: "99-Jan-08"
-LINE 1: SELECT date '99-Jan-08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999-Jan-08';
date
@@ -677,16 +615,10 @@
SELECT date '99-08-Jan';
ERROR: invalid input syntax for type date: "99-08-Jan"
-LINE 1: SELECT date '99-08-Jan';
- ^
SELECT date '1999-08-Jan';
ERROR: invalid input syntax for type date: "1999-08-Jan"
-LINE 1: SELECT date '1999-08-Jan';
- ^
SELECT date '99 Jan 08';
ERROR: invalid input syntax for type date: "99 Jan 08"
-LINE 1: SELECT date '99 Jan 08';
- ^
SELECT date '1999 Jan 08';
date
------------
@@ -719,8 +651,6 @@
SELECT date '99 08 Jan';
ERROR: invalid input syntax for type date: "99 08 Jan"
-LINE 1: SELECT date '99 08 Jan';
- ^
SELECT date '1999 08 Jan';
date
------------
@@ -729,8 +659,6 @@
SELECT date '99-01-08';
ERROR: date/time field value out of range: "99-01-08"
-LINE 1: SELECT date '99-01-08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999-01-08';
date
@@ -764,8 +692,6 @@
SELECT date '99-08-01';
ERROR: date/time field value out of range: "99-08-01"
-LINE 1: SELECT date '99-08-01';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999-08-01';
date
@@ -775,8 +701,6 @@
SELECT date '99 01 08';
ERROR: date/time field value out of range: "99 01 08"
-LINE 1: SELECT date '99 01 08';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999 01 08';
date
@@ -810,8 +734,6 @@
SELECT date '99 08 01';
ERROR: date/time field value out of range: "99 08 01"
-LINE 1: SELECT date '99 08 01';
- ^
HINT: Perhaps you need a different "datestyle" setting.
SELECT date '1999 08 01';
date
@@ -828,8 +750,6 @@
SELECT date '4714-11-23 BC'; -- out of range
ERROR: date out of range: "4714-11-23 BC"
-LINE 1: SELECT date '4714-11-23 BC';
- ^
SELECT date '5874897-12-31';
date
---------------
@@ -838,8 +758,6 @@
SELECT date '5874898-01-01'; -- out of range
ERROR: date out of range: "5874898-01-01"
-LINE 1: SELECT date '5874898-01-01';
- ^
-- Test non-error-throwing API
SELECT pg_input_is_valid('now', 'date');
pg_input_is_valid
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/time.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/time.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/time.out 2024-02-22 13:04:49.016883000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/time.out 2024-02-22 13:08:03.024272000 +0000
@@ -16,8 +16,6 @@
-- this should fail (the timezone offset is not known)
INSERT INTO TIME_TBL VALUES ('15:36:39 America/New_York');
ERROR: invalid input syntax for type time: "15:36:39 America/New_York"
-LINE 1: INSERT INTO TIME_TBL VALUES ('15:36:39 America/New_York');
- ^
SELECT f1 AS "Time" FROM TIME_TBL;
Time
-------------
@@ -100,20 +98,12 @@
SELECT '24:00:00.01'::time; -- not allowed
ERROR: date/time field value out of range: "24:00:00.01"
-LINE 1: SELECT '24:00:00.01'::time;
- ^
SELECT '23:59:60.01'::time; -- not allowed
ERROR: date/time field value out of range: "23:59:60.01"
-LINE 1: SELECT '23:59:60.01'::time;
- ^
SELECT '24:01:00'::time; -- not allowed
ERROR: date/time field value out of range: "24:01:00"
-LINE 1: SELECT '24:01:00'::time;
- ^
SELECT '25:00:00'::time; -- not allowed
ERROR: date/time field value out of range: "25:00:00"
-LINE 1: SELECT '25:00:00'::time;
- ^
-- Test non-error-throwing API
SELECT pg_input_is_valid('12:00:00', 'time');
pg_input_is_valid
@@ -155,8 +145,6 @@
-- where we do mixed-type arithmetic. - thomas 2000-12-02
SELECT f1 + time '00:01' AS "Illegal" FROM TIME_TBL;
ERROR: operator is not unique: time without time zone + time without time zone
-LINE 1: SELECT f1 + time '00:01' AS "Illegal" FROM TIME_TBL;
- ^
HINT: Could not choose a best candidate operator. You might need to add explicit type casts.
--
-- test EXTRACT
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/timetz.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/timetz.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/timetz.out 2024-02-22 13:04:49.016980000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/timetz.out 2024-02-22 13:08:03.251561000 +0000
@@ -17,18 +17,12 @@
-- this should fail (the timezone offset is not known)
INSERT INTO TIMETZ_TBL VALUES ('15:36:39 America/New_York');
ERROR: invalid input syntax for type time with time zone: "15:36:39 America/New_York"
-LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 America/New_York');
- ^
-- this should fail (timezone not specified without a date)
INSERT INTO TIMETZ_TBL VALUES ('15:36:39 m2');
ERROR: invalid input syntax for type time with time zone: "15:36:39 m2"
-LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 m2');
- ^
-- this should fail (dynamic timezone abbreviation without a date)
INSERT INTO TIMETZ_TBL VALUES ('15:36:39 MSK m2');
ERROR: invalid input syntax for type time with time zone: "15:36:39 MSK m2"
-LINE 1: INSERT INTO TIMETZ_TBL VALUES ('15:36:39 MSK m2');
- ^
SELECT f1 AS "Time TZ" FROM TIMETZ_TBL;
Time TZ
----------------
@@ -117,20 +111,12 @@
SELECT '24:00:00.01 PDT'::timetz; -- not allowed
ERROR: date/time field value out of range: "24:00:00.01 PDT"
-LINE 1: SELECT '24:00:00.01 PDT'::timetz;
- ^
SELECT '23:59:60.01 PDT'::timetz; -- not allowed
ERROR: date/time field value out of range: "23:59:60.01 PDT"
-LINE 1: SELECT '23:59:60.01 PDT'::timetz;
- ^
SELECT '24:01:00 PDT'::timetz; -- not allowed
ERROR: date/time field value out of range: "24:01:00 PDT"
-LINE 1: SELECT '24:01:00 PDT'::timetz;
- ^
SELECT '25:00:00 PDT'::timetz; -- not allowed
ERROR: date/time field value out of range: "25:00:00 PDT"
-LINE 1: SELECT '25:00:00 PDT'::timetz;
- ^
-- Test non-error-throwing API
SELECT pg_input_is_valid('12:00:00 PDT', 'timetz');
pg_input_is_valid
@@ -172,8 +158,6 @@
-- where we do mixed-type arithmetic. - thomas 2000-12-02
SELECT f1 + time with time zone '00:01' AS "Illegal" FROM TIMETZ_TBL;
ERROR: operator does not exist: time with time zone + time with time zone
-LINE 1: SELECT f1 + time with time zone '00:01' AS "Illegal" FROM TI...
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
--
-- test EXTRACT
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/timestamp.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/timestamp.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/timestamp.out 2024-02-22 13:04:49.016917000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/timestamp.out 2024-02-22 13:08:04.031452000 +0000
@@ -123,8 +123,6 @@
-- this fails (even though TZ is a no-op, we still look it up)
INSERT INTO TIMESTAMP_TBL VALUES ('19970710 173201 America/Does_not_exist');
ERROR: time zone "america/does_not_exist" not recognized
-LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('19970710 173201 America/D...
- ^
-- Test non-error-throwing API
SELECT pg_input_is_valid('now', 'timestamp');
pg_input_is_valid
@@ -183,8 +181,6 @@
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 28 17:32:01 1997');
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1997');
ERROR: date/time field value out of range: "Feb 29 17:32:01 1997"
-LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 29 17:32:01 1997');
- ^
INSERT INTO TIMESTAMP_TBL VALUES ('Mar 01 17:32:01 1997');
INSERT INTO TIMESTAMP_TBL VALUES ('Dec 30 17:32:01 1997');
INSERT INTO TIMESTAMP_TBL VALUES ('Dec 31 17:32:01 1997');
@@ -195,12 +191,8 @@
-- Currently unsupported syntax and ranges
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
ERROR: time zone displacement out of range: "Feb 16 17:32:01 -0097"
-LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
- ^
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
ERROR: timestamp out of range: "Feb 16 17:32:01 5097 BC"
-LINE 1: INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC')...
- ^
SELECT d1 FROM TIMESTAMP_TBL;
d1
-----------------------------
@@ -280,8 +272,6 @@
SELECT '4714-11-23 23:59:59 BC'::timestamp; -- out of range
ERROR: timestamp out of range: "4714-11-23 23:59:59 BC"
-LINE 1: SELECT '4714-11-23 23:59:59 BC'::timestamp;
- ^
SELECT '294276-12-31 23:59:59'::timestamp;
timestamp
----------------------------
@@ -290,8 +280,6 @@
SELECT '294277-01-01 00:00:00'::timestamp; -- out of range
ERROR: timestamp out of range: "294277-01-01 00:00:00"
-LINE 1: SELECT '294277-01-01 00:00:00'::timestamp;
- ^
-- Demonstrate functions and operators
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 > timestamp without time zone '1997-01-02';
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/timestamptz.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/timestamptz.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/timestamptz.out 2024-02-22 13:04:49.016966000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/timestamptz.out 2024-02-22 13:08:04.462213000 +0000
@@ -147,8 +147,6 @@
INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America/Does_not_exist');
ERROR: time zone "america/does_not_exist" not recognized
-LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('19970710 173201 America...
- ^
SELECT '19970710 173201' AT TIME ZONE 'America/Does_not_exist';
ERROR: time zone "America/Does_not_exist" not recognized
-- Daylight saving time for timestamps beyond 32-bit time_t range.
@@ -234,8 +232,6 @@
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 28 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1997');
ERROR: date/time field value out of range: "Feb 29 17:32:01 1997"
-LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 29 17:32:01 1997');
- ^
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Mar 01 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 30 17:32:01 1997');
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Dec 31 17:32:01 1997');
@@ -246,12 +242,8 @@
-- Currently unsupported syntax and ranges
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097');
ERROR: time zone displacement out of range: "Feb 16 17:32:01 -0097"
-LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 -0097')...
- ^
INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC');
ERROR: timestamp out of range: "Feb 16 17:32:01 5097 BC"
-LINE 1: INSERT INTO TIMESTAMPTZ_TBL VALUES ('Feb 16 17:32:01 5097 BC...
- ^
-- Alternative field order that we've historically supported (sort of)
-- with regular and POSIXy timezone specs
SELECT 'Wed Jul 11 10:51:14 America/New_York 2001'::timestamptz;
@@ -376,8 +368,6 @@
SELECT '4714-11-23 23:59:59+00 BC'::timestamptz; -- out of range
ERROR: timestamp out of range: "4714-11-23 23:59:59+00 BC"
-LINE 1: SELECT '4714-11-23 23:59:59+00 BC'::timestamptz;
- ^
SELECT '294276-12-31 23:59:59+00'::timestamptz;
timestamptz
--------------------------------
@@ -392,12 +382,8 @@
SELECT '294277-01-01 00:00:00+00'::timestamptz; -- out of range
ERROR: timestamp out of range: "294277-01-01 00:00:00+00"
-LINE 1: SELECT '294277-01-01 00:00:00+00'::timestamptz;
- ^
SELECT '294277-12-31 16:00:00-08'::timestamptz; -- out of range
ERROR: timestamp out of range: "294277-12-31 16:00:00-08"
-LINE 1: SELECT '294277-12-31 16:00:00-08'::timestamptz;
- ^
-- Demonstrate functions and operators
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 > timestamp with time zone '1997-01-02';
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/interval.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/interval.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/interval.out 2024-02-22 13:04:49.014032000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/interval.out 2024-02-22 13:08:04.396501000 +0000
@@ -80,12 +80,8 @@
-- badly formatted interval
INSERT INTO INTERVAL_TBL (f1) VALUES ('badly formatted interval');
ERROR: invalid input syntax for type interval: "badly formatted interval"
-LINE 1: INSERT INTO INTERVAL_TBL (f1) VALUES ('badly formatted inter...
- ^
INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');
ERROR: invalid input syntax for type interval: "@ 30 eons ago"
-LINE 1: INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');
- ^
-- Test non-error-throwing API
SELECT pg_input_is_valid('1.5 weeks', 'interval');
pg_input_is_valid
@@ -336,20 +332,12 @@
-- these should fail as out-of-range
INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('2147483648 days');
ERROR: interval field value out of range: "2147483648 days"
-LINE 1: INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('2147483648 days');
- ^
INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('-2147483649 days');
ERROR: interval field value out of range: "-2147483649 days"
-LINE 1: INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('-2147483649 days')...
- ^
INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('2147483647 years');
ERROR: interval out of range
-LINE 1: INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('2147483647 years')...
- ^
INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('-2147483648 years');
ERROR: interval out of range
-LINE 1: INSERT INTO INTERVAL_TBL_OF (f1) VALUES ('-2147483648 years'...
- ^
-- Test edge-case overflow detection in interval multiplication
select extract(epoch from '256 microseconds'::interval * (2^55)::float8);
ERROR: interval out of range
@@ -601,24 +589,14 @@
SELECT '1 second 2 seconds'::interval; -- error
ERROR: invalid input syntax for type interval: "1 second 2 seconds"
-LINE 1: SELECT '1 second 2 seconds'::interval;
- ^
SELECT '10 milliseconds 20 milliseconds'::interval; -- error
ERROR: invalid input syntax for type interval: "10 milliseconds 20 milliseconds"
-LINE 1: SELECT '10 milliseconds 20 milliseconds'::interval;
- ^
SELECT '5.5 seconds 3 milliseconds'::interval; -- error
ERROR: invalid input syntax for type interval: "5.5 seconds 3 milliseconds"
-LINE 1: SELECT '5.5 seconds 3 milliseconds'::interval;
- ^
SELECT '1:20:05 5 microseconds'::interval; -- error
ERROR: invalid input syntax for type interval: "1:20:05 5 microseconds"
-LINE 1: SELECT '1:20:05 5 microseconds'::interval;
- ^
SELECT '1 day 1 day'::interval; -- error
ERROR: invalid input syntax for type interval: "1 day 1 day"
-LINE 1: SELECT '1 day 1 day'::interval;
- ^
SELECT interval '1-2'; -- SQL year-month literal
interval
---------------
@@ -724,8 +702,6 @@
SELECT interval '1 2' day to minute;
ERROR: invalid input syntax for type interval: "1 2"
-LINE 1: SELECT interval '1 2' day to minute;
- ^
SELECT interval '1 2:03' day to minute;
interval
----------------
@@ -740,8 +716,6 @@
SELECT interval '1 2' day to second;
ERROR: invalid input syntax for type interval: "1 2"
-LINE 1: SELECT interval '1 2' day to second;
- ^
SELECT interval '1 2:03' day to second;
interval
----------------
@@ -756,8 +730,6 @@
SELECT interval '1 2' hour to minute;
ERROR: invalid input syntax for type interval: "1 2"
-LINE 1: SELECT interval '1 2' hour to minute;
- ^
SELECT interval '1 2:03' hour to minute;
interval
----------------
@@ -772,8 +744,6 @@
SELECT interval '1 2' hour to second;
ERROR: invalid input syntax for type interval: "1 2"
-LINE 1: SELECT interval '1 2' hour to second;
- ^
SELECT interval '1 2:03' hour to second;
interval
----------------
@@ -788,8 +758,6 @@
SELECT interval '1 2' minute to second;
ERROR: invalid input syntax for type interval: "1 2"
-LINE 1: SELECT interval '1 2' minute to second;
- ^
SELECT interval '1 2:03' minute to second;
interval
----------------
@@ -834,16 +802,10 @@
SELECT interval '123 11' day; -- not ok
ERROR: invalid input syntax for type interval: "123 11"
-LINE 1: SELECT interval '123 11' day;
- ^
SELECT interval '123 11'; -- not ok, too ambiguous
ERROR: invalid input syntax for type interval: "123 11"
-LINE 1: SELECT interval '123 11';
- ^
SELECT interval '123 2:03 -2:04'; -- not ok, redundant hh:mm fields
ERROR: invalid input syntax for type interval: "123 2:03 -2:04"
-LINE 1: SELECT interval '123 2:03 -2:04';
- ^
-- test syntaxes for restricted precision
SELECT interval(0) '1 day 01:23:45.6789';
interval
@@ -877,8 +839,6 @@
SELECT interval '1 2.345' day to second(2);
ERROR: invalid input syntax for type interval: "1 2.345"
-LINE 1: SELECT interval '1 2.345' day to second(2);
- ^
SELECT interval '1 2:03' day to second(2);
interval
----------------
@@ -899,8 +859,6 @@
SELECT interval '1 2.345' hour to second(2);
ERROR: invalid input syntax for type interval: "1 2.345"
-LINE 1: SELECT interval '1 2.345' hour to second(2);
- ^
SELECT interval '1 2:03.45678' hour to second(2);
interval
-------------------
@@ -915,8 +873,6 @@
SELECT interval '1 2.3456' minute to second(2);
ERROR: invalid input syntax for type interval: "1 2.3456"
-LINE 1: SELECT interval '1 2.3456' minute to second(2);
- ^
SELECT interval '1 2:03.5678' minute to second(2);
interval
-------------------
@@ -931,12 +887,8 @@
SELECT interval '2562047788:00:54.775807' second(2); -- out of range
ERROR: interval out of range
-LINE 1: SELECT interval '2562047788:00:54.775807' second(2);
- ^
SELECT interval '-2562047788:00:54.775807' second(2); -- out of range
ERROR: interval out of range
-LINE 1: SELECT interval '-2562047788:00:54.775807' second(2);
- ^
-- test casting to restricted precision (bug #14479)
SELECT f1, f1::INTERVAL DAY TO MINUTE AS "minutes",
(f1 + INTERVAL '1 month')::INTERVAL MONTH::INTERVAL YEAR AS "years"
@@ -1014,8 +966,6 @@
-- edge case for sign-matching rules
SELECT interval ''; -- error
ERROR: invalid input syntax for type interval: ""
-LINE 1: SELECT interval '';
- ^
-- test outputting iso8601 intervals
SET IntervalStyle to iso_8601;
select interval '0' AS "zero",
@@ -1106,8 +1056,6 @@
select interval 'P.Y0M3DT4H5M6S'; -- error
ERROR: invalid input syntax for type interval: "P.Y0M3DT4H5M6S"
-LINE 1: select interval 'P.Y0M3DT4H5M6S';
- ^
-- test a couple rounding cases that changed since 8.3 w/ HAVE_INT64_TIMESTAMP.
SET IntervalStyle to postgres_verbose;
select interval '-10 mons -3 days +03:55:06.70';
@@ -1222,494 +1170,252 @@
-- overflow each date/time field
select interval '2147483648 years';
ERROR: interval field value out of range: "2147483648 years"
-LINE 1: select interval '2147483648 years';
- ^
select interval '-2147483649 years';
ERROR: interval field value out of range: "-2147483649 years"
-LINE 1: select interval '-2147483649 years';
- ^
select interval '2147483648 months';
ERROR: interval field value out of range: "2147483648 months"
-LINE 1: select interval '2147483648 months';
- ^
select interval '-2147483649 months';
ERROR: interval field value out of range: "-2147483649 months"
-LINE 1: select interval '-2147483649 months';
- ^
select interval '2147483648 days';
ERROR: interval field value out of range: "2147483648 days"
-LINE 1: select interval '2147483648 days';
- ^
select interval '-2147483649 days';
ERROR: interval field value out of range: "-2147483649 days"
-LINE 1: select interval '-2147483649 days';
- ^
select interval '2562047789 hours';
ERROR: interval field value out of range: "2562047789 hours"
-LINE 1: select interval '2562047789 hours';
- ^
select interval '-2562047789 hours';
ERROR: interval field value out of range: "-2562047789 hours"
-LINE 1: select interval '-2562047789 hours';
- ^
select interval '153722867281 minutes';
ERROR: interval field value out of range: "153722867281 minutes"
-LINE 1: select interval '153722867281 minutes';
- ^
select interval '-153722867281 minutes';
ERROR: interval field value out of range: "-153722867281 minutes"
-LINE 1: select interval '-153722867281 minutes';
- ^
select interval '9223372036855 seconds';
ERROR: interval field value out of range: "9223372036855 seconds"
-LINE 1: select interval '9223372036855 seconds';
- ^
select interval '-9223372036855 seconds';
ERROR: interval field value out of range: "-9223372036855 seconds"
-LINE 1: select interval '-9223372036855 seconds';
- ^
select interval '9223372036854777 millisecond';
ERROR: interval field value out of range: "9223372036854777 millisecond"
-LINE 1: select interval '9223372036854777 millisecond';
- ^
select interval '-9223372036854777 millisecond';
ERROR: interval field value out of range: "-9223372036854777 millisecond"
-LINE 1: select interval '-9223372036854777 millisecond';
- ^
select interval '9223372036854775808 microsecond';
ERROR: interval field value out of range: "9223372036854775808 microsecond"
-LINE 1: select interval '9223372036854775808 microsecond';
- ^
select interval '-9223372036854775809 microsecond';
ERROR: interval field value out of range: "-9223372036854775809 microsecond"
-LINE 1: select interval '-9223372036854775809 microsecond';
- ^
select interval 'P2147483648';
ERROR: interval field value out of range: "P2147483648"
-LINE 1: select interval 'P2147483648';
- ^
select interval 'P-2147483649';
ERROR: interval field value out of range: "P-2147483649"
-LINE 1: select interval 'P-2147483649';
- ^
select interval 'P1-2147483647-2147483647';
ERROR: interval out of range
-LINE 1: select interval 'P1-2147483647-2147483647';
- ^
select interval 'PT2562047789';
ERROR: interval field value out of range: "PT2562047789"
-LINE 1: select interval 'PT2562047789';
- ^
select interval 'PT-2562047789';
ERROR: interval field value out of range: "PT-2562047789"
-LINE 1: select interval 'PT-2562047789';
- ^
-- overflow with date/time unit aliases
select interval '2147483647 weeks';
ERROR: interval field value out of range: "2147483647 weeks"
-LINE 1: select interval '2147483647 weeks';
- ^
select interval '-2147483648 weeks';
ERROR: interval field value out of range: "-2147483648 weeks"
-LINE 1: select interval '-2147483648 weeks';
- ^
select interval '2147483647 decades';
ERROR: interval field value out of range: "2147483647 decades"
-LINE 1: select interval '2147483647 decades';
- ^
select interval '-2147483648 decades';
ERROR: interval field value out of range: "-2147483648 decades"
-LINE 1: select interval '-2147483648 decades';
- ^
select interval '2147483647 centuries';
ERROR: interval field value out of range: "2147483647 centuries"
-LINE 1: select interval '2147483647 centuries';
- ^
select interval '-2147483648 centuries';
ERROR: interval field value out of range: "-2147483648 centuries"
-LINE 1: select interval '-2147483648 centuries';
- ^
select interval '2147483647 millennium';
ERROR: interval field value out of range: "2147483647 millennium"
-LINE 1: select interval '2147483647 millennium';
- ^
select interval '-2147483648 millennium';
ERROR: interval field value out of range: "-2147483648 millennium"
-LINE 1: select interval '-2147483648 millennium';
- ^
select interval '1 week 2147483647 days';
ERROR: interval field value out of range: "1 week 2147483647 days"
-LINE 1: select interval '1 week 2147483647 days';
- ^
select interval '-1 week -2147483648 days';
ERROR: interval field value out of range: "-1 week -2147483648 days"
-LINE 1: select interval '-1 week -2147483648 days';
- ^
select interval '2147483647 days 1 week';
ERROR: interval field value out of range: "2147483647 days 1 week"
-LINE 1: select interval '2147483647 days 1 week';
- ^
select interval '-2147483648 days -1 week';
ERROR: interval field value out of range: "-2147483648 days -1 week"
-LINE 1: select interval '-2147483648 days -1 week';
- ^
select interval 'P1W2147483647D';
ERROR: interval field value out of range: "P1W2147483647D"
-LINE 1: select interval 'P1W2147483647D';
- ^
select interval 'P-1W-2147483648D';
ERROR: interval field value out of range: "P-1W-2147483648D"
-LINE 1: select interval 'P-1W-2147483648D';
- ^
select interval 'P2147483647D1W';
ERROR: interval field value out of range: "P2147483647D1W"
-LINE 1: select interval 'P2147483647D1W';
- ^
select interval 'P-2147483648D-1W';
ERROR: interval field value out of range: "P-2147483648D-1W"
-LINE 1: select interval 'P-2147483648D-1W';
- ^
select interval '1 decade 2147483647 years';
ERROR: interval field value out of range: "1 decade 2147483647 years"
-LINE 1: select interval '1 decade 2147483647 years';
- ^
select interval '1 century 2147483647 years';
ERROR: interval field value out of range: "1 century 2147483647 years"
-LINE 1: select interval '1 century 2147483647 years';
- ^
select interval '1 millennium 2147483647 years';
ERROR: interval field value out of range: "1 millennium 2147483647 years"
-LINE 1: select interval '1 millennium 2147483647 years';
- ^
select interval '-1 decade -2147483648 years';
ERROR: interval field value out of range: "-1 decade -2147483648 years"
-LINE 1: select interval '-1 decade -2147483648 years';
- ^
select interval '-1 century -2147483648 years';
ERROR: interval field value out of range: "-1 century -2147483648 years"
-LINE 1: select interval '-1 century -2147483648 years';
- ^
select interval '-1 millennium -2147483648 years';
ERROR: interval field value out of range: "-1 millennium -2147483648 years"
-LINE 1: select interval '-1 millennium -2147483648 years';
- ^
select interval '2147483647 years 1 decade';
ERROR: interval field value out of range: "2147483647 years 1 decade"
-LINE 1: select interval '2147483647 years 1 decade';
- ^
select interval '2147483647 years 1 century';
ERROR: interval field value out of range: "2147483647 years 1 century"
-LINE 1: select interval '2147483647 years 1 century';
- ^
select interval '2147483647 years 1 millennium';
ERROR: interval field value out of range: "2147483647 years 1 millennium"
-LINE 1: select interval '2147483647 years 1 millennium';
- ^
select interval '-2147483648 years -1 decade';
ERROR: interval field value out of range: "-2147483648 years -1 decade"
-LINE 1: select interval '-2147483648 years -1 decade';
- ^
select interval '-2147483648 years -1 century';
ERROR: interval field value out of range: "-2147483648 years -1 century"
-LINE 1: select interval '-2147483648 years -1 century';
- ^
select interval '-2147483648 years -1 millennium';
ERROR: interval field value out of range: "-2147483648 years -1 millennium"
-LINE 1: select interval '-2147483648 years -1 millennium';
- ^
-- overflowing with fractional fields - postgres format
select interval '0.1 millennium 2147483647 months';
ERROR: interval field value out of range: "0.1 millennium 2147483647 months"
-LINE 1: select interval '0.1 millennium 2147483647 months';
- ^
select interval '0.1 centuries 2147483647 months';
ERROR: interval field value out of range: "0.1 centuries 2147483647 months"
-LINE 1: select interval '0.1 centuries 2147483647 months';
- ^
select interval '0.1 decades 2147483647 months';
ERROR: interval field value out of range: "0.1 decades 2147483647 months"
-LINE 1: select interval '0.1 decades 2147483647 months';
- ^
select interval '0.1 yrs 2147483647 months';
ERROR: interval field value out of range: "0.1 yrs 2147483647 months"
-LINE 1: select interval '0.1 yrs 2147483647 months';
- ^
select interval '-0.1 millennium -2147483648 months';
ERROR: interval field value out of range: "-0.1 millennium -2147483648 months"
-LINE 1: select interval '-0.1 millennium -2147483648 months';
- ^
select interval '-0.1 centuries -2147483648 months';
ERROR: interval field value out of range: "-0.1 centuries -2147483648 months"
-LINE 1: select interval '-0.1 centuries -2147483648 months';
- ^
select interval '-0.1 decades -2147483648 months';
ERROR: interval field value out of range: "-0.1 decades -2147483648 months"
-LINE 1: select interval '-0.1 decades -2147483648 months';
- ^
select interval '-0.1 yrs -2147483648 months';
ERROR: interval field value out of range: "-0.1 yrs -2147483648 months"
-LINE 1: select interval '-0.1 yrs -2147483648 months';
- ^
select interval '2147483647 months 0.1 millennium';
ERROR: interval field value out of range: "2147483647 months 0.1 millennium"
-LINE 1: select interval '2147483647 months 0.1 millennium';
- ^
select interval '2147483647 months 0.1 centuries';
ERROR: interval field value out of range: "2147483647 months 0.1 centuries"
-LINE 1: select interval '2147483647 months 0.1 centuries';
- ^
select interval '2147483647 months 0.1 decades';
ERROR: interval field value out of range: "2147483647 months 0.1 decades"
-LINE 1: select interval '2147483647 months 0.1 decades';
- ^
select interval '2147483647 months 0.1 yrs';
ERROR: interval field value out of range: "2147483647 months 0.1 yrs"
-LINE 1: select interval '2147483647 months 0.1 yrs';
- ^
select interval '-2147483648 months -0.1 millennium';
ERROR: interval field value out of range: "-2147483648 months -0.1 millennium"
-LINE 1: select interval '-2147483648 months -0.1 millennium';
- ^
select interval '-2147483648 months -0.1 centuries';
ERROR: interval field value out of range: "-2147483648 months -0.1 centuries"
-LINE 1: select interval '-2147483648 months -0.1 centuries';
- ^
select interval '-2147483648 months -0.1 decades';
ERROR: interval field value out of range: "-2147483648 months -0.1 decades"
-LINE 1: select interval '-2147483648 months -0.1 decades';
- ^
select interval '-2147483648 months -0.1 yrs';
ERROR: interval field value out of range: "-2147483648 months -0.1 yrs"
-LINE 1: select interval '-2147483648 months -0.1 yrs';
- ^
select interval '0.1 months 2147483647 days';
ERROR: interval field value out of range: "0.1 months 2147483647 days"
-LINE 1: select interval '0.1 months 2147483647 days';
- ^
select interval '-0.1 months -2147483648 days';
ERROR: interval field value out of range: "-0.1 months -2147483648 days"
-LINE 1: select interval '-0.1 months -2147483648 days';
- ^
select interval '2147483647 days 0.1 months';
ERROR: interval field value out of range: "2147483647 days 0.1 months"
-LINE 1: select interval '2147483647 days 0.1 months';
- ^
select interval '-2147483648 days -0.1 months';
ERROR: interval field value out of range: "-2147483648 days -0.1 months"
-LINE 1: select interval '-2147483648 days -0.1 months';
- ^
select interval '0.5 weeks 2147483647 days';
ERROR: interval field value out of range: "0.5 weeks 2147483647 days"
-LINE 1: select interval '0.5 weeks 2147483647 days';
- ^
select interval '-0.5 weeks -2147483648 days';
ERROR: interval field value out of range: "-0.5 weeks -2147483648 days"
-LINE 1: select interval '-0.5 weeks -2147483648 days';
- ^
select interval '2147483647 days 0.5 weeks';
ERROR: interval field value out of range: "2147483647 days 0.5 weeks"
-LINE 1: select interval '2147483647 days 0.5 weeks';
- ^
select interval '-2147483648 days -0.5 weeks';
ERROR: interval field value out of range: "-2147483648 days -0.5 weeks"
-LINE 1: select interval '-2147483648 days -0.5 weeks';
- ^
select interval '0.01 months 9223372036854775807 microseconds';
ERROR: interval field value out of range: "0.01 months 9223372036854775807 microseconds"
-LINE 1: select interval '0.01 months 9223372036854775807 microsecond...
- ^
select interval '-0.01 months -9223372036854775808 microseconds';
ERROR: interval field value out of range: "-0.01 months -9223372036854775808 microseconds"
-LINE 1: select interval '-0.01 months -9223372036854775808 microseco...
- ^
select interval '9223372036854775807 microseconds 0.01 months';
ERROR: interval field value out of range: "9223372036854775807 microseconds 0.01 months"
-LINE 1: select interval '9223372036854775807 microseconds 0.01 month...
- ^
select interval '-9223372036854775808 microseconds -0.01 months';
ERROR: interval field value out of range: "-9223372036854775808 microseconds -0.01 months"
-LINE 1: select interval '-9223372036854775808 microseconds -0.01 mon...
- ^
select interval '0.1 weeks 9223372036854775807 microseconds';
ERROR: interval field value out of range: "0.1 weeks 9223372036854775807 microseconds"
-LINE 1: select interval '0.1 weeks 9223372036854775807 microseconds'...
- ^
select interval '-0.1 weeks -9223372036854775808 microseconds';
ERROR: interval field value out of range: "-0.1 weeks -9223372036854775808 microseconds"
-LINE 1: select interval '-0.1 weeks -9223372036854775808 microsecond...
- ^
select interval '9223372036854775807 microseconds 0.1 weeks';
ERROR: interval field value out of range: "9223372036854775807 microseconds 0.1 weeks"
-LINE 1: select interval '9223372036854775807 microseconds 0.1 weeks'...
- ^
select interval '-9223372036854775808 microseconds -0.1 weeks';
ERROR: interval field value out of range: "-9223372036854775808 microseconds -0.1 weeks"
-LINE 1: select interval '-9223372036854775808 microseconds -0.1 week...
- ^
select interval '0.1 days 9223372036854775807 microseconds';
ERROR: interval field value out of range: "0.1 days 9223372036854775807 microseconds"
-LINE 1: select interval '0.1 days 9223372036854775807 microseconds';
- ^
select interval '-0.1 days -9223372036854775808 microseconds';
ERROR: interval field value out of range: "-0.1 days -9223372036854775808 microseconds"
-LINE 1: select interval '-0.1 days -9223372036854775808 microseconds...
- ^
select interval '9223372036854775807 microseconds 0.1 days';
ERROR: interval field value out of range: "9223372036854775807 microseconds 0.1 days"
-LINE 1: select interval '9223372036854775807 microseconds 0.1 days';
- ^
select interval '-9223372036854775808 microseconds -0.1 days';
ERROR: interval field value out of range: "-9223372036854775808 microseconds -0.1 days"
-LINE 1: select interval '-9223372036854775808 microseconds -0.1 days...
- ^
-- overflowing with fractional fields - ISO8601 format
select interval 'P0.1Y2147483647M';
ERROR: interval field value out of range: "P0.1Y2147483647M"
-LINE 1: select interval 'P0.1Y2147483647M';
- ^
select interval 'P-0.1Y-2147483648M';
ERROR: interval field value out of range: "P-0.1Y-2147483648M"
-LINE 1: select interval 'P-0.1Y-2147483648M';
- ^
select interval 'P2147483647M0.1Y';
ERROR: interval field value out of range: "P2147483647M0.1Y"
-LINE 1: select interval 'P2147483647M0.1Y';
- ^
select interval 'P-2147483648M-0.1Y';
ERROR: interval field value out of range: "P-2147483648M-0.1Y"
-LINE 1: select interval 'P-2147483648M-0.1Y';
- ^
select interval 'P0.1M2147483647D';
ERROR: interval field value out of range: "P0.1M2147483647D"
-LINE 1: select interval 'P0.1M2147483647D';
- ^
select interval 'P-0.1M-2147483648D';
ERROR: interval field value out of range: "P-0.1M-2147483648D"
-LINE 1: select interval 'P-0.1M-2147483648D';
- ^
select interval 'P2147483647D0.1M';
ERROR: interval field value out of range: "P2147483647D0.1M"
-LINE 1: select interval 'P2147483647D0.1M';
- ^
select interval 'P-2147483648D-0.1M';
ERROR: interval field value out of range: "P-2147483648D-0.1M"
-LINE 1: select interval 'P-2147483648D-0.1M';
- ^
select interval 'P0.5W2147483647D';
ERROR: interval field value out of range: "P0.5W2147483647D"
-LINE 1: select interval 'P0.5W2147483647D';
- ^
select interval 'P-0.5W-2147483648D';
ERROR: interval field value out of range: "P-0.5W-2147483648D"
-LINE 1: select interval 'P-0.5W-2147483648D';
- ^
select interval 'P2147483647D0.5W';
ERROR: interval field value out of range: "P2147483647D0.5W"
-LINE 1: select interval 'P2147483647D0.5W';
- ^
select interval 'P-2147483648D-0.5W';
ERROR: interval field value out of range: "P-2147483648D-0.5W"
-LINE 1: select interval 'P-2147483648D-0.5W';
- ^
select interval 'P0.01MT2562047788H54.775807S';
ERROR: interval field value out of range: "P0.01MT2562047788H54.775807S"
-LINE 1: select interval 'P0.01MT2562047788H54.775807S';
- ^
select interval 'P-0.01MT-2562047788H-54.775808S';
ERROR: interval field value out of range: "P-0.01MT-2562047788H-54.775808S"
-LINE 1: select interval 'P-0.01MT-2562047788H-54.775808S';
- ^
select interval 'P0.1DT2562047788H54.775807S';
ERROR: interval field value out of range: "P0.1DT2562047788H54.775807S"
-LINE 1: select interval 'P0.1DT2562047788H54.775807S';
- ^
select interval 'P-0.1DT-2562047788H-54.775808S';
ERROR: interval field value out of range: "P-0.1DT-2562047788H-54.775808S"
-LINE 1: select interval 'P-0.1DT-2562047788H-54.775808S';
- ^
select interval 'PT2562047788.1H54.775807S';
ERROR: interval field value out of range: "PT2562047788.1H54.775807S"
-LINE 1: select interval 'PT2562047788.1H54.775807S';
- ^
select interval 'PT-2562047788.1H-54.775808S';
ERROR: interval field value out of range: "PT-2562047788.1H-54.775808S"
-LINE 1: select interval 'PT-2562047788.1H-54.775808S';
- ^
select interval 'PT2562047788H0.1M54.775807S';
ERROR: interval field value out of range: "PT2562047788H0.1M54.775807S"
-LINE 1: select interval 'PT2562047788H0.1M54.775807S';
- ^
select interval 'PT-2562047788H-0.1M-54.775808S';
ERROR: interval field value out of range: "PT-2562047788H-0.1M-54.775808S"
-LINE 1: select interval 'PT-2562047788H-0.1M-54.775808S';
- ^
-- overflowing with fractional fields - ISO8601 alternative format
select interval 'P0.1-2147483647-00';
ERROR: interval field value out of range: "P0.1-2147483647-00"
-LINE 1: select interval 'P0.1-2147483647-00';
- ^
select interval 'P00-0.1-2147483647';
ERROR: interval field value out of range: "P00-0.1-2147483647"
-LINE 1: select interval 'P00-0.1-2147483647';
- ^
select interval 'P00-0.01-00T2562047788:00:54.775807';
ERROR: interval field value out of range: "P00-0.01-00T2562047788:00:54.775807"
-LINE 1: select interval 'P00-0.01-00T2562047788:00:54.775807';
- ^
select interval 'P00-00-0.1T2562047788:00:54.775807';
ERROR: interval field value out of range: "P00-00-0.1T2562047788:00:54.775807"
-LINE 1: select interval 'P00-00-0.1T2562047788:00:54.775807';
- ^
select interval 'PT2562047788.1:00:54.775807';
ERROR: interval field value out of range: "PT2562047788.1:00:54.775807"
-LINE 1: select interval 'PT2562047788.1:00:54.775807';
- ^
select interval 'PT2562047788:01.:54.775807';
ERROR: interval field value out of range: "PT2562047788:01.:54.775807"
-LINE 1: select interval 'PT2562047788:01.:54.775807';
- ^
-- overflowing with fractional fields - SQL standard format
select interval '0.1 2562047788:0:54.775807';
ERROR: interval field value out of range: "0.1 2562047788:0:54.775807"
-LINE 1: select interval '0.1 2562047788:0:54.775807';
- ^
select interval '0.1 2562047788:0:54.775808 ago';
ERROR: interval field value out of range: "0.1 2562047788:0:54.775808 ago"
-LINE 1: select interval '0.1 2562047788:0:54.775808 ago';
- ^
select interval '2562047788.1:0:54.775807';
ERROR: interval field value out of range: "2562047788.1:0:54.775807"
-LINE 1: select interval '2562047788.1:0:54.775807';
- ^
select interval '2562047788.1:0:54.775808 ago';
ERROR: interval field value out of range: "2562047788.1:0:54.775808 ago"
-LINE 1: select interval '2562047788.1:0:54.775808 ago';
- ^
select interval '2562047788:0.1:54.775807';
ERROR: invalid input syntax for type interval: "2562047788:0.1:54.775807"
-LINE 1: select interval '2562047788:0.1:54.775807';
- ^
select interval '2562047788:0.1:54.775808 ago';
ERROR: invalid input syntax for type interval: "2562047788:0.1:54.775808 ago"
-LINE 1: select interval '2562047788:0.1:54.775808 ago';
- ^
-- overflowing using AGO with INT_MIN
select interval '-2147483648 months ago';
ERROR: interval field value out of range: "-2147483648 months ago"
-LINE 1: select interval '-2147483648 months ago';
- ^
select interval '-2147483648 days ago';
ERROR: interval field value out of range: "-2147483648 days ago"
-LINE 1: select interval '-2147483648 days ago';
- ^
select interval '-9223372036854775808 microseconds ago';
ERROR: interval field value out of range: "-9223372036854775808 microseconds ago"
-LINE 1: select interval '-9223372036854775808 microseconds ago';
- ^
select interval '-2147483648 months -2147483648 days -9223372036854775808 microseconds ago';
ERROR: interval field value out of range: "-2147483648 months -2147483648 days -9223372036854775808 microseconds ago"
-LINE 1: select interval '-2147483648 months -2147483648 days -922337...
- ^
-- overflowing using make_interval
select make_interval(years := 178956971);
ERROR: interval out of range
@@ -2230,57 +1936,31 @@
-- "ago" can only appear once at the end of an interval.
SELECT INTERVAL '42 days 2 seconds ago ago';
ERROR: invalid input syntax for type interval: "42 days 2 seconds ago ago"
-LINE 1: SELECT INTERVAL '42 days 2 seconds ago ago';
- ^
SELECT INTERVAL '2 minutes ago 5 days';
ERROR: invalid input syntax for type interval: "2 minutes ago 5 days"
-LINE 1: SELECT INTERVAL '2 minutes ago 5 days';
- ^
-- consecutive and dangling units are not allowed.
SELECT INTERVAL 'hour 5 months';
ERROR: invalid input syntax for type interval: "hour 5 months"
-LINE 1: SELECT INTERVAL 'hour 5 months';
- ^
SELECT INTERVAL '1 year months days 5 hours';
ERROR: invalid input syntax for type interval: "1 year months days 5 hours"
-LINE 1: SELECT INTERVAL '1 year months days 5 hours';
- ^
-- unacceptable reserved words in interval. Only "infinity", "+infinity" and
-- "-infinity" are allowed.
SELECT INTERVAL 'now';
ERROR: invalid input syntax for type interval: "now"
-LINE 1: SELECT INTERVAL 'now';
- ^
SELECT INTERVAL 'today';
ERROR: invalid input syntax for type interval: "today"
-LINE 1: SELECT INTERVAL 'today';
- ^
SELECT INTERVAL 'tomorrow';
ERROR: invalid input syntax for type interval: "tomorrow"
-LINE 1: SELECT INTERVAL 'tomorrow';
- ^
SELECT INTERVAL 'allballs';
ERROR: invalid input syntax for type interval: "allballs"
-LINE 1: SELECT INTERVAL 'allballs';
- ^
SELECT INTERVAL 'epoch';
ERROR: invalid input syntax for type interval: "epoch"
-LINE 1: SELECT INTERVAL 'epoch';
- ^
SELECT INTERVAL 'yesterday';
ERROR: invalid input syntax for type interval: "yesterday"
-LINE 1: SELECT INTERVAL 'yesterday';
- ^
-- infinity specification should be the only thing
SELECT INTERVAL 'infinity years';
ERROR: invalid input syntax for type interval: "infinity years"
-LINE 1: SELECT INTERVAL 'infinity years';
- ^
SELECT INTERVAL 'infinity ago';
ERROR: invalid input syntax for type interval: "infinity ago"
-LINE 1: SELECT INTERVAL 'infinity ago';
- ^
SELECT INTERVAL '+infinity -infinity';
ERROR: invalid input syntax for type interval: "+infinity -infinity"
-LINE 1: SELECT INTERVAL '+infinity -infinity';
- ^
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/inet.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/inet.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/inet.out 2024-02-22 13:04:49.013656000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/inet.out 2024-02-22 13:08:04.251063000 +0000
@@ -25,23 +25,15 @@
-- check that CIDR rejects invalid input:
INSERT INTO INET_TBL (c, i) VALUES ('192.168.1.2/30', '192.168.1.226');
ERROR: invalid cidr value: "192.168.1.2/30"
-LINE 1: INSERT INTO INET_TBL (c, i) VALUES ('192.168.1.2/30', '192.1...
- ^
DETAIL: Value has bits set to right of mask.
INSERT INTO INET_TBL (c, i) VALUES ('1234::1234::1234', '::1.2.3.4');
ERROR: invalid input syntax for type cidr: "1234::1234::1234"
-LINE 1: INSERT INTO INET_TBL (c, i) VALUES ('1234::1234::1234', '::1...
- ^
-- check that CIDR rejects invalid input when converting from text:
INSERT INTO INET_TBL (c, i) VALUES (cidr('192.168.1.2/30'), '192.168.1.226');
ERROR: invalid cidr value: "192.168.1.2/30"
-LINE 1: INSERT INTO INET_TBL (c, i) VALUES (cidr('192.168.1.2/30'), ...
- ^
DETAIL: Value has bits set to right of mask.
INSERT INTO INET_TBL (c, i) VALUES (cidr('ffff:ffff:ffff:ffff::/24'), '::192.168.1.226');
ERROR: invalid cidr value: "ffff:ffff:ffff:ffff::/24"
-LINE 1: INSERT INTO INET_TBL (c, i) VALUES (cidr('ffff:ffff:ffff:fff...
- ^
DETAIL: Value has bits set to right of mask.
SELECT c AS cidr, i AS inet FROM INET_TBL;
cidr | inet
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/macaddr.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/macaddr.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/macaddr.out 2024-02-22 13:04:49.014496000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/macaddr.out 2024-02-22 13:08:03.204046000 +0000
@@ -11,12 +11,8 @@
INSERT INTO macaddr_data VALUES (7, '08002b010203');
INSERT INTO macaddr_data VALUES (8, '0800:2b01:0203'); -- invalid
ERROR: invalid input syntax for type macaddr: "0800:2b01:0203"
-LINE 1: INSERT INTO macaddr_data VALUES (8, '0800:2b01:0203');
- ^
INSERT INTO macaddr_data VALUES (9, 'not even close'); -- invalid
ERROR: invalid input syntax for type macaddr: "not even close"
-LINE 1: INSERT INTO macaddr_data VALUES (9, 'not even close');
- ^
INSERT INTO macaddr_data VALUES (10, '08:00:2b:01:02:04');
INSERT INTO macaddr_data VALUES (11, '08:00:2b:01:02:02');
INSERT INTO macaddr_data VALUES (12, '08:00:2a:01:02:03');
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/macaddr8.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/macaddr8.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/macaddr8.out 2024-02-22 13:04:49.014508000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/macaddr8.out 2024-02-22 13:08:03.591887000 +0000
@@ -41,60 +41,32 @@
SELECT '123 08:00:2b:01:02:03'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "123 08:00:2b:01:02:03"
-LINE 1: SELECT '123 08:00:2b:01:02:03'::macaddr8;
- ^
SELECT '08:00:2b:01:02:03 123'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00:2b:01:02:03 123"
-LINE 1: SELECT '08:00:2b:01:02:03 123'::macaddr8;
- ^
SELECT '123 08:00:2b:01:02:03:04:05'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "123 08:00:2b:01:02:03:04:05"
-LINE 1: SELECT '123 08:00:2b:01:02:03:04:05'::macaddr8;
- ^
SELECT '08:00:2b:01:02:03:04:05 123'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00:2b:01:02:03:04:05 123"
-LINE 1: SELECT '08:00:2b:01:02:03:04:05 123'::macaddr8;
- ^
SELECT '08:00:2b:01:02:03:04:05:06:07'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00:2b:01:02:03:04:05:06:07"
-LINE 1: SELECT '08:00:2b:01:02:03:04:05:06:07'::macaddr8;
- ^
SELECT '08-00-2b-01-02-03-04-05-06-07'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08-00-2b-01-02-03-04-05-06-07"
-LINE 1: SELECT '08-00-2b-01-02-03-04-05-06-07'::macaddr8;
- ^
SELECT '08002b:01020304050607'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08002b:01020304050607"
-LINE 1: SELECT '08002b:01020304050607'::macaddr8;
- ^
SELECT '08002b01020304050607'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08002b01020304050607"
-LINE 1: SELECT '08002b01020304050607'::macaddr8;
- ^
SELECT '0z002b0102030405'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "0z002b0102030405"
-LINE 1: SELECT '0z002b0102030405'::macaddr8;
- ^
SELECT '08002b010203xyza'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08002b010203xyza"
-LINE 1: SELECT '08002b010203xyza'::macaddr8;
- ^
SELECT '08:00-2b:01:02:03:04:05'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00-2b:01:02:03:04:05"
-LINE 1: SELECT '08:00-2b:01:02:03:04:05'::macaddr8;
- ^
SELECT '08:00-2b:01:02:03:04:05'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00-2b:01:02:03:04:05"
-LINE 1: SELECT '08:00-2b:01:02:03:04:05'::macaddr8;
- ^
SELECT '08:00:2b:01.02:03:04:05'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00:2b:01.02:03:04:05"
-LINE 1: SELECT '08:00:2b:01.02:03:04:05'::macaddr8;
- ^
SELECT '08:00:2b:01.02:03:04:05'::macaddr8; -- invalid
ERROR: invalid input syntax for type macaddr8: "08:00:2b:01.02:03:04:05"
-LINE 1: SELECT '08:00:2b:01.02:03:04:05'::macaddr8;
- ^
-- test converting a MAC address to modified EUI-64 for inclusion
-- in an ipv6 address
SELECT macaddr8_set7bit('00:08:2b:01:02:03'::macaddr8);
@@ -114,8 +86,6 @@
INSERT INTO macaddr8_data VALUES (8, '0800:2b01:0203');
INSERT INTO macaddr8_data VALUES (9, 'not even close'); -- invalid
ERROR: invalid input syntax for type macaddr8: "not even close"
-LINE 1: INSERT INTO macaddr8_data VALUES (9, 'not even close');
- ^
INSERT INTO macaddr8_data VALUES (10, '08:00:2b:01:02:04');
INSERT INTO macaddr8_data VALUES (11, '08:00:2b:01:02:02');
INSERT INTO macaddr8_data VALUES (12, '08:00:2a:01:02:03');
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/multirangetypes.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/multirangetypes.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/multirangetypes.out 2024-02-22 13:04:49.014686000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/multirangetypes.out 2024-02-22 13:08:04.799936000 +0000
@@ -5,73 +5,45 @@
-- negative tests; should fail
select ''::textmultirange;
ERROR: malformed multirange literal: ""
-LINE 1: select ''::textmultirange;
- ^
DETAIL: Missing left brace.
select '{,}'::textmultirange;
ERROR: malformed multirange literal: "{,}"
-LINE 1: select '{,}'::textmultirange;
- ^
DETAIL: Expected range start.
select '{(,)}.'::textmultirange;
ERROR: malformed multirange literal: "{(,)}."
-LINE 1: select '{(,)}.'::textmultirange;
- ^
DETAIL: Junk after closing right brace.
select '{[a,c),}'::textmultirange;
ERROR: malformed multirange literal: "{[a,c),}"
-LINE 1: select '{[a,c),}'::textmultirange;
- ^
DETAIL: Expected range start.
select '{,[a,c)}'::textmultirange;
ERROR: malformed multirange literal: "{,[a,c)}"
-LINE 1: select '{,[a,c)}'::textmultirange;
- ^
DETAIL: Expected range start.
select '{-[a,z)}'::textmultirange;
ERROR: malformed multirange literal: "{-[a,z)}"
-LINE 1: select '{-[a,z)}'::textmultirange;
- ^
DETAIL: Expected range start.
select '{[a,z) - }'::textmultirange;
ERROR: malformed multirange literal: "{[a,z) - }"
-LINE 1: select '{[a,z) - }'::textmultirange;
- ^
DETAIL: Expected comma or end of multirange.
select '{(",a)}'::textmultirange;
ERROR: malformed multirange literal: "{(",a)}"
-LINE 1: select '{(",a)}'::textmultirange;
- ^
DETAIL: Unexpected end of input.
select '{(,,a)}'::textmultirange;
ERROR: malformed range literal: "(,,a)"
-LINE 1: select '{(,,a)}'::textmultirange;
- ^
DETAIL: Too many commas.
select '{(),a)}'::textmultirange;
ERROR: malformed range literal: "()"
-LINE 1: select '{(),a)}'::textmultirange;
- ^
DETAIL: Missing comma after lower bound.
select '{(a,))}'::textmultirange;
ERROR: malformed multirange literal: "{(a,))}"
-LINE 1: select '{(a,))}'::textmultirange;
- ^
DETAIL: Expected comma or end of multirange.
select '{(],a)}'::textmultirange;
ERROR: malformed range literal: "(]"
-LINE 1: select '{(],a)}'::textmultirange;
- ^
DETAIL: Missing comma after lower bound.
select '{(a,])}'::textmultirange;
ERROR: malformed multirange literal: "{(a,])}"
-LINE 1: select '{(a,])}'::textmultirange;
- ^
DETAIL: Expected comma or end of multirange.
select '{[z,a]}'::textmultirange;
ERROR: range lower bound must be less than or equal to range upper bound
-LINE 1: select '{[z,a]}'::textmultirange;
- ^
-- should succeed
select '{}'::textmultirange;
textmultirange
@@ -3094,8 +3066,6 @@
create type textrange2 as range(subtype=text, multirange_type_name=_textrange1, collation="C");
select multirange_of_text(textrange2('a','Z')); -- should fail
ERROR: function multirange_of_text(textrange2) does not exist
-LINE 1: select multirange_of_text(textrange2('a','Z'));
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select multirange_of_text(textrange1('a','Z')) @> 'b'::text;
ERROR: range lower bound must be less than or equal to range upper bound
@@ -3158,8 +3128,6 @@
-- should fail
select anyarray_anymultirange_func(ARRAY[1,2], nummultirange(numrange(10,20)));
ERROR: function anyarray_anymultirange_func(integer[], nummultirange) does not exist
-LINE 1: select anyarray_anymultirange_func(ARRAY[1,2], nummultirange...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyarray_anymultirange_func(anyarray, anymultirange);
-- should fail
@@ -3197,8 +3165,6 @@
select multirangetypes_sql(nummultirange(numrange(1,10)), ARRAY[2,20]); -- match failure
ERROR: function multirangetypes_sql(nummultirange, integer[]) does not exist
-LINE 1: select multirangetypes_sql(nummultirange(numrange(1,10)), AR...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
create function anycompatiblearray_anycompatiblemultirange_func(a anycompatiblearray, mr anycompatiblemultirange)
returns anycompatible as 'select $1[1] + lower($2);' language sql;
@@ -3217,8 +3183,6 @@
-- should fail
select anycompatiblearray_anycompatiblemultirange_func(ARRAY[1.1,2], multirange(int4range(10,20)));
ERROR: function anycompatiblearray_anycompatiblemultirange_func(numeric[], int4multirange) does not exist
-LINE 1: select anycompatiblearray_anycompatiblemultirange_func(ARRAY...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anycompatiblearray_anycompatiblemultirange_func(anycompatiblearray, anycompatiblemultirange);
create function anycompatiblerange_anycompatiblemultirange_func(r anycompatiblerange, mr anycompatiblemultirange)
@@ -3232,8 +3196,6 @@
-- should fail
select anycompatiblerange_anycompatiblemultirange_func(numrange(1,2), multirange(int4range(10,20)));
ERROR: function anycompatiblerange_anycompatiblemultirange_func(numrange, int4multirange) does not exist
-LINE 1: select anycompatiblerange_anycompatiblemultirange_func(numra...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anycompatiblerange_anycompatiblemultirange_func(anycompatiblerange, anycompatiblemultirange);
-- should fail
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/geometry.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/geometry.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/geometry.out 2024-02-22 13:04:49.013316000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/geometry.out 2024-02-22 13:08:05.586888000 +0000
@@ -1775,8 +1775,6 @@
SELECT p.f1, l.s, l.s # p.f1 AS intersection
FROM LSEG_TBL l, POINT_TBL p;
ERROR: operator does not exist: lseg # point
-LINE 1: SELECT p.f1, l.s, l.s # p.f1 AS intersection
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-- Length
SELECT s, @-@ s FROM LSEG_TBL;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/horology.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/horology.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/horology.out 2024-02-22 13:04:49.013497000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/horology.out 2024-02-22 13:08:05.531576000 +0000
@@ -98,8 +98,6 @@
-- should fail in mdy mode:
SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
ERROR: date/time field value out of range: "27/12/2001 04:05:06.789-08"
-LINE 1: SELECT timestamp with time zone '27/12/2001 04:05:06.789-08'...
- ^
HINT: Perhaps you need a different "datestyle" setting.
set datestyle to dmy;
SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
@@ -260,8 +258,6 @@
-- time with time zone should accept a date for DST resolution purposes
SELECT time with time zone 'T040506.789 America/Los_Angeles';
ERROR: invalid input syntax for type time with time zone: "T040506.789 America/Los_Angeles"
-LINE 1: SELECT time with time zone 'T040506.789 America/Los_Angeles'...
- ^
SELECT time with time zone '2001-12-27 T040506.789 America/Los_Angeles';
timetz
-----------------
@@ -291,107 +287,57 @@
-- test error on dangling Julian units
SELECT date '1995-08-06 J J J';
ERROR: invalid input syntax for type date: "1995-08-06 J J J"
-LINE 1: SELECT date '1995-08-06 J J J';
- ^
SELECT date 'J J 1520447';
ERROR: invalid input syntax for type date: "J J 1520447"
-LINE 1: SELECT date 'J J 1520447';
- ^
-- We used to accept this input style, but it was based on a misreading
-- of ISO8601, and it was never documented anyway
SELECT timestamp with time zone 'Y2001M12D27H04M05S06.789+08';
ERROR: invalid input syntax for type timestamp with time zone: "Y2001M12D27H04M05S06.789+08"
-LINE 1: SELECT timestamp with time zone 'Y2001M12D27H04M05S06.789+08...
- ^
SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789-08';
ERROR: invalid input syntax for type timestamp with time zone: "Y2001M12D27H04MM05S06.789-08"
-LINE 1: SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789-0...
- ^
-- conflicting fields should throw errors
SELECT date '1995-08-06 epoch';
ERROR: invalid input syntax for type date: "1995-08-06 epoch"
-LINE 1: SELECT date '1995-08-06 epoch';
- ^
SELECT date '1995-08-06 infinity';
ERROR: invalid input syntax for type date: "1995-08-06 infinity"
-LINE 1: SELECT date '1995-08-06 infinity';
- ^
SELECT date '1995-08-06 -infinity';
ERROR: invalid input syntax for type date: "1995-08-06 -infinity"
-LINE 1: SELECT date '1995-08-06 -infinity';
- ^
SELECT date 'today infinity';
ERROR: invalid input syntax for type date: "today infinity"
-LINE 1: SELECT date 'today infinity';
- ^
SELECT date '-infinity infinity';
ERROR: invalid input syntax for type date: "-infinity infinity"
-LINE 1: SELECT date '-infinity infinity';
- ^
SELECT timestamp '1995-08-06 epoch';
ERROR: invalid input syntax for type timestamp: "1995-08-06 epoch"
-LINE 1: SELECT timestamp '1995-08-06 epoch';
- ^
SELECT timestamp '1995-08-06 infinity';
ERROR: invalid input syntax for type timestamp: "1995-08-06 infinity"
-LINE 1: SELECT timestamp '1995-08-06 infinity';
- ^
SELECT timestamp '1995-08-06 -infinity';
ERROR: invalid input syntax for type timestamp: "1995-08-06 -infinity"
-LINE 1: SELECT timestamp '1995-08-06 -infinity';
- ^
SELECT timestamp 'epoch 01:01:01';
ERROR: invalid input syntax for type timestamp: "epoch 01:01:01"
-LINE 1: SELECT timestamp 'epoch 01:01:01';
- ^
SELECT timestamp 'infinity 01:01:01';
ERROR: invalid input syntax for type timestamp: "infinity 01:01:01"
-LINE 1: SELECT timestamp 'infinity 01:01:01';
- ^
SELECT timestamp '-infinity 01:01:01';
ERROR: invalid input syntax for type timestamp: "-infinity 01:01:01"
-LINE 1: SELECT timestamp '-infinity 01:01:01';
- ^
SELECT timestamp 'now epoch';
ERROR: invalid input syntax for type timestamp: "now epoch"
-LINE 1: SELECT timestamp 'now epoch';
- ^
SELECT timestamp '-infinity infinity';
ERROR: invalid input syntax for type timestamp: "-infinity infinity"
-LINE 1: SELECT timestamp '-infinity infinity';
- ^
SELECT timestamptz '1995-08-06 epoch';
ERROR: invalid input syntax for type timestamp with time zone: "1995-08-06 epoch"
-LINE 1: SELECT timestamptz '1995-08-06 epoch';
- ^
SELECT timestamptz '1995-08-06 infinity';
ERROR: invalid input syntax for type timestamp with time zone: "1995-08-06 infinity"
-LINE 1: SELECT timestamptz '1995-08-06 infinity';
- ^
SELECT timestamptz '1995-08-06 -infinity';
ERROR: invalid input syntax for type timestamp with time zone: "1995-08-06 -infinity"
-LINE 1: SELECT timestamptz '1995-08-06 -infinity';
- ^
SELECT timestamptz 'epoch 01:01:01';
ERROR: invalid input syntax for type timestamp with time zone: "epoch 01:01:01"
-LINE 1: SELECT timestamptz 'epoch 01:01:01';
- ^
SELECT timestamptz 'infinity 01:01:01';
ERROR: invalid input syntax for type timestamp with time zone: "infinity 01:01:01"
-LINE 1: SELECT timestamptz 'infinity 01:01:01';
- ^
SELECT timestamptz '-infinity 01:01:01';
ERROR: invalid input syntax for type timestamp with time zone: "-infinity 01:01:01"
-LINE 1: SELECT timestamptz '-infinity 01:01:01';
- ^
SELECT timestamptz 'now epoch';
ERROR: invalid input syntax for type timestamp with time zone: "now epoch"
-LINE 1: SELECT timestamptz 'now epoch';
- ^
SELECT timestamptz '-infinity infinity';
ERROR: invalid input syntax for type timestamp with time zone: "-infinity infinity"
-LINE 1: SELECT timestamptz '-infinity infinity';
- ^
--
-- date, time arithmetic
--
@@ -434,8 +380,6 @@
SELECT date '1991-02-03' - time with time zone '04:05:06 UTC' AS "Subtract Time UTC";
ERROR: operator does not exist: date - time with time zone
-LINE 1: SELECT date '1991-02-03' - time with time zone '04:05:06 UTC...
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
--
-- timestamp, interval arithmetic
@@ -1023,12 +967,8 @@
SELECT CAST(time with time zone '01:02-08' AS interval) AS "+00:01";
ERROR: cannot cast type time with time zone to interval
-LINE 1: SELECT CAST(time with time zone '01:02-08' AS interval) AS "...
- ^
SELECT CAST(interval '02:03' AS time with time zone) AS "02:03:00-08";
ERROR: cannot cast type interval to time with time zone
-LINE 1: SELECT CAST(interval '02:03' AS time with time zone) AS "02:...
- ^
SELECT time with time zone '01:30-08' - interval '02:01' AS "23:29:00-08";
23:29:00-08
-------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/tstypes.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tstypes.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/tstypes.out 2024-02-22 13:04:49.017177000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tstypes.out 2024-02-22 13:08:05.150807000 +0000
@@ -87,8 +87,6 @@
SELECT $$'' '1' '2'$$::tsvector; -- error, empty lexeme is not allowed
ERROR: syntax error in tsvector: "'' '1' '2'"
-LINE 1: SELECT $$'' '1' '2'$$::tsvector;
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('foo', 'tsvector');
pg_input_is_valid
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/expressions.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/expressions.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/expressions.out 2024-02-22 13:04:49.012975000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/expressions.out 2024-02-22 13:08:05.541596000 +0000
@@ -216,8 +216,6 @@
-- an = operator, not about cast failure.
select '(0,0)'::point in ('(0,0,0,0)'::box, point(0,0));
ERROR: operator does not exist: point = box
-LINE 1: select '(0,0)'::point in ('(0,0,0,0)'::box, point(0,0));
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
--
-- Tests for ScalarArrayOpExpr with a hashfn
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/xid.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/xid.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/xid.out 2024-02-22 13:04:49.017736000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/xid.out 2024-02-22 13:08:05.527781000 +0000
@@ -16,20 +16,12 @@
-- garbage values
select ''::xid;
ERROR: invalid input syntax for type xid: ""
-LINE 1: select ''::xid;
- ^
select 'asdf'::xid;
ERROR: invalid input syntax for type xid: "asdf"
-LINE 1: select 'asdf'::xid;
- ^
select ''::xid8;
ERROR: invalid input syntax for type xid8: ""
-LINE 1: select ''::xid8;
- ^
select 'asdf'::xid8;
ERROR: invalid input syntax for type xid8: "asdf"
-LINE 1: select 'asdf'::xid8;
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('42', 'xid');
pg_input_is_valid
@@ -108,23 +100,15 @@
-- we don't want relational operators for xid, due to use of modular arithmetic
select '1'::xid < '2'::xid;
ERROR: operator does not exist: xid < xid
-LINE 1: select '1'::xid < '2'::xid;
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
select '1'::xid <= '2'::xid;
ERROR: operator does not exist: xid <= xid
-LINE 1: select '1'::xid <= '2'::xid;
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
select '1'::xid > '2'::xid;
ERROR: operator does not exist: xid > xid
-LINE 1: select '1'::xid > '2'::xid;
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
select '1'::xid >= '2'::xid;
ERROR: operator does not exist: xid >= xid
-LINE 1: select '1'::xid >= '2'::xid;
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-- we want them for xid8 though
select '1'::xid8 < '2'::xid8, '2'::xid8 < '2'::xid8, '2'::xid8 < '1'::xid8;
@@ -196,20 +180,12 @@
-- errors
select '31:12:'::pg_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "31:12:"
-LINE 1: select '31:12:'::pg_snapshot;
- ^
select '0:1:'::pg_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "0:1:"
-LINE 1: select '0:1:'::pg_snapshot;
- ^
select '12:13:0'::pg_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "12:13:0"
-LINE 1: select '12:13:0'::pg_snapshot;
- ^
select '12:16:14,13'::pg_snapshot;
ERROR: invalid input syntax for type pg_snapshot: "12:16:14,13"
-LINE 1: select '12:16:14,13'::pg_snapshot;
- ^
-- also try it with non-error-throwing API
select pg_input_is_valid('12:13:', 'pg_snapshot');
pg_input_is_valid
@@ -442,8 +418,6 @@
SELECT pg_snapshot '1:9223372036854775808:3';
ERROR: invalid input syntax for type pg_snapshot: "1:9223372036854775808:3"
-LINE 1: SELECT pg_snapshot '1:9223372036854775808:3';
- ^
-- test pg_current_xact_id_if_assigned
BEGIN;
SELECT pg_current_xact_id_if_assigned() IS NULL;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/insert.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/insert.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/insert.out 2024-02-22 13:04:49.013909000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/insert.out 2024-02-22 13:08:06.402218000 +0000
@@ -23,20 +23,12 @@
--
insert into inserttest (col1, col2, col3) values (DEFAULT, DEFAULT);
ERROR: INSERT has more target columns than expressions
-LINE 1: insert into inserttest (col1, col2, col3) values (DEFAULT, D...
- ^
insert into inserttest (col1, col2, col3) values (1, 2);
ERROR: INSERT has more target columns than expressions
-LINE 1: insert into inserttest (col1, col2, col3) values (1, 2);
- ^
insert into inserttest (col1) values (1, 2);
ERROR: INSERT has more expressions than target columns
-LINE 1: insert into inserttest (col1) values (1, 2);
- ^
insert into inserttest (col1) values (DEFAULT, DEFAULT);
ERROR: INSERT has more expressions than target columns
-LINE 1: insert into inserttest (col1) values (DEFAULT, DEFAULT);
- ^
select * from inserttest;
col1 | col2 | col3
------+------+---------
@@ -115,15 +107,11 @@
insert into inserttest (f2[1], f2[2]) select 7,8;
insert into inserttest (f2[1], f2[2]) values (1,default); -- not supported
ERROR: cannot set an array element to DEFAULT
-LINE 1: insert into inserttest (f2[1], f2[2]) values (1,default);
- ^
insert into inserttest (f3.if1, f3.if2) values (1,array['foo']);
insert into inserttest (f3.if1, f3.if2) values (1,'{foo}'), (2,'{bar}');
insert into inserttest (f3.if1, f3.if2) select 3, '{baz,quux}';
insert into inserttest (f3.if1, f3.if2) values (1,default); -- not supported
ERROR: cannot set a subfield to DEFAULT
-LINE 1: insert into inserttest (f3.if1, f3.if2) values (1,default);
- ^
insert into inserttest (f3.if2[1], f3.if2[2]) values ('foo', 'bar');
insert into inserttest (f3.if2[1], f3.if2[2]) values ('foo', 'bar'), ('baz', 'quux');
insert into inserttest (f3.if2[1], f3.if2[2]) select 'bear', 'beer';
@@ -714,16 +702,10 @@
create table mcrparted (a int, b int, c int) partition by range (a, abs(b), c);
create table mcrparted0 partition of mcrparted for values from (minvalue, 0, 0) to (1, maxvalue, maxvalue);
ERROR: every bound following MINVALUE must also be MINVALUE
-LINE 1: ...partition of mcrparted for values from (minvalue, 0, 0) to (...
- ^
create table mcrparted2 partition of mcrparted for values from (10, 6, minvalue) to (10, maxvalue, minvalue);
ERROR: every bound following MAXVALUE must also be MAXVALUE
-LINE 1: ...r values from (10, 6, minvalue) to (10, maxvalue, minvalue);
- ^
create table mcrparted4 partition of mcrparted for values from (21, minvalue, 0) to (30, 20, minvalue);
ERROR: every bound following MINVALUE must also be MINVALUE
-LINE 1: ...ition of mcrparted for values from (21, minvalue, 0) to (30,...
- ^
-- check multi-column range partitioning expression enforces the same
-- constraint as what tuple-routing would determine it to be
create table mcrparted0 partition of mcrparted for values from (minvalue, minvalue, minvalue) to (1, maxvalue, maxvalue);
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/insert_conflict.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/insert_conflict.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/insert_conflict.out 2024-02-22 13:04:49.013932000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/insert_conflict.out 2024-02-22 13:08:05.994244000 +0000
@@ -226,8 +226,6 @@
-- Fails (no unique index inference specification, required for do update variant):
insert into insertconflicttest values (1, 'Apple') on conflict do update set fruit = excluded.fruit;
ERROR: ON CONFLICT DO UPDATE requires inference specification or constraint name
-LINE 1: ...nsert into insertconflicttest values (1, 'Apple') on conflic...
- ^
HINT: For example, ON CONFLICT (column_name).
-- inference succeeds:
insert into insertconflicttest values (1, 'Apple') on conflict (key) do update set fruit = excluded.fruit;
@@ -240,20 +238,14 @@
-- RETURNING:
insert into insertconflicttest values (1, 'Apple') on conflict (key) do update set fruit = excluded.fruit RETURNING excluded.fruit;
ERROR: invalid reference to FROM-clause entry for table "excluded"
-LINE 1: ...y) do update set fruit = excluded.fruit RETURNING excluded.f...
- ^
DETAIL: There is an entry for table "excluded", but it cannot be referenced from this part of the query.
-- Only suggest
.* column when inference element misspelled:
insert into insertconflicttest values (1, 'Apple') on conflict (keyy) do update set fruit = excluded.fruit;
ERROR: column "keyy" does not exist
-LINE 1: ...nsertconflicttest values (1, 'Apple') on conflict (keyy) do ...
- ^
HINT: Perhaps you meant to reference the column "insertconflicttest.key" or the column "excluded.key".
-- Have useful HINT for EXCLUDED.* RTE within UPDATE:
insert into insertconflicttest values (1, 'Apple') on conflict (key) do update set fruit = excluded.fruitt;
ERROR: column excluded.fruitt does not exist
-LINE 1: ... 'Apple') on conflict (key) do update set fruit = excluded.f...
- ^
HINT: Perhaps you meant to reference the column "excluded.fruit".
-- inference fails:
insert into insertconflicttest values (3, 'Kiwi') on conflict (key, fruit) do update set fruit = excluded.fruit;
@@ -269,14 +261,10 @@
insert into insertconflicttest AS ict values (6, 'Passionfruit') on conflict (key) do update set fruit = ict.fruit; -- ok, alias
insert into insertconflicttest AS ict values (6, 'Passionfruit') on conflict (key) do update set fruit = insertconflicttest.fruit; -- error, references aliased away name
ERROR: invalid reference to FROM-clause entry for table "insertconflicttest"
-LINE 1: ...onfruit') on conflict (key) do update set fruit = insertconf...
- ^
HINT: Perhaps you meant to reference the table alias "ict".
-- Check helpful hint when qualifying set column with target table
insert into insertconflicttest values (3, 'Kiwi') on conflict (key, fruit) do update set insertconflicttest.fruit = 'Mango';
ERROR: column "insertconflicttest" of relation "insertconflicttest" does not exist
-LINE 1: ...3, 'Kiwi') on conflict (key, fruit) do update set insertconf...
- ^
HINT: SET target columns cannot be qualified with the relation name.
drop index key_index;
--
@@ -455,8 +443,6 @@
insert into syscolconflicttest values (1);
insert into syscolconflicttest values (1) on conflict (key) do update set data = excluded.ctid::text;
ERROR: column excluded.ctid does not exist
-LINE 1: ...values (1) on conflict (key) do update set data = excluded.c...
- ^
drop table syscolconflicttest;
--
-- Previous tests all managed to not test any expressions requiring
@@ -597,8 +583,6 @@
-- error, ambiguous
insert into excluded values(1, '2') on conflict (key) do update set data = excluded.data RETURNING *;
ERROR: table reference "excluded" is ambiguous
-LINE 1: ...es(1, '2') on conflict (key) do update set data = excluded.d...
- ^
-- ok, aliased
insert into excluded AS target values(1, '2') on conflict (key) do update set data = excluded.data RETURNING *;
key | data
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_procedure.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_procedure.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_procedure.out 2024-02-22 13:04:49.012648000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_procedure.out 2024-02-22 13:08:06.524891000 +0000
@@ -1,12 +1,8 @@
CALL nonexistent(); -- error
ERROR: procedure nonexistent() does not exist
-LINE 1: CALL nonexistent();
- ^
HINT: No procedure matches the given name and argument types. You might need to add explicit type casts.
CALL random(); -- error
ERROR: random() is not a procedure
-LINE 1: CALL random();
- ^
HINT: To call a function, use SELECT.
CREATE FUNCTION cp_testfunc1(a int) RETURNS int LANGUAGE SQL AS $$ SELECT a $$;
CREATE TABLE cp_test (a int, b text);
@@ -51,8 +47,6 @@
SELECT ptest1('x'); -- error
ERROR: ptest1(unknown) is a procedure
-LINE 1: SELECT ptest1('x');
- ^
HINT: To call a procedure, use CALL.
CALL ptest1('a'); -- ok
CALL ptest1('xy' || 'zzy'); -- ok, constant-folded arg
@@ -234,8 +228,6 @@
-- ... and it had better match the type of the parameter
CALL ptest9(1./0.); -- error
ERROR: procedure ptest9(numeric) does not exist
-LINE 1: CALL ptest9(1./0.);
- ^
HINT: No procedure matches the given name and argument types. You might need to add explicit type casts.
-- check named-parameter matching
CREATE PROCEDURE ptest10(OUT a int, IN b int, IN c int)
@@ -319,22 +311,14 @@
-- various error cases
CALL version(); -- error: not a procedure
ERROR: version() is not a procedure
-LINE 1: CALL version();
- ^
HINT: To call a function, use SELECT.
CALL sum(1); -- error: not a procedure
ERROR: sum(integer) is not a procedure
-LINE 1: CALL sum(1);
- ^
HINT: To call a function, use SELECT.
CREATE PROCEDURE ptestx() LANGUAGE SQL WINDOW AS $$ INSERT INTO cp_test VALUES (1, 'a') $$;
ERROR: invalid attribute in procedure definition
-LINE 1: CREATE PROCEDURE ptestx() LANGUAGE SQL WINDOW AS $$ INSERT I...
- ^
CREATE PROCEDURE ptestx() LANGUAGE SQL STRICT AS $$ INSERT INTO cp_test VALUES (1, 'a') $$;
ERROR: invalid attribute in procedure definition
-LINE 1: CREATE PROCEDURE ptestx() LANGUAGE SQL STRICT AS $$ INSERT I...
- ^
CREATE PROCEDURE ptestx(a VARIADIC int[], b OUT int) LANGUAGE SQL
AS $$ SELECT a[1] $$;
ERROR: VARIADIC parameter must be the last parameter
@@ -343,8 +327,6 @@
ERROR: procedure OUT parameters cannot appear after one with a default value
ALTER PROCEDURE ptest1(text) STRICT;
ERROR: invalid attribute in procedure definition
-LINE 1: ALTER PROCEDURE ptest1(text) STRICT;
- ^
ALTER FUNCTION ptest1(text) VOLATILE; -- error: not a function
ERROR: ptest1(text) is not a function
ALTER PROCEDURE cp_testfunc1(int) VOLATILE; -- error: not a procedure
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_table.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_table.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_table.out 2024-02-22 13:04:49.012698000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_table.out 2024-02-22 13:08:07.023395000 +0000
@@ -40,15 +40,11 @@
CREATE UNLOGGED TABLE public.unlogged2 (a int primary key); -- also OK
CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int primary key); -- not OK
ERROR: only temporary relations may be created in temporary schemas
-LINE 1: CREATE UNLOGGED TABLE pg_temp.unlogged3 (a int primary key);
- ^
CREATE TABLE pg_temp.implicitly_temp (a int primary key); -- OK
CREATE TEMP TABLE explicitly_temp (a int primary key); -- also OK
CREATE TEMP TABLE pg_temp.doubly_temp (a int primary key); -- also OK
CREATE TEMP TABLE public.temp_to_perm (a int primary key); -- not OK
ERROR: cannot create temporary relation in non-temporary schema
-LINE 1: CREATE TEMP TABLE public.temp_to_perm (a int primary key);
- ^
DROP TABLE unlogged1, public.unlogged2;
CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
CREATE TABLE as_select1 AS SELECT * FROM pg_class WHERE relkind = 'r';
@@ -96,36 +92,22 @@
-- invalid use of column reference in default expressions
CREATE TABLE default_expr_column (id int DEFAULT (id));
ERROR: cannot use column reference in DEFAULT expression
-LINE 1: CREATE TABLE default_expr_column (id int DEFAULT (id));
- ^
CREATE TABLE default_expr_column (id int DEFAULT (bar.id));
ERROR: cannot use column reference in DEFAULT expression
-LINE 1: CREATE TABLE default_expr_column (id int DEFAULT (bar.id));
- ^
CREATE TABLE default_expr_agg_column (id int DEFAULT (avg(id)));
ERROR: cannot use column reference in DEFAULT expression
-LINE 1: ...TE TABLE default_expr_agg_column (id int DEFAULT (avg(id)));
- ^
-- invalid column definition
CREATE TABLE default_expr_non_column (a int DEFAULT (avg(non_existent)));
ERROR: cannot use column reference in DEFAULT expression
-LINE 1: ...TABLE default_expr_non_column (a int DEFAULT (avg(non_existe...
- ^
-- invalid use of aggregate
CREATE TABLE default_expr_agg (a int DEFAULT (avg(1)));
ERROR: aggregate functions are not allowed in DEFAULT expressions
-LINE 1: CREATE TABLE default_expr_agg (a int DEFAULT (avg(1)));
- ^
-- invalid use of subquery
CREATE TABLE default_expr_agg (a int DEFAULT (select 1));
ERROR: cannot use subquery in DEFAULT expression
-LINE 1: CREATE TABLE default_expr_agg (a int DEFAULT (select 1));
- ^
-- invalid use of set-returning function
CREATE TABLE default_expr_agg (a int DEFAULT (generate_series(1,3)));
ERROR: set-returning functions are not allowed in DEFAULT expressions
-LINE 1: CREATE TABLE default_expr_agg (a int DEFAULT (generate_serie...
- ^
-- Verify that subtransaction rollback restores rd_createSubid.
BEGIN;
CREATE TABLE remember_create_subid (c int);
@@ -193,15 +175,11 @@
a int
) PARTITION BY RANGE (b);
ERROR: column "b" named in partition key does not exist
-LINE 3: ) PARTITION BY RANGE (b);
- ^
-- cannot use system columns in partition key
CREATE TABLE partitioned (
a int
) PARTITION BY RANGE (xmin);
ERROR: cannot use system column "xmin" in partition key
-LINE 3: ) PARTITION BY RANGE (xmin);
- ^
-- cannot use pseudotypes
CREATE TABLE partitioned (
a int,
@@ -364,8 +342,6 @@
NOTICE: drop cascades to table partitioned
table partitioned; -- gone
ERROR: relation "partitioned" does not exist
-LINE 1: table partitioned;
- ^
-- likewise for columns used in partition expressions
create domain intdom1 as int;
create table partitioned (
@@ -382,8 +358,6 @@
NOTICE: drop cascades to table partitioned
table partitioned; -- gone
ERROR: relation "partitioned" does not exist
-LINE 1: table partitioned;
- ^
--
-- Partitions
--
@@ -409,40 +383,22 @@
-- forbidden expressions for partition bound with list partitioned table
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (somename);
ERROR: cannot use column reference in partition bound expression
-LINE 1: ...expr_fail PARTITION OF list_parted FOR VALUES IN (somename);
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (somename.somename);
ERROR: cannot use column reference in partition bound expression
-LINE 1: ...expr_fail PARTITION OF list_parted FOR VALUES IN (somename.s...
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (a);
ERROR: cannot use column reference in partition bound expression
-LINE 1: ..._bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (a);
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (sum(a));
ERROR: cannot use column reference in partition bound expression
-LINE 1: ...s_expr_fail PARTITION OF list_parted FOR VALUES IN (sum(a));
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (sum(somename));
ERROR: cannot use column reference in partition bound expression
-LINE 1: ..._fail PARTITION OF list_parted FOR VALUES IN (sum(somename))...
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (sum(1));
ERROR: aggregate functions are not allowed in partition bound
-LINE 1: ...s_expr_fail PARTITION OF list_parted FOR VALUES IN (sum(1));
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN ((select 1));
ERROR: cannot use subquery in partition bound
-LINE 1: ...expr_fail PARTITION OF list_parted FOR VALUES IN ((select 1)...
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN (generate_series(4, 6));
ERROR: set-returning functions are not allowed in partition bound
-LINE 1: ...expr_fail PARTITION OF list_parted FOR VALUES IN (generate_s...
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF list_parted FOR VALUES IN ((1+1) collate "POSIX");
ERROR: collations are not supported by type integer
-LINE 1: ...ail PARTITION OF list_parted FOR VALUES IN ((1+1) collate "P...
- ^
-- syntax does not allow empty list of values for list partitions
CREATE TABLE fail_part PARTITION OF list_parted FOR VALUES IN ();
ERROR: syntax error at or near ")"
@@ -451,27 +407,19 @@
-- trying to specify range for list partitioned table
CREATE TABLE fail_part PARTITION OF list_parted FOR VALUES FROM (1) TO (2);
ERROR: invalid bound specification for a list partition
-LINE 1: ...BLE fail_part PARTITION OF list_parted FOR VALUES FROM (1) T...
- ^
-- trying to specify modulus and remainder for list partitioned table
CREATE TABLE fail_part PARTITION OF list_parted FOR VALUES WITH (MODULUS 10, REMAINDER 1);
ERROR: invalid bound specification for a list partition
-LINE 1: ...BLE fail_part PARTITION OF list_parted FOR VALUES WITH (MODU...
- ^
-- check default partition cannot be created more than once
CREATE TABLE part_default PARTITION OF list_parted DEFAULT;
CREATE TABLE fail_default_part PARTITION OF list_parted DEFAULT;
ERROR: partition "fail_default_part" conflicts with existing default partition "part_default"
-LINE 1: ...TE TABLE fail_default_part PARTITION OF list_parted DEFAULT;
- ^
-- specified literal can't be cast to the partition column data type
CREATE TABLE bools (
a bool
) PARTITION BY LIST (a);
CREATE TABLE bools_true PARTITION OF bools FOR VALUES IN (1);
ERROR: specified value cannot be cast to type boolean for column "a"
-LINE 1: ...REATE TABLE bools_true PARTITION OF bools FOR VALUES IN (1);
- ^
DROP TABLE bools;
-- specified literal can be cast, and the cast might not be immutable
CREATE TABLE moneyp (
@@ -489,8 +437,6 @@
-- fails due to overlap:
CREATE TABLE bigintp_10_2 PARTITION OF bigintp FOR VALUES IN ('10');
ERROR: partition "bigintp_10_2" would overlap partition "bigintp_10"
-LINE 1: ...ABLE bigintp_10_2 PARTITION OF bigintp FOR VALUES IN ('10');
- ^
DROP TABLE bigintp;
CREATE TABLE range_parted (
a date
@@ -499,53 +445,33 @@
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (somename) TO ('2019-01-01');
ERROR: cannot use column reference in partition bound expression
-LINE 2: FOR VALUES FROM (somename) TO ('2019-01-01');
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (somename.somename) TO ('2019-01-01');
ERROR: cannot use column reference in partition bound expression
-LINE 2: FOR VALUES FROM (somename.somename) TO ('2019-01-01');
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (a) TO ('2019-01-01');
ERROR: cannot use column reference in partition bound expression
-LINE 2: FOR VALUES FROM (a) TO ('2019-01-01');
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (max(a)) TO ('2019-01-01');
ERROR: cannot use column reference in partition bound expression
-LINE 2: FOR VALUES FROM (max(a)) TO ('2019-01-01');
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (max(somename)) TO ('2019-01-01');
ERROR: cannot use column reference in partition bound expression
-LINE 2: FOR VALUES FROM (max(somename)) TO ('2019-01-01');
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (max('2019-02-01'::date)) TO ('2019-01-01');
ERROR: aggregate functions are not allowed in partition bound
-LINE 2: FOR VALUES FROM (max('2019-02-01'::date)) TO ('2019-01-01'...
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM ((select 1)) TO ('2019-01-01');
ERROR: cannot use subquery in partition bound
-LINE 2: FOR VALUES FROM ((select 1)) TO ('2019-01-01');
- ^
CREATE TABLE part_bogus_expr_fail PARTITION OF range_parted
FOR VALUES FROM (generate_series(1, 3)) TO ('2019-01-01');
ERROR: set-returning functions are not allowed in partition bound
-LINE 2: FOR VALUES FROM (generate_series(1, 3)) TO ('2019-01-01');
- ^
-- trying to specify list for range partitioned table
CREATE TABLE fail_part PARTITION OF range_parted FOR VALUES IN ('a');
ERROR: invalid bound specification for a range partition
-LINE 1: ...BLE fail_part PARTITION OF range_parted FOR VALUES IN ('a');
- ^
-- trying to specify modulus and remainder for range partitioned table
CREATE TABLE fail_part PARTITION OF range_parted FOR VALUES WITH (MODULUS 10, REMAINDER 1);
ERROR: invalid bound specification for a range partition
-LINE 1: ...LE fail_part PARTITION OF range_parted FOR VALUES WITH (MODU...
- ^
-- each of start and end bounds must have same number of values as the
-- length of the partition key
CREATE TABLE fail_part PARTITION OF range_parted FOR VALUES FROM ('a', 1) TO ('z');
@@ -558,8 +484,6 @@
-- trying to specify modulus and remainder for range partitioned table
CREATE TABLE fail_part PARTITION OF range_parted FOR VALUES WITH (MODULUS 10, REMAINDER 1);
ERROR: invalid bound specification for a range partition
-LINE 1: ...LE fail_part PARTITION OF range_parted FOR VALUES WITH (MODU...
- ^
-- check partition bound syntax for the hash partition
CREATE TABLE hash_parted (
a int
@@ -579,18 +503,12 @@
-- overlapping remainders
CREATE TABLE fail_part PARTITION OF hash_parted FOR VALUES WITH (MODULUS 100, REMAINDER 3);
ERROR: partition "fail_part" would overlap partition "hpart_4"
-LINE 1: ...BLE fail_part PARTITION OF hash_parted FOR VALUES WITH (MODU...
- ^
-- trying to specify range for the hash partitioned table
CREATE TABLE fail_part PARTITION OF hash_parted FOR VALUES FROM ('a', 1) TO ('z');
ERROR: invalid bound specification for a hash partition
-LINE 1: ...BLE fail_part PARTITION OF hash_parted FOR VALUES FROM ('a',...
- ^
-- trying to specify list value for the hash partitioned table
CREATE TABLE fail_part PARTITION OF hash_parted FOR VALUES IN (1000);
ERROR: invalid bound specification for a hash partition
-LINE 1: ...BLE fail_part PARTITION OF hash_parted FOR VALUES IN (1000);
- ^
-- trying to create default partition for the hash partitioned table
CREATE TABLE fail_default_part PARTITION OF hash_parted DEFAULT;
ERROR: a hash-partitioned table may not have a default partition
@@ -620,12 +538,8 @@
CREATE TABLE list_parted2_def PARTITION OF list_parted2 DEFAULT;
CREATE TABLE fail_part PARTITION OF list_parted2 FOR VALUES IN (null);
ERROR: partition "fail_part" would overlap partition "part_null_z"
-LINE 1: ...LE fail_part PARTITION OF list_parted2 FOR VALUES IN (null);
- ^
CREATE TABLE fail_part PARTITION OF list_parted2 FOR VALUES IN ('b', 'c');
ERROR: partition "fail_part" would overlap partition "part_ab"
-LINE 1: ...ail_part PARTITION OF list_parted2 FOR VALUES IN ('b', 'c');
- ^
-- check default partition overlap
INSERT INTO list_parted2 VALUES('X');
CREATE TABLE fail_part PARTITION OF list_parted2 FOR VALUES IN ('W', 'X', 'Y');
@@ -636,46 +550,30 @@
-- trying to create range partition with empty range
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (1) TO (0);
ERROR: empty range bound specified for partition "fail_part"
-LINE 1: ..._part PARTITION OF range_parted2 FOR VALUES FROM (1) TO (0);
- ^
DETAIL: Specified lower bound (1) is greater than or equal to upper bound (0).
-- note that the range '[1, 1)' has no elements
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (1) TO (1);
ERROR: empty range bound specified for partition "fail_part"
-LINE 1: ..._part PARTITION OF range_parted2 FOR VALUES FROM (1) TO (1);
- ^
DETAIL: Specified lower bound (1) is greater than or equal to upper bound (1).
CREATE TABLE part0 PARTITION OF range_parted2 FOR VALUES FROM (minvalue) TO (1);
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (minvalue) TO (2);
ERROR: partition "fail_part" would overlap partition "part0"
-LINE 1: ..._part PARTITION OF range_parted2 FOR VALUES FROM (minvalue) ...
- ^
CREATE TABLE part1 PARTITION OF range_parted2 FOR VALUES FROM (1) TO (10);
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (-1) TO (1);
ERROR: partition "fail_part" would overlap partition "part0"
-LINE 1: ..._part PARTITION OF range_parted2 FOR VALUES FROM (-1) TO (1)...
- ^
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (9) TO (maxvalue);
ERROR: partition "fail_part" would overlap partition "part1"
-LINE 1: ..._part PARTITION OF range_parted2 FOR VALUES FROM (9) TO (max...
- ^
CREATE TABLE part2 PARTITION OF range_parted2 FOR VALUES FROM (20) TO (30);
CREATE TABLE part3 PARTITION OF range_parted2 FOR VALUES FROM (30) TO (40);
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (10) TO (30);
ERROR: partition "fail_part" would overlap partition "part2"
-LINE 1: ...art PARTITION OF range_parted2 FOR VALUES FROM (10) TO (30);
- ^
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (10) TO (50);
ERROR: partition "fail_part" would overlap partition "part2"
-LINE 1: ...art PARTITION OF range_parted2 FOR VALUES FROM (10) TO (50);
- ^
-- Create a default partition for range partitioned table
CREATE TABLE range2_default PARTITION OF range_parted2 DEFAULT;
-- More than one default partition is not allowed, so this should give error
CREATE TABLE fail_default_part PARTITION OF range_parted2 DEFAULT;
ERROR: partition "fail_default_part" conflicts with existing default partition "range2_default"
-LINE 1: ... TABLE fail_default_part PARTITION OF range_parted2 DEFAULT;
- ^
-- Check if the range for default partitions overlap
INSERT INTO range_parted2 VALUES (85);
CREATE TABLE fail_part PARTITION OF range_parted2 FOR VALUES FROM (80) TO (90);
@@ -689,23 +587,17 @@
CREATE TABLE part00 PARTITION OF range_parted3 FOR VALUES FROM (0, minvalue) TO (0, maxvalue);
CREATE TABLE fail_part PARTITION OF range_parted3 FOR VALUES FROM (0, minvalue) TO (0, 1);
ERROR: partition "fail_part" would overlap partition "part00"
-LINE 1: ..._part PARTITION OF range_parted3 FOR VALUES FROM (0, minvalu...
- ^
CREATE TABLE part10 PARTITION OF range_parted3 FOR VALUES FROM (1, minvalue) TO (1, 1);
CREATE TABLE part11 PARTITION OF range_parted3 FOR VALUES FROM (1, 1) TO (1, 10);
CREATE TABLE part12 PARTITION OF range_parted3 FOR VALUES FROM (1, 10) TO (1, maxvalue);
CREATE TABLE fail_part PARTITION OF range_parted3 FOR VALUES FROM (1, 10) TO (1, 20);
ERROR: partition "fail_part" would overlap partition "part12"
-LINE 1: ...rt PARTITION OF range_parted3 FOR VALUES FROM (1, 10) TO (1,...
- ^
CREATE TABLE range3_default PARTITION OF range_parted3 DEFAULT;
-- cannot create a partition that says column b is allowed to range
-- from -infinity to +infinity, while there exist partitions that have
-- more specific ranges
CREATE TABLE fail_part PARTITION OF range_parted3 FOR VALUES FROM (1, minvalue) TO (1, maxvalue);
ERROR: partition "fail_part" would overlap partition "part10"
-LINE 1: ..._part PARTITION OF range_parted3 FOR VALUES FROM (1, minvalu...
- ^
-- check for partition bound overlap and other invalid specifications for the hash partition
CREATE TABLE hash_parted2 (
a varchar
@@ -717,8 +609,6 @@
-- overlap with part_4
CREATE TABLE fail_part PARTITION OF hash_parted2 FOR VALUES WITH (MODULUS 2, REMAINDER 1);
ERROR: partition "fail_part" would overlap partition "h2part_4"
-LINE 1: ...LE fail_part PARTITION OF hash_parted2 FOR VALUES WITH (MODU...
- ^
-- modulus must be greater than zero
CREATE TABLE fail_part PARTITION OF hash_parted2 FOR VALUES WITH (MODULUS 0, REMAINDER 1);
ERROR: modulus for hash partition must be an integer value greater than zero
@@ -795,8 +685,6 @@
-- specify PARTITION BY for a partition
CREATE TABLE fail_part_col_not_found PARTITION OF parted FOR VALUES IN ('c') PARTITION BY RANGE (c);
ERROR: column "c" named in partition key does not exist
-LINE 1: ...TITION OF parted FOR VALUES IN ('c') PARTITION BY RANGE (c);
- ^
CREATE TABLE part_c PARTITION OF parted (b WITH OPTIONS NOT NULL DEFAULT 0) FOR VALUES IN ('c') PARTITION BY RANGE ((b));
-- create a level-2 partition
CREATE TABLE part_c_1_10 PARTITION OF part_c FOR VALUES FROM (1) TO (10);
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_type.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_type.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_type.out 2024-02-22 13:04:49.012727000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_type.out 2024-02-22 13:08:06.526306000 +0000
@@ -120,23 +120,11 @@
"Passedbyvalue"
);
WARNING: type attribute "Internallength" not recognized
-LINE 2: "Internallength" = 4,
- ^
WARNING: type attribute "Input" not recognized
-LINE 3: "Input" = int42_in,
- ^
WARNING: type attribute "Output" not recognized
-LINE 4: "Output" = int42_out,
- ^
WARNING: type attribute "Alignment" not recognized
-LINE 5: "Alignment" = int4,
- ^
WARNING: type attribute "Default" not recognized
-LINE 6: "Default" = 42,
- ^
WARNING: type attribute "Passedbyvalue" not recognized
-LINE 7: "Passedbyvalue"
- ^
ERROR: type input function must be specified
-- invalid: input/output function incompatibility
CREATE TYPE bogus_type (INPUT = array_in,
@@ -210,8 +198,6 @@
-- (we have borrowed numeric's typmod functions)
CREATE TEMP TABLE mytab (foo widget(42,13,7)); -- should fail
ERROR: invalid NUMERIC type modifier
-LINE 1: CREATE TEMP TABLE mytab (foo widget(42,13,7));
- ^
CREATE TEMP TABLE mytab (foo widget(42,13));
SELECT format_type(atttypid,atttypmod) FROM pg_attribute
WHERE attrelid = 'mytab'::regclass AND attnum > 0;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_index.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_index.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_index.out 2024-02-22 13:04:49.012429000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_index.out 2024-02-22 13:08:09.422406000 +0000
@@ -1579,14 +1579,10 @@
CREATE UNIQUE INDEX cwi_uniq3_idx ON cwi_test(a desc);
ALTER TABLE cwi_test ADD UNIQUE USING INDEX cwi_uniq3_idx; -- fail
ERROR: index "cwi_uniq3_idx" column number 1 does not have default sorting behavior
-LINE 1: ALTER TABLE cwi_test ADD UNIQUE USING INDEX cwi_uniq3_idx;
- ^
DETAIL: Cannot create a primary key or unique constraint using such an index.
CREATE UNIQUE INDEX cwi_uniq4_idx ON cwi_test(b collate "POSIX");
ALTER TABLE cwi_test ADD UNIQUE USING INDEX cwi_uniq4_idx; -- fail
ERROR: index "cwi_uniq4_idx" column number 1 does not have default sorting behavior
-LINE 1: ALTER TABLE cwi_test ADD UNIQUE USING INDEX cwi_uniq4_idx;
- ^
DETAIL: Cannot create a primary key or unique constraint using such an index.
DROP TABLE cwi_test;
-- ADD CONSTRAINT USING INDEX is forbidden on partitioned tables
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_view.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_view.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_view.out 2024-02-22 13:04:49.012762000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_view.out 2024-02-22 13:08:07.967004000 +0000
@@ -1874,8 +1874,6 @@
select 'foo'::text = any((select array['abc','def','foo']::text[])); -- fail
ERROR: operator does not exist: text = text[]
-LINE 1: select 'foo'::text = any((select array['abc','def','foo']::t...
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
select 'foo'::text = any((select array['abc','def','foo']::text[])::text[]);
?column?
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_function_sql.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_function_sql.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_function_sql.out 2024-02-22 13:04:49.012374000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_function_sql.out 2024-02-22 13:08:09.967073000 +0000
@@ -302,8 +302,6 @@
LANGUAGE SQL
RETURN x > 1;
ERROR: operator does not exist: date > integer
-LINE 3: RETURN x > 1;
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-- tricky parsing
CREATE FUNCTION functest_S_15(x int) RETURNS boolean
@@ -701,8 +699,7 @@
CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
AS 'SELECT $2;';
ERROR: there is no parameter $2
-LINE 2: AS 'SELECT $2;';
- ^
+CONTEXT: SQL function "test1"
CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL
AS 'a', 'b';
ERROR: only one AS item needed for language "sql"
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_cast.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_cast.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_cast.out 2024-02-22 13:04:49.012348000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_cast.out 2024-02-22 13:08:09.636477000 +0000
@@ -24,15 +24,11 @@
$$ SELECT 1; $$;
SELECT casttestfunc('foo'::text); -- fails, as there's no cast
ERROR: function casttestfunc(text) does not exist
-LINE 1: SELECT casttestfunc('foo'::text);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
-- Try binary coercion cast
CREATE CAST (text AS casttesttype) WITHOUT FUNCTION;
SELECT casttestfunc('foo'::text); -- doesn't work, as the cast is explicit
ERROR: function casttestfunc(text) does not exist
-LINE 1: SELECT casttestfunc('foo'::text);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
SELECT casttestfunc('foo'::text::casttesttype); -- should work
casttestfunc
@@ -52,8 +48,6 @@
-- Try I/O conversion cast.
SELECT 1234::int4::casttesttype; -- No cast yet, should fail
ERROR: cannot cast type integer to casttesttype
-LINE 1: SELECT 1234::int4::casttesttype;
- ^
CREATE CAST (int4 AS casttesttype) WITH INOUT;
SELECT 1234::int4::casttesttype; -- Should work now
casttesttype
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/constraints.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/constraints.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/constraints.out 2024-02-22 13:04:49.012207000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/constraints.out 2024-02-22 13:08:10.596693000 +0000
@@ -230,8 +230,6 @@
altitude int,
CHECK (NOT (is_capital AND ctid::text = 'sys_col_check_tbl')));
ERROR: system column "ctid" reference in check constraint is invalid
-LINE 3: CHECK (NOT (is_capital AND ctid::text = 'sys_col_check...
- ^
--
-- Check inheritance of defaults and constraints
--
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/triggers.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/triggers.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/triggers.out 2024-02-22 13:04:49.017061000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/triggers.out 2024-02-22 13:08:12.558868000 +0000
@@ -709,26 +709,18 @@
FOR EACH ROW WHEN (OLD.a <> NEW.a)
EXECUTE PROCEDURE trigger_func('error_ins_old');
ERROR: INSERT trigger's WHEN condition cannot reference OLD values
-LINE 2: FOR EACH ROW WHEN (OLD.a <> NEW.a)
- ^
CREATE TRIGGER error_del_when BEFORE DELETE OR UPDATE ON main_table
FOR EACH ROW WHEN (OLD.a <> NEW.a)
EXECUTE PROCEDURE trigger_func('error_del_new');
ERROR: DELETE trigger's WHEN condition cannot reference NEW values
-LINE 2: FOR EACH ROW WHEN (OLD.a <> NEW.a)
- ^
CREATE TRIGGER error_del_when BEFORE INSERT OR UPDATE ON main_table
FOR EACH ROW WHEN (NEW.tableoid <> 0)
EXECUTE PROCEDURE trigger_func('error_when_sys_column');
ERROR: BEFORE trigger's WHEN condition cannot reference NEW system columns
-LINE 2: FOR EACH ROW WHEN (NEW.tableoid <> 0)
- ^
CREATE TRIGGER error_stmt_when BEFORE UPDATE OF a ON main_table
FOR EACH STATEMENT WHEN (OLD.* IS DISTINCT FROM NEW.*)
EXECUTE PROCEDURE trigger_func('error_stmt_when');
ERROR: statement trigger's WHEN condition cannot reference column values
-LINE 2: FOR EACH STATEMENT WHEN (OLD.* IS DISTINCT FROM NEW.*)
- ^
-- check dependency restrictions
ALTER TABLE main_table DROP COLUMN b;
ERROR: cannot drop column b of table main_table because other objects depend on it
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/vacuum.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/vacuum.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/vacuum.out 2024-02-22 13:04:49.017541000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/vacuum.out 2024-02-22 13:08:10.340513000 +0000
@@ -111,15 +111,11 @@
VACUUM (PARALLEL 0) pvactst; -- disable parallel vacuum
VACUUM (PARALLEL -1) pvactst; -- error
ERROR: parallel workers for vacuum must be between 0 and 1024
-LINE 1: VACUUM (PARALLEL -1) pvactst;
- ^
VACUUM (PARALLEL 2, INDEX_CLEANUP FALSE) pvactst;
VACUUM (PARALLEL 2, FULL TRUE) pvactst; -- error, cannot use both PARALLEL and FULL
ERROR: VACUUM FULL cannot be performed in parallel
VACUUM (PARALLEL) pvactst; -- error, cannot use PARALLEL option without parallel degree
ERROR: parallel option requires a value between 0 and 1024
-LINE 1: VACUUM (PARALLEL) pvactst;
- ^
-- Test different combinations of parallel and full options for temporary tables
CREATE TEMPORARY TABLE tmp (a int PRIMARY KEY);
CREATE INDEX tmp_idx1 ON tmp (a);
@@ -253,8 +249,6 @@
^
ANALYZE (nonexistentarg) does_not_exit;
ERROR: unrecognized ANALYZE option "nonexistentarg"
-LINE 1: ANALYZE (nonexistentarg) does_not_exit;
- ^
-- ensure argument order independence, and that SKIP_LOCKED on non-existing
-- relation still errors out. Suppress WARNING messages caused by concurrent
-- autovacuums.
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/errors.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/errors.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/errors.out 2024-02-22 13:04:49.012907000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/errors.out 2024-02-22 13:08:09.653300000 +0000
@@ -23,13 +23,9 @@
-- no such relation
select * from nonesuch;
ERROR: relation "nonesuch" does not exist
-LINE 1: select * from nonesuch;
- ^
-- bad name in target list
select nonesuch from pg_database;
ERROR: column "nonesuch" does not exist
-LINE 1: select nonesuch from pg_database;
- ^
-- empty distinct list isn't OK
select distinct from pg_database;
ERROR: syntax error at or near "from"
@@ -38,18 +34,12 @@
-- bad attribute name on lhs of operator
select * from pg_database where nonesuch = pg_database.datname;
ERROR: column "nonesuch" does not exist
-LINE 1: select * from pg_database where nonesuch = pg_database.datna...
- ^
-- bad attribute name on rhs of operator
select * from pg_database where pg_database.datname = nonesuch;
ERROR: column "nonesuch" does not exist
-LINE 1: ...ect * from pg_database where pg_database.datname = nonesuch;
- ^
-- bad attribute name in select distinct on
select distinct on (foobar) * from pg_database;
ERROR: column "foobar" does not exist
-LINE 1: select distinct on (foobar) * from pg_database;
- ^
-- grouping with FOR UPDATE
select null from pg_database group by datname for update;
ERROR: FOR UPDATE is not allowed with GROUP BY clause
@@ -65,8 +55,6 @@
-- no such relation
delete from nonesuch;
ERROR: relation "nonesuch" does not exist
-LINE 1: delete from nonesuch;
- ^
--
-- DROP
-- missing relation name (this had better not wildcard!)
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/select_into.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_into.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/select_into.out 2024-02-22 13:04:49.016450000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_into.out 2024-02-22 13:08:14.872032000 +0000
@@ -164,20 +164,14 @@
--
DECLARE foo CURSOR FOR SELECT 1 INTO int4_tbl;
ERROR: SELECT ... INTO is not allowed here
-LINE 1: DECLARE foo CURSOR FOR SELECT 1 INTO int4_tbl;
- ^
COPY (SELECT 1 INTO frak UNION SELECT 2) TO 'blob';
ERROR: COPY (SELECT INTO) is not supported
SELECT * FROM (SELECT 1 INTO f) bar;
ERROR: SELECT ... INTO is not allowed here
-LINE 1: SELECT * FROM (SELECT 1 INTO f) bar;
- ^
CREATE VIEW foo AS SELECT 1 INTO int4_tbl;
ERROR: views must not contain SELECT INTO
INSERT INTO int4_tbl SELECT 1 INTO f;
ERROR: SELECT ... INTO is not allowed here
-LINE 1: INSERT INTO int4_tbl SELECT 1 INTO f;
- ^
-- Test CREATE TABLE AS ... IF NOT EXISTS
CREATE TABLE ctas_ine_tbl AS SELECT 1;
CREATE TABLE ctas_ine_tbl AS SELECT 1 / 0; -- error
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/select_distinct_on.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_distinct_on.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/select_distinct_on.out 2024-02-22 13:04:49.016347000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_distinct_on.out 2024-02-22 13:08:14.122217000 +0000
@@ -17,8 +17,6 @@
FROM onek
ORDER BY string4 using <, two using <, ten using <;
ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY expressions
-LINE 1: SELECT DISTINCT ON (string4, ten) string4, two, ten
- ^
SELECT DISTINCT ON (string4, ten) string4, ten, two
FROM onek
ORDER BY string4 using <, ten using >, two using <;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/select_implicit_2.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_implicit.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/select_implicit_2.out 2024-02-22 13:04:49.016440000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_implicit.out 2024-02-22 13:08:14.323363000 +0000
@@ -45,8 +45,6 @@
-- failure expected
SELECT count(*) FROM test_missing_target GROUP BY a ORDER BY b;
ERROR: column "test_missing_target.b" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: ...ECT count(*) FROM test_missing_target GROUP BY a ORDER BY b;
- ^
-- w/o existing GROUP BY target and w/o existing same ORDER BY target
SELECT count(*) FROM test_missing_target GROUP BY b ORDER BY b;
count
@@ -117,16 +115,12 @@
-- failure expected
SELECT c, count(*) FROM test_missing_target GROUP BY 3;
ERROR: GROUP BY position 3 is not in select list
-LINE 1: SELECT c, count(*) FROM test_missing_target GROUP BY 3;
- ^
-- group w/o existing GROUP BY and ORDER BY target under ambiguous condition
-- failure expected
SELECT count(*) FROM test_missing_target x, test_missing_target y
WHERE x.a = y.a
GROUP BY b ORDER BY b;
ERROR: column reference "b" is ambiguous
-LINE 3: GROUP BY b ORDER BY b;
- ^
-- order w/ target under ambiguous condition
-- failure NOT expected
SELECT a, a FROM test_missing_target
@@ -243,8 +237,6 @@
-- failure expected
SELECT count(a) FROM test_missing_target GROUP BY a ORDER BY b;
ERROR: column "test_missing_target.b" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: ...ECT count(a) FROM test_missing_target GROUP BY a ORDER BY b;
- ^
-- w/o existing GROUP BY target and w/o existing same ORDER BY target
SELECT count(b) FROM test_missing_target GROUP BY b/2 ORDER BY b/2;
count
@@ -296,8 +288,6 @@
WHERE x.a = y.a
GROUP BY b/2 ORDER BY b/2;
ERROR: column reference "b" is ambiguous
-LINE 3: GROUP BY b/2 ORDER BY b/2;
- ^
-- group w/ existing GROUP BY target under ambiguous condition
SELECT x.b/2, count(x.b) FROM test_missing_target x, test_missing_target y
WHERE x.a = y.a
@@ -315,8 +305,6 @@
WHERE x.a = y.a
GROUP BY x.b/2;
ERROR: column reference "b" is ambiguous
-LINE 1: SELECT count(b) FROM test_missing_target x, test_missing_tar...
- ^
-- group w/o existing GROUP BY target under ambiguous condition
-- into a table
CREATE TABLE test_missing_target3 AS
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/select_having_2.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_having.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/select_having_2.out 2024-02-22 13:04:49.016383000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/select_having.out 2024-02-22 13:08:14.322669000 +0000
@@ -65,12 +65,8 @@
-- errors: ungrouped column references
SELECT a FROM test_having HAVING min(a) < max(a);
ERROR: column "test_having.a" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT a FROM test_having HAVING min(a) < max(a);
- ^
SELECT 1 AS one FROM test_having HAVING a > 1;
ERROR: column "test_having.a" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT 1 AS one FROM test_having HAVING a > 1;
- ^
-- the really degenerate case: need not scan table at all
SELECT 1 AS one FROM test_having HAVING 1 > 2;
one
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/subselect.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/subselect.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/subselect.out 2024-02-22 13:04:49.016769000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/subselect.out 2024-02-22 13:08:15.295281000 +0000
@@ -897,8 +897,6 @@
-- this fails by default, of course
select * from int8_tbl where q1 in (select c1 from inner_text);
ERROR: operator does not exist: bigint = text
-LINE 1: select * from int8_tbl where q1 in (select c1 from inner_tex...
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
begin;
-- make an operator to allow it to succeed
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/union.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/union.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/union.out 2024-02-22 13:04:49.017285000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/union.out 2024-02-22 13:08:15.341531000 +0000
@@ -908,8 +908,6 @@
-- This should fail, because q2 isn't a name of an EXCEPT output column
SELECT q1 FROM int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1;
ERROR: column "q2" does not exist
-LINE 1: ... int8_tbl EXCEPT SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1...
- ^
DETAIL: There is a column named "q2" in table "*SELECT* 2", but it cannot be referenced from this part of the query.
-- But this should work:
SELECT q1 FROM int8_tbl EXCEPT (((SELECT q2 FROM int8_tbl ORDER BY q2 LIMIT 1))) ORDER BY 1;
@@ -1067,8 +1065,6 @@
-- This should fail, but it should produce an error cursor
SELECT '3.4'::numeric UNION SELECT 'foo';
ERROR: invalid input syntax for type numeric: "foo"
-LINE 1: SELECT '3.4'::numeric UNION SELECT 'foo';
- ^
--
-- Test that expression-index constraints can be pushed down through
-- UNION or UNION ALL
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/join.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/join.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/join.out 2024-02-22 13:04:49.014131000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/join.out 2024-02-22 13:08:16.318108000 +0000
@@ -341,8 +341,6 @@
SELECT i, k, t
FROM J1_TBL CROSS JOIN J2_TBL;
ERROR: column reference "i" is ambiguous
-LINE 1: SELECT i, k, t
- ^
-- resolve previous ambiguity by specifying the table name
SELECT t1.i, k, t
FROM J1_TBL t1 CROSS JOIN J2_TBL t2;
@@ -1636,8 +1634,6 @@
SELECT * FROM (J1_TBL JOIN J2_TBL USING (i)) AS x WHERE J1_TBL.t = 'one'; -- error
ERROR: invalid reference to FROM-clause entry for table "j1_tbl"
-LINE 1: ... * FROM (J1_TBL JOIN J2_TBL USING (i)) AS x WHERE J1_TBL.t =...
- ^
DETAIL: There is an entry for table "j1_tbl", but it cannot be referenced from this part of the query.
SELECT * FROM J1_TBL JOIN J2_TBL USING (i) AS x WHERE x.i = 1; -- ok
i | j | t | k
@@ -1647,12 +1643,8 @@
SELECT * FROM J1_TBL JOIN J2_TBL USING (i) AS x WHERE x.t = 'one'; -- error
ERROR: column x.t does not exist
-LINE 1: ...CT * FROM J1_TBL JOIN J2_TBL USING (i) AS x WHERE x.t = 'one...
- ^
SELECT * FROM (J1_TBL JOIN J2_TBL USING (i) AS x) AS xx WHERE x.i = 1; -- error (XXX could use better hint)
ERROR: missing FROM-clause entry for table "x"
-LINE 1: ...ROM (J1_TBL JOIN J2_TBL USING (i) AS x) AS xx WHERE x.i = 1;
- ^
SELECT * FROM J1_TBL a1 JOIN J2_TBL a2 USING (i) AS a1; -- error
ERROR: table name "a1" specified more than once
SELECT x.* FROM J1_TBL JOIN J2_TBL USING (i) AS x WHERE J1_TBL.t = 'one';
@@ -2859,8 +2851,6 @@
-- Test matching of column name with wrong alias
select t1.x from t1 join t3 on (t1.a = t3.x);
ERROR: column t1.x does not exist
-LINE 1: select t1.x from t1 join t3 on (t1.a = t3.x);
- ^
HINT: Perhaps you meant to reference the column "t3.x".
-- Test matching of locking clause with wrong alias
select t1.*, t2.*, unnamed_join.* from
@@ -2881,20 +2871,14 @@
t1 join t2 using (a) as foo, t3 as unnamed_join
for update of foo;
ERROR: FOR UPDATE cannot be applied to a join
-LINE 3: for update of foo;
- ^
select bar.*, unnamed_join.* from
(t1 join t2 using (a) as foo) as bar, t3 as unnamed_join
for update of foo;
ERROR: relation "foo" in FOR UPDATE clause not found in FROM clause
-LINE 3: for update of foo;
- ^
select bar.*, unnamed_join.* from
(t1 join t2 using (a) as foo) as bar, t3 as unnamed_join
for update of bar;
ERROR: FOR UPDATE cannot be applied to a join
-LINE 3: for update of bar;
- ^
--
-- regression test for 8.1 merge right join bug
--
@@ -6144,13 +6128,9 @@
select * from
int8_tbl x join (int4_tbl x cross join int4_tbl y) j on q1 = f1; -- error
ERROR: column reference "f1" is ambiguous
-LINE 2: ..._tbl x join (int4_tbl x cross join int4_tbl y) j on q1 = f1;
- ^
select * from
int8_tbl x join (int4_tbl x cross join int4_tbl y) j on q1 = y.f1; -- error
ERROR: invalid reference to FROM-clause entry for table "y"
-LINE 2: ...bl x join (int4_tbl x cross join int4_tbl y) j on q1 = y.f1;
- ^
DETAIL: There is an entry for table "y", but it cannot be referenced from this part of the query.
select * from
int8_tbl x join (int4_tbl x cross join int4_tbl y(ff)) j on q1 = f1; -- ok
@@ -7192,26 +7172,18 @@
select t1.uunique1 from
tenk1 t1 join tenk2 t2 on t1.two = t2.two; -- error, prefer "t1" suggestion
ERROR: column t1.uunique1 does not exist
-LINE 1: select t1.uunique1 from
- ^
HINT: Perhaps you meant to reference the column "t1.unique1".
select t2.uunique1 from
tenk1 t1 join tenk2 t2 on t1.two = t2.two; -- error, prefer "t2" suggestion
ERROR: column t2.uunique1 does not exist
-LINE 1: select t2.uunique1 from
- ^
HINT: Perhaps you meant to reference the column "t2.unique1".
select uunique1 from
tenk1 t1 join tenk2 t2 on t1.two = t2.two; -- error, suggest both at once
ERROR: column "uunique1" does not exist
-LINE 1: select uunique1 from
- ^
HINT: Perhaps you meant to reference the column "t1.unique1" or the column "t2.unique1".
select ctid from
tenk1 t1 join tenk2 t2 on t1.two = t2.two; -- error, need qualification
ERROR: column "ctid" does not exist
-LINE 1: select ctid from
- ^
DETAIL: There are columns named "ctid", but they are in tables that cannot be referenced from this part of the query.
HINT: Try using a table-qualified name.
--
@@ -7223,8 +7195,6 @@
indexrelid from pg_index i) atts on atts.attnum = a.attnum where
schemaname != 'pg_catalog';
ERROR: column atts.relid does not exist
-LINE 1: select atts.relid::regclass, s.* from pg_stats s join
- ^
-- Test bug in rangetable flattening
explain (verbose, costs off)
select 1 from
@@ -8307,68 +8277,46 @@
-- test some error cases where LATERAL should have been used but wasn't
select f1,g from int4_tbl a, (select f1 as g) ss;
ERROR: column "f1" does not exist
-LINE 1: select f1,g from int4_tbl a, (select f1 as g) ss;
- ^
DETAIL: There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
HINT: To reference that column, you must mark this subquery with LATERAL.
select f1,g from int4_tbl a, (select a.f1 as g) ss;
ERROR: invalid reference to FROM-clause entry for table "a"
-LINE 1: select f1,g from int4_tbl a, (select a.f1 as g) ss;
- ^
DETAIL: There is an entry for table "a", but it cannot be referenced from this part of the query.
HINT: To reference that table, you must mark this subquery with LATERAL.
select f1,g from int4_tbl a cross join (select f1 as g) ss;
ERROR: column "f1" does not exist
-LINE 1: select f1,g from int4_tbl a cross join (select f1 as g) ss;
- ^
DETAIL: There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
HINT: To reference that column, you must mark this subquery with LATERAL.
select f1,g from int4_tbl a cross join (select a.f1 as g) ss;
ERROR: invalid reference to FROM-clause entry for table "a"
-LINE 1: select f1,g from int4_tbl a cross join (select a.f1 as g) ss...
- ^
DETAIL: There is an entry for table "a", but it cannot be referenced from this part of the query.
HINT: To reference that table, you must mark this subquery with LATERAL.
-- SQL:2008 says the left table is in scope but illegal to access here
select f1,g from int4_tbl a right join lateral generate_series(0, a.f1) g on true;
ERROR: invalid reference to FROM-clause entry for table "a"
-LINE 1: ... int4_tbl a right join lateral generate_series(0, a.f1) g on...
- ^
DETAIL: The combining JOIN type must be INNER or LEFT for a LATERAL reference.
select f1,g from int4_tbl a full join lateral generate_series(0, a.f1) g on true;
ERROR: invalid reference to FROM-clause entry for table "a"
-LINE 1: ...m int4_tbl a full join lateral generate_series(0, a.f1) g on...
- ^
DETAIL: The combining JOIN type must be INNER or LEFT for a LATERAL reference.
-- check we complain about ambiguous table references
select * from
int8_tbl x cross join (int4_tbl x cross join lateral (select x.f1) ss);
ERROR: table reference "x" is ambiguous
-LINE 2: ...cross join (int4_tbl x cross join lateral (select x.f1) ss);
- ^
-- LATERAL can be used to put an aggregate into the FROM clause of its query
select 1 from tenk1 a, lateral (select max(a.unique1) from int4_tbl b) ss;
ERROR: aggregate functions are not allowed in FROM clause of their own query level
-LINE 1: select 1 from tenk1 a, lateral (select max(a.unique1) from i...
- ^
-- check behavior of LATERAL in UPDATE/DELETE
create temp table xx1 as select f1 as x1, -f1 as x2 from int4_tbl;
-- error, can't do this:
update xx1 set x2 = f1 from (select * from int4_tbl where f1 = x1) ss;
ERROR: column "x1" does not exist
-LINE 1: ... set x2 = f1 from (select * from int4_tbl where f1 = x1) ss;
- ^
DETAIL: There is a column named "x1" in table "xx1", but it cannot be referenced from this part of the query.
update xx1 set x2 = f1 from (select * from int4_tbl where f1 = xx1.x1) ss;
ERROR: invalid reference to FROM-clause entry for table "xx1"
-LINE 1: ...t x2 = f1 from (select * from int4_tbl where f1 = xx1.x1) ss...
- ^
DETAIL: There is an entry for table "xx1", but it cannot be referenced from this part of the query.
-- can't do it even with LATERAL:
update xx1 set x2 = f1 from lateral (select * from int4_tbl where f1 = x1) ss;
ERROR: invalid reference to FROM-clause entry for table "xx1"
-LINE 1: ...= f1 from lateral (select * from int4_tbl where f1 = x1) ss;
- ^
HINT: There is an entry for table "xx1", but it cannot be referenced from this part of the query.
-- we might in future allow something like this, but for now it's an error:
update xx1 set x2 = f1 from xx1, lateral (select * from int4_tbl where f1 = x1) ss;
@@ -8376,18 +8324,12 @@
-- also errors:
delete from xx1 using (select * from int4_tbl where f1 = x1) ss;
ERROR: column "x1" does not exist
-LINE 1: ...te from xx1 using (select * from int4_tbl where f1 = x1) ss;
- ^
DETAIL: There is a column named "x1" in table "xx1", but it cannot be referenced from this part of the query.
delete from xx1 using (select * from int4_tbl where f1 = xx1.x1) ss;
ERROR: invalid reference to FROM-clause entry for table "xx1"
-LINE 1: ...from xx1 using (select * from int4_tbl where f1 = xx1.x1) ss...
- ^
DETAIL: There is an entry for table "xx1", but it cannot be referenced from this part of the query.
delete from xx1 using lateral (select * from int4_tbl where f1 = x1) ss;
ERROR: invalid reference to FROM-clause entry for table "xx1"
-LINE 1: ...xx1 using lateral (select * from int4_tbl where f1 = x1) ss;
- ^
HINT: There is an entry for table "xx1", but it cannot be referenced from this part of the query.
--
-- test LATERAL reference propagation down a multi-level inheritance hierarchy
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/aggregates.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/aggregates.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/aggregates.out 2024-02-22 13:04:49.011667000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/aggregates.out 2024-02-22 13:08:16.128604000 +0000
@@ -675,8 +675,6 @@
having exists (select 1 from onek b
where sum(distinct a.four + b.four) = b.four);
ERROR: aggregate functions are not allowed in WHERE
-LINE 4: where sum(distinct a.four + b.four) = b.four)...
- ^
-- Test handling of sublinks within outer-level aggregates.
-- Per bug report from Daniel Grace.
select
@@ -1276,18 +1274,12 @@
-- check for correct detection of nested-aggregate errors
select max(min(unique1)) from tenk1;
ERROR: aggregate function calls cannot be nested
-LINE 1: select max(min(unique1)) from tenk1;
- ^
select (select max(min(unique1)) from int8_tbl) from tenk1;
ERROR: aggregate function calls cannot be nested
-LINE 1: select (select max(min(unique1)) from int8_tbl) from tenk1;
- ^
select avg((select avg(a1.col1 order by (select avg(a2.col2) from tenk1 a3))
from tenk1 a1(col1)))
from tenk1 a2(col2);
ERROR: aggregate function calls cannot be nested
-LINE 1: select avg((select avg(a1.col1 order by (select avg(a2.col2)...
- ^
--
-- Test removal of redundant GROUP BY columns
--
@@ -1420,8 +1412,6 @@
-- only this one should fail:
select t1.f1 from t1 left join t2 using (f1) group by f1;
ERROR: column "t1.f1" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: select t1.f1 from t1 left join t2 using (f1) group by f1;
- ^
-- check case where we have to inject nullingrels into coerced join alias
select f1, count(*) from
t1 x(x0,x1) left join (t1 left join t2 using(f1)) on (x0 = 0)
@@ -1831,23 +1821,15 @@
select aggfns(distinct a,b,c order by i)
from (values (1,1,'foo')) v(a,b,c), generate_series(1,2) i;
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
-LINE 1: select aggfns(distinct a,b,c order by i)
- ^
select aggfns(distinct a,b,c order by a,b+1)
from (values (1,1,'foo')) v(a,b,c), generate_series(1,2) i;
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
-LINE 1: select aggfns(distinct a,b,c order by a,b+1)
- ^
select aggfns(distinct a,b,c order by a,b,i,c)
from (values (1,1,'foo')) v(a,b,c), generate_series(1,2) i;
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
-LINE 1: select aggfns(distinct a,b,c order by a,b,i,c)
- ^
select aggfns(distinct a,a,c order by a,b)
from (values (1,1,'foo')) v(a,b,c), generate_series(1,2) i;
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
-LINE 1: select aggfns(distinct a,a,c order by a,b)
- ^
-- string_agg tests
select string_agg(a,',') from (values('aaaa'),('bbbb'),('cccc')) g(a);
string_agg
@@ -1882,12 +1864,8 @@
select string_agg(distinct f1::text, ',' order by f1) from varchar_tbl; -- not ok
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
-LINE 1: select string_agg(distinct f1::text, ',' order by f1) from v...
- ^
select string_agg(distinct f1, ',' order by f1::text) from varchar_tbl; -- not ok
ERROR: in an aggregate with DISTINCT, ORDER BY expressions must appear in argument list
-LINE 1: select string_agg(distinct f1, ',' order by f1::text) from v...
- ^
select string_agg(distinct f1::text, ',' order by f1::text) from varchar_tbl; -- ok
string_agg
------------
@@ -2151,20 +2129,12 @@
-- check for correct detection of nested-aggregate errors in FILTER
select max(unique1) filter (where sum(ten) > 0) from tenk1;
ERROR: aggregate functions are not allowed in FILTER
-LINE 1: select max(unique1) filter (where sum(ten) > 0) from tenk1;
- ^
select (select max(unique1) filter (where sum(ten) > 0) from int8_tbl) from tenk1;
ERROR: aggregate function calls cannot be nested
-LINE 1: select (select max(unique1) filter (where sum(ten) > 0) from...
- ^
select max(unique1) filter (where bool_or(ten > 0)) from tenk1;
ERROR: aggregate functions are not allowed in FILTER
-LINE 1: select max(unique1) filter (where bool_or(ten > 0)) from ten...
- ^
select (select max(unique1) filter (where bool_or(ten > 0)) from int8_tbl) from tenk1;
ERROR: aggregate function calls cannot be nested
-LINE 1: select (select max(unique1) filter (where bool_or(ten > 0)) ...
- ^
-- ordered-set aggregates
select p, percentile_cont(p) within group (order by x::float8)
from generate_series(1,5) x,
@@ -2195,15 +2165,11 @@
(values (0::float8),(0.1),(0.25),(0.4),(0.5),(0.6),(0.75),(0.9),(1)) v(p)
group by p order by p;
ERROR: sum is not an ordered-set aggregate, so it cannot have WITHIN GROUP
-LINE 1: select p, sum() within group (order by x::float8) -- error
- ^
select p, percentile_cont(p,p) -- error
from generate_series(1,5) x,
(values (0::float8),(0.1),(0.25),(0.4),(0.5),(0.6),(0.75),(0.9),(1)) v(p)
group by p order by p;
ERROR: WITHIN GROUP is required for ordered-set aggregate percentile_cont
-LINE 1: select p, percentile_cont(p,p) -- error
- ^
select percentile_cont(0.5) within group (order by b) from aggtest;
percentile_cont
------------------
@@ -2331,40 +2297,26 @@
-- ordered-set aggs can't use ungrouped vars in direct args:
select rank(x) within group (order by x) from generate_series(1,5) x;
ERROR: column "x.x" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: select rank(x) within group (order by x) from generate_serie...
- ^
DETAIL: Direct arguments of an ordered-set aggregate must use only grouped columns.
-- outer-level agg can't use a grouped arg of a lower level, either:
select array(select percentile_disc(a) within group (order by x)
from (values (0.3),(0.7)) v(a) group by a)
from generate_series(1,5) g(x);
ERROR: outer-level aggregate cannot contain a lower-level variable in its direct arguments
-LINE 1: select array(select percentile_disc(a) within group (order b...
- ^
-- agg in the direct args is a grouping violation, too:
select rank(sum(x)) within group (order by x) from generate_series(1,5) x;
ERROR: aggregate function calls cannot be nested
-LINE 1: select rank(sum(x)) within group (order by x) from generate_...
- ^
-- hypothetical-set type unification and argument-count failures:
select rank(3) within group (order by x) from (values ('fred'),('jim')) v(x);
ERROR: WITHIN GROUP types text and integer cannot be matched
-LINE 1: select rank(3) within group (order by x) from (values ('fred...
- ^
select rank(3) within group (order by stringu1,stringu2) from tenk1;
ERROR: function rank(integer, name, name) does not exist
-LINE 1: select rank(3) within group (order by stringu1,stringu2) fro...
- ^
HINT: To use the hypothetical-set aggregate rank, the number of hypothetical direct arguments (here 1) must match the number of ordering columns (here 2).
select rank('fred') within group (order by x) from generate_series(1,5) x;
ERROR: invalid input syntax for type integer: "fred"
-LINE 1: select rank('fred') within group (order by x) from generate_...
- ^
select rank('adam'::text collate "C") within group (order by x collate "POSIX")
from (values ('fred'),('jim')) v(x);
ERROR: collation mismatch between explicit collations "C" and "POSIX"
-LINE 1: ...adam'::text collate "C") within group (order by x collate "P...
- ^
-- hypothetical-set type unification successes:
select rank('adam'::varchar) within group (order by x) from (values ('fred'),('jim')) v(x);
rank
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/transactions.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/transactions.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/transactions.out 2024-02-22 13:04:49.017000000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/transactions.out 2024-02-22 13:08:15.071857000 +0000
@@ -206,8 +206,6 @@
SELECT * FROM trans_bar; -- shouldn't exist
ERROR: relation "trans_bar" does not exist
-LINE 1: SELECT * FROM trans_bar;
- ^
SELECT * FROM trans_barbaz; -- should be empty
a
---
@@ -224,8 +222,6 @@
SAVEPOINT one;
INSERT into trans_bar VALUES (1);
ERROR: relation "trans_bar" does not exist
-LINE 1: INSERT into trans_bar VALUES (1);
- ^
ROLLBACK TO one;
RELEASE SAVEPOINT one;
SAVEPOINT two;
@@ -257,8 +253,6 @@
SAVEPOINT one;
SELECT trans_foo;
ERROR: column "trans_foo" does not exist
-LINE 1: SELECT trans_foo;
- ^
ROLLBACK TO SAVEPOINT one;
RELEASE SAVEPOINT one;
SAVEPOINT two;
@@ -306,8 +300,6 @@
INSERT INTO savepoints VALUES (5);
SELECT trans_foo;
ERROR: column "trans_foo" does not exist
-LINE 1: SELECT trans_foo;
- ^
COMMIT;
SELECT * FROM savepoints;
a
@@ -743,8 +735,6 @@
INSERT INTO trans_abc VALUES ('error');
ERROR: invalid input syntax for type integer: "error"
-LINE 1: INSERT INTO trans_abc VALUES ('error');
- ^
INSERT INTO trans_abc VALUES (3); -- check it's really aborted
ERROR: current transaction is aborted, commands ignored until end of transaction block
COMMIT AND CHAIN; -- TBLOCK_ABORT_END
@@ -790,8 +780,6 @@
SAVEPOINT x;
INSERT INTO trans_abc VALUES ('error');
ERROR: invalid input syntax for type integer: "error"
-LINE 1: INSERT INTO trans_abc VALUES ('error');
- ^
COMMIT AND CHAIN; -- TBLOCK_ABORT_PENDING
SHOW transaction_isolation;
transaction_isolation
@@ -935,8 +923,6 @@
INSERT INTO trans_abc VALUES ('error');
ERROR: invalid input syntax for type integer: "error"
-LINE 1: INSERT INTO trans_abc VALUES ('error');
- ^
ROLLBACK AND CHAIN; -- TBLOCK_ABORT_END
SHOW transaction_isolation;
transaction_isolation
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/arrays.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/arrays.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/arrays.out 2024-02-22 13:04:49.011831000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/arrays.out 2024-02-22 13:08:15.267103000 +0000
@@ -38,13 +38,9 @@
VALUES ('{}', '{3,4}', '{foo,bar}', '{bar,foo}');
INSERT INTO arrtest (b[2]) VALUES(now()); -- error, type mismatch
ERROR: subscripted assignment to "b" requires type integer but expression is of type timestamp with time zone
-LINE 1: INSERT INTO arrtest (b[2]) VALUES(now());
- ^
HINT: You will need to rewrite or cast the expression.
INSERT INTO arrtest (b[1:2]) VALUES(now()); -- error, type mismatch
ERROR: subscripted assignment to "b" requires type integer[] but expression is of type timestamp with time zone
-LINE 1: INSERT INTO arrtest (b[1:2]) VALUES(now());
- ^
HINT: You will need to rewrite or cast the expression.
SELECT * FROM arrtest;
a | b | c | d | e | f | g
@@ -273,8 +269,6 @@
-- Un-subscriptable type
SELECT (now())[1];
ERROR: cannot subscript type timestamp with time zone because it does not support subscripting
-LINE 1: SELECT (now())[1];
- ^
-- test slices with empty lower and/or upper index
CREATE TEMP TABLE arrtest_s (
a int2[],
@@ -1304,12 +1298,8 @@
-- errors
select 33 * any ('{1,2,3}');
ERROR: op ANY/ALL (array) requires operator to yield boolean
-LINE 1: select 33 * any ('{1,2,3}');
- ^
select 33 * any (44);
ERROR: op ANY/ALL (array) requires array on right side
-LINE 1: select 33 * any (44);
- ^
-- nulls
select 33 = any (null::int[]);
?column?
@@ -1490,159 +1480,95 @@
-- none of the following should be accepted
select '{{1,{2}},{2,3}}'::text[];
ERROR: malformed array literal: "{{1,{2}},{2,3}}"
-LINE 1: select '{{1,{2}},{2,3}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select E'{{1,2},\\{2,3}}'::text[];
ERROR: malformed array literal: "{{1,2},\{2,3}}"
-LINE 1: select E'{{1,2},\\{2,3}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '{"a"b}'::text[];
ERROR: malformed array literal: "{"a"b}"
-LINE 1: select '{"a"b}'::text[];
- ^
DETAIL: Incorrectly quoted array element.
select '{a"b"}'::text[];
ERROR: malformed array literal: "{a"b"}"
-LINE 1: select '{a"b"}'::text[];
- ^
DETAIL: Incorrectly quoted array element.
select '{"a""b"}'::text[];
ERROR: malformed array literal: "{"a""b"}"
-LINE 1: select '{"a""b"}'::text[];
- ^
DETAIL: Incorrectly quoted array element.
select '{{"1 2" x},{3}}'::text[];
ERROR: malformed array literal: "{{"1 2" x},{3}}"
-LINE 1: select '{{"1 2" x},{3}}'::text[];
- ^
DETAIL: Incorrectly quoted array element.
select '{{"1 2"} x,{3}}'::text[];
ERROR: malformed array literal: "{{"1 2"} x,{3}}"
-LINE 1: select '{{"1 2"} x,{3}}'::text[];
- ^
DETAIL: Unexpected array element.
select '{}}'::text[];
ERROR: malformed array literal: "{}}"
-LINE 1: select '{}}'::text[];
- ^
DETAIL: Junk after closing right brace.
select '{ }}'::text[];
ERROR: malformed array literal: "{ }}"
-LINE 1: select '{ }}'::text[];
- ^
DETAIL: Junk after closing right brace.
select '}{'::text[];
ERROR: malformed array literal: "}{"
-LINE 1: select '}{'::text[];
- ^
DETAIL: Array value must start with "{" or dimension information.
select '{foo{}}'::text[];
ERROR: malformed array literal: "{foo{}}"
-LINE 1: select '{foo{}}'::text[];
- ^
DETAIL: Unexpected "{" character.
select '{"foo"{}}'::text[];
ERROR: malformed array literal: "{"foo"{}}"
-LINE 1: select '{"foo"{}}'::text[];
- ^
DETAIL: Unexpected "{" character.
select '{foo,,bar}'::text[];
ERROR: malformed array literal: "{foo,,bar}"
-LINE 1: select '{foo,,bar}'::text[];
- ^
DETAIL: Unexpected "," character.
select '{{1},{{2}}}'::text[];
ERROR: malformed array literal: "{{1},{{2}}}"
-LINE 1: select '{{1},{{2}}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '{{{1}},{2}}'::text[];
ERROR: malformed array literal: "{{{1}},{2}}"
-LINE 1: select '{{{1}},{2}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '{{},{{}}}'::text[];
ERROR: malformed array literal: "{{},{{}}}"
-LINE 1: select '{{},{{}}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '{{{}},{}}'::text[];
ERROR: malformed array literal: "{{{}},{}}"
-LINE 1: select '{{{}},{}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '{{1},{}}'::text[];
ERROR: malformed array literal: "{{1},{}}"
-LINE 1: select '{{1},{}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '{{},{1}}'::text[];
ERROR: malformed array literal: "{{},{1}}"
-LINE 1: select '{{},{1}}'::text[];
- ^
DETAIL: Multidimensional arrays must have sub-arrays with matching dimensions.
select '[1:0]={}'::int[];
ERROR: upper bound cannot be less than lower bound
-LINE 1: select '[1:0]={}'::int[];
- ^
select '[2147483646:2147483647]={1,2}'::int[];
ERROR: array upper bound is too large: 2147483647
-LINE 1: select '[2147483646:2147483647]={1,2}'::int[];
- ^
select '[1:-1]={}'::int[];
ERROR: upper bound cannot be less than lower bound
-LINE 1: select '[1:-1]={}'::int[];
- ^
select '[2]={1}'::int[];
ERROR: malformed array literal: "[2]={1}"
-LINE 1: select '[2]={1}'::int[];
- ^
DETAIL: Specified array dimensions do not match array contents.
select '[1:]={1}'::int[];
ERROR: malformed array literal: "[1:]={1}"
-LINE 1: select '[1:]={1}'::int[];
- ^
DETAIL: Missing array dimension value.
select '[:1]={1}'::int[];
ERROR: malformed array literal: "[:1]={1}"
-LINE 1: select '[:1]={1}'::int[];
- ^
DETAIL: "[" must introduce explicitly-specified array dimensions.
select array[];
ERROR: cannot determine type of empty array
-LINE 1: select array[];
- ^
HINT: Explicitly cast to the desired type, for example ARRAY[]::integer[].
select '{{1,},{1},}'::text[];
ERROR: malformed array literal: "{{1,},{1},}"
-LINE 1: select '{{1,},{1},}'::text[];
- ^
DETAIL: Unexpected "}" character.
select '{{1,},{1}}'::text[];
ERROR: malformed array literal: "{{1,},{1}}"
-LINE 1: select '{{1,},{1}}'::text[];
- ^
DETAIL: Unexpected "}" character.
select '{{1,}}'::text[];
ERROR: malformed array literal: "{{1,}}"
-LINE 1: select '{{1,}}'::text[];
- ^
DETAIL: Unexpected "}" character.
select '{1,}'::text[];
ERROR: malformed array literal: "{1,}"
-LINE 1: select '{1,}'::text[];
- ^
DETAIL: Unexpected "}" character.
select '[21474836488:21474836489]={1,2}'::int[];
ERROR: array bound is out of integer range
-LINE 1: select '[21474836488:21474836489]={1,2}'::int[];
- ^
select '[-2147483649:-2147483648]={1,2}'::int[];
ERROR: array bound is out of integer range
-LINE 1: select '[-2147483649:-2147483648]={1,2}'::int[];
- ^
-- none of the above should be accepted
-- all of the following should be accepted
select '{}'::text[];
@@ -2615,8 +2541,6 @@
-- error cases
SELECT width_bucket('5'::text, ARRAY[3, 4]::integer[]);
ERROR: function width_bucket(text, integer[]) does not exist
-LINE 1: SELECT width_bucket('5'::text, ARRAY[3, 4]::integer[]);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
SELECT width_bucket(5, ARRAY[3, 4, NULL]);
ERROR: thresholds array must not contain NULLs
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/update.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/update.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/update.out 2024-02-22 13:04:49.017307000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/update.out 2024-02-22 13:08:15.966493000 +0000
@@ -47,8 +47,6 @@
-- error, you're not supposed to qualify the target column
UPDATE update_test t SET t.b = t.b + 10 WHERE t.a = 10;
ERROR: column "t" of relation "update_test" does not exist
-LINE 1: UPDATE update_test t SET t.b = t.b + 10 WHERE t.a = 10;
- ^
HINT: SET target columns cannot be qualified with the relation name.
--
-- Test VALUES in FROM
@@ -66,8 +64,6 @@
UPDATE update_test SET a = v.* FROM (VALUES(100, 20)) AS v(i, j)
WHERE update_test.b = v.j;
ERROR: column "a" is of type integer but expression is of type record
-LINE 1: UPDATE update_test SET a = v.* FROM (VALUES(100, 20)) AS v(i...
- ^
HINT: You will need to rewrite or cast the expression.
--
-- Test multiple-set-clause syntax
@@ -153,14 +149,10 @@
UPDATE update_test SET (a,b) = (v.*) FROM (VALUES(21, 101)) AS v(i, j)
WHERE update_test.a = v.i;
ERROR: source for a multiple-column UPDATE item must be a sub-SELECT or ROW() expression
-LINE 1: UPDATE update_test SET (a,b) = (v.*) FROM (VALUES(21, 101)) ...
- ^
-- if an alias for the target table is specified, don't allow references
-- to the original table name
UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a = 10;
ERROR: invalid reference to FROM-clause entry for table "update_test"
-LINE 1: UPDATE update_test AS t SET b = update_test.b + 10 WHERE t.a...
- ^
HINT: Perhaps you meant to reference the table alias "t".
-- Make sure that we can update to a TOASTed value.
UPDATE update_test SET c = repeat('x', 10000) WHERE c = 'car';
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/delete.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/delete.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/delete.out 2024-02-22 13:04:49.012785000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/delete.out 2024-02-22 13:08:14.251127000 +0000
@@ -12,8 +12,6 @@
-- to be referenced
DELETE FROM delete_test dt WHERE delete_test.a > 25;
ERROR: invalid reference to FROM-clause entry for table "delete_test"
-LINE 1: DELETE FROM delete_test dt WHERE delete_test.a > 25;
- ^
HINT: Perhaps you meant to reference the table alias "dt".
SELECT id, a, char_length(b) FROM delete_test;
id | a | char_length
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/namespace.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/namespace.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/namespace.out 2024-02-22 13:04:49.014718000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/namespace.out 2024-02-22 13:08:14.521734000 +0000
@@ -24,8 +24,6 @@
CREATE SCHEMA test_ns_schema_2
CREATE VIEW abc_view AS SELECT c FROM abc;
ERROR: column "c" does not exist
-LINE 2: CREATE VIEW abc_view AS SELECT c FROM abc;
- ^
COMMIT;
SHOW search_path;
search_path
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/prepared_xacts.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/prepared_xacts.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/prepared_xacts.out 2024-02-22 13:04:49.015654000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/prepared_xacts.out 2024-02-22 13:08:14.905724000 +0000
@@ -199,8 +199,6 @@
-- Table doesn't exist, the creation hasn't been committed yet
SELECT * FROM pxtest2;
ERROR: relation "pxtest2" does not exist
-LINE 1: SELECT * FROM pxtest2;
- ^
-- There should be two prepared transactions
SELECT gid FROM pg_prepared_xacts;
gid
@@ -255,8 +253,6 @@
COMMIT PREPARED 'regress-two';
SELECT * FROM pxtest3;
ERROR: relation "pxtest3" does not exist
-LINE 1: SELECT * FROM pxtest3;
- ^
-- There should be no prepared transactions
SELECT gid FROM pg_prepared_xacts;
gid
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/collate.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/collate.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/collate.out 2024-02-22 13:04:49.012093000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/collate.out 2024-02-22 13:08:18.200566000 +0000
@@ -27,8 +27,6 @@
b text
);
ERROR: collations are not supported by type integer
-LINE 2: a int COLLATE "C",
- ^
CREATE TABLE collate_test_like (
LIKE collate_test1
);
@@ -68,8 +66,6 @@
SELECT * FROM collate_test1 WHERE b COLLATE "C" >= 'bbc' COLLATE "POSIX"; -- fail
ERROR: collation mismatch between explicit collations "C" and "POSIX"
-LINE 1: ...* FROM collate_test1 WHERE b COLLATE "C" >= 'bbc' COLLATE "P...
- ^
CREATE DOMAIN testdomain_p AS text COLLATE "POSIX";
CREATE DOMAIN testdomain_i AS int COLLATE "POSIX"; -- fail
ERROR: collations are not supported by type integer
@@ -365,8 +361,6 @@
-- In aggregates, ORDER BY expressions don't affect aggregate's collation
SELECT string_agg(x COLLATE "C", y COLLATE "POSIX") FROM collate_test10; -- fail
ERROR: collation mismatch between explicit collations "C" and "POSIX"
-LINE 1: SELECT string_agg(x COLLATE "C", y COLLATE "POSIX") FROM col...
- ^
SELECT array_agg(x COLLATE "C" ORDER BY y COLLATE "POSIX") FROM collate_test10;
array_agg
-----------
@@ -381,8 +375,6 @@
SELECT array_agg(a ORDER BY x||y) FROM collate_test10; -- fail
ERROR: collation mismatch between implicit collations "C" and "POSIX"
-LINE 1: SELECT array_agg(a ORDER BY x||y) FROM collate_test10;
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
SELECT a, b FROM collate_test1 UNION ALL SELECT a, b FROM collate_test1 ORDER BY 2;
a | b
@@ -439,8 +431,6 @@
SELECT a, b FROM collate_test1 UNION SELECT a, b FROM collate_test2 ORDER BY 2; -- fail
ERROR: collation mismatch between implicit collations "C" and "POSIX"
-LINE 1: SELECT a, b FROM collate_test1 UNION SELECT a, b FROM collat...
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
SELECT a, b COLLATE "C" FROM collate_test1 UNION SELECT a, b FROM collate_test2 ORDER BY 2; -- ok
a | b
@@ -453,13 +443,9 @@
SELECT a, b FROM collate_test1 INTERSECT SELECT a, b FROM collate_test2 ORDER BY 2; -- fail
ERROR: collation mismatch between implicit collations "C" and "POSIX"
-LINE 1: ...ELECT a, b FROM collate_test1 INTERSECT SELECT a, b FROM col...
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
SELECT a, b FROM collate_test1 EXCEPT SELECT a, b FROM collate_test2 ORDER BY 2; -- fail
ERROR: collation mismatch between implicit collations "C" and "POSIX"
-LINE 1: SELECT a, b FROM collate_test1 EXCEPT SELECT a, b FROM colla...
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
CREATE TABLE test_u AS SELECT a, b FROM collate_test1 UNION ALL SELECT a, b FROM collate_test2; -- fail
ERROR: no collation was derived for column "b" with collatable type text
@@ -477,8 +463,6 @@
select x, y from collate_test10 order by x || y; -- not so ok
ERROR: collation mismatch between implicit collations "C" and "POSIX"
-LINE 1: select x, y from collate_test10 order by x || y;
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
-- collation mismatch between recursive and non-recursive term
WITH RECURSIVE foo(x) AS
@@ -487,8 +471,6 @@
SELECT (x || 'c') COLLATE "POSIX" FROM foo WHERE length(x) < 10)
SELECT * FROM foo;
ERROR: recursive query "foo" column 1 has collation "C" in non-recursive term but collation "POSIX" overall
-LINE 2: (SELECT x FROM (VALUES('a' COLLATE "C"),('b')) t(x)
- ^
HINT: Use the COLLATE clause to set the collation of the non-recursive term.
SELECT a, b, a < b as lt FROM
(VALUES ('a', 'B'), ('A', 'b' COLLATE "C")) v(a,b);
@@ -596,8 +578,6 @@
ERROR: collations are not supported by type integer
CREATE INDEX collate_test1_idx6 ON collate_test1 ((a COLLATE "POSIX")); -- fail
ERROR: collations are not supported by type integer
-LINE 1: ...ATE INDEX collate_test1_idx6 ON collate_test1 ((a COLLATE "P...
- ^
SELECT relname, pg_get_indexdef(oid) FROM pg_class WHERE relname LIKE 'collate_test%_idx%' ORDER BY 1;
relname | pg_get_indexdef
--------------------+-------------------------------------------------------------------------------------------------------------------
@@ -663,8 +643,6 @@
-- invalid: non-lowercase quoted identifiers
CREATE COLLATION case_coll ("Lc_Collate" = "POSIX", "Lc_Ctype" = "POSIX");
ERROR: collation attribute "Lc_Collate" not recognized
-LINE 1: CREATE COLLATION case_coll ("Lc_Collate" = "POSIX", "Lc_Ctyp...
- ^
-- 9.1 bug with useless COLLATE in an expression subject to length coercion
CREATE TEMP TABLE vctable (f1 varchar(25));
INSERT INTO vctable VALUES ('foo' COLLATE "C");
@@ -705,33 +683,21 @@
-- LC_COLLATE
CREATE COLLATION coll_dup_chk (LC_COLLATE = "POSIX", LC_COLLATE = "NONSENSE", LC_CTYPE = "POSIX");
ERROR: conflicting or redundant options
-LINE 1: ...ATE COLLATION coll_dup_chk (LC_COLLATE = "POSIX", LC_COLLATE...
- ^
-- LC_CTYPE
CREATE COLLATION coll_dup_chk (LC_CTYPE = "POSIX", LC_CTYPE = "NONSENSE", LC_COLLATE = "POSIX");
ERROR: conflicting or redundant options
-LINE 1: ...REATE COLLATION coll_dup_chk (LC_CTYPE = "POSIX", LC_CTYPE =...
- ^
-- PROVIDER
CREATE COLLATION coll_dup_chk (PROVIDER = icu, PROVIDER = NONSENSE, LC_COLLATE = "POSIX", LC_CTYPE = "POSIX");
ERROR: conflicting or redundant options
-LINE 1: CREATE COLLATION coll_dup_chk (PROVIDER = icu, PROVIDER = NO...
- ^
-- LOCALE
CREATE COLLATION case_sensitive (LOCALE = '', LOCALE = "NONSENSE");
ERROR: conflicting or redundant options
-LINE 1: CREATE COLLATION case_sensitive (LOCALE = '', LOCALE = "NONS...
- ^
-- DETERMINISTIC
CREATE COLLATION coll_dup_chk (DETERMINISTIC = TRUE, DETERMINISTIC = NONSENSE, LOCALE = '');
ERROR: conflicting or redundant options
-LINE 1: ...ATE COLLATION coll_dup_chk (DETERMINISTIC = TRUE, DETERMINIS...
- ^
-- VERSION
CREATE COLLATION coll_dup_chk (VERSION = '1', VERSION = "NONSENSE", LOCALE = '');
ERROR: conflicting or redundant options
-LINE 1: CREATE COLLATION coll_dup_chk (VERSION = '1', VERSION = "NON...
- ^
-- LOCALE conflicts with LC_COLLATE and LC_CTYPE
CREATE COLLATION coll_dup_chk (LC_COLLATE = "POSIX", LC_CTYPE = "POSIX", LOCALE = '');
ERROR: conflicting or redundant options
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/tablesample.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tablesample.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/tablesample.out 2024-02-22 13:04:49.016793000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tablesample.out 2024-02-22 13:08:17.699770000 +0000
@@ -282,8 +282,6 @@
-- errors
SELECT id FROM test_tablesample TABLESAMPLE FOOBAR (1);
ERROR: tablesample method foobar does not exist
-LINE 1: SELECT id FROM test_tablesample TABLESAMPLE FOOBAR (1);
- ^
SELECT id FROM test_tablesample TABLESAMPLE SYSTEM (NULL);
ERROR: TABLESAMPLE parameter cannot be null
SELECT id FROM test_tablesample TABLESAMPLE SYSTEM (50) REPEATABLE (NULL);
@@ -298,8 +296,6 @@
ERROR: sample percentage must be between 0 and 100
SELECT id FROM test_tablesample_v1 TABLESAMPLE BERNOULLI (1);
ERROR: TABLESAMPLE clause can only be applied to tables and materialized views
-LINE 1: SELECT id FROM test_tablesample_v1 TABLESAMPLE BERNOULLI (1)...
- ^
INSERT INTO test_tablesample_v1 VALUES(1);
ERROR: cannot insert into view "test_tablesample_v1"
DETAIL: Views containing TABLESAMPLE are not automatically updatable.
@@ -307,8 +303,6 @@
WITH query_select AS (SELECT * FROM test_tablesample)
SELECT * FROM query_select TABLESAMPLE BERNOULLI (5.5) REPEATABLE (1);
ERROR: TABLESAMPLE clause can only be applied to tables and materialized views
-LINE 2: SELECT * FROM query_select TABLESAMPLE BERNOULLI (5.5) REPEA...
- ^
SELECT q.* FROM (SELECT * FROM test_tablesample) as q TABLESAMPLE BERNOULLI (5);
ERROR: syntax error at or near "TABLESAMPLE"
LINE 1: ...CT q.* FROM (SELECT * FROM test_tablesample) as q TABLESAMPL...
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/groupingsets.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/groupingsets.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/groupingsets.out 2024-02-22 13:04:49.013390000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/groupingsets.out 2024-02-22 13:08:18.581955000 +0000
@@ -551,8 +551,6 @@
from (values (1),(2)) v(x),
lateral (select a, b, sum(v.x) from gstest_data(v.x) group by rollup (a,b)) s;
ERROR: aggregate functions are not allowed in FROM clause of their own query level
-LINE 3: lateral (select a, b, sum(v.x) from gstest_data(v.x) ...
- ^
-- min max optimization should still work with GROUP BY ()
explain (costs off)
select min(unique1) from tenk1 GROUP BY ();
@@ -749,8 +747,6 @@
-- Agg level check. This query should error out.
select (select grouping(a,b) from gstest2) from gstest2 group by a,b;
ERROR: arguments to GROUPING must be grouping expressions of the associated query level
-LINE 1: select (select grouping(a,b) from gstest2) from gstest2 grou...
- ^
--Nested queries
select a, b, sum(c), count(*) from gstest2 group by grouping sets (rollup(a,b),a);
a | b | sum | count
@@ -1336,15 +1332,11 @@
from (values (1),(2)) v(x),
lateral (select a, b, sum(v.x) from gstest_data(v.x) group by grouping sets (a,b)) s;
ERROR: aggregate functions are not allowed in FROM clause of their own query level
-LINE 3: lateral (select a, b, sum(v.x) from gstest_data(v.x) ...
- ^
explain (costs off)
select *
from (values (1),(2)) v(x),
lateral (select a, b, sum(v.x) from gstest_data(v.x) group by grouping sets (a,b)) s;
ERROR: aggregate functions are not allowed in FROM clause of their own query level
-LINE 4: lateral (select a, b, sum(v.x) from gstest_data(v.x...
- ^
-- Tests for chained aggregates
select a, b, grouping(a,b), sum(v), count(*), max(v)
from gstest1 group by grouping sets ((a,b),(a+1,b+1),(a+2,b+2)) order by 3,6;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/identity.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/identity.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/identity.out 2024-02-22 13:04:49.013518000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/identity.out 2024-02-22 13:08:19.109083000 +0000
@@ -58,13 +58,9 @@
-- duplicate identity
CREATE TABLE itest_err_2 (a int generated always as identity generated by default as identity);
ERROR: multiple identity specifications for column "a" of table "itest_err_2"
-LINE 1: ...E itest_err_2 (a int generated always as identity generated ...
- ^
-- cannot have default and identity
CREATE TABLE itest_err_3 (a int default 5 generated by default as identity);
ERROR: both default and identity specified for column "a" of table "itest_err_3"
-LINE 1: CREATE TABLE itest_err_3 (a int default 5 generated by defau...
- ^
-- cannot combine serial and identity
CREATE TABLE itest_err_4 (a serial generated by default as identity);
ERROR: both default and identity specified for column "a" of table "itest_err_4"
@@ -276,8 +272,6 @@
-- check that sequence is removed
SELECT sequence_name FROM itest4_a_seq;
ERROR: relation "itest4_a_seq" does not exist
-LINE 1: SELECT sequence_name FROM itest4_a_seq;
- ^
-- test views
CREATE TABLE itest10 (a int generated by default as identity, b text);
CREATE TABLE itest11 (a int generated always as identity, b text);
@@ -815,12 +809,8 @@
-- Identity columns must be NOT NULL (cf bug #16913)
CREATE TABLE itest15 (id integer GENERATED ALWAYS AS IDENTITY NULL); -- fail
ERROR: conflicting NULL/NOT NULL declarations for column "id" of table "itest15"
-LINE 1: ...ABLE itest15 (id integer GENERATED ALWAYS AS IDENTITY NULL);
- ^
CREATE TABLE itest15 (id integer NULL GENERATED ALWAYS AS IDENTITY); -- fail
ERROR: conflicting NULL/NOT NULL declarations for column "id" of table "itest15"
-LINE 1: CREATE TABLE itest15 (id integer NULL GENERATED ALWAYS AS ID...
- ^
CREATE TABLE itest15 (id integer GENERATED ALWAYS AS IDENTITY NOT NULL);
DROP TABLE itest15;
CREATE TABLE itest15 (id integer NOT NULL GENERATED ALWAYS AS IDENTITY);
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/generated.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/generated.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/generated.out 2024-02-22 13:04:49.013215000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/generated.out 2024-02-22 13:08:19.698014000 +0000
@@ -33,31 +33,21 @@
-- duplicate generated
CREATE TABLE gtest_err_1 (a int PRIMARY KEY, b int GENERATED ALWAYS AS (a * 2) STORED GENERATED ALWAYS AS (a * 3) STORED);
ERROR: multiple generation clauses specified for column "b" of table "gtest_err_1"
-LINE 1: ...ARY KEY, b int GENERATED ALWAYS AS (a * 2) STORED GENERATED ...
- ^
-- references to other generated columns, including self-references
CREATE TABLE gtest_err_2a (a int PRIMARY KEY, b int GENERATED ALWAYS AS (b * 2) STORED);
ERROR: cannot use generated column "b" in column generation expression
-LINE 1: ...2a (a int PRIMARY KEY, b int GENERATED ALWAYS AS (b * 2) STO...
- ^
DETAIL: A generated column cannot reference another generated column.
CREATE TABLE gtest_err_2b (a int PRIMARY KEY, b int GENERATED ALWAYS AS (a * 2) STORED, c int GENERATED ALWAYS AS (b * 3) STORED);
ERROR: cannot use generated column "b" in column generation expression
-LINE 1: ...AYS AS (a * 2) STORED, c int GENERATED ALWAYS AS (b * 3) STO...
- ^
DETAIL: A generated column cannot reference another generated column.
-- a whole-row var is a self-reference on steroids, so disallow that too
CREATE TABLE gtest_err_2c (a int PRIMARY KEY,
b int GENERATED ALWAYS AS (num_nulls(gtest_err_2c)) STORED);
ERROR: cannot use whole-row variable in column generation expression
-LINE 2: b int GENERATED ALWAYS AS (num_nulls(gtest_err_2c)) STOR...
- ^
DETAIL: This would cause the generated column to depend on its own value.
-- invalid reference
CREATE TABLE gtest_err_3 (a int PRIMARY KEY, b int GENERATED ALWAYS AS (c * 2) STORED);
ERROR: column "c" does not exist
-LINE 1: ..._3 (a int PRIMARY KEY, b int GENERATED ALWAYS AS (c * 2) STO...
- ^
-- generation expression must be immutable
CREATE TABLE gtest_err_4 (a int PRIMARY KEY, b double precision GENERATED ALWAYS AS (random()) STORED);
ERROR: generation expression is not immutable
@@ -67,35 +57,21 @@
-- cannot have default/identity and generated
CREATE TABLE gtest_err_5a (a int PRIMARY KEY, b int DEFAULT 5 GENERATED ALWAYS AS (a * 2) STORED);
ERROR: both default and generation expression specified for column "b" of table "gtest_err_5a"
-LINE 1: ... gtest_err_5a (a int PRIMARY KEY, b int DEFAULT 5 GENERATED ...
- ^
CREATE TABLE gtest_err_5b (a int PRIMARY KEY, b int GENERATED ALWAYS AS identity GENERATED ALWAYS AS (a * 2) STORED);
ERROR: both identity and generation expression specified for column "b" of table "gtest_err_5b"
-LINE 1: ...t PRIMARY KEY, b int GENERATED ALWAYS AS identity GENERATED ...
- ^
-- reference to system column not allowed in generated column
-- (except tableoid, which we test below)
CREATE TABLE gtest_err_6a (a int PRIMARY KEY, b bool GENERATED ALWAYS AS (xmin <> 37) STORED);
ERROR: cannot use system column "xmin" in column generation expression
-LINE 1: ...a (a int PRIMARY KEY, b bool GENERATED ALWAYS AS (xmin <> 37...
- ^
-- various prohibited constructs
CREATE TABLE gtest_err_7a (a int PRIMARY KEY, b int GENERATED ALWAYS AS (avg(a)) STORED);
ERROR: aggregate functions are not allowed in column generation expressions
-LINE 1: ...7a (a int PRIMARY KEY, b int GENERATED ALWAYS AS (avg(a)) ST...
- ^
CREATE TABLE gtest_err_7b (a int PRIMARY KEY, b int GENERATED ALWAYS AS (row_number() OVER (ORDER BY a)) STORED);
ERROR: window functions are not allowed in column generation expressions
-LINE 1: ...7b (a int PRIMARY KEY, b int GENERATED ALWAYS AS (row_number...
- ^
CREATE TABLE gtest_err_7c (a int PRIMARY KEY, b int GENERATED ALWAYS AS ((SELECT a)) STORED);
ERROR: cannot use subquery in column generation expression
-LINE 1: ...7c (a int PRIMARY KEY, b int GENERATED ALWAYS AS ((SELECT a)...
- ^
CREATE TABLE gtest_err_7d (a int PRIMARY KEY, b int GENERATED ALWAYS AS (generate_series(1, a)) STORED);
ERROR: set-returning functions are not allowed in column generation expressions
-LINE 1: ...7d (a int PRIMARY KEY, b int GENERATED ALWAYS AS (generate_s...
- ^
-- GENERATED BY DEFAULT not allowed
CREATE TABLE gtest_err_8 (a int PRIMARY KEY, b int GENERATED BY DEFAULT AS (a * 2) STORED);
ERROR: for a generated column, GENERATED ALWAYS must be specified
@@ -952,13 +928,9 @@
-- generated columns in partition key (not allowed)
CREATE TABLE gtest_part_key (f1 date NOT NULL, f2 bigint, f3 bigint GENERATED ALWAYS AS (f2 * 2) STORED) PARTITION BY RANGE (f3);
ERROR: cannot use generated column in partition key
-LINE 1: ...ENERATED ALWAYS AS (f2 * 2) STORED) PARTITION BY RANGE (f3);
- ^
DETAIL: Column "f3" is a generated column.
CREATE TABLE gtest_part_key (f1 date NOT NULL, f2 bigint, f3 bigint GENERATED ALWAYS AS (f2 * 2) STORED) PARTITION BY RANGE ((f3 * 3));
ERROR: cannot use generated column in partition key
-LINE 1: ...ED ALWAYS AS (f2 * 2) STORED) PARTITION BY RANGE ((f3 * 3));
- ^
DETAIL: Column "f3" is a generated column.
-- ALTER TABLE ... ADD COLUMN
CREATE TABLE gtest25 (a int PRIMARY KEY);
@@ -1217,16 +1189,12 @@
WHEN (NEW.b < 0) -- error
EXECUTE PROCEDURE gtest_trigger_func();
ERROR: BEFORE trigger's WHEN condition cannot reference NEW generated columns
-LINE 3: WHEN (NEW.b < 0) -- error
- ^
DETAIL: Column "b" is a generated column.
CREATE TRIGGER gtest2b BEFORE INSERT OR UPDATE ON gtest26
FOR EACH ROW
WHEN (NEW.* IS NOT NULL) -- error
EXECUTE PROCEDURE gtest_trigger_func();
ERROR: BEFORE trigger's WHEN condition cannot reference NEW generated columns
-LINE 3: WHEN (NEW.* IS NOT NULL) -- error
- ^
DETAIL: A whole-row reference is used and the table contains generated columns.
CREATE TRIGGER gtest2 BEFORE INSERT ON gtest26
FOR EACH ROW
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/create_table_like.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_table_like.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/create_table_like.out 2024-02-22 13:04:49.012714000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/create_table_like.out 2024-02-22 13:08:21.612211000 +0000
@@ -10,8 +10,6 @@
CREATE TABLE ctlb (bb TEXT) INHERITS (ctla);
CREATE TABLE foo (LIKE nonexistent);
ERROR: relation "nonexistent" does not exist
-LINE 1: CREATE TABLE foo (LIKE nonexistent);
- ^
CREATE TABLE inhe (ee text, LIKE inhx) inherits (ctlb);
INSERT INTO inhe VALUES ('ee-col1', 'ee-col2', DEFAULT, 'ee-col4');
SELECT * FROM inhe; /* Columns aa, bb, xx value NULL, ee */
@@ -515,8 +513,6 @@
CREATE SEQUENCE ctlseq1;
CREATE TABLE ctlt10 (LIKE ctlseq1); -- fail
ERROR: relation "ctlseq1" is invalid in LIKE clause
-LINE 1: CREATE TABLE ctlt10 (LIKE ctlseq1);
- ^
DETAIL: This operation is not supported for sequences.
CREATE VIEW ctlv1 AS SELECT * FROM ctlt4;
CREATE TABLE ctlt11 (LIKE ctlv1);
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/merge.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/merge.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/merge.out 2024-02-22 13:04:49.014608000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/merge.out 2024-02-22 13:08:21.525367000 +0000
@@ -130,8 +130,6 @@
WHEN MATCHED THEN DELETE
) SELECT * FROM foo;
ERROR: MERGE not supported in WITH query
-LINE 1: WITH foo AS (
- ^
-- used in COPY
COPY (
MERGE INTO target USING source ON (true)
@@ -204,8 +202,6 @@
WHEN NOT MATCHED THEN
INSERT DEFAULT VALUES;
ERROR: invalid reference to FROM-clause entry for table "t"
-LINE 2: USING (SELECT * FROM source WHERE t.tid > sid) s
- ^
DETAIL: There is an entry for table "t", but it cannot be referenced from this part of the query.
--
-- initial tests
@@ -625,8 +621,6 @@
WHEN NOT MATCHED THEN
INSERT (tid, balance) VALUES (t.tid, s.delta);
ERROR: invalid reference to FROM-clause entry for table "t"
-LINE 5: INSERT (tid, balance) VALUES (t.tid, s.delta);
- ^
DETAIL: There is an entry for table "t", but it cannot be referenced from this part of the query.
-- and again with a constant ON clause
BEGIN;
@@ -636,8 +630,6 @@
WHEN NOT MATCHED THEN
INSERT (tid, balance) VALUES (t.tid, s.delta);
ERROR: invalid reference to FROM-clause entry for table "t"
-LINE 5: INSERT (tid, balance) VALUES (t.tid, s.delta);
- ^
DETAIL: There is an entry for table "t", but it cannot be referenced from this part of the query.
SELECT * FROM target ORDER BY tid;
ERROR: current transaction is aborted, commands ignored until end of transaction block
@@ -731,8 +723,6 @@
WHEN NOT MATCHED AND t.balance = 100 THEN
INSERT (tid) VALUES (s.sid);
ERROR: invalid reference to FROM-clause entry for table "t"
-LINE 3: WHEN NOT MATCHED AND t.balance = 100 THEN
- ^
DETAIL: There is an entry for table "t", but it cannot be referenced from this part of the query.
SELECT * FROM wq_target;
ERROR: current transaction is aborted, commands ignored until end of transaction block
@@ -840,8 +830,6 @@
WHEN MATCHED AND t.xmin = t.xmax THEN
UPDATE SET balance = t.balance + s.balance;
ERROR: cannot use system column "xmin" in MERGE WHEN condition
-LINE 3: WHEN MATCHED AND t.xmin = t.xmax THEN
- ^
MERGE INTO wq_target t
USING wq_source s ON t.tid = s.sid
WHEN MATCHED AND t.tableoid >= 0 THEN
@@ -1272,8 +1260,6 @@
WHEN MATCHED AND tid < 2 THEN
DELETE;
ERROR: column reference "balance" is ambiguous
-LINE 5: UPDATE SET balance = balance + delta
- ^
ROLLBACK;
BEGIN;
INSERT INTO sq_source (sid, balance, delta) VALUES (-1, -1, -10);
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/misc_functions.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/misc_functions.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/misc_functions.out 2024-02-22 13:04:49.014637000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/misc_functions.out 2024-02-22 13:08:21.165573000 +0000
@@ -129,13 +129,9 @@
-- should fail, one or more arguments is required
SELECT num_nonnulls();
ERROR: function num_nonnulls() does not exist
-LINE 1: SELECT num_nonnulls();
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
SELECT num_nulls();
ERROR: function num_nulls() does not exist
-LINE 1: SELECT num_nulls();
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
--
-- canonicalize_path()
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/tsrf.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tsrf.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/tsrf.out 2024-02-22 13:04:49.017142000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tsrf.out 2024-02-22 13:08:21.059840000 +0000
@@ -44,8 +44,6 @@
-- but we've traditionally rejected the same in FROM
SELECT * FROM generate_series(1, generate_series(1, 3));
ERROR: set-returning functions must appear at top level of FROM
-LINE 1: SELECT * FROM generate_series(1, generate_series(1, 3));
- ^
-- srf, with two SRF arguments
SELECT generate_series(generate_series(1,3), generate_series(2, 4));
generate_series
@@ -231,19 +229,13 @@
-- SRFs are not allowed if they'd need to be conditionally executed
SELECT q1, case when q1 > 0 then generate_series(1,3) else 0 end FROM int8_tbl;
ERROR: set-returning functions are not allowed in CASE
-LINE 1: SELECT q1, case when q1 > 0 then generate_series(1,3) else 0...
- ^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
SELECT q1, coalesce(generate_series(1,3), 0) FROM int8_tbl;
ERROR: set-returning functions are not allowed in COALESCE
-LINE 1: SELECT q1, coalesce(generate_series(1,3), 0) FROM int8_tbl;
- ^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
-- SRFs are not allowed in aggregate arguments
SELECT min(generate_series(1, 3)) FROM few;
ERROR: aggregate function calls cannot contain set-returning function calls
-LINE 1: SELECT min(generate_series(1, 3)) FROM few;
- ^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
-- ... unless they're within a sub-select
SELECT sum((3 = ANY(SELECT generate_series(1,4)))::int);
@@ -262,8 +254,6 @@
-- SRFs are not allowed in window function arguments, either
SELECT min(generate_series(1, 3)) OVER() FROM few;
ERROR: window function calls cannot contain set-returning function calls
-LINE 1: SELECT min(generate_series(1, 3)) OVER() FROM few;
- ^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
-- SRFs are normally computed after window functions
SELECT id,lag(id) OVER(), count(*) OVER(), generate_series(1,3) FROM few;
@@ -492,18 +482,12 @@
-- SRFs are not allowed in UPDATE (they once were, but it was nonsense)
UPDATE fewmore SET data = generate_series(4,9);
ERROR: set-returning functions are not allowed in UPDATE
-LINE 1: UPDATE fewmore SET data = generate_series(4,9);
- ^
-- SRFs are not allowed in RETURNING
INSERT INTO fewmore VALUES(1) RETURNING generate_series(1,3);
ERROR: set-returning functions are not allowed in RETURNING
-LINE 1: INSERT INTO fewmore VALUES(1) RETURNING generate_series(1,3)...
- ^
-- nor standalone VALUES (but surely this is a bug?)
VALUES(1, generate_series(1,2));
ERROR: set-returning functions are not allowed in VALUES
-LINE 1: VALUES(1, generate_series(1,2));
- ^
-- We allow tSRFs that are not at top level
SELECT int4mul(generate_series(1,2), 10);
int4mul
@@ -523,8 +507,6 @@
-- but SRFs in function RTEs must be at top level (annoying restriction)
SELECT * FROM int4mul(generate_series(1,2), 10);
ERROR: set-returning functions must appear at top level of FROM
-LINE 1: SELECT * FROM int4mul(generate_series(1,2), 10);
- ^
-- DISTINCT ON is evaluated before tSRF evaluation if SRF is not
-- referenced either in ORDER BY or in the DISTINCT ON list. The ORDER
-- BY reference can be implicitly generated, if there's no other ORDER BY.
@@ -613,8 +595,6 @@
-- SRFs are not allowed in LIMIT.
SELECT 1 LIMIT generate_series(1,3);
ERROR: set-returning functions are not allowed in LIMIT
-LINE 1: SELECT 1 LIMIT generate_series(1,3);
- ^
-- tSRF in correlated subquery, referencing table outside
SELECT (SELECT generate_series(1,3) LIMIT 1 OFFSET few.id) FROM few;
generate_series
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/tid.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tid.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/tid.out 2024-02-22 13:04:49.015181000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/tid.out 2024-02-22 13:08:21.064297000 +0000
@@ -11,12 +11,8 @@
SELECT '(4294967296,1)'::tid; -- error
ERROR: invalid input syntax for type tid: "(4294967296,1)"
-LINE 1: SELECT '(4294967296,1)'::tid;
- ^
SELECT '(1,65536)'::tid; -- error
ERROR: invalid input syntax for type tid: "(1,65536)"
-LINE 1: SELECT '(1,65536)'::tid;
- ^
-- Also try it with non-error-throwing API
SELECT pg_input_is_valid('(0)', 'tid');
pg_input_is_valid
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/collate.icu.utf8.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/collate.icu.utf8.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/collate.icu.utf8.out 2024-02-22 13:04:49.012043000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/collate.icu.utf8.out 2024-02-22 13:08:21.551918000 +0000
@@ -27,22 +27,16 @@
b text COLLATE "ja_JP.eucjp-x-icu"
);
ERROR: collation "ja_JP.eucjp-x-icu" for encoding "UTF8" does not exist
-LINE 3: b text COLLATE "ja_JP.eucjp-x-icu"
- ^
CREATE TABLE collate_test_fail (
a int,
b text COLLATE "foo-x-icu"
);
ERROR: collation "foo-x-icu" for encoding "UTF8" does not exist
-LINE 3: b text COLLATE "foo-x-icu"
- ^
CREATE TABLE collate_test_fail (
a int COLLATE "en-x-icu",
b text
);
ERROR: collations are not supported by type integer
-LINE 2: a int COLLATE "en-x-icu",
- ^
CREATE TABLE collate_test_like (
LIKE collate_test1
);
@@ -115,8 +109,6 @@
SELECT * FROM collate_test1 WHERE b COLLATE "C" >= 'bbc' COLLATE "en-x-icu";
ERROR: collation mismatch between explicit collations "C" and "en-x-icu"
-LINE 1: ...* FROM collate_test1 WHERE b COLLATE "C" >= 'bbc' COLLATE "e...
- ^
CREATE DOMAIN testdomain_sv AS text COLLATE "sv-x-icu";
CREATE DOMAIN testdomain_i AS int COLLATE "sv-x-icu"; -- fails
ERROR: collations are not supported by type integer
@@ -726,8 +718,6 @@
SELECT a, b FROM collate_test1 UNION SELECT a, b FROM collate_test3 ORDER BY 2; -- fail
ERROR: collation mismatch between implicit collations "en-x-icu" and "C"
-LINE 1: SELECT a, b FROM collate_test1 UNION SELECT a, b FROM collat...
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
SELECT a, b COLLATE "C" FROM collate_test1 UNION SELECT a, b FROM collate_test3 ORDER BY 2; -- ok
a | b
@@ -740,13 +730,9 @@
SELECT a, b FROM collate_test1 INTERSECT SELECT a, b FROM collate_test3 ORDER BY 2; -- fail
ERROR: collation mismatch between implicit collations "en-x-icu" and "C"
-LINE 1: ...ELECT a, b FROM collate_test1 INTERSECT SELECT a, b FROM col...
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
SELECT a, b FROM collate_test1 EXCEPT SELECT a, b FROM collate_test3 ORDER BY 2; -- fail
ERROR: collation mismatch between implicit collations "en-x-icu" and "C"
-LINE 1: SELECT a, b FROM collate_test1 EXCEPT SELECT a, b FROM colla...
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
CREATE TABLE test_u AS SELECT a, b FROM collate_test1 UNION ALL SELECT a, b FROM collate_test3; -- fail
ERROR: no collation was derived for column "b" with collatable type text
@@ -764,8 +750,6 @@
select x, y from collate_test10 order by x || y; -- not so ok
ERROR: collation mismatch between implicit collations "en-x-icu" and "tr-x-icu"
-LINE 1: select x, y from collate_test10 order by x || y;
- ^
HINT: You can choose the collation by applying the COLLATE clause to one or both expressions.
-- collation mismatch between recursive and non-recursive term
WITH RECURSIVE foo(x) AS
@@ -774,8 +758,6 @@
SELECT (x || 'c') COLLATE "de-x-icu" FROM foo WHERE length(x) < 10)
SELECT * FROM foo;
ERROR: recursive query "foo" column 1 has collation "en-x-icu" in non-recursive term but collation "de-x-icu" overall
-LINE 2: (SELECT x FROM (VALUES('a' COLLATE "en-x-icu"),('b')) t(x...
- ^
HINT: Use the COLLATE clause to set the collation of the non-recursive term.
-- casting
SELECT CAST('42' AS text COLLATE "C");
@@ -972,8 +954,6 @@
ERROR: collations are not supported by type integer
CREATE INDEX collate_test1_idx6 ON collate_test1 ((a COLLATE "C")); -- fail
ERROR: collations are not supported by type integer
-LINE 1: ...ATE INDEX collate_test1_idx6 ON collate_test1 ((a COLLATE "C...
- ^
SELECT relname, pg_get_indexdef(oid) FROM pg_class WHERE relname LIKE 'collate_test%_idx%' ORDER BY 1;
relname | pg_get_indexdef
--------------------+-------------------------------------------------------------------------------------------------------------------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/without_overlaps.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/without_overlaps.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/without_overlaps.out 2024-02-22 13:04:49.017713000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/without_overlaps.out 2024-02-22 13:08:21.296991000 +0000
@@ -18,8 +18,6 @@
CONSTRAINT temporal_rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
);
ERROR: column "valid_at" named in key does not exist
-LINE 3: CONSTRAINT temporal_rng_pk PRIMARY KEY (id, valid_at WITHOU...
- ^
-- PK with a non-range column:
CREATE TABLE temporal_rng (
id int4range,
@@ -125,8 +123,6 @@
CONSTRAINT temporal_rng3_uq UNIQUE (id, valid_at WITHOUT OVERLAPS)
);
ERROR: column "valid_at" named in key does not exist
-LINE 3: CONSTRAINT temporal_rng3_uq UNIQUE (id, valid_at WITHOUT OV...
- ^
-- UNIQUE with a non-range column:
CREATE TABLE temporal_rng3 (
id int4range,
@@ -224,8 +220,6 @@
ADD CONSTRAINT temporal3_pk
PRIMARY KEY USING INDEX idx_temporal3_uq;
ERROR: "idx_temporal3_uq" is not a unique index
-LINE 2: ADD CONSTRAINT temporal3_pk
- ^
DETAIL: Cannot create a primary key or unique constraint using such an index.
DROP TABLE temporal3;
-- UNIQUE with USING INDEX (not possible):
@@ -238,8 +232,6 @@
ADD CONSTRAINT temporal3_uq
UNIQUE USING INDEX idx_temporal3_uq;
ERROR: "idx_temporal3_uq" is not a unique index
-LINE 2: ADD CONSTRAINT temporal3_uq
- ^
DETAIL: Cannot create a primary key or unique constraint using such an index.
DROP TABLE temporal3;
-- UNIQUE with USING [UNIQUE] INDEX (possible but not a temporal constraint):
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/rules.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rules.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/rules.out 2024-02-22 13:04:49.016285000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rules.out 2024-02-22 13:08:22.439128000 +0000
@@ -1192,8 +1192,6 @@
create rule rules_foorule as on insert to rules_foo where f1 < 100
do instead insert into rules_foo2 values (f1);
ERROR: column "f1" does not exist
-LINE 2: do instead insert into rules_foo2 values (f1);
- ^
DETAIL: There are columns named "f1", but they are in tables that cannot be referenced from this part of the query.
HINT: Try using a table-qualified name.
-- this is the correct way:
@@ -2923,8 +2921,6 @@
create or replace rule r1 as on update to rules_base do instead
select * from rules_base where f1 = 11 for update of old; -- error
ERROR: relation "old" in FOR UPDATE clause not found in FROM clause
-LINE 2: select * from rules_base where f1 = 11 for update of old;
- ^
drop table rules_base;
-- test various flavors of pg_get_viewdef()
select pg_get_viewdef('shoe'::regclass) as unpretty;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/psql.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/psql.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/psql.out 2024-02-22 13:04:49.015766000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/psql.out 2024-02-22 13:08:22.475461000 +0000
@@ -121,8 +121,6 @@
-- parse error
SELECT foo \bind \g
ERROR: column "foo" does not exist
-LINE 1: SELECT foo
- ^
-- tcop error
SELECT 1 \; SELECT 2 \bind \g
ERROR: cannot insert multiple commands into a prepared statement
@@ -239,8 +237,6 @@
-- subject command should not have executed
TABLE bububu; -- fail
ERROR: relation "bububu" does not exist
-LINE 1: TABLE bububu;
- ^
-- query buffer should remain unchanged
SELECT 1 AS x, 'Hello', 2 AS y, true AS "dirty\name"
\gdesc
@@ -5399,8 +5395,6 @@
DROP TABLE ac_test;
SELECT * FROM ac_test; -- should be gone now
ERROR: relation "ac_test" does not exist
-LINE 1: SELECT * FROM ac_test;
- ^
-- ON_ERROR_ROLLBACK
\set ON_ERROR_ROLLBACK on
CREATE TABLE oer_test (a int);
@@ -5408,8 +5402,6 @@
INSERT INTO oer_test VALUES (1);
INSERT INTO oer_test VALUES ('foo');
ERROR: invalid input syntax for type integer: "foo"
-LINE 1: INSERT INTO oer_test VALUES ('foo');
- ^
INSERT INTO oer_test VALUES (3);
COMMIT;
SELECT * FROM oer_test;
@@ -5448,8 +5440,6 @@
-- ECHO errors
\set ECHO errors
ERROR: relation "notexists" does not exist
-LINE 1: SELECT * FROM notexists;
- ^
STATEMENT: SELECT * FROM notexists;
--
-- combined queries
@@ -5735,8 +5725,6 @@
BEGIN;
CREATE TABLE bla(s NO_SUCH_TYPE); -- fails
ERROR: type "no_such_type" does not exist
-LINE 1: CREATE TABLE bla(s NO_SUCH_TYPE);
- ^
CREATE TABLE bla(s TEXT); -- succeeds
SELECT psql_error('oops!'); -- fails
ERROR: error oops!
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/publication.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/publication.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/publication.out 2024-02-22 13:04:49.015818000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/publication.out 2024-02-22 13:08:25.227089000 +0000
@@ -27,8 +27,6 @@
ERROR: unrecognized value for publication option "publish": "cluster"
CREATE PUBLICATION testpub_xxx WITH (publish_via_partition_root = 'true', publish_via_partition_root = '0');
ERROR: conflicting or redundant options
-LINE 1: ...ub_xxx WITH (publish_via_partition_root = 'true', publish_vi...
- ^
\dRp
List of publications
Name | Owner | All tables | Inserts | Updates | Deletes | Truncates | Via root
@@ -420,40 +418,28 @@
-- fail - publication WHERE clause must be boolean
ALTER PUBLICATION testpub5 SET TABLE testpub_rf_tbl3 WHERE (1234);
ERROR: argument of PUBLICATION WHERE must be type boolean, not type integer
-LINE 1: ...PUBLICATION testpub5 SET TABLE testpub_rf_tbl3 WHERE (1234);
- ^
-- fail - aggregate functions not allowed in WHERE clause
ALTER PUBLICATION testpub5 SET TABLE testpub_rf_tbl3 WHERE (e < AVG(e));
ERROR: aggregate functions are not allowed in WHERE
-LINE 1: ...ATION testpub5 SET TABLE testpub_rf_tbl3 WHERE (e < AVG(e));
- ^
-- fail - user-defined operators are not allowed
CREATE FUNCTION testpub_rf_func1(integer, integer) RETURNS boolean AS $$ SELECT hashint4($1) > $2 $$ LANGUAGE SQL;
CREATE OPERATOR =#> (PROCEDURE = testpub_rf_func1, LEFTARG = integer, RIGHTARG = integer);
CREATE PUBLICATION testpub6 FOR TABLE testpub_rf_tbl3 WHERE (e =#> 27);
ERROR: invalid publication WHERE expression
-LINE 1: ...ICATION testpub6 FOR TABLE testpub_rf_tbl3 WHERE (e =#> 27);
- ^
DETAIL: User-defined operators are not allowed.
-- fail - user-defined functions are not allowed
CREATE FUNCTION testpub_rf_func2() RETURNS integer AS $$ BEGIN RETURN 123; END; $$ LANGUAGE plpgsql;
ALTER PUBLICATION testpub5 ADD TABLE testpub_rf_tbl1 WHERE (a >= testpub_rf_func2());
ERROR: invalid publication WHERE expression
-LINE 1: ...ON testpub5 ADD TABLE testpub_rf_tbl1 WHERE (a >= testpub_rf...
- ^
DETAIL: User-defined or built-in mutable functions are not allowed.
-- fail - non-immutable functions are not allowed. random() is volatile.
ALTER PUBLICATION testpub5 ADD TABLE testpub_rf_tbl1 WHERE (a < random());
ERROR: invalid publication WHERE expression
-LINE 1: ...ION testpub5 ADD TABLE testpub_rf_tbl1 WHERE (a < random());
- ^
DETAIL: User-defined or built-in mutable functions are not allowed.
-- fail - user-defined collations are not allowed
CREATE COLLATION user_collation FROM "C";
ALTER PUBLICATION testpub5 ADD TABLE testpub_rf_tbl1 WHERE (b < '2' COLLATE user_collation);
ERROR: invalid publication WHERE expression
-LINE 1: ...ICATION testpub5 ADD TABLE testpub_rf_tbl1 WHERE (b < '2' CO...
- ^
DETAIL: User-defined collations are not allowed.
-- ok - NULLIF is allowed
ALTER PUBLICATION testpub5 SET TABLE testpub_rf_tbl1 WHERE (NULLIF(1,2) = a);
@@ -471,22 +457,16 @@
CREATE TABLE rf_bug (id serial, description text, status rf_bug_status);
CREATE PUBLICATION testpub6 FOR TABLE rf_bug WHERE (status = 'open') WITH (publish = 'insert');
ERROR: invalid publication WHERE expression
-LINE 1: ...EATE PUBLICATION testpub6 FOR TABLE rf_bug WHERE (status = '...
- ^
DETAIL: User-defined types are not allowed.
DROP TABLE rf_bug;
DROP TYPE rf_bug_status;
-- fail - row filter expression is not simple
CREATE PUBLICATION testpub6 FOR TABLE testpub_rf_tbl1 WHERE (a IN (SELECT generate_series(1,5)));
ERROR: invalid publication WHERE expression
-LINE 1: ...ICATION testpub6 FOR TABLE testpub_rf_tbl1 WHERE (a IN (SELE...
- ^
DETAIL: Only columns, constants, built-in operators, built-in data types, built-in collations, and immutable built-in functions are allowed.
-- fail - system columns are not allowed
CREATE PUBLICATION testpub6 FOR TABLE testpub_rf_tbl1 WHERE ('(0,1)'::tid = ctid);
ERROR: invalid publication WHERE expression
-LINE 1: ...tpub6 FOR TABLE testpub_rf_tbl1 WHERE ('(0,1)'::tid = ctid);
- ^
DETAIL: System columns are not allowed.
-- ok - conditional expressions are allowed
ALTER PUBLICATION testpub5 SET TABLE testpub_rf_tbl5 WHERE (a IS DOCUMENT);
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/foreign_data.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/foreign_data.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/foreign_data.out 2024-02-22 13:04:49.013104000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/foreign_data.out 2024-02-22 13:08:26.870914000 +0000
@@ -103,8 +103,6 @@
ERROR: function invalid_fdw_handler must return type fdw_handler
CREATE FOREIGN DATA WRAPPER test_fdw HANDLER test_fdw_handler HANDLER invalid_fdw_handler; -- ERROR
ERROR: conflicting or redundant options
-LINE 1: ...GN DATA WRAPPER test_fdw HANDLER test_fdw_handler HANDLER in...
- ^
CREATE FOREIGN DATA WRAPPER test_fdw HANDLER test_fdw_handler;
DROP FOREIGN DATA WRAPPER test_fdw;
-- ALTER FOREIGN DATA WRAPPER
@@ -214,8 +212,6 @@
ERROR: function invalid_fdw_handler must return type fdw_handler
ALTER FOREIGN DATA WRAPPER foo HANDLER test_fdw_handler HANDLER anything; -- ERROR
ERROR: conflicting or redundant options
-LINE 1: ...FOREIGN DATA WRAPPER foo HANDLER test_fdw_handler HANDLER an...
- ^
ALTER FOREIGN DATA WRAPPER foo HANDLER test_fdw_handler;
WARNING: changing the foreign-data wrapper handler can change behavior of existing foreign tables
DROP FUNCTION invalid_fdw_handler();
@@ -703,8 +699,6 @@
c3 date
) SERVER s0 OPTIONS (delimiter ',', quote '"', "be quoted" 'value'); -- ERROR
ERROR: primary key constraints are not supported on foreign tables
-LINE 2: c1 integer OPTIONS ("param 1" 'val1') PRIMARY KEY,
- ^
CREATE TABLE ref_table (id integer PRIMARY KEY);
CREATE FOREIGN TABLE ft1 (
c1 integer OPTIONS ("param 1" 'val1') REFERENCES ref_table (id),
@@ -712,8 +706,6 @@
c3 date
) SERVER s0 OPTIONS (delimiter ',', quote '"', "be quoted" 'value'); -- ERROR
ERROR: foreign key constraints are not supported on foreign tables
-LINE 2: c1 integer OPTIONS ("param 1" 'val1') REFERENCES ref_table ...
- ^
DROP TABLE ref_table;
CREATE FOREIGN TABLE ft1 (
c1 integer OPTIONS ("param 1" 'val1') NOT NULL,
@@ -722,8 +714,6 @@
UNIQUE (c3)
) SERVER s0 OPTIONS (delimiter ',', quote '"', "be quoted" 'value'); -- ERROR
ERROR: unique constraints are not supported on foreign tables
-LINE 5: UNIQUE (c3)
- ^
CREATE FOREIGN TABLE ft1 (
c1 integer OPTIONS ("param 1" 'val1') NOT NULL,
c2 text OPTIONS (param2 'val2', param3 'val3') CHECK (c2 <> ''),
@@ -879,8 +869,6 @@
DROP TABLE use_ft1_column_type;
ALTER FOREIGN TABLE ft1 ADD PRIMARY KEY (c7); -- ERROR
ERROR: primary key constraints are not supported on foreign tables
-LINE 1: ALTER FOREIGN TABLE ft1 ADD PRIMARY KEY (c7);
- ^
ALTER FOREIGN TABLE ft1 ADD CONSTRAINT ft1_c9_check CHECK (c9 < 0) NOT VALID;
ALTER FOREIGN TABLE ft1 ALTER CONSTRAINT ft1_c9_check DEFERRABLE; -- ERROR
ERROR: ALTER action ALTER CONSTRAINT cannot be performed on relation "ft1"
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/window.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/window.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/window.out 2024-02-22 13:04:49.017660000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/window.out 2024-02-22 13:08:26.217321000 +0000
@@ -1993,8 +1993,6 @@
unique1, four
FROM tenk1, (values (1)) as unbounded(x) WHERE unique1 < 10;
ERROR: argument of ROWS must not contain variables
-LINE 1: SELECT sum(unique1) over (rows between unbounded.x preceding...
- ^
DROP FUNCTION unbounded;
-- Check overflow behavior for various integer sizes
select x, last_value(x) over (order by x::smallint range between current row and 2147450884 following)
@@ -2300,8 +2298,6 @@
window w as (order by f_numeric range between
1 preceding and 1.1::float8 following); -- currently unsupported
ERROR: RANGE with offset PRECEDING/FOLLOWING is not supported for column type numeric and offset type double precision
-LINE 4: 1 preceding and 1.1::float8 following);
- ^
HINT: Cast the offset value to an appropriate type.
select id, f_numeric, first_value(id) over w, last_value(id) over w
from numerics
@@ -2943,23 +2939,15 @@
select sum(salary) over (order by enroll_date, salary range between '1 year'::interval preceding and '2 years'::interval following
exclude ties), salary, enroll_date from empsalary;
ERROR: RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column
-LINE 1: select sum(salary) over (order by enroll_date, salary range ...
- ^
select sum(salary) over (range between '1 year'::interval preceding and '2 years'::interval following
exclude ties), salary, enroll_date from empsalary;
ERROR: RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column
-LINE 1: select sum(salary) over (range between '1 year'::interval pr...
- ^
select sum(salary) over (order by depname range between '1 year'::interval preceding and '2 years'::interval following
exclude ties), salary, enroll_date from empsalary;
ERROR: RANGE with offset PRECEDING/FOLLOWING is not supported for column type text
-LINE 1: ... sum(salary) over (order by depname range between '1 year'::...
- ^
select max(enroll_date) over (order by enroll_date range between 1 preceding and 2 following
exclude ties), salary, enroll_date from empsalary;
ERROR: RANGE with offset PRECEDING/FOLLOWING is not supported for column type date and offset type integer
-LINE 1: ...ll_date) over (order by enroll_date range between 1 precedin...
- ^
HINT: Cast the offset value to an appropriate type.
select max(enroll_date) over (order by salary range between -1 preceding and 2 following
exclude ties), salary, enroll_date from empsalary;
@@ -2970,8 +2958,6 @@
select max(enroll_date) over (order by salary range between '1 year'::interval preceding and '2 years'::interval following
exclude ties), salary, enroll_date from empsalary;
ERROR: RANGE with offset PRECEDING/FOLLOWING is not supported for column type integer and offset type interval
-LINE 1: ...(enroll_date) over (order by salary range between '1 year'::...
- ^
HINT: Cast the offset value to an appropriate type.
select max(enroll_date) over (order by enroll_date range between '1 year'::interval preceding and '-2 years'::interval following
exclude ties), salary, enroll_date from empsalary;
@@ -3531,8 +3517,6 @@
range between 1 preceding and 1 following)
from t1 where f1 = f2; -- error, must have order by
ERROR: RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column
-LINE 1: select f1, sum(f1) over (partition by f1
- ^
explain (costs off)
select f1, sum(f1) over (partition by f1 order by f2
range between 1 preceding and 1 following)
@@ -3577,8 +3561,6 @@
groups between 1 preceding and 1 following)
from t1 where f1 = f2; -- error, must have order by
ERROR: GROUPS mode requires an ORDER BY clause
-LINE 1: select f1, sum(f1) over (partition by f1
- ^
explain (costs off)
select f1, sum(f1) over (partition by f1 order by f2
groups between 1 preceding and 1 following)
@@ -3629,49 +3611,31 @@
-- can't order by another window function
SELECT rank() OVER (ORDER BY rank() OVER (ORDER BY random()));
ERROR: window functions are not allowed in window definitions
-LINE 1: SELECT rank() OVER (ORDER BY rank() OVER (ORDER BY random())...
- ^
-- some other errors
SELECT * FROM empsalary WHERE row_number() OVER (ORDER BY salary) < 10;
ERROR: window functions are not allowed in WHERE
-LINE 1: SELECT * FROM empsalary WHERE row_number() OVER (ORDER BY sa...
- ^
SELECT * FROM empsalary INNER JOIN tenk1 ON row_number() OVER (ORDER BY salary) < 10;
ERROR: window functions are not allowed in JOIN conditions
-LINE 1: SELECT * FROM empsalary INNER JOIN tenk1 ON row_number() OVE...
- ^
SELECT rank() OVER (ORDER BY 1), count(*) FROM empsalary GROUP BY 1;
ERROR: window functions are not allowed in GROUP BY
-LINE 1: SELECT rank() OVER (ORDER BY 1), count(*) FROM empsalary GRO...
- ^
SELECT * FROM rank() OVER (ORDER BY random());
ERROR: syntax error at or near "ORDER"
LINE 1: SELECT * FROM rank() OVER (ORDER BY random());
^
DELETE FROM empsalary WHERE (rank() OVER (ORDER BY random())) > 10;
ERROR: window functions are not allowed in WHERE
-LINE 1: DELETE FROM empsalary WHERE (rank() OVER (ORDER BY random())...
- ^
DELETE FROM empsalary RETURNING rank() OVER (ORDER BY random());
ERROR: window functions are not allowed in RETURNING
-LINE 1: DELETE FROM empsalary RETURNING rank() OVER (ORDER BY random...
- ^
SELECT count(*) OVER w FROM tenk1 WINDOW w AS (ORDER BY unique1), w AS (ORDER BY unique1);
ERROR: window "w" is already defined
-LINE 1: ...w FROM tenk1 WINDOW w AS (ORDER BY unique1), w AS (ORDER BY ...
- ^
SELECT rank() OVER (PARTITION BY four, ORDER BY ten) FROM tenk1;
ERROR: syntax error at or near "ORDER"
LINE 1: SELECT rank() OVER (PARTITION BY four, ORDER BY ten) FROM te...
^
SELECT count() OVER () FROM tenk1;
ERROR: count(*) must be used to call a parameterless aggregate function
-LINE 1: SELECT count() OVER () FROM tenk1;
- ^
SELECT generate_series(1, 100) OVER () FROM empsalary;
ERROR: OVER specified, but generate_series is not a window function nor an aggregate function
-LINE 1: SELECT generate_series(1, 100) OVER () FROM empsalary;
- ^
SELECT ntile(0) OVER (ORDER BY ten), ten, four FROM tenk1;
ERROR: argument of ntile must be greater than zero
SELECT nth_value(four, 0) OVER (ORDER BY ten), ten, four FROM tenk1;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/functional_deps.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/functional_deps.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/functional_deps.out 2024-02-22 13:04:49.013188000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/functional_deps.out 2024-02-22 13:08:25.931450000 +0000
@@ -27,22 +27,16 @@
FROM articles
GROUP BY title;
ERROR: column "articles.id" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT id, keywords, title, body, created
- ^
-- group by unique nullable (fail)
SELECT id, keywords, title, body, created
FROM articles
GROUP BY body;
ERROR: column "articles.id" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT id, keywords, title, body, created
- ^
-- group by something else (fail)
SELECT id, keywords, title, body, created
FROM articles
GROUP BY keywords;
ERROR: column "articles.id" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT id, keywords, title, body, created
- ^
-- multiple tables
-- group by primary key (OK)
SELECT a.id, a.keywords, a.title, a.body, a.created
@@ -59,8 +53,6 @@
WHERE a.id = aic.article_id AND aic.category_id in (14,62,70,53,138)
GROUP BY aic.article_id, aic.category_id;
ERROR: column "a.id" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT a.id, a.keywords, a.title, a.body, a.created
- ^
-- JOIN syntax
-- group by left table's primary key (OK)
SELECT a.id, a.keywords, a.title, a.body, a.created
@@ -77,8 +69,6 @@
WHERE aic.category_id in (14,62,70,53,138)
GROUP BY aic.article_id, aic.category_id;
ERROR: column "a.id" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT a.id, a.keywords, a.title, a.body, a.created
- ^
-- group by right table's (composite) primary key (OK)
SELECT aic.changed
FROM articles AS a JOIN articles_in_category AS aic ON a.id = aic.article_id
@@ -94,8 +84,6 @@
WHERE aic.category_id in (14,62,70,53,138)
GROUP BY aic.article_id;
ERROR: column "aic.changed" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT aic.changed
- ^
-- example from documentation
CREATE TEMP TABLE products (product_id int, name text, price numeric);
CREATE TEMP TABLE sales (product_id int, units int);
@@ -112,8 +100,6 @@
FROM products p LEFT JOIN sales s USING (product_id)
GROUP BY product_id;
ERROR: column "p.name" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 1: SELECT product_id, p.name, (sum(s.units) * p.price) AS sales
- ^
ALTER TABLE products ADD PRIMARY KEY (product_id);
-- OK now
SELECT product_id, p.name, (sum(s.units) * p.price) AS sales
@@ -168,8 +154,6 @@
FROM articles
GROUP BY body;
ERROR: column "articles.id" must appear in the GROUP BY clause or be used in an aggregate function
-LINE 2: SELECT id, keywords, title, body, created
- ^
-- OK
CREATE TEMP VIEW fdv1 AS
SELECT id, keywords, title, body, created
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/json.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/json.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/json.out 2024-02-22 13:04:49.014187000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/json.out 2024-02-22 13:08:28.299093000 +0000
@@ -7,8 +7,6 @@
SELECT $$''$$::json; -- ERROR, single quotes are not allowed
ERROR: invalid input syntax for type json
-LINE 1: SELECT $$''$$::json;
- ^
DETAIL: Token "'" is invalid.
CONTEXT: JSON data, line 1: '...
SELECT '"abc"'::json; -- OK
@@ -19,15 +17,11 @@
SELECT '"abc'::json; -- ERROR, quotes not closed
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"abc'::json;
- ^
DETAIL: Token ""abc" is invalid.
CONTEXT: JSON data, line 1: "abc
SELECT '"abc
def"'::json; -- ERROR, unescaped newline in string constant
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"abc
- ^
DETAIL: Character with value 0x0a must be escaped.
CONTEXT: JSON data, line 1: "abc
SELECT '"\n\"\\"'::json; -- OK, legal escapes
@@ -38,8 +32,6 @@
SELECT '"\v"'::json; -- ERROR, not a valid JSON escape
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\v"'::json;
- ^
DETAIL: Escape sequence "\v" is invalid.
CONTEXT: JSON data, line 1: "\v...
-- Check fast path for longer strings (at least 16 bytes long)
@@ -71,8 +63,6 @@
SELECT '01'::json; -- ERROR, not valid according to JSON spec
ERROR: invalid input syntax for type json
-LINE 1: SELECT '01'::json;
- ^
DETAIL: Token "01" is invalid.
CONTEXT: JSON data, line 1: 01
SELECT '0.1'::json; -- OK
@@ -101,20 +91,14 @@
SELECT '1f2'::json; -- ERROR
ERROR: invalid input syntax for type json
-LINE 1: SELECT '1f2'::json;
- ^
DETAIL: Token "1f2" is invalid.
CONTEXT: JSON data, line 1: 1f2
SELECT '0.x1'::json; -- ERROR
ERROR: invalid input syntax for type json
-LINE 1: SELECT '0.x1'::json;
- ^
DETAIL: Token "0.x1" is invalid.
CONTEXT: JSON data, line 1: 0.x1
SELECT '1.3ex100'::json; -- ERROR
ERROR: invalid input syntax for type json
-LINE 1: SELECT '1.3ex100'::json;
- ^
DETAIL: Token "1.3ex100" is invalid.
CONTEXT: JSON data, line 1: 1.3ex100
-- Arrays.
@@ -138,20 +122,14 @@
SELECT '[1,2,]'::json; -- ERROR, trailing comma
ERROR: invalid input syntax for type json
-LINE 1: SELECT '[1,2,]'::json;
- ^
DETAIL: Expected JSON value, but found "]".
CONTEXT: JSON data, line 1: [1,2,]
SELECT '[1,2'::json; -- ERROR, no closing bracket
ERROR: invalid input syntax for type json
-LINE 1: SELECT '[1,2'::json;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1: [1,2
SELECT '[1,[2]'::json; -- ERROR, no closing bracket
ERROR: invalid input syntax for type json
-LINE 1: SELECT '[1,[2]'::json;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1: [1,[2]
-- Objects.
@@ -163,8 +141,6 @@
SELECT '{"abc"}'::json; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc"}'::json;
- ^
DETAIL: Expected ":", but found "}".
CONTEXT: JSON data, line 1: {"abc"}
SELECT '{"abc":1}'::json; -- OK
@@ -175,26 +151,18 @@
SELECT '{1:"abc"}'::json; -- ERROR, keys must be strings
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{1:"abc"}'::json;
- ^
DETAIL: Expected string or "}", but found "1".
CONTEXT: JSON data, line 1: {1...
SELECT '{"abc",1}'::json; -- ERROR, wrong separator
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc",1}'::json;
- ^
DETAIL: Expected ":", but found ",".
CONTEXT: JSON data, line 1: {"abc",...
SELECT '{"abc"=1}'::json; -- ERROR, totally wrong separator
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc"=1}'::json;
- ^
DETAIL: Token "=" is invalid.
CONTEXT: JSON data, line 1: {"abc"=...
SELECT '{"abc"::1}'::json; -- ERROR, another wrong separator
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc"::1}'::json;
- ^
DETAIL: Expected JSON value, but found ":".
CONTEXT: JSON data, line 1: {"abc"::...
SELECT '{"abc":1,"def":2,"ghi":[3,4],"hij":{"klm":5,"nop":[6]}}'::json; -- OK
@@ -205,14 +173,10 @@
SELECT '{"abc":1:2}'::json; -- ERROR, colon in wrong spot
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc":1:2}'::json;
- ^
DETAIL: Expected "," or "}", but found ":".
CONTEXT: JSON data, line 1: {"abc":1:...
SELECT '{"abc":1,3}'::json; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc":1,3}'::json;
- ^
DETAIL: Expected string, but found "3".
CONTEXT: JSON data, line 1: {"abc":1,3...
-- Recursion.
@@ -251,38 +215,26 @@
SELECT 'true false'::json; -- ERROR, too many values
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'true false'::json;
- ^
DETAIL: Expected end of input, but found "false".
CONTEXT: JSON data, line 1: true false
SELECT 'true, false'::json; -- ERROR, too many values
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'true, false'::json;
- ^
DETAIL: Expected end of input, but found ",".
CONTEXT: JSON data, line 1: true,...
SELECT 'truf'::json; -- ERROR, not a keyword
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'truf'::json;
- ^
DETAIL: Token "truf" is invalid.
CONTEXT: JSON data, line 1: truf
SELECT 'trues'::json; -- ERROR, not a keyword
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'trues'::json;
- ^
DETAIL: Token "trues" is invalid.
CONTEXT: JSON data, line 1: trues
SELECT ''::json; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT ''::json;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1:
SELECT ' '::json; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT ' '::json;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1:
-- Multi-line JSON input to check ERROR reporting
@@ -306,8 +258,6 @@
"three":
true}'::json;
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{
- ^
DETAIL: Expected JSON value, but found ",".
CONTEXT: JSON data, line 3: "two":,...
SELECT '{
@@ -315,8 +265,6 @@
"two":"two",
"averyveryveryveryveryveryveryveryveryverylongfieldname":}'::json;
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{
- ^
DETAIL: Expected JSON value, but found "}".
CONTEXT: JSON data, line 4: ...yveryveryveryveryveryveryveryverylongfieldname":}
-- ERROR missing value for last field
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/jsonb.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonb.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/jsonb.out 2024-02-22 13:04:49.014290000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonb.out 2024-02-22 13:08:28.733139000 +0000
@@ -14,8 +14,6 @@
SELECT $$''$$::jsonb; -- ERROR, single quotes are not allowed
ERROR: invalid input syntax for type json
-LINE 1: SELECT $$''$$::jsonb;
- ^
DETAIL: Token "'" is invalid.
CONTEXT: JSON data, line 1: '...
SELECT '"abc"'::jsonb; -- OK
@@ -26,15 +24,11 @@
SELECT '"abc'::jsonb; -- ERROR, quotes not closed
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"abc'::jsonb;
- ^
DETAIL: Token ""abc" is invalid.
CONTEXT: JSON data, line 1: "abc
SELECT '"abc
def"'::jsonb; -- ERROR, unescaped newline in string constant
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"abc
- ^
DETAIL: Character with value 0x0a must be escaped.
CONTEXT: JSON data, line 1: "abc
SELECT '"\n\"\\"'::jsonb; -- OK, legal escapes
@@ -45,8 +39,6 @@
SELECT '"\v"'::jsonb; -- ERROR, not a valid JSON escape
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\v"'::jsonb;
- ^
DETAIL: Escape sequence "\v" is invalid.
CONTEXT: JSON data, line 1: "\v...
-- see json_encoding test for input with unicode escapes
@@ -65,8 +57,6 @@
SELECT '01'::jsonb; -- ERROR, not valid according to JSON spec
ERROR: invalid input syntax for type json
-LINE 1: SELECT '01'::jsonb;
- ^
DETAIL: Token "01" is invalid.
CONTEXT: JSON data, line 1: 01
SELECT '0.1'::jsonb; -- OK
@@ -95,20 +85,14 @@
SELECT '1f2'::jsonb; -- ERROR
ERROR: invalid input syntax for type json
-LINE 1: SELECT '1f2'::jsonb;
- ^
DETAIL: Token "1f2" is invalid.
CONTEXT: JSON data, line 1: 1f2
SELECT '0.x1'::jsonb; -- ERROR
ERROR: invalid input syntax for type json
-LINE 1: SELECT '0.x1'::jsonb;
- ^
DETAIL: Token "0.x1" is invalid.
CONTEXT: JSON data, line 1: 0.x1
SELECT '1.3ex100'::jsonb; -- ERROR
ERROR: invalid input syntax for type json
-LINE 1: SELECT '1.3ex100'::jsonb;
- ^
DETAIL: Token "1.3ex100" is invalid.
CONTEXT: JSON data, line 1: 1.3ex100
-- Arrays.
@@ -132,20 +116,14 @@
SELECT '[1,2,]'::jsonb; -- ERROR, trailing comma
ERROR: invalid input syntax for type json
-LINE 1: SELECT '[1,2,]'::jsonb;
- ^
DETAIL: Expected JSON value, but found "]".
CONTEXT: JSON data, line 1: [1,2,]
SELECT '[1,2'::jsonb; -- ERROR, no closing bracket
ERROR: invalid input syntax for type json
-LINE 1: SELECT '[1,2'::jsonb;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1: [1,2
SELECT '[1,[2]'::jsonb; -- ERROR, no closing bracket
ERROR: invalid input syntax for type json
-LINE 1: SELECT '[1,[2]'::jsonb;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1: [1,[2]
-- Objects.
@@ -157,8 +135,6 @@
SELECT '{"abc"}'::jsonb; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc"}'::jsonb;
- ^
DETAIL: Expected ":", but found "}".
CONTEXT: JSON data, line 1: {"abc"}
SELECT '{"abc":1}'::jsonb; -- OK
@@ -169,26 +145,18 @@
SELECT '{1:"abc"}'::jsonb; -- ERROR, keys must be strings
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{1:"abc"}'::jsonb;
- ^
DETAIL: Expected string or "}", but found "1".
CONTEXT: JSON data, line 1: {1...
SELECT '{"abc",1}'::jsonb; -- ERROR, wrong separator
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc",1}'::jsonb;
- ^
DETAIL: Expected ":", but found ",".
CONTEXT: JSON data, line 1: {"abc",...
SELECT '{"abc"=1}'::jsonb; -- ERROR, totally wrong separator
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc"=1}'::jsonb;
- ^
DETAIL: Token "=" is invalid.
CONTEXT: JSON data, line 1: {"abc"=...
SELECT '{"abc"::1}'::jsonb; -- ERROR, another wrong separator
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc"::1}'::jsonb;
- ^
DETAIL: Expected JSON value, but found ":".
CONTEXT: JSON data, line 1: {"abc"::...
SELECT '{"abc":1,"def":2,"ghi":[3,4],"hij":{"klm":5,"nop":[6]}}'::jsonb; -- OK
@@ -199,14 +167,10 @@
SELECT '{"abc":1:2}'::jsonb; -- ERROR, colon in wrong spot
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc":1:2}'::jsonb;
- ^
DETAIL: Expected "," or "}", but found ":".
CONTEXT: JSON data, line 1: {"abc":1:...
SELECT '{"abc":1,3}'::jsonb; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{"abc":1,3}'::jsonb;
- ^
DETAIL: Expected string, but found "3".
CONTEXT: JSON data, line 1: {"abc":1,3...
-- Recursion.
@@ -245,38 +209,26 @@
SELECT 'true false'::jsonb; -- ERROR, too many values
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'true false'::jsonb;
- ^
DETAIL: Expected end of input, but found "false".
CONTEXT: JSON data, line 1: true false
SELECT 'true, false'::jsonb; -- ERROR, too many values
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'true, false'::jsonb;
- ^
DETAIL: Expected end of input, but found ",".
CONTEXT: JSON data, line 1: true,...
SELECT 'truf'::jsonb; -- ERROR, not a keyword
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'truf'::jsonb;
- ^
DETAIL: Token "truf" is invalid.
CONTEXT: JSON data, line 1: truf
SELECT 'trues'::jsonb; -- ERROR, not a keyword
ERROR: invalid input syntax for type json
-LINE 1: SELECT 'trues'::jsonb;
- ^
DETAIL: Token "trues" is invalid.
CONTEXT: JSON data, line 1: trues
SELECT ''::jsonb; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT ''::jsonb;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1:
SELECT ' '::jsonb; -- ERROR, no value
ERROR: invalid input syntax for type json
-LINE 1: SELECT ' '::jsonb;
- ^
DETAIL: The input string ended unexpectedly.
CONTEXT: JSON data, line 1:
-- Multi-line JSON input to check ERROR reporting
@@ -296,8 +248,6 @@
"three":
true}'::jsonb;
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{
- ^
DETAIL: Expected JSON value, but found ",".
CONTEXT: JSON data, line 3: "two":,...
SELECT '{
@@ -305,8 +255,6 @@
"two":"two",
"averyveryveryveryveryveryveryveryveryverylongfieldname":}'::jsonb;
ERROR: invalid input syntax for type json
-LINE 1: SELECT '{
- ^
DETAIL: Expected JSON value, but found "}".
CONTEXT: JSON data, line 4: ...yveryveryveryveryveryveryveryverylongfieldname":}
-- ERROR missing value for last field
@@ -4977,8 +4925,6 @@
select ('[1, "2", null]'::jsonb)[1.0];
ERROR: subscript type numeric is not supported
-LINE 1: select ('[1, "2", null]'::jsonb)[1.0];
- ^
HINT: jsonb subscript must be coercible to either integer or text.
select ('[1, "2", null]'::jsonb)[2];
jsonb
@@ -5067,20 +5013,12 @@
-- slices are not supported
select ('{"a": 1}'::jsonb)['a':'b'];
ERROR: jsonb subscript does not support slices
-LINE 1: select ('{"a": 1}'::jsonb)['a':'b'];
- ^
select ('[1, "2", null]'::jsonb)[1:2];
ERROR: jsonb subscript does not support slices
-LINE 1: select ('[1, "2", null]'::jsonb)[1:2];
- ^
select ('[1, "2", null]'::jsonb)[:2];
ERROR: jsonb subscript does not support slices
-LINE 1: select ('[1, "2", null]'::jsonb)[:2];
- ^
select ('[1, "2", null]'::jsonb)[1:];
ERROR: jsonb subscript does not support slices
-LINE 1: select ('[1, "2", null]'::jsonb)[1:];
- ^
select ('[1, "2", null]'::jsonb)[:];
ERROR: jsonb subscript does not support slices
create TEMP TABLE test_jsonb_subscript (
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/json_encoding.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/json_encoding.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/json_encoding.out 2024-02-22 13:04:49.014200000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/json_encoding.out 2024-02-22 13:08:28.168675000 +0000
@@ -18,20 +18,14 @@
-- basic unicode input
SELECT '"\u"'::json; -- ERROR, incomplete escape
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\u"'::json;
- ^
DETAIL: "\u" must be followed by four hexadecimal digits.
CONTEXT: JSON data, line 1: "\u"
SELECT '"\u00"'::json; -- ERROR, incomplete escape
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\u00"'::json;
- ^
DETAIL: "\u" must be followed by four hexadecimal digits.
CONTEXT: JSON data, line 1: "\u00"
SELECT '"\u000g"'::json; -- ERROR, g is not a hex digit
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\u000g"'::json;
- ^
DETAIL: "\u" must be followed by four hexadecimal digits.
CONTEXT: JSON data, line 1: "\u000g...
SELECT '"\u0000"'::json; -- OK, legal escape
@@ -132,20 +126,14 @@
-- basic unicode input
SELECT '"\u"'::jsonb; -- ERROR, incomplete escape
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\u"'::jsonb;
- ^
DETAIL: "\u" must be followed by four hexadecimal digits.
CONTEXT: JSON data, line 1: "\u"
SELECT '"\u00"'::jsonb; -- ERROR, incomplete escape
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\u00"'::jsonb;
- ^
DETAIL: "\u" must be followed by four hexadecimal digits.
CONTEXT: JSON data, line 1: "\u00"
SELECT '"\u000g"'::jsonb; -- ERROR, g is not a hex digit
ERROR: invalid input syntax for type json
-LINE 1: SELECT '"\u000g"'::jsonb;
- ^
DETAIL: "\u" must be followed by four hexadecimal digits.
CONTEXT: JSON data, line 1: "\u000g...
SELECT '"\u0045"'::jsonb; -- OK, legal escape
@@ -156,8 +144,6 @@
SELECT '"\u0000"'::jsonb; -- ERROR, we don't support U+0000
ERROR: unsupported Unicode escape sequence
-LINE 1: SELECT '"\u0000"'::jsonb;
- ^
DETAIL: \u0000 cannot be converted to text.
CONTEXT: JSON data, line 1: "\u0000...
-- use octet_length here so we don't get an odd unicode char in the
@@ -177,26 +163,18 @@
SELECT jsonb '{ "a": "\ud83d\ud83d" }' -> 'a'; -- 2 high surrogates in a row
ERROR: invalid input syntax for type json
-LINE 1: SELECT jsonb '{ "a": "\ud83d\ud83d" }' -> 'a';
- ^
DETAIL: Unicode high surrogate must not follow a high surrogate.
CONTEXT: JSON data, line 1: { "a": "\ud83d\ud83d...
SELECT jsonb '{ "a": "\ude04\ud83d" }' -> 'a'; -- surrogates in wrong order
ERROR: invalid input syntax for type json
-LINE 1: SELECT jsonb '{ "a": "\ude04\ud83d" }' -> 'a';
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
CONTEXT: JSON data, line 1: { "a": "\ude04...
SELECT jsonb '{ "a": "\ud83dX" }' -> 'a'; -- orphan high surrogate
ERROR: invalid input syntax for type json
-LINE 1: SELECT jsonb '{ "a": "\ud83dX" }' -> 'a';
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
CONTEXT: JSON data, line 1: { "a": "\ud83dX...
SELECT jsonb '{ "a": "\ude04X" }' -> 'a'; -- orphan low surrogate
ERROR: invalid input syntax for type json
-LINE 1: SELECT jsonb '{ "a": "\ude04X" }' -> 'a';
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
CONTEXT: JSON data, line 1: { "a": "\ude04...
-- handling of simple unicode escapes
@@ -220,8 +198,6 @@
SELECT jsonb '{ "a": "null \u0000 escape" }' as fails;
ERROR: unsupported Unicode escape sequence
-LINE 1: SELECT jsonb '{ "a": "null \u0000 escape" }' as fails;
- ^
DETAIL: \u0000 cannot be converted to text.
CONTEXT: JSON data, line 1: { "a": "null \u0000...
SELECT jsonb '{ "a": "null \\u0000 escape" }' as not_an_escape;
@@ -250,8 +226,6 @@
SELECT jsonb '{ "a": "null \u0000 escape" }' ->> 'a' as fails;
ERROR: unsupported Unicode escape sequence
-LINE 1: SELECT jsonb '{ "a": "null \u0000 escape" }' ->> 'a' as fai...
- ^
DETAIL: \u0000 cannot be converted to text.
CONTEXT: JSON data, line 1: { "a": "null \u0000...
SELECT jsonb '{ "a": "null \\u0000 escape" }' ->> 'a' as not_an_escape;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/jsonpath.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonpath.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/jsonpath.out 2024-02-22 13:04:49.014378000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonpath.out 2024-02-22 13:08:28.194045000 +0000
@@ -1,8 +1,6 @@
--jsonpath io
select ''::jsonpath;
ERROR: invalid input syntax for type jsonpath: ""
-LINE 1: select ''::jsonpath;
- ^
select '$'::jsonpath;
jsonpath
----------
@@ -317,8 +315,6 @@
select 'last'::jsonpath;
ERROR: LAST is allowed only in array subscripts
-LINE 1: select 'last'::jsonpath;
- ^
select '"last"'::jsonpath;
jsonpath
----------
@@ -333,8 +329,6 @@
select '$ ? (last > 0)'::jsonpath;
ERROR: LAST is allowed only in array subscripts
-LINE 1: select '$ ? (last > 0)'::jsonpath;
- ^
select '$[last]'::jsonpath;
jsonpath
----------
@@ -355,8 +349,6 @@
select '1.type()'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1.t" of jsonpath input
-LINE 1: select '1.type()'::jsonpath;
- ^
select '(1).type()'::jsonpath;
jsonpath
------------
@@ -497,8 +489,6 @@
select '$ ? (@ like_regex "(invalid pattern")'::jsonpath;
ERROR: invalid regular expression: parentheses () not balanced
-LINE 1: select '$ ? (@ like_regex "(invalid pattern")'::jsonpath;
- ^
select '$ ? (@ like_regex "pattern")'::jsonpath;
jsonpath
----------------------------
@@ -531,8 +521,6 @@
select '$ ? (@ like_regex "pattern" flag "xsms")'::jsonpath;
ERROR: XQuery "x" flag (expanded regular expressions) is not implemented
-LINE 1: select '$ ? (@ like_regex "pattern" flag "xsms")'::jsonpath;
- ^
select '$ ? (@ like_regex "pattern" flag "q")'::jsonpath;
jsonpath
-------------------------------------
@@ -553,8 +541,6 @@
select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '$ ? (@ like_regex "pattern" flag "a")'::jsonpath;
- ^
DETAIL: Unrecognized flag character "a" in LIKE_REGEX predicate.
select '$ < 1'::jsonpath;
jsonpath
@@ -570,8 +556,6 @@
select '@ + 1'::jsonpath;
ERROR: @ is not allowed in root expressions
-LINE 1: select '@ + 1'::jsonpath;
- ^
select '($).a.b'::jsonpath;
jsonpath
-----------
@@ -923,12 +907,8 @@
select '00'::jsonpath;
ERROR: trailing junk after numeric literal at or near "00" of jsonpath input
-LINE 1: select '00'::jsonpath;
- ^
select '0755'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0755'::jsonpath;
- ^
select '0.0'::jsonpath;
jsonpath
----------
@@ -1009,24 +989,14 @@
select '1a'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1a" of jsonpath input
-LINE 1: select '1a'::jsonpath;
- ^
select '1e'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1e" of jsonpath input
-LINE 1: select '1e'::jsonpath;
- ^
select '1.e'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1.e" of jsonpath input
-LINE 1: select '1.e'::jsonpath;
- ^
select '1.2a'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1.2a" of jsonpath input
-LINE 1: select '1.2a'::jsonpath;
- ^
select '1.2e'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1.2e" of jsonpath input
-LINE 1: select '1.2e'::jsonpath;
- ^
select '1.2.e'::jsonpath;
jsonpath
-----------
@@ -1071,8 +1041,6 @@
select '1.2e3a'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1.2e3a" of jsonpath input
-LINE 1: select '1.2e3a'::jsonpath;
- ^
select '1.2.e3'::jsonpath;
jsonpath
------------
@@ -1137,40 +1105,22 @@
-- error cases
select '0b'::jsonpath;
ERROR: trailing junk after numeric literal at or near "0b" of jsonpath input
-LINE 1: select '0b'::jsonpath;
- ^
select '1b'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1b" of jsonpath input
-LINE 1: select '1b'::jsonpath;
- ^
select '0b0x'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0b0x'::jsonpath;
- ^
select '0o'::jsonpath;
ERROR: trailing junk after numeric literal at or near "0o" of jsonpath input
-LINE 1: select '0o'::jsonpath;
- ^
select '1o'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1o" of jsonpath input
-LINE 1: select '1o'::jsonpath;
- ^
select '0o0x'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0o0x'::jsonpath;
- ^
select '0x'::jsonpath;
ERROR: trailing junk after numeric literal at or near "0x" of jsonpath input
-LINE 1: select '0x'::jsonpath;
- ^
select '1x'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1x" of jsonpath input
-LINE 1: select '1x'::jsonpath;
- ^
select '0x0y'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0x0y'::jsonpath;
- ^
-- underscores
select '1_000_000'::jsonpath;
jsonpath
@@ -1229,49 +1179,27 @@
-- error cases
select '_100'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '_100'::jsonpath;
- ^
select '100_'::jsonpath;
ERROR: trailing junk after numeric literal at or near "100_" of jsonpath input
-LINE 1: select '100_'::jsonpath;
- ^
select '100__000'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '100__000'::jsonpath;
- ^
select '_1_000.5'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '_1_000.5'::jsonpath;
- ^
select '1_000_.5'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1_000_" of jsonpath input
-LINE 1: select '1_000_.5'::jsonpath;
- ^
select '1_000._5'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1_000._" of jsonpath input
-LINE 1: select '1_000._5'::jsonpath;
- ^
select '1_000.5_'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1_000.5_" of jsonpath input
-LINE 1: select '1_000.5_'::jsonpath;
- ^
select '1_000.5e_1'::jsonpath;
ERROR: trailing junk after numeric literal at or near "1_000.5e" of jsonpath input
-LINE 1: select '1_000.5e_1'::jsonpath;
- ^
-- underscore after prefix not allowed in JavaScript (but allowed in SQL)
select '0b_10_0101'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0b_10_0101'::jsonpath;
- ^
select '0o_273'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0o_273'::jsonpath;
- ^
select '0x_42F'::jsonpath;
ERROR: syntax error at end of jsonpath input
-LINE 1: select '0x_42F'::jsonpath;
- ^
-- test non-error-throwing API
SELECT str as jsonpath,
pg_input_is_valid(str,'jsonpath') as ok,
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/jsonpath_encoding.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonpath_encoding.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/jsonpath_encoding.out 2024-02-22 13:04:49.014389000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonpath_encoding.out 2024-02-22 13:08:28.163976000 +0000
@@ -18,20 +18,12 @@
-- basic unicode input
SELECT '"\u"'::jsonpath; -- ERROR, incomplete escape
ERROR: invalid Unicode escape sequence at or near "\u" of jsonpath input
-LINE 1: SELECT '"\u"'::jsonpath;
- ^
SELECT '"\u00"'::jsonpath; -- ERROR, incomplete escape
ERROR: invalid Unicode escape sequence at or near "\u00" of jsonpath input
-LINE 1: SELECT '"\u00"'::jsonpath;
- ^
SELECT '"\u000g"'::jsonpath; -- ERROR, g is not a hex digit
ERROR: invalid Unicode escape sequence at or near "\u000" of jsonpath input
-LINE 1: SELECT '"\u000g"'::jsonpath;
- ^
SELECT '"\u0000"'::jsonpath; -- OK, legal escape
ERROR: unsupported Unicode escape sequence
-LINE 1: SELECT '"\u0000"'::jsonpath;
- ^
DETAIL: \u0000 cannot be converted to text.
SELECT '"\uaBcD"'::jsonpath; -- OK, uppercase and lower case both OK
jsonpath
@@ -48,23 +40,15 @@
select '"\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '"\ud83d\ud83d"'::jsonpath;
- ^
DETAIL: Unicode high surrogate must not follow a high surrogate.
select '"\ude04\ud83d"'::jsonpath; -- surrogates in wrong order
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '"\ude04\ud83d"'::jsonpath;
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
select '"\ud83dX"'::jsonpath; -- orphan high surrogate
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '"\ud83dX"'::jsonpath;
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
select '"\ude04X"'::jsonpath; -- orphan low surrogate
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '"\ude04X"'::jsonpath;
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
--handling of simple unicode escapes
select '"the Copyright \u00a9 sign"'::jsonpath as correct_in_utf8;
@@ -87,8 +71,6 @@
select '"null \u0000 escape"'::jsonpath as not_unescaped;
ERROR: unsupported Unicode escape sequence
-LINE 1: select '"null \u0000 escape"'::jsonpath as not_unescaped;
- ^
DETAIL: \u0000 cannot be converted to text.
select '"null \\u0000 escape"'::jsonpath as not_an_escape;
not_an_escape
@@ -100,20 +82,12 @@
-- basic unicode input
SELECT '$."\u"'::jsonpath; -- ERROR, incomplete escape
ERROR: invalid Unicode escape sequence at or near "\u" of jsonpath input
-LINE 1: SELECT '$."\u"'::jsonpath;
- ^
SELECT '$."\u00"'::jsonpath; -- ERROR, incomplete escape
ERROR: invalid Unicode escape sequence at or near "\u00" of jsonpath input
-LINE 1: SELECT '$."\u00"'::jsonpath;
- ^
SELECT '$."\u000g"'::jsonpath; -- ERROR, g is not a hex digit
ERROR: invalid Unicode escape sequence at or near "\u000" of jsonpath input
-LINE 1: SELECT '$."\u000g"'::jsonpath;
- ^
SELECT '$."\u0000"'::jsonpath; -- OK, legal escape
ERROR: unsupported Unicode escape sequence
-LINE 1: SELECT '$."\u0000"'::jsonpath;
- ^
DETAIL: \u0000 cannot be converted to text.
SELECT '$."\uaBcD"'::jsonpath; -- OK, uppercase and lower case both OK
jsonpath
@@ -130,23 +104,15 @@
select '$."\ud83d\ud83d"'::jsonpath; -- 2 high surrogates in a row
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '$."\ud83d\ud83d"'::jsonpath;
- ^
DETAIL: Unicode high surrogate must not follow a high surrogate.
select '$."\ude04\ud83d"'::jsonpath; -- surrogates in wrong order
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '$."\ude04\ud83d"'::jsonpath;
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
select '$."\ud83dX"'::jsonpath; -- orphan high surrogate
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '$."\ud83dX"'::jsonpath;
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
select '$."\ude04X"'::jsonpath; -- orphan low surrogate
ERROR: invalid input syntax for type jsonpath
-LINE 1: select '$."\ude04X"'::jsonpath;
- ^
DETAIL: Unicode low surrogate must follow a high surrogate.
--handling of simple unicode escapes
select '$."the Copyright \u00a9 sign"'::jsonpath as correct_in_utf8;
@@ -169,8 +135,6 @@
select '$."null \u0000 escape"'::jsonpath as not_unescaped;
ERROR: unsupported Unicode escape sequence
-LINE 1: select '$."null \u0000 escape"'::jsonpath as not_unescaped;
- ^
DETAIL: \u0000 cannot be converted to text.
select '$."null \\u0000 escape"'::jsonpath as not_an_escape;
not_an_escape
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/jsonb_jsonpath.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonb_jsonpath.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/jsonb_jsonpath.out 2024-02-22 13:04:49.014357000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/jsonb_jsonpath.out 2024-02-22 13:08:28.329416000 +0000
@@ -2098,8 +2098,6 @@
select jsonb_path_query('"2023-08-15"', '$.date(2)');
ERROR: syntax error at or near "2" of jsonpath input
-LINE 1: select jsonb_path_query('"2023-08-15"', '$.date(2)');
- ^
-- Test .decimal()
select jsonb_path_query('null', '$.decimal()');
ERROR: jsonpath item method .decimal() can only be applied to a string or numeric value
@@ -2652,12 +2650,8 @@
select jsonb_path_query('"12:34:56.789"', '$.time(-1)');
ERROR: syntax error at or near "-" of jsonpath input
-LINE 1: select jsonb_path_query('"12:34:56.789"', '$.time(-1)');
- ^
select jsonb_path_query('"12:34:56.789"', '$.time(2.0)');
ERROR: syntax error at or near "2.0" of jsonpath input
-LINE 1: select jsonb_path_query('"12:34:56.789"', '$.time(2.0)');
- ^
select jsonb_path_query('"12:34:56.789"', '$.time(12345678901)');
ERROR: time precision of jsonpath item method .time() is out of range for type integer
select jsonb_path_query('"12:34:56.789"', '$.time(0)');
@@ -2734,12 +2728,8 @@
ERROR: time_tz format is not recognized: "2023-08-15 12:34:56"
select jsonb_path_query('"12:34:56.789 +05:30"', '$.time_tz(-1)');
ERROR: syntax error at or near "-" of jsonpath input
-LINE 1: select jsonb_path_query('"12:34:56.789 +05:30"', '$.time_tz(...
- ^
select jsonb_path_query('"12:34:56.789 +05:30"', '$.time_tz(2.0)');
ERROR: syntax error at or near "2.0" of jsonpath input
-LINE 1: select jsonb_path_query('"12:34:56.789 +05:30"', '$.time_tz(...
- ^
select jsonb_path_query('"12:34:56.789 +05:30"', '$.time_tz(12345678901)');
ERROR: time precision of jsonpath item method .time_tz() is out of range for type integer
select jsonb_path_query('"12:34:56.789 +05:30"', '$.time_tz(0)');
@@ -2822,12 +2812,8 @@
ERROR: timestamp format is not recognized: "12:34:56 +05:30"
select jsonb_path_query('"2023-08-15 12:34:56.789"', '$.timestamp(-1)');
ERROR: syntax error at or near "-" of jsonpath input
-LINE 1: ...ect jsonb_path_query('"2023-08-15 12:34:56.789"', '$.timesta...
- ^
select jsonb_path_query('"2023-08-15 12:34:56.789"', '$.timestamp(2.0)');
ERROR: syntax error at or near "2.0" of jsonpath input
-LINE 1: ...ect jsonb_path_query('"2023-08-15 12:34:56.789"', '$.timesta...
- ^
select jsonb_path_query('"2023-08-15 12:34:56.789"', '$.timestamp(12345678901)');
ERROR: time precision of jsonpath item method .timestamp() is out of range for type integer
select jsonb_path_query('"2023-08-15 12:34:56.789"', '$.timestamp(0)');
@@ -2913,12 +2899,8 @@
ERROR: timestamp_tz format is not recognized: "12:34:56 +05:30"
select jsonb_path_query('"2023-08-15 12:34:56.789 +05:30"', '$.timestamp_tz(-1)');
ERROR: syntax error at or near "-" of jsonpath input
-LINE 1: ...nb_path_query('"2023-08-15 12:34:56.789 +05:30"', '$.timesta...
- ^
select jsonb_path_query('"2023-08-15 12:34:56.789 +05:30"', '$.timestamp_tz(2.0)');
ERROR: syntax error at or near "2.0" of jsonpath input
-LINE 1: ...nb_path_query('"2023-08-15 12:34:56.789 +05:30"', '$.timesta...
- ^
select jsonb_path_query('"2023-08-15 12:34:56.789 +05:30"', '$.timestamp_tz(12345678901)');
ERROR: time precision of jsonpath item method .timestamp_tz() is out of range for type integer
select jsonb_path_query('"2023-08-15 12:34:56.789 +05:30"', '$.timestamp_tz(0)');
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/sqljson.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/sqljson.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/sqljson.out 2024-02-22 13:04:49.016608000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/sqljson.out 2024-02-22 13:08:28.262411000 +0000
@@ -23,8 +23,6 @@
SELECT JSON('{ "a" : 1 } ' FORMAT JSON ENCODING UTF8);
ERROR: JSON ENCODING clause is only allowed for bytea input type
-LINE 1: SELECT JSON('{ "a" : 1 } ' FORMAT JSON ENCODING UTF8);
- ^
SELECT JSON('{ "a" : 1 } '::bytea FORMAT JSON ENCODING UTF8);
json
--------------
@@ -51,12 +49,8 @@
SELECT JSON(' 1 '::json WITH UNIQUE KEYS);
ERROR: cannot use non-string types with WITH UNIQUE KEYS clause
-LINE 1: SELECT JSON(' 1 '::json WITH UNIQUE KEYS);
- ^
SELECT JSON(123);
ERROR: cannot cast type integer to json
-LINE 1: SELECT JSON(123);
- ^
SELECT JSON('{"a": 1, "a": 2}');
json
------------------
@@ -333,8 +327,6 @@
SELECT JSON_OBJECT(RETURNING text FORMAT JSON ENCODING UTF8);
ERROR: cannot set JSON encoding for non-bytea output types
-LINE 1: SELECT JSON_OBJECT(RETURNING text FORMAT JSON ENCODING UTF8)...
- ^
SELECT JSON_OBJECT(RETURNING text FORMAT JSON ENCODING INVALID_ENCODING);
ERROR: unrecognized JSON encoding: invalid_encoding
SELECT JSON_OBJECT(RETURNING bytea);
@@ -357,22 +349,14 @@
SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF16);
ERROR: unsupported JSON encoding
-LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF1...
- ^
HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF32);
ERROR: unsupported JSON encoding
-LINE 1: SELECT JSON_OBJECT(RETURNING bytea FORMAT JSON ENCODING UTF3...
- ^
HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
ERROR: cannot use non-string types with explicit FORMAT JSON clause
-LINE 1: SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON);
- ^
SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON ENCODING UTF8);
ERROR: JSON ENCODING clause is only allowed for bytea input type
-LINE 1: SELECT JSON_OBJECT('foo': NULL::int FORMAT JSON ENCODING UTF...
- ^
SELECT JSON_OBJECT('foo': NULL::json FORMAT JSON);
json_object
----------------
@@ -381,8 +365,6 @@
SELECT JSON_OBJECT('foo': NULL::json FORMAT JSON ENCODING UTF8);
ERROR: JSON ENCODING clause is only allowed for bytea input type
-LINE 1: SELECT JSON_OBJECT('foo': NULL::json FORMAT JSON ENCODING UT...
- ^
SELECT JSON_OBJECT('foo': NULL::jsonb FORMAT JSON);
json_object
---------------
@@ -391,8 +373,6 @@
SELECT JSON_OBJECT('foo': NULL::jsonb FORMAT JSON ENCODING UTF8);
ERROR: JSON ENCODING clause is only allowed for bytea input type
-LINE 1: SELECT JSON_OBJECT('foo': NULL::jsonb FORMAT JSON ENCODING U...
- ^
SELECT JSON_OBJECT(NULL: 1);
ERROR: null value not allowed for object key
SELECT JSON_OBJECT('a': 2 + 3);
@@ -614,8 +594,6 @@
SELECT JSON_ARRAY(RETURNING text FORMAT JSON ENCODING UTF8);
ERROR: cannot set JSON encoding for non-bytea output types
-LINE 1: SELECT JSON_ARRAY(RETURNING text FORMAT JSON ENCODING UTF8);
- ^
SELECT JSON_ARRAY(RETURNING text FORMAT JSON ENCODING INVALID_ENCODING);
ERROR: unrecognized JSON encoding: invalid_encoding
SELECT JSON_ARRAY(RETURNING bytea);
@@ -638,13 +616,9 @@
SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16);
ERROR: unsupported JSON encoding
-LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF16...
- ^
HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32);
ERROR: unsupported JSON encoding
-LINE 1: SELECT JSON_ARRAY(RETURNING bytea FORMAT JSON ENCODING UTF32...
- ^
HINT: Only UTF8 JSON encoding is supported.
SELECT JSON_ARRAY('aaa', 111, true, array[1,2,3], NULL, json '{"a": [1]}', jsonb '["a",3]');
json_array
@@ -736,16 +710,10 @@
-- Should fail
SELECT JSON_ARRAY(SELECT FROM (VALUES (1)) foo(i));
ERROR: subquery must return only one column
-LINE 1: SELECT JSON_ARRAY(SELECT FROM (VALUES (1)) foo(i));
- ^
SELECT JSON_ARRAY(SELECT i, i FROM (VALUES (1)) foo(i));
ERROR: subquery must return only one column
-LINE 1: SELECT JSON_ARRAY(SELECT i, i FROM (VALUES (1)) foo(i));
- ^
SELECT JSON_ARRAY(SELECT * FROM (VALUES (1, 2)) foo(i, j));
ERROR: subquery must return only one column
-LINE 1: SELECT JSON_ARRAY(SELECT * FROM (VALUES (1, 2)) foo(i, j));
- ^
-- JSON_ARRAYAGG()
SELECT JSON_ARRAYAGG(i) IS NULL,
JSON_ARRAYAGG(i RETURNING jsonb) IS NULL
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/plpgsql.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/plpgsql.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/plpgsql.out 2024-02-22 13:04:49.015467000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/plpgsql.out 2024-02-22 13:08:30.531509000 +0000
@@ -1846,8 +1846,6 @@
select f1(int4range(42, 49), 11, 4.5) as fail; -- range type doesn't fit
ERROR: function f1(int4range, integer, numeric) does not exist
-LINE 1: select f1(int4range(42, 49), 11, 4.5) as fail;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function f1(x anycompatiblerange, y anycompatible, z anycompatible);
-- fail, can't infer type:
@@ -1900,8 +1898,6 @@
select x, pg_typeof(x), y, pg_typeof(y)
from f1(11, array[1, 2.2], 42, 34.5); -- fail
ERROR: function f1(integer, numeric[], integer, numeric) does not exist
-LINE 2: from f1(11, array[1, 2.2], 42, 34.5);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function f1(a anyelement, b anyarray,
c anycompatible, d anycompatible);
@@ -3071,8 +3067,6 @@
^
select shadowtest(1);
ERROR: function shadowtest(integer) does not exist
-LINE 1: select shadowtest(1);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
reset plpgsql.extra_errors;
reset plpgsql.extra_warnings;
@@ -4327,8 +4321,6 @@
PL/pgSQL function rttest() line 3 at RETURN QUERY
select * from no_such_table;
ERROR: relation "no_such_table" does not exist
-LINE 1: select * from no_such_table;
- ^
drop function rttest();
-- Test for proper cleanup at subtransaction exit. This example
-- exposed a bug in PG 8.2.
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/copy2.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/copy2.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/copy2.out 2024-02-22 13:04:49.012264000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/copy2.out 2024-02-22 13:08:29.611915000 +0000
@@ -31,56 +31,30 @@
-- redundant options
COPY x from stdin (format CSV, FORMAT CSV);
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (format CSV, FORMAT CSV);
- ^
COPY x from stdin (freeze off, freeze on);
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (freeze off, freeze on);
- ^
COPY x from stdin (delimiter ',', delimiter ',');
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (delimiter ',', delimiter ',');
- ^
COPY x from stdin (null ' ', null ' ');
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (null ' ', null ' ');
- ^
COPY x from stdin (header off, header on);
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (header off, header on);
- ^
COPY x from stdin (quote ':', quote ':');
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (quote ':', quote ':');
- ^
COPY x from stdin (escape ':', escape ':');
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (escape ':', escape ':');
- ^
COPY x from stdin (force_quote (a), force_quote *);
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (force_quote (a), force_quote *);
- ^
COPY x from stdin (force_not_null (a), force_not_null (b));
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (force_not_null (a), force_not_null (b));
- ^
COPY x from stdin (force_null (a), force_null (b));
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (force_null (a), force_null (b));
- ^
COPY x from stdin (convert_selectively (a), convert_selectively (b));
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (convert_selectively (a), convert_selectiv...
- ^
COPY x from stdin (encoding 'sql_ascii', encoding 'sql_ascii');
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (encoding 'sql_ascii', encoding 'sql_ascii...
- ^
COPY x from stdin (on_error ignore, on_error ignore);
ERROR: conflicting or redundant options
-LINE 1: COPY x from stdin (on_error ignore, on_error ignore);
- ^
-- incorrect options
COPY x to stdin (format BINARY, delimiter ',');
ERROR: cannot specify DELIMITER in BINARY mode
@@ -90,8 +64,6 @@
ERROR: only ON_ERROR STOP is allowed in BINARY mode
COPY x from stdin (on_error unsupported);
ERROR: COPY ON_ERROR "unsupported" not recognized
-LINE 1: COPY x from stdin (on_error unsupported);
- ^
COPY x to stdin (format TEXT, force_quote(a));
ERROR: COPY FORCE_QUOTE requires CSV mode
COPY x from stdin (format CSV, force_quote(a));
@@ -106,8 +78,6 @@
ERROR: COPY FORCE_NULL cannot be used with COPY TO
COPY x to stdin (format BINARY, on_error unsupported);
ERROR: COPY ON_ERROR cannot be used with COPY TO
-LINE 1: COPY x to stdin (format BINARY, on_error unsupported);
- ^
-- too many columns in column list: should fail
COPY x (a, b, c, d, e, d, c) from stdin;
ERROR: column "d" specified more than once
@@ -137,24 +107,14 @@
COPY x from stdin WHERE a > 60003;
COPY x from stdin WHERE f > 60003;
ERROR: column "f" does not exist
-LINE 1: COPY x from stdin WHERE f > 60003;
- ^
COPY x from stdin WHERE a = max(x.b);
ERROR: aggregate functions are not allowed in COPY FROM WHERE conditions
-LINE 1: COPY x from stdin WHERE a = max(x.b);
- ^
COPY x from stdin WHERE a IN (SELECT 1 FROM x);
ERROR: cannot use subquery in COPY FROM WHERE condition
-LINE 1: COPY x from stdin WHERE a IN (SELECT 1 FROM x);
- ^
COPY x from stdin WHERE a IN (generate_series(1,5));
ERROR: set-returning functions are not allowed in COPY FROM WHERE conditions
-LINE 1: COPY x from stdin WHERE a IN (generate_series(1,5));
- ^
COPY x from stdin WHERE a = row_number() over(b);
ERROR: window functions are not allowed in COPY FROM WHERE conditions
-LINE 1: COPY x from stdin WHERE a = row_number() over(b);
- ^
-- check results of copy in
SELECT * FROM x;
a | b | c | d | e
@@ -568,15 +528,11 @@
BEGIN;
COPY forcetest (a, b, c) FROM STDIN WITH (FORMAT csv, FORCE_NOT_NULL *, FORCE_NOT_NULL(b));
ERROR: conflicting or redundant options
-LINE 1: ...c) FROM STDIN WITH (FORMAT csv, FORCE_NOT_NULL *, FORCE_NOT_...
- ^
ROLLBACK;
-- should fail with "conflicting or redundant options" error
BEGIN;
COPY forcetest (a, b, c) FROM STDIN WITH (FORMAT csv, FORCE_NULL *, FORCE_NULL(b));
ERROR: conflicting or redundant options
-LINE 1: ... b, c) FROM STDIN WITH (FORMAT csv, FORCE_NULL *, FORCE_NULL...
- ^
ROLLBACK;
\pset null ''
-- test case with whole-row Var in a check constraint
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/temp.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/temp.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/temp.out 2024-02-22 13:04:49.016829000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/temp.out 2024-02-22 13:08:29.384018000 +0000
@@ -45,8 +45,6 @@
\c
SELECT * FROM temptest;
ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
-- Test ON COMMIT DELETE ROWS
CREATE TEMP TABLE temptest(col int) ON COMMIT DELETE ROWS;
-- while we're here, verify successful truncation of index with SQL function
@@ -98,8 +96,6 @@
COMMIT;
SELECT * FROM temptest;
ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
BEGIN;
CREATE TEMP TABLE temptest(col) ON COMMIT DROP AS SELECT 1;
SELECT * FROM temptest;
@@ -111,8 +107,6 @@
COMMIT;
SELECT * FROM temptest;
ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
-- Test it with a CHECK condition that produces a toasted pg_constraint entry
BEGIN;
do $$
@@ -131,8 +125,6 @@
COMMIT;
SELECT * FROM temptest;
ERROR: relation "temptest" does not exist
-LINE 1: SELECT * FROM temptest;
- ^
-- ON COMMIT is only allowed for TEMP
CREATE TABLE temptest(col int) ON COMMIT DELETE ROWS;
ERROR: ON COMMIT can only be used on temporary tables
@@ -227,8 +219,6 @@
-- function-syntax invocation of types matches rules for functions
select nonempty('');
ERROR: function nonempty(unknown) does not exist
-LINE 1: select nonempty('');
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select pg_temp.nonempty('');
ERROR: value for domain nonempty violates check constraint "nonempty_check"
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/domain.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/domain.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/domain.out 2024-02-22 13:04:49.012818000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/domain.out 2024-02-22 13:08:29.917931000 +0000
@@ -498,8 +498,6 @@
ERROR: value for domain posint violates check constraint "posint_check"
insert into pitable values('{0}'); -- fail
ERROR: value for domain posint violates check constraint "posint_check"
-LINE 1: insert into pitable values('{0}');
- ^
update pitable set f1[1] = f1[1] + 1;
update pitable set f1[1] = 0; -- fail
ERROR: value for domain posint violates check constraint "posint_check"
@@ -528,13 +526,9 @@
create table dposintatable (f1 dposinta[]);
insert into dposintatable values(array[array[42]]); -- fail
ERROR: column "f1" is of type dposinta[] but expression is of type integer[]
-LINE 1: insert into dposintatable values(array[array[42]]);
- ^
HINT: You will need to rewrite or cast the expression.
insert into dposintatable values(array[array[42]::posint[]]); -- still fail
ERROR: column "f1" is of type dposinta[] but expression is of type posint[]
-LINE 1: insert into dposintatable values(array[array[42]::posint[]])...
- ^
HINT: You will need to rewrite or cast the expression.
insert into dposintatable values(array[array[42]::dposinta]); -- but this works
select f1, f1[1], (f1[1])[1] from dposintatable;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/rangefuncs.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rangefuncs.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/rangefuncs.out 2024-02-22 13:04:49.015882000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rangefuncs.out 2024-02-22 13:08:29.883446000 +0000
@@ -1871,8 +1871,6 @@
select * from array_to_set(array['one', 'two']); -- fail
ERROR: a column definition list is required for functions returning "record"
-LINE 1: select * from array_to_set(array['one', 'two']);
- ^
-- after-the-fact coercion of the columns is now possible, too
select * from array_to_set(array['one', 'two']) as t(f1 numeric(4,2),f2 text);
f1 | f2
@@ -1952,8 +1950,6 @@
select * from testrngfunc(); -- fail
ERROR: a column definition list is required for functions returning "record"
-LINE 1: select * from testrngfunc();
- ^
drop function testrngfunc();
create function testrngfunc() returns setof record as $$
insert into rngfunc values (1,2), (3,4) returning *;
@@ -1974,8 +1970,6 @@
select * from testrngfunc(); -- fail
ERROR: a column definition list is required for functions returning "record"
-LINE 1: select * from testrngfunc();
- ^
drop function testrngfunc();
-- Check that typmod imposed by a composite type is honored
create type rngfunc_type as (f1 numeric(35,6), f2 numeric(35,2));
@@ -2156,16 +2150,10 @@
-- Check a couple of error cases while we're here
select * from testrngfunc() as t(f1 int8,f2 int8); -- fail, composite result
ERROR: a column definition list is redundant for a function returning a named composite type
-LINE 1: select * from testrngfunc() as t(f1 int8,f2 int8);
- ^
select * from pg_get_keywords() as t(f1 int8,f2 int8); -- fail, OUT params
ERROR: a column definition list is redundant for a function with OUT parameters
-LINE 1: select * from pg_get_keywords() as t(f1 int8,f2 int8);
- ^
select * from sin(3) as t(f1 int8,f2 int8); -- fail, scalar result type
ERROR: a column definition list is only allowed for functions returning "record"
-LINE 1: select * from sin(3) as t(f1 int8,f2 int8);
- ^
drop type rngfunc_type cascade;
NOTICE: drop cascades to function testrngfunc()
--
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/prepare.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/prepare.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/prepare.out 2024-02-22 13:04:49.015643000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/prepare.out 2024-02-22 13:08:28.976648000 +0000
@@ -113,14 +113,10 @@
-- wrong param types
EXECUTE q3(5::smallint, 10.5::float, false, 4::bigint, 'bytea');
ERROR: parameter $3 of type boolean cannot be coerced to the expected type double precision
-LINE 1: EXECUTE q3(5::smallint, 10.5::float, false, 4::bigint, 'byte...
- ^
HINT: You will need to rewrite or cast the expression.
-- invalid type
PREPARE q4(nonexistenttype) AS SELECT $1;
ERROR: type "nonexistenttype" does not exist
-LINE 1: PREPARE q4(nonexistenttype) AS SELECT $1;
- ^
-- create table as execute
PREPARE q5(int, text) AS
SELECT * FROM tenk1 WHERE unique1 = $1 OR stringu1 = $2
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/truncate.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/truncate.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/truncate.out 2024-02-22 13:04:49.017077000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/truncate.out 2024-02-22 13:08:29.650066000 +0000
@@ -448,8 +448,6 @@
DROP TABLE truncate_a;
SELECT nextval('truncate_a_id1'); -- fail, seq should have been dropped
ERROR: relation "truncate_a_id1" does not exist
-LINE 1: SELECT nextval('truncate_a_id1');
- ^
-- partitioned table
CREATE TABLE truncparted (a int, b char) PARTITION BY LIST (a);
-- error, can't truncate a partitioned table
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/alter_table.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/alter_table.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/alter_table.out 2024-02-22 13:04:49.011772000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/alter_table.out 2024-02-22 13:08:31.810672000 +0000
@@ -139,8 +139,6 @@
ALTER TABLE attmp RENAME TO attmp_new2;
SELECT * FROM attmp; -- should fail
ERROR: relation "attmp" does not exist
-LINE 1: SELECT * FROM attmp;
- ^
SELECT * FROM attmp_new;
attmptable
------------
@@ -1294,20 +1292,12 @@
select * from atacc1 order by a;
ERROR: column "a" does not exist
-LINE 1: select * from atacc1 order by a;
- ^
select * from atacc1 order by "........pg.dropped.1........";
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: select * from atacc1 order by "........pg.dropped.1........"...
- ^
select * from atacc1 group by a;
ERROR: column "a" does not exist
-LINE 1: select * from atacc1 group by a;
- ^
select * from atacc1 group by "........pg.dropped.1........";
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: select * from atacc1 group by "........pg.dropped.1........"...
- ^
select atacc1.* from atacc1;
b | c | d
---+---+---
@@ -1316,12 +1306,8 @@
select a from atacc1;
ERROR: column "a" does not exist
-LINE 1: select a from atacc1;
- ^
select atacc1.a from atacc1;
ERROR: column atacc1.a does not exist
-LINE 1: select atacc1.a from atacc1;
- ^
select b,c,d from atacc1;
b | c | d
---+---+---
@@ -1330,97 +1316,53 @@
select a,b,c,d from atacc1;
ERROR: column "a" does not exist
-LINE 1: select a,b,c,d from atacc1;
- ^
select * from atacc1 where a = 1;
ERROR: column "a" does not exist
-LINE 1: select * from atacc1 where a = 1;
- ^
select "........pg.dropped.1........" from atacc1;
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: select "........pg.dropped.1........" from atacc1;
- ^
select atacc1."........pg.dropped.1........" from atacc1;
ERROR: column atacc1.........pg.dropped.1........ does not exist
-LINE 1: select atacc1."........pg.dropped.1........" from atacc1;
- ^
select "........pg.dropped.1........",b,c,d from atacc1;
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: select "........pg.dropped.1........",b,c,d from atacc1;
- ^
select * from atacc1 where "........pg.dropped.1........" = 1;
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: select * from atacc1 where "........pg.dropped.1........" = ...
- ^
-- UPDATEs
update atacc1 set a = 3;
ERROR: column "a" of relation "atacc1" does not exist
-LINE 1: update atacc1 set a = 3;
- ^
update atacc1 set b = 2 where a = 3;
ERROR: column "a" does not exist
-LINE 1: update atacc1 set b = 2 where a = 3;
- ^
update atacc1 set "........pg.dropped.1........" = 3;
ERROR: column "........pg.dropped.1........" of relation "atacc1" does not exist
-LINE 1: update atacc1 set "........pg.dropped.1........" = 3;
- ^
update atacc1 set b = 2 where "........pg.dropped.1........" = 3;
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: update atacc1 set b = 2 where "........pg.dropped.1........"...
- ^
-- INSERTs
insert into atacc1 values (10, 11, 12, 13);
ERROR: INSERT has more expressions than target columns
-LINE 1: insert into atacc1 values (10, 11, 12, 13);
- ^
insert into atacc1 values (default, 11, 12, 13);
ERROR: INSERT has more expressions than target columns
-LINE 1: insert into atacc1 values (default, 11, 12, 13);
- ^
insert into atacc1 values (11, 12, 13);
insert into atacc1 (a) values (10);
ERROR: column "a" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 (a) values (10);
- ^
insert into atacc1 (a) values (default);
ERROR: column "a" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 (a) values (default);
- ^
insert into atacc1 (a,b,c,d) values (10,11,12,13);
ERROR: column "a" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 (a,b,c,d) values (10,11,12,13);
- ^
insert into atacc1 (a,b,c,d) values (default,11,12,13);
ERROR: column "a" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 (a,b,c,d) values (default,11,12,13);
- ^
insert into atacc1 (b,c,d) values (11,12,13);
insert into atacc1 ("........pg.dropped.1........") values (10);
ERROR: column "........pg.dropped.1........" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 ("........pg.dropped.1........") values (...
- ^
insert into atacc1 ("........pg.dropped.1........") values (default);
ERROR: column "........pg.dropped.1........" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 ("........pg.dropped.1........") values (...
- ^
insert into atacc1 ("........pg.dropped.1........",b,c,d) values (10,11,12,13);
ERROR: column "........pg.dropped.1........" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 ("........pg.dropped.1........",b,c,d) va...
- ^
insert into atacc1 ("........pg.dropped.1........",b,c,d) values (default,11,12,13);
ERROR: column "........pg.dropped.1........" of relation "atacc1" does not exist
-LINE 1: insert into atacc1 ("........pg.dropped.1........",b,c,d) va...
- ^
-- DELETEs
delete from atacc1 where a = 3;
ERROR: column "a" does not exist
-LINE 1: delete from atacc1 where a = 3;
- ^
delete from atacc1 where "........pg.dropped.1........" = 3;
ERROR: column "........pg.dropped.1........" does not exist
-LINE 1: delete from atacc1 where "........pg.dropped.1........" = 3;
- ^
delete from atacc1;
-- try dropping a non-existent column, should fail
alter table atacc1 drop bar;
@@ -1705,8 +1647,6 @@
alter table c1 drop column f1;
select f1 from c1;
ERROR: column "f1" does not exist
-LINE 1: select f1 from c1;
- ^
HINT: Perhaps you meant to reference the column "c1.f2".
drop table p1 cascade;
NOTICE: drop cascades to table c1
@@ -1719,8 +1659,6 @@
-- c1.f1 is dropped now, since there is no local definition for it
select f1 from c1;
ERROR: column "f1" does not exist
-LINE 1: select f1 from c1;
- ^
HINT: Perhaps you meant to reference the column "c1.f2".
drop table p1 cascade;
NOTICE: drop cascades to table c1
@@ -3913,8 +3851,6 @@
CREATE TABLE fail_part (LIKE list_parted);
ALTER TABLE list_parted ATTACH PARTITION fail_part FOR VALUES FROM (1) TO (10);
ERROR: invalid bound specification for a list partition
-LINE 1: ...list_parted ATTACH PARTITION fail_part FOR VALUES FROM (1) T...
- ^
DROP TABLE fail_part;
-- check that the table being attached exists
ALTER TABLE list_parted ATTACH PARTITION nonexistent FOR VALUES IN (1);
@@ -4015,8 +3951,6 @@
CREATE TABLE fail_part (LIKE part_1 INCLUDING CONSTRAINTS);
ALTER TABLE list_parted ATTACH PARTITION fail_part FOR VALUES IN (1);
ERROR: partition "fail_part" would overlap partition "part_1"
-LINE 1: ...LE list_parted ATTACH PARTITION fail_part FOR VALUES IN (1);
- ^
DROP TABLE fail_part;
-- check that an existing table can be attached as a default partition
CREATE TABLE def_part (LIKE list_parted INCLUDING CONSTRAINTS);
@@ -4026,8 +3960,6 @@
CREATE TABLE fail_def_part (LIKE part_1 INCLUDING CONSTRAINTS);
ALTER TABLE list_parted ATTACH PARTITION fail_def_part DEFAULT;
ERROR: partition "fail_def_part" conflicts with existing default partition "def_part"
-LINE 1: ...ER TABLE list_parted ATTACH PARTITION fail_def_part DEFAULT;
- ^
-- check validation when attaching list partitions
CREATE TABLE list_parted2 (
a int,
@@ -4097,8 +4029,6 @@
CREATE TABLE partr_def2 (LIKE part1 INCLUDING CONSTRAINTS);
ALTER TABLE range_parted ATTACH PARTITION partr_def2 DEFAULT;
ERROR: partition "partr_def2" conflicts with existing default partition "partr_def1"
-LINE 1: ...LTER TABLE range_parted ATTACH PARTITION partr_def2 DEFAULT;
- ^
-- Overlapping partitions cannot be attached, hence, following should give error
INSERT INTO partr_def1 VALUES (2, 10);
CREATE TABLE part3 (LIKE range_parted);
@@ -4219,12 +4149,8 @@
CREATE TABLE fail_part (LIKE hpart_1);
ALTER TABLE hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODULUS 8, REMAINDER 4);
ERROR: partition "fail_part" would overlap partition "hpart_1"
-LINE 1: ...hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODU...
- ^
ALTER TABLE hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODULUS 8, REMAINDER 0);
ERROR: partition "fail_part" would overlap partition "hpart_1"
-LINE 1: ...hash_parted ATTACH PARTITION fail_part FOR VALUES WITH (MODU...
- ^
DROP TABLE fail_part;
-- check validation when attaching hash partitions
-- check that violating rows are correctly reported
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/sequence.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/sequence.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/sequence.out 2024-02-22 13:04:49.016575000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/sequence.out 2024-02-22 13:08:29.732475000 +0000
@@ -42,8 +42,6 @@
ERROR: sequence type must be smallint, integer, or bigint
CREATE SEQUENCE sequence_testx AS nosuchtype;
ERROR: type "nosuchtype" does not exist
-LINE 1: CREATE SEQUENCE sequence_testx AS nosuchtype;
- ^
CREATE SEQUENCE sequence_testx AS smallint MAXVALUE 100000;
ERROR: MAXVALUE (100000) is out of range for sequence data type smallint
CREATE SEQUENCE sequence_testx AS smallint MINVALUE -100000;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/polymorphism.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/polymorphism.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/polymorphism.out 2024-02-22 13:04:49.015544000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/polymorphism.out 2024-02-22 13:08:29.811616000 +0000
@@ -13,12 +13,7 @@
select polyf(point(3,4)); -- fail for lack of + operator
ERROR: operator does not exist: point + integer
-LINE 2: select x + 1
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-QUERY:
- select x + 1
-
CONTEXT: SQL function "polyf" during inlining
drop function polyf(x anyelement);
create function polyf(x anyelement) returns anyarray as $$
@@ -93,8 +88,6 @@
select polyf(int4range(42, 49), 11, 4.5) as fail; -- range type doesn't fit
ERROR: function polyf(int4range, integer, numeric) does not exist
-LINE 1: select polyf(int4range(42, 49), 11, 4.5) as fail;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function polyf(x anycompatiblerange, y anycompatible, z anycompatible);
create function polyf(x anycompatiblemultirange, y anycompatible, z anycompatible) returns anycompatiblearray as $$
@@ -108,8 +101,6 @@
select polyf(multirange(int4range(42, 49)), 11, 4.5) as fail; -- range type doesn't fit
ERROR: function polyf(int4multirange, integer, numeric) does not exist
-LINE 1: select polyf(multirange(int4range(42, 49)), 11, 4.5) as fail...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function polyf(x anycompatiblemultirange, y anycompatible, z anycompatible);
-- fail, can't infer type:
@@ -174,8 +165,6 @@
select x, pg_typeof(x), y, pg_typeof(y)
from polyf(11, array[1, 2.2], 42, 34.5); -- fail
ERROR: function polyf(integer, numeric[], integer, numeric) does not exist
-LINE 2: from polyf(11, array[1, 2.2], 42, 34.5);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function polyf(a anyelement, b anyarray,
c anycompatible, d anycompatible);
@@ -960,8 +949,6 @@
select * from array_in('{1,2,3}','int4'::regtype,-1); -- this not
ERROR: function "array_in" in FROM has unsupported return type anyarray
-LINE 1: select * from array_in('{1,2,3}','int4'::regtype,-1);
- ^
select anyrange_in('[10,20)','int4range'::regtype,-1);
ERROR: cannot accept a value of type anyrange
-- test variadic polymorphic functions
@@ -988,8 +975,6 @@
select myleast(); -- fail
ERROR: function myleast() does not exist
-LINE 1: select myleast();
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
-- test with variadic call parameter
select myleast(variadic array[1,2,3,4,-1]);
@@ -1058,18 +1043,12 @@
select formarray(1.1, array[1.2,55.5]); -- fail without variadic
ERROR: function formarray(numeric, numeric[]) does not exist
-LINE 1: select formarray(1.1, array[1.2,55.5]);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select formarray(1, 'x'::text); -- fail, type mismatch
ERROR: function formarray(integer, text) does not exist
-LINE 1: select formarray(1, 'x'::text);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select formarray(1, variadic array['x'::text]); -- fail, type mismatch
ERROR: function formarray(integer, text[]) does not exist
-LINE 1: select formarray(1, variadic array['x'::text]);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function formarray(anyelement, variadic anyarray);
-- test pg_typeof() function
@@ -1152,8 +1131,6 @@
select dfunc(10, 20, 30); -- fail
ERROR: function dfunc(integer, integer, integer) does not exist
-LINE 1: select dfunc(10, 20, 30);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function dfunc(); -- fail
ERROR: function dfunc() does not exist
@@ -1199,8 +1176,6 @@
$$ language sql;
select dfunc(); -- fail: which dfunc should be called? int or text
ERROR: function dfunc() is not unique
-LINE 1: select dfunc();
- ^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
select dfunc('Hi'); -- ok
dfunc
@@ -1238,18 +1213,12 @@
-- with 0 to 2 arguments.
select dfunc(); -- fail
ERROR: function dfunc() is not unique
-LINE 1: select dfunc();
- ^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
select dfunc(1); -- fail
ERROR: function dfunc(integer) is not unique
-LINE 1: select dfunc(1);
- ^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
select dfunc(1, 2); -- fail
ERROR: function dfunc(integer, integer) is not unique
-LINE 1: select dfunc(1, 2);
- ^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
select dfunc(1, 2, 3); -- ok
dfunc
@@ -1304,8 +1273,6 @@
$$ select array_upper($1, 1) $$ language sql;
select dfunc(); -- fail
ERROR: function dfunc() does not exist
-LINE 1: select dfunc();
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select dfunc(10);
dfunc
@@ -1365,8 +1332,6 @@
-- dfunc(narg=2) and dfunc(narg=3) are ambiguous
select dfunc(1); -- fail
ERROR: function dfunc(integer) is not unique
-LINE 1: select dfunc(1);
- ^
HINT: Could not choose a best candidate function. You might need to add explicit type casts.
-- but this works since the ambiguous functions aren't preferred anyway
select dfunc('Hi');
@@ -1411,8 +1376,6 @@
select * from dfunc(0); -- fail
ERROR: function dfunc(integer) does not exist
-LINE 1: select * from dfunc(0);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select * from dfunc(1,2);
a | b | c | d
@@ -1434,26 +1397,16 @@
select * from dfunc(x := 20, b := 10, x := 30); -- fail, duplicate name
ERROR: argument name "x" used more than once
-LINE 1: select * from dfunc(x := 20, b := 10, x := 30);
- ^
select * from dfunc(10, b := 20, 30); -- fail, named args must be last
ERROR: positional argument cannot follow named argument
-LINE 1: select * from dfunc(10, b := 20, 30);
- ^
select * from dfunc(x := 10, b := 20, c := 30); -- fail, unknown param
ERROR: function dfunc(x => integer, b => integer, c => integer) does not exist
-LINE 1: select * from dfunc(x := 10, b := 20, c := 30);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select * from dfunc(10, 10, a := 20); -- fail, a overlaps positional parameter
ERROR: function dfunc(integer, integer, a => integer) does not exist
-LINE 1: select * from dfunc(10, 10, a := 20);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select * from dfunc(1,c := 2,d := 3); -- fail, no value for b
ERROR: function dfunc(integer, c => integer, d => integer) does not exist
-LINE 1: select * from dfunc(1,c := 2,d := 3);
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function dfunc(int, int, int, int);
-- test with different parameter types
@@ -1493,8 +1446,6 @@
select * from dfunc('Hello World', c := 20, b := '2009-07-25'::date); -- fail
ERROR: function dfunc(unknown, c => integer, b => date) does not exist
-LINE 1: select * from dfunc('Hello World', c := 20, b := '2009-07-25...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function dfunc(varchar, numeric, date);
-- test out parameters with named params
@@ -1830,8 +1781,6 @@
select x, pg_typeof(x) from anyctest(11, point(1,2)) x; -- fail
ERROR: function anyctest(integer, point) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, point(1,2)) x;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select x, pg_typeof(x) from anyctest('11', '12.3') x; -- defaults to text
x | pg_typeof
@@ -1858,8 +1807,6 @@
select x, pg_typeof(x) from anyctest(11, array[1,2]) x; -- fail
ERROR: function anyctest(integer, integer[]) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, array[1,2]) x;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyctest(anycompatible, anycompatible);
create function anyctest(anycompatible, anycompatiblearray)
@@ -1892,13 +1839,9 @@
select x, pg_typeof(x) from anyctest(11, array[point(1,2)]) x; -- fail
ERROR: function anyctest(integer, point[]) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, array[point(1,2)]) ...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select x, pg_typeof(x) from anyctest(11, 12) x; -- fail
ERROR: function anyctest(integer, integer) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, 12) x;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyctest(anycompatible, anycompatiblearray);
create function anyctest(anycompatible, anycompatiblerange)
@@ -1919,13 +1862,9 @@
select x, pg_typeof(x) from anyctest(11, 12) x; -- fail
ERROR: function anyctest(integer, integer) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, 12) x;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select x, pg_typeof(x) from anyctest(11.2, int4range(4,7)) x; -- fail
ERROR: function anyctest(numeric, int4range) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11.2, int4range(4,7)) x...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select x, pg_typeof(x) from anyctest(11.2, '[4,7)') x; -- fail
ERROR: could not determine polymorphic type anycompatiblerange because input has type unknown
@@ -1942,8 +1881,6 @@
select x, pg_typeof(x) from anyctest(int4range(11,12), numrange(4,7)) x; -- fail
ERROR: function anyctest(int4range, numrange) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(int4range(11,12), numra...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyctest(anycompatiblerange, anycompatiblerange);
-- fail, can't infer result type:
@@ -1971,13 +1908,9 @@
select x, pg_typeof(x) from anyctest(11, 12) x; -- fail
ERROR: function anyctest(integer, integer) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, 12) x;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select x, pg_typeof(x) from anyctest(11.2, multirange(int4range(4,7))) x; -- fail
ERROR: function anyctest(numeric, int4multirange) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11.2, multirange(int4ra...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select x, pg_typeof(x) from anyctest(11.2, '{[4,7)}') x; -- fail
ERROR: could not determine polymorphic type anycompatiblemultirange because input has type unknown
@@ -1994,8 +1927,6 @@
select x, pg_typeof(x) from anyctest(multirange(int4range(11,12)), multirange(numrange(4,7))) x; -- fail
ERROR: function anyctest(int4multirange, nummultirange) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(multirange(int4range(11...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyctest(anycompatiblemultirange, anycompatiblemultirange);
-- fail, can't infer result type:
@@ -2023,8 +1954,6 @@
select x, pg_typeof(x) from anyctest(array[11], array[1,2]) x; -- fail
ERROR: function anyctest(integer[], integer[]) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(array[11], array[1,2]) ...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyctest(anycompatiblenonarray, anycompatiblenonarray);
create function anyctest(a anyelement, b anyarray,
@@ -2052,8 +1981,6 @@
select x, pg_typeof(x) from anyctest(11, array[1, 2.2], 42, 34.5) x; -- fail
ERROR: function anyctest(integer, numeric[], integer, numeric) does not exist
-LINE 1: select x, pg_typeof(x) from anyctest(11, array[1, 2.2], 42, ...
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
drop function anyctest(a anyelement, b anyarray,
c anycompatible, d anycompatible);
@@ -2081,8 +2008,6 @@
select x, pg_typeof(x) from anyctest(11, '12.2') x; -- fail
ERROR: invalid input syntax for type integer: "12.2"
-LINE 1: select x, pg_typeof(x) from anyctest(11, '12.2') x;
- ^
select x, pg_typeof(x) from anyctest(variadic array[11, 12]) x;
x | pg_typeof
---------+-----------
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/rowtypes.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rowtypes.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/rowtypes.out 2024-02-22 13:04:49.016226000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/rowtypes.out 2024-02-22 13:08:29.506012000 +0000
@@ -45,18 +45,12 @@
select '(Joe)'::fullname; -- bad
ERROR: malformed record literal: "(Joe)"
-LINE 1: select '(Joe)'::fullname;
- ^
DETAIL: Too few columns.
select '(Joe,,)'::fullname; -- bad
ERROR: malformed record literal: "(Joe,,)"
-LINE 1: select '(Joe,,)'::fullname;
- ^
DETAIL: Too many columns.
select '[]'::fullname; -- bad
ERROR: malformed record literal: "[]"
-LINE 1: select '[]'::fullname;
- ^
DETAIL: Missing left parenthesis.
select ' (Joe,Blow) '::fullname; -- ok, extra whitespace
fullname
@@ -66,8 +60,6 @@
select '(Joe,Blow) /'::fullname; -- bad
ERROR: malformed record literal: "(Joe,Blow) /"
-LINE 1: select '(Joe,Blow) /'::fullname;
- ^
DETAIL: Junk after right parenthesis.
-- test non-error-throwing API
SELECT pg_input_is_valid('(1,2)', 'complex');
@@ -112,8 +104,6 @@
select f1, q.c1 from quadtable; -- fails, q is a table reference
ERROR: missing FROM-clause entry for table "q"
-LINE 1: select f1, q.c1 from quadtable;
- ^
select f1, (q).c1, (qq.q).c1.i from quadtable qq;
f1 | c1 | i
----+-----------+-----
@@ -152,8 +142,6 @@
update quadtable set q.c1.r = 12 where f1 = 2;
update quadtable set q.c1 = 12; -- error, type mismatch
ERROR: subfield "c1" is of type complex but expression is of type integer
-LINE 1: update quadtable set q.c1 = 12;
- ^
HINT: You will need to rewrite or cast the expression.
select * from quadtable;
f1 | q
@@ -264,8 +252,6 @@
select ROW('ABC','DEF') ~~ ROW('DEF','ABC') as fail;
ERROR: could not determine interpretation of row comparison operator ~~
-LINE 1: select ROW('ABC','DEF') ~~ ROW('DEF','ABC') as fail;
- ^
HINT: Row comparison operators must be associated with btree operator families.
-- Comparisons of ROW() expressions can cope with some type mismatches
select ROW(1,2) = ROW(1,2::int8);
@@ -497,8 +483,6 @@
select (row(1, 2.0)).nosuch; -- fail
ERROR: could not identify column "nosuch" in record data type
-LINE 1: select (row(1, 2.0)).nosuch;
- ^
select (row(1, 2.0)).*;
f1 | f2
----+-----
@@ -513,8 +497,6 @@
select (r).f3 from (select row(1, 2.0) as r) ss; -- fail
ERROR: could not identify column "f3" in record data type
-LINE 1: select (r).f3 from (select row(1, 2.0) as r) ss;
- ^
select (r).* from (select row(1, 2.0) as r) ss;
f1 | f2
----+-----
@@ -536,8 +518,6 @@
select ROW() = ROW();
ERROR: cannot compare rows of zero length
-LINE 1: select ROW() = ROW();
- ^
-- Check ability to create arrays of anonymous rowtypes
select array[ row(1,2), row(3,4), row(5,6) ];
array
@@ -565,8 +545,6 @@
insert into cc values('("(4,5)",6)');
select * from cc order by f1; -- fail, but should complain about cantcompare
ERROR: could not identify an ordering operator for type cantcompare
-LINE 1: select * from cc order by f1;
- ^
HINT: Use an explicit ordering operator or modify the query.
--
-- Tests for record_{eq,cmp}
@@ -908,9 +886,8 @@
insert into compos values (v); -- fail
$$ language sql;
ERROR: column "f1" is of type integer but expression is of type compos
-LINE 2: insert into compos values (v); -- fail
- ^
HINT: You will need to rewrite or cast the expression.
+CONTEXT: SQL function "fcompos1"
create function fcompos1(v compos) returns void as $$
insert into compos values (v.*);
$$ language sql;
@@ -963,13 +940,9 @@
select text(fullname) from fullname; -- error
ERROR: function text(fullname) does not exist
-LINE 1: select text(fullname) from fullname;
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select fullname.text from fullname; -- error
ERROR: column fullname.text does not exist
-LINE 1: select fullname.text from fullname;
- ^
-- same, but RECORD instead of named composite type:
select cast (row('Jim', 'Beam') as text);
row
@@ -985,13 +958,9 @@
select text(row('Jim', 'Beam')); -- error
ERROR: function text(record) does not exist
-LINE 1: select text(row('Jim', 'Beam'));
- ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
select (row('Jim', 'Beam')).text; -- error
ERROR: could not identify column "text" in record data type
-LINE 1: select (row('Jim', 'Beam')).text;
- ^
--
-- Check the equivalence of functional and column notation
--
@@ -1308,8 +1277,6 @@
-- composite type columns can't directly be accessed (error)
SELECT d.a FROM (SELECT compositetable AS d FROM compositetable) s;
ERROR: missing FROM-clause entry for table "d"
-LINE 1: SELECT d.a FROM (SELECT compositetable AS d FROM compositeta...
- ^
-- but can be accessed with proper parens
SELECT (d).a, (d).b FROM (SELECT compositetable AS d FROM compositetable) s;
a | b
@@ -1320,13 +1287,9 @@
-- system columns can't be accessed in composite types (error)
SELECT (d).ctid FROM (SELECT compositetable AS d FROM compositetable) s;
ERROR: column "ctid" not found in data type compositetable
-LINE 1: SELECT (d).ctid FROM (SELECT compositetable AS d FROM compos...
- ^
-- accessing non-existing column in NULL datum errors out
SELECT (NULL::compositetable).nonexistent;
ERROR: column "nonexistent" not found in data type compositetable
-LINE 1: SELECT (NULL::compositetable).nonexistent;
- ^
-- existing column in a NULL composite yield NULL
SELECT (NULL::compositetable).a;
a
@@ -1337,6 +1300,4 @@
-- oids can't be accessed in composite types (error)
SELECT (NULL::compositetable).oid;
ERROR: column "oid" not found in data type compositetable
-LINE 1: SELECT (NULL::compositetable).oid;
- ^
DROP TABLE compositetable;
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/returning.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/returning.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/returning.out 2024-02-22 13:04:49.015983000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/returning.out 2024-02-22 13:08:29.123509000 +0000
@@ -340,8 +340,6 @@
INSERT INTO foo AS bar DEFAULT VALUES RETURNING foo.*; -- fails, wrong name
ERROR: invalid reference to FROM-clause entry for table "foo"
-LINE 1: INSERT INTO foo AS bar DEFAULT VALUES RETURNING foo.*;
- ^
HINT: Perhaps you meant to reference the table alias "bar".
INSERT INTO foo AS bar DEFAULT VALUES RETURNING bar.*; -- ok
f1 | f2 | f3 | f4
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/with.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/with.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/with.out 2024-02-22 13:04:49.017698000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/with.out 2024-02-22 13:08:29.737297000 +0000
@@ -173,8 +173,6 @@
)
SELECT n, pg_typeof(n) FROM t;
ERROR: operator does not exist: text + integer
-LINE 4: SELECT n+1 FROM t WHERE n < 10
- ^
HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-- Deeply nested WITH caused a list-munging problem in v13
-- Detection of cross-references and self-references
@@ -913,8 +911,6 @@
) search depth first by foo, tar set seq
select * from search_graph;
ERROR: search column "foo" not in WITH query column list
-LINE 7: ) search depth first by foo, tar set seq
- ^
with recursive search_graph(f, t, label) as (
select * from graph0 g
union all
@@ -924,8 +920,6 @@
) search depth first by f, t set label
select * from search_graph;
ERROR: search sequence column name "label" already used in WITH query column list
-LINE 7: ) search depth first by f, t set label
- ^
with recursive search_graph(f, t, label) as (
select * from graph0 g
union all
@@ -935,8 +929,6 @@
) search depth first by f, t, f set seq
select * from search_graph;
ERROR: search column "f" specified more than once
-LINE 7: ) search depth first by f, t, f set seq
- ^
with recursive search_graph(f, t, label) as (
select * from graph0 g
union all
@@ -1458,8 +1450,6 @@
) cycle foo, tar set is_cycle using path
select * from search_graph;
ERROR: cycle column "foo" not in WITH query column list
-LINE 7: ) cycle foo, tar set is_cycle using path
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1469,8 +1459,6 @@
) cycle f, t set is_cycle to true default 55 using path
select * from search_graph;
ERROR: CYCLE types boolean and integer cannot be matched
-LINE 7: ) cycle f, t set is_cycle to true default 55 using path
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1489,8 +1477,6 @@
) cycle f, t set label to true default false using path
select * from search_graph;
ERROR: cycle mark column name "label" already used in WITH query column list
-LINE 7: ) cycle f, t set label to true default false using path
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1500,8 +1486,6 @@
) cycle f, t set is_cycle to true default false using label
select * from search_graph;
ERROR: cycle path column name "label" already used in WITH query column list
-LINE 7: ) cycle f, t set is_cycle to true default false using label
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1511,8 +1495,6 @@
) cycle f, t set foo to true default false using foo
select * from search_graph;
ERROR: cycle mark column name and cycle path column name are the same
-LINE 7: ) cycle f, t set foo to true default false using foo
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1522,8 +1504,6 @@
) cycle f, t, f set is_cycle to true default false using path
select * from search_graph;
ERROR: cycle column "f" specified more than once
-LINE 7: ) cycle f, t, f set is_cycle to true default false using pat...
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1534,8 +1514,6 @@
cycle f, t set foo to true default false using path
select * from search_graph;
ERROR: search sequence column name and cycle mark column name are the same
-LINE 7: ) search depth first by f, t set foo
- ^
with recursive search_graph(f, t, label) as (
select * from graph g
union all
@@ -1546,8 +1524,6 @@
cycle f, t set is_cycle to true default false using foo
select * from search_graph;
ERROR: search sequence column name and cycle path column name are the same
-LINE 7: ) search depth first by f, t set foo
- ^
-- test ruleutils and view expansion
create temp view v_cycle1 as
with recursive search_graph(f, t, label) as (
@@ -1976,42 +1952,28 @@
WITH x(n, b) AS (SELECT 1)
SELECT * FROM x;
ERROR: WITH query "x" has 1 columns available but 2 columns specified
-LINE 1: WITH x(n, b) AS (SELECT 1)
- ^
-- INTERSECT
WITH RECURSIVE x(n) AS (SELECT 1 INTERSECT SELECT n+1 FROM x)
SELECT * FROM x;
ERROR: recursive query "x" does not have the form non-recursive-term UNION [ALL] recursive-term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT 1 INTERSECT SELECT n+1 FROM x...
- ^
WITH RECURSIVE x(n) AS (SELECT 1 INTERSECT ALL SELECT n+1 FROM x)
SELECT * FROM x;
ERROR: recursive query "x" does not have the form non-recursive-term UNION [ALL] recursive-term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT 1 INTERSECT ALL SELECT n+1 FR...
- ^
-- EXCEPT
WITH RECURSIVE x(n) AS (SELECT 1 EXCEPT SELECT n+1 FROM x)
SELECT * FROM x;
ERROR: recursive query "x" does not have the form non-recursive-term UNION [ALL] recursive-term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT 1 EXCEPT SELECT n+1 FROM x)
- ^
WITH RECURSIVE x(n) AS (SELECT 1 EXCEPT ALL SELECT n+1 FROM x)
SELECT * FROM x;
ERROR: recursive query "x" does not have the form non-recursive-term UNION [ALL] recursive-term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT 1 EXCEPT ALL SELECT n+1 FROM ...
- ^
-- no non-recursive term
WITH RECURSIVE x(n) AS (SELECT n FROM x)
SELECT * FROM x;
ERROR: recursive query "x" does not have the form non-recursive-term UNION [ALL] recursive-term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT n FROM x)
- ^
-- recursive term in the left hand side (strictly speaking, should allow this)
WITH RECURSIVE x(n) AS (SELECT n FROM x UNION ALL SELECT 1)
SELECT * FROM x;
ERROR: recursive reference to query "x" must not appear within its non-recursive term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT n FROM x UNION ALL SELECT 1)
- ^
CREATE TEMPORARY TABLE y (a INTEGER);
INSERT INTO y SELECT generate_series(1, 10);
-- LEFT JOIN
@@ -2020,54 +1982,38 @@
SELECT x.n+1 FROM y LEFT JOIN x ON x.n = y.a WHERE n < 10)
SELECT * FROM x;
ERROR: recursive reference to query "x" must not appear within an outer join
-LINE 3: SELECT x.n+1 FROM y LEFT JOIN x ON x.n = y.a WHERE n < 10)
- ^
-- RIGHT JOIN
WITH RECURSIVE x(n) AS (SELECT a FROM y WHERE a = 1
UNION ALL
SELECT x.n+1 FROM x RIGHT JOIN y ON x.n = y.a WHERE n < 10)
SELECT * FROM x;
ERROR: recursive reference to query "x" must not appear within an outer join
-LINE 3: SELECT x.n+1 FROM x RIGHT JOIN y ON x.n = y.a WHERE n < 10)
- ^
-- FULL JOIN
WITH RECURSIVE x(n) AS (SELECT a FROM y WHERE a = 1
UNION ALL
SELECT x.n+1 FROM x FULL JOIN y ON x.n = y.a WHERE n < 10)
SELECT * FROM x;
ERROR: recursive reference to query "x" must not appear within an outer join
-LINE 3: SELECT x.n+1 FROM x FULL JOIN y ON x.n = y.a WHERE n < 10)
- ^
-- subquery
WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM x
WHERE n IN (SELECT * FROM x))
SELECT * FROM x;
ERROR: recursive reference to query "x" must not appear within a subquery
-LINE 2: WHERE n IN (SELECT * FROM x))
- ^
-- aggregate functions
WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT count(*) FROM x)
SELECT * FROM x;
ERROR: aggregate functions are not allowed in a recursive query's recursive term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT count(*) F...
- ^
WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT sum(n) FROM x)
SELECT * FROM x;
ERROR: aggregate functions are not allowed in a recursive query's recursive term
-LINE 1: WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT sum(n) FRO...
- ^
-- ORDER BY
WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM x ORDER BY 1)
SELECT * FROM x;
ERROR: ORDER BY in a recursive query is not implemented
-LINE 1: ...VE x(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM x ORDER BY 1)
- ^
-- LIMIT/OFFSET
WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM x LIMIT 10 OFFSET 1)
SELECT * FROM x;
ERROR: OFFSET in a recursive query is not implemented
-LINE 1: ... AS (SELECT 1 UNION ALL SELECT n+1 FROM x LIMIT 10 OFFSET 1)
- ^
-- FOR UPDATE
WITH RECURSIVE x(n) AS (SELECT 1 UNION ALL SELECT n+1 FROM x FOR UPDATE)
SELECT * FROM x;
@@ -2078,16 +2024,12 @@
SELECT (SELECT * FROM x) FROM x WHERE id < 5
) SELECT * FROM x;
ERROR: recursive reference to query "x" must not appear within a subquery
-LINE 3: SELECT (SELECT * FROM x) FROM x WHERE id < 5
- ^
-- mutual recursive query (not implemented)
WITH RECURSIVE
x (id) AS (SELECT 1 UNION ALL SELECT id+1 FROM y WHERE id < 5),
y (id) AS (SELECT 1 UNION ALL SELECT id+1 FROM x WHERE id < 5)
SELECT * FROM x;
ERROR: mutual recursion between WITH items is not implemented
-LINE 2: x (id) AS (SELECT 1 UNION ALL SELECT id+1 FROM y WHERE id ...
- ^
-- non-linear recursion is not allowed
WITH RECURSIVE foo(i) AS
(values (1)
@@ -2097,8 +2039,6 @@
SELECT i+1 FROM foo WHERE i < 5)
) SELECT * FROM foo;
ERROR: recursive reference to query "foo" must not appear more than once
-LINE 6: SELECT i+1 FROM foo WHERE i < 5)
- ^
WITH RECURSIVE foo(i) AS
(values (1)
UNION ALL
@@ -2108,8 +2048,6 @@
SELECT i+1 FROM foo WHERE i < 5) AS t
) SELECT * FROM foo;
ERROR: recursive reference to query "foo" must not appear more than once
-LINE 7: SELECT i+1 FROM foo WHERE i < 5) AS t
- ^
WITH RECURSIVE foo(i) AS
(values (1)
UNION ALL
@@ -2118,8 +2056,6 @@
SELECT i+1 FROM foo WHERE i < 5)
) SELECT * FROM foo;
ERROR: recursive reference to query "foo" must not appear within EXCEPT
-LINE 6: SELECT i+1 FROM foo WHERE i < 5)
- ^
WITH RECURSIVE foo(i) AS
(values (1)
UNION ALL
@@ -2128,8 +2064,6 @@
SELECT i+1 FROM foo WHERE i < 5)
) SELECT * FROM foo;
ERROR: recursive reference to query "foo" must not appear more than once
-LINE 6: SELECT i+1 FROM foo WHERE i < 5)
- ^
-- Wrong type induced from non-recursive term
WITH RECURSIVE foo(i) AS
(SELECT i FROM (VALUES(1),(2)) t(i)
@@ -2137,8 +2071,6 @@
SELECT (i+1)::numeric(10,0) FROM foo WHERE i < 10)
SELECT * FROM foo;
ERROR: recursive query "foo" column 1 has type integer in non-recursive term but type numeric overall
-LINE 2: (SELECT i FROM (VALUES(1),(2)) t(i)
- ^
HINT: Cast the output of the non-recursive term to the correct type.
-- rejects different typmod, too (should we allow this?)
WITH RECURSIVE foo(i) AS
@@ -2147,8 +2079,6 @@
SELECT (i+1)::numeric(10,0) FROM foo WHERE i < 10)
SELECT * FROM foo;
ERROR: recursive query "foo" column 1 has type numeric(3,0) in non-recursive term but type numeric overall
-LINE 2: (SELECT i::numeric(3,0) FROM (VALUES(1),(2)) t(i)
- ^
HINT: Cast the output of the non-recursive term to the correct type.
-- disallow OLD/NEW reference in CTE
CREATE TEMPORARY TABLE x (n integer);
@@ -2294,8 +2224,6 @@
)
SELECT * FROM outermost ORDER BY 1;
ERROR: relation "outermost" does not exist
-LINE 4: SELECT * FROM outermost -- fail
- ^
DETAIL: There is a WITH item named "outermost", but it cannot be referenced from this part of the query.
HINT: Use WITH RECURSIVE, or re-order the WITH items to remove forward references.
WITH RECURSIVE outermost(x) AS (
@@ -2318,8 +2246,6 @@
)
SELECT * FROM outermost ORDER BY 1;
ERROR: recursive reference to query "outermost" must not appear within a subquery
-LINE 2: WITH innermost as (SELECT 2 FROM outermost) -- fail
- ^
--
-- This test will fail with the old implementation of PARAM_EXEC parameter
-- assignment, because the "q1" Var passed down to A's targetlist subselect
@@ -3483,24 +3409,18 @@
)
VALUES(FALSE);
ERROR: recursive query "t" must not contain data-modifying statements
-LINE 1: WITH RECURSIVE t AS (
- ^
-- no RETURNING in a referenced data-modifying WITH
WITH t AS (
INSERT INTO y VALUES(0)
)
SELECT * FROM t;
ERROR: WITH query "t" does not have a RETURNING clause
-LINE 4: SELECT * FROM t;
- ^
-- data-modifying WITH allowed only at the top level
SELECT * FROM (
WITH t AS (UPDATE y SET a=a+1 RETURNING *)
SELECT * FROM t
) ss;
ERROR: WITH clause containing a data-modifying statement must be at the top level
-LINE 2: WITH t AS (UPDATE y SET a=a+1 RETURNING *)
- ^
-- most variants of rules aren't allowed
CREATE RULE y_rule AS ON INSERT TO y WHERE a=0 DO INSTEAD DELETE FROM y;
WITH t AS (
@@ -3552,8 +3472,6 @@
-- check sane response to attempt to modify CTE relation
WITH with_test AS (SELECT 42) INSERT INTO with_test VALUES (1);
ERROR: relation "with_test" does not exist
-LINE 1: WITH with_test AS (SELECT 42) INSERT INTO with_test VALUES (...
- ^
-- check response to attempt to modify table with same name as a CTE (perhaps
-- surprisingly it works, because CTEs don't hide tables from data-modifying
-- statements)
diff -U3 /tmp/cirrus-ci-build/src/test/regress/expected/xml.out /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/xml.out
--- /tmp/cirrus-ci-build/src/test/regress/expected/xml.out 2024-02-22 13:04:49.017766000 +0000
+++ /tmp/cirrus-ci-build/build/testrun/recovery/027_stream_regress/data/results/xml.out 2024-02-22 13:08:29.841635000 +0000
@@ -6,8 +6,6 @@
INSERT INTO xmltest VALUES (2, 'two');
INSERT INTO xmltest VALUES (3, '' IS NOT DOCUMENT;
ERROR: invalid XML content
-LINE 1: SELECT '<>' IS NOT DOCUMENT;
- ^
DETAIL: line 1: StartTag: invalid element name
<>
^
@@ -744,15 +732,11 @@
EXECUTE foo ('bad');
ERROR: invalid XML document
-LINE 1: EXECUTE foo ('bad');
- ^
DETAIL: line 1: Start tag expected, '<' not found
bad
^
SELECT xml '';
ERROR: invalid XML document
-LINE 1: SELECT xml '';
- ^
DETAIL: line 1: Extra content at the end of the document
^
@@ -789,22 +773,16 @@
SELECT xml ' oops ';
ERROR: invalid XML content
-LINE 1: SELECT xml ' oops ';
- ^
DETAIL: line 1: StartTag: invalid element name
oops
^
SELECT xml ' ';
ERROR: invalid XML content
-LINE 1: SELECT xml ' ';
- ^
DETAIL: line 1: StartTag: invalid element name
^
SELECT xml '';
ERROR: invalid XML content
-LINE 1: SELECT xml '';
- ^
DETAIL: line 1: Extra content at the end of the document
^