try_insertselect
Sait Talha Nisanci 2020-09-15 17:24:01 +03:00
parent 4118560b75
commit 46d38c7cc1
1 changed files with 11 additions and 11 deletions

View File

@ -18,7 +18,7 @@ SELECT create_distributed_table('source_table', 'a');
CREATE TABLE target_table(a numeric, b int not null);
SELECT create_distributed_table('target_table', 'a');
INSERT INTO source_table SELECT i, 2 * i FROM generate_series(1, 10000) i;
-- INSERT INTO source_table SELECT i, 2 * i FROM generate_series(1, 10000) i;
EXPLAIN (costs off) INSERT INTO target_table SELECT * FROM source_table;
@ -26,13 +26,13 @@ SELECT worker_connection_count(:worker_1_port) AS pre_xact_worker_1_connections,
worker_connection_count(:worker_2_port) AS pre_xact_worker_2_connections \gset
BEGIN;
INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
SELECT worker_connection_count(:worker_1_port) AS worker_1_connections,
worker_connection_count(:worker_2_port) AS worker_2_connections \gset
INSERT INTO target_table SELECT * FROM source_table;
INSERT INTO target_table SELECT * FROM source_table;
INSERT INTO target_table SELECT * FROM source_table;
INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
SELECT worker_connection_count(:worker_1_port) - :worker_1_connections AS leaked_worker_1_connections,
worker_connection_count(:worker_2_port) - :worker_2_connections AS leaked_worker_2_connections;
END;
@ -42,8 +42,8 @@ SELECT worker_connection_count(:worker_1_port) - :pre_xact_worker_1_connections
-- ROLLBACK
BEGIN;
INSERT INTO target_table SELECT * FROM source_table;
INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
ROLLBACK;
SELECT worker_connection_count(:worker_1_port) - :pre_xact_worker_1_connections AS leaked_worker_1_connections,
@ -53,11 +53,11 @@ SELECT worker_connection_count(:worker_1_port) - :pre_xact_worker_1_connections
-- Error on constraint failure
BEGIN;
INSERT INTO target_table SELECT * FROM source_table;
-- INSERT INTO target_table SELECT * FROM source_table;
SELECT worker_connection_count(:worker_1_port) AS worker_1_connections,
worker_connection_count(:worker_2_port) AS worker_2_connections \gset
SAVEPOINT s1;
INSERT INTO target_table SELECT a, CASE WHEN a < 5000 THEN b ELSE null END FROM source_table;
-- SAVEPOINT s1;
-- INSERT INTO target_table SELECT a, CASE WHEN a < 5000 THEN b ELSE null END FROM source_table;
ROLLBACK TO SAVEPOINT s1;
SELECT worker_connection_count(:worker_1_port) - :worker_1_connections AS leaked_worker_1_connections,
worker_connection_count(:worker_2_port) - :worker_2_connections AS leaked_worker_2_connections;