kadirozde commented on a change in pull request #1021:
URL: https://github.com/apache/phoenix/pull/1021#discussion_r545503492
##########
File path:
phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
##########
@@ -694,16 +696,22 @@ private Void addDataColInfo(final PTable dataTable,
Expression expression) {
output.write(ptr.get(), ptr.getOffset(),
ptr.getLength());
}
}
+
if (!indexColumnType.isFixedWidth()) {
-
output.writeByte(SchemaUtil.getSeparatorByte(rowKeyOrderOptimizable,
ptr.getLength() == 0, isIndexColumnDesc ? SortOrder.DESC : SortOrder.ASC));
+ byte sepByte =
SchemaUtil.getSeparatorByte(rowKeyOrderOptimizable, ptr.getLength() == 0,
isIndexColumnDesc ? SortOrder.DESC : SortOrder.ASC);
+ output.writeByte(sepByte);
+ trailingVariableWitdthColumnNum++;
+ } else {
+ trailingVariableWitdthColumnNum = 0;
}
}
- int length = stream.size();
- int minLength = length - maxTrailingNulls;
byte[] indexRowKey = stream.getBuffer();
// Remove trailing nulls
- while (length > minLength && indexRowKey[length-1] ==
QueryConstants.SEPARATOR_BYTE) {
+ int length = stream.size();
+ int minLength = length - maxTrailingNulls;
+ while (trailingVariableWitdthColumnNum > 0 && length > minLength
&& indexRowKey[length-1] == QueryConstants.SEPARATOR_BYTE) {
Review comment:
@gokceni, please add a comment here, e.g.,
trailingVariableWitdthColumnNum is introduced to fix the issue reported in
PHOENIX-6267. The root cause of it is that maxTrailingNulls is not computed
correctly for some view index schemas. maxTrailingNulls should be the number of
trailing index PK nullable columns. When the actual issue is fixed,
trailingVariableWitdthColumnNum can be removed.
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]