Execute WITH simple (non-aggregate) projection */
| 3676 | |
| 3677 | /* Execute WITH simple (non-aggregate) projection */ |
| 3678 | static void execute_with_simple(cbm_return_clause_t *wc, binding_t *bindings, int bind_count, |
| 3679 | binding_t *vbindings, int *vcount) { |
| 3680 | for (int bi = 0; bi < bind_count; bi++) { |
| 3681 | binding_t vb = {0}; |
| 3682 | vb.store = bindings[bi].store; /* so node_prop can re-fetch / compute on the projection */ |
| 3683 | for (int ci = 0; ci < wc->count; ci++) { |
| 3684 | char name_buf[CBM_SZ_256]; |
| 3685 | const char *alias = resolve_item_alias(&wc->items[ci], name_buf, sizeof(name_buf)); |
| 3686 | char func_buf[CBM_SZ_512]; |
| 3687 | const char *val = |
| 3688 | project_item(&bindings[bi], &wc->items[ci], func_buf, sizeof(func_buf)); |
| 3689 | with_add_vbinding_var(&vb, alias, val); |
| 3690 | } |
| 3691 | vbindings[(*vcount)++] = vb; |
| 3692 | } |
| 3693 | } |
| 3694 | |
| 3695 | /* Apply post-WITH WHERE filter */ |
| 3696 | static void filter_bindings_where(const cbm_where_clause_t *where, binding_t *vbindings, |
no test coverage detected