@@ -240,8 +240,8 @@ TValue * getResizedPrimitiveData(TColumn & column, size_t size)
240240} // anoynomous namespace
241241
242242
243- template <>
244- void ParquetPlainValuesReader<ColumnString >::readBatch(
243+ template <typename TColumn >
244+ void ParquetPlainByteArrayValuesReader<TColumn >::readBatch(
245245 MutableColumnPtr & col_ptr, LazyNullMap & null_map, UInt32 num_values)
246246{
247247 auto & column = *assert_cast<ColumnString *>(col_ptr.get ());
@@ -322,8 +322,8 @@ void ParquetBitPlainReader<TColumn>::readBatch(
322322}
323323
324324
325- template <>
326- void ParquetPlainValuesReader<ColumnDecimal<DateTime64>, ParquetReaderTypes::TimestampInt96 >::readBatch(
325+ template <typename TColumn >
326+ void ParquetPlainInt96ValuesReader<TColumn >::readBatch(
327327 MutableColumnPtr & col_ptr, LazyNullMap & null_map, UInt32 num_values)
328328{
329329 auto cursor = col_ptr->size ();
@@ -350,8 +350,8 @@ void ParquetPlainValuesReader<ColumnDecimal<DateTime64>, ParquetReaderTypes::Tim
350350 );
351351}
352352
353- template <typename TColumn, ParquetReaderTypes reader_type >
354- void ParquetPlainValuesReader<TColumn, reader_type >::readBatch(
353+ template <typename TColumn, typename ParquetType >
354+ void ParquetPlainValuesReader<TColumn, ParquetType >::readBatch(
355355 MutableColumnPtr & col_ptr, LazyNullMap & null_map, UInt32 num_values)
356356{
357357 auto cursor = col_ptr->size ();
@@ -365,11 +365,11 @@ void ParquetPlainValuesReader<TColumn, reader_type>::readBatch(
365365 null_map,
366366 /* individual_visitor */ [&](size_t nest_cursor)
367367 {
368- plain_data_buffer.readValue (column_data[ nest_cursor] );
368+ plain_data_buffer.readValuesOfDifferentSize <TValue, ParquetType> (column_data + nest_cursor, 1 );
369369 },
370370 /* repeated_visitor */ [&](size_t nest_cursor, UInt32 count)
371371 {
372- plain_data_buffer.readBytes (column_data + nest_cursor, count * sizeof (TValue) );
372+ plain_data_buffer.readValuesOfDifferentSize <TValue, ParquetType> (column_data + nest_cursor, count);
373373 }
374374 );
375375}
@@ -576,17 +576,19 @@ void ParquetRleDictReader<TColumnVector>::readBatch(
576576}
577577
578578
579- template class ParquetPlainValuesReader <ColumnInt32>;
580- template class ParquetPlainValuesReader <ColumnUInt32>;
581- template class ParquetPlainValuesReader <ColumnInt64>;
582- template class ParquetPlainValuesReader <ColumnUInt64>;
583- template class ParquetPlainValuesReader <ColumnFloat32>;
584- template class ParquetPlainValuesReader <ColumnFloat64>;
585- template class ParquetPlainValuesReader <ColumnDecimal<Decimal32>>;
586- template class ParquetPlainValuesReader <ColumnDecimal<Decimal64>>;
587- template class ParquetPlainValuesReader <ColumnDecimal<DateTime64>>;
588- template class ParquetPlainValuesReader <ColumnString>;
589- template class ParquetPlainValuesReader <ColumnUInt8>;
579+ template class ParquetPlainValuesReader <ColumnUInt8, int32_t >;
580+ template class ParquetPlainValuesReader <ColumnInt8, int32_t >;
581+ template class ParquetPlainValuesReader <ColumnUInt16, int32_t >;
582+ template class ParquetPlainValuesReader <ColumnInt16, int32_t >;
583+ template class ParquetPlainValuesReader <ColumnUInt32, int32_t >;
584+ template class ParquetPlainValuesReader <ColumnInt32, int32_t >;
585+ template class ParquetPlainValuesReader <ColumnUInt64, int64_t >;
586+ template class ParquetPlainValuesReader <ColumnInt64, int64_t >;
587+ template class ParquetPlainValuesReader <ColumnFloat32, float >;
588+ template class ParquetPlainValuesReader <ColumnFloat64, double >;
589+ template class ParquetPlainValuesReader <ColumnDecimal<Decimal32>, int32_t >;
590+ template class ParquetPlainValuesReader <ColumnDecimal<Decimal64>, int64_t >;
591+ template class ParquetPlainValuesReader <ColumnDecimal<DateTime64>, int64_t >;
590592
591593template class ParquetBitPlainReader <ColumnUInt8>;
592594
@@ -597,7 +599,6 @@ template class ParquetRleLCReader<ColumnUInt8>;
597599template class ParquetRleLCReader <ColumnUInt16>;
598600template class ParquetRleLCReader <ColumnUInt32>;
599601
600- template class ParquetRleDictReader <ColumnUInt8>;
601602template class ParquetRleDictReader <ColumnInt32>;
602603template class ParquetRleDictReader <ColumnUInt32>;
603604template class ParquetRleDictReader <ColumnInt64>;
@@ -611,4 +612,8 @@ template class ParquetRleDictReader<ColumnDecimal<Decimal256>>;
611612template class ParquetRleDictReader <ColumnDecimal<DateTime64>>;
612613template class ParquetRleDictReader <ColumnString>;
613614
615+ template class ParquetPlainByteArrayValuesReader <ColumnString>;
616+
617+ template class ParquetPlainInt96ValuesReader <ColumnDecimal<DateTime64>>;
618+
614619}
0 commit comments