RussellSpitzer commented on code in PR #6680:
URL: https://github.com/apache/iceberg/pull/6680#discussion_r1089813726
##########
core/src/main/java/org/apache/iceberg/ManifestFilterManager.java:
##########
@@ -510,16 +510,19 @@ private Pair<InclusiveMetricsEvaluator,
StrictMetricsEvaluator> metricsEvaluator
// in other words, ResidualEvaluator returns a part of the expression
that needs to be
// evaluated
// for rows in the given partition using metrics
- return metricsEvaluators.computeIfAbsent(
- file.partition(),
- partition -> {
- Expression residual = residualEvaluator.residualFor(partition);
- InclusiveMetricsEvaluator inclusive =
- new InclusiveMetricsEvaluator(tableSchema, residual,
caseSensitive);
- StrictMetricsEvaluator strict =
- new StrictMetricsEvaluator(tableSchema, residual,
caseSensitive);
- return Pair.of(inclusive, strict);
- });
+ PartitionData partition = (PartitionData) file.partition();
Review Comment:
Ok I found a bug in StructCopy as well, it doesn't copy FixedByte types and
just copies array references so we actually probably need to file issue for
that.
It should be doing this
From PartitionData.copyData
```java
case FIXED:
byte[] buffer = (byte[]) data[i];
copy[i] = Arrays.copyOf(buffer, buffer.length);
break;
```
but instead the StructCopy code always does this
```java
if (value instanceof StructLike) {
values[i] = copy((StructLike) value);
} else {
values[i] = value;
}
```
--
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]