11CREATE EXTENSION pathman;
2+ SET enable_indexscan = OFF;
3+ SET enable_bitmapscan = OFF;
24CREATE TABLE hash_rel (
35 id SERIAL PRIMARY KEY,
46 value INTEGER);
@@ -18,23 +20,33 @@ INSERT INTO hash_rel VALUES (3, 3);
1820INSERT INTO hash_rel VALUES (4, 4);
1921INSERT INTO hash_rel VALUES (5, 5);
2022INSERT INTO hash_rel VALUES (6, 6);
21- EXPLAIN SELECT * FROM hash_rel;
22- QUERY PLAN
23- -----------------------------------------------------------------
24- Append (cost=0.00..97.80 rows=0 width=0)
25- -> Seq Scan on hash_rel_0 (cost=0.00..32.60 rows=0 width=0)
26- -> Seq Scan on hash_rel_1 (cost=0.00..32.60 rows=0 width=0)
27- -> Seq Scan on hash_rel_2 (cost=0.00..32.60 rows=0 width=0)
23+ EXPLAIN(COSTS OFF) SELECT * FROM hash_rel;
24+ QUERY PLAN
25+ ------------------------------
26+ Append
27+ -> Seq Scan on hash_rel_0
28+ -> Seq Scan on hash_rel_1
29+ -> Seq Scan on hash_rel_2
2830(4 rows)
2931
30- EXPLAIN SELECT * FROM hash_rel WHERE value = 2;
31- QUERY PLAN
32- -----------------------------------------------------------------
33- Append (cost=0.00..32.60 rows=0 width=0)
34- -> Seq Scan on hash_rel_2 (cost=0.00..32.60 rows=0 width=0)
32+ EXPLAIN(COSTS OFF) SELECT * FROM hash_rel WHERE value = 2;
33+ QUERY PLAN
34+ ------------------------------
35+ Append
36+ -> Seq Scan on hash_rel_2
3537 Filter: (value = 2)
3638(3 rows)
3739
40+ EXPLAIN (COSTS OFF) SELECT * FROM hash_rel WHERE value = 2 OR value = 1;
41+ QUERY PLAN
42+ ------------------------------
43+ Append
44+ -> Seq Scan on hash_rel_1
45+ Filter: (value = 1)
46+ -> Seq Scan on hash_rel_2
47+ Filter: (value = 2)
48+ (5 rows)
49+
3850SELECT drop_hash_partitions('hash_rel');
3951NOTICE: trigger "hash_rel_update_trigger" for relation "hash_rel" does not exist, skipping
4052NOTICE: function hash_rel_hash_update_trigger_func() does not exist, skipping
@@ -59,16 +71,46 @@ SELECT create_range_partitions('num_range_rel', 'id', 'num', '0', '1000', 3);
5971
6072INSERT INTO num_range_rel SELECT g, md5(g::TEXT) FROM generate_series(1, 3000) as g;
6173VACUUM;
62- EXPLAIN SELECT * FROM num_range_rel WHERE id > 2500;
63- QUERY PLAN
64- -------------------------------------------------------------------------
65- Append (cost=0.00..20.01 rows=0 width=0)
66- -> Seq Scan on num_range_rel_2000 (cost=0.00..19.00 rows=0 width=0)
67- Filter: (id > 2500)
68- -> Seq Scan on num_range_rel_3000 (cost=0.00..1.01 rows=0 width=0)
74+ EXPLAIN (COSTS OFF) SELECT * FROM num_range_rel WHERE id > 2500;
75+ QUERY PLAN
76+ --------------------------------------
77+ Append
78+ -> Seq Scan on num_range_rel_2000
6979 Filter: (id > 2500)
80+ -> Seq Scan on num_range_rel_3000
81+ (4 rows)
82+
83+ EXPLAIN (COSTS OFF) SELECT * FROM num_range_rel WHERE id >= 1000 AND id < 3000;
84+ QUERY PLAN
85+ --------------------------------------
86+ Append
87+ -> Seq Scan on num_range_rel_1000
88+ -> Seq Scan on num_range_rel_2000
89+ (3 rows)
90+
91+ EXPLAIN (COSTS OFF) SELECT * FROM num_range_rel WHERE id >= 1500 AND id < 2500;
92+ QUERY PLAN
93+ --------------------------------------
94+ Append
95+ -> Seq Scan on num_range_rel_1000
96+ Filter: (id >= 1500)
97+ -> Seq Scan on num_range_rel_2000
98+ Filter: (id < 2500)
7099(5 rows)
71100
101+ EXPLAIN (COSTS OFF) SELECT * FROM num_range_rel WHERE (id >= 500 AND id < 1500) OR (id > 2500);
102+ QUERY PLAN
103+ --------------------------------------
104+ Append
105+ -> Seq Scan on num_range_rel_0
106+ Filter: (id >= 500)
107+ -> Seq Scan on num_range_rel_1000
108+ Filter: (id < 1500)
109+ -> Seq Scan on num_range_rel_2000
110+ Filter: (id > 2500)
111+ -> Seq Scan on num_range_rel_3000
112+ (8 rows)
113+
72114SELECT drop_range_partitions('num_range_rel');
73115 drop_range_partitions
74116-----------------------