dont-lock-OLD-and-NEW.patch
text/x-diff
Filename: dont-lock-OLD-and-NEW.patch
Type: text/x-diff
Part: 0
Message:
Re: BUG #17151: A SEGV in optimizer
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/parser/analyze.c | 4 | 0 |
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 438b077004..f715748d88 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -3177,6 +3177,8 @@ transformLockingClause(ParseState *pstate, Query *qry, LockingClause *lc,
RangeTblEntry *rte = (RangeTblEntry *) lfirst(rt);
++i;
+ if (!rte->inFromCl)
+ continue; /* ignore OLD/NEW in rules */
switch (rte->rtekind)
{
case RTE_RELATION:
@@ -3227,6 +3229,8 @@ transformLockingClause(ParseState *pstate, Query *qry, LockingClause *lc,
RangeTblEntry *rte = (RangeTblEntry *) lfirst(rt);
++i;
+ if (!rte->inFromCl)
+ continue; /* ignore OLD/NEW in rules */
if (strcmp(rte->eref->aliasname, thisrel->relname) == 0)
{
switch (rte->rtekind)