mirror of https://github.com/citusdata/citus.git
PG17 regress sanity: fix diffs in multi_router_planner,
multi_router_planner_fast_path and query_single_shard_table Restore the expected DEBUG error messages from the router planner. In the case of query_single_shard_table the diffs are because of PG17's ability to pull up correlated ANY subqueries (*). The fix is to inhibit pull up with a volatile function. In the case of multi_router_planner and multi_router_planner_fast_path the diffs are because of PG17's ability to remove redundant IS (NOT) NULL expressions (**). The fix is to adjust the table definition so the column used for distribution is not marked NOT NULL. Finally, add a rule to normalize.sed to ignore additional DEBUG logging by CREATE MATERIALIZED VIEW (postgres commit b4da732fd64). This was also impacting regress test multi_mx_router_planner. (*) https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=9f1337639 (**) https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=b262ad440pull/7769/head
parent
90d76e8097
commit
007dab8fba
|
@ -324,3 +324,10 @@ s/COPY delimiter must not appear in the DEFAULT specification/COPY delimiter cha
|
||||||
# we add them back for pg15,pg16 compatibility
|
# we add them back for pg15,pg16 compatibility
|
||||||
# e.g. change CHECK other_col >= 100 to CHECK (other_col >= 100)
|
# e.g. change CHECK other_col >= 100 to CHECK (other_col >= 100)
|
||||||
s/\| CHECK ([a-zA-Z])(.*)/| CHECK \(\1\2\)/g
|
s/\| CHECK ([a-zA-Z])(.*)/| CHECK \(\1\2\)/g
|
||||||
|
|
||||||
|
# pg17 change: this is a rule that ignores additional DEBUG logging
|
||||||
|
# for CREATE MATERIALIZED VIEW (commit b4da732fd64). This could be
|
||||||
|
# changed to a normalization rule when 17 becomes the minimum
|
||||||
|
# supported Postgres version.
|
||||||
|
|
||||||
|
/DEBUG: drop auto-cascades to type [a-zA-Z_]*.pg_temp_[0-9]*/d
|
||||||
|
|
|
@ -10,7 +10,7 @@ CREATE SCHEMA multi_router_planner;
|
||||||
SET search_path TO multi_router_planner;
|
SET search_path TO multi_router_planner;
|
||||||
CREATE TABLE articles_hash (
|
CREATE TABLE articles_hash (
|
||||||
id bigint NOT NULL,
|
id bigint NOT NULL,
|
||||||
author_id bigint NOT NULL,
|
author_id bigint,
|
||||||
title varchar(20) NOT NULL,
|
title varchar(20) NOT NULL,
|
||||||
word_count integer
|
word_count integer
|
||||||
);
|
);
|
||||||
|
|
|
@ -12,7 +12,7 @@ SET citus.enable_fast_path_router_planner TO true;
|
||||||
-- ===================================================================
|
-- ===================================================================
|
||||||
CREATE TABLE articles_hash (
|
CREATE TABLE articles_hash (
|
||||||
id bigint NOT NULL,
|
id bigint NOT NULL,
|
||||||
author_id bigint NOT NULL,
|
author_id bigint,
|
||||||
title varchar(20) NOT NULL,
|
title varchar(20) NOT NULL,
|
||||||
word_count integer
|
word_count integer
|
||||||
);
|
);
|
||||||
|
|
|
@ -1183,7 +1183,7 @@ DEBUG: Local tables cannot be used in distributed queries.
|
||||||
DEBUG: skipping recursive planning for the subquery since it contains references to outer queries
|
DEBUG: skipping recursive planning for the subquery since it contains references to outer queries
|
||||||
ERROR: direct joins between distributed and local tables are not supported
|
ERROR: direct joins between distributed and local tables are not supported
|
||||||
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM citus_local_table t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM citus_local_table t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
DEBUG: router planner does not support queries that reference non-colocated distributed tables
|
DEBUG: router planner does not support queries that reference non-colocated distributed tables
|
||||||
|
@ -1258,7 +1258,7 @@ DEBUG: Local tables cannot be used in distributed queries.
|
||||||
DEBUG: skipping recursive planning for the subquery since it contains references to outer queries
|
DEBUG: skipping recursive planning for the subquery since it contains references to outer queries
|
||||||
ERROR: direct joins between distributed and local tables are not supported
|
ERROR: direct joins between distributed and local tables are not supported
|
||||||
SELECT COUNT(*) FROM citus_local_table t1
|
SELECT COUNT(*) FROM citus_local_table t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
DEBUG: router planner does not support queries that reference non-colocated distributed tables
|
DEBUG: router planner does not support queries that reference non-colocated distributed tables
|
||||||
|
@ -1312,7 +1312,7 @@ DEBUG: skipping recursive planning for the subquery since it contains reference
|
||||||
ERROR: direct joins between distributed and local tables are not supported
|
ERROR: direct joins between distributed and local tables are not supported
|
||||||
HINT: Use CTE's or subqueries to select from local tables and use them in joins
|
HINT: Use CTE's or subqueries to select from local tables and use them in joins
|
||||||
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM postgres_local_table t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM postgres_local_table t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
DEBUG: found no worker with all shard placements
|
DEBUG: found no worker with all shard placements
|
||||||
|
@ -1344,7 +1344,7 @@ DEBUG: skipping recursive planning for the subquery since it contains reference
|
||||||
ERROR: direct joins between distributed and local tables are not supported
|
ERROR: direct joins between distributed and local tables are not supported
|
||||||
HINT: Use CTE's or subqueries to select from local tables and use them in joins
|
HINT: Use CTE's or subqueries to select from local tables and use them in joins
|
||||||
SELECT COUNT(*) FROM postgres_local_table t1
|
SELECT COUNT(*) FROM postgres_local_table t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
DEBUG: found no worker with all shard placements
|
DEBUG: found no worker with all shard placements
|
||||||
|
|
|
@ -15,7 +15,7 @@ SET search_path TO multi_router_planner;
|
||||||
|
|
||||||
CREATE TABLE articles_hash (
|
CREATE TABLE articles_hash (
|
||||||
id bigint NOT NULL,
|
id bigint NOT NULL,
|
||||||
author_id bigint NOT NULL,
|
author_id bigint,
|
||||||
title varchar(20) NOT NULL,
|
title varchar(20) NOT NULL,
|
||||||
word_count integer
|
word_count integer
|
||||||
);
|
);
|
||||||
|
|
|
@ -18,7 +18,7 @@ SET citus.enable_fast_path_router_planner TO true;
|
||||||
|
|
||||||
CREATE TABLE articles_hash (
|
CREATE TABLE articles_hash (
|
||||||
id bigint NOT NULL,
|
id bigint NOT NULL,
|
||||||
author_id bigint NOT NULL,
|
author_id bigint,
|
||||||
title varchar(20) NOT NULL,
|
title varchar(20) NOT NULL,
|
||||||
word_count integer
|
word_count integer
|
||||||
);
|
);
|
||||||
|
@ -803,7 +803,6 @@ CREATE MATERIALIZED VIEW mv_articles_hash_empty AS
|
||||||
SELECT * FROM articles_hash WHERE author_id = 1;
|
SELECT * FROM articles_hash WHERE author_id = 1;
|
||||||
SELECT * FROM mv_articles_hash_empty;
|
SELECT * FROM mv_articles_hash_empty;
|
||||||
|
|
||||||
|
|
||||||
SELECT id
|
SELECT id
|
||||||
FROM articles_hash
|
FROM articles_hash
|
||||||
WHERE author_id = 1;
|
WHERE author_id = 1;
|
||||||
|
|
|
@ -502,7 +502,7 @@ WHERE NOT EXISTS (
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM citus_local_table t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM citus_local_table t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -543,7 +543,7 @@ WHERE EXISTS (
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT COUNT(*) FROM citus_local_table t1
|
SELECT COUNT(*) FROM citus_local_table t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -573,7 +573,7 @@ WHERE NOT EXISTS (
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
SELECT COUNT(*) FROM nullkey_c1_t1 t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM postgres_local_table t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM postgres_local_table t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -593,7 +593,7 @@ WHERE EXISTS (
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT COUNT(*) FROM postgres_local_table t1
|
SELECT COUNT(*) FROM postgres_local_table t1
|
||||||
WHERE t1.b IN (
|
WHERE t1.b + random() IN (
|
||||||
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
SELECT b+1 FROM nullkey_c1_t1 t2 WHERE t2.b = t1.a
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue