Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Support IndexElem in raw_expression_tree_walker().
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 23 May 2016 23:23:36 +0000 (19:23 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 23 May 2016 23:23:36 +0000 (19:23 -0400)
Needed for cases in which INSERT ... ON CONFLICT appears inside a
recursive CTE item.  Per bug #14153 from Thomas Alton.

Patch by Peter Geoghegan, slightly adjusted by me

Report: <20160521232802.22598.13537@wrigleys.postgresql.org>

src/backend/nodes/nodeFuncs.c

index 92f32768f84650f70d2c52029aa2a98ecee95700..1ac51a7b2fc2a468e743bbb67c366350b60be129 100644 (file)
@@ -3372,6 +3372,15 @@ raw_expression_tree_walker(Node *node,
                /* for now, constraints are ignored */
            }
            break;
+       case T_IndexElem:
+           {
+               IndexElem  *indelem = (IndexElem *) node;
+
+               if (walker(indelem->expr, context))
+                   return true;
+               /* collation and opclass names are deemed uninteresting */
+           }
+           break;
        case T_GroupingSet:
            return walker(((GroupingSet *) node)->content, context);
        case T_LockingClause: