Execute WITH simple (non-aggregate) projection */
| 4021 | |
| 4022 | /* Execute WITH simple (non-aggregate) projection */ |
| 4023 | static void execute_with_simple(cbm_return_clause_t *wc, binding_t *bindings, int bind_count, |
| 4024 | binding_t *vbindings, int *vcount) { |
| 4025 | for (int bi = 0; bi < bind_count; bi++) { |
| 4026 | binding_t vb = {0}; |
| 4027 | vb.store = bindings[bi].store; /* so node_prop can re-fetch / compute on the projection */ |
| 4028 | for (int ci = 0; ci < wc->count; ci++) { |
| 4029 | char name_buf[CBM_SZ_256]; |
| 4030 | const char *alias = resolve_item_alias(&wc->items[ci], name_buf, sizeof(name_buf)); |
| 4031 | char func_buf[CBM_SZ_512]; |
| 4032 | const char *val = |
| 4033 | project_item(&bindings[bi], &wc->items[ci], func_buf, sizeof(func_buf)); |
| 4034 | with_add_vbinding_var(&vb, alias, val); |
| 4035 | } |
| 4036 | vbindings[(*vcount)++] = vb; |
| 4037 | } |
| 4038 | } |
| 4039 | |
| 4040 | /* Apply post-WITH WHERE filter */ |
| 4041 | static void filter_bindings_where(const cbm_where_clause_t *where, binding_t *vbindings, |
no test coverage detected