You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bill sun
f3762595a8
|
3 years ago | |
---|---|---|
aquery_parser | 3 years ago | |
docs | 3 years ago | |
engine | 3 years ago | |
msc-plugin | 3 years ago | |
msvs-py | 3 years ago | |
server | 3 years ago | |
.gitignore | 3 years ago | |
LICENSE | 3 years ago | |
Makefile | 3 years ago | |
README.md | 3 years ago | |
csv.h | 3 years ago | |
header.cxx | 3 years ago | |
mmw.cpp | 3 years ago | |
moving_avg.a | 3 years ago | |
moving_avg.csv | 3 years ago | |
nyctx100.csv | 3 years ago | |
out.cpp | 3 years ago | |
out_attempt1.cpp | 3 years ago | |
prompt.py | 3 years ago | |
q.sql | 3 years ago | |
q1.sql | 3 years ago | |
requirements.txt | 3 years ago | |
stock.a | 3 years ago | |
test.csv | 3 years ago |
README.md
AQuery++ DB
Introduction
AQuery++ Database is a cross-platform, In-Memory Column-Store Database that incorporates compiled query execution. Compiler frontend built on top of mo-sql-parsing.
Roadmap
- SQL Parser -> AQuery Parser (Front End)
- AQuery-C++ Compiler (Back End)
- Schema and Data Model
- Data acquisition/output from/to csv file
- Single table queries
- Projections and Single Table Aggregations
- Group by Aggregations
- Filters
- Order by
- Assumption
- Flatten
- Multi-table
- Join
- Subqueries
- -> Optimizing Compiler
TODO:
- C++ Meta-Programming: Elimilate template recursions as much as possible.
- IPC: Better ways to communicate between Interpreter (Python) and Executer (C++).
- Sockets? stdin/stdout capture?
Requirements
Recent version of Linux, Windows or MacOS, with recent C++ compiler that has C++17 (1z) support (e.g. gcc 6.0, MSVC 2017, clang 6.0), and python 3.6 or above.
Usage
python3 prompt.py
will launch the interactive command prompt. The server binary will be autometically rebuilt and started.
Commands:
<sql statement>
: parse sql statementf <filename>
: parse all sql statements in fileprint
: printout parsed sql statementsexec
: execute last parsed statement(s)r
: run the last generated code snippetsave <OPTIONAL: filename>
: save current code snippet. will use random filename if not specified.exit
: quit the prompt
Example:
f moving_avg.a
exec