We base our execution engine on CWI’s latest analytic database project DuckDB.

Setup local repo

The very first step has been to fork the DuckDB github repository through the Github web interface.

Next, we need to setup our local fork to be able to follow updates from the main repository:

git clone git@github.com:informagi/duckdb.git
cd duckdb
git remote add upstream git@github.com:cwida/duckdb.git

Installation

Preliminaries

Install clang as the C/C++ compiler:

sudo dnf install clang

Ensure clang is used by default:

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

Install sqlite-devel:

sudo dnf install sqlite-devel

Build from source

cd duckdb
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

Contributing your changes

Synching if you did not make any changes:

git fetch upstream
git pull upstream master

Synching while merging your own changes:

git fetch upstream
git checkout master
git merge upstream/master

See also the Github docs on synching a fork. To actually contribute, push your changes and submit a pull request across forks through the Github interface.

Acknowledgements

Funding from the NWO SQIREL-GRAPHS project, CWI, and Radboud’s iCIS institute.