@@ -32,7 +32,6 @@ Based on the partitioning type and condition's operator, `pg_pathman` searches f
32
32
More interesting features are yet to come. Stay tuned!
33
33
34
34
##Roadmap
35
- * Replace INSERT triggers with a custom node (aka** PartitionFilter** )
36
35
* Implement concurrent partitioning (much more responsive)
37
36
* Implement HASH-patitioning for non-integer attributes
38
37
* Optimize hash join (both tables are partitioned by join key)
@@ -162,6 +161,22 @@ Permanently disable `pg_pathman` partitioning mechanism for the specified parent
162
161
163
162
- ` RuntimeAppend ` (overrides` Append ` plan node)
164
163
- ` RuntimeMergeAppend ` (overrides` MergeAppend ` plan node)
164
+ - ` PartitionFilter ` (drop-in replacement for INSERT triggers)
165
+
166
+ ` PartitionFilter ` acts as a* proxy node* for INSERT's child scan, which means it can redirect output tuples to the corresponding partition:
167
+
168
+ ```
169
+ EXPLAIN (COSTS OFF)
170
+ INSERT INTO partitioned_table
171
+ SELECT generate_series(1, 10), random();
172
+ QUERY PLAN
173
+ -----------------------------------------
174
+ Insert on partitioned_table
175
+ -> Custom Scan (PartitionFilter)
176
+ -> Subquery Scan on "*SELECT*"
177
+ -> Result
178
+ (4 rows)
179
+ ```
165
180
166
181
` RuntimeAppend ` and` RuntimeMergeAppend ` have much in common: they come in handy in a case when WHERE condition takes form of:
167
182
```
@@ -417,6 +432,7 @@ There are several user-accessible [GUC](https://www.postgresql.org/docs/9.5/stat
417
432
- ` pg_pathman.enable ` --- disable (or enable)` pg_pathman ` completely
418
433
- ` pg_pathman.enable_runtimeappend ` --- toggle` RuntimeAppend ` custom node on\off
419
434
- ` pg_pathman.enable_runtimemergeappend ` --- toggle` RuntimeMergeAppend ` custom node on\off
435
+ - ` pg_pathman.enable_partitionfilter ` --- toggle` PartitionFilter ` custom node on\off
420
436
421
437
To** permanently** disable` pg_pathman ` for some previously partitioned table, use the` disable_partitioning() ` function:
422
438
```
@@ -428,6 +444,6 @@ All sections and data will remain unchanged and will be handled by the standard
428
444
Do not hesitate to post your issues, questions and new ideas at the[ issues] ( https://github.com/postgrespro/pg_pathman/issues ) page.
429
445
430
446
##Authors
431
- Ildar Musin <i.musin@postgrespro.ru > Postgres Professional Ltd., Russia
432
- Alexander Korotkov <a.korotkov@postgrespro.ru > Postgres Professional Ltd., Russia
433
- Dmitry Ivanov <d.ivanov@postgrespro.ru > Postgres Professional Ltd., Russia
447
+ Ildar Musin <i.musin@postgrespro.ru > Postgres Professional Ltd., Russia
448
+ Alexander Korotkov <a.korotkov@postgrespro.ru > Postgres Professional Ltd., Russia
449
+ Dmitry Ivanov <d.ivanov@postgrespro.ru > Postgres Professional Ltd., Russia