CARGO ?= cargo
WASM_PACK ?= wasm-pack
SQLLOGIC_PATH ?= tests/slt/**/*.slt
PYO3_PYTHON ?= /usr/bin/python3.12
TPCC_MEASURE_TIME ?= 15
TPCC_NUM_WARE ?= 1
TPCC_PPROF_OUTPUT ?= /tmp/tpcc_lmdb.svg
TPCC_SQLITE_PROFILE ?= balanced
.PHONY: test test-python test-wasm test-slt test-all wasm-build check tpcc tpcc-kitesql-rocksdb tpcc-kitesql-lmdb tpcc-lmdb-flamegraph tpcc-sqlite tpcc-sqlite-practical tpcc-sqlite-balanced tpcc-dual cargo-check build wasm-examples native-examples fmt clippy
test:
$(CARGO) test --all
test-python:
PYO3_PYTHON=$(PYO3_PYTHON) $(CARGO) test --features python test_python_
cargo-check:
$(CARGO) check
build:
$(CARGO) build
wasm-build:
$(WASM_PACK) build --release --target nodejs
test-wasm:
$(WASM_PACK) test --node -- --package kite_sql --lib
test-slt:
$(CARGO) run -p sqllogictest-test -- --path '$(SQLLOGIC_PATH)'
test-all: test test-wasm test-slt test-python
fmt:
$(CARGO) fmt --all -- --check
clippy:
$(CARGO) clippy --all-targets --all-features -- -D warnings
check: fmt clippy
tpcc: tpcc-kitesql-lmdb
tpcc-kitesql-rocksdb:
$(CARGO) run -p tpcc --release -- --backend kitesql-rocksdb
tpcc-kitesql-lmdb:
$(CARGO) run -p tpcc --release -- --backend kitesql-lmdb
tpcc-lmdb-flamegraph:
CARGO_PROFILE_RELEASE_DEBUG=true $(CARGO) run -p tpcc --release --features pprof -- --backend kitesql-lmdb --measure-time $(TPCC_MEASURE_TIME) --num-ware $(TPCC_NUM_WARE) --pprof-output $(TPCC_PPROF_OUTPUT)
tpcc-sqlite:
$(CARGO) run -p tpcc --release -- --backend sqlite --sqlite-profile $(TPCC_SQLITE_PROFILE) --path kite_sql_tpcc.sqlite
tpcc-sqlite-practical:
$(MAKE) tpcc-sqlite TPCC_SQLITE_PROFILE=practical
tpcc-sqlite-balanced:
$(MAKE) tpcc-sqlite TPCC_SQLITE_PROFILE=balanced
tpcc-dual:
$(CARGO) run -p tpcc --release -- --backend dual --measure-time 60
wasm-examples:
node examples/wasm_hello_world.test.mjs
node examples/wasm_index_usage.test.mjs
native-examples:
$(CARGO) run --example hello_world
$(CARGO) run --example transaction