Thanks to visit codestin.com
Credit goes to github.com

Skip to content
forked from lingo-db/lingo-db

LingoDB: A new analytical database system that blurs the lines between databases and compilers.

License

Notifications You must be signed in to change notification settings

harish876/PipeQL

 
 

Repository files navigation

 

Github Actions Badge

LingoDB

LingoDB is a cutting-edge data processing system that leverages compiler technology to achieve unprecedented flexibility and extensibility without sacrificing performance. It supports a wide range of data-processing workflows beyond relational SQL queries, thanks to declarative sub-operators. Furthermore, LingoDB can perform cross-domain optimization by interleaving optimization passes of different domains and its flexibility enables sustainable support for heterogeneous hardware.

Using LingoDB

You can try out LingoDB through different ways:

  1. Use the hosted SQL Webinterface
  2. Use the python package: pip install lingodb
  3. Build it yourself by following the documentation

Documentation

For LingoDB's documentation, please visit the documentation website based on this github repo.

Contributing

Before contributing, please first read the contribution guidelines.

PipeQL Project Implementation

Instructions

SQL Execution (MLIR)

  • Executing the SQL Engine SELECT * Operation:
./build/lingodb-debug/run-sql ./docs/test_sql_1.sql test_dir
  • Executing the SQL Engine SELECT with Projection Operation:
./build/lingodb-debug/run-sql ./docs/test_sql_2.sql test_dir
  • Executing the SQL Engine SELECT with Where Operation:
 ./build/lingodb-debug/run-sql ./docs/test_sql_3.sql test_dir

PipeQL Execution (MLIR)

  • Executing the PipeQL Engine SELECT * Operation:
./build/lingodb-debug/pipeql-to-mlir ./docs/test_pipeql_1.sql test_dir > ./docs/pipeql1.mlir
./build/lingodb-debug/run-mlir ./docs/pipeql1.mlir test_dir
  • Executing the PipeQL Engine SELECT with Projection Operation:
./build/lingodb-debug/pipeql-to-mlir ./docs/test_pipeql_2.sql test_dir > ./docs/pipeql2.mlir
./build/lingodb-debug/run-mlir ./docs/pipeql2.mlir test_dir
  • Executing the PipeQL Engine SELECT with Where Operation:
./build/lingodb-debug/pipeql-to-mlir ./docs/test_pipeql_3.sql test_dir > ./docs/pipeql3.mlir
./build/lingodb-debug/run-mlir ./docs/pipeql3.mlir test_dir

PipeQL Execution (Interpreted)

  • Executing the PipeQL Engine SELECT * Operation:
./build/lingodb-debug/query-table test_dir "FROM users |> SELECT *"
  • Executing the PipeQL Engine SELECT with Projection Operation:
 ./build/lingodb-debug/query-table test_dir "FROM users |> SELECT name,age,email"
  • Executing the PipeQL Engine SELECT with Where Operation:
./build/lingodb-debug/query-table test_dir "FROM users |> SELECT * |> WHERE age > 18"

Results

Execution times

TODO: Update

Comilation times

Operation Description SQL Example PipeQL Example SQL Parser PipeQL Parser
SELECT * Retrieves all columns from the specified table SELECT * FROM users FROM users |> SELECT * 3,478.8 4,311
SELECT with Projection Retrieves specific columns from the table SELECT name, email FROM users FROM users |> SELECT name,email 3,472.4 4,564.8
SELECT with WHERE Filters rows based on specified conditions SELECT * FROM users WHERE age > 18 FROM users |> SELECT name,email |> WHERE age > 18 3,764.8 5,824.6

About

LingoDB: A new analytical database system that blurs the lines between databases and compilers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 86.6%
  • MLIR 7.6%
  • CMake 2.1%
  • Python 1.7%
  • C 0.8%
  • Shell 0.7%
  • Other 0.5%