Skip to content

Commit 0544aa1

Browse files
committed
fix
1 parent fa34f98 commit 0544aa1

File tree

2 files changed

+43
-11
lines changed

2 files changed

+43
-11
lines changed

src/query/storages/fuse/src/operations/append.rs

+42-10
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,20 @@ use databend_common_expression::LimitType;
2727
use databend_common_expression::SortColumnDescription;
2828
use databend_common_functions::BUILTIN_FUNCTIONS;
2929
use databend_common_pipeline_core::Pipeline;
30+
use databend_common_pipeline_transforms::build_compact_block_pipeline;
3031
use databend_common_pipeline_transforms::processors::create_dummy_item;
3132
use databend_common_pipeline_transforms::processors::TransformPipelineHelper;
3233
use databend_common_pipeline_transforms::processors::TransformSortPartial;
3334
use databend_common_sql::evaluator::BlockOperator;
3435
use databend_common_sql::evaluator::CompoundBlockOperator;
36+
use databend_common_sql::executor::physical_plans::MutationKind;
3537
use databend_storages_common_table_meta::meta::TableMetaTimestamps;
3638
use databend_storages_common_table_meta::table::ClusterType;
3739

3840
use crate::operations::TransformBlockWriter;
41+
use crate::operations::TransformSerializeBlock;
3942
use crate::statistics::ClusterStatsGenerator;
43+
use crate::FuseStorageFormat;
4044
use crate::FuseTable;
4145

4246
impl FuseTable {
@@ -46,16 +50,44 @@ impl FuseTable {
4650
pipeline: &mut Pipeline,
4751
table_meta_timestamps: TableMetaTimestamps,
4852
) -> Result<()> {
49-
pipeline.add_transform(|input, output| {
50-
TransformBlockWriter::try_create(
51-
ctx.clone(),
52-
input,
53-
output,
54-
self,
55-
table_meta_timestamps,
56-
false,
57-
)
58-
})?;
53+
match self.storage_format {
54+
FuseStorageFormat::Parquet => {
55+
pipeline.add_transform(|input, output| {
56+
TransformBlockWriter::try_create(
57+
ctx.clone(),
58+
input,
59+
output,
60+
self,
61+
table_meta_timestamps,
62+
false,
63+
)
64+
})?;
65+
}
66+
FuseStorageFormat::Native => {
67+
let block_thresholds = self.get_block_thresholds();
68+
build_compact_block_pipeline(pipeline, block_thresholds)?;
69+
70+
let schema = DataSchema::from(self.schema()).into();
71+
let cluster_stats_gen = self.cluster_gen_for_append(
72+
ctx.clone(),
73+
pipeline,
74+
block_thresholds,
75+
Some(schema),
76+
)?;
77+
pipeline.add_transform(|input, output| {
78+
let proc = TransformSerializeBlock::try_create(
79+
ctx.clone(),
80+
input,
81+
output,
82+
self,
83+
cluster_stats_gen.clone(),
84+
MutationKind::Insert,
85+
table_meta_timestamps,
86+
)?;
87+
proc.into_processor()
88+
})?;
89+
}
90+
}
5991

6092
Ok(())
6193
}

tests/suites/1_stateful/05_formats/05_01_compact/05_01_02_load_compact_copy_row_per_block.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ echo "drop table if exists t1 all" | $BENDSQL_CLIENT_CONNECT
1515
echo "CREATE TABLE t1
1616
(
1717
c0 string
18-
) engine=fuse row_per_block=800;
18+
) engine=fuse row_per_block=500;
1919
" | $BENDSQL_CLIENT_CONNECT
2020

2121

0 commit comments

Comments
 (0)