Package-level declarations
Types
A DELETE under construction. A WHERE is required; emptying a table is written with rawQuery.
An INSERT under construction. value and values declare a column together with its @name placeholder in VALUES, so the two lists cannot drift; valueExpression puts SQL there instead - now(), DEFAULT, a subselect. The values are supplied at the terminal.
The ON CONFLICT clause of an InsertQuery, configured inside InsertQuery.onConflict. The target is optional; an action is required.
Which value an identity column takes where an INSERT supplies one: OVERRIDING SYSTEM VALUE or OVERRIDING USER VALUE.
SQL written by hand, with @name parameters and the terminals every builder has, for a statement better written whole. Its SQL comes back out of toSql.
The same query with every terminal returning a DataResult instead of throwing, as if wrapped in dbResult. Reached by RunnableQuery.asResult.
A query that can be run: the base of every builder and of RawQuery, carrying the terminal methods.
A SELECT under construction. Every clause takes SQL and passes it through; the builder supplies the keywords and their order, and leaves out a clause given null or blank, so a filter assembled at runtime can go straight in.
An UPDATE under construction. setValue and setValues assign from @name parameters supplied at the terminal; setExpression assigns SQL, which may read the column: setExpression("quantity", "quantity - 1").
Functions
Appends a clause where its body carries anything, so where(null) and where("") leave no WHERE.
Refuses a query the builder cannot render, naming what is missing, as INVALID_ARGUMENT - which the result style throws rather than returns.
Pairs this SQL with the parameters it names, given without the leading @.