← Files SQL CopilotARCHIVED FILE
scripts/sql_fixture_checker.py
4.94 KB · Nov 4, 2026 · 00:11 UTC
#!/usr/bin/env python3
'''Synthetic SQLite learning fixture: no live DB or network access.
This is not a parser, authorization engine or production SQL validator.
'''
import json
import re
import sqlite3
from typing import Any
def fixture_connection() -> sqlite3.Connection:
c = sqlite3.connect(':memory:')
c.executescript('''
CREATE TABLE orders(order_id INTEGER PRIMARY KEY, customer_id TEXT NOT NULL,
order_total REAL NOT NULL, order_ts TEXT NOT NULL);
CREATE TABLE order_items(order_id INTEGER, item_id INTEGER, line_total REAL NOT NULL);
CREATE TABLE status_history(order_id INTEGER, status TEXT, changed_ts TEXT, event_id INTEGER);
CREATE TABLE blacklisted(account TEXT);
CREATE TABLE accounts(account TEXT);
CREATE TABLE cdc(business_key TEXT, source_version INTEGER,
event_ts TEXT, event_id INTEGER, value TEXT);
INSERT INTO orders VALUES
(1, 'C001', 100.0, '2026-01-01T00:00:00'),
(2, 'C002', 75.0, '2026-01-31T23:59:59'),
(3, 'C003', 100.0, '2026-02-01T00:00:00');
INSERT INTO order_items VALUES
(1, 1, 60.0),(1, 2, 40.0),(2, 1, 75.0),
(3, 1, 20.0),(3, 2, 30.0),(3, 3, 50.0);
INSERT INTO status_history VALUES
(1,'created','2026-01-01T00:00:00',101),
(1,'paid','2026-01-01T01:00:00',102),
(1,'shipped','2026-01-01T01:00:00',103),
(2,'paid','2026-01-31T23:59:59',104);
INSERT INTO blacklisted VALUES ('A'),(NULL);
INSERT INTO accounts VALUES ('A'),('B'),('C');
INSERT INTO cdc VALUES
('K1',1,'2026-01-01T12:00:00',10,'old'),
('K1',2,'2026-01-01T13:00:00',11,'new'),
('K1',2,'2026-01-01T13:00:00',12,'winner'),
('K2',1,'2026-01-01T15:00:00',13,'only');
''')
return c
def join_fanout(c: sqlite3.Connection) -> dict[str, Any]:
source = c.execute('SELECT COUNT(*), SUM(order_total) FROM orders').fetchone()
joined = c.execute('''
SELECT COUNT(*), SUM(o.order_total)
FROM orders o JOIN order_items i USING(order_id)
''').fetchone()
corrected = c.execute('SELECT SUM(line_total) FROM order_items').fetchone()[0]
return {'source_rows': source[0], 'joined_rows': joined[0],
'source_total': source[1], 'incorrect_joined_total': joined[1],
'correct_item_total': corrected}
def latest_status(c: sqlite3.Connection) -> list[tuple]:
return c.execute('''
WITH ranked AS (
SELECT order_id, status,
ROW_NUMBER() OVER (
PARTITION BY order_id
ORDER BY changed_ts DESC, event_id DESC) AS rn
FROM status_history
)
SELECT order_id, status FROM ranked WHERE rn=1 ORDER BY order_id
''').fetchall()
def null_filter(c: sqlite3.Connection) -> dict[str, list[str]]:
broken = c.execute('''SELECT account FROM accounts
WHERE account NOT IN (SELECT account FROM blacklisted)''').fetchall()
fixed = c.execute('''SELECT a.account FROM accounts a
WHERE NOT EXISTS (SELECT 1 FROM blacklisted b WHERE b.account=a.account)
ORDER BY a.account''').fetchall()
return {'not_in': [r[0] for r in broken], 'not_exists': [r[0] for r in fixed]}
def half_open_window(c: sqlite3.Connection) -> list[int]:
return [r[0] for r in c.execute('''
SELECT order_id FROM orders
WHERE order_ts >= '2026-01-01T00:00:00'
AND order_ts < '2026-02-01T00:00:00'
ORDER BY order_id
''').fetchall()]
def cdc_winners(c: sqlite3.Connection) -> list[tuple]:
return c.execute('''
WITH ranked AS (
SELECT business_key, value,
ROW_NUMBER() OVER (
PARTITION BY business_key
ORDER BY source_version DESC, event_ts DESC, event_id DESC) rn
FROM cdc
)
SELECT business_key, value FROM ranked WHERE rn=1 ORDER BY business_key
''').fetchall()
def advisory_sql_flags(sql: str) -> list[str]:
'''Very limited advisory signal only; never use to authorize database execution.'''
flags=[]
if re.search(r'\b(?:DELETE|UPDATE|MERGE|TRUNCATE|DROP|ALTER|GRANT|REVOKE)\b', sql, re.I):
flags.append('potentially_mutating_or_privilege_related')
if re.search(r'\bDELETE\s+FROM\s+\w+\s*;?\s*$', sql.strip(), re.I):
flags.append('possible_unqualified_delete')
if re.search(r'\bSELECT\s+\*', sql, re.I):
flags.append('select_all_projection_review')
return flags
def report() -> dict[str, Any]:
with fixture_connection() as conn:
return {'fixture_type':'sqlite_in_memory_only',
'fanout':join_fanout(conn), 'latest_status':latest_status(conn),
'null_filter':null_filter(conn), 'half_open_window':half_open_window(conn),
'cdc_winners':cdc_winners(conn),
'limitations':'Does not establish correctness on non-SQLite target engines or user data.'}
if __name__ == '__main__':
print(json.dumps(report(),indent=2))
SHA-256: 38dfd918a900b4c056b382fb60796c18fe859d516f053f7e76a30545ea2e89d3