| 1250 | } CTEWindowAggSearchContext; |
| 1251 | |
| 1252 | static bool |
| 1253 | cte_window_agg_walker(Node *node, CTEWindowAggSearchContext *context) |
| 1254 | { |
| 1255 | if (node == NULL) |
| 1256 | return false; |
| 1257 | |
| 1258 | if (IsA(node, FuncCall)) |
| 1259 | { |
| 1260 | FuncCall *fc = (FuncCall *) node; |
| 1261 | if (fc->over != NULL) |
| 1262 | { |
| 1263 | context->found = true; |
| 1264 | context->func = fc; |
| 1265 | |
| 1266 | return true; |
| 1267 | } |
| 1268 | } |
| 1269 | |
| 1270 | return raw_expression_tree_walker(node, cte_window_agg_walker, context); |
| 1271 | } |
| 1272 | |
| 1273 | static void |
| 1274 | checkWindowFuncInRecursiveTerm(SelectStmt *stmt, CteState *cstate) |
nothing calls this directly
no test coverage detected