Skip to content

Commit 094fd95

Browse files
committed
fix: add CDC fields to datafusion-proto file_formats serialization
1 parent 9d757a2 commit 094fd95

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

datafusion/proto/src/logical_plan/file_formats.rs

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,16 @@ mod parquet {
426426
max_predicate_cache_size_opt: global_options.global.max_predicate_cache_size.map(|size| {
427427
parquet_options::MaxPredicateCacheSizeOpt::MaxPredicateCacheSize(size as u64)
428428
}),
429+
content_defined_chunking: global_options.global.enable_content_defined_chunking,
430+
cdc_min_chunk_size_opt: global_options.global.enable_content_defined_chunking.then(|| {
431+
parquet_options::CdcMinChunkSizeOpt::CdcMinChunkSize(global_options.global.cdc_min_chunk_size as u64)
432+
}),
433+
cdc_max_chunk_size_opt: global_options.global.enable_content_defined_chunking.then(|| {
434+
parquet_options::CdcMaxChunkSizeOpt::CdcMaxChunkSize(global_options.global.cdc_max_chunk_size as u64)
435+
}),
436+
cdc_norm_level_opt: global_options.global.enable_content_defined_chunking.then(|| {
437+
parquet_options::CdcNormLevelOpt::CdcNormLevel(global_options.global.cdc_norm_level as i32)
438+
}),
429439
}),
430440
column_specific_options: column_specific_options.into_iter().map(|(column_name, options)| {
431441
ParquetColumnSpecificOptions {
@@ -525,10 +535,16 @@ mod parquet {
525535
max_predicate_cache_size: proto.max_predicate_cache_size_opt.as_ref().map(|opt| match opt {
526536
parquet_options::MaxPredicateCacheSizeOpt::MaxPredicateCacheSize(size) => *size as usize,
527537
}),
528-
enable_content_defined_chunking: Default::default(),
529-
cdc_min_chunk_size: Default::default(),
530-
cdc_max_chunk_size: Default::default(),
531-
cdc_norm_level: Default::default(),
538+
enable_content_defined_chunking: proto.content_defined_chunking,
539+
cdc_min_chunk_size: proto.cdc_min_chunk_size_opt.as_ref().map(|opt| match opt {
540+
parquet_options::CdcMinChunkSizeOpt::CdcMinChunkSize(v) => *v as usize,
541+
}).unwrap_or(ParquetOptions::default().cdc_min_chunk_size),
542+
cdc_max_chunk_size: proto.cdc_max_chunk_size_opt.as_ref().map(|opt| match opt {
543+
parquet_options::CdcMaxChunkSizeOpt::CdcMaxChunkSize(v) => *v as usize,
544+
}).unwrap_or(ParquetOptions::default().cdc_max_chunk_size),
545+
cdc_norm_level: proto.cdc_norm_level_opt.as_ref().map(|opt| match opt {
546+
parquet_options::CdcNormLevelOpt::CdcNormLevel(v) => *v as i64,
547+
}).unwrap_or(ParquetOptions::default().cdc_norm_level),
532548
}
533549
}
534550
}

0 commit comments

Comments
 (0)