Rel_sql.DIALECTSQL satements in a given dialect.
This does not always try to abstract SQL per se but rather what we want to do with the SQL. For example DIALECT.schema_changes: in SQLite most ALTER TABLE statements are unsupported so the returned statement implement the sequence of operations that allow to mimic them in bulk.
val insert_into :
?or_action:insert_or_action ->
?schema:Rel.Schema.name ->
?ignore:'r Rel.Col.def list ->
'r Rel.Table.t ->
'r ->
unit Stmt.tSee Rel_sql.insert_into.
val insert_into_cols :
?schema:Rel.Schema.name ->
?ignore:'r Rel.Col.def list ->
'r Rel.Table.t ->
'r Rel.Col.value list ->
unit Stmt.tval update :
?schema:Rel.Schema.name ->
'r Rel.Table.t ->
set:'r Rel.Col.value list ->
where:'r Rel.Col.value list ->
unit Stmt.tSee Rel_sql.update.
val delete_from :
?schema:string ->
'r Rel.Table.t ->
where:'r Rel.Col.value list ->
unit Stmt.tSee Rel_sql.delete_from.
val create_table :
?schema:Rel.Schema.name ->
?if_not_exists:unit ->
'r Rel.Table.t ->
unit Stmt.tSee Rel_sql.create_table.
val drop_table :
?schema:Rel.Schema.name ->
?if_exists:unit ->
'r Rel.Table.t ->
unit Stmt.tSee Rel_sql.drop_table.
val create_index :
?schema:Rel.Schema.name ->
?if_not_exists:unit ->
'r Rel.Table.t ->
'r Rel.Table.Index.t ->
unit Stmt.tSee Rel_sql.create_index.
val drop_index :
?schema:Rel.Schema.name ->
?if_exists:unit ->
'r Rel.Table.t ->
'r Rel.Table.Index.t ->
unit Stmt.tSee Rel_sql.drop_index.
val schema_changes :
?schema:Rel.Schema.name ->
Rel.Schema.change list ->
bool * unit Stmt.t list