You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by st...@apache.org on 2014/02/10 15:10:44 UTC
[5/6] Replace generic ColumnModifier enum with more specific
SortOrder enum. Ensure that we always pass through either SortOrder.ASC or
SortOrder.DESC but never null.
https://issues.apache.org/jira/browse/PHOENIX-32 Reviewed by jamestaylor.
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleMultiplyExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleMultiplyExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleMultiplyExpression.java
index f7ffc24..1457f8f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleMultiplyExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleMultiplyExpression.java
@@ -47,7 +47,7 @@ public class DoubleMultiplyExpression extends MultiplyExpression {
return true;
}
double childvalue = child.getDataType().getCodec()
- .decodeDouble(ptr, child.getColumnModifier());
+ .decodeDouble(ptr, child.getSortOrder());
if (!Double.isNaN(childvalue)
&& childvalue != Double.NEGATIVE_INFINITY
&& childvalue != Double.POSITIVE_INFINITY) {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleSubtractExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleSubtractExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleSubtractExpression.java
index 9ee6516..d508963 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleSubtractExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleSubtractExpression.java
@@ -47,7 +47,7 @@ public class DoubleSubtractExpression extends SubtractExpression {
return true;
}
double childvalue = child.getDataType().getCodec()
- .decodeDouble(ptr, child.getColumnModifier());
+ .decodeDouble(ptr, child.getSortOrder());
if (!Double.isNaN(childvalue)
&& childvalue != Double.NEGATIVE_INFINITY
&& childvalue != Double.POSITIVE_INFINITY) {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/InListExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/InListExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/InListExpression.java
index 3fa7ddc..dfd073a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/InListExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/InListExpression.java
@@ -33,9 +33,15 @@ import org.apache.hadoop.hbase.index.util.ImmutableBytesPtr;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.WritableUtils;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+
+import org.apache.hadoop.hbase.index.util.ImmutableBytesPtr;
import org.apache.phoenix.expression.visitor.ExpressionVisitor;
import org.apache.phoenix.schema.ConstraintViolationException;
import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -83,10 +89,10 @@ public class InListExpression extends BaseSingleExpression {
coercedKeyExpressions.add(LiteralExpression.newConstant(null, firstChildType, true));
}
} else {
- // Don't specify the firstChild column modifier here, as we specify it in the LiteralExpression creation below
+ // Don't specify the firstChild SortOrder here, as we specify it in the LiteralExpression creation below
try {
- firstChildType.coerceBytes(ptr, rhs.getDataType(), rhs.getColumnModifier(), null);
- keys.add(LiteralExpression.newConstant(ByteUtil.copyKeyBytesIfNecessary(ptr), PDataType.VARBINARY, firstChild.getColumnModifier(), true));
+ firstChildType.coerceBytes(ptr, rhs.getDataType(), rhs.getSortOrder(), SortOrder.getDefault());
+ keys.add(LiteralExpression.newConstant(ByteUtil.copyKeyBytesIfNecessary(ptr), PDataType.VARBINARY, firstChild.getSortOrder(), true));
if(rhs.getDataType() == firstChildType) {
coercedKeyExpressions.add(rhs);
} else {
@@ -288,8 +294,8 @@ public class InListExpression extends BaseSingleExpression {
buf.append("null,");
}
for (ImmutableBytesPtr value : values) {
- if (firstChild.getColumnModifier() != null) {
- type.coerceBytes(value, type, firstChild.getColumnModifier(), null);
+ if (firstChild.getSortOrder() != null) {
+ type.coerceBytes(value, type, firstChild.getSortOrder(), SortOrder.getDefault());
}
buf.append(type.toStringLiteral(value, null));
buf.append(',');
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/LikeExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/LikeExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/LikeExpression.java
index 24208cc..a7e8372 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/LikeExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/LikeExpression.java
@@ -228,7 +228,7 @@ public class LikeExpression extends BaseCompoundExpression {
}
return false;
}
- String value = (String)PDataType.VARCHAR.toObject(ptr, getPatternExpression().getColumnModifier());
+ String value = (String)PDataType.VARCHAR.toObject(ptr, getPatternExpression().getSortOrder());
pattern = Pattern.compile(toPattern(value));
if (logger.isDebugEnabled()) {
logger.debug("LIKE pattern is expression: " + pattern.pattern());
@@ -245,7 +245,7 @@ public class LikeExpression extends BaseCompoundExpression {
return true;
}
- String value = (String)PDataType.VARCHAR.toObject(ptr, getStrExpression().getColumnModifier());
+ String value = (String)PDataType.VARCHAR.toObject(ptr, getStrExpression().getSortOrder());
boolean matched = pattern.matcher(value).matches();
ptr.set(matched ? PDataType.TRUE_BYTES : PDataType.FALSE_BYTES);
if (logger.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java
index f6ddec8..46020f5 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/LiteralExpression.java
@@ -29,7 +29,7 @@ import org.apache.hadoop.io.WritableUtils;
import org.apache.phoenix.exception.SQLExceptionCode;
import org.apache.phoenix.exception.SQLExceptionInfo;
import org.apache.phoenix.expression.visitor.ExpressionVisitor;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.IllegalDataException;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.TypeMismatchException;
@@ -37,6 +37,8 @@ import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
import org.apache.phoenix.util.StringUtil;
+import com.google.common.base.Preconditions;
+
/**
@@ -70,7 +72,7 @@ public class LiteralExpression extends BaseTerminalExpression {
private Integer byteSize;
private Integer maxLength;
private Integer scale;
- private ColumnModifier columnModifier;
+ private SortOrder sortOrder;
public static boolean isFalse(Expression child) {
@@ -115,27 +117,27 @@ public class LiteralExpression extends BaseTerminalExpression {
}
public static LiteralExpression newConstant(Object value, PDataType type, boolean isDeterministic) throws SQLException {
- return newConstant(value, type, null, isDeterministic);
+ return newConstant(value, type, SortOrder.getDefault(), isDeterministic);
}
- public static LiteralExpression newConstant(Object value, PDataType type, ColumnModifier columnModifier) throws SQLException {
- return newConstant(value, type, null, null, columnModifier, true);
+ public static LiteralExpression newConstant(Object value, PDataType type, SortOrder sortOrder) throws SQLException {
+ return newConstant(value, type, null, null, sortOrder, true);
}
- public static LiteralExpression newConstant(Object value, PDataType type, ColumnModifier columnModifier, boolean isDeterministic) throws SQLException {
- return newConstant(value, type, null, null, columnModifier, isDeterministic);
+ public static LiteralExpression newConstant(Object value, PDataType type, SortOrder sortOrder, boolean isDeterministic) throws SQLException {
+ return newConstant(value, type, null, null, sortOrder, isDeterministic);
}
public static LiteralExpression newConstant(Object value, PDataType type, Integer maxLength, Integer scale) throws SQLException {
- return newConstant(value, type, maxLength, scale, null, true);
+ return newConstant(value, type, maxLength, scale, SortOrder.getDefault(), true);
}
public static LiteralExpression newConstant(Object value, PDataType type, Integer maxLength, Integer scale, boolean isDeterministic) throws SQLException { // remove?
- return newConstant(value, type, maxLength, scale, null, isDeterministic);
+ return newConstant(value, type, maxLength, scale, SortOrder.getDefault(), isDeterministic);
}
// TODO: cache?
- public static LiteralExpression newConstant(Object value, PDataType type, Integer maxLength, Integer scale, ColumnModifier columnModifier, boolean isDeterministic)
+ public static LiteralExpression newConstant(Object value, PDataType type, Integer maxLength, Integer scale, SortOrder sortOrder, boolean isDeterministic)
throws SQLException {
if (value == null) {
if (type == null) {
@@ -157,7 +159,7 @@ public class LiteralExpression extends BaseTerminalExpression {
}
value = type.toObject(value, actualType);
try {
- byte[] b = type.toBytes(value, columnModifier);
+ byte[] b = type.toBytes(value, sortOrder);
if (type == PDataType.VARCHAR || type == PDataType.CHAR) {
if (type == PDataType.CHAR && maxLength != null && b.length < maxLength) {
b = StringUtil.padChar(b, maxLength);
@@ -168,7 +170,7 @@ public class LiteralExpression extends BaseTerminalExpression {
if (b.length == 0) {
return TYPED_NULL_EXPRESSIONS[type.ordinal()];
}
- return new LiteralExpression(value, type, b, maxLength, scale, columnModifier, isDeterministic);
+ return new LiteralExpression(value, type, b, maxLength, scale, sortOrder, isDeterministic);
} catch (IllegalDataException e) {
throw new SQLExceptionInfo.Builder(SQLExceptionCode.ILLEGAL_DATA).setRootCause(e).build().buildException();
}
@@ -182,18 +184,19 @@ public class LiteralExpression extends BaseTerminalExpression {
}
private LiteralExpression(Object value, PDataType type, byte[] byteValue, boolean isDeterministic) {
- this(value, type, byteValue, type == null? null : type.getMaxLength(value), type == null? null : type.getScale(value), null, isDeterministic);
+ this(value, type, byteValue, type == null? null : type.getMaxLength(value), type == null? null : type.getScale(value), SortOrder.getDefault(), isDeterministic);
}
private LiteralExpression(Object value, PDataType type, byte[] byteValue,
- Integer maxLength, Integer scale, ColumnModifier columnModifier, boolean isDeterministic) {
+ Integer maxLength, Integer scale, SortOrder sortOrder, boolean isDeterministic) {
+ Preconditions.checkNotNull(sortOrder);
this.value = value;
this.type = type;
this.byteValue = byteValue;
this.byteSize = byteValue.length;
this.maxLength = maxLength;
this.scale = scale;
- this.columnModifier = columnModifier;
+ this.sortOrder = sortOrder;
this.isDeterministic = isDeterministic;
}
@@ -234,7 +237,7 @@ public class LiteralExpression extends BaseTerminalExpression {
int byteLength = Math.abs(encodedByteLengthAndBool)-1;
this.byteValue = new byte[byteLength];
input.readFully(byteValue, 0, byteLength);
- columnModifier = ColumnModifier.fromSystemValue(WritableUtils.readVInt(input));
+ sortOrder = SortOrder.fromSystemValue(WritableUtils.readVInt(input));
int typeOrdinal = WritableUtils.readVInt(input);
if (typeOrdinal < 0) {
this.type = null;
@@ -244,7 +247,7 @@ public class LiteralExpression extends BaseTerminalExpression {
if (this.byteValue.length == 0) {
this.value = null;
} else {
- this.value = this.type.toObject(byteValue, 0, byteValue.length, this.type, columnModifier);
+ this.value = this.type.toObject(byteValue, 0, byteValue.length, this.type, sortOrder);
}
// Only to prevent continual reallocations of Integer
this.byteSize = this.byteValue.length;
@@ -254,7 +257,7 @@ public class LiteralExpression extends BaseTerminalExpression {
public void write(DataOutput output) throws IOException {
WritableUtils.writeVInt(output, (byteValue.length + 1) * (this.isDeterministic ? 1 : -1));
output.write(byteValue);
- WritableUtils.writeVInt(output, ColumnModifier.toSystemValue(columnModifier));
+ WritableUtils.writeVInt(output, sortOrder.getSystemValue());
WritableUtils.writeVInt(output, type == null ? -1 : this.type.ordinal());
}
@@ -286,8 +289,8 @@ public class LiteralExpression extends BaseTerminalExpression {
}
@Override
- public ColumnModifier getColumnModifier() {
- return columnModifier;
+ public SortOrder getSortOrder() {
+ return sortOrder;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/LongAddExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongAddExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongAddExpression.java
index a95a0f9..2a7368a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongAddExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongAddExpression.java
@@ -45,7 +45,7 @@ public class LongAddExpression extends AddExpression {
if (!child.evaluate(tuple, ptr) || ptr.getLength() == 0) {
return false;
}
- long childvalue = child.getDataType().getCodec().decodeLong(ptr, child.getColumnModifier());
+ long childvalue = child.getDataType().getCodec().decodeLong(ptr, child.getSortOrder());
finalResult += childvalue;
}
byte[] resultPtr=new byte[PDataType.LONG.getByteSize()];
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/LongDivideExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongDivideExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongDivideExpression.java
index cfbb74d..d8e5d4d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongDivideExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongDivideExpression.java
@@ -45,7 +45,7 @@ public class LongDivideExpression extends DivideExpression {
if (!child.evaluate(tuple, ptr) || ptr.getLength() == 0) {
return false;
}
- long childvalue = child.getDataType().getCodec().decodeLong(ptr, child.getColumnModifier());
+ long childvalue = child.getDataType().getCodec().decodeLong(ptr, child.getSortOrder());
if (i == 0) {
finalResult = childvalue;
} else {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/LongMultiplyExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongMultiplyExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongMultiplyExpression.java
index 14f7cd7..2cb0e46 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongMultiplyExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongMultiplyExpression.java
@@ -48,7 +48,7 @@ public class LongMultiplyExpression extends MultiplyExpression {
if (ptr.getLength() == 0) {
return false;
}
- long childvalue = child.getDataType().getCodec().decodeLong(ptr, child.getColumnModifier());
+ long childvalue = child.getDataType().getCodec().decodeLong(ptr, child.getSortOrder());
finalResult *= childvalue;
}
byte[] resultPtr=new byte[getDataType().getByteSize()];
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/LongSubtractExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongSubtractExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongSubtractExpression.java
index c30abe3..5524f23 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/LongSubtractExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/LongSubtractExpression.java
@@ -55,7 +55,7 @@ public class LongSubtractExpression extends SubtractExpression {
}
PDataType childType = child.getDataType();
boolean isDate = childType.isCoercibleTo(PDataType.DATE);
- long childvalue = childType.getCodec().decodeLong(ptr, child.getColumnModifier());
+ long childvalue = childType.getCodec().decodeLong(ptr, child.getSortOrder());
if (i == 0) {
finalResult = childvalue;
} else {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/RowKeyColumnExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/RowKeyColumnExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/RowKeyColumnExpression.java
index eb8531e..71f5b73 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/RowKeyColumnExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/RowKeyColumnExpression.java
@@ -120,7 +120,7 @@ public class RowKeyColumnExpression extends ColumnExpression {
}
*/
ptr.set(buffer,offset,length);
- type.coerceBytes(ptr, fromType, getColumnModifier(), getColumnModifier());
+ type.coerceBytes(ptr, fromType, getSortOrder(), getSortOrder());
} else {
ptr.set(ByteUtil.EMPTY_BYTE_ARRAY);
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/RowValueConstructorExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/RowValueConstructorExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/RowValueConstructorExpression.java
index cd2ba9e..8894098 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/RowValueConstructorExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/RowValueConstructorExpression.java
@@ -81,7 +81,7 @@ public class RowValueConstructorExpression extends BaseCompoundExpression {
} else if ((rhsType == PDataType.TIMESTAMP || rhsType == PDataType.UNSIGNED_TIMESTAMP) && (lhsType != PDataType.TIMESTAMP && lhsType != PDataType.UNSIGNED_TIMESTAMP)) {
e = FloorDateExpression.create(rhs, TimeUnit.MILLISECOND);
}
- e = new CoerceExpression(e, lhsType, lhs.getColumnModifier(), lhs.getByteSize());
+ e = new CoerceExpression(e, lhsType, lhs.getSortOrder(), lhs.getByteSize());
return e;
}
@@ -100,7 +100,7 @@ public class RowValueConstructorExpression extends BaseCompoundExpression {
} else if ((rhsType == PDataType.TIMESTAMP || rhsType == PDataType.UNSIGNED_TIMESTAMP) && (lhsType != PDataType.TIMESTAMP && lhsType != PDataType.UNSIGNED_TIMESTAMP)) {
e = CeilTimestampExpression.create(rhs);
}
- e = new CoerceExpression(e, lhsType, lhs.getColumnModifier(), lhs.getByteSize());
+ e = new CoerceExpression(e, lhsType, lhs.getSortOrder(), lhs.getByteSize());
return e;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/StringConcatExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/StringConcatExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/StringConcatExpression.java
index 647734f..2bb6e45 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/StringConcatExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/StringConcatExpression.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.visitor.ExpressionVisitor;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -75,13 +75,13 @@ public class StringConcatExpression extends BaseCompoundExpression {
continue;
}
PDataType childType = children.get(i).getDataType();
- ColumnModifier columnModifier = children.get(i).getColumnModifier();
+ SortOrder sortOrder = children.get(i).getSortOrder();
// We could potentially not invert the bytes, but we might as well since we're allocating
// additional space here anyway.
if (childType.isCoercibleTo(PDataType.VARCHAR)) {
- result = ByteUtil.concat(result, ByteUtil.concat(columnModifier, ptr));
+ result = ByteUtil.concat(result, ByteUtil.concat(sortOrder, ptr));
} else {
- result = ByteUtil.concat(result, PDataType.VARCHAR.toBytes(childType.toObject(ptr, columnModifier).toString()));
+ result = ByteUtil.concat(result, PDataType.VARCHAR.toBytes(childType.toObject(ptr, sortOrder).toString()));
}
}
ptr.set(result);
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampAddExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampAddExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampAddExpression.java
index b9efe16..cafb6d7 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampAddExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampAddExpression.java
@@ -27,7 +27,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.query.QueryConstants;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.DateUtil;
@@ -62,15 +62,15 @@ public class TimestampAddExpression extends AddExpression {
}
BigDecimal value;
PDataType type = children.get(i).getDataType();
- ColumnModifier columnModifier = children.get(i).getColumnModifier();
+ SortOrder sortOrder = children.get(i).getSortOrder();
if(type == PDataType.TIMESTAMP || type == PDataType.UNSIGNED_TIMESTAMP) {
- value = (BigDecimal)(PDataType.DECIMAL.toObject(ptr, type, columnModifier));
+ value = (BigDecimal)(PDataType.DECIMAL.toObject(ptr, type, sortOrder));
} else if (type.isCoercibleTo(PDataType.DECIMAL)) {
- value = (((BigDecimal)PDataType.DECIMAL.toObject(ptr, columnModifier)).multiply(QueryConstants.BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
+ value = (((BigDecimal)PDataType.DECIMAL.toObject(ptr, sortOrder)).multiply(QueryConstants.BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
} else if (type.isCoercibleTo(PDataType.DOUBLE)) {
- value = ((BigDecimal.valueOf(type.getCodec().decodeDouble(ptr, columnModifier))).multiply(QueryConstants.BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
+ value = ((BigDecimal.valueOf(type.getCodec().decodeDouble(ptr, sortOrder))).multiply(QueryConstants.BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
} else {
- value = BigDecimal.valueOf(type.getCodec().decodeLong(ptr, columnModifier));
+ value = BigDecimal.valueOf(type.getCodec().decodeLong(ptr, sortOrder));
}
finalResult = finalResult.add(value);
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampSubtractExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampSubtractExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampSubtractExpression.java
index 21eee07..991d575 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampSubtractExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/TimestampSubtractExpression.java
@@ -26,7 +26,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.DateUtil;
@@ -59,15 +59,15 @@ public class TimestampSubtractExpression extends SubtractExpression {
}
BigDecimal value;
PDataType type = children.get(i).getDataType();
- ColumnModifier columnModifier = children.get(i).getColumnModifier();
+ SortOrder sortOrder = children.get(i).getSortOrder();
if(type == PDataType.TIMESTAMP || type == PDataType.UNSIGNED_TIMESTAMP) {
- value = (BigDecimal)(PDataType.DECIMAL.toObject(ptr, type, columnModifier));
+ value = (BigDecimal)(PDataType.DECIMAL.toObject(ptr, type, sortOrder));
} else if (type.isCoercibleTo(PDataType.DECIMAL)) {
- value = (((BigDecimal)PDataType.DECIMAL.toObject(ptr, columnModifier)).multiply(BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
+ value = (((BigDecimal)PDataType.DECIMAL.toObject(ptr, sortOrder)).multiply(BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
} else if (type.isCoercibleTo(PDataType.DOUBLE)) {
- value = ((BigDecimal.valueOf(type.getCodec().decodeDouble(ptr, columnModifier))).multiply(BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
+ value = ((BigDecimal.valueOf(type.getCodec().decodeDouble(ptr, sortOrder))).multiply(BD_MILLIS_IN_DAY)).setScale(6, RoundingMode.HALF_UP);
} else {
- value = BigDecimal.valueOf(type.getCodec().decodeLong(ptr, columnModifier));
+ value = BigDecimal.valueOf(type.getCodec().decodeLong(ptr, sortOrder));
}
if (i == 0) {
finalResult = value;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseAggregator.java
index 310d974..5c842cf 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseAggregator.java
@@ -21,11 +21,12 @@ package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
import org.apache.phoenix.expression.BaseTerminalExpression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.util.SizedUtil;
+import com.google.common.base.Preconditions;
+
/**
* Base class for Aggregator implementations
*
@@ -34,10 +35,11 @@ import org.apache.phoenix.util.SizedUtil;
*/
public abstract class BaseAggregator extends BaseTerminalExpression implements Aggregator {
- protected final ColumnModifier columnModifier;
+ protected final SortOrder sortOrder;
- public BaseAggregator(ColumnModifier columnModifier) {
- this.columnModifier = columnModifier;
+ public BaseAggregator(SortOrder sortOrder) {
+ Preconditions.checkNotNull(sortOrder);
+ this.sortOrder = sortOrder;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseDecimalStddevAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseDecimalStddevAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseDecimalStddevAggregator.java
index 9daef22..3335fd7 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseDecimalStddevAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseDecimalStddevAggregator.java
@@ -28,7 +28,7 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.util.Pair;
import org.apache.phoenix.expression.ColumnExpression;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.BigDecimalUtil;
@@ -44,8 +44,8 @@ public abstract class BaseDecimalStddevAggregator extends DistinctValueWithCount
private int colPrecision;
private int colScale;
- public BaseDecimalStddevAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(columnModifier);
+ public BaseDecimalStddevAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(sortOrder);
ColumnExpression stdDevColExp = (ColumnExpression)exps.get(0);
this.colPrecision = stdDevColExp.getMaxLength();
this.colScale = stdDevColExp.getScale();
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseStddevAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseStddevAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseStddevAggregator.java
index 15a1968..0af24f7 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseStddevAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/BaseStddevAggregator.java
@@ -26,7 +26,7 @@ import java.util.Map.Entry;
import org.apache.hadoop.hbase.index.util.ImmutableBytesPtr;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -39,8 +39,8 @@ public abstract class BaseStddevAggregator extends DistinctValueWithCountClientA
protected Expression stdDevColExp;
- public BaseStddevAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(columnModifier);
+ public BaseStddevAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(sortOrder);
this.stdDevColExp = exps.get(0);
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/CountAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/CountAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/CountAggregator.java
index efe67de..2782c59 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/CountAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/CountAggregator.java
@@ -20,8 +20,8 @@
package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.SizedUtil;
@@ -38,7 +38,7 @@ public class CountAggregator extends BaseAggregator {
private byte[] buffer = null;
public CountAggregator() {
- super(null);
+ super(SortOrder.getDefault());
}
public CountAggregator(LongSumAggregator clientAgg) {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevPopAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevPopAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevPopAggregator.java
index 18845a8..8b1c64a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevPopAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevPopAggregator.java
@@ -22,7 +22,7 @@ package org.apache.phoenix.expression.aggregator;
import java.util.List;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
/**
* Client side Aggregator for STDDEV_POP aggregations for DECIMAL data type.
@@ -32,8 +32,8 @@ import org.apache.phoenix.schema.ColumnModifier;
*/
public class DecimalStddevPopAggregator extends BaseDecimalStddevAggregator {
- public DecimalStddevPopAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(exps, columnModifier);
+ public DecimalStddevPopAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(exps, sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevSampAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevSampAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevSampAggregator.java
index faf2124..9f51dd5 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevSampAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalStddevSampAggregator.java
@@ -22,7 +22,7 @@ package org.apache.phoenix.expression.aggregator;
import java.util.List;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
/**
* Client side Aggregator for STDDEV_SAMP aggregations for DECIMAL data type.
@@ -32,8 +32,8 @@ import org.apache.phoenix.schema.ColumnModifier;
*/
public class DecimalStddevSampAggregator extends BaseDecimalStddevAggregator {
- public DecimalStddevSampAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(exps, columnModifier);
+ public DecimalStddevSampAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(exps, sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalSumAggregator.java
index 6e480ce..c3a337e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DecimalSumAggregator.java
@@ -23,7 +23,7 @@ import java.math.BigDecimal;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.SizedUtil;
@@ -40,8 +40,8 @@ public class DecimalSumAggregator extends BaseAggregator {
private BigDecimal sum = BigDecimal.ZERO;
private byte[] sumBuffer;
- public DecimalSumAggregator(ColumnModifier columnModifier, ImmutableBytesWritable ptr) {
- super(columnModifier);
+ public DecimalSumAggregator(SortOrder sortOrder, ImmutableBytesWritable ptr) {
+ super(sortOrder);
if (ptr != null) {
initBuffer();
sum = (BigDecimal)PDataType.DECIMAL.toObject(ptr);
@@ -62,7 +62,7 @@ public class DecimalSumAggregator extends BaseAggregator {
@Override
public void aggregate(Tuple tuple, ImmutableBytesWritable ptr) {
- BigDecimal value = (BigDecimal)getDataType().toObject(ptr, getInputDataType(), columnModifier);
+ BigDecimal value = (BigDecimal)getDataType().toObject(ptr, getInputDataType(), sortOrder);
sum = sum.add(value);
if (sumBuffer == null) {
sumBuffer = new byte[getDataType().getByteSize()];
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctCountClientAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctCountClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctCountClientAggregator.java
index 3045940..ed03984 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctCountClientAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctCountClientAggregator.java
@@ -20,7 +20,8 @@
package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.phoenix.schema.ColumnModifier;
+
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -32,8 +33,8 @@ import org.apache.phoenix.schema.tuple.Tuple;
*/
public class DistinctCountClientAggregator extends DistinctValueWithCountClientAggregator {
- public DistinctCountClientAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public DistinctCountClientAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java
index 4f313a9..676a346 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountClientAggregator.java
@@ -19,16 +19,22 @@
*/
package org.apache.phoenix.expression.aggregator;
-import java.io.*;
-import java.util.*;
+import java.io.ByteArrayInputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Map.Entry;
+import java.util.TreeMap;
import org.apache.hadoop.hbase.index.util.ImmutableBytesPtr;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.WritableUtils;
-import org.apache.phoenix.schema.ColumnModifier;
import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.SingleKeyValueTuple;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -44,8 +50,8 @@ public abstract class DistinctValueWithCountClientAggregator extends BaseAggrega
protected long totalCount = 0L;
protected Object cachedResult;
- public DistinctValueWithCountClientAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public DistinctValueWithCountClientAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
@@ -53,7 +59,7 @@ public abstract class DistinctValueWithCountClientAggregator extends BaseAggrega
if (tuple instanceof SingleKeyValueTuple) {
// Case when scanners do look ahead and re-aggregate result row.The result is already available in the ptr
PDataType resultDataType = getResultDataType();
- cachedResult = resultDataType.toObject(ptr, resultDataType, columnModifier);
+ cachedResult = resultDataType.toObject(ptr, resultDataType, sortOrder);
} else {
InputStream is = new ByteArrayInputStream(ptr.get(), ptr.getOffset() + 1, ptr.getLength() - 1);
try {
@@ -125,7 +131,7 @@ public abstract class DistinctValueWithCountClientAggregator extends BaseAggrega
};
Map<Object, Integer> sorted = new TreeMap<Object, Integer>(comparator);
for (Entry<ImmutableBytesPtr, Integer> entry : valueVsCount.entrySet()) {
- sorted.put(type.toObject(entry.getKey(), columnModifier), entry.getValue());
+ sorted.put(type.toObject(entry.getKey(), sortOrder), entry.getValue());
}
return sorted;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountServerAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountServerAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountServerAggregator.java
index 3c03b29..f33c173 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountServerAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DistinctValueWithCountServerAggregator.java
@@ -37,6 +37,7 @@ import org.apache.hadoop.hbase.index.util.ImmutableBytesPtr;
import org.apache.phoenix.query.QueryServices;
import org.apache.phoenix.query.QueryServicesOptions;
import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
import org.apache.phoenix.util.SizedUtil;
@@ -58,7 +59,7 @@ public class DistinctValueWithCountServerAggregator extends BaseAggregator {
private Map<ImmutableBytesPtr, Integer> valueVsCount = new HashMap<ImmutableBytesPtr, Integer>();
public DistinctValueWithCountServerAggregator(Configuration conf) {
- super(null);
+ super(SortOrder.getDefault());
compressThreshold = conf.getInt(QueryServices.DISTINCT_VALUE_COMPRESS_THRESHOLD_ATTRIB,
QueryServicesOptions.DEFAULT_DISTINCT_VALUE_COMPRESS_THRESHOLD);
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DoubleSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DoubleSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DoubleSumAggregator.java
index 246b718..8bd3f77 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DoubleSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/DoubleSumAggregator.java
@@ -21,7 +21,7 @@ package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.SizedUtil;
@@ -31,11 +31,11 @@ public class DoubleSumAggregator extends BaseAggregator {
private double sum = 0;
private byte[] buffer;
- public DoubleSumAggregator(ColumnModifier columnModifier, ImmutableBytesWritable ptr) {
- super(columnModifier);
+ public DoubleSumAggregator(SortOrder sortOrder, ImmutableBytesWritable ptr) {
+ super(sortOrder);
if (ptr != null) {
initBuffer();
- sum = PDataType.DOUBLE.getCodec().decodeDouble(ptr, columnModifier);
+ sum = PDataType.DOUBLE.getCodec().decodeDouble(ptr, sortOrder);
}
}
@@ -49,7 +49,7 @@ public class DoubleSumAggregator extends BaseAggregator {
@Override
public void aggregate(Tuple tuple, ImmutableBytesWritable ptr) {
- double value = getInputDataType().getCodec().decodeDouble(ptr, columnModifier);
+ double value = getInputDataType().getCodec().decodeDouble(ptr, sortOrder);
sum += value;
if (buffer == null) {
initBuffer();
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/IntSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/IntSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/IntSumAggregator.java
index 35bde52..14760ba 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/IntSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/IntSumAggregator.java
@@ -19,7 +19,7 @@
*/
package org.apache.phoenix.expression.aggregator;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
/**
@@ -31,8 +31,8 @@ import org.apache.phoenix.schema.PDataType;
*/
public class IntSumAggregator extends NumberSumAggregator {
- public IntSumAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public IntSumAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/LongSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/LongSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/LongSumAggregator.java
index 40c2e37..1ef896e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/LongSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/LongSumAggregator.java
@@ -19,7 +19,7 @@
*/
package org.apache.phoenix.expression.aggregator;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
/**
@@ -31,8 +31,8 @@ import org.apache.phoenix.schema.PDataType;
*/
public class LongSumAggregator extends NumberSumAggregator {
- public LongSumAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public LongSumAggregator() {
+ super(SortOrder.getDefault());
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MaxAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MaxAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MaxAggregator.java
index 85e1c66..103d18e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MaxAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MaxAggregator.java
@@ -22,7 +22,7 @@ package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
/**
@@ -33,8 +33,8 @@ import org.apache.phoenix.schema.ColumnModifier;
*/
abstract public class MaxAggregator extends MinAggregator {
- public MaxAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public MaxAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MinAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MinAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MinAggregator.java
index 8147866..386fcb5 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MinAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/MinAggregator.java
@@ -22,7 +22,7 @@ package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
import org.apache.phoenix.util.SizedUtil;
@@ -38,8 +38,8 @@ abstract public class MinAggregator extends BaseAggregator {
/** Used to store the accumulate the results of the MIN function */
protected final ImmutableBytesWritable value = new ImmutableBytesWritable(ByteUtil.EMPTY_BYTE_ARRAY);
- public MinAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public MinAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
@@ -63,7 +63,7 @@ abstract public class MinAggregator extends BaseAggregator {
* @return true if the first bytes writable should be kept
*/
protected boolean keepFirst(ImmutableBytesWritable ibw1, ImmutableBytesWritable ibw2) {
- return 0 >= getDataType().compareTo(ibw1, columnModifier, ibw2, columnModifier, getDataType());
+ return 0 >= getDataType().compareTo(ibw1, sortOrder, ibw2, sortOrder, getDataType());
}
private boolean isNull() {
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/NumberSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/NumberSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/NumberSumAggregator.java
index 236b854..f084716 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/NumberSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/NumberSumAggregator.java
@@ -21,7 +21,7 @@ package org.apache.phoenix.expression.aggregator;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.SizedUtil;
@@ -37,16 +37,16 @@ abstract public class NumberSumAggregator extends BaseAggregator {
private long sum = 0;
private byte[] buffer;
- public NumberSumAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public NumberSumAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
- public NumberSumAggregator(ColumnModifier columnModifier,
+ public NumberSumAggregator(SortOrder sortOrder,
ImmutableBytesWritable ptr) {
- this(columnModifier);
+ this(sortOrder);
if (ptr != null) {
initBuffer();
- sum = PDataType.LONG.getCodec().decodeLong(ptr, columnModifier);
+ sum = PDataType.LONG.getCodec().decodeLong(ptr, sortOrder);
}
}
@@ -68,7 +68,7 @@ abstract public class NumberSumAggregator extends BaseAggregator {
public void aggregate(Tuple tuple, ImmutableBytesWritable ptr) {
// Get either IntNative or LongNative depending on input type
long value = getInputDataType().getCodec().decodeLong(ptr,
- columnModifier);
+ sortOrder);
sum += value;
if (buffer == null) {
initBuffer();
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentRankClientAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentRankClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentRankClientAggregator.java
index 9c2ac1e..c7c1483 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentRankClientAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentRankClientAggregator.java
@@ -25,7 +25,7 @@ import java.util.Map.Entry;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.*;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -39,8 +39,8 @@ public class PercentRankClientAggregator extends DistinctValueWithCountClientAgg
private final List<Expression> exps;
- public PercentRankClientAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(columnModifier);
+ public PercentRankClientAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(sortOrder);
this.exps = exps;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileClientAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileClientAggregator.java
index 1d23b80..feb7f93 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileClientAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileClientAggregator.java
@@ -25,7 +25,7 @@ import java.util.Map.Entry;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.*;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -39,8 +39,8 @@ public class PercentileClientAggregator extends DistinctValueWithCountClientAggr
private final List<Expression> exps;
- public PercentileClientAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(columnModifier);
+ public PercentileClientAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(sortOrder);
this.exps = exps;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileDiscClientAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileDiscClientAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileDiscClientAggregator.java
index 79c290e..8699048 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileDiscClientAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/PercentileDiscClientAggregator.java
@@ -24,7 +24,7 @@ import java.util.Map.Entry;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.*;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -40,8 +40,8 @@ public class PercentileDiscClientAggregator extends DistinctValueWithCountClient
private final List<Expression> exps;
ColumnExpression columnExp = null;
- public PercentileDiscClientAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(columnModifier);
+ public PercentileDiscClientAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(sortOrder);
this.exps = exps;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevPopAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevPopAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevPopAggregator.java
index 9d1f1ca..48baf98 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevPopAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevPopAggregator.java
@@ -22,7 +22,7 @@ package org.apache.phoenix.expression.aggregator;
import java.util.List;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
/**
* Client side Aggregator for STDDEV_POP aggregations
@@ -32,8 +32,8 @@ import org.apache.phoenix.schema.ColumnModifier;
*/
public class StddevPopAggregator extends BaseStddevAggregator {
- public StddevPopAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(exps, columnModifier);
+ public StddevPopAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(exps, sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevSampAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevSampAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevSampAggregator.java
index 4a663b2..a3029bd 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevSampAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/StddevSampAggregator.java
@@ -22,7 +22,7 @@ package org.apache.phoenix.expression.aggregator;
import java.util.List;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
/**
* Client side Aggregator for STDDEV_SAMP aggregations
@@ -32,8 +32,8 @@ import org.apache.phoenix.schema.ColumnModifier;
*/
public class StddevSampAggregator extends BaseStddevAggregator {
- public StddevSampAggregator(List<Expression> exps, ColumnModifier columnModifier) {
- super(exps, columnModifier);
+ public StddevSampAggregator(List<Expression> exps, SortOrder sortOrder) {
+ super(exps, sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedIntSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedIntSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedIntSumAggregator.java
index ae9ab9b..4984fbe 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedIntSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedIntSumAggregator.java
@@ -19,7 +19,7 @@
*/
package org.apache.phoenix.expression.aggregator;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
/**
@@ -31,8 +31,8 @@ import org.apache.phoenix.schema.PDataType;
*/
public class UnsignedIntSumAggregator extends NumberSumAggregator {
- public UnsignedIntSumAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public UnsignedIntSumAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedLongSumAggregator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedLongSumAggregator.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedLongSumAggregator.java
index 06a68f4..418b01d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedLongSumAggregator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/aggregator/UnsignedLongSumAggregator.java
@@ -19,7 +19,7 @@
*/
package org.apache.phoenix.expression.aggregator;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
/**
@@ -32,8 +32,8 @@ import org.apache.phoenix.schema.PDataType;
*/
public class UnsignedLongSumAggregator extends NumberSumAggregator {
- public UnsignedLongSumAggregator(ColumnModifier columnModifier) {
- super(columnModifier);
+ public UnsignedLongSumAggregator(SortOrder sortOrder) {
+ super(sortOrder);
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java
index 17964e4..5bd225a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ArrayIndexFunction.java
@@ -56,7 +56,7 @@ public class ArrayIndexFunction extends ScalarFunction {
return true;
}
// Use Codec to prevent Integer object allocation
- int index = PDataType.INTEGER.getCodec().decodeInt(ptr, indexExpr.getColumnModifier());
+ int index = PDataType.INTEGER.getCodec().decodeInt(ptr, indexExpr.getSortOrder());
if(index < 0) {
throw new ParseException("Index cannot be negative :" + index);
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/AvgAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/AvgAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/AvgAggregateFunction.java
index a199050..e4a9fc1 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/AvgAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/AvgAggregateFunction.java
@@ -23,13 +23,13 @@ import java.math.BigDecimal;
import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
-
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
-import org.apache.phoenix.parse.*;
+import org.apache.phoenix.parse.AvgAggregateParseNode;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -74,7 +74,7 @@ public class AvgAggregateFunction extends CompositeAggregateFunction {
if (!countFunc.evaluate(tuple, ptr)) {
return false;
}
- long count = countFunc.getDataType().getCodec().decodeLong(ptr, null);
+ long count = countFunc.getDataType().getCodec().decodeLong(ptr, SortOrder.getDefault());
if (count == 0) {
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CeilTimestampExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CeilTimestampExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CeilTimestampExpression.java
index 4c0a33a..c81ae66 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CeilTimestampExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CeilTimestampExpression.java
@@ -29,7 +29,7 @@ import com.google.common.collect.Lists;
import org.apache.phoenix.expression.CoerceExpression;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.PDataType.PDataCodec;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -94,11 +94,11 @@ public class CeilTimestampExpression extends CeilDateExpression {
@Override
public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) {
if (children.get(0).evaluate(tuple, ptr)) {
- ColumnModifier columnModifier = children.get(0).getColumnModifier();
+ SortOrder sortOrder = children.get(0).getSortOrder();
PDataType dataType = getDataType();
- int nanos = dataType.getNanos(ptr, columnModifier);
+ int nanos = dataType.getNanos(ptr, sortOrder);
if (nanos > 0) {
- long millis = dataType.getMillis(ptr, columnModifier);
+ long millis = dataType.getMillis(ptr, sortOrder);
Timestamp roundedTs = new Timestamp(millis + 1);
byte[] byteValue = dataType.toBytes(roundedTs);
ptr.set(byteValue);
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CountAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CountAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CountAggregateFunction.java
index d517d8a..2e2b064 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CountAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/CountAggregateFunction.java
@@ -89,7 +89,7 @@ public class CountAggregateFunction extends SingleAggregateFunction {
// Since COUNT can never be null, ensure the aggregator is not nullable.
// This allows COUNT(*) to return 0 with the initial state of ClientAggregators
// when no rows are returned.
- return new LongSumAggregator(null) {
+ return new LongSumAggregator() {
@Override
public boolean isNullable() {
return false;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/DistinctCountAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/DistinctCountAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/DistinctCountAggregateFunction.java
index 3c40c9f..1c9c784 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/DistinctCountAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/DistinctCountAggregateFunction.java
@@ -91,7 +91,7 @@ public class DistinctCountAggregateFunction extends DelegateConstantToCountAggre
@Override
public DistinctCountClientAggregator newClientAggregator() {
- return new DistinctCountClientAggregator(getAggregatorExpression().getColumnModifier());
+ return new DistinctCountClientAggregator(getAggregatorExpression().getSortOrder());
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/InvertFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/InvertFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/InvertFunction.java
index b60d694..bb41323 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/InvertFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/InvertFunction.java
@@ -30,7 +30,7 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.query.KeyRange;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -50,14 +50,14 @@ public class InvertFunction extends ScalarFunction {
if (!getChildExpression().evaluate(tuple, ptr)) { return false; }
if (ptr.getLength() == 0) { return true; }
byte[] buf = new byte[ptr.getLength()];
- ColumnModifier.SORT_DESC.apply(ptr.get(), ptr.getOffset(), buf, 0, ptr.getLength());
+ SortOrder.invert(ptr.get(), ptr.getOffset(), buf, 0, ptr.getLength());
ptr.set(buf);
return true;
}
@Override
- public ColumnModifier getColumnModifier() {
- return getChildExpression().getColumnModifier() == null ? ColumnModifier.SORT_DESC : null;
+ public SortOrder getSortOrder() {
+ return getChildExpression().getSortOrder() == SortOrder.ASC ? SortOrder.DESC : SortOrder.ASC;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LTrimFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LTrimFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LTrimFunction.java
index 38b8388..80ca655 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LTrimFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LTrimFunction.java
@@ -27,7 +27,7 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -64,8 +64,8 @@ public class LTrimFunction extends ScalarFunction {
}
@Override
- public ColumnModifier getColumnModifier() {
- return children.get(0).getColumnModifier();
+ public SortOrder getSortOrder() {
+ return children.get(0).getSortOrder();
}
@Override
@@ -84,10 +84,8 @@ public class LTrimFunction extends ScalarFunction {
int offset = ptr.getOffset();
int length = ptr.getLength();
- ColumnModifier columnModifier = getStringExpression().getColumnModifier();
- // TODO: when we have ColumnModifier.REVERSE, we'll need to trim from the end instead of
- // the beginning (just delegate to RTrimFunction or replace from ExpressionCompiler instead?)
- int i = StringUtil.getFirstNonBlankCharIdxFromStart(string, offset, length, columnModifier);
+ SortOrder sortOrder = getStringExpression().getSortOrder();
+ int i = StringUtil.getFirstNonBlankCharIdxFromStart(string, offset, length, sortOrder);
if (i == offset + length) {
ptr.set(ByteUtil.EMPTY_BYTE_ARRAY);
return true;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LengthFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LengthFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LengthFunction.java
index e4396fa..478e523 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LengthFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LengthFunction.java
@@ -74,7 +74,7 @@ public class LengthFunction extends ScalarFunction {
len = ptr.getLength();
} else {
try {
- len = StringUtil.calculateUTF8Length(ptr.get(), ptr.getOffset(), ptr.getLength(), child.getColumnModifier());
+ len = StringUtil.calculateUTF8Length(ptr.get(), ptr.getOffset(), ptr.getLength(), child.getSortOrder());
} catch (UnsupportedEncodingException e) {
return false;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LowerFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LowerFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LowerFunction.java
index b8e731f..b2d0179 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LowerFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LowerFunction.java
@@ -28,7 +28,7 @@ public class LowerFunction extends ScalarFunction {
return false;
}
- String sourceStr = (String)PDataType.VARCHAR.toObject(ptr, getStrExpression().getColumnModifier());
+ String sourceStr = (String)PDataType.VARCHAR.toObject(ptr, getStrExpression().getSortOrder());
if (sourceStr == null) {
return true;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MaxAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MaxAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MaxAggregateFunction.java
index d2105e0..f1d156f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MaxAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MaxAggregateFunction.java
@@ -29,7 +29,7 @@ import org.apache.phoenix.expression.aggregator.MaxAggregator;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.parse.MaxAggregateParseNode;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
@@ -54,8 +54,8 @@ public class MaxAggregateFunction extends MinAggregateFunction {
@Override
public Aggregator newServerAggregator(Configuration conf) {
final PDataType type = getAggregatorExpression().getDataType();
- ColumnModifier columnModifier = getAggregatorExpression().getColumnModifier();
- return new MaxAggregator(columnModifier) {
+ SortOrder sortOrder = getAggregatorExpression().getSortOrder();
+ return new MaxAggregator(sortOrder) {
@Override
public PDataType getDataType() {
return type;
@@ -69,7 +69,7 @@ public class MaxAggregateFunction extends MinAggregateFunction {
}
@Override
- public ColumnModifier getColumnModifier() {
- return getAggregatorExpression().getColumnModifier();
+ public SortOrder getSortOrder() {
+ return getAggregatorExpression().getSortOrder();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MinAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MinAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MinAggregateFunction.java
index c691f04..f90ba86 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MinAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MinAggregateFunction.java
@@ -30,7 +30,7 @@ import org.apache.phoenix.expression.aggregator.MinAggregator;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.parse.MinAggregateParseNode;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -68,8 +68,8 @@ public class MinAggregateFunction extends DelegateConstantToCountAggregateFuncti
@Override
public Aggregator newServerAggregator(Configuration conf) {
final PDataType type = getAggregatorExpression().getDataType();
- ColumnModifier columnModifier = getAggregatorExpression().getColumnModifier();
- return new MinAggregator(columnModifier) {
+ SortOrder sortOrder = getAggregatorExpression().getSortOrder();
+ return new MinAggregator(sortOrder) {
@Override
public PDataType getDataType() {
return type;
@@ -78,8 +78,8 @@ public class MinAggregateFunction extends DelegateConstantToCountAggregateFuncti
}
@Override
- public ColumnModifier getColumnModifier() {
- return getAggregatorExpression().getColumnModifier();
+ public SortOrder getSortOrder() {
+ return getAggregatorExpression().getSortOrder();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentRankAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentRankAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentRankAggregateFunction.java
index f455332..f63514b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentRankAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentRankAggregateFunction.java
@@ -59,7 +59,7 @@ public class PercentRankAggregateFunction extends DistinctValueWithCountAggregat
@Override
public DistinctValueWithCountClientAggregator newClientAggregator() {
- return new PercentRankClientAggregator(children, getAggregatorExpression().getColumnModifier());
+ return new PercentRankClientAggregator(children, getAggregatorExpression().getSortOrder());
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileContAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileContAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileContAggregateFunction.java
index eb08872..4393c3d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileContAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileContAggregateFunction.java
@@ -60,7 +60,7 @@ public class PercentileContAggregateFunction extends DistinctValueWithCountAggre
@Override
public DistinctValueWithCountClientAggregator newClientAggregator() {
- return new PercentileClientAggregator(children, getAggregatorExpression().getColumnModifier());
+ return new PercentileClientAggregator(children, getAggregatorExpression().getSortOrder());
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileDiscAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileDiscAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileDiscAggregateFunction.java
index 99b1dfe..575fd13 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileDiscAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PercentileDiscAggregateFunction.java
@@ -61,7 +61,7 @@ public class PercentileDiscAggregateFunction extends DistinctValueWithCountAggre
@Override
public DistinctValueWithCountClientAggregator newClientAggregator() {
- return new PercentileDiscClientAggregator(children, getAggregatorExpression().getColumnModifier());
+ return new PercentileDiscClientAggregator(children, getAggregatorExpression().getSortOrder());
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RTrimFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RTrimFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RTrimFunction.java
index 8a99784..8a4e570 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RTrimFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RTrimFunction.java
@@ -31,7 +31,7 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.query.KeyRange;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -68,8 +68,8 @@ public class RTrimFunction extends ScalarFunction {
}
@Override
- public ColumnModifier getColumnModifier() {
- return children.get(0).getColumnModifier();
+ public SortOrder getSortOrder() {
+ return children.get(0).getSortOrder();
}
@Override
@@ -87,8 +87,8 @@ public class RTrimFunction extends ScalarFunction {
int offset = ptr.getOffset();
int length = ptr.getLength();
- ColumnModifier columnModifier = getStringExpression().getColumnModifier();
- int i = StringUtil.getFirstNonBlankCharIdxFromEnd(string, offset, length, columnModifier);
+ SortOrder sortOrder = getStringExpression().getSortOrder();
+ int i = StringUtil.getFirstNonBlankCharIdxFromEnd(string, offset, length, sortOrder);
if (i == offset - 1) {
ptr.set(ByteUtil.EMPTY_BYTE_ARRAY);
return true;