Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tymorrow/qo
A naive SQL query plan optimizer [needs cleanup]
https://github.com/tymorrow/qo
optimization parse query-tree sql sql-query
Last synced: 5 days ago
JSON representation
A naive SQL query plan optimizer [needs cleanup]
- Host: GitHub
- URL: https://github.com/tymorrow/qo
- Owner: tymorrow
- Created: 2015-12-13T21:40:29.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2015-12-22T13:04:39.000Z (almost 9 years ago)
- Last Synced: 2024-03-15T18:21:49.601Z (8 months ago)
- Topics: optimization, parse, query-tree, sql, sql-query
- Language: C#
- Homepage:
- Size: 1.09 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Qo
Qo is a naive, visualizer of query tree optimization.
I created it for a database class project.The specifications of the project were as follows:
- Parse an SQL query (string) to some intermediary representation
- Convert it to its Relational Algebra (RA) equivalent
- Convert the RA to a query tree
- Apply numerous optimization rules to the query tree
- Output the query tree after reach stage of optimizationQo consists of a web application (`Qo.Web`) and a parsing library (`Qo.Parsing`).
The web app allows me to utilize D3.js for query tree rendering while enjoying the benefits of C# on the backend.
I started Qo as a desktop app and tried rendering the query trees in the app and by outputing DOT files.
Neither method was as clean as doing it in the browser with D3.js.
Demoing this to my professor was also much easier because he didn't have to download an executable.The parsing library contains all of the intermediary code for working with SQL, RA, query trees, and optimization.