mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Fix another oversight in CustomScan patch.
execCurrent.c's search_plan_tree() must recognize a CustomScan on the target relation. This would only be helpful for custom providers that support CurrentOfExpr quals, which is probably a bit far-fetched, but it's not impossible I think. But even without assuming that, we need to recognize a scanned-relation match so that we will properly throw error if the desired relation is being scanned with both a CustomScan and a regular scan (ie, self-join). Also recognize ForeignScanState for similar reasons. Supporting WHERE CURRENT OF on a foreign table is probably even more far-fetched than it is for custom scans, but I think in principle you could do it with postgres_fdw (or another FDW that supports the ctid column). This would be a back-patchable bug fix if existing FDWs handled CurrentOfExpr, but I doubt any do so I won't bother back-patching.
This commit is contained in:
parent
03e574af5f
commit
081a6048cf
@ -258,13 +258,15 @@ search_plan_tree(PlanState *node, Oid table_oid)
|
||||
switch (nodeTag(node))
|
||||
{
|
||||
/*
|
||||
* scan nodes can all be treated alike
|
||||
* Relation scan nodes can all be treated alike
|
||||
*/
|
||||
case T_SeqScanState:
|
||||
case T_IndexScanState:
|
||||
case T_IndexOnlyScanState:
|
||||
case T_BitmapHeapScanState:
|
||||
case T_TidScanState:
|
||||
case T_ForeignScanState:
|
||||
case T_CustomScanState:
|
||||
{
|
||||
ScanState *sstate = (ScanState *) node;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user