Statement Support
tonic matches statements to action classes before execution. Unsupported actions are rejected before a session opens.
Action Matrix
Section titled “Action Matrix”| Action | Postgres | Snowflake | SQLite | MySQL |
|---|---|---|---|---|
select | yes | yes | yes | yes |
insert | yes | yes | yes | yes |
update | yes | yes | yes | yes |
delete | yes | yes | yes | yes |
merge | yes | yes | no | no |
replace | no | no | yes | yes |
show | yes | yes | no | yes |
describe | no | yes | no | yes |
explain | yes | yes | yes | yes |
values | yes | yes | yes | yes |
call | yes | yes | no | yes |
transaction | yes | yes | yes | yes |
Backend support means tonic authorizes and forwards that class of statement. The database can still return native syntax or version errors for unsupported server details.
Special Cases
Section titled “Special Cases”RETURNING does not turn a write into select.
insert into users (email) values ('a@example.com') returning id;This is kind=query and action=insert.
WITH is inspected for nested data-modifying statements.
with deleted as (delete from jobs where done returning id)select count(*) from deleted;This requires both delete and select.
EXPLAIN requires the explain action plus the inner statement action when recognized.
Transaction Action
Section titled “Transaction Action”These map to action=transaction:
beginstart transactioncommitrollbackrollback to ...savepoint ...release savepoint ...