AQuery Database
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 b3f9f28432
added monetdb connector
2 years ago
aquery_parser q 3 years ago
docs C++ infrastructure 3 years ago
engine reconstruct 3 years ago
msc-plugin improvements on output 3 years ago
msvs-py improvements on output 3 years ago
reconstruct added monetdb connector 2 years ago
server added monetdb connector 2 years ago
.gitignore update 3 years ago
.test.cpp.swp added monetdb connector 2 years ago
LICENSE Initial commit (mo_sql_parsing) 3 years ago
Makefile bug fix 3 years ago
README.md server 2 3 years ago
csv.h q 3 years ago
dbconn.py server 2 3 years ago
header.cxx q 3 years ago
index.html improvements on output 3 years ago
mmw.cpp Group by 3 years ago
moving_avg.a bug fixes 3 years ago
moving_avg.csv Order by, on-demand assumptions, bugfixes 3 years ago
nyctx100.csv C++ infrastructure 3 years ago
out.cpp bug fix 3 years ago
out_attempt1.cpp Bug fixes on assumptions. 3 years ago
prompt.py added monetdb connector 2 years ago
q.sql Added multi-query support 3 years ago
q1.sql Bug fixes on assumptions. 3 years ago
requirements.txt update 3 years ago
server.exe server 2 3 years ago
stock.a Bug fixes on assumptions. 3 years ago
test.csv C++ infrastructure 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 statement
  • f <filename>: parse all sql statements in file
  • print: printout parsed sql statements
  • exec: execute last parsed statement(s)
  • r: run the last generated code snippet
  • save <OPTIONAL: filename>: save current code snippet. will use random filename if not specified.
  • exit: quit the prompt

Example:

f moving_avg.a
exec