@@ -217,6 +217,9 @@ static string parquet_type_to_string(Type::type t) {
217217 case Type::INT64:
218218 return " INT64" ;
219219 break ;
220+ case Type::INT96:
221+ return " INT96" ;
222+ break ;
220223 case Type::FLOAT:
221224 return " FLOAT" ;
222225 break ;
@@ -226,9 +229,6 @@ static string parquet_type_to_string(Type::type t) {
226229 case Type::BYTE_ARRAY:
227230 return " BYTE_ARRAY" ;
228231 break ;
229- case Type::INT96:
230- return " INT96" ;
231- break ;
232232 case Type::FIXED_LEN_BYTE_ARRAY:
233233 return " FIXED_LEN_BYTE_ARRAY" ;
234234 break ;
@@ -239,7 +239,7 @@ static string parquet_type_to_string(Type::type t) {
239239}
240240
241241// the fixed initial size is just for an example
242- #define COL_WIDTH " 17 "
242+ #define COL_WIDTH " 20 "
243243
244244void ParquetFileReader::DebugPrint (std::ostream& stream, bool print_values) {
245245 if (!parsed_metadata_) {
@@ -251,10 +251,6 @@ void ParquetFileReader::DebugPrint(std::ostream& stream, bool print_values) {
251251 for (int c = 1 ; c < metadata_.schema .size (); ++c) {
252252 stream << " Column " << c-1 << " : " << metadata_.schema [c].name << " ("
253253 << parquet_type_to_string (metadata_.schema [c].type );
254- if (metadata_.schema [c].type == Type::INT96 ||
255- metadata_.schema [c].type == Type::FIXED_LEN_BYTE_ARRAY) {
256- stream << " - not supported" ;
257- }
258254 stream << " )\n " ;
259255 }
260256
@@ -291,10 +287,6 @@ void ParquetFileReader::DebugPrint(std::ostream& stream, bool print_values) {
291287
292288 printf (" %-" COL_WIDTH" s" , metadata_.schema [c+1 ].name .c_str ());
293289
294- if (col_type == Type::INT96 || col_type == Type::FIXED_LEN_BYTE_ARRAY) {
295- continue ;
296- }
297-
298290 // This is OK in this method as long as the RowGroupReader does not get deleted
299291 readers[c] = col_reader;
300292 }
@@ -345,6 +337,16 @@ void ParquetFileReader::DebugPrint(std::ostream& stream, bool print_values) {
345337 }
346338 break ;
347339 }
340+ case Type::INT96: {
341+ Int96 val = reinterpret_cast <Int96Reader*>(readers[c])->NextValue (
342+ &def_level[c], &rep_level[c]);
343+ if (def_level[c] >= rep_level[c]) {
344+ string result = Int96ToString (val);
345+ snprintf (buffer, bufsize, " %-" COL_WIDTH" s" , result.c_str ());
346+ stream << buffer;
347+ }
348+ break ;
349+ }
348350 case Type::FLOAT: {
349351 float val = reinterpret_cast <FloatReader*>(readers[c])->NextValue (
350352 &def_level[c], &rep_level[c]);
@@ -373,7 +375,17 @@ void ParquetFileReader::DebugPrint(std::ostream& stream, bool print_values) {
373375 }
374376 break ;
375377 }
376- default :
378+ case Type::FIXED_LEN_BYTE_ARRAY: {
379+ FixedLenByteArray val = reinterpret_cast <FixedLenByteArrayReader*>(
380+ readers[c])->NextValue (&def_level[c], &rep_level[c]);
381+ if (def_level[c] >= rep_level[c]) {
382+ string result = FixedLenByteArrayToString (val, metadata_.schema [c+1 ].type_length );
383+ snprintf (buffer, bufsize, " %-" COL_WIDTH" s" , result.c_str ());
384+ stream << buffer;
385+ }
386+ break ;
387+ }
388+ default :
377389 continue ;
378390 }
379391 }
0 commit comments