1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-08-15 20:02:56 +02:00
Commit Graph

952 Commits

Author SHA1 Message Date
Tim Voronov
11f493ef79 wip 2025-06-09 20:34:04 -04:00
Tim Voronov
8ba359166f Refactor file structure and update import paths for consistency 2025-06-09 17:24:10 -04:00
Tim Voronov
0a007a36c3 Introduce CollectorType enumeration and refactor loop handling for aggregation support 2025-06-09 16:14:34 -04:00
Tim Voronov
f3fc807789 Refactor loop handling and introduce support for aggregation in COLLECT clauses
Enhance loop processing with new aggregation support in `COLLECT` clauses. Introduce `emitCollectAggregator` for handling advanced accumulator logic. Optimize symbol scope management with new utility `DefineVariableInScope`. Skip outdated test cases and add support for aggregation operations such as `MIN` and `MAX` in tests.
2025-06-09 14:29:04 -04:00
Tim Voronov
889365c56f Categorize and group opcodes; improve readability and maintainability of opcode.go 2025-06-06 16:38:07 -04:00
Tim Voronov
176fe8ce4f Refactor collectors and sorters; introduce Transformers
Refactor `Collector` into `Transformer` for enhanced flexibility and modularity. Introduce `Sorter` and `MultiSorter` as specialized transformers to handle sorting operations. Streamline VM operations by replacing dataset-based methods with transformer logic. Add encoding/decoding utilities for multiple sorting directions. Optimize `Emit` logic and update related tests.
2025-06-06 16:34:20 -04:00
Tim Voronov
38625ad059 Refactor collectors and sorters; introduce Transformers
Refactor `Collector` into `Transformer` for enhanced flexibility and modularity. Introduce `Sorter` and `MultiSorter` as specialized transformers to handle sorting operations. Streamline VM operations by replacing dataset-based methods with transformer logic. Add encoding/decoding utilities for multiple sorting directions. Optimize `Emit` logic and update related tests.
2025-06-06 16:34:14 -04:00
Tim Voronov
24b9a7697b Move compiler-related components to internal package
Refactored the structure by relocating `compiler` elements into an `internal` package. Made `visitor` struct and methods exported for broader access. Added new utility methods in `Emitter` and `RegisterAllocator` to optimize functionality.
2025-06-06 11:19:29 -04:00
Tim Voronov
dc5ce9a5cc Implement collectors for grouping and counting in collect clauses 2025-06-06 11:09:45 -04:00
Tim Voronov
31cf71d8a8 Add support for grouping with counting in collect clauses
Introduced new opcode `OpCollectKc` for grouping with counting and updated the VM, compiler, and dataset logic to support this functionality. Enhanced the `CollectClause` to handle `WITH COUNT INTO` syntax, added `emitCollectCountProjection`, and implemented relevant test cases.
2025-06-05 15:12:22 -04:00
Tim Voronov
d1feef3efd wip sorting 2025-06-05 13:15:01 -04:00
Tim Voronov
83011dbe03 Implemented COLLECT INTO with custom projection 2025-06-04 17:49:42 -04:00
Tim Voronov
07137fb62a Reimplemented COLLECT 2025-06-04 17:24:44 -04:00
Tim Voronov
f5038111f0 Added sorting to collect grouping 2025-05-26 18:54:45 -04:00
Tim Voronov
6fbdcda44e Removed OpUnpackList 2025-05-26 15:26:50 -04:00
Tim Voronov
f40cc114a0 OPtimized registry use 2025-05-26 15:25:23 -04:00
Tim Voronov
af4245db36 First implementation of collect grouping by multiple keys 2025-05-26 15:06:20 -04:00
Tim Voronov
4bc294a3c0 First implementation of collect grouping 2025-05-26 12:04:49 -04:00
Tim Voronov
b2b7f7d5cb First implementation of collect grouping 2025-05-26 11:54:54 -04:00
Tim Voronov
294f04d814 Fixed sorting 2025-05-25 21:22:00 -04:00
Tim Voronov
1a9e447f29 wip 2025-05-20 15:51:24 -04:00
Tim Voronov
708de4d3f3 wip of waitfor event 2025-05-13 20:33:59 -04:00
Tim Voronov
529bbeef9d Minor update 2025-05-08 16:26:18 -04:00
Tim Voronov
4f3d25bbcd Refactored sorting 2025-05-08 16:21:30 -04:00
Tim Voronov
69fa23d1b3 Wip 2025-05-08 12:28:57 -04:00
Tim Voronov
af01651f38 Refactored LIMIT clause implementation 2025-05-08 10:55:24 -04:00
Tim Voronov
c9bccd14e9 Updated imports in stdlib.array 2025-05-07 21:15:52 -04:00
Tim Voronov
4460be9b0a Updated imports in stdlib.testing 2025-05-07 17:26:37 -04:00
Tim Voronov
c52f6680fd Converted math and strings stdlibs 2025-05-06 23:13:21 -04:00
Tim Voronov
96a45b90e8 Added compatibility layer 2025-05-06 11:48:10 -04:00
Tim Voronov
a0158166c0 Re-organized project layout 2025-05-05 16:29:56 -04:00
Tim Voronov
59c67a7f4c Refactored type system 2025-04-08 16:31:14 -04:00
Tim Voronov
1040e000e6 refactoring helpers 2025-03-17 14:46:31 -04:00
Tim Voronov
95fa0d09ad refactoring runtime internal type system 2025-03-11 20:35:49 -04:00
Tim Voronov
4ba0c6af1b Un-skipped unit tests 2025-02-23 13:46:17 -05:00
Tim Voronov
84f5ecdea7 Renamed some Op codes 2025-02-23 13:45:31 -05:00
Tim Voronov
54f0132cd4 Fixed sorting algorithm 2025-02-22 14:07:57 -05:00
Tim Voronov
0722fed9e0 Fixed object iterator 2025-02-18 15:34:56 -05:00
Tim Voronov
707cfb6131 Added support of params 2025-02-18 15:17:11 -05:00
Tim Voronov
a0ee09707b Added benchs 2024-12-03 16:55:26 -05:00
Tim Voronov
1698f475d7 Addedd extra unit tests and bench 2024-12-03 16:46:38 -05:00
Tim Voronov
ec53d489cd Added support of sorting direction 2024-12-03 16:02:10 -05:00
Tim Voronov
84c588b825 First implementation of sorting 2024-12-03 15:55:04 -05:00
Tim Voronov
0c5c361f51 wip sorting 2024-12-03 15:16:16 -05:00
Tim Voronov
b956f37946 Extended loop struct 2024-11-20 16:49:44 -05:00
Tim Voronov
3fc21afc31 Revert "Work on sorting"
This reverts commit c67aa0a3c8.
2024-11-20 16:42:45 -05:00
Tim Voronov
c67aa0a3c8 Work on sorting 2024-11-14 20:53:37 -05:00
Tim Voronov
9340b31e6e Added more unit tests 2024-11-08 15:22:50 -05:00
Tim Voronov
32283995d6 Updates 2024-11-08 15:05:43 -05:00
Tim Voronov
1145db625f Addedtional unit tests 2024-11-08 13:27:26 -05:00