Skip to content

Commit 039ade1

Browse files
committed
add PartitionFilter info to README.md
1 parent ef35bee commit 039ade1

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

README.md

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ Based on the partitioning type and condition's operator, `pg_pathman` searches f
3232
More interesting features are yet to come. Stay tuned!
3333

3434
## Roadmap
35-
* Replace INSERT triggers with a custom node (aka **PartitionFilter**)
3635
* Implement concurrent partitioning (much more responsive)
3736
* Implement HASH-patitioning for non-integer attributes
3837
* Optimize hash join (both tables are partitioned by join key)
@@ -162,6 +161,22 @@ Permanently disable `pg_pathman` partitioning mechanism for the specified parent
162161

163162
- `RuntimeAppend` (overrides `Append` plan node)
164163
- `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+
```
165180

166181
`RuntimeAppend` and `RuntimeMergeAppend` have much in common: they come in handy in a case when WHERE condition takes form of:
167182
```
@@ -417,6 +432,7 @@ There are several user-accessible [GUC](https://www.postgresql.org/docs/9.5/stat
417432
- `pg_pathman.enable` --- disable (or enable) `pg_pathman` completely
418433
- `pg_pathman.enable_runtimeappend` --- toggle `RuntimeAppend` custom node on\off
419434
- `pg_pathman.enable_runtimemergeappend` --- toggle `RuntimeMergeAppend` custom node on\off
435+
- `pg_pathman.enable_partitionfilter` --- toggle `PartitionFilter` custom node on\off
420436

421437
To **permanently** disable `pg_pathman` for some previously partitioned table, use the `disable_partitioning()` function:
422438
```
@@ -428,6 +444,6 @@ All sections and data will remain unchanged and will be handled by the standard
428444
Do not hesitate to post your issues, questions and new ideas at the [issues](https://github.com/postgrespro/pg_pathman/issues) page.
429445

430446
## 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

0 commit comments

Comments
 (0)