import sqlrite
def main() -> None:
with sqlrite.connect(":memory:") as conn:
cur = conn.cursor()
cur.execute(
"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)"
)
cur.execute("INSERT INTO users (name, age) VALUES ('alice', 30)")
cur.execute("INSERT INTO users (name, age) VALUES ('bob', 25)")
cur.execute("INSERT INTO users (name, age) VALUES ('carol', 40)")
cur.execute("SELECT id, name, age FROM users")
print("Columns:", [col[0] for col in cur.description])
print("\nAll users:")
for row in cur:
uid, name, age = row
print(f" {uid}: {name} ({age})")
cur.execute("BEGIN")
cur.execute("INSERT INTO users (name, age) VALUES ('phantom', 99)")
cur.execute("SELECT id FROM users")
print(f"\nMid-transaction row count: {len(cur.fetchall())}")
conn.rollback()
cur.execute("SELECT id FROM users")
print(f"Post-rollback row count: {len(cur.fetchall())}")
if __name__ == "__main__":
main()