Skip to content

Commit

Permalink
whitespace
Browse files Browse the repository at this point in the history
  • Loading branch information
m3hm3t committed Feb 12, 2025
1 parent 50d8148 commit ee6a9c8
Showing 1 changed file with 72 additions and 72 deletions.
144 changes: 72 additions & 72 deletions src/test/regress/sql/issue_7891.sql
Original file line number Diff line number Diff line change
@@ -1,72 +1,72 @@
-- This construct has been used as a regression test to ensure that the planner
-- correctly distinguishes between "local" and "reference" tables, avoiding an erroneous 0-task plan.
-- https://github.com/citusdata/citus/issues/7891
CREATE SCHEMA issue_7891;
SET search_path TO issue_7891;

-- Create tables
CREATE TABLE t2_ref (
vkey INT,
pkey INT,
c15 TIMESTAMP
);

CREATE TABLE t4_pg (
vkey INT,
pkey INT,
c22 NUMERIC,
c23 TEXT,
c24 TIMESTAMP
);

CREATE TABLE t6_pg (
vkey INT,
pkey INT,
c26 TEXT
);

-- Mark t2_ref as a reference table
SELECT create_reference_table('t2_ref');

-- Insert sample data
INSERT INTO t6_pg (vkey, pkey, c26) VALUES (2, 12000, '');
INSERT INTO t4_pg (vkey, pkey, c22, c23, c24)
VALUES (5, 15000, 0.0, ']]?', MAKE_TIMESTAMP(2071, 10, 26, 16, 20, 5));
INSERT INTO t2_ref (vkey, pkey, c15)
VALUES (14, 24000, NULL::timestamp);

-- Show initial data
SELECT 't6_pg before' AS label, * FROM t6_pg;
SELECT 't4_pg data' AS label, * FROM t4_pg;
SELECT 't2_ref data' AS label, * FROM t2_ref;

--
-- The problematic query: update t6_pg referencing t4_pg and sub-subquery on t2_ref.
-- Historically might produce a 0-task plan if the planner incorrectly fails to
-- treat t4_pg/t2_ref as local/reference.
--

-- The outer subquery iterates over every row in table t4_pg.
UPDATE t6_pg
SET vkey = 43
WHERE EXISTS (
SELECT (SELECT c15 FROM t2_ref)
FROM t4_pg
);

-- Show final data
SELECT 't6_pg after' AS label, * FROM t6_pg;

-- The outer subquery iterates over rows from the reference table t2_ref
UPDATE t6_pg
SET vkey = 43
WHERE EXISTS (
SELECT (SELECT c22 FROM t4_pg)
FROM t2_ref
);

-- Show final data
SELECT 't6_pg after' AS label, * FROM t6_pg;

SET client_min_messages TO WARNING;
DROP SCHEMA issue_7891 CASCADE;
-- This construct has been used as a regression test to ensure that the planner
-- correctly distinguishes between "local" and "reference" tables, avoiding an erroneous 0-task plan.
-- https://github.com/citusdata/citus/issues/7891
CREATE SCHEMA issue_7891;
SET search_path TO issue_7891;

-- Create tables
CREATE TABLE t2_ref (
vkey INT,
pkey INT,
c15 TIMESTAMP
);

CREATE TABLE t4_pg (
vkey INT,
pkey INT,
c22 NUMERIC,
c23 TEXT,
c24 TIMESTAMP
);

CREATE TABLE t6_pg (
vkey INT,
pkey INT,
c26 TEXT
);

-- Mark t2_ref as a reference table
SELECT create_reference_table('t2_ref');

-- Insert sample data
INSERT INTO t6_pg (vkey, pkey, c26) VALUES (2, 12000, '');
INSERT INTO t4_pg (vkey, pkey, c22, c23, c24)
VALUES (5, 15000, 0.0, ']]?', MAKE_TIMESTAMP(2071, 10, 26, 16, 20, 5));
INSERT INTO t2_ref (vkey, pkey, c15)
VALUES (14, 24000, NULL::timestamp);

-- Show initial data
SELECT 't6_pg before' AS label, * FROM t6_pg;
SELECT 't4_pg data' AS label, * FROM t4_pg;
SELECT 't2_ref data' AS label, * FROM t2_ref;

--
-- The problematic query: update t6_pg referencing t4_pg and sub-subquery on t2_ref.
-- Historically might produce a 0-task plan if the planner incorrectly fails to
-- treat t4_pg/t2_ref as local/reference.
--

-- The outer subquery iterates over every row in table t4_pg.
UPDATE t6_pg
SET vkey = 43
WHERE EXISTS (
SELECT (SELECT c15 FROM t2_ref)
FROM t4_pg
);

-- Show final data
SELECT 't6_pg after' AS label, * FROM t6_pg;

-- The outer subquery iterates over rows from the reference table t2_ref
UPDATE t6_pg
SET vkey = 43
WHERE EXISTS (
SELECT (SELECT c22 FROM t4_pg)
FROM t2_ref
);

-- Show final data
SELECT 't6_pg after' AS label, * FROM t6_pg;

SET client_min_messages TO WARNING;
DROP SCHEMA issue_7891 CASCADE;

0 comments on commit ee6a9c8

Please sign in to comment.