{"id":13671772,"url":"https://github.com/Fedomn/sqlrs","last_synced_at":"2025-04-27T18:31:44.112Z","repository":{"id":40686256,"uuid":"486620053","full_name":"Fedomn/sqlrs","owner":"Fedomn","description":"sqlrs is an in-process sql query engine","archived":false,"fork":false,"pushed_at":"2023-01-07T11:51:10.000Z","size":581,"stargazers_count":108,"open_issues_count":11,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-02T07:22:37.082Z","etag":null,"topics":["embedded-database","olap","query-engine","rust","sql"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fedomn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-28T14:06:48.000Z","updated_at":"2024-12-22T03:11:58.000Z","dependencies_parsed_at":"2023-02-07T02:15:32.382Z","dependency_job_id":null,"html_url":"https://github.com/Fedomn/sqlrs","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedomn%2Fsqlrs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedomn%2Fsqlrs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedomn%2Fsqlrs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fedomn%2Fsqlrs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fedomn","download_url":"https://codeload.github.com/Fedomn/sqlrs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251187288,"owners_count":21549614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["embedded-database","olap","query-engine","rust","sql"],"created_at":"2024-08-02T09:01:18.298Z","updated_at":"2025-04-27T18:31:42.192Z","avatar_url":"https://github.com/Fedomn.png","language":"Rust","readme":"# sqlrs\n\nsqlrs is an in-process sql query engine modeled off [duckdb](https://github.com/duckdb/duckdb) in Rust\n\n- The goal of this project is to build a embedded in-process sql query engine for OLAP workloads.\n- It leverages the power of Rust ecosystem and Apache Arrow.\n- It achieved columnar-vectorized execution engine.\n- It will support pipeline parallelism execution in the future.\n\n🚧 The project is actively developing a new planner V2 that inspired by DuckDB, and will replace the planner v1 in the future.🚧 \n\n# SQL demo\n\ncurrently, the following SQL statements are supported, execute the commands into interactive mode to test them:\n\n- `make run`: run sqlrs in planner_v1\n- `make run_v2`: run sqlrs in planner_v2\n\n```sql\n-- supported in Roadmap 0.1 (planner_v1)\nselect first_name from employee where last_name = 'Hopkins';\n\n-- supported in Roadmap 0.2 (planner_v1)\nselect sum(salary+1), count(salary), max(salary) from employee where id \u003e 1;\nselect state, count(state), sum(salary) from employee group by state;\n-- load csv table\n\\load csv department ./tests/csv/department.csv\n\\load csv employee ./tests/csv/employee.csv\n-- show tables\n\\dt\n\n-- supported in Roadmap 0.3 (planner_v1)\nselect id from employee order by id desc offset 2 limit 1;\nselect * from employee left join state on employee.state=state.state_code and state.state_name!='California State';\n\n-- supported in Roadmap 0.4 (planner_v1)\n-- explain plan tree\n\\explain select a from t1;\n-- Heuristic Optimizer that includes rules such as: Column pruning, Predicates pushdown, Limit pushdown etc.\n\n-- supported in Roadmap 0.5 (planner_v1)\n-- distinct\nselect distinct state from employee;\nselect count(distinct(b)) from t2;\n-- alias\nselect a as c1 from t1 order by c1 desc limit 1;\nselect t.a from t1 t where t.b \u003e 1 order by t.a desc limit 1;\n-- uncorrelated scalar subquery\nselect t.* from (select * from t1 where a \u003e 1) t where t.b \u003e 7;\nselect a, (select max(b) from t1) max_b from t1;\n\n\n-- supported in Roadmap 0.6 (planner_v2)\n-- create and insert table in memory\ncreate table t1(v1 int, v2 int, v3 int);\ncreate table t2 as select * from read_csv('t2.csv');\ninsert into t1 values (0, 4, 1), (1, 5, 2);\nselect * from t1;\n-- select only expressions\nselect 1, 2.3, '😇', true, null;\n-- pragma commands\nshow tables;\ndescribe t1;\n-- previous SQL statements\nselect v1+1 as a from t1 where a \u003e= 2;\nselect v1 from t1 limit 2 offset 1;\n-- table functions\nselect * from sqlrs_tables();\nselect * from sqlrs_columns();\nselect * from read_csv('t1.csv');\nselect * from read_csv('t1.csv', header=\u003etrue, delim=\u003e',');\nselect * from 't1.csv';\n-- copy\ncopy t1 from 't1.csv' ( DELIMITER '|', HEADER false);\n-- date and interval\nselect date '1998-12-01' - interval '1' month;\nselect interval '1' year + date '1998-12-01';\n```\n\n\n# Roadmap\n\nHigh level description:\n\n- Roadmap 0.1: Build a basic SQL query on CSV storage\n- Roadmap 0.2: Support aggregation operators, e2e testing framework and interactive mode\n- Roadmap 0.3: Support limit, order, and join operators\n- Roadmap 0.4: Introduce a Heuristic Optimizer and common optimization rules\n- Roadmap 0.5: Support distinct, alias, and uncorrelated scalar subquery\n- Roadmap 0.6: New planner_v2 highly inspired by DuckDB\n\nPlease see [Roadmap](https://github.com/Fedomn/sqlrs/issues?q=roadmap) for more information of implementation steps\n\n\n# Deep Dive Series Blog (in Chinese)\n\n- On my [blog](https://frankma.me/categories/sqlrs/)\n- On [zhihu](https://www.zhihu.com/column/c_1554474699211628544)\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFedomn%2Fsqlrs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFedomn%2Fsqlrs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFedomn%2Fsqlrs/lists"}