sqlite-functions 0.1.1

A small toolkit for authoring Rust functions for SQLite
Documentation
$ErrorActionPreference = "Stop"

$sqlite3Bin = if ($env:SQLITE3_BIN) { $env:SQLITE3_BIN } else { "sqlite3" }
$extensionFile = if ($env:EXTENSION_FILE) { $env:EXTENSION_FILE } else { "target/debug/sqlite_functions_basic.dll" }
$sql = @"
.load '$extensionFile'
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';
"@

$output = $sql | & $sqlite3Bin ":memory:"
if ($LASTEXITCODE -ne 0) { throw "SQLite extension test failed" }
$text = $output -join "`n"

foreach ($expected in @("customerDisplayName", "613153351", "Beta", "USING INDEX records_murmur")) {
    if (-not $text.Contains($expected)) { throw "Missing expected output: $expected`n$text" }
}

Write-Host "Extension smoke test passed: $extensionFile"