aboutsummaryrefslogtreecommitdiffstats
path: root/lib/nt_ffi.ml
diff options
context:
space:
mode:
authorEstevan Castilho <tevo@riajuu.net>2026-06-04 02:17:34 +0000
committerEstevan Castilho <tevo@riajuu.net>2026-06-13 00:28:12 +0000
commited1c73f5a05d9630c1bd1216d97d38b97f23bbc6 (patch)
tree9b1f2cd581a742f3ea1ee55fa565ba24f53ebb83 /lib/nt_ffi.ml
parentbf23291e86fc2114ebad38f9493f0a02a4199fb8 (diff)
downloadSakura-proper-joins.tar.gz
Sakura-proper-joins.zip
Also send the attributes to join on over to the NT sideproper-joins
Diffstat (limited to 'lib/nt_ffi.ml')
-rw-r--r--lib/nt_ffi.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/nt_ffi.ml b/lib/nt_ffi.ml
index 5937375..33369b1 100644
--- a/lib/nt_ffi.ml
+++ b/lib/nt_ffi.ml
@@ -104,6 +104,7 @@ type plan_args_join
let plan_args_join : plan_args_join structure typ = structure "plan_args_join"
let paj_left = field plan_args_join "paj_left" (ptr void)
let paj_right = field plan_args_join "paj_right" (ptr void)
+let paj_attrs = field plan_args_join "paj_attrs" (ptr (ptr char))
let () = seal plan_args_join
type plan_args_take
@@ -137,11 +138,12 @@ let rnt_plan_scan str =
setf (plan &-> pa_scan) pas_relation_path str;
rnt_plan_assemble plan
-let rnt_plan_join left right =
+let rnt_plan_join left right attrs =
let plan = make plan_action in
setf plan pa_operation Join;
setf (plan &-> pa_join) paj_left left;
setf (plan &-> pa_join) paj_right right;
+ setf (plan &-> pa_join) paj_attrs attrs;
rnt_plan_assemble plan
let rnt_plan_take source limit =
@@ -151,8 +153,12 @@ let rnt_plan_take source limit =
setf (plan &-> pa_take) pat_limit limit;
rnt_plan_assemble plan
-let rnt_plan_project =
- fn "rnt_plan_project" (ptr void @-> ptr (ptr char) @-> returning (ptr void))
+let rnt_plan_project source attrs =
+ let plan = make plan_action in
+ setf plan pa_operation Project;
+ setf (plan &-> pa_project) pap_source source;
+ setf (plan &-> pa_project) pap_attrs attrs;
+ rnt_plan_assemble plan
let rnt_plan_free =
fn "rnt_plan_free" (ptr void @-> returning void)