Future Ideas

Generated DDL

Is it worth it to do simple table definitions with dataclasses?

@dataclass
class Teacher:
    id: int = field(metadata=PRIMARY_KEY)
    name: str
    classroom: str = field(metadata=UNIQUE)

@dataclass
class Student:
    id: int = field(metadata=PRIMARY_KEY)
    name: str
    teacher_id: int = field(metadata=references(Teacher.id))

It could offer the nice default of a “strict” table.

Query Building

If we have the above, how easy would it be to get something like sqlalchemy’s query building without it getting too complex?

User Functions

  1. Make it check how many args it takes so you can’t accidentally give the wrong answer.

  2. Optionally register user functions for almost every string method, because it’ll have nicer semantics / familiarity than sqlite’s functions.

Transaction Decorator

Ensure that a function/method holds open a savepoint for the whole body. Nice to reduce additional nesting– if it’s a method and not a function, you’re already 3 levels deep before writing any db code!

Real-World Usecase

We need a nice example app!