-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: parser, binder, planner and interactive shell for bustub #257
Comments
Missed one important functionality:
|
@garrisonhess Can you point him at your BusTub branch with the DuckDB client? |
As a nice-to-have (doesn't have to come with this change or be written by you, other TAs might be able to pick it up), being able to visualize the plan tree would be helpful for students too. e.g., a former TA Ricky wrote the code to visualize B-Trees via graphviz and I think that was a major improvement in student quality of life. Something that might be nice to consider upfront as you bring in SQL. |
I can volunteer to implement the expression AST + query plan visualizer. Also, it's certainly not as ergonomic as SQL, but for fast feedback during development and prototyping, may be useful to mention CLion recently gained support for it in-editor which makes it kind of nice: Can give a comfy feedback loop compared to edit -> compile -> run, more like a scripting language 👍 |
Task list updated. |
All of the tasks are already done in this roadmap (there're still pending PRs). BusTub now has decent Postgres-dialect SQL support. Close this for now. |
I just realized that bustub doesn't have an interactive shell (or accept SQL statements) like other database systems do. From my perspective, this might make it a little bit hard for students to have a complete overview of how a relational database system looks like. Students cannot use SQL queries to test out their own changes. They have to manually construct query plans (which is prune to error!) to test the implementation of executors. Examples:
bustub/test/execution/executor_test.cpp
Lines 592 to 618 in 8ec6039
I'm thinking of introducing a very simple parser, binder and planner framework to the bustub project, and upon that, having an interactive shell. The parser, binder and planner may have very limited functionalities (e.g. don't support subqueries), but will support at least the following queries (as in the executor test):
Currently I have no idea how much code work will it take to have such binder / parser / planner / interactive shell inside bustub. I also don't expect to finish everything before the fall semester. From the discussion inside the Slack channel, cc @garrisonhess may already have some ideas on how to implement a SQLite wrapper (instead of writing our own version of every component) around bustub (But I don't know the progress. Would you please share about what you've done if you have time? Thanks!). Anyway, it would be good if we can use bustub like other database systems (e.g. SQLite) to accept SQL as input.
I'd like to bring this topic to discussion. Comments are welcomed!
The text was updated successfully, but these errors were encountered: