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