mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-21 18:24:20 +01:00
40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# TPC-H benchmark script
|
|
|
|
REPO_ROOT=$(git rev-parse --show-toplevel)
|
|
RELEASE_BUILD_DIR="$REPO_ROOT/target/release"
|
|
TPCH_DIR="$REPO_ROOT/perf/tpc-h"
|
|
DB_FILE="$TPCH_DIR/TPC-H.db"
|
|
|
|
# If sqlite3 doesn't exist, bail
|
|
if ! command -v sqlite3 >/dev/null 2>&1; then
|
|
echo "Error: sqlite3 is not installed"
|
|
exit 1
|
|
fi
|
|
|
|
# Build Limbo in release mode if it's not already built
|
|
if [ ! -f "$RELEASE_BUILD_DIR/tursodb" ]; then
|
|
echo "Building Limbo..."
|
|
cargo build --bin tursodb --release
|
|
fi
|
|
|
|
# Download the TPC-H database if it doesn't exist
|
|
DB_URL="https://github.com/lovasoa/TPCH-sqlite/releases/download/v1.0/TPC-H.db"
|
|
if [ ! -f "$DB_FILE" ]; then
|
|
echo "Downloading TPC-H database..."
|
|
if command -v wget >/dev/null 2>&1; then
|
|
wget -O "$DB_FILE" --no-verbose "$DB_URL"
|
|
elif command -v curl >/dev/null 2>&1; then
|
|
curl -sL -o "$DB_FILE" "$DB_URL"
|
|
else
|
|
echo "Error: Neither wget nor curl is available"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo "Using existing TPC-H.db file"
|
|
fi
|
|
|
|
# Run the benchmark
|
|
echo "Running TPC-H benchmark..."
|
|
"$TPCH_DIR/run.sh"
|