import { Session } from 'chdb-bun';
// 永続ストレージでセッションを作成する
const sess = new Session('./chdb-bun-tmp');
try {
// データベースとテーブルを作成する
sess.query(`
CREATE DATABASE IF NOT EXISTS mydb;
CREATE TABLE IF NOT EXISTS mydb.users (
id UInt32,
name String,
email String
) ENGINE = MergeTree() ORDER BY id
`, "CSV");
// データを挿入する
sess.query(`
INSERT INTO mydb.users VALUES
(1, 'Alice', 'alice@example.com'),
(2, 'Bob', 'bob@example.com'),
(3, 'Charlie', 'charlie@example.com')
`, "CSV");
// データをクエリする
const users = sess.query("SELECT * FROM mydb.users ORDER BY id", "JSON");
console.log("Users:", users);
// カスタム関数を作成して使用する
sess.query("CREATE FUNCTION IF NOT EXISTS hello AS () -> 'Hello chDB'", "CSV");
const greeting = sess.query("SELECT hello() as message", "Pretty");
console.log(greeting);
// 集計クエリ
const stats = sess.query(`
SELECT
COUNT(*) as total_users,
MAX(id) as max_id,
MIN(id) as min_id
FROM mydb.users
`, "JSON");
console.log("Statistics:", stats);
} finally {
// リソースを解放するために必ずセッションをクリーンアップする
sess.cleanup(); // データベースファイルを削除する
}