diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-06-23 23:53:26 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-23 23:53:26 -0300 |
| commit | c284fcd570342c31bc21169960579a20a763e32e (patch) | |
| tree | ce7485055116d794c55090ad0978e0b3f5ff4c2a /lib/dml/ast.ml | |
| parent | b81586ee4a0543a5f9866586c78dccdd6328934a (diff) | |
| download | Sakura-c284fcd570342c31bc21169960579a20a763e32e.tar.gz Sakura-c284fcd570342c31bc21169960579a20a763e32e.zip | |
Format
Diffstat (limited to 'lib/dml/ast.ml')
| -rw-r--r-- | lib/dml/ast.ml | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/lib/dml/ast.ml b/lib/dml/ast.ml index 03e68ac..e34adb9 100644 --- a/lib/dml/ast.ml +++ b/lib/dml/ast.ml @@ -3,18 +3,17 @@ open Sexplib.Std type attr_value = string * Drl.Ast.value [@@deriving sexp] type statement = - | InsertTuple of { relation : string; attributes : attr_value list } - | InsertTuples of { relation : string; tuples : attr_value list list } - | DeleteTuple of { relation : string; attributes : attr_value list } - | Assign of { target : string; body : Drl.Ast.query } - | InsertFrom of { target : string; source : Drl.Ast.query } - | DeleteWhere of { target : string; predicate : Drl.Ast.query } - (** Binds an unqualified name to a session-scoped ephemeral relation. - The body is recomputed on each scan and never materialized; - the binding lives until [DropDefine] or a session close. - In contrast, [Assign] drains the body into an existing - stored relation. *) - | Define of { target : string; body : Drl.Ast.query } - (** Drops a [Define] binding, releasing its session-ownership pin. *) - | DropDefine of { target : string } + | InsertTuple of {relation: string; attributes: attr_value list} + | InsertTuples of {relation: string; tuples: attr_value list list} + | DeleteTuple of {relation: string; attributes: attr_value list} + | Assign of {target: string; body: Drl.Ast.query} + | InsertFrom of {target: string; source: Drl.Ast.query} + | DeleteWhere of {target: string; predicate: Drl.Ast.query} + (** Binds an unqualified name to a session-scoped ephemeral relation. The + body is recomputed on each scan and never materialized; the binding + lives until [DropDefine] or a session close. In contrast, [Assign] + drains the body into an existing stored relation. *) + | Define of {target: string; body: Drl.Ast.query} + (** Drops a [Define] binding, releasing its session-ownership pin. *) + | DropDefine of {target: string} [@@deriving sexp] |
