Andrew Hundt
a4b3a71e81
fix(cypher): reject unconsumed query tokens
...
cbm_parse previously returned success when parse_return_item stopped before postfix list indexing or an arbitrary trailing token. A query containing labels(n)[0] could therefore ignore its alias, aggregate, ordering, and limit and execute as an unbounded projection.
Require TOK_EOF after parse_post_where in src/cypher/cypher.c and transfer the parent cursor after a recursively validated UNION tail. Route both list-index rejection paths through one diagnostic that gives supported labels(n) and n.label/count(*) rewrites.
Add parser regressions in tests/test_cypher.c. Verified 155/155 Cypher tests under ASan/UBSan, all three UNION tests, source-safety, an optimized CLI rejection, and the supported five-row node-label aggregation.
Signed-off-by: Andrew Hundt <ATHundt@gmail.com >
2026-07-18 18:50:08 -04:00
..
2026-07-16 16:27:33 -04:00
2026-07-12 19:57:47 +02:00
2026-06-05 21:53:25 +02:00
2026-06-05 21:53:25 +02:00
2026-06-28 08:36:56 -04:00
2026-03-15 22:37:34 +01:00
2026-05-30 18:26:44 +02:00
2026-07-14 01:47:43 -04:00
2026-06-29 09:45:28 -06:00
2026-07-16 20:32:10 -04:00
2026-07-16 21:05:27 -04:00
2026-07-14 01:47:43 -04:00
2026-07-18 18:15:46 -04:00
2026-07-02 07:37:19 -04:00
2026-06-28 06:34:23 -04:00
2026-06-06 22:16:04 +02:00
2026-07-13 04:34:16 -04:00
2026-05-19 22:47:53 +02:00
2026-07-18 18:50:08 -04:00
2026-07-16 07:32:55 -04:00
2026-07-14 01:47:43 -04:00
2026-06-24 17:03:07 -04:00
2026-06-23 06:38:45 +09:00
2026-03-25 09:28:11 +01:00
2026-06-30 10:19:32 -04:00
2026-07-15 15:44:06 -04:00
2026-07-14 01:47:43 -04:00
2026-06-07 12:35:53 +02:00
2026-06-08 22:55:23 +02:00
2026-07-14 01:47:43 -04:00
2026-07-14 01:47:43 -04:00
2026-07-16 16:27:33 -04:00
2026-07-13 04:34:16 -04:00
2026-07-16 06:09:34 -04:00
2026-06-22 23:51:49 +02:00
2026-03-15 22:37:34 +01:00
2026-07-15 15:44:06 -04:00
2026-07-15 15:44:06 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-07-14 01:47:43 -04:00
2026-06-28 06:34:23 -04:00
2026-06-28 06:34:23 -04:00
2026-07-14 01:47:43 -04:00
2026-07-08 00:05:19 +05:30
2026-07-14 05:06:05 -04:00
2026-06-30 00:38:07 -04:00
2026-05-21 22:52:16 +02:00
2026-03-31 20:04:11 +02:00
2026-07-14 05:33:30 -04:00
2026-07-01 23:52:19 -04:00
2026-07-14 01:47:43 -04:00
2026-07-14 01:55:02 -04:00
2026-07-01 04:04:08 -04:00
2026-07-18 14:03:39 -04:00
2026-06-28 06:34:23 -04:00
2026-06-02 18:52:37 +02:00
2026-07-01 07:37:23 -04:00
2026-07-01 07:22:12 -04:00
2026-07-15 15:44:06 -04:00
2026-07-08 00:05:19 +05:30
2026-07-14 01:47:43 -04:00
2026-07-15 15:44:06 -04:00
2026-03-15 22:37:34 +01:00
2026-07-18 14:03:39 -04:00
2026-07-15 15:44:06 -04:00
2026-06-28 06:34:23 -04:00
2026-07-18 17:56:39 -04:00
2026-07-08 06:03:54 -04:00
2026-06-28 06:34:23 -04:00
2026-07-14 06:07:39 -04:00
2026-07-14 02:49:30 -04:00
2026-07-14 01:47:43 -04:00
2026-07-08 19:13:25 +02:00
2026-07-03 19:57:01 +02:00
2026-07-09 14:09:39 -05:00
2026-07-09 22:32:26 +02:00
2026-07-18 14:55:27 -04:00
2026-07-02 04:07:36 -04:00
2026-07-13 04:34:16 -04:00
2026-05-09 15:44:09 +02:00
2026-05-09 14:16:15 +02:00
2026-07-14 01:47:43 -04:00
2026-07-16 04:52:38 -04:00
2026-06-30 06:05:15 -04:00
2026-07-06 18:32:50 +02:00
2026-05-08 22:26:56 +02:00
2026-06-24 03:15:36 +02:00
2026-07-16 06:09:34 -04:00
2026-07-06 21:52:37 +02:00
2026-07-14 01:47:43 -04:00
2026-06-28 21:57:35 -06:00
2026-06-30 11:00:27 -04:00
2026-07-14 01:47:43 -04:00
2026-07-14 01:47:43 -04:00
2026-07-14 01:47:43 -04:00
2026-04-11 09:22:23 -04:00
2026-07-11 02:40:54 +02:00
2026-07-14 01:47:43 -04:00
2026-07-14 01:47:43 -04:00
2026-07-14 01:47:43 -04:00
2026-06-30 21:24:07 -04:00
2026-03-24 23:48:23 +01:00
2026-07-14 01:47:43 -04:00
2026-07-16 08:18:18 -04:00
2026-07-18 15:39:37 -04:00
2026-07-18 17:56:39 -04:00
2026-07-18 17:56:39 -04:00
2026-03-24 23:48:23 +01:00
2026-07-02 03:55:39 -04:00
2026-06-10 12:11:02 +02:00
2026-07-07 23:09:05 +02:00
2026-04-09 23:15:10 -04:00
2026-06-05 21:53:25 +02:00
2026-07-14 01:47:43 -04:00
2026-07-01 23:42:49 -04:00
2026-07-04 14:38:25 +02:00
2026-04-10 20:09:37 -04:00
2026-04-15 23:56:03 +02:00