[
https://issues.apache.org/jira/browse/HUDI-7169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
hehuiyuan updated HUDI-7169:
----------------------------
Description:
1. If partVal equals `defaultParName`, the value of part field is null and
the code return null.
```
Object partVal = partStrArray[idx].equals(defaultParName)
? null : DataTypeUtils.resolvePartition(partStrArray[idx],
partitionTypes.get(idx));
```
ColumnStats columnStats = new ColumnStats(null, null, 1);
2. if parVal equals`defaultParName` and parKey is not equal to
`defaultParName`, it will return `defaultParName`
```
Object partVal = partKey.equals(defaultParName)
? null : DataTypeUtils.resolvePartition(partStrArray[idx],
partitionTypes.get(idx));
```
ColumnStats columnStats = new ColumnStats(`defaultParName`,`defaultParName`,
0);
3. Example for LeafEvaluator evaluator:
```
public static class IsNotNull extends LeafEvaluator {
private static final long serialVersionUID = 1L;
public static IsNotNull getInstance() {
return new IsNotNull();
}
@Override
public boolean eval(Map<String, ColumnStats> columnStatsMap) {
ColumnStats columnStats = getColumnStats(columnStatsMap);
// should consider FLOAT/DOUBLE & NAN
return columnStats.getMinVal() != null || columnStats.getNullCnt() <= 0;
}
}
```
if part filed value is null ,
apply 2 to 3 , the `eval` method return true
apply 1 to 3 , the `eval` method return false.
> Comparison between defaultParName and partValue
> -----------------------------------------------
>
> Key: HUDI-7169
> URL: https://issues.apache.org/jira/browse/HUDI-7169
> Project: Apache Hudi
> Issue Type: Bug
> Reporter: hehuiyuan
> Priority: Major
>
> 1. If partVal equals `defaultParName`, the value of part field is null and
> the code return null.
> ```
> Object partVal = partStrArray[idx].equals(defaultParName)
> ? null : DataTypeUtils.resolvePartition(partStrArray[idx],
> partitionTypes.get(idx));
> ```
> ColumnStats columnStats = new ColumnStats(null, null, 1);
> 2. if parVal equals`defaultParName` and parKey is not equal to
> `defaultParName`, it will return `defaultParName`
> ```
> Object partVal = partKey.equals(defaultParName)
> ? null : DataTypeUtils.resolvePartition(partStrArray[idx],
> partitionTypes.get(idx));
> ```
> ColumnStats columnStats = new ColumnStats(`defaultParName`,`defaultParName`,
> 0);
> 3. Example for LeafEvaluator evaluator:
> ```
> public static class IsNotNull extends LeafEvaluator {
> private static final long serialVersionUID = 1L;
> public static IsNotNull getInstance() {
> return new IsNotNull();
> }
> @Override
> public boolean eval(Map<String, ColumnStats> columnStatsMap) {
> ColumnStats columnStats = getColumnStats(columnStatsMap);
> // should consider FLOAT/DOUBLE & NAN
> return columnStats.getMinVal() != null || columnStats.getNullCnt() <= 0;
> }
> }
> ```
> if part filed value is null ,
> apply 2 to 3 , the `eval` method return true
> apply 1 to 3 , the `eval` method return false.
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)