Building LPTS
July 2, 2026 ยท View on GitHub
Prerequisites
- git with submodule support
- cmake
- ninja for faster builds
- A C++ compiler supported by DuckDB
Clone
git clone --recurse-submodules https://github.com/cwida/lpts.git
cd lpts
If you already cloned without submodules, run:
git submodule update --init --recursive
Build
GEN=ninja make # release build
make # release build without ninja
make debug # debug build
The release build produces:
build/release/duckdb
build/release/test/unittest
build/release/extension/lpts/lpts.duckdb_extension
build/release/extension/lpts/lpts_sqlstorm_benchmark
Load The Extension
Use community-extension loading for installed releases:
INSTALL lpts FROM community;
LOAD lpts;
Use the local build path while developing:
build/release/duckdb -unsigned
LOAD 'build/release/extension/lpts/lpts.duckdb_extension';
Run Tests
make unittest # LPTS's own SQLLogicTests (fast)
make test # unittest + the DuckDB-corpus coverage gate (~4 min)
See test.md for conventions and the coverage gate.
Format Code
make format-fix
CLion
Open duckdb/CMakeLists.txt as the CLion project, then change the project root
to the LPTS repository root.
For each CMake profile, set the build directory to ../build/<profile> and add
the extension configuration flag:
-DDUCKDB_EXTENSION_CONFIGS=<path_to_lpts>/extension_config.cmake
Use the unittest target for SQLLogicTests. To run only LPTS tests, pass a
single test file such as:
test/sql/select.test
Updating DuckDB
The DuckDB version is pinned via the duckdb and extension-ci-tools
submodules. To update to a new release:
cd duckdb && git fetch --tags && git checkout v1.X.0
cd ../extension-ci-tools && git fetch && git checkout origin/v1.X.0
cd ..
git add duckdb extension-ci-tools
git commit -m "Bump DuckDB to v1.X.0"
Replace v1.X.0 with the target version tag.