Re: Possible bug: SQL function parameter in window frame definition

Andrew Gierth <andrew@tao11.riddles.org.uk>

From: Andrew Gierth <andrew@tao11.riddles.org.uk>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2019-10-02T15:24:05Z
Lists: pgsql-hackers, pgsql-general
[moving to -hackers, removing OP and -general]

>>>>> "Tom" == Tom Lane <tgl@sss.pgh.pa.us> writes:

 Tom> Also, in HEAD I'd be inclined to add assertions about utilityStmt
 Tom> being NULL.

Tried this. The assertion is hit:

#3  0x0000000000bb9144 in ExceptionalCondition (conditionName=0xd3c7a9 "query->utilityStmt == NULL", 
    errorType=0xc3da24 "FailedAssertion", fileName=0xd641f8 "nodeFuncs.c", lineNumber=2280) at assert.c:54
#4  0x000000000081268e in query_tree_walker (query=0x80bb34220, walker=0x98d150 <rangeTableEntry_used_walker>, 
    context=0x7fffffffc768, flags=0) at nodeFuncs.c:2280
#5  0x0000000000815a29 in query_or_expression_tree_walker (node=0x80bb34220, walker=0x98d150 <rangeTableEntry_used_walker>, 
    context=0x7fffffffc768, flags=0) at nodeFuncs.c:3344
#6  0x000000000098d13d in rangeTableEntry_used (node=0x80bb34220, rt_index=1, sublevels_up=0) at rewriteManip.c:900
#7  0x0000000000698ce6 in transformRuleStmt (stmt=0x80241bd20, 
    queryString=0x80241b120 "create rule r3 as on delete to rules_src do notify rules_src_deletion;", actions=0x7fffffffc968, 
    whereClause=0x7fffffffc960) at parse_utilcmd.c:2883
#8  0x00000000009819c5 in DefineRule (stmt=0x80241bd20, 
    queryString=0x80241b120 "create rule r3 as on delete to rules_src do notify rules_src_deletion;") at rewriteDefine.c:206

Any suggestions where best to fix this? transformRuleStmt could be
taught to skip a lot of the per-Query stuff it does in the event that
the Query is actually a NOTIFY, or a check for NOTIFY could be added
further down the stack, e.g. in rangeTableEntry_used. Any preferences?

-- 
Andrew (irc:RhodiumToad)



Commits

  1. Selectively include window frames in expression walks/mutates.