You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudberry.apache.org by ch...@apache.org on 2026/04/05 04:40:36 UTC
(cloudberry) branch cbdb-postgres-merge_jinbao1 created (now 9f54e02eca1)
This is an automated email from the ASF dual-hosted git repository.
chenjinbao1989 pushed a change to branch cbdb-postgres-merge_jinbao1
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
at 9f54e02eca1 Fix some answer file for single node tests
This branch includes the following new commits:
new 9f54e02eca1 Fix some answer file for single node tests
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org
(cloudberry) 01/01: Fix some answer file for single node tests
Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chenjinbao1989 pushed a commit to branch cbdb-postgres-merge_jinbao1
in repository https://gitbox.apache.org/repos/asf/cloudberry.git
commit 9f54e02eca159588f857e70dd084b274fc953da8
Author: Jinbao Chen <ch...@gmail.com>
AuthorDate: Sun Apr 5 00:40:26 2026 -0400
Fix some answer file for single node tests
---
.../singlenode_regress/expected/aggregates.out | 96 +++++----
.../singlenode_regress/expected/alter_generic.out | 38 ++--
.../singlenode_regress/expected/aocs_sample.out | 4 +-
.../expected/appendonly_sample.out | 4 +-
.../singlenode_regress/expected/btree_index.out | 6 +-
src/test/singlenode_regress/expected/collate.out | 26 +--
src/test/singlenode_regress/expected/copy2.out | 2 +
src/test/singlenode_regress/expected/copydml.out | 6 +-
.../singlenode_regress/expected/copyselect.out | 10 +
.../expected/create_function_3.out | 2 +-
.../expected/create_operator.out | 8 +-
.../expected/create_table_like.out | 3 +-
.../singlenode_regress/expected/create_view.out | 218 ++++++++++-----------
src/test/singlenode_regress/expected/date.out | 28 +--
src/test/singlenode_regress/expected/dbsize.out | 4 +-
.../singlenode_regress/expected/expressions.out | 24 +--
src/test/singlenode_regress/expected/geometry.out | 82 +++++++-
.../singlenode_regress/expected/groupingsets.out | 37 ++--
src/test/singlenode_regress/expected/horology.out | 80 ++++----
.../expected/incremental_sort.out | 26 ++-
.../expected/insert_conflict.out | 2 +-
src/test/singlenode_regress/expected/interval.out | 4 +-
src/test/singlenode_regress/expected/join.out | 110 +++++------
src/test/singlenode_regress/expected/json.out | 11 +-
.../expected/jsonpath_encoding.out | 12 +-
src/test/singlenode_regress/expected/limit.out | 24 +--
src/test/singlenode_regress/expected/matview.out | 24 +--
.../singlenode_regress/expected/misc_sanity.out | 25 +++
src/test/singlenode_regress/expected/numeric.out | 130 ++++++------
.../singlenode_regress/expected/object_address.out | 13 +-
.../singlenode_regress/expected/opr_sanity.out | 14 +-
src/test/singlenode_regress/expected/plpgsql.out | 18 +-
src/test/singlenode_regress/expected/prepare.out | 2 +-
src/test/singlenode_regress/expected/psql.out | 25 +--
.../singlenode_regress/expected/publication.out | 18 +-
src/test/singlenode_regress/expected/regproc.out | 28 ++-
.../singlenode_regress/expected/rowsecurity.out | 52 ++---
.../singlenode_regress/expected/sanity_check.out | 2 +
src/test/singlenode_regress/expected/select.out | 28 ++-
.../expected/select_distinct.out | 2 +-
.../singlenode_regress/expected/subscription.out | 96 ++++-----
src/test/singlenode_regress/expected/subselect.out | 3 +-
src/test/singlenode_regress/expected/sysviews.out | 3 +-
.../singlenode_regress/expected/tablesample.out | 4 +-
src/test/singlenode_regress/expected/tidscan.out | 8 +-
src/test/singlenode_regress/expected/time.out | 6 +-
.../singlenode_regress/expected/timestamptz.out | 130 ++++++------
src/test/singlenode_regress/expected/timetz.out | 4 +-
.../singlenode_regress/expected/transactions.out | 56 ++++++
src/test/singlenode_regress/expected/triggers.out | 10 +-
src/test/singlenode_regress/expected/tsearch.out | 18 +-
src/test/singlenode_regress/expected/tstypes.out | 12 +-
src/test/singlenode_regress/expected/union.out | 2 +-
src/test/singlenode_regress/expected/vacuum.out | 102 +++++-----
.../singlenode_regress/expected/vacuum_stats.out | 8 +-
src/test/singlenode_regress/expected/window.out | 56 +++---
src/test/singlenode_regress/expected/xid.out | 32 ++-
57 files changed, 984 insertions(+), 814 deletions(-)
diff --git a/src/test/singlenode_regress/expected/aggregates.out b/src/test/singlenode_regress/expected/aggregates.out
index e48b6dba5f5..c78531d3e5e 100644
--- a/src/test/singlenode_regress/expected/aggregates.out
+++ b/src/test/singlenode_regress/expected/aggregates.out
@@ -1290,37 +1290,33 @@ explain (costs off) select a,c from t1 group by a,c,d;
explain (costs off) select *
from t1 inner join t2 on t1.a = t2.x and t1.b = t2.y
group by t1.a,t1.b,t1.c,t1.d,t2.x,t2.y,t2.z;
- QUERY PLAN
-------------------------------------------------------------
- GroupAggregate
- Group Key: t1.a, t1.b, t2.x, t2.y
- -> Sort
- Sort Key: t1.a, t1.b
- -> Hash Join
- Hash Cond: ((t2.x = t1.a) AND (t2.y = t1.b))
- -> Seq Scan on t2
- -> Hash
- -> Seq Scan on t1
+ QUERY PLAN
+------------------------------------------------------
+ HashAggregate
+ Group Key: t1.a, t1.b
+ -> Hash Join
+ Hash Cond: ((t2.x = t1.a) AND (t2.y = t1.b))
+ -> Seq Scan on t2
+ -> Hash
+ -> Seq Scan on t1
Optimizer: Postgres query optimizer
-(10 rows)
+(8 rows)
-- Test case where t1 can be optimized but not t2
explain (costs off) select t1.*,t2.x,t2.z
from t1 inner join t2 on t1.a = t2.x and t1.b = t2.y
group by t1.a,t1.b,t1.c,t1.d,t2.x,t2.z;
- QUERY PLAN
-------------------------------------------------------------
- GroupAggregate
- Group Key: t1.a, t1.b, t2.x, t2.z
- -> Sort
- Sort Key: t1.a, t1.b, t2.z
- -> Hash Join
- Hash Cond: ((t2.x = t1.a) AND (t2.y = t1.b))
- -> Seq Scan on t2
- -> Hash
- -> Seq Scan on t1
+ QUERY PLAN
+------------------------------------------------------
+ HashAggregate
+ Group Key: t1.a, t1.b, t2.z
+ -> Hash Join
+ Hash Cond: ((t2.x = t1.a) AND (t2.y = t1.b))
+ -> Seq Scan on t2
+ -> Hash
+ -> Seq Scan on t1
Optimizer: Postgres query optimizer
-(10 rows)
+(8 rows)
-- Cannot optimize when PK is deferrable
explain (costs off) select * from t3 group by a,b,c;
@@ -1564,7 +1560,7 @@ select * from agg_view1;
select pg_get_viewdef('agg_view1'::regclass);
pg_get_viewdef
---------------------------------------------------------------------------------------------------------------------
- SELECT aggfns(v.a, v.b, v.c) AS aggfns +
+ SELECT aggfns(a, b, c) AS aggfns +
FROM ( VALUES (1,3,'foo'::text), (0,NULL::integer,NULL::text), (2,2,'bar'::text), (3,1,'baz'::text)) v(a, b, c);
(1 row)
@@ -1616,7 +1612,7 @@ select * from agg_view1;
select pg_get_viewdef('agg_view1'::regclass);
pg_get_viewdef
---------------------------------------------------------------------------------------------------------------------
- SELECT aggfns(v.a, v.b, v.c ORDER BY (v.b + 1)) AS aggfns +
+ SELECT aggfns(a, b, c ORDER BY (b + 1)) AS aggfns +
FROM ( VALUES (1,3,'foo'::text), (0,NULL::integer,NULL::text), (2,2,'bar'::text), (3,1,'baz'::text)) v(a, b, c);
(1 row)
@@ -1632,7 +1628,7 @@ select * from agg_view1;
select pg_get_viewdef('agg_view1'::regclass);
pg_get_viewdef
---------------------------------------------------------------------------------------------------------------------
- SELECT aggfns(v.a, v.a, v.c ORDER BY v.b) AS aggfns +
+ SELECT aggfns(a, a, c ORDER BY b) AS aggfns +
FROM ( VALUES (1,3,'foo'::text), (0,NULL::integer,NULL::text), (2,2,'bar'::text), (3,1,'baz'::text)) v(a, b, c);
(1 row)
@@ -1648,7 +1644,7 @@ select * from agg_view1;
select pg_get_viewdef('agg_view1'::regclass);
pg_get_viewdef
---------------------------------------------------------------------------------------------------------------------
- SELECT aggfns(v.a, v.b, v.c ORDER BY v.c USING ~<~ NULLS LAST) AS aggfns +
+ SELECT aggfns(a, b, c ORDER BY c USING ~<~ NULLS LAST) AS aggfns +
FROM ( VALUES (1,3,'foo'::text), (0,NULL::integer,NULL::text), (2,2,'bar'::text), (3,1,'baz'::text)) v(a, b, c);
(1 row)
@@ -1866,14 +1862,14 @@ 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: sum is not an ordered-set aggregate, so it cannot have WITHIN GROUP
-LINE 1: select p, sum() within group (order by x::float8)
+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)
+LINE 1: select p, percentile_cont(p,p) -- error
^
select percentile_cont(0.5) within group (order by b) from aggtest;
percentile_cont
@@ -2070,15 +2066,15 @@ select ten,
reset optimizer_trace_fallback;
-- end_ignore
select pg_get_viewdef('aggordview1');
- pg_get_viewdef
--------------------------------------------------------------------------------------------------------------------------------
- SELECT tenk1.ten, +
- percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY tenk1.thousand) AS p50, +
- percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY tenk1.thousand) FILTER (WHERE (tenk1.hundred = 1)) AS px,+
- rank(5, 'AZZZZ'::name, 50) WITHIN GROUP (ORDER BY tenk1.hundred, tenk1.string4 DESC, tenk1.hundred) AS rank +
- FROM tenk1 +
- GROUP BY tenk1.ten +
- ORDER BY tenk1.ten;
+ pg_get_viewdef
+-------------------------------------------------------------------------------------------------------------------
+ SELECT ten, +
+ percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY thousand) AS p50, +
+ percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY thousand) FILTER (WHERE (hundred = 1)) AS px,+
+ rank(5, 'AZZZZ'::name, 50) WITHIN GROUP (ORDER BY hundred, string4 DESC, hundred) AS rank +
+ FROM tenk1 +
+ GROUP BY ten +
+ ORDER BY ten;
(1 row)
-- start_ignore
@@ -2309,14 +2305,14 @@ 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: sum is not an ordered-set aggregate, so it cannot have WITHIN GROUP
-LINE 1: select p, sum() within group (order by x::float8)
+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)
+LINE 1: select p, percentile_cont(p,p) -- error
^
select percentile_cont(0.5) within group (order by b) from aggtest;
percentile_cont
@@ -2513,15 +2509,15 @@ select ten,
reset optimizer_trace_fallback;
-- end_ignore
select pg_get_viewdef('aggordview1');
- pg_get_viewdef
--------------------------------------------------------------------------------------------------------------------------------
- SELECT tenk1.ten, +
- percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY tenk1.thousand) AS p50, +
- percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY tenk1.thousand) FILTER (WHERE (tenk1.hundred = 1)) AS px,+
- rank(5, 'AZZZZ'::name, 50) WITHIN GROUP (ORDER BY tenk1.hundred, tenk1.string4 DESC, tenk1.hundred) AS rank +
- FROM tenk1 +
- GROUP BY tenk1.ten +
- ORDER BY tenk1.ten;
+ pg_get_viewdef
+-------------------------------------------------------------------------------------------------------------------
+ SELECT ten, +
+ percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY thousand) AS p50, +
+ percentile_disc((0.5)::double precision) WITHIN GROUP (ORDER BY thousand) FILTER (WHERE (hundred = 1)) AS px,+
+ rank(5, 'AZZZZ'::name, 50) WITHIN GROUP (ORDER BY hundred, string4 DESC, hundred) AS rank +
+ FROM tenk1 +
+ GROUP BY ten +
+ ORDER BY ten;
(1 row)
-- start_ignore
diff --git a/src/test/singlenode_regress/expected/alter_generic.out b/src/test/singlenode_regress/expected/alter_generic.out
index 8953c5c7d71..1808999ed5d 100644
--- a/src/test/singlenode_regress/expected/alter_generic.out
+++ b/src/test/singlenode_regress/expected/alter_generic.out
@@ -38,7 +38,7 @@ ALTER FUNCTION alt_func1(int) RENAME TO alt_func2; -- failed (name conflict)
ERROR: function alt_func2(integer) already exists in schema "alt_nsp1"
ALTER FUNCTION alt_func1(int) RENAME TO alt_func3; -- OK
ALTER FUNCTION alt_func2(int) OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER FUNCTION alt_func2(int) OWNER TO regress_alter_generic_user3; -- OK
ALTER FUNCTION alt_func2(int) SET SCHEMA alt_nsp1; -- OK, already there
ALTER FUNCTION alt_func2(int) SET SCHEMA alt_nsp2; -- OK
@@ -46,7 +46,7 @@ ALTER AGGREGATE alt_agg1(int) RENAME TO alt_agg2; -- failed (name conflict)
ERROR: function alt_agg2(integer) already exists in schema "alt_nsp1"
ALTER AGGREGATE alt_agg1(int) RENAME TO alt_agg3; -- OK
ALTER AGGREGATE alt_agg2(int) OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER AGGREGATE alt_agg2(int) OWNER TO regress_alter_generic_user3; -- OK
ALTER AGGREGATE alt_agg2(int) SET SCHEMA alt_nsp2; -- OK
SET SESSION AUTHORIZATION regress_alter_generic_user2;
@@ -66,7 +66,7 @@ ALTER FUNCTION alt_func1(int) RENAME TO alt_func4; -- OK
ALTER FUNCTION alt_func3(int) OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of function alt_func3
ALTER FUNCTION alt_func2(int) OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER FUNCTION alt_func3(int) SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of function alt_func3
ALTER FUNCTION alt_func2(int) SET SCHEMA alt_nsp2; -- failed (name conflicts)
@@ -77,7 +77,7 @@ ALTER AGGREGATE alt_agg1(int) RENAME TO alt_agg4; -- OK
ALTER AGGREGATE alt_agg3(int) OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of function alt_agg3
ALTER AGGREGATE alt_agg2(int) OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER AGGREGATE alt_agg3(int) SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of function alt_agg3
ALTER AGGREGATE alt_agg2(int) SET SCHEMA alt_nsp2; -- failed (name conflict)
@@ -114,7 +114,7 @@ ALTER CONVERSION alt_conv1 RENAME TO alt_conv2; -- failed (name conflict)
ERROR: conversion "alt_conv2" already exists in schema "alt_nsp1"
ALTER CONVERSION alt_conv1 RENAME TO alt_conv3; -- OK
ALTER CONVERSION alt_conv2 OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER CONVERSION alt_conv2 OWNER TO regress_alter_generic_user3; -- OK
ALTER CONVERSION alt_conv2 SET SCHEMA alt_nsp2; -- OK
SET SESSION AUTHORIZATION regress_alter_generic_user2;
@@ -126,7 +126,7 @@ ALTER CONVERSION alt_conv1 RENAME TO alt_conv4; -- OK
ALTER CONVERSION alt_conv3 OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of conversion alt_conv3
ALTER CONVERSION alt_conv2 OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER CONVERSION alt_conv3 SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of conversion alt_conv3
ALTER CONVERSION alt_conv2 SET SCHEMA alt_nsp2; -- failed (name conflict)
@@ -188,7 +188,7 @@ ALTER LANGUAGE alt_lang1 RENAME TO alt_lang3; -- OK
ALTER LANGUAGE alt_lang2 OWNER TO regress_alter_generic_user3; -- failed (not owner)
ERROR: must be owner of language alt_lang2
ALTER LANGUAGE alt_lang3 OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER LANGUAGE alt_lang3 OWNER TO regress_alter_generic_user3; -- OK
RESET SESSION AUTHORIZATION;
SELECT lanname, a.rolname
@@ -208,7 +208,7 @@ SET SESSION AUTHORIZATION regress_alter_generic_user1;
CREATE OPERATOR @-@ ( leftarg = int4, rightarg = int4, procedure = int4mi );
CREATE OPERATOR @+@ ( leftarg = int4, rightarg = int4, procedure = int4pl );
ALTER OPERATOR @+@(int4, int4) OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER OPERATOR @+@(int4, int4) OWNER TO regress_alter_generic_user3; -- OK
ALTER OPERATOR @-@(int4, int4) SET SCHEMA alt_nsp2; -- OK
SET SESSION AUTHORIZATION regress_alter_generic_user2;
@@ -216,7 +216,7 @@ CREATE OPERATOR @-@ ( leftarg = int4, rightarg = int4, procedure = int4mi );
ALTER OPERATOR @+@(int4, int4) OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of operator @+@
ALTER OPERATOR @-@(int4, int4) OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER OPERATOR @+@(int4, int4) SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of operator @+@
-- can't test this: the error message includes the raw oid of namespace
@@ -251,14 +251,14 @@ ALTER OPERATOR FAMILY alt_opf1 USING hash RENAME TO alt_opf2; -- failed (name c
ERROR: operator family "alt_opf2" for access method "hash" already exists in schema "alt_nsp1"
ALTER OPERATOR FAMILY alt_opf1 USING hash RENAME TO alt_opf3; -- OK
ALTER OPERATOR FAMILY alt_opf2 USING hash OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER OPERATOR FAMILY alt_opf2 USING hash OWNER TO regress_alter_generic_user3; -- OK
ALTER OPERATOR FAMILY alt_opf2 USING hash SET SCHEMA alt_nsp2; -- OK
ALTER OPERATOR CLASS alt_opc1 USING hash RENAME TO alt_opc2; -- failed (name conflict)
ERROR: operator class "alt_opc2" for access method "hash" already exists in schema "alt_nsp1"
ALTER OPERATOR CLASS alt_opc1 USING hash RENAME TO alt_opc3; -- OK
ALTER OPERATOR CLASS alt_opc2 USING hash OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER OPERATOR CLASS alt_opc2 USING hash OWNER TO regress_alter_generic_user3; -- OK
ALTER OPERATOR CLASS alt_opc2 USING hash SET SCHEMA alt_nsp2; -- OK
RESET SESSION AUTHORIZATION;
@@ -277,7 +277,7 @@ ALTER OPERATOR FAMILY alt_opf1 USING hash RENAME TO alt_opf4; -- OK
ALTER OPERATOR FAMILY alt_opf3 USING hash OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of operator family alt_opf3
ALTER OPERATOR FAMILY alt_opf2 USING hash OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER OPERATOR FAMILY alt_opf3 USING hash SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of operator family alt_opf3
ALTER OPERATOR FAMILY alt_opf2 USING hash SET SCHEMA alt_nsp2; -- failed (name conflict)
@@ -288,7 +288,7 @@ ALTER OPERATOR CLASS alt_opc1 USING hash RENAME TO alt_opc4; -- OK
ALTER OPERATOR CLASS alt_opc3 USING hash OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of operator class alt_opc3
ALTER OPERATOR CLASS alt_opc2 USING hash OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER OPERATOR CLASS alt_opc3 USING hash SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of operator class alt_opc3
ALTER OPERATOR CLASS alt_opc2 USING hash SET SCHEMA alt_nsp2; -- failed (name conflict)
@@ -524,7 +524,7 @@ ALTER STATISTICS alt_stat1 RENAME TO alt_stat2; -- failed (name conflict)
ERROR: statistics object "alt_stat2" already exists in schema "alt_nsp1"
ALTER STATISTICS alt_stat1 RENAME TO alt_stat3; -- OK
ALTER STATISTICS alt_stat2 OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER STATISTICS alt_stat2 OWNER TO regress_alter_generic_user3; -- OK
ALTER STATISTICS alt_stat2 SET SCHEMA alt_nsp2; -- OK
SET SESSION AUTHORIZATION regress_alter_generic_user2;
@@ -537,7 +537,7 @@ ALTER STATISTICS alt_stat1 RENAME TO alt_stat4; -- OK
ALTER STATISTICS alt_stat3 OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of statistics object alt_stat3
ALTER STATISTICS alt_stat2 OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER STATISTICS alt_stat3 SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of statistics object alt_stat3
ALTER STATISTICS alt_stat2 SET SCHEMA alt_nsp2; -- failed (name conflict)
@@ -566,7 +566,7 @@ ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 RENAME TO alt_ts_dict2; -- failed (na
ERROR: text search dictionary "alt_ts_dict2" already exists in schema "alt_nsp1"
ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 RENAME TO alt_ts_dict3; -- OK
ALTER TEXT SEARCH DICTIONARY alt_ts_dict2 OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER TEXT SEARCH DICTIONARY alt_ts_dict2 OWNER TO regress_alter_generic_user3; -- OK
ALTER TEXT SEARCH DICTIONARY alt_ts_dict2 SET SCHEMA alt_nsp2; -- OK
SET SESSION AUTHORIZATION regress_alter_generic_user2;
@@ -578,7 +578,7 @@ ALTER TEXT SEARCH DICTIONARY alt_ts_dict1 RENAME TO alt_ts_dict4; -- OK
ALTER TEXT SEARCH DICTIONARY alt_ts_dict3 OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of text search dictionary alt_ts_dict3
ALTER TEXT SEARCH DICTIONARY alt_ts_dict2 OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER TEXT SEARCH DICTIONARY alt_ts_dict3 SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of text search dictionary alt_ts_dict3
ALTER TEXT SEARCH DICTIONARY alt_ts_dict2 SET SCHEMA alt_nsp2; -- failed (name conflict)
@@ -607,7 +607,7 @@ ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 RENAME TO alt_ts_conf2; -- failed
ERROR: text search configuration "alt_ts_conf2" already exists in schema "alt_nsp1"
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 RENAME TO alt_ts_conf3; -- OK
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf2 OWNER TO regress_alter_generic_user2; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user2"
+ERROR: must be able to SET ROLE "regress_alter_generic_user2"
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf2 OWNER TO regress_alter_generic_user3; -- OK
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf2 SET SCHEMA alt_nsp2; -- OK
SET SESSION AUTHORIZATION regress_alter_generic_user2;
@@ -619,7 +619,7 @@ ALTER TEXT SEARCH CONFIGURATION alt_ts_conf1 RENAME TO alt_ts_conf4; -- OK
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf3 OWNER TO regress_alter_generic_user2; -- failed (not owner)
ERROR: must be owner of text search configuration alt_ts_conf3
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf2 OWNER TO regress_alter_generic_user3; -- failed (no role membership)
-ERROR: must be member of role "regress_alter_generic_user3"
+ERROR: must be able to SET ROLE "regress_alter_generic_user3"
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf3 SET SCHEMA alt_nsp2; -- failed (not owner)
ERROR: must be owner of text search configuration alt_ts_conf3
ALTER TEXT SEARCH CONFIGURATION alt_ts_conf2 SET SCHEMA alt_nsp2; -- failed (name conflict)
diff --git a/src/test/singlenode_regress/expected/aocs_sample.out b/src/test/singlenode_regress/expected/aocs_sample.out
index cf969dfd0d3..790e43e11cf 100644
--- a/src/test/singlenode_regress/expected/aocs_sample.out
+++ b/src/test/singlenode_regress/expected/aocs_sample.out
@@ -120,7 +120,7 @@ CREATE VIEW test_aocs_tablesample_append_v2 AS
--------+---------+-----------+----------+---------+---------+-------------
id | integer | | | | plain |
View definition:
- SELECT test_aocs_tablesample_append.id
+ SELECT id
FROM test_aocs_tablesample_append TABLESAMPLE system ((10 * 2)) REPEATABLE (2);
\d+ test_aocs_tablesample_append_v2
@@ -129,7 +129,7 @@ View definition:
--------+---------+-----------+----------+---------+---------+-------------
id | integer | | | | plain |
View definition:
- SELECT test_aocs_tablesample_append.id
+ SELECT id
FROM test_aocs_tablesample_append TABLESAMPLE system (99);
-- check a sampled query doesn't affect cursor in progress
diff --git a/src/test/singlenode_regress/expected/appendonly_sample.out b/src/test/singlenode_regress/expected/appendonly_sample.out
index d43307e6a3b..c0735fd4b9d 100644
--- a/src/test/singlenode_regress/expected/appendonly_sample.out
+++ b/src/test/singlenode_regress/expected/appendonly_sample.out
@@ -120,7 +120,7 @@ CREATE VIEW test_tablesample_append_v2 AS
--------+---------+-----------+----------+---------+---------+-------------
id | integer | | | | plain |
View definition:
- SELECT test_tablesample_append.id
+ SELECT id
FROM test_tablesample_append TABLESAMPLE system ((10 * 2)) REPEATABLE (2);
\d+ test_tablesample_append_v2
@@ -129,7 +129,7 @@ View definition:
--------+---------+-----------+----------+---------+---------+-------------
id | integer | | | | plain |
View definition:
- SELECT test_tablesample_append.id
+ SELECT id
FROM test_tablesample_append TABLESAMPLE system (99);
-- check a sampled query doesn't affect cursor in progress
diff --git a/src/test/singlenode_regress/expected/btree_index.out b/src/test/singlenode_regress/expected/btree_index.out
index 711a5e6ef26..ff3fa62b7d1 100644
--- a/src/test/singlenode_regress/expected/btree_index.out
+++ b/src/test/singlenode_regress/expected/btree_index.out
@@ -346,11 +346,13 @@ ERROR: operator class int4_ops has no options
-- This grammar is not officially supported, but the parser allows it.
CREATE INDEX btree_tall_idx2 ON btree_tall_tbl (id);
ALTER INDEX btree_tall_idx2 ALTER COLUMN id SET (n_distinct=100);
-ERROR: "btree_tall_idx2" is not a table, materialized view, or foreign table
+ERROR: ALTER action ALTER COLUMN ... SET cannot be performed on relation "btree_tall_idx2"
+DETAIL: This operation is not supported for indexes.
DROP INDEX btree_tall_idx2;
-- Partitioned index
CREATE TABLE btree_part (id int4) PARTITION BY RANGE (id);
CREATE INDEX btree_part_idx ON btree_part(id);
ALTER INDEX btree_part_idx ALTER COLUMN id SET (n_distinct=100);
-ERROR: "btree_part_idx" is not a table, materialized view, or foreign table
+ERROR: ALTER action ALTER COLUMN ... SET cannot be performed on relation "btree_part_idx"
+DETAIL: This operation is not supported for partitioned indexes.
DROP TABLE btree_part;
diff --git a/src/test/singlenode_regress/expected/collate.out b/src/test/singlenode_regress/expected/collate.out
index 84db8cb0129..94e88e1c7e7 100644
--- a/src/test/singlenode_regress/expected/collate.out
+++ b/src/test/singlenode_regress/expected/collate.out
@@ -194,18 +194,18 @@ CREATE VIEW collview2 AS SELECT a, b FROM collate_test1 ORDER BY b COLLATE "C";
CREATE VIEW collview3 AS SELECT a, lower((x || x) COLLATE "POSIX") FROM collate_test10;
SELECT table_name, view_definition FROM information_schema.views
WHERE table_name LIKE 'collview%' ORDER BY 1;
- table_name | view_definition
-------------+------------------------------------------------------------------------------
- collview1 | SELECT collate_test1.a, +
- | collate_test1.b +
- | FROM collate_test1 +
- | WHERE ((collate_test1.b COLLATE "C") >= 'bbc'::text);
- collview2 | SELECT collate_test1.a, +
- | collate_test1.b +
- | FROM collate_test1 +
- | ORDER BY (collate_test1.b COLLATE "C");
- collview3 | SELECT collate_test10.a, +
- | lower(((collate_test10.x || collate_test10.x) COLLATE "POSIX")) AS lower+
+ table_name | view_definition
+------------+------------------------------------------------
+ collview1 | SELECT a, +
+ | b +
+ | FROM collate_test1 +
+ | WHERE ((b COLLATE "C") >= 'bbc'::text);
+ collview2 | SELECT a, +
+ | b +
+ | FROM collate_test1 +
+ | ORDER BY (b COLLATE "C");
+ collview3 | SELECT a, +
+ | lower(((x || x) COLLATE "POSIX")) AS lower+
| FROM collate_test10;
(3 rows)
@@ -696,7 +696,7 @@ SELECT c1+1 AS c1p FROM
--------+---------+-----------+----------+---------+---------+-------------
c1p | integer | | | | plain |
View definition:
- SELECT ss.c1 + 1 AS c1p
+ SELECT c1 + 1 AS c1p
FROM ( SELECT 4 AS c1) ss;
--
diff --git a/src/test/singlenode_regress/expected/copy2.out b/src/test/singlenode_regress/expected/copy2.out
index 70e60477fee..c3ea1ca25e6 100644
--- a/src/test/singlenode_regress/expected/copy2.out
+++ b/src/test/singlenode_regress/expected/copy2.out
@@ -67,6 +67,8 @@ 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...
diff --git a/src/test/singlenode_regress/expected/copydml.out b/src/test/singlenode_regress/expected/copydml.out
index b5a225628f4..10535bbf0c1 100644
--- a/src/test/singlenode_regress/expected/copydml.out
+++ b/src/test/singlenode_regress/expected/copydml.out
@@ -38,7 +38,7 @@ ERROR: DO INSTEAD NOTHING rules are not supported for COPY
drop rule qqq on copydml_test;
create rule qqq as on insert to copydml_test do also delete from copydml_test;
copy (insert into copydml_test default values) to stdout;
-ERROR: DO ALSO rules are not supported for the COPY
+ERROR: DO ALSO rules are not supported for COPY
drop rule qqq on copydml_test;
create rule qqq as on insert to copydml_test do instead (delete from copydml_test; delete from copydml_test);
copy (insert into copydml_test default values) to stdout;
@@ -54,7 +54,7 @@ ERROR: DO INSTEAD NOTHING rules are not supported for COPY
drop rule qqq on copydml_test;
create rule qqq as on update to copydml_test do also delete from copydml_test;
copy (update copydml_test set t = 'f') to stdout;
-ERROR: DO ALSO rules are not supported for the COPY
+ERROR: DO ALSO rules are not supported for COPY
drop rule qqq on copydml_test;
create rule qqq as on update to copydml_test do instead (delete from copydml_test; delete from copydml_test);
copy (update copydml_test set t = 'f') to stdout;
@@ -70,7 +70,7 @@ ERROR: DO INSTEAD NOTHING rules are not supported for COPY
drop rule qqq on copydml_test;
create rule qqq as on delete to copydml_test do also insert into copydml_test default values;
copy (delete from copydml_test) to stdout;
-ERROR: DO ALSO rules are not supported for the COPY
+ERROR: DO ALSO rules are not supported for COPY
drop rule qqq on copydml_test;
create rule qqq as on delete to copydml_test do instead (insert into copydml_test default values; insert into copydml_test default values);
copy (delete from copydml_test) to stdout;
diff --git a/src/test/singlenode_regress/expected/copyselect.out b/src/test/singlenode_regress/expected/copyselect.out
index 72865fe1ebe..3835495ecb1 100644
--- a/src/test/singlenode_regress/expected/copyselect.out
+++ b/src/test/singlenode_regress/expected/copyselect.out
@@ -129,6 +129,11 @@ ERROR: division by zero
copy (select 1) to stdout\; copy (select 2) to stdout\; select 0\; select 3; -- 1 2 3
1
2
+ ?column?
+----------
+ 0
+(1 row)
+
?column?
----------
3
@@ -136,6 +141,11 @@ copy (select 1) to stdout\; copy (select 2) to stdout\; select 0\; select 3; --
create table test3 (c int);
select 0\; copy test3 from stdin\; copy test3 from stdin\; select 1; -- 1
+ ?column?
+----------
+ 0
+(1 row)
+
?column?
----------
1
diff --git a/src/test/singlenode_regress/expected/create_function_3.out b/src/test/singlenode_regress/expected/create_function_3.out
index 3a4fd451471..e0c4bee8938 100644
--- a/src/test/singlenode_regress/expected/create_function_3.out
+++ b/src/test/singlenode_regress/expected/create_function_3.out
@@ -403,7 +403,7 @@ SELECT pg_get_functiondef('functest_S_13'::regproc);
LANGUAGE sql +
BEGIN ATOMIC +
SELECT 1; +
- SELECT false AS bool; +
+ SELECT false; +
END +
(1 row)
diff --git a/src/test/singlenode_regress/expected/create_operator.out b/src/test/singlenode_regress/expected/create_operator.out
index 0852dc18396..1d9ea1e37a7 100644
--- a/src/test/singlenode_regress/expected/create_operator.out
+++ b/src/test/singlenode_regress/expected/create_operator.out
@@ -214,7 +214,7 @@ CREATE OPERATOR #*# (
rightarg = int8,
procedure = fn_op3
);
-ERROR: permission denied for type type_op3
+ERROR: permission denied for schema public
ROLLBACK;
-- Should fail. CREATE OPERATOR requires USAGE on TYPE (need to check separately for rightarg)
BEGIN TRANSACTION;
@@ -233,7 +233,7 @@ CREATE OPERATOR #*# (
rightarg = type_op4,
procedure = fn_op4
);
-ERROR: permission denied for type type_op4
+ERROR: permission denied for schema public
ROLLBACK;
-- Should fail. CREATE OPERATOR requires EXECUTE on function
BEGIN TRANSACTION;
@@ -252,7 +252,7 @@ CREATE OPERATOR #*# (
rightarg = int8,
procedure = fn_op5
);
-ERROR: permission denied for function fn_op5
+ERROR: permission denied for schema public
ROLLBACK;
-- Should fail. CREATE OPERATOR requires USAGE on return TYPE
BEGIN TRANSACTION;
@@ -271,7 +271,7 @@ CREATE OPERATOR #*# (
rightarg = int8,
procedure = fn_op6
);
-ERROR: permission denied for type type_op6
+ERROR: permission denied for schema public
ROLLBACK;
-- invalid: non-lowercase quoted identifiers
CREATE OPERATOR ===
diff --git a/src/test/singlenode_regress/expected/create_table_like.out b/src/test/singlenode_regress/expected/create_table_like.out
index f7544b7e2d1..0ed94f1d2fb 100644
--- a/src/test/singlenode_regress/expected/create_table_like.out
+++ b/src/test/singlenode_regress/expected/create_table_like.out
@@ -504,9 +504,10 @@ DROP TABLE noinh_con_copy, noinh_con_copy1;
CREATE TABLE ctlt4 (a int, b text);
CREATE SEQUENCE ctlseq1;
CREATE TABLE ctlt10 (LIKE ctlseq1); -- fail
-ERROR: "ctlseq1" is not a table, directory table, view, materialized view, composite type, or foreign table
+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);
CREATE TABLE ctlt11a (LIKE ctlv1 INCLUDING ALL);
diff --git a/src/test/singlenode_regress/expected/create_view.out b/src/test/singlenode_regress/expected/create_view.out
index fdc9294f1f2..970f9bbef2d 100644
--- a/src/test/singlenode_regress/expected/create_view.out
+++ b/src/test/singlenode_regress/expected/create_view.out
@@ -346,10 +346,10 @@ CREATE VIEW tt1 AS
c | numeric | | | | main |
d | character varying(4) | | | | extended |
View definition:
- SELECT vv.a,
- vv.b,
- vv.c,
- vv.d
+ SELECT a,
+ b,
+ c,
+ d
FROM ( VALUES ('abc'::character varying(3),'0123456789'::character varying,42,'abcd'::character varying(4)), ('0123456789'::character varying,'abc'::character varying(3),42.12,'abc'::character varying(4))) vv(a, b, c, d);
SELECT * FROM tt1;
@@ -391,9 +391,9 @@ CREATE VIEW aliased_view_4 AS
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.f1,
- tt1.f2,
- tt1.f3
+ SELECT f1,
+ f2,
+ f3
FROM tt1
WHERE (EXISTS ( SELECT 1
FROM tx1
@@ -407,9 +407,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a1.f1,
- a1.f2,
- a1.f3
+ SELECT f1,
+ f2,
+ f3
FROM tt1 a1
WHERE (EXISTS ( SELECT 1
FROM tx1
@@ -423,9 +423,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.f1,
- tt1.f2,
- tt1.f3
+ SELECT f1,
+ f2,
+ f3
FROM tt1
WHERE (EXISTS ( SELECT 1
FROM tx1 a2
@@ -439,9 +439,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.y1,
- tt1.f2,
- tt1.f3
+ SELECT y1,
+ f2,
+ f3
FROM temp_view_test.tt1
WHERE (EXISTS ( SELECT 1
FROM tt1 tt1_1
@@ -456,9 +456,9 @@ ALTER TABLE tx1 RENAME TO a1;
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.f1,
- tt1.f2,
- tt1.f3
+ SELECT f1,
+ f2,
+ f3
FROM tt1
WHERE (EXISTS ( SELECT 1
FROM a1
@@ -472,9 +472,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a1.f1,
- a1.f2,
- a1.f3
+ SELECT f1,
+ f2,
+ f3
FROM tt1 a1
WHERE (EXISTS ( SELECT 1
FROM a1 a1_1
@@ -488,9 +488,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.f1,
- tt1.f2,
- tt1.f3
+ SELECT f1,
+ f2,
+ f3
FROM tt1
WHERE (EXISTS ( SELECT 1
FROM a1 a2
@@ -504,9 +504,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.y1,
- tt1.f2,
- tt1.f3
+ SELECT y1,
+ f2,
+ f3
FROM temp_view_test.tt1
WHERE (EXISTS ( SELECT 1
FROM tt1 tt1_1
@@ -521,9 +521,9 @@ ALTER TABLE tt1 RENAME TO a2;
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a2.f1,
- a2.f2,
- a2.f3
+ SELECT f1,
+ f2,
+ f3
FROM a2
WHERE (EXISTS ( SELECT 1
FROM a1
@@ -537,9 +537,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a1.f1,
- a1.f2,
- a1.f3
+ SELECT f1,
+ f2,
+ f3
FROM a2 a1
WHERE (EXISTS ( SELECT 1
FROM a1 a1_1
@@ -553,9 +553,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a2.f1,
- a2.f2,
- a2.f3
+ SELECT f1,
+ f2,
+ f3
FROM a2
WHERE (EXISTS ( SELECT 1
FROM a1 a2_1
@@ -569,9 +569,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.y1,
- tt1.f2,
- tt1.f3
+ SELECT y1,
+ f2,
+ f3
FROM temp_view_test.tt1
WHERE (EXISTS ( SELECT 1
FROM a2
@@ -586,9 +586,9 @@ ALTER TABLE a1 RENAME TO tt1;
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a2.f1,
- a2.f2,
- a2.f3
+ SELECT f1,
+ f2,
+ f3
FROM a2
WHERE (EXISTS ( SELECT 1
FROM tt1
@@ -602,9 +602,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a1.f1,
- a1.f2,
- a1.f3
+ SELECT f1,
+ f2,
+ f3
FROM a2 a1
WHERE (EXISTS ( SELECT 1
FROM tt1
@@ -618,9 +618,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a2.f1,
- a2.f2,
- a2.f3
+ SELECT f1,
+ f2,
+ f3
FROM a2
WHERE (EXISTS ( SELECT 1
FROM tt1 a2_1
@@ -634,9 +634,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.y1,
- tt1.f2,
- tt1.f3
+ SELECT y1,
+ f2,
+ f3
FROM temp_view_test.tt1
WHERE (EXISTS ( SELECT 1
FROM a2
@@ -652,9 +652,9 @@ ALTER TABLE tx1 SET SCHEMA temp_view_test;
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tx1.f1,
- tx1.f2,
- tx1.f3
+ SELECT f1,
+ f2,
+ f3
FROM temp_view_test.tx1
WHERE (EXISTS ( SELECT 1
FROM tt1
@@ -668,9 +668,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a1.f1,
- a1.f2,
- a1.f3
+ SELECT f1,
+ f2,
+ f3
FROM temp_view_test.tx1 a1
WHERE (EXISTS ( SELECT 1
FROM tt1
@@ -684,9 +684,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tx1.f1,
- tx1.f2,
- tx1.f3
+ SELECT f1,
+ f2,
+ f3
FROM temp_view_test.tx1
WHERE (EXISTS ( SELECT 1
FROM tt1 a2
@@ -700,9 +700,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tt1.y1,
- tt1.f2,
- tt1.f3
+ SELECT y1,
+ f2,
+ f3
FROM temp_view_test.tt1
WHERE (EXISTS ( SELECT 1
FROM temp_view_test.tx1
@@ -719,9 +719,9 @@ ALTER TABLE tmp1 RENAME TO tx1;
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tx1.f1,
- tx1.f2,
- tx1.f3
+ SELECT f1,
+ f2,
+ f3
FROM temp_view_test.tx1
WHERE (EXISTS ( SELECT 1
FROM tt1
@@ -735,9 +735,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT a1.f1,
- a1.f2,
- a1.f3
+ SELECT f1,
+ f2,
+ f3
FROM temp_view_test.tx1 a1
WHERE (EXISTS ( SELECT 1
FROM tt1
@@ -751,9 +751,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tx1.f1,
- tx1.f2,
- tx1.f3
+ SELECT f1,
+ f2,
+ f3
FROM temp_view_test.tx1
WHERE (EXISTS ( SELECT 1
FROM tt1 a2
@@ -767,9 +767,9 @@ View definition:
f2 | integer | | | | plain |
f3 | text | | | | extended |
View definition:
- SELECT tx1.y1,
- tx1.f2,
- tx1.f3
+ SELECT y1,
+ f2,
+ f3
FROM tx1
WHERE (EXISTS ( SELECT 1
FROM temp_view_test.tx1 tx1_1
@@ -1256,10 +1256,10 @@ select pg_get_viewdef('v1', true);
select pg_get_viewdef('v4', true);
pg_get_viewdef
----------------
- SELECT v1.b, +
- v1.c, +
- v1.x AS a,+
- v1.ax +
+ SELECT b, +
+ c, +
+ x AS a, +
+ ax +
FROM v1;
(1 row)
@@ -1536,9 +1536,9 @@ create view tt14v as select t.* from tt14f() t;
select pg_get_viewdef('tt14v', true);
pg_get_viewdef
--------------------------------
- SELECT t.f1, +
- t.f3, +
- t.f4 +
+ SELECT f1, +
+ f3, +
+ f4 +
FROM tt14f() t(f1, f3, f4);
(1 row)
@@ -1670,8 +1670,8 @@ select * from tt17v;
select pg_get_viewdef('tt17v', true);
pg_get_viewdef
---------------------------------------------
- SELECT i.q1, +
- i.q2 +
+ SELECT q1, +
+ q2 +
FROM int8_tbl i +
WHERE (i.* IN ( VALUES (i.*::int8_tbl)));
(1 row)
@@ -1810,8 +1810,8 @@ select pg_get_viewdef('tt201v', true);
-----------------------------------------------------------------------------------------------
SELECT EXTRACT(day FROM now()) AS extr, +
((now(), '@ 1 day'::interval) OVERLAPS (CURRENT_TIMESTAMP(2), '@ 1 day'::interval)) AS o,+
- (('foo'::text) IS NORMALIZED) AS isn, +
- (('foo'::text) IS NFKC NORMALIZED) AS isnn, +
+ ('foo'::text IS NORMALIZED) AS isn, +
+ ('foo'::text IS NFKC NORMALIZED) AS isnn, +
NORMALIZE('foo'::text) AS n, +
NORMALIZE('foo'::text, NFKD) AS nfkd, +
OVERLAY('foo'::text PLACING 'bar'::text FROM 2) AS ovl, +
@@ -1923,19 +1923,19 @@ select pg_get_viewdef('tt25v', true);
-- also check cases seen only in EXPLAIN
explain (verbose, costs off)
select * from tt24v;
- QUERY PLAN
---------------------------------------------------------------------------------------------------
+ QUERY PLAN
+------------------------------------------------------------------------------------------------------
Hash Join
- Output: (share0_ref1.r).column2, ((ROW("*VALUES*".column1, "*VALUES*".column2))).column2
- Hash Cond: (((ROW("*VALUES*".column1, "*VALUES*".column2))).column1 = (share0_ref1.r).column1)
- -> Limit
- Output: (ROW("*VALUES*".column1, "*VALUES*".column2))
+ Output: (share0_ref1.r).column2, ((ROW("*VALUES*_1".column1, "*VALUES*_1".column2))).column2
+ Hash Cond: ((share0_ref1.r).column1 = ((ROW("*VALUES*_1".column1, "*VALUES*_1".column2))).column1)
+ -> Shared Scan (share slice:id -1:0)
+ Output: share0_ref1.r
-> Values Scan on "*VALUES*"
Output: ROW("*VALUES*".column1, "*VALUES*".column2)
-> Hash
- Output: share0_ref1.r
- -> Shared Scan (share slice:id -1:0)
- Output: share0_ref1.r
+ Output: (ROW("*VALUES*_1".column1, "*VALUES*_1".column2))
+ -> Limit
+ Output: (ROW("*VALUES*_1".column1, "*VALUES*_1".column2))
-> Values Scan on "*VALUES*_1"
Output: ROW("*VALUES*_1".column1, "*VALUES*_1".column2)
Optimizer: Postgres query optimizer
@@ -1968,19 +1968,19 @@ select x + y + z as c1,
(x,y) <= ANY (values(1,2),(3,4)) as c11
from (values(1,2,3)) v(x,y,z);
select pg_get_viewdef('tt26v', true);
- pg_get_viewdef
---------------------------------------------------------
- SELECT v.x + v.y + v.z AS c1, +
- v.x * v.y + v.z AS c2, +
- v.x + v.y * v.z AS c3, +
- (v.x + v.y) * v.z AS c4, +
- v.x * (v.y + v.z) AS c5, +
- v.x + (v.y + v.z) AS c6, +
- v.x + (v.y # v.z) AS c7, +
- v.x > v.y AND (v.y > v.z OR v.x > v.z) AS c8, +
- v.x > v.y OR (v.y > v.z AND NOT v.x > v.z) AS c9, +
- ((v.x, v.y) <> ALL ( VALUES (1,2), (3,4))) AS c10,+
- ((v.x, v.y) <= ANY ( VALUES (1,2), (3,4))) AS c11 +
+ pg_get_viewdef
+----------------------------------------------------
+ SELECT x + y + z AS c1, +
+ x * y + z AS c2, +
+ x + y * z AS c3, +
+ (x + y) * z AS c4, +
+ x * (y + z) AS c5, +
+ x + (y + z) AS c6, +
+ x + (y # z) AS c7, +
+ x > y AND (y > z OR x > z) AS c8, +
+ x > y OR (y > z AND NOT x > z) AS c9, +
+ ((x, y) <> ALL ( VALUES (1,2), (3,4))) AS c10,+
+ ((x, y) <= ANY ( VALUES (1,2), (3,4))) AS c11 +
FROM ( VALUES (1,2,3)) v(x, y, z);
(1 row)
diff --git a/src/test/singlenode_regress/expected/date.out b/src/test/singlenode_regress/expected/date.out
index c8b0566ff40..341123978ce 100644
--- a/src/test/singlenode_regress/expected/date.out
+++ b/src/test/singlenode_regress/expected/date.out
@@ -1129,15 +1129,15 @@ SELECT EXTRACT(DECADE FROM DATE '0012-12-31 BC'); -- -2
-- all possible fields
--
SELECT EXTRACT(MICROSECONDS FROM DATE '2020-08-11');
-ERROR: date units "microseconds" not supported
+ERROR: unit "microseconds" not supported for type date
SELECT EXTRACT(MILLISECONDS FROM DATE '2020-08-11');
-ERROR: date units "milliseconds" not supported
+ERROR: unit "milliseconds" not supported for type date
SELECT EXTRACT(SECOND FROM DATE '2020-08-11');
-ERROR: date units "second" not supported
+ERROR: unit "second" not supported for type date
SELECT EXTRACT(MINUTE FROM DATE '2020-08-11');
-ERROR: date units "minute" not supported
+ERROR: unit "minute" not supported for type date
SELECT EXTRACT(HOUR FROM DATE '2020-08-11');
-ERROR: date units "hour" not supported
+ERROR: unit "hour" not supported for type date
SELECT EXTRACT(DAY FROM DATE '2020-08-11');
extract
---------
@@ -1235,11 +1235,11 @@ SELECT EXTRACT(DOY FROM DATE '2020-08-11');
(1 row)
SELECT EXTRACT(TIMEZONE FROM DATE '2020-08-11');
-ERROR: date units "timezone" not supported
+ERROR: unit "timezone" not supported for type date
SELECT EXTRACT(TIMEZONE_M FROM DATE '2020-08-11');
-ERROR: date units "timezone_m" not supported
+ERROR: unit "timezone_m" not supported for type date
SELECT EXTRACT(TIMEZONE_H FROM DATE '2020-08-11');
-ERROR: date units "timezone_h" not supported
+ERROR: unit "timezone_h" not supported for type date
SELECT EXTRACT(EPOCH FROM DATE '2020-08-11');
extract
------------
@@ -1264,7 +1264,7 @@ SELECT DATE_TRUNC('MILLENNIUM', TIMESTAMP '1970-03-20 04:30:00.00000'); -- 1001
SELECT DATE_TRUNC('MILLENNIUM', DATE '1970-03-20'); -- 1001-01-01
date_trunc
------------------------------
- Thu Jan 01 00:00:00 1001 PST
+ Thu Jan 01 00:00:00 1001 LMT
(1 row)
SELECT DATE_TRUNC('CENTURY', TIMESTAMP '1970-03-20 04:30:00.00000'); -- 1901
@@ -1288,13 +1288,13 @@ SELECT DATE_TRUNC('CENTURY', DATE '2004-08-10'); -- 2001-01-01
SELECT DATE_TRUNC('CENTURY', DATE '0002-02-04'); -- 0001-01-01
date_trunc
------------------------------
- Mon Jan 01 00:00:00 0001 PST
+ Mon Jan 01 00:00:00 0001 LMT
(1 row)
SELECT DATE_TRUNC('CENTURY', DATE '0055-08-10 BC'); -- 0100-01-01 BC
date_trunc
---------------------------------
- Tue Jan 01 00:00:00 0100 PST BC
+ Tue Jan 01 00:00:00 0100 LMT BC
(1 row)
SELECT DATE_TRUNC('DECADE', DATE '1993-12-25'); -- 1990-01-01
@@ -1306,13 +1306,13 @@ SELECT DATE_TRUNC('DECADE', DATE '1993-12-25'); -- 1990-01-01
SELECT DATE_TRUNC('DECADE', DATE '0004-12-25'); -- 0001-01-01 BC
date_trunc
---------------------------------
- Sat Jan 01 00:00:00 0001 PST BC
+ Sat Jan 01 00:00:00 0001 LMT BC
(1 row)
SELECT DATE_TRUNC('DECADE', DATE '0002-12-31 BC'); -- 0011-01-01 BC
date_trunc
---------------------------------
- Mon Jan 01 00:00:00 0011 PST BC
+ Mon Jan 01 00:00:00 0011 LMT BC
(1 row)
--
@@ -1462,7 +1462,7 @@ SELECT EXTRACT(EPOCH FROM DATE 'infinity'); -- Infinity
-- wrong fields from non-finite date:
--
SELECT EXTRACT(MICROSEC FROM DATE 'infinity'); -- error
-ERROR: date units "microsec" not recognized
+ERROR: unit "microsec" not recognized for type date
-- test constructors
select make_date(2013, 7, 15);
make_date
diff --git a/src/test/singlenode_regress/expected/dbsize.out b/src/test/singlenode_regress/expected/dbsize.out
index 29804aee8b8..3fa46539244 100644
--- a/src/test/singlenode_regress/expected/dbsize.out
+++ b/src/test/singlenode_regress/expected/dbsize.out
@@ -53,7 +53,7 @@ SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
10994579406847 | 10239 GB | -10239 GB
10994579406848 | 10 TB | -10 TB
11258449312612351 | 10239 TB | -10239 TB
- 11258449312612352 | 10240 TB | -10240 TB
+ 11258449312612352 | 10 PB | -10 PB
(10 rows)
SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
@@ -73,7 +73,7 @@ SELECT size, pg_size_pretty(size), pg_size_pretty(-1 * size) FROM
10994579406847 | 10239 GB | -10239 GB
10994579406848 | 10 TB | -10 TB
11258449312612351 | 10239 TB | -10239 TB
- 11258449312612352 | 10240 TB | -10240 TB
+ 11258449312612352 | 10 PB | -10 PB
(10 rows)
-- pg_size_bytes() tests
diff --git a/src/test/singlenode_regress/expected/expressions.out b/src/test/singlenode_regress/expected/expressions.out
index 0f54c69ff95..4c60e88e6d5 100644
--- a/src/test/singlenode_regress/expected/expressions.out
+++ b/src/test/singlenode_regress/expected/expressions.out
@@ -183,12 +183,12 @@ create view numeric_view as
f2164 | numeric(16,4) | | | | main |
f2n | numeric | | | | main |
View definition:
- SELECT numeric_tbl.f1,
- numeric_tbl.f1::numeric(16,4) AS f1164,
- numeric_tbl.f1::numeric AS f1n,
- numeric_tbl.f2,
- numeric_tbl.f2::numeric(16,4) AS f2164,
- numeric_tbl.f2 AS f2n
+ SELECT f1,
+ f1::numeric(16,4) AS f1164,
+ f1::numeric AS f1n,
+ f2,
+ f2::numeric(16,4) AS f2164,
+ f2 AS f2n
FROM numeric_tbl;
explain (verbose, costs off) select * from numeric_view;
@@ -218,12 +218,12 @@ create view bpchar_view as
f214 | character(14) | | | | extended |
f2n | bpchar | | | | extended |
View definition:
- SELECT bpchar_tbl.f1,
- bpchar_tbl.f1::character(14) AS f114,
- bpchar_tbl.f1::bpchar AS f1n,
- bpchar_tbl.f2,
- bpchar_tbl.f2::character(14) AS f214,
- bpchar_tbl.f2 AS f2n
+ SELECT f1,
+ f1::character(14) AS f114,
+ f1::bpchar AS f1n,
+ f2,
+ f2::character(14) AS f214,
+ f2 AS f2n
FROM bpchar_tbl;
explain (verbose, costs off) select * from bpchar_view
diff --git a/src/test/singlenode_regress/expected/geometry.out b/src/test/singlenode_regress/expected/geometry.out
index 974e2ec43a4..402f21c9c8c 100644
--- a/src/test/singlenode_regress/expected/geometry.out
+++ b/src/test/singlenode_regress/expected/geometry.out
@@ -1469,9 +1469,15 @@ SELECT l1.s, l2.s, l1.s <-> l2.s FROM LINE_TBL l1, LINE_TBL l2;
-- Distance to box
SELECT l.s, b.f1, l.s <-> b.f1 FROM LINE_TBL l, BOX_TBL b;
-ERROR: function "dist_lb" not implemented
+ERROR: operator does not exist: line <-> box
+LINE 1: SELECT l.s, b.f1, l.s <-> b.f1 FROM LINE_TBL l, BOX_TBL b;
+ ^
+HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
SELECT l.s, b.f1, b.f1 <-> l.s FROM LINE_TBL l, BOX_TBL b;
-ERROR: function "dist_bl" not implemented
+ERROR: operator does not exist: box <-> line
+LINE 1: SELECT l.s, b.f1, b.f1 <-> l.s FROM LINE_TBL l, BOX_TBL b;
+ ^
+HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-- Intersect with line
SELECT l1.s, l2.s FROM LINE_TBL l1, LINE_TBL l2 WHERE l1.s ?# l2.s;
s | s
@@ -1775,7 +1781,10 @@ SELECT l.s, l1.s, l.s ## l1.s FROM LINE_TBL l, LSEG_TBL l1;
-- Closest point to box
SELECT l.s, b.f1, l.s ## b.f1 FROM LINE_TBL l, BOX_TBL b;
-ERROR: function "close_lb" not implemented
+ERROR: operator does not exist: line ## box
+LINE 1: SELECT l.s, b.f1, l.s ## b.f1 FROM LINE_TBL l, BOX_TBL b;
+ ^
+HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
--
-- Line segments
--
@@ -2378,7 +2387,10 @@ SELECT l1.s, l2.s, l1.s # l2.s FROM LSEG_TBL l1, LSEG_TBL l2;
-- Closest point to line
SELECT l.s, l1.s, l.s ## l1.s FROM LSEG_TBL l, LINE_TBL l1;
-ERROR: function "close_sl" not implemented
+ERROR: operator does not exist: lseg ## line
+LINE 1: SELECT l.s, l1.s, l.s ## l1.s FROM LSEG_TBL l, LINE_TBL l1;
+ ^
+HINT: No operator matches the given name and argument types. You might need to add explicit type casts.
-- Closest point to line segment
SELECT l1.s, l2.s, l1.s ## l2.s FROM LSEG_TBL l1, LSEG_TBL l2;
s | s | ?column?
@@ -2924,7 +2936,10 @@ SELECT f1, @-@ f1 FROM PATH_TBL;
-- Center
SELECT f1, @@ f1 FROM PATH_TBL;
-ERROR: function "path_center" not implemented
+ERROR: operator does not exist: @@ path
+LINE 1: SELECT f1, @@ f1 FROM PATH_TBL;
+ ^
+HINT: No operator matches the given name and argument type. You might need to add an explicit type cast.
-- To polygon
SELECT f1, f1::polygon FROM PATH_TBL WHERE isclosed(f1);
f1 | f1
@@ -4189,7 +4204,59 @@ SELECT p1.f1, p2.f1 FROM POLYGON_TBL p1, POLYGON_TBL p2 WHERE p1.f1 |&> p2.f1;
-- Distance to polygon
SELECT p1.f1, p2.f1, p1.f1 <-> p2.f1 FROM POLYGON_TBL p1, POLYGON_TBL p2;
-ERROR: function "poly_distance" not implemented
+ f1 | f1 | ?column?
+----------------------------+----------------------------+----------------
+ ((2,0),(2,4),(0,0)) | ((2,0),(2,4),(0,0)) | 0
+ ((2,0),(2,4),(0,0)) | ((3,1),(3,3),(1,0)) | 0
+ ((2,0),(2,4),(0,0)) | ((1,2),(3,4),(5,6),(7,8)) | 0
+ ((2,0),(2,4),(0,0)) | ((7,8),(5,6),(3,4),(1,2)) | 0
+ ((2,0),(2,4),(0,0)) | ((1,2),(7,8),(5,6),(3,-4)) | 0
+ ((2,0),(2,4),(0,0)) | ((0,0)) | 0
+ ((2,0),(2,4),(0,0)) | ((0,1),(0,1)) | 0.4472135955
+ ((3,1),(3,3),(1,0)) | ((2,0),(2,4),(0,0)) | 0
+ ((3,1),(3,3),(1,0)) | ((3,1),(3,3),(1,0)) | 0
+ ((3,1),(3,3),(1,0)) | ((1,2),(3,4),(5,6),(7,8)) | 0.707106781187
+ ((3,1),(3,3),(1,0)) | ((7,8),(5,6),(3,4),(1,2)) | 0.707106781187
+ ((3,1),(3,3),(1,0)) | ((1,2),(7,8),(5,6),(3,-4)) | 0
+ ((3,1),(3,3),(1,0)) | ((0,0)) | 1
+ ((3,1),(3,3),(1,0)) | ((0,1),(0,1)) | 1.38675049056
+ ((1,2),(3,4),(5,6),(7,8)) | ((2,0),(2,4),(0,0)) | 0
+ ((1,2),(3,4),(5,6),(7,8)) | ((3,1),(3,3),(1,0)) | 0.707106781187
+ ((1,2),(3,4),(5,6),(7,8)) | ((1,2),(3,4),(5,6),(7,8)) | 0
+ ((1,2),(3,4),(5,6),(7,8)) | ((7,8),(5,6),(3,4),(1,2)) | 0
+ ((1,2),(3,4),(5,6),(7,8)) | ((1,2),(7,8),(5,6),(3,-4)) | 0
+ ((1,2),(3,4),(5,6),(7,8)) | ((0,0)) | 2.2360679775
+ ((1,2),(3,4),(5,6),(7,8)) | ((0,1),(0,1)) | 1.41421356237
+ ((7,8),(5,6),(3,4),(1,2)) | ((2,0),(2,4),(0,0)) | 0
+ ((7,8),(5,6),(3,4),(1,2)) | ((3,1),(3,3),(1,0)) | 0.707106781187
+ ((7,8),(5,6),(3,4),(1,2)) | ((1,2),(3,4),(5,6),(7,8)) | 0
+ ((7,8),(5,6),(3,4),(1,2)) | ((7,8),(5,6),(3,4),(1,2)) | 0
+ ((7,8),(5,6),(3,4),(1,2)) | ((1,2),(7,8),(5,6),(3,-4)) | 0
+ ((7,8),(5,6),(3,4),(1,2)) | ((0,0)) | 2.2360679775
+ ((7,8),(5,6),(3,4),(1,2)) | ((0,1),(0,1)) | 1.41421356237
+ ((1,2),(7,8),(5,6),(3,-4)) | ((2,0),(2,4),(0,0)) | 0
+ ((1,2),(7,8),(5,6),(3,-4)) | ((3,1),(3,3),(1,0)) | 0
+ ((1,2),(7,8),(5,6),(3,-4)) | ((1,2),(3,4),(5,6),(7,8)) | 0
+ ((1,2),(7,8),(5,6),(3,-4)) | ((7,8),(5,6),(3,4),(1,2)) | 0
+ ((1,2),(7,8),(5,6),(3,-4)) | ((1,2),(7,8),(5,6),(3,-4)) | 0
+ ((1,2),(7,8),(5,6),(3,-4)) | ((0,0)) | 1.58113883008
+ ((1,2),(7,8),(5,6),(3,-4)) | ((0,1),(0,1)) | 1.26491106407
+ ((0,0)) | ((2,0),(2,4),(0,0)) | 0
+ ((0,0)) | ((3,1),(3,3),(1,0)) | 1
+ ((0,0)) | ((1,2),(3,4),(5,6),(7,8)) | 2.2360679775
+ ((0,0)) | ((7,8),(5,6),(3,4),(1,2)) | 2.2360679775
+ ((0,0)) | ((1,2),(7,8),(5,6),(3,-4)) | 1.58113883008
+ ((0,0)) | ((0,0)) | 0
+ ((0,0)) | ((0,1),(0,1)) | 1
+ ((0,1),(0,1)) | ((2,0),(2,4),(0,0)) | 0.4472135955
+ ((0,1),(0,1)) | ((3,1),(3,3),(1,0)) | 1.38675049056
+ ((0,1),(0,1)) | ((1,2),(3,4),(5,6),(7,8)) | 1.41421356237
+ ((0,1),(0,1)) | ((7,8),(5,6),(3,4),(1,2)) | 1.41421356237
+ ((0,1),(0,1)) | ((1,2),(7,8),(5,6),(3,-4)) | 1.26491106407
+ ((0,1),(0,1)) | ((0,0)) | 1
+ ((0,1),(0,1)) | ((0,1),(0,1)) | 0
+(49 rows)
+
--
-- Circles
--
@@ -4342,9 +4409,8 @@ SELECT c1.f1, c2.f1 FROM CIRCLE_TBL c1, CIRCLE_TBL c2 WHERE c1.f1 ~= c2.f1;
<(100,200),10> | <(100,200),10>
<(100,1),115> | <(100,1),115>
<(3,5),0> | <(3,5),0>
- <(3,5),NaN> | <(3,5),0>
<(3,5),NaN> | <(3,5),NaN>
-(9 rows)
+(8 rows)
-- Overlap with circle
SELECT c1.f1, c2.f1 FROM CIRCLE_TBL c1, CIRCLE_TBL c2 WHERE c1.f1 && c2.f1;
diff --git a/src/test/singlenode_regress/expected/groupingsets.out b/src/test/singlenode_regress/expected/groupingsets.out
index 36872ea7a29..48e191cea6d 100644
--- a/src/test/singlenode_regress/expected/groupingsets.out
+++ b/src/test/singlenode_regress/expected/groupingsets.out
@@ -640,16 +640,16 @@ CREATE VIEW gstest_view AS select a, b, grouping(a,b), sum(c), count(*), max(c)
from gstest2 group by rollup ((a,b,c),(c,d));
NOTICE: view "gstest_view" will be a temporary view
select pg_get_viewdef('gstest_view'::regclass, true);
- pg_get_viewdef
--------------------------------------------------------------------------------
- SELECT gstest2.a, +
- gstest2.b, +
- GROUPING(gstest2.a, gstest2.b) AS "grouping", +
- sum(gstest2.c) AS sum, +
- count(*) AS count, +
- max(gstest2.c) AS max +
- FROM gstest2 +
- GROUP BY ROLLUP((gstest2.a, gstest2.b, gstest2.c), (gstest2.c, gstest2.d));
+ pg_get_viewdef
+---------------------------------------
+ SELECT a, +
+ b, +
+ GROUPING(a, b) AS "grouping", +
+ sum(c) AS sum, +
+ count(*) AS count, +
+ max(c) AS max +
+ FROM gstest2 +
+ GROUP BY ROLLUP((a, b, c), (c, d));
(1 row)
-- Nested queries with 3 or more levels of nesting
@@ -1793,14 +1793,13 @@ explain (costs off)
Hash Key: ten
Hash Key: hundred
Hash Key: thousand
+ Hash Key: twothousand
Group Key: unique1
- Sort Key: twothousand
- Group Key: twothousand
-> Sort
Sort Key: unique1
-> Seq Scan on tenk1
Optimizer: Postgres query optimizer
-(13 rows)
+(12 rows)
-- check collation-sensitive matching between grouping expressions
-- (similar to a check for aggregates, but there are additional code
@@ -2069,14 +2068,13 @@ select g100, g10, sum(g::numeric), count(*), max(g::text)
from gs_data_1 group by cube (g1000, g100,g10);
QUERY PLAN
-------------------------------------
- GroupAggregate
+ MixedAggregate
+ Hash Key: g100
+ Hash Key: g100, g10
Group Key: g1000, g100, g10
Group Key: g1000, g100
Group Key: g1000
Group Key: ()
- Sort Key: g100, g10
- Group Key: g100, g10
- Group Key: g100
Sort Key: g10, g1000
Group Key: g10, g1000
Group Key: g10
@@ -2084,7 +2082,7 @@ from gs_data_1 group by cube (g1000, g100,g10);
Sort Key: g1000, g100, g10
-> Seq Scan on gs_data_1
Optimizer: Postgres query optimizer
-(15 rows)
+(14 rows)
create table gs_hash_1 as
select g100, g10, sum(g::numeric), count(*), max(g::text)
@@ -2247,7 +2245,6 @@ select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1;
QUERY PLAN
-------------------------------------
GroupAggregate
- Group Key: $2
InitPlan 1 (returns $1)
-> Result
InitPlan 3 (returns $2)
@@ -2256,7 +2253,7 @@ select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1;
SubPlan 2
-> Result
Optimizer: Postgres query optimizer
-(10 rows)
+(9 rows)
select (select grouping(v1)) from (values ((select 1))) v(v1) group by v1;
grouping
diff --git a/src/test/singlenode_regress/expected/horology.out b/src/test/singlenode_regress/expected/horology.out
index 8c7fba0a988..b5a42852de6 100644
--- a/src/test/singlenode_regress/expected/horology.out
+++ b/src/test/singlenode_regress/expected/horology.out
@@ -3,9 +3,9 @@
--
SET DateStyle = 'Postgres, MDY';
SHOW TimeZone; -- Many of these tests depend on the prevailing setting
- TimeZone
-----------
- PST8PDT
+ TimeZone
+---------------------
+ America/Los_Angeles
(1 row)
--
@@ -98,29 +98,21 @@ SELECT timestamp with time zone '27/12/2001 04:05:06.789-08';
reset datestyle;
SELECT timestamp with time zone 'Y2001M12D27H04M05S06.789+08';
- timestamptz
-----------------------------------
- Wed Dec 26 12:05:06.789 2001 PST
-(1 row)
-
+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 'Y2001M12D27H04M05S06.789-08';
- timestamptz
-----------------------------------
- Thu Dec 27 04:05:06.789 2001 PST
-(1 row)
-
+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';
- timestamptz
-----------------------------------
- Wed Dec 26 12:05:06.789 2001 PST
-(1 row)
-
+ERROR: invalid input syntax for type timestamp with time zone: "Y2001M12D27H04MM05S06.789+08"
+LINE 1: SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789+0...
+ ^
SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789-08';
- timestamptz
-----------------------------------
- Thu Dec 27 04:05:06.789 2001 PST
-(1 row)
-
+ERROR: invalid input syntax for type timestamp with time zone: "Y2001M12D27H04MM05S06.789-08"
+LINE 1: SELECT timestamp with time zone 'Y2001M12D27H04MM05S06.789-0...
+ ^
SELECT timestamp with time zone 'J2452271+08';
timestamptz
------------------------------
@@ -761,12 +753,12 @@ SELECT d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
Sat Feb 14 17:32:01 1998 PST
Sun Feb 15 17:32:01 1998 PST
Mon Feb 16 17:32:01 1998 PST
- Thu Feb 16 17:32:01 0096 PST BC
- Sun Feb 16 17:32:01 0098 PST
- Fri Feb 16 17:32:01 0598 PST
- Wed Feb 16 17:32:01 1098 PST
- Sun Feb 16 17:32:01 1698 PST
- Fri Feb 16 17:32:01 1798 PST
+ Thu Feb 16 17:32:01 0096 LMT BC
+ Sun Feb 16 17:32:01 0098 LMT
+ Fri Feb 16 17:32:01 0598 LMT
+ Wed Feb 16 17:32:01 1098 LMT
+ Sun Feb 16 17:32:01 1698 LMT
+ Fri Feb 16 17:32:01 1798 LMT
Wed Feb 16 17:32:01 1898 PST
Mon Feb 16 17:32:01 1998 PST
Sun Feb 16 17:32:01 2098 PST
@@ -832,12 +824,12 @@ SELECT d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
Wed Feb 14 17:32:01 1996 PST
Thu Feb 15 17:32:01 1996 PST
Fri Feb 16 17:32:01 1996 PST
- Mon Feb 16 17:32:01 0098 PST BC
- Thu Feb 16 17:32:01 0096 PST
- Tue Feb 16 17:32:01 0596 PST
- Sun Feb 16 17:32:01 1096 PST
- Thu Feb 16 17:32:01 1696 PST
- Tue Feb 16 17:32:01 1796 PST
+ Mon Feb 16 17:32:01 0098 LMT BC
+ Thu Feb 16 17:32:01 0096 LMT
+ Tue Feb 16 17:32:01 0596 LMT
+ Sun Feb 16 17:32:01 1096 LMT
+ Thu Feb 16 17:32:01 1696 LMT
+ Tue Feb 16 17:32:01 1796 LMT
Sun Feb 16 17:32:01 1896 PST
Fri Feb 16 17:32:01 1996 PST
Thu Feb 16 17:32:01 2096 PST
@@ -2116,7 +2108,7 @@ SELECT '2020-10-05'::timestamptz > '2202020-10-05'::date as f;
SELECT '4714-11-24 BC'::date::timestamptz;
timestamptz
---------------------------------
- Mon Nov 24 00:00:00 4714 PST BC
+ Mon Nov 24 00:00:00 4714 LMT BC
(1 row)
SET TimeZone = 'UTC-2';
@@ -2623,13 +2615,13 @@ RESET DateStyle;
SELECT to_timestamp('0097/Feb/16 --> 08:14:30', 'YYYY/Mon/DD --> HH:MI:SS');
to_timestamp
------------------------------
- Sat Feb 16 08:14:30 0097 PST
+ Sat Feb 16 08:14:30 0097 LMT
(1 row)
SELECT to_timestamp('97/2/16 8:14:30', 'FMYYYY/FMMM/FMDD FMHH:FMMI:FMSS');
to_timestamp
------------------------------
- Sat Feb 16 08:14:30 0097 PST
+ Sat Feb 16 08:14:30 0097 LMT
(1 row)
SELECT to_timestamp('2011$03!18 23_38_15', 'YYYY-MM-DD HH24:MI:SS');
@@ -2666,7 +2658,7 @@ SELECT to_timestamp('My birthday-> Year: 1976, Month: May, Day: 16',
SELECT to_timestamp('1,582nd VIII 21', 'Y,YYYth FMRM DD');
to_timestamp
------------------------------
- Sat Aug 21 00:00:00 1582 PST
+ Sat Aug 21 00:00:00 1582 LMT
(1 row)
SELECT to_timestamp('15 "text between quote marks" 98 54 45',
@@ -2730,7 +2722,7 @@ SELECT to_timestamp('1997 AD 11 16', 'YYYY BC MM DD');
SELECT to_timestamp('1997 BC 11 16', 'YYYY BC MM DD');
to_timestamp
---------------------------------
- Tue Nov 16 00:00:00 1997 PST BC
+ Tue Nov 16 00:00:00 1997 LMT BC
(1 row)
SELECT to_timestamp('1997 A.D. 11 16', 'YYYY B.C. MM DD');
@@ -2742,7 +2734,7 @@ SELECT to_timestamp('1997 A.D. 11 16', 'YYYY B.C. MM DD');
SELECT to_timestamp('1997 B.C. 11 16', 'YYYY B.C. MM DD');
to_timestamp
---------------------------------
- Tue Nov 16 00:00:00 1997 PST BC
+ Tue Nov 16 00:00:00 1997 LMT BC
(1 row)
SELECT to_timestamp('9-1116', 'Y-MMDD');
@@ -3012,19 +3004,19 @@ SELECT to_date('-44-02-01 BC','YYYY-MM-DD BC');
SELECT to_timestamp('44-02-01 11:12:13 BC','YYYY-MM-DD HH24:MI:SS BC');
to_timestamp
---------------------------------
- Fri Feb 01 11:12:13 0044 PST BC
+ Fri Feb 01 11:12:13 0044 LMT BC
(1 row)
SELECT to_timestamp('-44-02-01 11:12:13','YYYY-MM-DD HH24:MI:SS');
to_timestamp
---------------------------------
- Fri Feb 01 11:12:13 0044 PST BC
+ Fri Feb 01 11:12:13 0044 LMT BC
(1 row)
SELECT to_timestamp('-44-02-01 11:12:13 BC','YYYY-MM-DD HH24:MI:SS BC');
to_timestamp
------------------------------
- Mon Feb 01 11:12:13 0044 PST
+ Mon Feb 01 11:12:13 0044 LMT
(1 row)
--
diff --git a/src/test/singlenode_regress/expected/incremental_sort.out b/src/test/singlenode_regress/expected/incremental_sort.out
index 7ee9e0dcffb..6ef1b206d48 100644
--- a/src/test/singlenode_regress/expected/incremental_sort.out
+++ b/src/test/singlenode_regress/expected/incremental_sort.out
@@ -8,13 +8,14 @@ explain (costs off)
select * from (select * from tenk1 order by four) t order by four, ten;
QUERY PLAN
-------------------------------------
- Sort
+ Incremental Sort
Sort Key: tenk1.four, tenk1.ten
+ Presorted Key: tenk1.four
-> Sort
Sort Key: tenk1.four
-> Seq Scan on tenk1
Optimizer: Postgres query optimizer
-(6 rows)
+(7 rows)
-- When there is a LIMIT clause, incremental sort is beneficial because
-- it only has to sort some of the groups, and not the entire table.
@@ -40,13 +41,14 @@ explain (costs off)
select * from (select * from tenk1 order by four) t order by four, ten;
QUERY PLAN
-------------------------------------
- Sort
+ Incremental Sort
Sort Key: tenk1.four, tenk1.ten
+ Presorted Key: tenk1.four
-> Sort
Sort Key: tenk1.four
-> Seq Scan on tenk1
Optimizer: Postgres query optimizer
-(6 rows)
+(7 rows)
reset work_mem;
create table t(a integer, b integer);
@@ -1485,20 +1487,16 @@ explain (costs off) select a,b,sum(c) from t group by 1,2 order by 1,2,3 limit 1
set enable_incremental_sort = on;
explain (costs off) select a,b,sum(c) from t group by 1,2 order by 1,2,3 limit 1;
- QUERY PLAN
--------------------------------------------------------
+ QUERY PLAN
+-------------------------------------
Limit
- -> Incremental Sort
+ -> Sort
Sort Key: a, b, (sum(c))
- Presorted Key: a, b
- -> GroupAggregate
+ -> HashAggregate
Group Key: a, b
- -> Incremental Sort
- Sort Key: a, b
- Presorted Key: a
- -> Index Scan using t_a_idx on t
+ -> Seq Scan on t
Optimizer: Postgres query optimizer
-(11 rows)
+(7 rows)
-- Incremental sort vs. set operations with varno 0
set enable_hashagg to off;
diff --git a/src/test/singlenode_regress/expected/insert_conflict.out b/src/test/singlenode_regress/expected/insert_conflict.out
index 058ea4ffa05..0231b3b010a 100644
--- a/src/test/singlenode_regress/expected/insert_conflict.out
+++ b/src/test/singlenode_regress/expected/insert_conflict.out
@@ -245,7 +245,7 @@ insert into insertconflicttest values (1, 'Apple') on conflict (key) do update s
ERROR: invalid reference to FROM-clause entry for table "excluded"
LINE 1: ...y) do update set fruit = excluded.fruit RETURNING excluded.f...
^
-HINT: There is an entry for table "excluded", but it cannot be referenced from this part of the query.
+DETAIL: There is an entry for table "excluded", but it cannot be referenced from this part of the query.
-- Only suggest <table>.* 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
diff --git a/src/test/singlenode_regress/expected/interval.out b/src/test/singlenode_regress/expected/interval.out
index 8e2d5355435..d013e60b9aa 100644
--- a/src/test/singlenode_regress/expected/interval.out
+++ b/src/test/singlenode_regress/expected/interval.out
@@ -963,9 +963,9 @@ SELECT f1,
(10 rows)
SELECT EXTRACT(FORTNIGHT FROM INTERVAL '2 days'); -- error
-ERROR: interval units "fortnight" not recognized
+ERROR: unit "fortnight" not recognized for type interval
SELECT EXTRACT(TIMEZONE FROM INTERVAL '2 days'); -- error
-ERROR: interval units "timezone" not supported
+ERROR: unit "timezone" not supported for type interval
SELECT EXTRACT(DECADE FROM INTERVAL '100 y');
extract
---------
diff --git a/src/test/singlenode_regress/expected/join.out b/src/test/singlenode_regress/expected/join.out
index a693de89448..84636a5fede 100644
--- a/src/test/singlenode_regress/expected/join.out
+++ b/src/test/singlenode_regress/expected/join.out
@@ -1638,7 +1638,7 @@ SELECT * FROM (J1_TBL JOIN J2_TBL USING (i)) AS x WHERE J1_TBL.t = 'one'; -- er
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 =...
^
-HINT: There is an entry for table "j1_tbl", but it cannot be referenced from this part of the query.
+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
---+---+-----+----
@@ -3051,7 +3051,7 @@ order by 1,2;
Sort Key: t1.q1, t1.q2
-> Hash Left Join
Hash Cond: (t1.q2 = t2.q1)
- Filter: ((SubPlan 1) = 1)
+ Filter: (1 = (SubPlan 1))
-> Seq Scan on int8_tbl t1
-> Hash
-> Seq Scan on int8_tbl t2
@@ -3103,7 +3103,7 @@ where i41.f1 > 0;
-> Seq Scan on int4_tbl i41
Filter: (f1 > 0)
-> Nested Loop
- Join Filter: (i41.f1 = i42.f1)
+ Join Filter: (i42.f1 = i41.f1)
-> Seq Scan on int8_tbl i81
-> Materialize
-> Seq Scan on int4_tbl i42
@@ -3921,11 +3921,11 @@ explain (costs off)
select q1, unique2, thousand, hundred
from int8_tbl a left join tenk1 b on q1 = unique2
where coalesce(thousand,123) = q1 and q1 = coalesce(hundred,123);
- QUERY PLAN
---------------------------------------------------------------------------------------
+ QUERY PLAN
+----------------------------------------------------------------------------------------------------------
Hash Right Join
Hash Cond: (b.unique2 = a.q1)
- Filter: ((COALESCE(b.thousand, 123) = a.q1) AND (a.q1 = COALESCE(b.hundred, 123)))
+ Filter: ((COALESCE(b.thousand, 123) = COALESCE(b.hundred, 123)) AND (a.q1 = COALESCE(b.hundred, 123)))
-> Seq Scan on tenk1 b
-> Hash
-> Seq Scan on int8_tbl a
@@ -3969,10 +3969,9 @@ explain (costs off)
select a.unique1, b.unique1, c.unique1, coalesce(b.twothousand, a.twothousand)
from tenk1 a left join tenk1 b on b.thousand = a.unique1 left join tenk1 c on c.unique2 = coalesce(b.twothousand, a.twothousand)
where a.unique2 < 10 and coalesce(b.twothousand, a.twothousand) = 44;
- QUERY PLAN
--------------------------------------------------------------------
- Hash Left Join
- Hash Cond: (COALESCE(b.twothousand, a.twothousand) = c.unique2)
+ QUERY PLAN
+---------------------------------------------------------------
+ Nested Loop Left Join
-> Hash Right Join
Hash Cond: (b.thousand = a.unique1)
Filter: (COALESCE(b.twothousand, a.twothousand) = 44)
@@ -3980,11 +3979,11 @@ select a.unique1, b.unique1, c.unique1, coalesce(b.twothousand, a.twothousand)
-> Hash
-> Index Scan using tenk1_unique2 on tenk1 a
Index Cond: (unique2 < 10)
- -> Hash
+ -> Materialize
-> Index Scan using tenk1_unique2 on tenk1 c
Index Cond: (unique2 = 44)
Optimizer: Postgres query optimizer
-(13 rows)
+(12 rows)
select a.unique1, b.unique1, c.unique1, coalesce(b.twothousand, a.twothousand)
from tenk1 a left join tenk1 b on b.thousand = a.unique1 left join tenk1 c on c.unique2 = coalesce(b.twothousand, a.twothousand)
@@ -4554,29 +4553,25 @@ explain (costs off)
select * from int4_tbl a left join tenk1 b on f1 = unique2 where f1 = 0;
QUERY PLAN
-------------------------------------------------
- Hash Right Join
- Hash Cond: (b.unique2 = a.f1)
+ Nested Loop Left Join
+ -> Seq Scan on int4_tbl a
+ Filter: (f1 = 0)
-> Index Scan using tenk1_unique2 on tenk1 b
Index Cond: (unique2 = 0)
- -> Hash
- -> Seq Scan on int4_tbl a
- Filter: (f1 = 0)
Optimizer: Postgres query optimizer
-(8 rows)
+(6 rows)
explain (costs off)
select * from tenk1 a full join tenk1 b using(unique2) where unique2 = 42;
- QUERY PLAN
--------------------------------------------------------
- Hash Full Join
- Hash Cond: (a.unique2 = b.unique2)
+ QUERY PLAN
+-------------------------------------------------
+ Merge Full Join
-> Index Scan using tenk1_unique2 on tenk1 a
Index Cond: (unique2 = 42)
- -> Hash
- -> Index Scan using tenk1_unique2 on tenk1 b
- Index Cond: (unique2 = 42)
+ -> Index Scan using tenk1_unique2 on tenk1 b
+ Index Cond: (unique2 = 42)
Optimizer: Postgres query optimizer
-(8 rows)
+(6 rows)
--
-- test that quals attached to an outer join have correct semantics,
@@ -4589,8 +4584,8 @@ explain (verbose, costs off)
select a.q2, b.q1
from int8_tbl a left join int8_tbl b on a.q2 = coalesce(b.q1, 1)
where coalesce(b.q1, 1) > 0;
- QUERY PLAN
-------------------------------------------------------------
+ QUERY PLAN
+-------------------------------------------------------------------------------
Nested Loop Left Join
Output: a.q2, b.q1
Join Filter: (a.q2 = COALESCE(b.q1, '1'::bigint))
@@ -4703,13 +4698,13 @@ select d.* from d left join (select distinct * from b) s
explain (costs off)
select d.* from d left join (select * from b group by b.id, b.c_id) s
on d.a = s.id;
- QUERY PLAN
-------------------------------------------
+ QUERY PLAN
+-------------------------------------
Hash Right Join
Hash Cond: (b.id = d.a)
- -> GroupAggregate
+ -> HashAggregate
Group Key: b.id
- -> Index Scan using b_pkey on b
+ -> Seq Scan on b
-> Hash
-> Seq Scan on d
Optimizer: Postgres query optimizer
@@ -5028,7 +5023,7 @@ select * from
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;
^
-HINT: There is an entry for table "y", but it cannot be referenced from this part of the query.
+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
q1 | q2 | f1 | ff
@@ -5306,11 +5301,11 @@ explain (costs off)
-> Nested Loop
-> Seq Scan on int8_tbl a
-> Materialize
- -> Hash Right Join
- Hash Cond: ((a.q1) = x.q2)
- -> Seq Scan on int4_tbl y
+ -> Hash Left Join
+ Hash Cond: (x.q2 = (a.q1))
+ -> Seq Scan on int8_tbl x
-> Hash
- -> Seq Scan on int8_tbl x
+ -> Seq Scan on int4_tbl y
Optimizer: Postgres query optimizer
(11 rows)
@@ -5870,10 +5865,10 @@ select * from
Nested Loop
Output: c.q1, c.q2, a.q1, a.q2, b.q1, (COALESCE(b.q2, '42'::bigint)), d.q1, (COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2)), ((COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2)))
-> Hash Right Join
- Output: c.q1, c.q2, a.q1, a.q2, b.q1, d.q1, (COALESCE(b.q2, '42'::bigint)), (COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2))
+ Output: c.q1, c.q2, a.q1, a.q2, b.q1, (COALESCE(b.q2, '42'::bigint)), d.q1, (COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2))
Hash Cond: (d.q1 = c.q2)
-> Nested Loop
- Output: a.q1, a.q2, b.q1, d.q1, (COALESCE(b.q2, '42'::bigint)), (COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2))
+ Output: a.q1, a.q2, b.q1, (COALESCE(b.q2, '42'::bigint)), d.q1, (COALESCE((COALESCE(b.q2, '42'::bigint)), d.q2))
-> Hash Left Join
Output: a.q1, a.q2, b.q1, (COALESCE(b.q2, '42'::bigint))
Hash Cond: (a.q2 = b.q1)
@@ -5982,13 +5977,14 @@ select * from int8_tbl i8 left join lateral
--------------------------------------
Nested Loop Left Join
Output: i8.q1, i8.q2, f1, (i8.q2)
+ Join Filter: false
-> Seq Scan on public.int8_tbl i8
Output: i8.q1, i8.q2
-> Result
Output: f1, i8.q2
One-Time Filter: false
Optimizer: Postgres query optimizer
-(8 rows)
+(10 rows)
explain (verbose, costs off)
select * from int8_tbl i8 left join lateral
@@ -6071,8 +6067,8 @@ lateral (select * from int8_tbl t1,
where q2 = (select greatest(t1.q1,t2.q2))
and (select v.id=0)) offset 0) ss2) ss
where t1.q1 = ss.q2) ss0;
- QUERY PLAN
------------------------------------------------------------------------
+ QUERY PLAN
+----------------------------------------------------------------------------
Nested Loop
Output: "*VALUES*".column1, t1.q1, t1.q2, ss2.q1, ss2.q2
-> Values Scan on "*VALUES*"
@@ -6095,10 +6091,10 @@ lateral (select * from int8_tbl t1,
One-Time Filter: $4
InitPlan 1 (returns $2)
-> Result
- Output: GREATEST($0, t2.q2)
+ Output: GREATEST(t1.q1, t2.q2)
InitPlan 2 (returns $4)
-> Result
- Output: ($3 = 0)
+ Output: ("*VALUES*".column1 = 0)
-> Seq Scan on public.int8_tbl t3
Output: t3.q1, t3.q2
Filter: (t3.q2 = $2)
@@ -6125,22 +6121,26 @@ 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;
^
-HINT: There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
+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;
^
-HINT: There is an entry for table "a", but it cannot be referenced from this part of the query.
+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;
^
-HINT: There is a column named "f1" in table "a", but it cannot be referenced from this part of the query.
+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...
^
-HINT: There is an entry for table "a", but it cannot be referenced from this part of the query.
+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"
@@ -6170,12 +6170,12 @@ 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;
^
-HINT: There is a column named "x1" in table "xx1", but it cannot be referenced from this part of the query.
+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...
^
-HINT: There is an entry for table "xx1", but it cannot be referenced from this part of the query.
+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"
@@ -6190,12 +6190,12 @@ 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;
^
-HINT: There is a column named "x1" in table "xx1", but it cannot be referenced from this part of the query.
+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...
^
-HINT: There is an entry for table "xx1", but it cannot be referenced from this part of the query.
+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;
@@ -6656,7 +6656,7 @@ where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1;
QUERY PLAN
----------------------------------------------------------
Nested Loop
- Join Filter: ((j1.id1 = j2.id1) AND (j1.id2 = j2.id2))
+ Join Filter: ((j2.id1 = j1.id1) AND (j2.id2 = j1.id2))
-> Seq Scan on j1
Filter: ((id1 % 1000) = 1)
-> Seq Scan on j2
@@ -6680,7 +6680,7 @@ where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1 and j2.id1 = any (array[1]);
QUERY PLAN
-------------------------------------------------------------------------
Nested Loop
- Join Filter: ((j1.id1 = j2.id1) AND (j1.id2 = j2.id2))
+ Join Filter: ((j2.id1 = j1.id1) AND (j2.id2 = j1.id2))
-> Seq Scan on j1
Filter: ((id1 = ANY ('{1}'::integer[])) AND ((id1 % 1000) = 1))
-> Seq Scan on j2
@@ -6704,7 +6704,7 @@ where j1.id1 % 1000 = 1 and j2.id1 % 1000 = 1 and j2.id1 >= any (array[1,5]);
QUERY PLAN
----------------------------------------------------------------------------
Nested Loop
- Join Filter: ((j1.id1 = j2.id1) AND (j1.id2 = j2.id2))
+ Join Filter: ((j2.id1 = j1.id1) AND (j2.id2 = j1.id2))
-> Seq Scan on j1
Filter: ((id1 >= ANY ('{1,5}'::integer[])) AND ((id1 % 1000) = 1))
-> Seq Scan on j2
diff --git a/src/test/singlenode_regress/expected/json.out b/src/test/singlenode_regress/expected/json.out
index 4922926de8b..c5087a627dc 100644
--- a/src/test/singlenode_regress/expected/json.out
+++ b/src/test/singlenode_regress/expected/json.out
@@ -2087,8 +2087,7 @@ SELECT json_build_object('a', 'b', 'c'); -- error
ERROR: argument list must have even number of elements
HINT: The arguments of json_build_object() must consist of alternating keys and values.
SELECT json_build_object(NULL, 'a'); -- error, key cannot be NULL
-ERROR: argument 1 cannot be null
-HINT: Object keys should be text.
+ERROR: null value not allowed for object key
SELECT json_build_object('a', NULL); -- ok
json_build_object
-------------------
@@ -2117,8 +2116,7 @@ SELECT json_build_object(VARIADIC ARRAY['a', NULL]::text[]); -- ok
(1 row)
SELECT json_build_object(VARIADIC ARRAY[NULL, 'a']::text[]); -- error, key cannot be NULL
-ERROR: argument 1 cannot be null
-HINT: Object keys should be text.
+ERROR: null value not allowed for object key
SELECT json_build_object(VARIADIC '{1,2,3,4}'::text[]); -- ok
json_build_object
------------------------
@@ -2159,8 +2157,7 @@ SELECT json_build_object(1,2);
-- keys must be scalar and not null
SELECT json_build_object(null,2);
-ERROR: argument 1 cannot be null
-HINT: Object keys should be text.
+ERROR: null value not allowed for object key
SELECT json_build_object(r,2) FROM (SELECT 1 AS a, 2 AS b) r;
ERROR: key value must be scalar, not array, composite, or json
SELECT json_build_object(json '{"a":1,"b":2}', 3);
@@ -2186,7 +2183,7 @@ SELECT json_object_agg(name, type) FROM foo;
INSERT INTO foo VALUES (999999, NULL, 'bar');
SELECT json_object_agg(name, type) FROM foo;
-ERROR: field name must not be null
+ERROR: null value not allowed for object key
-- json_object
-- empty object, one dimension
SELECT json_object('{}');
diff --git a/src/test/singlenode_regress/expected/jsonpath_encoding.out b/src/test/singlenode_regress/expected/jsonpath_encoding.out
index 7cbfb6abcf3..d53affe364f 100644
--- a/src/test/singlenode_regress/expected/jsonpath_encoding.out
+++ b/src/test/singlenode_regress/expected/jsonpath_encoding.out
@@ -17,15 +17,15 @@ SELECT getdatabaseencoding(); -- just to label the results files
-- checks for double-quoted values
-- basic unicode input
SELECT '"\u"'::jsonpath; -- ERROR, incomplete escape
-ERROR: invalid unicode sequence at or near "\u" of jsonpath input
+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 sequence at or near "\u00" of jsonpath input
+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 sequence at or near "\u000" of jsonpath input
+ERROR: invalid Unicode escape sequence at or near "\u000" of jsonpath input
LINE 1: SELECT '"\u000g"'::jsonpath;
^
SELECT '"\u0000"'::jsonpath; -- OK, legal escape
@@ -99,15 +99,15 @@ select '"null \\u0000 escape"'::jsonpath as not_an_escape;
-- checks for quoted key names
-- basic unicode input
SELECT '$."\u"'::jsonpath; -- ERROR, incomplete escape
-ERROR: invalid unicode sequence at or near "\u" of jsonpath input
+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 sequence at or near "\u00" of jsonpath input
+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 sequence at or near "\u000" of jsonpath input
+ERROR: invalid Unicode escape sequence at or near "\u000" of jsonpath input
LINE 1: SELECT '$."\u000g"'::jsonpath;
^
SELECT '$."\u0000"'::jsonpath; -- OK, legal escape
diff --git a/src/test/singlenode_regress/expected/limit.out b/src/test/singlenode_regress/expected/limit.out
index 67ecfb3e019..d49d50a3ea1 100644
--- a/src/test/singlenode_regress/expected/limit.out
+++ b/src/test/singlenode_regress/expected/limit.out
@@ -443,10 +443,10 @@ CREATE VIEW limit_thousand_v_1 AS SELECT thousand FROM onek WHERE thousand < 995
----------+---------+-----------+----------+---------+---------+-------------
thousand | integer | | | | plain |
View definition:
- SELECT onek.thousand
+ SELECT thousand
FROM onek
- WHERE onek.thousand < 995
- ORDER BY onek.thousand
+ WHERE thousand < 995
+ ORDER BY thousand
OFFSET 10
FETCH FIRST 5 ROWS WITH TIES;
@@ -458,10 +458,10 @@ CREATE VIEW limit_thousand_v_2 AS SELECT thousand FROM onek WHERE thousand < 995
----------+---------+-----------+----------+---------+---------+-------------
thousand | integer | | | | plain |
View definition:
- SELECT onek.thousand
+ SELECT thousand
FROM onek
- WHERE onek.thousand < 995
- ORDER BY onek.thousand
+ WHERE thousand < 995
+ ORDER BY thousand
OFFSET 10
LIMIT 5;
@@ -476,10 +476,10 @@ CREATE VIEW limit_thousand_v_3 AS SELECT thousand FROM onek WHERE thousand < 995
----------+---------+-----------+----------+---------+---------+-------------
thousand | integer | | | | plain |
View definition:
- SELECT onek.thousand
+ SELECT thousand
FROM onek
- WHERE onek.thousand < 995
- ORDER BY onek.thousand
+ WHERE thousand < 995
+ ORDER BY thousand
FETCH FIRST (NULL::integer + 1) ROWS WITH TIES;
CREATE VIEW limit_thousand_v_4 AS SELECT thousand FROM onek WHERE thousand < 995
@@ -490,10 +490,10 @@ CREATE VIEW limit_thousand_v_4 AS SELECT thousand FROM onek WHERE thousand < 995
----------+---------+-----------+----------+---------+---------+-------------
thousand | integer | | | | plain |
View definition:
- SELECT onek.thousand
+ SELECT thousand
FROM onek
- WHERE onek.thousand < 995
- ORDER BY onek.thousand
+ WHERE thousand < 995
+ ORDER BY thousand
LIMIT ALL;
-- leave these views
diff --git a/src/test/singlenode_regress/expected/matview.out b/src/test/singlenode_regress/expected/matview.out
index de78b3da078..560f85897c1 100644
--- a/src/test/singlenode_regress/expected/matview.out
+++ b/src/test/singlenode_regress/expected/matview.out
@@ -100,10 +100,10 @@ CREATE INDEX mvtest_aa ON mvtest_bb (grandtot);
type | text | | | | extended | |
totamt | numeric | | | | main | |
View definition:
- SELECT mvtest_tv.type,
- mvtest_tv.totamt
+ SELECT type,
+ totamt
FROM mvtest_tv
- ORDER BY mvtest_tv.type;
+ ORDER BY type;
\d+ mvtest_tvm
Materialized view "public.mvtest_tvm"
@@ -112,10 +112,10 @@ View definition:
type | text | | | | extended | |
totamt | numeric | | | | main | |
View definition:
- SELECT mvtest_tv.type,
- mvtest_tv.totamt
+ SELECT type,
+ totamt
FROM mvtest_tv
- ORDER BY mvtest_tv.type;
+ ORDER BY type;
\d+ mvtest_tvvm
Materialized view "public.mvtest_tvvm"
@@ -123,7 +123,7 @@ View definition:
----------+---------+-----------+----------+---------+---------+--------------+-------------
grandtot | numeric | | | | main | |
View definition:
- SELECT mvtest_tvv.grandtot
+ SELECT grandtot
FROM mvtest_tvv;
\d+ mvtest_bb
@@ -134,7 +134,7 @@ View definition:
Indexes:
"mvtest_aa" btree (grandtot)
View definition:
- SELECT mvtest_tvvmv.grandtot
+ SELECT grandtot
FROM mvtest_tvvmv;
-- test schema behavior
@@ -150,7 +150,7 @@ Indexes:
"mvtest_tvmm_expr" UNIQUE, btree ((grandtot > 0::numeric))
"mvtest_tvmm_pred" UNIQUE, btree (grandtot) WHERE grandtot < 0::numeric
View definition:
- SELECT sum(mvtest_tvm.totamt) AS grandtot
+ SELECT sum(totamt) AS grandtot
FROM mvtest_mvschema.mvtest_tvm;
SET search_path = mvtest_mvschema, public;
@@ -161,10 +161,10 @@ SET search_path = mvtest_mvschema, public;
type | text | | | | extended | |
totamt | numeric | | | | main | |
View definition:
- SELECT mvtest_tv.type,
- mvtest_tv.totamt
+ SELECT type,
+ totamt
FROM mvtest_tv
- ORDER BY mvtest_tv.type;
+ ORDER BY type;
-- modify the underlying table data
INSERT INTO mvtest_t VALUES (6, 'z', 13);
diff --git a/src/test/singlenode_regress/expected/misc_sanity.out b/src/test/singlenode_regress/expected/misc_sanity.out
index 9870214fd05..e4c3caf8773 100644
--- a/src/test/singlenode_regress/expected/misc_sanity.out
+++ b/src/test/singlenode_regress/expected/misc_sanity.out
@@ -76,12 +76,37 @@ loop
end if;
end loop;
end$$;
+NOTICE: pg_am contains unpinned initdb-created object(s)
+NOTICE: pg_amop contains unpinned initdb-created object(s)
+NOTICE: pg_amproc contains unpinned initdb-created object(s)
+NOTICE: pg_auth_members contains unpinned initdb-created object(s)
+NOTICE: pg_authid contains unpinned initdb-created object(s)
+NOTICE: pg_cast contains unpinned initdb-created object(s)
+NOTICE: pg_class contains unpinned initdb-created object(s)
+NOTICE: pg_collation contains unpinned initdb-created object(s)
+NOTICE: pg_constraint contains unpinned initdb-created object(s)
+NOTICE: pg_conversion contains unpinned initdb-created object(s)
NOTICE: pg_database contains unpinned initdb-created object(s)
NOTICE: pg_extension contains unpinned initdb-created object(s)
NOTICE: pg_foreign_data_wrapper contains unpinned initdb-created object(s)
NOTICE: pg_foreign_server contains unpinned initdb-created object(s)
+NOTICE: pg_language contains unpinned initdb-created object(s)
+NOTICE: pg_namespace contains unpinned initdb-created object(s)
+NOTICE: pg_opclass contains unpinned initdb-created object(s)
+NOTICE: pg_operator contains unpinned initdb-created object(s)
+NOTICE: pg_opfamily contains unpinned initdb-created object(s)
+NOTICE: pg_proc contains unpinned initdb-created object(s)
+NOTICE: pg_profile contains unpinned initdb-created object(s)
+NOTICE: pg_resgroup contains unpinned initdb-created object(s)
+NOTICE: pg_resourcetype contains unpinned initdb-created object(s)
+NOTICE: pg_resqueue contains unpinned initdb-created object(s)
NOTICE: pg_rewrite contains unpinned initdb-created object(s)
NOTICE: pg_tablespace contains unpinned initdb-created object(s)
+NOTICE: pg_ts_config contains unpinned initdb-created object(s)
+NOTICE: pg_ts_dict contains unpinned initdb-created object(s)
+NOTICE: pg_ts_parser contains unpinned initdb-created object(s)
+NOTICE: pg_ts_template contains unpinned initdb-created object(s)
+NOTICE: pg_type contains unpinned initdb-created object(s)
-- **************** pg_class ****************
-- Look for system tables with varlena columns but no toast table. All
-- system tables with toastable columns should have toast tables, with
diff --git a/src/test/singlenode_regress/expected/numeric.out b/src/test/singlenode_regress/expected/numeric.out
index bea33181bee..f3ae421a6c8 100644
--- a/src/test/singlenode_regress/expected/numeric.out
+++ b/src/test/singlenode_regress/expected/numeric.out
@@ -952,44 +952,44 @@ WITH v(x) AS
SELECT x1, x2,
power(x1, x2)
FROM v AS v1(x1), v AS v2(x2) WHERE x1 != 0 OR x2 >= 0;
- x1 | x2 | power
-----------+----------+---------------------
- 0 | 0 | 1.0000000000000000
- 0 | 1 | 0.0000000000000000
- 0 | 2 | 0.0000000000000000
- 0 | 4.2 | 0.0000000000000000
- 0 | Infinity | 0
- 0 | NaN | NaN
- 1 | 0 | 1.0000000000000000
- 1 | 1 | 1.0000000000000000
- 1 | 2 | 1.0000000000000000
- 1 | 4.2 | 1.0000000000000000
- 1 | Infinity | 1
- 1 | NaN | 1
- 2 | 0 | 1.0000000000000000
- 2 | 1 | 2.0000000000000000
- 2 | 2 | 4.0000000000000000
- 2 | 4.2 | 18.379173679952560
- 2 | Infinity | Infinity
- 2 | NaN | NaN
- 4.2 | 0 | 1.0000000000000000
- 4.2 | 1 | 4.2000000000000000
- 4.2 | 2 | 17.6400000000000000
- 4.2 | 4.2 | 414.61691860129675
- 4.2 | Infinity | Infinity
- 4.2 | NaN | NaN
- Infinity | 0 | 1
- Infinity | 1 | Infinity
- Infinity | 2 | Infinity
- Infinity | 4.2 | Infinity
- Infinity | Infinity | Infinity
- Infinity | NaN | NaN
- NaN | 0 | 1
- NaN | 1 | NaN
- NaN | 2 | NaN
- NaN | 4.2 | NaN
- NaN | Infinity | NaN
- NaN | NaN | NaN
+ x1 | x2 | power
+----------+----------+--------------------
+ 0 | 0 | 1.0000000000000000
+ 0 | 1 | 0.0000000000000000
+ 0 | 2 | 0.0000000000000000
+ 0 | 4.2 | 0.0000000000000000
+ 0 | Infinity | 0
+ 0 | NaN | NaN
+ 1 | 0 | 1.0000000000000000
+ 1 | 1 | 1.0000000000000000
+ 1 | 2 | 1.0000000000000000
+ 1 | 4.2 | 1.0000000000000000
+ 1 | Infinity | 1
+ 1 | NaN | 1
+ 2 | 0 | 1.0000000000000000
+ 2 | 1 | 2.0000000000000000
+ 2 | 2 | 4.0000000000000000
+ 2 | 4.2 | 18.379173679952560
+ 2 | Infinity | Infinity
+ 2 | NaN | NaN
+ 4.2 | 0 | 1.0000000000000000
+ 4.2 | 1 | 4.2000000000000000
+ 4.2 | 2 | 17.640000000000000
+ 4.2 | 4.2 | 414.61691860129675
+ 4.2 | Infinity | Infinity
+ 4.2 | NaN | NaN
+ Infinity | 0 | 1
+ Infinity | 1 | Infinity
+ Infinity | 2 | Infinity
+ Infinity | 4.2 | Infinity
+ Infinity | Infinity | Infinity
+ Infinity | NaN | NaN
+ NaN | 0 | 1
+ NaN | 1 | NaN
+ NaN | 2 | NaN
+ NaN | 4.2 | NaN
+ NaN | Infinity | NaN
+ NaN | NaN | NaN
(36 rows)
SELECT power('0'::numeric, '-1');
@@ -2368,15 +2368,15 @@ select sqrt(8015491789940783531003294973900307::numeric);
-- Test code path for raising to integer powers
--
select 10.0 ^ -2147483648 as rounds_to_zero;
- rounds_to_zero
---------------------
- 0.0000000000000000
+ [...]
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [...]
+ 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [...]
(1 row)
select 10.0 ^ -2147483647 as rounds_to_zero;
- rounds_to_zero
---------------------
- 0.0000000000000000
+ [...]
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [...]
+ 0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 [...]
(1 row)
select 10.0 ^ 2147483647 as overflows;
@@ -2385,27 +2385,27 @@ select 117743296169.0 ^ 1000000000 as overflows;
ERROR: value overflows numeric format
-- cases that used to return inaccurate results
select 3.789 ^ 21;
- ?column?
---------------------------------
- 1409343026052.8716016316022141
+ ?column?
+--------------------
+ 1409343026052.8716
(1 row)
select 3.789 ^ 35;
- ?column?
-----------------------------------------
- 177158169650516670809.3820586142670135
+ ?column?
+---------------------------
+ 177158169650516670809.382
(1 row)
select 1.2 ^ 345;
- ?column?
------------------------------------------------
- 2077446682327378559843444695.5827049735727869
+ ?column?
+--------------------------------
+ 2077446682327378559843444695.6
(1 row)
select 0.12 ^ (-20);
- ?column?
---------------------------------------
- 2608405330458882702.5529619561355838
+ ?column?
+------------------------
+ 2608405330458882702.55
(1 row)
select 1.000000000123 ^ (-2147483648);
@@ -2428,15 +2428,15 @@ select round(((1 - 1.500012345678e-1000) ^ 1.45e1003) * 1e1000);
-- cases that used to error out
select 0.12 ^ (-25);
- ?column?
--------------------------------------------
- 104825960103961013959336.4983657883169110
+ ?column?
+-----------------------------
+ 104825960103961013959336.50
(1 row)
select 0.5678 ^ (-85);
- ?column?
-----------------------------------------
- 782333637740774446257.7719390061997396
+ ?column?
+----------------------------
+ 782333637740774446257.7719
(1 row)
select coalesce(nullif(0.9999999999 ^ 70000000000000, 0), 0) as underflows;
@@ -2567,9 +2567,9 @@ select 12.3 ^ (-45.6);
-- big test
select 1.234 ^ 5678;
- ?column? [...]
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [...]
- 30723929566209074164458487259395617349356823859507414125434956540666143963659889679887682322090408495323301555399485487589089085811865646865864391816980527739940254228177790102934633770762218157434658598961334428501076450101762536674286506694885616136022480137048217145803053334630975055714054962131351575207863862071473283181529716823179077929629026620731534400888393501027404400152260623557658421599926011752311429703394401869969102410682343843175407308681338224214060229121514975952083320 [...]
+ ?column? [...]
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ [...]
+ 30723929566209074164458487259395617349356823859507414125434956540666143963659889679887682322090408495323301555399485487589089085811865646865864391816980527739940254228177790102934633770762218157434658598961334428501076450101762536674286506694885616136022480137048217145803053334630975055714054962131351575207863862071473283181529716823179077929629026620731534400888393501027404400152260623557658421599926011752311429703394401869969102410682343843175407308681338224214060229121514975952083320 [...]
(1 row)
--
diff --git a/src/test/singlenode_regress/expected/object_address.out b/src/test/singlenode_regress/expected/object_address.out
index 388097a6957..10584bf7ed5 100644
--- a/src/test/singlenode_regress/expected/object_address.out
+++ b/src/test/singlenode_regress/expected/object_address.out
@@ -47,7 +47,8 @@ SET client_min_messages = 'ERROR';
CREATE PUBLICATION addr_pub FOR TABLE addr_nsp.gentable;
RESET client_min_messages;
CREATE SUBSCRIPTION regress_addr_sub CONNECTION '' PUBLICATION bar WITH (connect = false, slot_name = NONE);
-WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+WARNING: subscription was created, but is not connected
+HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.
CREATE STATISTICS addr_nsp.gentable_stat ON a, b FROM addr_nsp.gentable;
-- test some error cases
SELECT pg_get_object_address('stone', '{}', '{}');
@@ -284,10 +285,10 @@ WARNING: error for policy,{eins,zwei,drei},{}: schema "eins" does not exist
WARNING: error for policy,{eins,zwei,drei},{integer}: schema "eins" does not exist
WARNING: error for user mapping,{eins},{}: argument list length must be exactly 1
WARNING: error for user mapping,{eins},{integer}: user mapping for user "eins" on server "integer" does not exist
-WARNING: error for user mapping,{addr_nsp,zwei},{}: argument list length must be exactly 1
-WARNING: error for user mapping,{addr_nsp,zwei},{integer}: user mapping for user "addr_nsp" on server "integer" does not exist
-WARNING: error for user mapping,{eins,zwei,drei},{}: argument list length must be exactly 1
-WARNING: error for user mapping,{eins,zwei,drei},{integer}: user mapping for user "eins" on server "integer" does not exist
+WARNING: error for user mapping,{addr_nsp,zwei},{}: name list length must be exactly 1
+WARNING: error for user mapping,{addr_nsp,zwei},{integer}: name list length must be exactly 1
+WARNING: error for user mapping,{eins,zwei,drei},{}: name list length must be exactly 1
+WARNING: error for user mapping,{eins,zwei,drei},{integer}: name list length must be exactly 1
WARNING: error for default acl,{eins},{}: argument list length must be exactly 1
WARNING: error for default acl,{eins},{integer}: unrecognized default ACL object type "i"
WARNING: error for default acl,{addr_nsp,zwei},{}: argument list length must be exactly 1
@@ -482,7 +483,7 @@ SELECT (pg_identify_object(addr1.classid, addr1.objid, addr1.objsubid)).*,
policy | | | genpol on addr_nsp.gentable | t
statistics object | addr_nsp | gentable_stat | addr_nsp.gentable_stat | t
collation | pg_catalog | "default" | pg_catalog."default" | t
- transform | | | for integer on language sql | t
+ transform | | | for integer language sql | t
text search dictionary | addr_nsp | addr_ts_dict | addr_nsp.addr_ts_dict | t
text search parser | addr_nsp | addr_ts_prs | addr_nsp.addr_ts_prs | t
text search configuration | addr_nsp | addr_ts_conf | addr_nsp.addr_ts_conf | t
diff --git a/src/test/singlenode_regress/expected/opr_sanity.out b/src/test/singlenode_regress/expected/opr_sanity.out
index 2fb7ba06584..dbe7846a607 100644
--- a/src/test/singlenode_regress/expected/opr_sanity.out
+++ b/src/test/singlenode_regress/expected/opr_sanity.out
@@ -131,10 +131,10 @@ WHERE p1.oid < p2.oid AND
oid | proname | oid | proname
------+--------------------------------+------+--------------------------------
7203 | gp_log_backend_memory_contexts | 7204 | gp_log_backend_memory_contexts
- 6212 | int2_matrix_accum | 6215 | float8_matrix_accum
- 6212 | int2_matrix_accum | 6214 | int8_matrix_accum
- 6213 | int4_matrix_accum | 6215 | float8_matrix_accum
- 6213 | int4_matrix_accum | 6214 | int8_matrix_accum
+ 6405 | int2_matrix_accum | 6414 | float8_matrix_accum
+ 6405 | int2_matrix_accum | 6406 | int8_matrix_accum
+ 6407 | int4_matrix_accum | 6414 | float8_matrix_accum
+ 6406 | int8_matrix_accum | 6407 | int4_matrix_accum
(5 rows)
-- Look for uses of different type OIDs in the argument/result type fields
@@ -217,7 +217,8 @@ ORDER BY 1, 2;
timestamp without time zone | timestamp with time zone
bit | bit varying
txid_snapshot | pg_snapshot
-(4 rows)
+ anyrange | anymultirange
+(5 rows)
SELECT DISTINCT p1.proargtypes[2]::regtype, p2.proargtypes[2]::regtype
FROM pg_proc AS p1, pg_proc AS p2
@@ -2231,6 +2232,7 @@ ORDER BY 1, 2, 3;
| complex_ops | complex_ops | complex
| float_ops | float4_ops | real
| float_ops | float8_ops | double precision
+ | interval_ops | interval_ops | interval
| jsonb_ops | jsonb_ops | jsonb
| multirange_ops | multirange_ops | anymultirange
| numeric_ops | numeric_ops | numeric
@@ -2239,7 +2241,7 @@ ORDER BY 1, 2, 3;
| record_ops | record_ops | record
| tsquery_ops | tsquery_ops | tsquery
| tsvector_ops | tsvector_ops | tsvector
-(16 rows)
+(17 rows)
-- **************** pg_index ****************
-- Look for illegal values in pg_index fields.
diff --git a/src/test/singlenode_regress/expected/plpgsql.out b/src/test/singlenode_regress/expected/plpgsql.out
index ce4b89f42a9..afebe977223 100644
--- a/src/test/singlenode_regress/expected/plpgsql.out
+++ b/src/test/singlenode_regress/expected/plpgsql.out
@@ -3457,15 +3457,15 @@ begin
end;
$$ language plpgsql;
select forc01();
-NOTICE: 5 from c
-NOTICE: 6 from c
-NOTICE: 7 from c
-NOTICE: 9 from c
-NOTICE: 10 from c
-NOTICE: 41 from c2
-NOTICE: 42 from c2
-NOTICE: 43 from c2
-NOTICE: after loop, c2 = c2
+NOTICE: 5 from <unnamed portal 21>
+NOTICE: 6 from <unnamed portal 21>
+NOTICE: 7 from <unnamed portal 21>
+NOTICE: 9 from <unnamed portal 22>
+NOTICE: 10 from <unnamed portal 22>
+NOTICE: 41 from <unnamed portal 23>
+NOTICE: 42 from <unnamed portal 23>
+NOTICE: 43 from <unnamed portal 23>
+NOTICE: after loop, c2 = <NULL>
NOTICE: 41 from special_name
NOTICE: 42 from special_name
NOTICE: 43 from special_name
diff --git a/src/test/singlenode_regress/expected/prepare.out b/src/test/singlenode_regress/expected/prepare.out
index 8eb2264fc74..3306c696b17 100644
--- a/src/test/singlenode_regress/expected/prepare.out
+++ b/src/test/singlenode_regress/expected/prepare.out
@@ -61,7 +61,7 @@ PREPARE q2(text) AS
EXECUTE q2('postgres');
datname | datistemplate | datallowconn
----------+---------------+--------------
- postgres | t | t
+ postgres | f | t
(1 row)
PREPARE q3(text, int, float, boolean, smallint) AS
diff --git a/src/test/singlenode_regress/expected/psql.out b/src/test/singlenode_regress/expected/psql.out
index 49504f1665b..ea06605813f 100644
--- a/src/test/singlenode_regress/expected/psql.out
+++ b/src/test/singlenode_regress/expected/psql.out
@@ -305,6 +305,7 @@ tuples_only off
unicode_border_linestyle single
unicode_column_linestyle single
unicode_header_linestyle single
+xheader_width full
-- test multi-line headers, wrapping, and newline indicators
-- in aligned, unaligned, and wrapped formats
prepare q as select array_to_string(array_agg(repeat('x',2*n)),E'\n') as "ab
@@ -5708,9 +5709,9 @@ List of text search templates
(0 rows)
\dg "no.such.role"
- List of roles
- Role name | Attributes | Member of
------------+------------+-----------
+ List of roles
+ Role name | Attributes
+-----------+------------
\dL "no.such.language"
List of languages
@@ -5731,9 +5732,9 @@ List of schemas
(0 rows)
\dO "no.such.collation"
- List of collations
- Schema | Name | Collate | Ctype | Provider | Deterministic?
---------+------+---------+-------+----------+----------------
+ List of collations
+ Schema | Name | Provider | Collate | Ctype | ICU Locale | ICU Rules | Deterministic?
+--------+------+----------+---------+-------+------------+-----------+----------------
(0 rows)
\dp "no.such.access.privilege"
@@ -5920,9 +5921,9 @@ cross-database references are not implemented: "no.such.schema"."no.such.languag
(0 rows)
\dO "no.such.schema"."no.such.collation"
- List of collations
- Schema | Name | Collate | Ctype | Provider | Deterministic?
---------+------+---------+-------+----------+----------------
+ List of collations
+ Schema | Name | Provider | Collate | Ctype | ICU Locale | ICU Rules | Deterministic?
+--------+------+----------+---------+-------+------------+-----------+----------------
(0 rows)
\dp "no.such.schema"."no.such.access.privilege"
@@ -6063,9 +6064,9 @@ List of text search templates
(0 rows)
\dO regression."no.such.schema"."no.such.collation"
- List of collations
- Schema | Name | Collate | Ctype | Provider | Deterministic?
---------+------+---------+-------+----------+----------------
+ List of collations
+ Schema | Name | Provider | Collate | Ctype | ICU Locale | ICU Rules | Deterministic?
+--------+------+----------+---------+-------+------------+-----------+----------------
(0 rows)
\dp regression."no.such.schema"."no.such.access.privilege"
diff --git a/src/test/singlenode_regress/expected/publication.out b/src/test/singlenode_regress/expected/publication.out
index 7c7e0226658..43584c52be5 100644
--- a/src/test/singlenode_regress/expected/publication.out
+++ b/src/test/singlenode_regress/expected/publication.out
@@ -24,9 +24,11 @@ ALTER PUBLICATION testpub_default SET (publish = update);
CREATE PUBLICATION testpub_xxx WITH (foo);
ERROR: unrecognized publication parameter: "foo"
CREATE PUBLICATION testpub_xxx WITH (publish = 'cluster, vacuum');
-ERROR: unrecognized "publish" value: "cluster"
+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
@@ -167,9 +169,9 @@ UPDATE testpub_parted2 SET a = 2;
ALTER PUBLICATION testpub_forparted ADD TABLE testpub_parted, testpub_parted2;
-- only parent is listed as being in publication, not the partition
SELECT * FROM pg_publication_tables;
- pubname | schemaname | tablename
--------------------+------------+----------------
- testpub_forparted | public | testpub_parted
+ pubname | schemaname | tablename | attnames | rowfilter
+-------------------+------------+----------------+----------+-----------
+ testpub_forparted | public | testpub_parted | {a} |
(1 row)
DROP TABLE testpub_parted1, testpub_parted2;
@@ -191,8 +193,8 @@ UPDATE testpub_tbl4 set a = 3;
DROP TABLE testpub_tbl4;
-- fail - view
CREATE PUBLICATION testpub_fortbl FOR TABLE testpub_view;
-ERROR: "testpub_view" is not a table
-DETAIL: Only tables can be added to publications.
+ERROR: cannot add relation "testpub_view" to publication
+DETAIL: This operation is not supported for views.
SET client_min_messages = 'ERROR';
CREATE PUBLICATION testpub_fortbl FOR TABLE testpub_tbl1, pub_test.testpub_nopk;
RESET client_min_messages;
@@ -213,8 +215,8 @@ Tables:
-- fail - view
ALTER PUBLICATION testpub_default ADD TABLE testpub_view;
-ERROR: "testpub_view" is not a table
-DETAIL: Only tables can be added to publications.
+ERROR: cannot add relation "testpub_view" to publication
+DETAIL: This operation is not supported for views.
ALTER PUBLICATION testpub_default ADD TABLE testpub_tbl1;
ALTER PUBLICATION testpub_default SET TABLE testpub_tbl1;
ALTER PUBLICATION testpub_default ADD TABLE pub_test.testpub_nopk;
diff --git a/src/test/singlenode_regress/expected/regproc.out b/src/test/singlenode_regress/expected/regproc.out
index 7188cf58677..4f3efb2c11f 100644
--- a/src/test/singlenode_regress/expected/regproc.out
+++ b/src/test/singlenode_regress/expected/regproc.out
@@ -247,7 +247,7 @@ LINE 1: SELECT regtype('int3');
^
-- with schemaname
SELECT regoper('ng_catalog.||/');
-ERROR: schema "ng_catalog" does not exist
+ERROR: operator does not exist: ng_catalog.||/
LINE 1: SELECT regoper('ng_catalog.||/');
^
SELECT regoperator('ng_catalog.+(int4,int4)');
@@ -255,15 +255,15 @@ ERROR: operator does not exist: ng_catalog.+(int4,int4)
LINE 1: SELECT regoperator('ng_catalog.+(int4,int4)');
^
SELECT regproc('ng_catalog.now');
-ERROR: schema "ng_catalog" does not exist
+ERROR: function "ng_catalog.now" does not exist
LINE 1: SELECT regproc('ng_catalog.now');
^
SELECT regprocedure('ng_catalog.abs(numeric)');
-ERROR: schema "ng_catalog" does not exist
+ERROR: function "ng_catalog.abs(numeric)" does not exist
LINE 1: SELECT regprocedure('ng_catalog.abs(numeric)');
^
SELECT regclass('ng_catalog.pg_class');
-ERROR: schema "ng_catalog" does not exist
+ERROR: relation "ng_catalog.pg_class" does not exist
LINE 1: SELECT regclass('ng_catalog.pg_class');
^
SELECT regtype('ng_catalog.int4');
@@ -271,7 +271,7 @@ ERROR: schema "ng_catalog" does not exist
LINE 1: SELECT regtype('ng_catalog.int4');
^
SELECT regcollation('ng_catalog."POSIX"');
-ERROR: schema "ng_catalog" does not exist
+ERROR: collation "ng_catalog.POSIX" for encoding "UTF8" does not exist
LINE 1: SELECT regcollation('ng_catalog."POSIX"');
^
-- schemaname not applicable
@@ -408,7 +408,11 @@ SELECT to_regrole('"regress_regrole_test"');
(1 row)
SELECT to_regrole('foo.bar');
-ERROR: invalid name syntax
+ to_regrole
+------------
+
+(1 row)
+
SELECT to_regrole('Nonexistent');
to_regrole
------------
@@ -422,7 +426,11 @@ SELECT to_regrole('"Nonexistent"');
(1 row)
SELECT to_regrole('foo.bar');
-ERROR: invalid name syntax
+ to_regrole
+------------
+
+(1 row)
+
SELECT to_regnamespace('Nonexistent');
to_regnamespace
-----------------
@@ -436,4 +444,8 @@ SELECT to_regnamespace('"Nonexistent"');
(1 row)
SELECT to_regnamespace('foo.bar');
-ERROR: invalid name syntax
+ to_regnamespace
+-----------------
+
+(1 row)
+
diff --git a/src/test/singlenode_regress/expected/rowsecurity.out b/src/test/singlenode_regress/expected/rowsecurity.out
index 60b1eb0a261..9f50e0d2b4a 100644
--- a/src/test/singlenode_regress/expected/rowsecurity.out
+++ b/src/test/singlenode_regress/expected/rowsecurity.out
@@ -783,15 +783,16 @@ SELECT * FROM t1 FOR SHARE;
EXPLAIN (COSTS OFF) SELECT * FROM t1 FOR SHARE;
QUERY PLAN
-------------------------------------
- Append
- -> Seq Scan on t1 t1_1
- Filter: ((a % 2) = 0)
- -> Seq Scan on t2 t1_2
- Filter: ((a % 2) = 0)
- -> Seq Scan on t3 t1_3
- Filter: ((a % 2) = 0)
+ LockRows
+ -> Append
+ -> Seq Scan on t1 t1_1
+ Filter: ((a % 2) = 0)
+ -> Seq Scan on t2 t1_2
+ Filter: ((a % 2) = 0)
+ -> Seq Scan on t3 t1_3
+ Filter: ((a % 2) = 0)
Optimizer: Postgres query optimizer
-(8 rows)
+(9 rows)
SELECT * FROM t1 WHERE f_leak(b) FOR SHARE;
NOTICE: f_leak => bbb
@@ -809,17 +810,18 @@ NOTICE: f_leak => yyy
(5 rows)
EXPLAIN (COSTS OFF) SELECT * FROM t1 WHERE f_leak(b) FOR SHARE;
- QUERY PLAN
------------------------------------------------
- Append
- -> Seq Scan on t1 t1_1
- Filter: (((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t2 t1_2
- Filter: (((a % 2) = 0) AND f_leak(b))
- -> Seq Scan on t3 t1_3
- Filter: (((a % 2) = 0) AND f_leak(b))
+ QUERY PLAN
+-----------------------------------------------------
+ LockRows
+ -> Append
+ -> Seq Scan on t1 t1_1
+ Filter: (((a % 2) = 0) AND f_leak(b))
+ -> Seq Scan on t2 t1_2
+ Filter: (((a % 2) = 0) AND f_leak(b))
+ -> Seq Scan on t3 t1_3
+ Filter: (((a % 2) = 0) AND f_leak(b))
Optimizer: Postgres query optimizer
-(8 rows)
+(9 rows)
-- union all query
SELECT a, b, tableoid::regclass FROM t2 UNION ALL SELECT a, b, tableoid::regclass FROM t3;
@@ -1822,11 +1824,11 @@ AND f_leak(t2_1.b) AND f_leak(t2_2.b) RETURNING *, t2_1, t2_2;
-----------------------------------------------------------------------
Update on t2 t2_1
-> Hash Join
- Hash Cond: (t2_2.b = t2_1.b)
- -> Seq Scan on t2 t2_2
+ Hash Cond: (t2_1.b = t2_2.b)
+ -> Seq Scan on t2 t2_1
Filter: ((a = 3) AND ((a % 2) = 1) AND f_leak(b))
-> Hash
- -> Seq Scan on t2 t2_1
+ -> Seq Scan on t2 t2_2
Filter: ((a = 3) AND ((a % 2) = 1) AND f_leak(b))
Optimizer: Postgres query optimizer
(9 rows)
@@ -3609,17 +3611,21 @@ ALTER TABLE t ENABLE ROW LEVEL SECURITY;
SAVEPOINT q;
CREATE RULE "_RETURN" AS ON SELECT TO t DO INSTEAD
SELECT * FROM generate_series(1,5) t0(c); -- fails due to row-level security enabled
-ERROR: could not convert table "t" to a view because it has row security enabled
+ERROR: relation "t" cannot have ON SELECT rules
+DETAIL: This operation is not supported for tables.
ROLLBACK TO q;
ALTER TABLE t DISABLE ROW LEVEL SECURITY;
SAVEPOINT q;
CREATE RULE "_RETURN" AS ON SELECT TO t DO INSTEAD
SELECT * FROM generate_series(1,5) t0(c); -- fails due to policy p on t
-ERROR: could not convert table "t" to a view because it has row security policies
+ERROR: relation "t" cannot have ON SELECT rules
+DETAIL: This operation is not supported for tables.
ROLLBACK TO q;
DROP POLICY p ON t;
CREATE RULE "_RETURN" AS ON SELECT TO t DO INSTEAD
SELECT * FROM generate_series(1,5) t0(c); -- succeeds
+ERROR: relation "t" cannot have ON SELECT rules
+DETAIL: This operation is not supported for tables.
ROLLBACK;
--
-- Policy expression handling
diff --git a/src/test/singlenode_regress/expected/sanity_check.out b/src/test/singlenode_regress/expected/sanity_check.out
index 9a4a9e8db34..a5a122ac32d 100644
--- a/src/test/singlenode_regress/expected/sanity_check.out
+++ b/src/test/singlenode_regress/expected/sanity_check.out
@@ -149,6 +149,7 @@ pg_namespace|t
pg_opclass|t
pg_operator|t
pg_opfamily|t
+pg_parameter_acl|t
pg_partitioned_table|t
pg_password_history|t
pg_policy|t
@@ -156,6 +157,7 @@ pg_proc|t
pg_proc_callback|t
pg_profile|t
pg_publication|t
+pg_publication_namespace|t
pg_publication_rel|t
pg_range|t
pg_replication_origin|t
diff --git a/src/test/singlenode_regress/expected/select.out b/src/test/singlenode_regress/expected/select.out
index a7014af1f98..8e740682640 100644
--- a/src/test/singlenode_regress/expected/select.out
+++ b/src/test/singlenode_regress/expected/select.out
@@ -816,11 +816,12 @@ select unique2 from onek2 where unique2 = 11 and stringu1 < 'B';
-- but if it's an update target, must retest anyway
explain (costs off)
select unique2 from onek2 where unique2 = 11 and stringu1 < 'B' for update;
- QUERY PLAN
------------------------------------------
- Index Scan using onek2_u2_prtl on onek2
- Index Cond: (unique2 = 11)
- Filter: (stringu1 < 'B'::name)
+ QUERY PLAN
+-----------------------------------------------
+ LockRows
+ -> Index Scan using onek2_u2_prtl on onek2
+ Index Cond: (unique2 = 11)
+ Filter: (stringu1 < 'B'::name)
Optimizer: Postgres query optimizer
(4 rows)
@@ -868,17 +869,12 @@ RESET enable_indexscan;
explain (costs off)
select unique1, unique2 from onek2
where (unique2 = 11 or unique1 = 0) and stringu1 < 'B';
- QUERY PLAN
---------------------------------------------------------------------------------
- Bitmap Heap Scan on onek2
- Recheck Cond: (((unique2 = 11) AND (stringu1 < 'B'::name)) OR (unique1 = 0))
- Filter: (stringu1 < 'B'::name)
- -> BitmapOr
- -> Bitmap Index Scan on onek2_u2_prtl
- Index Cond: (unique2 = 11)
- -> Bitmap Index Scan on onek2_u1_prtl
- Index Cond: (unique1 = 0)
-(8 rows)
+ QUERY PLAN
+---------------------------------------------
+ Index Scan using onek2_u2_prtl on onek2
+ Filter: ((unique2 = 11) OR (unique1 = 0))
+ Optimizer: Postgres query optimizer
+(3 rows)
select unique1, unique2 from onek2
where (unique2 = 11 or unique1 = 0) and stringu1 < 'B';
diff --git a/src/test/singlenode_regress/expected/select_distinct.out b/src/test/singlenode_regress/expected/select_distinct.out
index cf95ca032c5..46f342ad195 100644
--- a/src/test/singlenode_regress/expected/select_distinct.out
+++ b/src/test/singlenode_regress/expected/select_distinct.out
@@ -136,7 +136,7 @@ SELECT count(*) FROM
Output: count(*)
-> HashAggregate
Output: tenk1.two, tenk1.four, tenk1.two
- Group Key: tenk1.two, tenk1.four, tenk1.two
+ Group Key: tenk1.two, tenk1.four
-> Seq Scan on public.tenk1
Output: tenk1.two, tenk1.four, tenk1.two
(7 rows)
diff --git a/src/test/singlenode_regress/expected/subscription.out b/src/test/singlenode_regress/expected/subscription.out
index e1bac50dfe4..ab9123a341d 100644
--- a/src/test/singlenode_regress/expected/subscription.out
+++ b/src/test/singlenode_regress/expected/subscription.out
@@ -28,7 +28,8 @@ CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUB
ERROR: publication name "foo" used more than once
-- ok
CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false);
-WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+WARNING: subscription was created, but is not connected
+HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.
COMMENT ON SUBSCRIPTION regress_testsub IS 'test subscription';
SELECT obj_description(s.oid, 'pg_subscription') FROM pg_subscription s;
obj_description
@@ -42,7 +43,8 @@ ERROR: subscription "regress_testsub" already exists
-- fail - must be superuser
SET SESSION AUTHORIZATION 'regress_subscription_user2';
CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION foo WITH (connect = false);
-ERROR: must be superuser to create subscriptions
+ERROR: permission denied to create subscription
+DETAIL: Only roles with privileges of the "pg_create_subscription" role may create subscriptions.
SET SESSION AUTHORIZATION 'regress_subscription_user';
-- fail - invalid option combinations
CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, copy_data = true);
@@ -54,7 +56,7 @@ ERROR: connect = false and create_slot = true are mutually exclusive options
CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (slot_name = NONE, enabled = true);
ERROR: slot_name = NONE and enabled = true are mutually exclusive options
CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (slot_name = NONE, create_slot = true);
-ERROR: slot_name = NONE and create_slot = true are mutually exclusive options
+ERROR: subscription with slot_name = NONE must also set enabled = false
CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (slot_name = NONE);
ERROR: subscription with slot_name = NONE must also set enabled = false
CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (slot_name = NONE, enabled = false);
@@ -63,7 +65,8 @@ CREATE SUBSCRIPTION regress_testsub2 CONNECTION 'dbname=regress_doesnotexist' PU
ERROR: subscription with slot_name = NONE must also set enabled = false
-- ok - with slot_name = NONE
CREATE SUBSCRIPTION regress_testsub3 CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (slot_name = NONE, connect = false);
-WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+WARNING: subscription was created, but is not connected
+HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.
-- fail
ALTER SUBSCRIPTION regress_testsub3 ENABLE;
ERROR: cannot enable subscription that does not have a slot name
@@ -74,10 +77,10 @@ DROP SUBSCRIPTION regress_testsub3;
ALTER SUBSCRIPTION regress_testsub CONNECTION 'foobar';
ERROR: invalid connection string syntax: missing "=" after "foobar" in connection info string
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub} | f | off | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
ALTER SUBSCRIPTION regress_testsub SET PUBLICATION testpub2, testpub3 WITH (refresh = false);
@@ -92,10 +95,10 @@ ERROR: subscription "regress_doesnotexist" does not exist
ALTER SUBSCRIPTION regress_testsub SET (create_slot = false);
ERROR: unrecognized subscription parameter: "create_slot"
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+---------------------+--------+-----------+--------------------+------------------------------
- regress_testsub | regress_subscription_user | f | {testpub2,testpub3} | f | f | off | dbname=regress_doesnotexist2
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+---------------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+------------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub2,testpub3} | f | off | d | f | any | t | f | off | dbname=regress_doesnotexist2 | 0/0
(1 row)
BEGIN;
@@ -127,18 +130,16 @@ ALTER SUBSCRIPTION regress_testsub_foo SET (synchronous_commit = foobar);
ERROR: invalid value for parameter "synchronous_commit": "foobar"
HINT: Available values: local, remote_write, remote_apply, on, off.
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
----------------------+---------------------------+---------+---------------------+--------+-----------+--------------------+------------------------------
- regress_testsub_foo | regress_subscription_user | f | {testpub2,testpub3} | f | f | local | dbname=regress_doesnotexist2
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+---------------------+---------------------------+---------+---------------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+------------------------------+----------
+ regress_testsub_foo | regress_subscription_user | f | {testpub2,testpub3} | f | off | d | f | any | t | f | local | dbname=regress_doesnotexist2 | 0/0
(1 row)
-- rename back to keep the rest simple
ALTER SUBSCRIPTION regress_testsub_foo RENAME TO regress_testsub;
-- fail - new owner must be superuser
ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
-ERROR: permission denied to change owner of subscription "regress_testsub"
-HINT: The owner of a subscription must be a superuser.
ALTER ROLE regress_subscription_user2 SUPERUSER;
-- now it works
ALTER SUBSCRIPTION regress_testsub OWNER TO regress_subscription_user2;
@@ -161,44 +162,46 @@ CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUB
ERROR: binary requires a Boolean value
-- now it works
CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, binary = true);
-WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+WARNING: subscription was created, but is not connected
+HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub} | t | f | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub} | t | off | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
ALTER SUBSCRIPTION regress_testsub SET (binary = false);
ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE);
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub} | f | off | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
DROP SUBSCRIPTION regress_testsub;
-- fail - streaming must be boolean
CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, streaming = foo);
-ERROR: streaming requires a Boolean value
+ERROR: streaming requires a Boolean value or "parallel"
-- now it works
CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION testpub WITH (connect = false, streaming = true);
-WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+WARNING: subscription was created, but is not connected
+HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub} | f | t | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub} | f | on | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
ALTER SUBSCRIPTION regress_testsub SET (streaming = false);
ALTER SUBSCRIPTION regress_testsub SET (slot_name = NONE);
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub} | f | off | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
-- fail - publication already exists
@@ -213,10 +216,10 @@ ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refr
ALTER SUBSCRIPTION regress_testsub ADD PUBLICATION testpub1, testpub2 WITH (refresh = false);
ERROR: publication "testpub1" is already in subscription "regress_testsub"
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-----------------------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | f | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-----------------------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub,testpub1,testpub2} | f | off | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
-- fail - publication used more then once
@@ -231,16 +234,17 @@ ERROR: publication "testpub3" is not in subscription "regress_testsub"
-- ok - delete publications
ALTER SUBSCRIPTION regress_testsub DROP PUBLICATION testpub1, testpub2 WITH (refresh = false);
\dRs+
- List of subscriptions
- Name | Owner | Enabled | Publication | Binary | Streaming | Synchronous commit | Conninfo
------------------+---------------------------+---------+-------------+--------+-----------+--------------------+-----------------------------
- regress_testsub | regress_subscription_user | f | {testpub} | f | f | off | dbname=regress_doesnotexist
+ List of subscriptions
+ Name | Owner | Enabled | Publication | Binary | Streaming | Two-phase commit | Disable on error | Origin | Password required | Run as owner? | Synchronous commit | Conninfo | Skip LSN
+-----------------+---------------------------+---------+-------------+--------+-----------+------------------+------------------+--------+-------------------+---------------+--------------------+-----------------------------+----------
+ regress_testsub | regress_subscription_user | f | {testpub} | f | off | d | f | any | t | f | off | dbname=regress_doesnotexist | 0/0
(1 row)
DROP SUBSCRIPTION regress_testsub;
CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUBLICATION mypub
WITH (connect = false, create_slot = false, copy_data = false);
-WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
+WARNING: subscription was created, but is not connected
+HINT: To initiate replication, you must manually create the replication slot, enable the subscription, and refresh the subscription.
ALTER SUBSCRIPTION regress_testsub ENABLE;
-- fail - ALTER SUBSCRIPTION with refresh is not allowed in a transaction
-- block or function
diff --git a/src/test/singlenode_regress/expected/subselect.out b/src/test/singlenode_regress/expected/subselect.out
index 7cd68de4dab..8a8275735ce 100644
--- a/src/test/singlenode_regress/expected/subselect.out
+++ b/src/test/singlenode_regress/expected/subselect.out
@@ -1114,7 +1114,8 @@ where o.ten = 0;
SubPlan 1
-> Seq Scan on public.int4_tbl
Output: int4_tbl.f1
- Filter: (int4_tbl.f1 <= $0)
+ Filter: (int4_tbl.f1 <= o.hundred)
+ Settings: optimizer = 'off'
Optimizer: Postgres query optimizer
(17 rows)
diff --git a/src/test/singlenode_regress/expected/sysviews.out b/src/test/singlenode_regress/expected/sysviews.out
index f7c28277c08..9ed6781675b 100644
--- a/src/test/singlenode_regress/expected/sysviews.out
+++ b/src/test/singlenode_regress/expected/sysviews.out
@@ -127,10 +127,11 @@ name not in ('enable_parallel',
enable_partitionwise_aggregate | off
enable_partitionwise_join | off
enable_password_profile | on
+ enable_presorted_aggregate | on
enable_seqscan | on
enable_sort | on
enable_tidscan | on
-(23 rows)
+(24 rows)
-- Test that the pg_timezone_names and pg_timezone_abbrevs views are
-- more-or-less working. We can't test their contents in any great detail
diff --git a/src/test/singlenode_regress/expected/tablesample.out b/src/test/singlenode_regress/expected/tablesample.out
index db3acb95d37..9f0519e03ec 100644
--- a/src/test/singlenode_regress/expected/tablesample.out
+++ b/src/test/singlenode_regress/expected/tablesample.out
@@ -120,7 +120,7 @@ CREATE VIEW test_tablesample_v2 AS
--------+---------+-----------+----------+---------+---------+-------------
id | integer | | | | plain |
View definition:
- SELECT test_tablesample.id
+ SELECT id
FROM test_tablesample TABLESAMPLE system ((10 * 2)) REPEATABLE (2);
\d+ test_tablesample_v2
@@ -129,7 +129,7 @@ View definition:
--------+---------+-----------+----------+---------+---------+-------------
id | integer | | | | plain |
View definition:
- SELECT test_tablesample.id
+ SELECT id
FROM test_tablesample TABLESAMPLE system (99);
-- check a sampled query doesn't affect cursor in progress
diff --git a/src/test/singlenode_regress/expected/tidscan.out b/src/test/singlenode_regress/expected/tidscan.out
index 7181f7576e8..e48f10ef5ab 100644
--- a/src/test/singlenode_regress/expected/tidscan.out
+++ b/src/test/singlenode_regress/expected/tidscan.out
@@ -113,14 +113,14 @@ SET enable_hashjoin TO off; -- otherwise hash join might win
EXPLAIN (COSTS OFF)
SELECT t1.ctid, t1.*, t2.ctid, t2.*
FROM tidscan t1 JOIN tidscan t2 ON t1.ctid = t2.ctid WHERE t1.id = 1;
- QUERY PLAN
-------------------------------------
+ QUERY PLAN
+-------------------------------------
Nested Loop
-> Seq Scan on tidscan t1
Filter: (id = 1)
-> Tid Scan on tidscan t2
- TID Cond: (ctid = t1.ctid)
-(5 rows)
+ TID Cond: (t1.ctid = ctid)
+(6 rows)
SELECT t1.ctid, t1.*, t2.ctid, t2.*
FROM tidscan t1 JOIN tidscan t2 ON t1.ctid = t2.ctid WHERE t1.id = 1;
diff --git a/src/test/singlenode_regress/expected/time.out b/src/test/singlenode_regress/expected/time.out
index 39b409feca9..f3a71503c25 100644
--- a/src/test/singlenode_regress/expected/time.out
+++ b/src/test/singlenode_regress/expected/time.out
@@ -161,11 +161,11 @@ SELECT EXTRACT(HOUR FROM TIME '2020-05-26 13:30:25.575401');
(1 row)
SELECT EXTRACT(DAY FROM TIME '2020-05-26 13:30:25.575401'); -- error
-ERROR: "time" units "day" not recognized
+ERROR: unit "day" not supported for type time without time zone
SELECT EXTRACT(FORTNIGHT FROM TIME '2020-05-26 13:30:25.575401'); -- error
-ERROR: "time" units "fortnight" not recognized
+ERROR: unit "fortnight" not recognized for type time without time zone
SELECT EXTRACT(TIMEZONE FROM TIME '2020-05-26 13:30:25.575401'); -- error
-ERROR: "time" units "timezone" not recognized
+ERROR: unit "timezone" not supported for type time without time zone
SELECT EXTRACT(EPOCH FROM TIME '2020-05-26 13:30:25.575401');
extract
--------------
diff --git a/src/test/singlenode_regress/expected/timestamptz.out b/src/test/singlenode_regress/expected/timestamptz.out
index a0df947e271..a8bc0ecf81d 100644
--- a/src/test/singlenode_regress/expected/timestamptz.out
+++ b/src/test/singlenode_regress/expected/timestamptz.out
@@ -293,12 +293,12 @@ SELECT d1 FROM TIMESTAMPTZ_TBL;
Fri Feb 14 17:32:01 1997 PST
Sat Feb 15 17:32:01 1997 PST
Sun Feb 16 17:32:01 1997 PST
- Tue Feb 16 17:32:01 0097 PST BC
- Sat Feb 16 17:32:01 0097 PST
- Thu Feb 16 17:32:01 0597 PST
- Tue Feb 16 17:32:01 1097 PST
- Sat Feb 16 17:32:01 1697 PST
- Thu Feb 16 17:32:01 1797 PST
+ Tue Feb 16 17:32:01 0097 LMT BC
+ Sat Feb 16 17:32:01 0097 LMT
+ Thu Feb 16 17:32:01 0597 LMT
+ Tue Feb 16 17:32:01 1097 LMT
+ Sat Feb 16 17:32:01 1697 LMT
+ Thu Feb 16 17:32:01 1797 LMT
Tue Feb 16 17:32:01 1897 PST
Sun Feb 16 17:32:01 1997 PST
Sat Feb 16 17:32:01 2097 PST
@@ -322,19 +322,19 @@ SELECT d1 FROM TIMESTAMPTZ_TBL;
SELECT '4714-11-24 00:00:00+00 BC'::timestamptz;
timestamptz
---------------------------------
- Sun Nov 23 16:00:00 4714 PST BC
+ Sun Nov 23 16:07:02 4714 LMT BC
(1 row)
SELECT '4714-11-23 16:00:00-08 BC'::timestamptz;
timestamptz
---------------------------------
- Sun Nov 23 16:00:00 4714 PST BC
+ Sun Nov 23 16:07:02 4714 LMT BC
(1 row)
SELECT 'Sun Nov 23 16:00:00 4714 PST BC'::timestamptz;
timestamptz
---------------------------------
- Sun Nov 23 16:00:00 4714 PST BC
+ Sun Nov 23 16:07:02 4714 LMT BC
(1 row)
SELECT '4714-11-23 23:59:59+00 BC'::timestamptz; -- out of range
@@ -424,12 +424,12 @@ SELECT d1 FROM TIMESTAMPTZ_TBL
---------------------------------
-infinity
Wed Dec 31 16:00:00 1969 PST
- Tue Feb 16 17:32:01 0097 PST BC
- Sat Feb 16 17:32:01 0097 PST
- Thu Feb 16 17:32:01 0597 PST
- Tue Feb 16 17:32:01 1097 PST
- Sat Feb 16 17:32:01 1697 PST
- Thu Feb 16 17:32:01 1797 PST
+ Tue Feb 16 17:32:01 0097 LMT BC
+ Sat Feb 16 17:32:01 0097 LMT
+ Thu Feb 16 17:32:01 0597 LMT
+ Tue Feb 16 17:32:01 1097 LMT
+ Sat Feb 16 17:32:01 1697 LMT
+ Thu Feb 16 17:32:01 1797 LMT
Tue Feb 16 17:32:01 1897 PST
Wed Feb 28 17:32:01 1996 PST
Thu Feb 29 17:32:01 1996 PST
@@ -492,12 +492,12 @@ SELECT d1 FROM TIMESTAMPTZ_TBL
Fri Feb 14 17:32:01 1997 PST
Sat Feb 15 17:32:01 1997 PST
Sun Feb 16 17:32:01 1997 PST
- Tue Feb 16 17:32:01 0097 PST BC
- Sat Feb 16 17:32:01 0097 PST
- Thu Feb 16 17:32:01 0597 PST
- Tue Feb 16 17:32:01 1097 PST
- Sat Feb 16 17:32:01 1697 PST
- Thu Feb 16 17:32:01 1797 PST
+ Tue Feb 16 17:32:01 0097 LMT BC
+ Sat Feb 16 17:32:01 0097 LMT
+ Thu Feb 16 17:32:01 0597 LMT
+ Tue Feb 16 17:32:01 1097 LMT
+ Sat Feb 16 17:32:01 1697 LMT
+ Thu Feb 16 17:32:01 1797 LMT
Tue Feb 16 17:32:01 1897 PST
Sun Feb 16 17:32:01 1997 PST
Sat Feb 16 17:32:01 2097 PST
@@ -524,12 +524,12 @@ SELECT d1 FROM TIMESTAMPTZ_TBL
-infinity
Wed Dec 31 16:00:00 1969 PST
Thu Jan 02 00:00:00 1997 PST
- Tue Feb 16 17:32:01 0097 PST BC
- Sat Feb 16 17:32:01 0097 PST
- Thu Feb 16 17:32:01 0597 PST
- Tue Feb 16 17:32:01 1097 PST
- Sat Feb 16 17:32:01 1697 PST
- Thu Feb 16 17:32:01 1797 PST
+ Tue Feb 16 17:32:01 0097 LMT BC
+ Sat Feb 16 17:32:01 0097 LMT
+ Thu Feb 16 17:32:01 0597 LMT
+ Tue Feb 16 17:32:01 1097 LMT
+ Sat Feb 16 17:32:01 1697 LMT
+ Thu Feb 16 17:32:01 1797 LMT
Tue Feb 16 17:32:01 1897 PST
Wed Feb 28 17:32:01 1996 PST
Thu Feb 29 17:32:01 1996 PST
@@ -869,12 +869,12 @@ SELECT d1 as timestamptz,
Fri Feb 14 17:32:01 1997 PST | 1997 | 2 | 14 | 17 | 32 | 1
Sat Feb 15 17:32:01 1997 PST | 1997 | 2 | 15 | 17 | 32 | 1
Sun Feb 16 17:32:01 1997 PST | 1997 | 2 | 16 | 17 | 32 | 1
- Tue Feb 16 17:32:01 0097 PST BC | -97 | 2 | 16 | 17 | 32 | 1
- Sat Feb 16 17:32:01 0097 PST | 97 | 2 | 16 | 17 | 32 | 1
- Thu Feb 16 17:32:01 0597 PST | 597 | 2 | 16 | 17 | 32 | 1
- Tue Feb 16 17:32:01 1097 PST | 1097 | 2 | 16 | 17 | 32 | 1
- Sat Feb 16 17:32:01 1697 PST | 1697 | 2 | 16 | 17 | 32 | 1
- Thu Feb 16 17:32:01 1797 PST | 1797 | 2 | 16 | 17 | 32 | 1
+ Tue Feb 16 17:32:01 0097 LMT BC | -97 | 2 | 16 | 17 | 32 | 1
+ Sat Feb 16 17:32:01 0097 LMT | 97 | 2 | 16 | 17 | 32 | 1
+ Thu Feb 16 17:32:01 0597 LMT | 597 | 2 | 16 | 17 | 32 | 1
+ Tue Feb 16 17:32:01 1097 LMT | 1097 | 2 | 16 | 17 | 32 | 1
+ Sat Feb 16 17:32:01 1697 LMT | 1697 | 2 | 16 | 17 | 32 | 1
+ Thu Feb 16 17:32:01 1797 LMT | 1797 | 2 | 16 | 17 | 32 | 1
Tue Feb 16 17:32:01 1897 PST | 1897 | 2 | 16 | 17 | 32 | 1
Sun Feb 16 17:32:01 1997 PST | 1997 | 2 | 16 | 17 | 32 | 1
Sat Feb 16 17:32:01 2097 PST | 2097 | 2 | 16 | 17 | 32 | 1
@@ -943,12 +943,12 @@ SELECT d1 as timestamptz,
Fri Feb 14 17:32:01 1997 PST | 1 | 1000 | 1000000
Sat Feb 15 17:32:01 1997 PST | 1 | 1000 | 1000000
Sun Feb 16 17:32:01 1997 PST | 1 | 1000 | 1000000
- Tue Feb 16 17:32:01 0097 PST BC | 1 | 1000 | 1000000
- Sat Feb 16 17:32:01 0097 PST | 1 | 1000 | 1000000
- Thu Feb 16 17:32:01 0597 PST | 1 | 1000 | 1000000
- Tue Feb 16 17:32:01 1097 PST | 1 | 1000 | 1000000
- Sat Feb 16 17:32:01 1697 PST | 1 | 1000 | 1000000
- Thu Feb 16 17:32:01 1797 PST | 1 | 1000 | 1000000
+ Tue Feb 16 17:32:01 0097 LMT BC | 1 | 1000 | 1000000
+ Sat Feb 16 17:32:01 0097 LMT | 1 | 1000 | 1000000
+ Thu Feb 16 17:32:01 0597 LMT | 1 | 1000 | 1000000
+ Tue Feb 16 17:32:01 1097 LMT | 1 | 1000 | 1000000
+ Sat Feb 16 17:32:01 1697 LMT | 1 | 1000 | 1000000
+ Thu Feb 16 17:32:01 1797 LMT | 1 | 1000 | 1000000
Tue Feb 16 17:32:01 1897 PST | 1 | 1000 | 1000000
Sun Feb 16 17:32:01 1997 PST | 1 | 1000 | 1000000
Sat Feb 16 17:32:01 2097 PST | 1 | 1000 | 1000000
@@ -1018,12 +1018,12 @@ SELECT d1 as timestamptz,
Fri Feb 14 17:32:01 1997 PST | 1997 | 7 | 5 | 5 | 45
Sat Feb 15 17:32:01 1997 PST | 1997 | 7 | 6 | 6 | 46
Sun Feb 16 17:32:01 1997 PST | 1997 | 7 | 7 | 0 | 47
- Tue Feb 16 17:32:01 0097 PST BC | -97 | 7 | 2 | 2 | 47
- Sat Feb 16 17:32:01 0097 PST | 97 | 7 | 6 | 6 | 47
- Thu Feb 16 17:32:01 0597 PST | 597 | 7 | 4 | 4 | 47
- Tue Feb 16 17:32:01 1097 PST | 1097 | 7 | 2 | 2 | 47
- Sat Feb 16 17:32:01 1697 PST | 1697 | 7 | 6 | 6 | 47
- Thu Feb 16 17:32:01 1797 PST | 1797 | 7 | 4 | 4 | 47
+ Tue Feb 16 17:32:01 0097 LMT BC | -97 | 7 | 2 | 2 | 47
+ Sat Feb 16 17:32:01 0097 LMT | 97 | 7 | 6 | 6 | 47
+ Thu Feb 16 17:32:01 0597 LMT | 597 | 7 | 4 | 4 | 47
+ Tue Feb 16 17:32:01 1097 LMT | 1097 | 7 | 2 | 2 | 47
+ Sat Feb 16 17:32:01 1697 LMT | 1697 | 7 | 6 | 6 | 47
+ Thu Feb 16 17:32:01 1797 LMT | 1797 | 7 | 4 | 4 | 47
Tue Feb 16 17:32:01 1897 PST | 1897 | 7 | 2 | 2 | 47
Sun Feb 16 17:32:01 1997 PST | 1997 | 7 | 7 | 0 | 47
Sat Feb 16 17:32:01 2097 PST | 2097 | 7 | 6 | 6 | 47
@@ -1095,12 +1095,12 @@ SELECT d1 as timestamptz,
Fri Feb 14 17:32:01 1997 PST | 199 | 20 | 2 | 2450495 | 855970321
Sat Feb 15 17:32:01 1997 PST | 199 | 20 | 2 | 2450496 | 856056721
Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497 | 856143121
- Tue Feb 16 17:32:01 0097 PST BC | -10 | -1 | -1 | 1686043 | -65192682479
- Sat Feb 16 17:32:01 0097 PST | 9 | 1 | 1 | 1756537 | -59102000879
- Thu Feb 16 17:32:01 0597 PST | 59 | 6 | 1 | 1939158 | -43323546479
- Tue Feb 16 17:32:01 1097 PST | 109 | 11 | 2 | 2121779 | -27545092079
- Sat Feb 16 17:32:01 1697 PST | 169 | 17 | 2 | 2340925 | -8610877679
- Thu Feb 16 17:32:01 1797 PST | 179 | 18 | 2 | 2377449 | -5455204079
+ Tue Feb 16 17:32:01 0097 LMT BC | -10 | -1 | -1 | 1686043 | -65192682901
+ Sat Feb 16 17:32:01 0097 LMT | 9 | 1 | 1 | 1756537 | -59102001301
+ Thu Feb 16 17:32:01 0597 LMT | 59 | 6 | 1 | 1939158 | -43323546901
+ Tue Feb 16 17:32:01 1097 LMT | 109 | 11 | 2 | 2121779 | -27545092501
+ Sat Feb 16 17:32:01 1697 LMT | 169 | 17 | 2 | 2340925 | -8610878101
+ Thu Feb 16 17:32:01 1797 LMT | 179 | 18 | 2 | 2377449 | -5455204501
Tue Feb 16 17:32:01 1897 PST | 189 | 19 | 2 | 2413973 | -2299530479
Sun Feb 16 17:32:01 1997 PST | 199 | 20 | 2 | 2450497 | 856143121
Sat Feb 16 17:32:01 2097 PST | 209 | 21 | 3 | 2487022 | 4011903121
@@ -1170,12 +1170,12 @@ SELECT d1 as timestamptz,
Fri Feb 14 17:32:01 1997 PST | -28800 | -8 | 0
Sat Feb 15 17:32:01 1997 PST | -28800 | -8 | 0
Sun Feb 16 17:32:01 1997 PST | -28800 | -8 | 0
- Tue Feb 16 17:32:01 0097 PST BC | -28800 | -8 | 0
- Sat Feb 16 17:32:01 0097 PST | -28800 | -8 | 0
- Thu Feb 16 17:32:01 0597 PST | -28800 | -8 | 0
- Tue Feb 16 17:32:01 1097 PST | -28800 | -8 | 0
- Sat Feb 16 17:32:01 1697 PST | -28800 | -8 | 0
- Thu Feb 16 17:32:01 1797 PST | -28800 | -8 | 0
+ Tue Feb 16 17:32:01 0097 LMT BC | -28378 | -7 | -52
+ Sat Feb 16 17:32:01 0097 LMT | -28378 | -7 | -52
+ Thu Feb 16 17:32:01 0597 LMT | -28378 | -7 | -52
+ Tue Feb 16 17:32:01 1097 LMT | -28378 | -7 | -52
+ Sat Feb 16 17:32:01 1697 LMT | -28378 | -7 | -52
+ Thu Feb 16 17:32:01 1797 LMT | -28378 | -7 | -52
Tue Feb 16 17:32:01 1897 PST | -28800 | -8 | 0
Sun Feb 16 17:32:01 1997 PST | -28800 | -8 | 0
Sat Feb 16 17:32:01 2097 PST | -28800 | -8 | 0
@@ -1249,12 +1249,12 @@ SELECT d1 as "timestamp",
Fri Feb 14 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450495 | 855970321.000000
Sat Feb 15 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450496 | 856056721.000000
Sun Feb 16 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000
- Tue Feb 16 17:32:01 0097 PST BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192682479.000000
- Sat Feb 16 17:32:01 0097 PST | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102000879.000000
- Thu Feb 16 17:32:01 0597 PST | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323546479.000000
- Tue Feb 16 17:32:01 1097 PST | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545092079.000000
- Sat Feb 16 17:32:01 1697 PST | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610877679.000000
- Thu Feb 16 17:32:01 1797 PST | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455204079.000000
+ Tue Feb 16 17:32:01 0097 LMT BC | 1000000 | 1000.000 | 1.000000 | 1686043 | -65192682901.000000
+ Sat Feb 16 17:32:01 0097 LMT | 1000000 | 1000.000 | 1.000000 | 1756537 | -59102001301.000000
+ Thu Feb 16 17:32:01 0597 LMT | 1000000 | 1000.000 | 1.000000 | 1939158 | -43323546901.000000
+ Tue Feb 16 17:32:01 1097 LMT | 1000000 | 1000.000 | 1.000000 | 2121779 | -27545092501.000000
+ Sat Feb 16 17:32:01 1697 LMT | 1000000 | 1000.000 | 1.000000 | 2340925 | -8610878101.000000
+ Thu Feb 16 17:32:01 1797 LMT | 1000000 | 1000.000 | 1.000000 | 2377449 | -5455204501.000000
Tue Feb 16 17:32:01 1897 PST | 1000000 | 1000.000 | 1.000000 | 2413973 | -2299530479.000000
Sun Feb 16 17:32:01 1997 PST | 1000000 | 1000.000 | 1.000000 | 2450497 | 856143121.000000
Sat Feb 16 17:32:01 2097 PST | 1000000 | 1000.000 | 1.000000 | 2487022 | 4011903121.000000
@@ -2179,7 +2179,7 @@ INSERT INTO TIMESTAMPTZ_TST VALUES(4, '1000000312 23:58:48 IST');
SELECT * FROM TIMESTAMPTZ_TST ORDER BY a;
a | b
---+--------------------------------
- 1 | Wed Mar 12 13:58:48 1000 PST
+ 1 | Wed Mar 12 14:05:50 1000 LMT
2 | Sun Mar 12 14:58:48 10000 PDT
3 | Sun Mar 12 14:58:48 100000 PDT
3 | Sun Mar 12 14:58:48 10000 PDT
@@ -2266,7 +2266,7 @@ SELECT make_timestamptz(2014, 12, 10, 0, 0, 0, 'Europe/Prague') AT TIME ZONE 'UT
SELECT make_timestamptz(1846, 12, 10, 0, 0, 0, 'Asia/Manila') AT TIME ZONE 'UTC';
timezone
--------------------------
- Wed Dec 09 15:56:00 1846
+ Wed Dec 09 15:56:08 1846
(1 row)
SELECT make_timestamptz(1881, 12, 10, 0, 0, 0, 'Europe/Paris') AT TIME ZONE 'UTC';
diff --git a/src/test/singlenode_regress/expected/timetz.out b/src/test/singlenode_regress/expected/timetz.out
index f4960c0166d..8942a9b95b6 100644
--- a/src/test/singlenode_regress/expected/timetz.out
+++ b/src/test/singlenode_regress/expected/timetz.out
@@ -178,9 +178,9 @@ SELECT EXTRACT(HOUR FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-
(1 row)
SELECT EXTRACT(DAY FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); -- error
-ERROR: "time with time zone" units "day" not recognized
+ERROR: unit "day" not supported for type time with time zone
SELECT EXTRACT(FORTNIGHT FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04'); -- error
-ERROR: "time with time zone" units "fortnight" not recognized
+ERROR: unit "fortnight" not recognized for type time with time zone
SELECT EXTRACT(TIMEZONE FROM TIME WITH TIME ZONE '2020-05-26 13:30:25.575401-04:30');
extract
---------
diff --git a/src/test/singlenode_regress/expected/transactions.out b/src/test/singlenode_regress/expected/transactions.out
index 423152950e2..60ff28917e3 100644
--- a/src/test/singlenode_regress/expected/transactions.out
+++ b/src/test/singlenode_regress/expected/transactions.out
@@ -906,6 +906,16 @@ DROP TABLE abc;
create temp table i_table (f1 int);
-- psql will show only the last result in a multi-statement Query
SELECT 1\; SELECT 2\; SELECT 3;
+ ?column?
+----------
+ 1
+(1 row)
+
+ ?column?
+----------
+ 2
+(1 row)
+
?column?
----------
3
@@ -920,6 +930,12 @@ insert into i_table values(1)\; select * from i_table;
-- 1/0 error will cause rolling back the whole implicit transaction
insert into i_table values(2)\; select * from i_table\; select 1/0;
+ f1
+----
+ 1
+ 2
+(2 rows)
+
ERROR: division by zero
select * from i_table;
f1
@@ -939,8 +955,18 @@ WARNING: there is no transaction in progress
-- begin converts implicit transaction into a regular one that
-- can extend past the end of the Query
select 1\; begin\; insert into i_table values(5);
+ ?column?
+----------
+ 1
+(1 row)
+
commit;
select 1\; begin\; insert into i_table values(6);
+ ?column?
+----------
+ 1
+(1 row)
+
rollback;
-- commit in implicit-transaction state commits but issues a warning.
insert into i_table values(7)\; commit\; insert into i_table values(8)\; select 1/0;
@@ -967,22 +993,52 @@ rollback; -- we are not in a transaction at this point
WARNING: there is no transaction in progress
-- implicit transaction block is still a transaction block, for e.g. VACUUM
SELECT 1\; VACUUM;
+ ?column?
+----------
+ 1
+(1 row)
+
ERROR: VACUUM cannot run inside a transaction block
SELECT 1\; COMMIT\; VACUUM;
WARNING: there is no transaction in progress
+ ?column?
+----------
+ 1
+(1 row)
+
ERROR: VACUUM cannot run inside a transaction block
-- we disallow savepoint-related commands in implicit-transaction state
SELECT 1\; SAVEPOINT sp;
+ ?column?
+----------
+ 1
+(1 row)
+
ERROR: SAVEPOINT can only be used in transaction blocks
SELECT 1\; COMMIT\; SAVEPOINT sp;
WARNING: there is no transaction in progress
+ ?column?
+----------
+ 1
+(1 row)
+
ERROR: SAVEPOINT can only be used in transaction blocks
ROLLBACK TO SAVEPOINT sp\; SELECT 2;
ERROR: ROLLBACK TO SAVEPOINT can only be used in transaction blocks
SELECT 2\; RELEASE SAVEPOINT sp\; SELECT 3;
+ ?column?
+----------
+ 2
+(1 row)
+
ERROR: RELEASE SAVEPOINT can only be used in transaction blocks
-- but this is OK, because the BEGIN converts it to a regular xact
SELECT 1\; BEGIN\; SAVEPOINT sp\; ROLLBACK TO SAVEPOINT sp\; COMMIT;
+ ?column?
+----------
+ 1
+(1 row)
+
-- Tests for AND CHAIN in implicit transaction blocks
SET TRANSACTION READ ONLY\; COMMIT AND CHAIN; -- error
ERROR: COMMIT AND CHAIN can only be used in transaction blocks
diff --git a/src/test/singlenode_regress/expected/triggers.out b/src/test/singlenode_regress/expected/triggers.out
index 2c2cd5c351a..953d3955997 100644
--- a/src/test/singlenode_regress/expected/triggers.out
+++ b/src/test/singlenode_regress/expected/triggers.out
@@ -1187,8 +1187,8 @@ ERROR: trigger "instead_of_delete_trig" for table "main_view" does not exist
a | integer | | | | plain |
b | integer | | | | plain |
View definition:
- SELECT main_table.a,
- main_table.b
+ SELECT a,
+ b
FROM main_table;
DROP VIEW main_view;
@@ -1913,7 +1913,7 @@ create trigger failed after update on parted_trig
referencing old table as old_table
for each row execute procedure trigger_nothing();
ERROR: "parted_trig" is a partitioned table
-DETAIL: Triggers on partitioned tables cannot have transition tables.
+DETAIL: ROW triggers with transition tables are not supported on partitioned tables.
drop table parted_trig;
--
-- Verify trigger creation for partitioned tables, and drop behavior
@@ -1998,7 +1998,7 @@ select tgrelid::regclass::text, tgname, tgfoid::regproc, tgenabled, tgisinternal
tgrelid | tgname | tgfoid | tgenabled | tgisinternal
-----------+--------+-----------------+-----------+--------------
trigpart | trg1 | trigger_nothing | O | f
- trigpart1 | trg1 | trigger_nothing | O | t
+ trigpart1 | trg1 | trigger_nothing | O | f
(2 rows)
create table trigpart3 (like trigpart);
@@ -2798,7 +2798,7 @@ create trigger child_row_trig
-- but now we're not allowed to reattach it
alter table parent attach partition child for values in ('AAA');
ERROR: trigger "child_row_trig" prevents table "child" from becoming a partition
-DETAIL: ROW triggers with transition tables are not supported on partitions
+DETAIL: ROW triggers with transition tables are not supported on partitions.
-- drop the trigger, and now we're allowed to attach it again
drop trigger child_row_trig on child;
alter table parent attach partition child for values in ('AAA');
diff --git a/src/test/singlenode_regress/expected/tsearch.out b/src/test/singlenode_regress/expected/tsearch.out
index 4f8f22d9eca..1e17833c393 100644
--- a/src/test/singlenode_regress/expected/tsearch.out
+++ b/src/test/singlenode_regress/expected/tsearch.out
@@ -1813,12 +1813,12 @@ Water, water, every where,
Nor any drop to drink.
S. T. Coleridge (1772-1834)
', phraseto_tsquery('english', 'painted Ocean'));
- ts_headline
----------------------------------------
- <b>painted</b> Ship +
- Upon a <b>painted</b> <b>Ocean</b>.+
- Water, water, every where +
- And all the boards did shrink
+ ts_headline
+----------------------------------
+ <b>painted</b> <b>Ocean</b>. +
+ Water, water, every where +
+ And all the boards did shrink;+
+ Water, water, every
(1 row)
SELECT ts_headline('english', '
@@ -1891,9 +1891,9 @@ SELECT ts_headline('simple', '1 2 3 1 3'::text, '1 & 3', 'MaxWords=4, MinWords=1
(1 row)
SELECT ts_headline('simple', '1 2 3 1 3'::text, '1 <-> 3', 'MaxWords=4, MinWords=1');
- ts_headline
-----------------------------
- <b>3</b> <b>1</b> <b>3</b>
+ ts_headline
+-------------------
+ <b>1</b> <b>3</b>
(1 row)
--Check if headline fragments work
diff --git a/src/test/singlenode_regress/expected/tstypes.out b/src/test/singlenode_regress/expected/tstypes.out
index 2601e312df4..5c6ab35b493 100644
--- a/src/test/singlenode_regress/expected/tstypes.out
+++ b/src/test/singlenode_regress/expected/tstypes.out
@@ -1259,7 +1259,11 @@ SELECT ts_delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceshi
(1 row)
SELECT ts_delete('base hidden rebel spaceship strike'::tsvector, ARRAY['spaceship','leya','rebel', NULL]);
-ERROR: lexeme array may not contain nulls
+ ts_delete
+--------------------------
+ 'base' 'hidden' 'strike'
+(1 row)
+
SELECT unnest('base:7 hidden:6 rebel:1 spaceship:2,33A,34B,35C,36D strike:3'::tsvector);
unnest
---------------------------------------------
@@ -1374,7 +1378,11 @@ SELECT setweight('a asd w:5,6,12B,13A zxc'::tsvector, 'c', '{a,zxc}');
(1 row)
SELECT setweight('a asd w:5,6,12B,13A zxc'::tsvector, 'c', ARRAY['a', 'zxc', NULL]);
-ERROR: lexeme array may not contain nulls
+ setweight
+---------------------------------
+ 'a' 'asd' 'w':5,6,12B,13A 'zxc'
+(1 row)
+
SELECT ts_filter('base:7A empir:17 evil:15 first:11 galact:16 hidden:6A rebel:1A spaceship:2A strike:3A victori:12 won:9'::tsvector, '{a}');
ts_filter
-------------------------------------------------------------
diff --git a/src/test/singlenode_regress/expected/union.out b/src/test/singlenode_regress/expected/union.out
index 73158320abd..3aa53c72846 100644
--- a/src/test/singlenode_regress/expected/union.out
+++ b/src/test/singlenode_regress/expected/union.out
@@ -942,7 +942,7 @@ 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...
^
-HINT: There is a column named "q2" in table "*SELECT* 2", but it cannot be referenced from this part of the query.
+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;
q1
diff --git a/src/test/singlenode_regress/expected/vacuum.out b/src/test/singlenode_regress/expected/vacuum.out
index f93b74e4c3c..43882e1f472 100644
--- a/src/test/singlenode_regress/expected/vacuum.out
+++ b/src/test/singlenode_regress/expected/vacuum.out
@@ -297,95 +297,95 @@ CREATE ROLE regress_vacuum;
SET ROLE regress_vacuum;
-- Simple table
VACUUM vacowned;
-WARNING: skipping "vacowned" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned", skipping it
ANALYZE vacowned;
-WARNING: skipping "vacowned" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned", skipping it
VACUUM (ANALYZE) vacowned;
-WARNING: skipping "vacowned" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned", skipping it
-- Catalog
VACUUM pg_catalog.pg_class;
-WARNING: skipping "pg_class" --- only superuser or database owner can vacuum it
+WARNING: permission denied to vacuum "pg_class", skipping it
ANALYZE pg_catalog.pg_class;
-WARNING: skipping "pg_class" --- only superuser or database owner can analyze it
+WARNING: permission denied to analyze "pg_class", skipping it
VACUUM (ANALYZE) pg_catalog.pg_class;
-WARNING: skipping "pg_class" --- only superuser or database owner can vacuum it
+WARNING: permission denied to vacuum "pg_class", skipping it
-- Shared catalog
VACUUM pg_catalog.pg_authid;
-WARNING: skipping "pg_authid" --- only superuser can vacuum it
+WARNING: permission denied to vacuum "pg_authid", skipping it
ANALYZE pg_catalog.pg_authid;
-WARNING: skipping "pg_authid" --- only superuser can analyze it
+WARNING: permission denied to analyze "pg_authid", skipping it
VACUUM (ANALYZE) pg_catalog.pg_authid;
-WARNING: skipping "pg_authid" --- only superuser can vacuum it
+WARNING: permission denied to vacuum "pg_authid", skipping it
-- Partitioned table and its partitions, nothing owned by other user.
-- Relations are not listed in a single command to test ownership
-- independently.
VACUUM vacowned_parted;
-WARNING: skipping "vacowned_parted" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_parted", skipping it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM vacowned_part1;
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
ANALYZE vacowned_parted;
-WARNING: skipping "vacowned_parted" --- only table or database owner can analyze it
-WARNING: skipping "vacowned_part1" --- only table or database owner can analyze it
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_parted", skipping it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
+WARNING: permission denied to analyze "vacowned_part1", skipping it
ANALYZE vacowned_part1;
-WARNING: skipping "vacowned_part1" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part1", skipping it
ANALYZE vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
VACUUM (ANALYZE) vacowned_parted;
-WARNING: skipping "vacowned_parted" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_parted", skipping it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM (ANALYZE) vacowned_part1;
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM (ANALYZE) vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
RESET ROLE;
-- Partitioned table and one partition owned by other user.
ALTER TABLE vacowned_parted OWNER TO regress_vacuum;
ALTER TABLE vacowned_part2 OWNER TO CURRENT_USER;
SET ROLE regress_vacuum;
VACUUM vacowned_parted;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
VACUUM vacowned_part1;
VACUUM vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
ANALYZE vacowned_parted;
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
ANALYZE vacowned_part1;
ANALYZE vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
VACUUM (ANALYZE) vacowned_parted;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
VACUUM (ANALYZE) vacowned_part1;
VACUUM (ANALYZE) vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
RESET ROLE;
-- Only one partition owned by other user.
ALTER TABLE vacowned_parted OWNER TO CURRENT_USER;
ALTER TABLE vacowned_part1 OWNER TO regress_vacuum;
SET ROLE regress_vacuum;
VACUUM vacowned_parted;
-WARNING: skipping "vacowned_parted" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_parted", skipping it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
VACUUM vacowned_part1;
VACUUM vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
ANALYZE vacowned_parted;
-WARNING: skipping "vacowned_parted" --- only table or database owner can analyze it
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_parted", skipping it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
ANALYZE vacowned_part1;
ANALYZE vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
VACUUM (ANALYZE) vacowned_parted;
-WARNING: skipping "vacowned_parted" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_parted", skipping it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
VACUUM (ANALYZE) vacowned_part1;
VACUUM (ANALYZE) vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
RESET ROLE;
-- Only partitioned table owned by other user.
ALTER TABLE vacowned_parted OWNER TO regress_vacuum;
@@ -393,26 +393,26 @@ ALTER TABLE vacowned_part1 OWNER TO CURRENT_USER;
ALTER TABLE vacowned_part2 OWNER TO CURRENT_USER;
SET ROLE regress_vacuum;
VACUUM vacowned_parted;
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM vacowned_part1;
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
ANALYZE vacowned_parted;
-WARNING: skipping "vacowned_part1" --- only table or database owner can analyze it
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
+WARNING: permission denied to analyze "vacowned_part1", skipping it
ANALYZE vacowned_part1;
-WARNING: skipping "vacowned_part1" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part1", skipping it
ANALYZE vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can analyze it
+WARNING: permission denied to analyze "vacowned_part2", skipping it
VACUUM (ANALYZE) vacowned_parted;
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM (ANALYZE) vacowned_part1;
-WARNING: skipping "vacowned_part1" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part1", skipping it
VACUUM (ANALYZE) vacowned_part2;
-WARNING: skipping "vacowned_part2" --- only table or database owner can vacuum it
+WARNING: permission denied to vacuum "vacowned_part2", skipping it
RESET ROLE;
DROP TABLE vacowned;
DROP TABLE vacowned_parted;
diff --git a/src/test/singlenode_regress/expected/vacuum_stats.out b/src/test/singlenode_regress/expected/vacuum_stats.out
index 685b9866636..573f7527fde 100644
--- a/src/test/singlenode_regress/expected/vacuum_stats.out
+++ b/src/test/singlenode_regress/expected/vacuum_stats.out
@@ -8,8 +8,8 @@ SELECT true FROM pg_class WHERE oid='vacstat_test'::regclass
AND relpages > 0
AND reltuples > 0
AND relallvisible > 0;
- bool
-------
+ ?column?
+----------
t
(1 row)
@@ -23,8 +23,8 @@ AND reltuples =
AND relallvisible =
(SELECT SUM(relallvisible) FROM gp_dist_random('pg_class')
WHERE oid='vacstat_test'::regclass);
- bool
-------
+ ?column?
+----------
t
(1 row)
diff --git a/src/test/singlenode_regress/expected/window.out b/src/test/singlenode_regress/expected/window.out
index 6d6ab6725da..b8b5ae314a5 100644
--- a/src/test/singlenode_regress/expected/window.out
+++ b/src/test/singlenode_regress/expected/window.out
@@ -1200,10 +1200,10 @@ SELECT * FROM v_window;
(10 rows)
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
----------------------------------------------------------------------------------------
- SELECT i.i, +
- sum(i.i) OVER (ORDER BY i.i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sum_rows+
+ pg_get_viewdef
+-----------------------------------------------------------------------------------
+ SELECT i, +
+ sum(i) OVER (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sum_rows+
FROM generate_series(1, 10) i(i);
(1 row)
@@ -1226,10 +1226,10 @@ SELECT * FROM v_window;
(10 rows)
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
------------------------------------------------------------------------------------------------------------
- SELECT i.i, +
- sum(i.i) OVER (ORDER BY i.i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW) AS sum_rows+
+ pg_get_viewdef
+-------------------------------------------------------------------------------------------------------
+ SELECT i, +
+ sum(i) OVER (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE CURRENT ROW) AS sum_rows+
FROM generate_series(1, 10) i(i);
(1 row)
@@ -1252,10 +1252,10 @@ SELECT * FROM v_window;
(10 rows)
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
------------------------------------------------------------------------------------------------------
- SELECT i.i, +
- sum(i.i) OVER (ORDER BY i.i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE GROUP) AS sum_rows+
+ pg_get_viewdef
+-------------------------------------------------------------------------------------------------
+ SELECT i, +
+ sum(i) OVER (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE GROUP) AS sum_rows+
FROM generate_series(1, 10) i(i);
(1 row)
@@ -1278,10 +1278,10 @@ SELECT * FROM v_window;
(10 rows)
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
-----------------------------------------------------------------------------------------------------
- SELECT i.i, +
- sum(i.i) OVER (ORDER BY i.i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE TIES) AS sum_rows+
+ pg_get_viewdef
+------------------------------------------------------------------------------------------------
+ SELECT i, +
+ sum(i) OVER (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING EXCLUDE TIES) AS sum_rows+
FROM generate_series(1, 10) i(i);
(1 row)
@@ -1304,10 +1304,10 @@ SELECT * FROM v_window;
(10 rows)
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
----------------------------------------------------------------------------------------
- SELECT i.i, +
- sum(i.i) OVER (ORDER BY i.i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sum_rows+
+ pg_get_viewdef
+-----------------------------------------------------------------------------------
+ SELECT i, +
+ sum(i) OVER (ORDER BY i ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sum_rows+
FROM generate_series(1, 10) i(i);
(1 row)
@@ -1329,10 +1329,10 @@ SELECT * FROM v_window;
(10 rows)
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
------------------------------------------------------------------------------------------
- SELECT i.i, +
- sum(i.i) OVER (ORDER BY i.i GROUPS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sum_rows+
+ pg_get_viewdef
+-------------------------------------------------------------------------------------
+ SELECT i, +
+ sum(i) OVER (ORDER BY i GROUPS BETWEEN 1 PRECEDING AND 1 FOLLOWING) AS sum_rows+
FROM generate_series(1, 10) i(i);
(1 row)
@@ -1341,10 +1341,10 @@ CREATE TEMP VIEW v_window AS
SELECT i, min(i) over (order by i range between '1 day' preceding and '10 days' following) as min_i
FROM generate_series(now(), now()+'100 days'::interval, '1 hour') i;
SELECT pg_get_viewdef('v_window');
- pg_get_viewdef
----------------------------------------------------------------------------------------------------------------------------
- SELECT i.i, +
- min(i.i) OVER (ORDER BY i.i RANGE BETWEEN '@ 1 day'::interval PRECEDING AND '@ 10 days'::interval FOLLOWING) AS min_i+
+ pg_get_viewdef
+-----------------------------------------------------------------------------------------------------------------------
+ SELECT i, +
+ min(i) OVER (ORDER BY i RANGE BETWEEN '@ 1 day'::interval PRECEDING AND '@ 10 days'::interval FOLLOWING) AS min_i+
FROM generate_series(now(), (now() + '@ 100 days'::interval), '@ 1 hour'::interval) i(i);
(1 row)
diff --git a/src/test/singlenode_regress/expected/xid.out b/src/test/singlenode_regress/expected/xid.out
index b7a1ed0f9ee..7c1ed723100 100644
--- a/src/test/singlenode_regress/expected/xid.out
+++ b/src/test/singlenode_regress/expected/xid.out
@@ -15,29 +15,21 @@ select '010'::xid,
-- garbage values are not yet rejected (perhaps they should be)
select ''::xid;
- xid
------
- 0
-(1 row)
-
+ERROR: invalid input syntax for type xid: ""
+LINE 1: select ''::xid;
+ ^
select 'asdf'::xid;
- xid
------
- 0
-(1 row)
-
+ERROR: invalid input syntax for type xid: "asdf"
+LINE 1: select 'asdf'::xid;
+ ^
select ''::xid8;
- xid8
-------
- 0
-(1 row)
-
+ERROR: invalid input syntax for type xid8: ""
+LINE 1: select ''::xid8;
+ ^
select 'asdf'::xid8;
- xid8
-------
- 0
-(1 row)
-
+ERROR: invalid input syntax for type xid8: "asdf"
+LINE 1: select 'asdf'::xid8;
+ ^
-- equality
select '1'::xid = '1'::xid;
?column?
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cloudberry.apache.org
For additional commands, e-mail: commits-help@cloudberry.apache.org