xiangfu0 commented on code in PR #20060:
URL: https://github.com/apache/pinot/pull/20060#discussion_r4392868063
##########
pinot-plugins/pinot-input-format/pinot-parquet/src/main/java/org/apache/pinot/plugin/inputformat/parquet/ParquetNativeRecordExtractor.java:
##########
@@ -149,6 +148,11 @@ private Object extractValue(Group from, int fieldIndex,
Type fieldType, int inde
return intValue;
case INT64:
long longValue = from.getLong(fieldIndex, index);
+ if (logicalTypeAnnotation instanceof
LogicalTypeAnnotation.IntLogicalTypeAnnotation integerType
+ && integerType.getBitWidth() == 64 && !integerType.isSigned() &&
longValue < 0) {
Review Comment:
You are correct: this changes the native reader default from preserving
signed 64-bit bits to rejecting high UINT64 values, while Avro still exposes
the signed bits. That mapping preserves equality for opaque IDs, so this can
break existing ingestion even though it avoids interpreting an unsigned number
as negative. I am keeping this thread open pending the default-policy decision;
explicit overflow-rejection coverage will remain, and any strict-mode choice
needs to be documented consistently.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]