Commit 8021d94
Your Name
feat(store+cypher): channel dedup, count(DISTINCT), SQL injection fix
Channel deduplication:
- Added UNIQUE index on channels(project, channel_name, direction,
file_path, function_name) to prevent duplicate rows at insert time
- Changed INSERT to INSERT OR IGNORE
- Added DISTINCT to all channel SELECT queries
- Fixed SQL injection in channel DELETE (was snprintf, now parameterized)
Cypher count(DISTINCT ...):
- Parser now accepts DISTINCT keyword inside aggregate functions:
count(DISTINCT n.name), count(DISTINCT n.file_path), etc.
- Added distinct_arg flag to cbm_return_item_t
- Executor tracks seen values per-column and only increments count
for unique values when distinct_arg is set
- Proper cleanup of distinct_seen arrays in both WITH and RETURN paths
Enables queries like:
MATCH (caller)-[e]->(n) WHERE e.type = 'CALLS'
RETURN count(DISTINCT n.name) as unique_callees1 parent b7ba394 commit 8021d94
3 files changed
Lines changed: 68 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1052 | 1052 | | |
1053 | 1053 | | |
1054 | 1054 | | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
1055 | 1059 | | |
1056 | 1060 | | |
1057 | 1061 | | |
| |||
2568 | 2572 | | |
2569 | 2573 | | |
2570 | 2574 | | |
| 2575 | + | |
| 2576 | + | |
| 2577 | + | |
| 2578 | + | |
2571 | 2579 | | |
2572 | 2580 | | |
2573 | 2581 | | |
| |||
2606 | 2614 | | |
2607 | 2615 | | |
2608 | 2616 | | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
2609 | 2620 | | |
2610 | 2621 | | |
2611 | 2622 | | |
| |||
2624 | 2635 | | |
2625 | 2636 | | |
2626 | 2637 | | |
2627 | | - | |
2628 | 2638 | | |
2629 | 2639 | | |
| 2640 | + | |
| 2641 | + | |
| 2642 | + | |
| 2643 | + | |
| 2644 | + | |
| 2645 | + | |
| 2646 | + | |
| 2647 | + | |
| 2648 | + | |
| 2649 | + | |
| 2650 | + | |
| 2651 | + | |
| 2652 | + | |
| 2653 | + | |
| 2654 | + | |
| 2655 | + | |
| 2656 | + | |
| 2657 | + | |
| 2658 | + | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
| 2662 | + | |
| 2663 | + | |
| 2664 | + | |
| 2665 | + | |
2630 | 2666 | | |
2631 | 2667 | | |
2632 | 2668 | | |
| |||
2703 | 2739 | | |
2704 | 2740 | | |
2705 | 2741 | | |
| 2742 | + | |
| 2743 | + | |
| 2744 | + | |
| 2745 | + | |
| 2746 | + | |
| 2747 | + | |
| 2748 | + | |
| 2749 | + | |
| 2750 | + | |
| 2751 | + | |
| 2752 | + | |
2706 | 2753 | | |
2707 | 2754 | | |
2708 | 2755 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
| 241 | + | |
241 | 242 | | |
242 | 243 | | |
243 | 244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
218 | 218 | | |
219 | 219 | | |
220 | 220 | | |
| 221 | + | |
| 222 | + | |
221 | 223 | | |
222 | 224 | | |
223 | 225 | | |
| |||
4968 | 4970 | | |
4969 | 4971 | | |
4970 | 4972 | | |
4971 | | - | |
4972 | | - | |
4973 | | - | |
4974 | | - | |
| 4973 | + | |
| 4974 | + | |
| 4975 | + | |
| 4976 | + | |
| 4977 | + | |
| 4978 | + | |
| 4979 | + | |
| 4980 | + | |
| 4981 | + | |
| 4982 | + | |
4975 | 4983 | | |
4976 | 4984 | | |
4977 | 4985 | | |
| |||
4985 | 4993 | | |
4986 | 4994 | | |
4987 | 4995 | | |
4988 | | - | |
| 4996 | + | |
4989 | 4997 | | |
4990 | 4998 | | |
4991 | 4999 | | |
| |||
5067 | 5075 | | |
5068 | 5076 | | |
5069 | 5077 | | |
5070 | | - | |
| 5078 | + | |
| 5079 | + | |
5071 | 5080 | | |
5072 | 5081 | | |
5073 | 5082 | | |
5074 | | - | |
| 5083 | + | |
5075 | 5084 | | |
5076 | 5085 | | |
5077 | 5086 | | |
5078 | 5087 | | |
5079 | | - | |
| 5088 | + | |
5080 | 5089 | | |
5081 | 5090 | | |
5082 | 5091 | | |
5083 | | - | |
| 5092 | + | |
5084 | 5093 | | |
5085 | 5094 | | |
5086 | 5095 | | |
5087 | | - | |
| 5096 | + | |
5088 | 5097 | | |
5089 | 5098 | | |
5090 | 5099 | | |
| |||
0 commit comments