| 195 | } /* pullUpExpr_mutator */ |
| 196 | |
| 197 | Expr * |
| 198 | cdbpullup_expr(Expr *expr, List *targetlist, List *newvarlist, Index newvarno) |
| 199 | { |
| 200 | Expr *newexpr; |
| 201 | struct pullUpExpr_context ctx; |
| 202 | |
| 203 | Assert(!targetlist || IsA(targetlist, List)); |
| 204 | Assert(!newvarlist || list_length(newvarlist) == list_length(targetlist)); |
| 205 | |
| 206 | ctx.targetlist = targetlist; |
| 207 | ctx.newvarlist = newvarlist; |
| 208 | ctx.newvarno = newvarno; |
| 209 | ctx.notfound = NULL; |
| 210 | |
| 211 | newexpr = (Expr *) pullUpExpr_mutator((Node *) expr, &ctx); |
| 212 | |
| 213 | if (ctx.notfound) |
| 214 | newexpr = NULL; |
| 215 | |
| 216 | return newexpr; |
| 217 | } /* cdbpullup_expr */ |
| 218 | |
| 219 | /* |
| 220 | * cdbpullup_findEclassInTargetList |
no test coverage detected