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: