generic/sql-update-sig.ss
#lang scheme/signature

; Creating, updating and dropping tables and records.
;
; DBMSs vary greatly in their support for the different features of Snooze: the SQL
; produced by these procedures will be quite DBMS specific.
;
; Note that a single Snooze entity may map to several tables (and potentially other
; structures) in a database. The create-sql procedure returns a single SQL string that
; creates all of the necessary structures in the correct order. The drop-sql procedure
; returns SQL to drop all of the structures created by create-sql.

; entity -> string
create-sql

; entity -> string
drop-sql       

; persistent-struct [boolean] -> string
;
; Returns the SQL needed to insert a persistent-struct in the database.
; Allocates an ID and revision number automatically by default. The optional
; boolean argument can be set to #t to allocate the ID and revision already
; present in the struct. This feature is used by the audit trail system.
insert-sql

; (listof persistent-struct) [boolean] -> (listof string)
;
; Returns the SQL needed to insert a list of persistent-structs in the database.
; Allocates IDs and revision numbers automatically by default. The optional
; boolean argument can be set to #t to allocate the IDs and revisions already
; present in the struct. This feature is used by the audit trail system.
insert-multiple-sql

; persistent-struct -> string
update-sql

; guid -> string
delete-sql