|
| 1 | +CREATE EXTENSION pathman; |
| 2 | +CREATE TABLE hash_rel ( |
| 3 | + id SERIAL PRIMARY KEY, |
| 4 | + value INTEGER); |
| 5 | +SELECT create_hash_partitions('hash_rel', 'value', 3); |
| 6 | +NOTICE: trigger "hash_rel_insert_trigger" for relation "hash_rel" does not exist, skipping |
| 7 | +NOTICE: function hash_rel_hash_insert_trigger_func() does not exist, skipping |
| 8 | +NOTICE: trigger "hash_rel_update_trigger" for relation "hash_rel" does not exist, skipping |
| 9 | +NOTICE: function hash_rel_hash_update_trigger_func() does not exist, skipping |
| 10 | + create_hash_partitions |
| 11 | +------------------------ |
| 12 | + |
| 13 | +(1 row) |
| 14 | + |
| 15 | +INSERT INTO hash_rel VALUES (1, 1); |
| 16 | +INSERT INTO hash_rel VALUES (2, 2); |
| 17 | +INSERT INTO hash_rel VALUES (3, 3); |
| 18 | +INSERT INTO hash_rel VALUES (4, 4); |
| 19 | +INSERT INTO hash_rel VALUES (5, 5); |
| 20 | +INSERT 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) |
| 28 | +(4 rows) |
| 29 | + |
| 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) |
| 35 | + Filter: (value = 2) |
| 36 | +(3 rows) |
| 37 | + |
| 38 | +SELECT drop_hash_partitions('hash_rel'); |
| 39 | +NOTICE: trigger "hash_rel_update_trigger" for relation "hash_rel" does not exist, skipping |
| 40 | +NOTICE: function hash_rel_hash_update_trigger_func() does not exist, skipping |
| 41 | + drop_hash_partitions |
| 42 | +---------------------- |
| 43 | + |
| 44 | +(1 row) |
| 45 | + |
| 46 | +DROP TABLE hash_rel CASCADE; |
| 47 | +NOTICE: drop cascades to 3 other objects |
| 48 | +DETAIL: drop cascades to table hash_rel_0 |
| 49 | +drop cascades to table hash_rel_1 |
| 50 | +drop cascades to table hash_rel_2 |
| 51 | +CREATE TABLE num_range_rel ( |
| 52 | + id SERIAL PRIMARY KEY, |
| 53 | + txt TEXT); |
| 54 | +SELECT create_range_partitions('num_range_rel', 'id', 'num', '0', '1000', 3); |
| 55 | + create_range_partitions |
| 56 | +------------------------- |
| 57 | + |
| 58 | +(1 row) |
| 59 | + |
| 60 | +INSERT INTO num_range_rel SELECT g, md5(g::TEXT) FROM generate_series(1, 3000) as g; |
| 61 | +VACUUM; |
| 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) |
| 69 | + Filter: (id > 2500) |
| 70 | +(5 rows) |
| 71 | + |
| 72 | +SELECT drop_range_partitions('num_range_rel'); |
| 73 | + drop_range_partitions |
| 74 | +----------------------- |
| 75 | + |
| 76 | +(1 row) |
| 77 | + |
| 78 | +DROP TABLE num_range_rel CASCADE; |
| 79 | +DROP EXTENSION pathman; |