Lightweight SQL calculation engine, as the SQL layer of KipDB, implemented with TalentPlan's TinySQL as the reference standard
Install rust toolchain first.
cargo run
test command
create table t1 (a int, b int);
insert into t1 (a, b) values (1, 1), (5, 3), (5, 2);
update t1 set a = 0 where b > 1;
delete from t1 where b > 1;
select * from t1;
select * from t1 order by a asc nulls first
select count(distinct a) from t1;
truncate table t1;
drop table t1;
Using KipSQL in code
let kipsql = Database::with_kipdb("./data").await?;
let tupes = db.run("select * from t1").await?;
Storage Support:
- KipDB
- Memory
- DDL
- Create
- Table
- Index
- Drop
- Table
- Index
- Truncate
- Create
- DQL
- Select
- Where
- Distinct
- Alias
- Aggregation: count()/sum()/avg()/min()/max()
- Subquery
- Join: Inner/Left/Right/Full Cross(x)
- Group By
- Having
- Order By
- Limit
- DML
- Insert
- Update
- Delete
- DataTypes
- Invalid
- SqlNull
- Boolean
- Tinyint
- UTinyint
- Smallint
- USmallint
- Integer
- UInteger
- Bigint
- UBigint
- Float
- Double
- Varchar
- DateTime
- Optimizer rules
- Limit Project Transpose
- Eliminate Limits
- Push Limit Through Join
- Push Limit Into Scan
- Combine Filters
- Column Pruning
- Collapse Project
- Fedomn/sqlrs: 主要参考资料,Optimizer、Executor均参考自sqlrs的设计
- systemxlabs/tinysql