Skip to content

Commit 44b5a93

Browse files
authored
Merge pull request #1140 from Altinity/backports/antalya-25.8/87444
Antalya 25.8 Backport of ClickHouse#87444 - Make parquet reader v3 preserve decimal precision information
2 parents a305168 + 5f13de8 commit 44b5a93

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

src/Processors/Formats/Impl/Parquet/SchemaConverter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ void SchemaConverter::processPrimitiveColumn(
10451045
if (precision > max_precision)
10461046
throw Exception(ErrorCodes::INCORRECT_DATA, "Parquet decimal type precision or scale is too big ({} digits) for physical type {}", precision, thriftToString(type));
10471047

1048-
out_inferred_type = createDecimal<DataTypeDecimal>(max_precision, scale);
1048+
out_inferred_type = createDecimal<DataTypeDecimal>(precision, scale);
10491049
size_t output_size = out_inferred_type->getSizeOfValueInMemory();
10501050
out_decoder.allow_stats = is_output_type_decimal(output_size, scale);
10511051

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
100
2+
col-1de12c05-5dd5-4fa7-9f93-33c43c9a4028 Decimal(20, 0)
3+
col-5e1b97f1-dade-4c7d-b71b-e31d789e01a4 String
4+
col-1de12c05-5dd5-4fa7-9f93-33c43c9a4028 Decimal(20, 0)
5+
col-5e1b97f1-dade-4c7d-b71b-e31d789e01a4 String

tests/queries/0_stateless/02845_parquet_odd_decimals.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ ${CLICKHOUSE_CLIENT} --query="drop table if exists 02845_parquet_odd_decimals"
1111
${CLICKHOUSE_CLIENT} --query="create table 02845_parquet_odd_decimals (\`col-1de12c05-5dd5-4fa7-9f93-33c43c9a4028\` Decimal(20, 0), \`col-5e1b97f1-dade-4c7d-b71b-e31d789e01a4\` String) engine Memory"
1212
${CLICKHOUSE_CLIENT} --query="insert into 02845_parquet_odd_decimals from infile '$CUR_DIR/data_parquet/nine_byte_decimals_from_spark.parquet'"
1313
${CLICKHOUSE_CLIENT} --query="select count() from 02845_parquet_odd_decimals"
14+
15+
${CLICKHOUSE_LOCAL} --query="desc file('$CUR_DIR/data_parquet/nine_byte_decimals_from_spark.parquet') settings schema_inference_make_columns_nullable=0, input_format_parquet_use_native_reader_v3=0"
16+
${CLICKHOUSE_LOCAL} --query="desc file('$CUR_DIR/data_parquet/nine_byte_decimals_from_spark.parquet') settings schema_inference_make_columns_nullable=0, input_format_parquet_use_native_reader_v3=1"

0 commit comments

Comments
 (0)