@ -222,12 +222,51 @@ SELECT * FROM test WHERE a IN (1, 2, 3, 4, 5);
3 | c
3 | c
(8 rows)
(8 rows)
-- MERGE
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= 4)
WHEN MATCHED THEN UPDATE SET b = st.b || st.a::text;
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= 4)
WHEN MATCHED THEN UPDATE SET b = test.b || st.a::text;
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= 4)
WHEN MATCHED AND length(st.b) > 1 THEN UPDATE SET b = test.b || st.a::text;
MERGE INTO test USING test st ON (st.a = test.a)
WHEN NOT MATCHED THEN INSERT (a, b) VALUES (0, NULL);
MERGE INTO test USING test st ON (st.a = test.a)
WHEN NOT MATCHED THEN INSERT VALUES (0, NULL); -- same as above
MERGE INTO test USING test st ON (st.a = test.a)
WHEN NOT MATCHED THEN INSERT (b, a) VALUES (NULL, 0);
MERGE INTO test USING test st ON (st.a = test.a)
WHEN NOT MATCHED THEN INSERT (a) VALUES (0);
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= 4)
WHEN MATCHED THEN DELETE;
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= 4)
WHEN MATCHED THEN DO NOTHING;
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= 4)
WHEN NOT MATCHED THEN DO NOTHING;
SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C";
query | calls | rows
query | calls | rows
------------------------------------------------------------------------------+-------+------
------------------------------------------------------------------------------+-------+------
DELETE FROM test WHERE a > $1 | 1 | 1
DELETE FROM test WHERE a > $1 | 1 | 1
INSERT INTO test (a, b) VALUES ($1, $2), ($3, $4), ($5, $6) | 1 | 3
INSERT INTO test (a, b) VALUES ($1, $2), ($3, $4), ($5, $6) | 1 | 3
INSERT INTO test VALUES(generate_series($1, $2), $3) | 1 | 10
INSERT INTO test VALUES(generate_series($1, $2), $3) | 1 | 10
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= $1) +| 1 | 6
WHEN MATCHED AND length(st.b) > $2 THEN UPDATE SET b = test.b || st.a::text | |
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= $1) +| 1 | 6
WHEN MATCHED THEN DELETE | |
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= $1) +| 1 | 0
WHEN MATCHED THEN DO NOTHING | |
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= $1) +| 1 | 6
WHEN MATCHED THEN UPDATE SET b = st.b || st.a::text | |
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= $1) +| 1 | 6
WHEN MATCHED THEN UPDATE SET b = test.b || st.a::text | |
MERGE INTO test USING test st ON (st.a = test.a AND st.a >= $1) +| 1 | 0
WHEN NOT MATCHED THEN DO NOTHING | |
MERGE INTO test USING test st ON (st.a = test.a) +| 1 | 0
WHEN NOT MATCHED THEN INSERT (a) VALUES ($1) | |
MERGE INTO test USING test st ON (st.a = test.a) +| 2 | 0
WHEN NOT MATCHED THEN INSERT (a, b) VALUES ($1, $2) | |
MERGE INTO test USING test st ON (st.a = test.a) +| 1 | 0
WHEN NOT MATCHED THEN INSERT (b, a) VALUES ($1, $2) | |
SELECT * FROM test ORDER BY a | 1 | 12
SELECT * FROM test ORDER BY a | 1 | 12
SELECT * FROM test WHERE a > $1 ORDER BY a | 2 | 4
SELECT * FROM test WHERE a > $1 ORDER BY a | 2 | 4
SELECT * FROM test WHERE a IN ($1, $2, $3, $4, $5) | 1 | 8
SELECT * FROM test WHERE a IN ($1, $2, $3, $4, $5) | 1 | 8
@ -235,7 +274,7 @@ SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C";
SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C" | 0 | 0
SELECT query, calls, rows FROM pg_stat_statements ORDER BY query COLLATE "C" | 0 | 0
UPDATE test SET b = $1 WHERE a = $2 | 6 | 6
UPDATE test SET b = $1 WHERE a = $2 | 6 | 6
UPDATE test SET b = $1 WHERE a > $2 | 1 | 3
UPDATE test SET b = $1 WHERE a > $2 | 1 | 3
(10 rows)
(19 rows)
--
--
-- INSERT, UPDATE, DELETE on test table to validate WAL generation metrics
-- INSERT, UPDATE, DELETE on test table to validate WAL generation metrics