#!/usr/bin/env bash
set -euo pipefail

sqlite3_bin=${SQLITE3_BIN:-sqlite3}
extension_file=${EXTENSION_FILE:-target/debug/libsqlite_functions_basic}

if ! command -v "$sqlite3_bin" >/dev/null; then
    echo "SQLite CLI not found: $sqlite3_bin" >&2
    exit 1
fi

output=$(
    "$sqlite3_bin" :memory: <<SQL
.load '$extension_file'
SELECT to_camel_case('customer display_name');
SELECT murmur3_32('hello');
CREATE TABLE records(id INTEGER PRIMARY KEY, value TEXT NOT NULL);
INSERT INTO records(value) VALUES ('Alpha'), ('Beta'), ('Gamma');
CREATE INDEX records_murmur ON records(murmur3_32(value));
SELECT value FROM records
 WHERE murmur3_32(value) = murmur3_32('Beta') AND value = 'Beta';
EXPLAIN QUERY PLAN SELECT value FROM records
 WHERE murmur3_32(value) = murmur3_32('Beta') AND value = 'Beta';
SQL
)

grep -Fxq 'customerDisplayName' <<<"$output"
grep -Fxq '613153351' <<<"$output"
grep -Fxq 'Beta' <<<"$output"
grep -Fq 'USING INDEX records_murmur' <<<"$output"

echo "Extension smoke test passed: $extension_file"

