about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTheofilos Augoustis <theofilos.augoustis@gmail.com>2025-11-03 10:03:29 +0000
committerTheofilos Augoustis <theofilos.augoustis@gmail.com>2025-11-11 08:56:04 +0000
commit6d8b8a3f141fdb9de063bdd57efa9e0d660b12a8 (patch)
treea1f71b5dc72bd7cb82ccf049ab3e4cf0f9025ccf
parentbff3d0d6ab7c14926f428dadf1d63198230ba192 (diff)
downloadfocaccia-6d8b8a3f141fdb9de063bdd57efa9e0d660b12a8.tar.gz
focaccia-6d8b8a3f141fdb9de063bdd57efa9e0d660b12a8.zip
Add support for basic SQLite workloads ta/sqlite
-rw-r--r--flake.nix5
-rw-r--r--reproducers/sqlite.basic.sql50
2 files changed, 55 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
index b560660..865d7d2 100644
--- a/flake.nix
+++ b/flake.nix
@@ -282,6 +282,10 @@
 		musl-minimal-redis-nocheck = musl-minimal-pkgs.pkgsStatic.redis.overrideAttrs (old: {
 			doCheck = false;
 		});
+
+		musl-minimal-sqlite-nocheck = musl-minimal-pkgs.pkgsStatic.sqlite.overrideAttrs (old: {
+			doCheck = false;
+		});
 	in rec {
 		# Default package just builds Focaccia
 		packages = rec {
@@ -437,6 +441,7 @@
 					musl-pkgs.gcc
 					musl-pkgs.pkg-config
 					musl-minimal-redis-nocheck
+					musl-minimal-sqlite-nocheck
 					musl-minimal-pkgs.pkgsStatic.gzip
 					musl-minimal-pkgs.pkgsStatic.file
 				];
diff --git a/reproducers/sqlite.basic.sql b/reproducers/sqlite.basic.sql
new file mode 100644
index 0000000..86c2b8c
--- /dev/null
+++ b/reproducers/sqlite.basic.sql
@@ -0,0 +1,50 @@
+-- Create a new table
+CREATE TABLE users (
+  id INTEGER PRIMARY KEY,
+  name TEXT NOT NULL,
+  age INTEGER,
+  email TEXT UNIQUE
+);
+
+-- Insert some rows
+INSERT INTO users (name, age, email)
+VALUES
+  ('Alice', 30, 'alice@example.com'),
+  ('Bob', 25, 'bob@example.com'),
+  ('Charlie', 35, 'charlie@example.com');
+
+-- Query all rows
+SELECT * FROM users;
+
+-- Filter results
+SELECT name, age FROM users WHERE age > 28;
+
+-- Update a row
+UPDATE users SET age = 31 WHERE name = 'Alice';
+
+-- Delete a row
+DELETE FROM users WHERE name = 'Bob';
+
+-- Add a new column
+ALTER TABLE users ADD COLUMN city TEXT;
+
+-- Update new column values
+UPDATE users SET city = 'Berlin' WHERE name = 'Alice';
+UPDATE users SET city = 'Paris' WHERE name = 'Charlie';
+
+-- Aggregate query
+SELECT city, COUNT(*) AS user_count FROM users GROUP BY city;
+
+-- Create an index for faster lookups
+CREATE INDEX idx_users_email ON users(email);
+
+-- Show table schema
+.schema users;
+
+-- Export query results to CSV (in sqlite3 CLI)
+.headers on
+.mode csv
+.output users.csv
+SELECT * FROM users;
+.output stdout
+