@@ -20,6 +20,18 @@ use nodedb_physical::physical_plan::document::UpdateValue;
2020
2121use super :: schema:: { ndb_field_to_value, row_values_to_object} ;
2222
23+ /// Parameters for [`CoreLoop::execute_columnar_insert`].
24+ pub ( in crate :: data:: executor) struct ColumnarInsertParams < ' a > {
25+ pub collection : & ' a str ,
26+ pub payload : & ' a [ u8 ] ,
27+ pub format : & ' a str ,
28+ pub intent : ColumnarInsertIntent ,
29+ pub on_conflict_updates : & ' a [ ( String , UpdateValue ) ] ,
30+ pub surrogates : & ' a [ Surrogate ] ,
31+ pub schema_bytes : & ' a [ u8 ] ,
32+ pub provenance : Option < & ' a SyncProvenance > ,
33+ }
34+
2335impl CoreLoop {
2436 /// Execute a columnar insert: write rows from MessagePack payload to
2537 /// `MutationEngine`, applying intent-specific semantics on duplicate
@@ -34,19 +46,21 @@ impl CoreLoop {
3446 /// `SyncAckResult{Applied}`.
3547 ///
3648 /// When `provenance` is `None` (SQL path), behave as before.
37- #[ allow( clippy:: too_many_arguments) ]
3849 pub ( in crate :: data:: executor) fn execute_columnar_insert (
3950 & mut self ,
4051 task : & ExecutionTask ,
41- collection : & str ,
42- payload : & [ u8 ] ,
43- _format : & str ,
44- intent : ColumnarInsertIntent ,
45- on_conflict_updates : & [ ( String , UpdateValue ) ] ,
46- surrogates : & [ Surrogate ] ,
47- schema_bytes : & [ u8 ] ,
48- provenance : Option < & SyncProvenance > ,
52+ params : ColumnarInsertParams < ' _ > ,
4953 ) -> Response {
54+ let ColumnarInsertParams {
55+ collection,
56+ payload,
57+ format : _format,
58+ intent,
59+ on_conflict_updates,
60+ surrogates,
61+ schema_bytes,
62+ provenance,
63+ } = params;
5064 // ── Sync idempotency gate (Data-Plane side) ──────────────────────────
5165 if let Some ( prov) = provenance {
5266 let admit = self . sync_admit ( prov) ;
0 commit comments