sqlparser-rs
polars
sqlparser-rs | polars | |
---|---|---|
12 | 144 | |
2,434 | 26,218 | |
2.0% | 2.9% | |
9.3 | 10.0 | |
6 days ago | 5 days ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sqlparser-rs
-
Introducing SQLPage : write websites entirely in SQL
sqlparser to parse SQL queries and detect variable bindings
-
Understanding the SQL AST and what can be done with it
So to start with this, I looked into SQL parsing and found this library https://github.com/sqlparser-rs/sqlparser-rs
-
Supabase Logs: open source logging server
We switched to an open source alternative, the rust-based sqlparser-rs library, contributing a few updates for the BigQuery dialect.
- Parsing SQL with Rust
-
Writing a SQL LS in Rust - Looking for Coding Companions.
I have experience with sqlparser-rs (for my sqlpage project), but it does not track the source code location of the parsed data structures (yet).
-
Pure Python Distributed SQL Engine
It uses https://github.com/sqlparser-rs/sqlparser-rs as the parser and lexer. The binder, planner, optimizer and executor are in Python. The optimizer stage only works on the logical plan and the rules are heuristic only.
-
Parsing / Recursive Descent Parser
That code could be copied directly from some real-world examples - sqlparser-rs code looks pretty much exactly the same.
https://github.com/sqlparser-rs/sqlparser-rs
-
RisingLight is an OLAP database system for educational purpose
Also neat to find the SQL parser library they use.
- We Went All in on Sqlc/Pgx for Postgres and Go
- “Swift is the only language I could find with over 100 keywords”
polars
-
Why Python's Integer Division Floors (2010)
This is because 0.1 is in actuality the floating point value value 0.1000000000000000055511151231257827021181583404541015625, and thus 1 divided by it is ever so slightly smaller than 10. Nevertheless, fpround(1 / fpround(1 / 10)) = 10 exactly.
I found out about this recently because in Polars I defined a // b for floats to be (a / b).floor(), which does return 10 for this computation. Since Python's correctly-rounded division is rather expensive, I chose to stick to this (more context: https://github.com/pola-rs/polars/issues/14596#issuecomment-...).
-
Polars
https://github.com/pola-rs/polars/releases/tag/py-0.19.0
-
Stuff I Learned during Hanukkah of Data 2023
That turned out to be related to pola-rs/polars#11912, and this linked comment provided a deceptively simple solution - use PARSE_DECLTYPES when creating the connection:
- Polars 0.20 Released
- Segunda linguagem
- Polars: Dataframes powered by a multithreaded query engine, written in Rust
- Summing columns in remote Parquet files using DuckDB
- Polars 0.34 is released. (A query engine focussing on DataFrame front ends)
What are some alternatives?
sled - the champagne of beta embedded databases
vaex - Out-of-Core hybrid Apache Arrow/NumPy DataFrame for Python, ML, visualization and exploration of big tabular data at a billion rows per second 🚀
goyesql - Parse SQL files with multiple named queries and automatically prepare and scan them into structs.
modin - Modin: Scale your Pandas workflows by changing a single line of code
sqlite
datafusion - Apache DataFusion SQL Query Engine
kube - Rust Kubernetes client and controller runtime
DataFrames.jl - In-memory tabular data in Julia
prettytable-rs - A rust library to print aligned and formatted tables
datatable - A Python package for manipulating 2-dimensional tabular data structures
go - The Go programming language
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing