mirror of https://github.com/citusdata/citus.git
Tests for DML followed by insert/select repartition
parent
44a2aede16
commit
4b14347fc3
|
@ -305,7 +305,7 @@ SELECT * FROM target_table ORDER BY a;
|
|||
(4 rows)
|
||||
|
||||
--
|
||||
-- repartitioned INSERT/SELECT followed by other DML in stame transaction
|
||||
-- repartitioned INSERT/SELECT followed/preceded by other DML in same transaction
|
||||
--
|
||||
-- case 1. followed by DELETE
|
||||
TRUNCATE target_table;
|
||||
|
@ -406,5 +406,77 @@ SELECT * FROM target_table ORDER BY a;
|
|||
-1 | {1,2,3}
|
||||
(8 rows)
|
||||
|
||||
-- case 5. preceded by DELETE
|
||||
TRUNCATE target_table;
|
||||
BEGIN;
|
||||
DELETE FROM target_table;
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
a | b
|
||||
---------------------------------------------------------------------
|
||||
-4 | {3}
|
||||
-3 | {}
|
||||
-2 | {4,6}
|
||||
-1 | {1,2,3}
|
||||
(4 rows)
|
||||
|
||||
-- case 6. preceded by UPDATE
|
||||
TRUNCATE target_table;
|
||||
BEGIN;
|
||||
UPDATE target_table SET b=array_append(b, a);
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
a | b
|
||||
---------------------------------------------------------------------
|
||||
-4 | {3}
|
||||
-3 | {}
|
||||
-2 | {4,6}
|
||||
-1 | {1,2,3}
|
||||
(4 rows)
|
||||
|
||||
-- case 7. preceded by multi-row INSERT
|
||||
TRUNCATE target_table;
|
||||
BEGIN;
|
||||
INSERT INTO target_table VALUES (-5, ARRAY[10,11]), (-6, ARRAY[11,12]), (-7, ARRAY[999]);
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
a | b
|
||||
---------------------------------------------------------------------
|
||||
-7 | {999}
|
||||
-6 | {11,12}
|
||||
-5 | {10,11}
|
||||
-4 | {3}
|
||||
-3 | {}
|
||||
-2 | {4,6}
|
||||
-1 | {1,2,3}
|
||||
(7 rows)
|
||||
|
||||
-- case 8. preceded by distributed INSERT/SELECT
|
||||
TRUNCATE target_table;
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
BEGIN;
|
||||
INSERT INTO target_table SELECT * FROM target_table;
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
a | b
|
||||
---------------------------------------------------------------------
|
||||
-4 | {3}
|
||||
-4 | {3}
|
||||
-4 | {3}
|
||||
-3 | {}
|
||||
-3 | {}
|
||||
-3 | {}
|
||||
-2 | {4,6}
|
||||
-2 | {4,6}
|
||||
-2 | {4,6}
|
||||
-1 | {1,2,3}
|
||||
-1 | {1,2,3}
|
||||
-1 | {1,2,3}
|
||||
(12 rows)
|
||||
|
||||
SET client_min_messages TO WARNING;
|
||||
DROP SCHEMA insert_select_repartition CASCADE;
|
||||
|
|
|
@ -145,7 +145,7 @@ RESET client_min_messages;
|
|||
SELECT * FROM target_table ORDER BY a;
|
||||
|
||||
--
|
||||
-- repartitioned INSERT/SELECT followed by other DML in stame transaction
|
||||
-- repartitioned INSERT/SELECT followed/preceded by other DML in same transaction
|
||||
--
|
||||
|
||||
-- case 1. followed by DELETE
|
||||
|
@ -184,5 +184,38 @@ INSERT INTO target_table SELECT * FROM target_table;
|
|||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
|
||||
-- case 5. preceded by DELETE
|
||||
TRUNCATE target_table;
|
||||
BEGIN;
|
||||
DELETE FROM target_table;
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
|
||||
-- case 6. preceded by UPDATE
|
||||
TRUNCATE target_table;
|
||||
BEGIN;
|
||||
UPDATE target_table SET b=array_append(b, a);
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
|
||||
-- case 7. preceded by multi-row INSERT
|
||||
TRUNCATE target_table;
|
||||
BEGIN;
|
||||
INSERT INTO target_table VALUES (-5, ARRAY[10,11]), (-6, ARRAY[11,12]), (-7, ARRAY[999]);
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
|
||||
-- case 8. preceded by distributed INSERT/SELECT
|
||||
TRUNCATE target_table;
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
BEGIN;
|
||||
INSERT INTO target_table SELECT * FROM target_table;
|
||||
INSERT INTO target_table SELECT mapped_key, c FROM source_table;
|
||||
END;
|
||||
SELECT * FROM target_table ORDER BY a;
|
||||
|
||||
SET client_min_messages TO WARNING;
|
||||
DROP SCHEMA insert_select_repartition CASCADE;
|
||||
|
|
Loading…
Reference in New Issue