Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cube2222/octosql-rs
WIP PoC rewrite of OctoSQL in Rust
https://github.com/cube2222/octosql-rs
Last synced: about 2 months ago
JSON representation
WIP PoC rewrite of OctoSQL in Rust
- Host: GitHub
- URL: https://github.com/cube2222/octosql-rs
- Owner: cube2222
- License: apache-2.0
- Created: 2020-05-11T14:07:31.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-09-22T12:13:11.000Z (about 4 years ago)
- Last Synced: 2024-10-11T08:12:33.303Z (2 months ago)
- Language: Rust
- Homepage:
- Size: 1.11 MB
- Stars: 11
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
This is a work in progress experiment PoC of rewriting OctoSQL in Rust, as I've been seeing 10-100x performance improvements using a more optimized design.
**Development has moved to: https://github.com/cube2222/octosql/tree/rust-rewrite**
# Roadmap
The current roadmap is to achieve feature parity with the Go version of OctoSQL. When this is done, we'll decide which one gets to stay.- [x] Projection
- [x] Filter
- [x] GroupBy
- [x] Support all types
- [ ] More aggregates
- [x] Wildcard
- [x] Triggers
- [x] Counting
- [ ] Delay
- [x] Retractions
- [x] Add retractions to Projection (don't allow the user to remove the retraction column)
- [x] Stream join
- [ ] Float support (currently not tested and possibly wacky)
- [ ] Expressions
- [x] Evaluation in record context.
- [x] Evaluation in execution context of variables (if we're in a subquery, we need to understand both the current record, and variables stemming from record flows above us)
- [ ] Common functions / arithmetics. (Currently only comparison operators)
- [x] Map (evaluate expressions, this is the only place where expressions are evaluated in OctoSQL, everything else gets evaluated expressions passed from here by name)
- [x] Wildcard
- [ ] Watermarks
- [ ] Metadata Message and Handling
- [ ] Watermark trigger
- [ ] Watermark generators
- [ ] Start with Max difference
- [ ] Shuffle
- [x] Subqueries
- [ ] Handle all primitive types
- [ ] Handle multiple columns/rows (Tuple values)
- [ ] Lookup join
- [x] Physical Plan (fit for pattern matching)
- [ ] Basic optimiser
- [ ] Pushing down projections
- [ ] Pushing down filters
- [x] Logical Plan
- [x] SQL
- [x] Temporal Extensions
- [ ] Join
- [ ] Nice output printing
- [ ] CSV
- [ ] JSON
- [ ] Live Table
- [ ] Data Sources
- [x] CSV
- [ ] MySQL
- [ ] PostgreSQL
- [x] JSON
- [ ] Parquet
- [ ] Excel
- [ ] Kafka
- [ ] Table Valued Functions
- [ ] Range
- [ ] Tumble
- [ ] Durations and Dates support
- [ ] SQL interval# Contributing
Contributions are welcome!Please open an issue or contact me personally when you want to try to contribute, so that no work gets duplicated or thrown away.