mirror of https://github.com/citusdata/citus.git
74 lines
2.4 KiB
Plaintext
74 lines
2.4 KiB
Plaintext
CREATE SCHEMA cte_prepared_modify;
|
|
SET search_path TO cte_prepared_modify, public;
|
|
CREATE TABLE tt1(id int, value_1 int);
|
|
INSERT INTO tt1 VALUES(1,2),(2,3),(3,4);
|
|
SELECT create_distributed_table('tt1','id');
|
|
NOTICE: Copying data from local table...
|
|
NOTICE: copying the data has completed
|
|
DETAIL: The local data in the table is no longer visible, but is still on disk.
|
|
HINT: To remove the local data, run: SELECT truncate_local_data_after_distributing_table($$cte_prepared_modify.tt1$$)
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
CREATE TABLE tt2(id int, value_1 int);
|
|
INSERT INTO tt2 VALUES(3,3),(4,4),(5,5);
|
|
SELECT create_distributed_table('tt2','id');
|
|
NOTICE: Copying data from local table...
|
|
NOTICE: copying the data has completed
|
|
DETAIL: The local data in the table is no longer visible, but is still on disk.
|
|
HINT: To remove the local data, run: SELECT truncate_local_data_after_distributing_table($$cte_prepared_modify.tt2$$)
|
|
create_distributed_table
|
|
---------------------------------------------------------------------
|
|
|
|
(1 row)
|
|
|
|
-- Test with prepared statements (parameter used by SET)
|
|
PREPARE prepared_test(integer) AS
|
|
WITH cte_1 AS(
|
|
SELECT * FROM tt1 WHERE id >= 2
|
|
)
|
|
UPDATE tt2
|
|
SET value_1 = $1
|
|
FROM cte_1
|
|
WHERE tt2.id = cte_1.id;
|
|
-- Test with prepared statements (parameter used by WHERE on partition column)
|
|
PREPARE prepared_test_2(integer) AS
|
|
WITH cte_1 AS(
|
|
SELECT * FROM tt1 WHERE id >= 2
|
|
)
|
|
UPDATE tt2
|
|
SET value_1 = (SELECT max(id) FROM cte_1)
|
|
WHERE tt2.id = $1;
|
|
-- Test with prepared statements (parameter used by WHERE on non-partition column)
|
|
PREPARE prepared_test_3(integer) AS
|
|
WITH cte_1 AS(
|
|
SELECT * FROM tt1 WHERE id >= 2
|
|
)
|
|
UPDATE tt2
|
|
SET value_1 = (SELECT max(id) FROM cte_1)
|
|
WHERE tt2.value_1 = $1;
|
|
EXECUTE prepared_test(1);
|
|
EXECUTE prepared_test(2);
|
|
EXECUTE prepared_test(3);
|
|
EXECUTE prepared_test(4);
|
|
EXECUTE prepared_test(5);
|
|
EXECUTE prepared_test(6);
|
|
EXECUTE prepared_test(1);
|
|
EXECUTE prepared_test(2);
|
|
EXECUTE prepared_test(3);
|
|
EXECUTE prepared_test(4);
|
|
EXECUTE prepared_test(5);
|
|
EXECUTE prepared_test(6);
|
|
EXECUTE prepared_test_3(1);
|
|
EXECUTE prepared_test_3(2);
|
|
EXECUTE prepared_test_3(3);
|
|
EXECUTE prepared_test_3(4);
|
|
EXECUTE prepared_test_3(5);
|
|
EXECUTE prepared_test_3(6);
|
|
DROP SCHEMA cte_prepared_modify CASCADE;
|
|
NOTICE: drop cascades to 2 other objects
|
|
DETAIL: drop cascades to table tt1
|
|
drop cascades to table tt2
|