@@ -413,6 +413,8 @@ pub extern "system" fn Java_org_lance_Dataset_createWithFfiSchema<'local>(
413413 storage_options_obj : JObject , // Map<String, String>
414414 initial_bases : JObject ,
415415 target_bases : JObject ,
416+ allow_external_blob_outside_bases : JObject , // Optional<Boolean>
417+ blob_pack_file_size_threshold : JObject , // Optional<Long>
416418) -> JObject < ' local > {
417419 ok_or_throw ! (
418420 env,
@@ -430,6 +432,8 @@ pub extern "system" fn Java_org_lance_Dataset_createWithFfiSchema<'local>(
430432 storage_options_obj,
431433 initial_bases,
432434 target_bases,
435+ allow_external_blob_outside_bases,
436+ blob_pack_file_size_threshold,
433437 )
434438 )
435439}
@@ -449,6 +453,8 @@ fn inner_create_with_ffi_schema<'local>(
449453 storage_options_obj : JObject , // Map<String, String>
450454 initial_bases : JObject ,
451455 target_bases : JObject ,
456+ allow_external_blob_outside_bases : JObject , // Optional<Boolean>
457+ blob_pack_file_size_threshold : JObject , // Optional<Long>
452458) -> Result < JObject < ' local > > {
453459 let c_schema_ptr = arrow_schema_addr as * mut FFI_ArrowSchema ;
454460 let c_schema = unsafe { FFI_ArrowSchema :: from_raw ( c_schema_ptr) } ;
@@ -468,6 +474,8 @@ fn inner_create_with_ffi_schema<'local>(
468474 storage_options_obj,
469475 initial_bases,
470476 target_bases,
477+ allow_external_blob_outside_bases,
478+ blob_pack_file_size_threshold,
471479 reader,
472480 None , // No namespace for schema-only creation
473481 false , // No managed versioning for schema-only creation
@@ -523,6 +531,8 @@ pub extern "system" fn Java_org_lance_Dataset_createWithFfiStream<'local>(
523531 storage_options_obj : JObject , // Map<String, String>
524532 initial_bases : JObject , // Optional<List<BasePath>>
525533 target_bases : JObject , // Optional<List<String>>
534+ allow_external_blob_outside_bases : JObject , // Optional<Boolean>
535+ blob_pack_file_size_threshold : JObject , // Optional<Long>
526536 namespace_obj : JObject , // LanceNamespace (can be null)
527537 table_id_obj : JObject , // List<String> (can be null)
528538 namespace_client_managed_versioning : jboolean , // Whether namespace manages versioning
@@ -543,6 +553,8 @@ pub extern "system" fn Java_org_lance_Dataset_createWithFfiStream<'local>(
543553 storage_options_obj,
544554 initial_bases,
545555 target_bases,
556+ allow_external_blob_outside_bases,
557+ blob_pack_file_size_threshold,
546558 namespace_obj,
547559 table_id_obj,
548560 namespace_client_managed_versioning != 0 ,
@@ -555,19 +567,21 @@ fn inner_create_with_ffi_stream<'local>(
555567 env : & mut JNIEnv < ' local > ,
556568 arrow_array_stream_addr : jlong ,
557569 path : JString ,
558- max_rows_per_file : JObject , // Optional<Integer>
559- max_rows_per_group : JObject , // Optional<Integer>
560- max_bytes_per_file : JObject , // Optional<Long>
561- mode : JObject , // Optional<String>
562- enable_stable_row_ids : JObject , // Optional<Boolean>
563- data_storage_version : JObject , // Optional<String>
564- enable_v2_manifest_paths : JObject , // Optional<Boolean>
565- storage_options_obj : JObject , // Map<String, String>
566- initial_bases : JObject , // Optional<List<BasePath>>
567- target_bases : JObject , // Optional<List<String>>
568- namespace_obj : JObject , // LanceNamespace (can be null)
569- table_id_obj : JObject , // List<String> (can be null)
570- namespace_client_managed_versioning : bool , // Whether namespace manages versioning
570+ max_rows_per_file : JObject , // Optional<Integer>
571+ max_rows_per_group : JObject , // Optional<Integer>
572+ max_bytes_per_file : JObject , // Optional<Long>
573+ mode : JObject , // Optional<String>
574+ enable_stable_row_ids : JObject , // Optional<Boolean>
575+ data_storage_version : JObject , // Optional<String>
576+ enable_v2_manifest_paths : JObject , // Optional<Boolean>
577+ storage_options_obj : JObject , // Map<String, String>
578+ initial_bases : JObject , // Optional<List<BasePath>>
579+ target_bases : JObject , // Optional<List<String>>
580+ allow_external_blob_outside_bases : JObject , // Optional<Boolean>
581+ blob_pack_file_size_threshold : JObject , // Optional<Long>
582+ namespace_obj : JObject , // LanceNamespace (can be null)
583+ table_id_obj : JObject , // List<String> (can be null)
584+ namespace_client_managed_versioning : bool , // Whether namespace manages versioning
571585) -> Result < JObject < ' local > > {
572586 let stream_ptr = arrow_array_stream_addr as * mut FFI_ArrowArrayStream ;
573587 let reader = unsafe { ArrowArrayStreamReader :: from_raw ( stream_ptr) } ?;
@@ -588,6 +602,8 @@ fn inner_create_with_ffi_stream<'local>(
588602 storage_options_obj,
589603 initial_bases,
590604 target_bases,
605+ allow_external_blob_outside_bases,
606+ blob_pack_file_size_threshold,
591607 reader,
592608 namespace_info,
593609 namespace_client_managed_versioning,
@@ -613,6 +629,8 @@ fn create_dataset<'local>(
613629 storage_options_obj : JObject ,
614630 initial_bases : JObject ,
615631 target_bases : JObject ,
632+ allow_external_blob_outside_bases : JObject ,
633+ blob_pack_file_size_threshold : JObject ,
616634 reader : impl RecordBatchReader + Send + ' static ,
617635 namespace_info : Option < ( Arc < dyn LanceNamespace > , Vec < String > ) > ,
618636 namespace_client_managed_versioning : bool ,
@@ -631,7 +649,8 @@ fn create_dataset<'local>(
631649 & storage_options_obj,
632650 & initial_bases,
633651 & target_bases,
634- & JObject :: null ( ) , // allow_external_blob_outside_bases not used for Dataset.write()
652+ & allow_external_blob_outside_bases,
653+ & blob_pack_file_size_threshold,
635654 ) ?;
636655
637656 // Set up namespace commit handler and storage options provider if namespace is provided
0 commit comments