@@ -818,6 +818,9 @@ EXPLAIN (COSTS OFF) SELECT * FROM range_rel WHERE dt > '2010-12-15';
818
818
-> Seq Scan on range_rel_14
819
819
(4 rows)
820
820
821
+ /* Temporary table for JOINs */
822
+ CREATE TABLE tmp (id INTEGER NOT NULL, value INTEGER NOT NULL);
823
+ INSERT INTO tmp VALUES (1, 1), (2, 2);
821
824
/* Test UPDATE and DELETE */
822
825
EXPLAIN (COSTS OFF) UPDATE range_rel SET value = 111 WHERE dt = '2010-06-15';
823
826
QUERY PLAN
@@ -848,6 +851,32 @@ SELECT * FROM range_rel WHERE dt = '2010-06-15';
848
851
----+----+-------
849
852
(0 rows)
850
853
854
+ EXPLAIN (COSTS OFF) UPDATE range_rel r SET value = t.value FROM tmp t WHERE r.dt = '2010-01-01' AND r.id = t.id;
855
+ QUERY PLAN
856
+ --------------------------------------------------------------------------------------------
857
+ Update on range_rel_1 r
858
+ -> Hash Join
859
+ Hash Cond: (t.id = r.id)
860
+ -> Seq Scan on tmp t
861
+ -> Hash
862
+ -> Index Scan using range_rel_1_pkey on range_rel_1 r
863
+ Filter: (dt = 'Fri Jan 01 00:00:00 2010'::timestamp without time zone)
864
+ (7 rows)
865
+
866
+ UPDATE range_rel r SET value = t.value FROM tmp t WHERE r.dt = '2010-01-01' AND r.id = t.id;
867
+ EXPLAIN (COSTS OFF) DELETE FROM range_rel r USING tmp t WHERE r.dt = '2010-01-02' AND r.id = t.id;
868
+ QUERY PLAN
869
+ --------------------------------------------------------------------------------------------
870
+ Delete on range_rel_1 r
871
+ -> Hash Join
872
+ Hash Cond: (t.id = r.id)
873
+ -> Seq Scan on tmp t
874
+ -> Hash
875
+ -> Index Scan using range_rel_1_pkey on range_rel_1 r
876
+ Filter: (dt = 'Sat Jan 02 00:00:00 2010'::timestamp without time zone)
877
+ (7 rows)
878
+
879
+ DELETE FROM range_rel r USING tmp t WHERE r.dt = '2010-01-02' AND r.id = t.id;
851
880
/* Create range partitions from whole range */
852
881
SELECT drop_range_partitions('range_rel');
853
882
NOTICE: 0 rows copied from range_rel_15
@@ -863,7 +892,7 @@ NOTICE: 29 rows copied from range_rel_6
863
892
NOTICE: 31 rows copied from range_rel_5
864
893
NOTICE: 30 rows copied from range_rel_4
865
894
NOTICE: 31 rows copied from range_rel_3
866
- NOTICE: 45 rows copied from range_rel_1
895
+ NOTICE: 44 rows copied from range_rel_1
867
896
drop_range_partitions
868
897
-----------------------
869
898
14
0 commit comments