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:45 UTC
[6/6] git commit: 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.
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.
Project: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/commit/ae131f56
Tree: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/tree/ae131f56
Diff: http://git-wip-us.apache.org/repos/asf/incubator-phoenix/diff/ae131f56
Branch: refs/heads/master
Commit: ae131f560987039142ea5d0ed468c19d4aca565d
Parents: 04f703e
Author: Simon Toens <st...@apache.org>
Authored: Mon Feb 10 22:51:48 2014 +0900
Committer: Simon Toens <st...@apache.org>
Committed: Mon Feb 10 22:51:48 2014 +0900
----------------------------------------------------------------------
phoenix-core/src/main/antlr3/PhoenixSQL.g | 32 +-
.../phoenix/compile/CreateSequenceCompiler.java | 10 +-
.../apache/phoenix/compile/DeleteCompiler.java | 8 +-
.../phoenix/compile/ExpressionCompiler.java | 20 +-
.../phoenix/compile/ExpressionProjector.java | 2 +-
.../apache/phoenix/compile/FromCompiler.java | 2 +-
.../apache/phoenix/compile/JoinCompiler.java | 4 +-
.../apache/phoenix/compile/LimitCompiler.java | 4 +-
.../apache/phoenix/compile/OrderByCompiler.java | 6 +-
.../TrackOrderPreservingExpressionCompiler.java | 6 +-
.../apache/phoenix/compile/UpsertCompiler.java | 22 +-
.../apache/phoenix/compile/WhereOptimizer.java | 25 +-
.../coprocessor/MetaDataEndpointImpl.java | 32 +-
.../coprocessor/SequenceRegionObserver.java | 11 +-
.../UngroupedAggregateRegionObserver.java | 17 +-
.../expression/ArrayConstructorExpression.java | 2 +-
.../phoenix/expression/BaseExpression.java | 6 +-
.../phoenix/expression/CoerceExpression.java | 28 +-
.../phoenix/expression/ColumnExpression.java | 14 +-
.../expression/ComparisonExpression.java | 22 +-
.../phoenix/expression/DateAddExpression.java | 12 +-
.../expression/DateSubtractExpression.java | 12 +-
.../expression/DecimalAddExpression.java | 6 +-
.../expression/DecimalDivideExpression.java | 6 +-
.../expression/DecimalMultiplyExpression.java | 6 +-
.../expression/DecimalSubtractExpression.java | 8 +-
.../phoenix/expression/DoubleAddExpression.java | 2 +-
.../expression/DoubleDivideExpression.java | 2 +-
.../expression/DoubleMultiplyExpression.java | 2 +-
.../expression/DoubleSubtractExpression.java | 2 +-
.../phoenix/expression/InListExpression.java | 16 +-
.../phoenix/expression/LikeExpression.java | 4 +-
.../phoenix/expression/LiteralExpression.java | 43 +-
.../phoenix/expression/LongAddExpression.java | 2 +-
.../expression/LongDivideExpression.java | 2 +-
.../expression/LongMultiplyExpression.java | 2 +-
.../expression/LongSubtractExpression.java | 2 +-
.../expression/RowKeyColumnExpression.java | 2 +-
.../RowValueConstructorExpression.java | 4 +-
.../expression/StringConcatExpression.java | 8 +-
.../expression/TimestampAddExpression.java | 12 +-
.../expression/TimestampSubtractExpression.java | 12 +-
.../expression/aggregator/BaseAggregator.java | 12 +-
.../aggregator/BaseDecimalStddevAggregator.java | 6 +-
.../aggregator/BaseStddevAggregator.java | 6 +-
.../expression/aggregator/CountAggregator.java | 4 +-
.../aggregator/DecimalStddevPopAggregator.java | 6 +-
.../aggregator/DecimalStddevSampAggregator.java | 6 +-
.../aggregator/DecimalSumAggregator.java | 8 +-
.../DistinctCountClientAggregator.java | 7 +-
.../DistinctValueWithCountClientAggregator.java | 20 +-
.../DistinctValueWithCountServerAggregator.java | 3 +-
.../aggregator/DoubleSumAggregator.java | 10 +-
.../expression/aggregator/IntSumAggregator.java | 6 +-
.../aggregator/LongSumAggregator.java | 6 +-
.../expression/aggregator/MaxAggregator.java | 6 +-
.../expression/aggregator/MinAggregator.java | 8 +-
.../aggregator/NumberSumAggregator.java | 14 +-
.../aggregator/PercentRankClientAggregator.java | 6 +-
.../aggregator/PercentileClientAggregator.java | 6 +-
.../PercentileDiscClientAggregator.java | 6 +-
.../aggregator/StddevPopAggregator.java | 6 +-
.../aggregator/StddevSampAggregator.java | 6 +-
.../aggregator/UnsignedIntSumAggregator.java | 6 +-
.../aggregator/UnsignedLongSumAggregator.java | 6 +-
.../expression/function/ArrayIndexFunction.java | 2 +-
.../function/AvgAggregateFunction.java | 6 +-
.../function/CeilTimestampExpression.java | 8 +-
.../function/CountAggregateFunction.java | 2 +-
.../DistinctCountAggregateFunction.java | 2 +-
.../expression/function/InvertFunction.java | 8 +-
.../expression/function/LTrimFunction.java | 12 +-
.../expression/function/LengthFunction.java | 2 +-
.../expression/function/LowerFunction.java | 2 +-
.../function/MaxAggregateFunction.java | 10 +-
.../function/MinAggregateFunction.java | 10 +-
.../function/PercentRankAggregateFunction.java | 2 +-
.../PercentileContAggregateFunction.java | 2 +-
.../PercentileDiscAggregateFunction.java | 2 +-
.../expression/function/RTrimFunction.java | 10 +-
.../function/RegexpReplaceFunction.java | 4 +-
.../function/RegexpSubstrFunction.java | 4 +-
.../expression/function/ReverseFunction.java | 10 +-
.../function/RoundDateExpression.java | 8 +-
.../function/RoundDecimalExpression.java | 2 +-
.../function/RoundTimestampExpression.java | 8 +-
.../function/SqlTypeNameFunction.java | 2 +-
.../expression/function/StddevPopFunction.java | 4 +-
.../expression/function/StddevSampFunction.java | 4 +-
.../expression/function/SubstrFunction.java | 20 +-
.../function/SumAggregateFunction.java | 18 +-
.../expression/function/ToCharFunction.java | 2 +-
.../expression/function/ToDateFunction.java | 2 +-
.../expression/function/ToNumberFunction.java | 4 +-
.../expression/function/TrimFunction.java | 12 +-
.../expression/function/UpperFunction.java | 2 +-
.../apache/phoenix/index/IndexMaintainer.java | 16 +-
.../apache/phoenix/iterate/ExplainTable.java | 8 +-
.../phoenix/jdbc/PhoenixDatabaseMetaData.java | 12 +-
.../phoenix/jdbc/PhoenixParameterMetaData.java | 6 +-
.../apache/phoenix/jdbc/PhoenixStatement.java | 6 +-
.../org/apache/phoenix/parse/ColumnDef.java | 19 +-
.../phoenix/parse/IndexKeyConstraint.java | 12 +-
.../apache/phoenix/parse/ParseNodeFactory.java | 14 +-
.../phoenix/parse/PrimaryKeyConstraint.java | 26 +-
.../java/org/apache/phoenix/query/KeyRange.java | 6 +-
.../apache/phoenix/query/QueryConstants.java | 4 +-
.../apache/phoenix/schema/DelegateColumn.java | 4 +-
.../apache/phoenix/schema/DelegateDatum.java | 4 +-
.../apache/phoenix/schema/KeyValueSchema.java | 2 +-
.../apache/phoenix/schema/MetaDataClient.java | 40 +-
.../apache/phoenix/schema/PArrayDataType.java | 18 +-
.../org/apache/phoenix/schema/PColumnImpl.java | 21 +-
.../org/apache/phoenix/schema/PDataType.java | 579 ++++++++++---------
.../java/org/apache/phoenix/schema/PDatum.java | 4 +-
.../apache/phoenix/schema/PMetaDataImpl.java | 2 +-
.../org/apache/phoenix/schema/PTableImpl.java | 4 +-
.../org/apache/phoenix/schema/RowKeySchema.java | 4 +-
.../org/apache/phoenix/schema/SaltingUtil.java | 4 +-
.../org/apache/phoenix/schema/Sequence.java | 14 +-
.../org/apache/phoenix/schema/SortOrder.java | 142 +++++
.../org/apache/phoenix/schema/ValueSchema.java | 29 +-
.../java/org/apache/phoenix/util/ByteUtil.java | 14 +-
.../org/apache/phoenix/util/MetaDataUtil.java | 3 +-
.../org/apache/phoenix/util/SchemaUtil.java | 8 +-
.../org/apache/phoenix/util/StringUtil.java | 38 +-
.../apache/phoenix/compile/ScanRangesTest.java | 14 +-
.../end2end/DescColumnSortOrderTest.java | 555 ------------------
...RangeParallelIteratorRegionSplitterTest.java | 8 +-
.../apache/phoenix/end2end/SortOrderFTest.java | 554 ++++++++++++++++++
.../phoenix/end2end/index/IndexTestUtil.java | 6 +-
.../expression/ColumnExpressionTest.java | 9 +-
.../DescColumnSortOrderExpressionTest.java | 325 -----------
.../expression/SortOrderExpressionTest.java | 324 +++++++++++
.../filter/SkipScanFilterIntersectTest.java | 8 +-
.../phoenix/filter/SkipScanFilterTest.java | 8 +-
.../iterate/AggregateResultScannerTest.java | 6 +-
.../apache/phoenix/parse/QueryParserTest.java | 14 +-
.../apache/phoenix/schema/PDataTypeTest.java | 172 +++---
.../apache/phoenix/schema/RowKeySchemaTest.java | 12 +-
.../phoenix/schema/RowKeyValueAccessorTest.java | 2 +-
.../apache/phoenix/schema/SortOrderTest.java | 113 ++++
.../apache/phoenix/schema/ValueBitSetTest.java | 4 +-
.../org/apache/phoenix/util/ScanUtilTest.java | 14 +-
144 files changed, 2151 insertions(+), 1856 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/antlr3/PhoenixSQL.g
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/antlr3/PhoenixSQL.g b/phoenix-core/src/main/antlr3/PhoenixSQL.g
index 53abed6..fe478a3 100644
--- a/phoenix-core/src/main/antlr3/PhoenixSQL.g
+++ b/phoenix-core/src/main/antlr3/PhoenixSQL.g
@@ -136,7 +136,7 @@ import java.util.Stack;
import java.sql.SQLException;
import org.apache.phoenix.expression.function.CountAggregateFunction;
import org.apache.phoenix.query.QueryConstants;
-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.PIndexState;
@@ -407,29 +407,29 @@ drop_sequence_node returns [DropSequenceStatement ret]
;
pk_constraint returns [PrimaryKeyConstraint ret]
- : COMMA? CONSTRAINT n=identifier PRIMARY KEY LPAREN cols=col_name_with_mod_list RPAREN { $ret = factory.primaryKey(n,cols); }
+ : COMMA? CONSTRAINT n=identifier PRIMARY KEY LPAREN cols=col_name_with_sort_order_list RPAREN { $ret = factory.primaryKey(n,cols); }
;
-col_name_with_mod_list returns [List<Pair<ColumnName, ColumnModifier>> ret]
-@init{ret = new ArrayList<Pair<ColumnName, ColumnModifier>>(); }
- : p=col_name_with_mod {$ret.add(p);} (COMMA p = col_name_with_mod {$ret.add(p);} )*
+col_name_with_sort_order_list returns [List<Pair<ColumnName, SortOrder>> ret]
+@init{ret = new ArrayList<Pair<ColumnName, SortOrder>>(); }
+ : p=col_name_with_sort_order {$ret.add(p);} (COMMA p = col_name_with_sort_order {$ret.add(p);} )*
;
-col_name_with_mod returns [Pair<ColumnName, ColumnModifier> ret]
- : f=identifier (order=ASC|order=DESC)? {$ret = Pair.newPair(factory.columnName(f), order == null ? null : ColumnModifier.fromDDLValue(order.getText()));}
+col_name_with_sort_order returns [Pair<ColumnName, SortOrder> ret]
+ : f=identifier (order=ASC|order=DESC)? {$ret = Pair.newPair(factory.columnName(f), order == null ? SortOrder.getDefault() : SortOrder.fromDDLValue(order.getText()));}
;
index_pk_constraint returns [PrimaryKeyConstraint ret]
- : cols = col_def_name_with_mod_list {$ret = factory.primaryKey(null, cols); }
+ : cols = col_def_name_with_sort_order_list {$ret = factory.primaryKey(null, cols); }
;
-col_def_name_with_mod_list returns [List<Pair<ColumnName, ColumnModifier>> ret]
-@init{ret = new ArrayList<Pair<ColumnName, ColumnModifier>>(); }
- : p=col_def_name_with_mod {$ret.add(p);} (COMMA p = col_def_name_with_mod {$ret.add(p);} )*
+col_def_name_with_sort_order_list returns [List<Pair<ColumnName, SortOrder>> ret]
+@init{ret = new ArrayList<Pair<ColumnName, SortOrder>>(); }
+ : p=col_def_name_with_sort_order {$ret.add(p);} (COMMA p = col_def_name_with_sort_order {$ret.add(p);} )*
;
-col_def_name_with_mod returns [Pair<ColumnName, ColumnModifier> ret]
- : c=column_name (order=ASC|order=DESC)? {$ret = Pair.newPair(c, order == null ? null : ColumnModifier.fromDDLValue(order.getText()));}
+col_def_name_with_sort_order returns [Pair<ColumnName, SortOrder> ret]
+ : c=column_name (order=ASC|order=DESC)? {$ret = Pair.newPair(c, order == null ? SortOrder.getDefault() : SortOrder.fromDDLValue(order.getText()));}
;
fam_properties returns [ListMultimap<String,Pair<String,Object>> ret]
@@ -502,7 +502,7 @@ column_def returns [ColumnDef ret]
l == null ? null : Integer.parseInt( l.getText() ),
s == null ? null : Integer.parseInt( s.getText() ),
pk != null,
- order == null ? null : ColumnModifier.fromDDLValue(order.getText()) ); }
+ order == null ? SortOrder.getDefault() : SortOrder.fromDDLValue(order.getText()) ); }
;
dyn_column_defs returns [List<ColumnDef> ret]
@@ -516,7 +516,7 @@ dyn_column_def returns [ColumnDef ret]
l == null ? null : Integer.parseInt( l.getText() ),
s == null ? null : Integer.parseInt( s.getText() ),
false,
- null); }
+ SortOrder.getDefault()); }
;
dyn_column_name_or_def returns [ColumnDef ret]
@@ -525,7 +525,7 @@ dyn_column_name_or_def returns [ColumnDef ret]
l == null ? null : Integer.parseInt( l.getText() ),
s == null ? null : Integer.parseInt( s.getText() ),
false,
- null); }
+ SortOrder.getDefault()); }
;
select_expression returns [SelectStatement ret]
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/CreateSequenceCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/CreateSequenceCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/CreateSequenceCompiler.java
index c93afb8..3f367ad 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/CreateSequenceCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/CreateSequenceCompiler.java
@@ -37,7 +37,7 @@ import org.apache.phoenix.parse.CreateSequenceStatement;
import org.apache.phoenix.parse.ParseNode;
import org.apache.phoenix.query.QueryServices;
import org.apache.phoenix.query.QueryServicesOptions;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.MetaDataClient;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.PDatum;
@@ -78,8 +78,8 @@ public class CreateSequenceCompiler {
}
@Override
- public ColumnModifier getColumnModifier() {
- return null;
+ public SortOrder getSortOrder() {
+ return SortOrder.getDefault();
}
}
@@ -111,8 +111,8 @@ public class CreateSequenceCompiler {
}
@Override
- public ColumnModifier getColumnModifier() {
- return null;
+ public SortOrder getSortOrder() {
+ return SortOrder.getDefault();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
index 9e25c48..0aa408d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/DeleteCompiler.java
@@ -60,13 +60,13 @@ import org.apache.phoenix.query.KeyRange;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.query.QueryServices;
import org.apache.phoenix.query.QueryServicesOptions;
-import org.apache.phoenix.schema.ColumnModifier;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.PRow;
import org.apache.phoenix.schema.PTable;
import org.apache.phoenix.schema.PTableType;
import org.apache.phoenix.schema.ReadOnlyTableException;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.TableRef;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.IndexUtil;
@@ -107,9 +107,9 @@ public class DeleteCompiler {
byte[] byteValue = rs.getBytes(i+1-offset);
// The ResultSet.getBytes() call will have inverted it - we need to invert it back.
// TODO: consider going under the hood and just getting the bytes
- if (pkColumns.get(i).getColumnModifier() == ColumnModifier.SORT_DESC) {
+ if (pkColumns.get(i).getSortOrder() == SortOrder.DESC) {
byte[] tempByteValue = Arrays.copyOf(byteValue, byteValue.length);
- byteValue = ColumnModifier.SORT_DESC.apply(byteValue, 0, tempByteValue, 0, byteValue.length);
+ byteValue = SortOrder.invert(byteValue, 0, tempByteValue, 0, byteValue.length);
}
values[i] = byteValue;
}
@@ -344,7 +344,7 @@ public class DeleteCompiler {
long totalRowCount = 0;
while ((tuple=iterator.next()) != null) {// Runs query
KeyValue kv = tuple.getValue(0);
- totalRowCount += PDataType.LONG.getCodec().decodeLong(kv.getBuffer(), kv.getValueOffset(), null);
+ totalRowCount += PDataType.LONG.getCodec().decodeLong(kv.getBuffer(), kv.getValueOffset(), SortOrder.getDefault());
}
// Return total number of rows that have been delete. In the case of auto commit being off
// the mutations will all be in the mutation state of the current connection.
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
index f44f501..29f7cc2 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionCompiler.java
@@ -89,7 +89,7 @@ import org.apache.phoenix.parse.SequenceValueParseNode;
import org.apache.phoenix.parse.StringConcatParseNode;
import org.apache.phoenix.parse.SubtractParseNode;
import org.apache.phoenix.parse.UnsupportedAllParseNodeVisitor;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.ColumnNotFoundException;
import org.apache.phoenix.schema.ColumnRef;
import org.apache.phoenix.schema.DelegateDatum;
@@ -569,8 +569,8 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio
return PDataType.DEFAULT_SCALE;
}
@Override
- public ColumnModifier getColumnModifier() {
- return null;
+ public SortOrder getSortOrder() {
+ return SortOrder.getDefault();
}
};
@@ -696,8 +696,8 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio
return expression.getScale();
}
@Override
- public ColumnModifier getColumnModifier() {
- return expression.getColumnModifier();
+ public SortOrder getSortOrder() {
+ return expression.getSortOrder();
}
};
} else if (expression.getDataType() != null
@@ -725,8 +725,8 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio
return expression.getScale();
}
@Override
- public ColumnModifier getColumnModifier() {
- return expression.getColumnModifier();
+ public SortOrder getSortOrder() {
+ return expression.getSortOrder();
}
};
}
@@ -873,8 +873,8 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio
return expression.getScale();
}
@Override
- public ColumnModifier getColumnModifier() {
- return expression.getColumnModifier();
+ public SortOrder getSortOrder() {
+ return expression.getSortOrder();
}
};
}
@@ -1151,7 +1151,7 @@ public class ExpressionCompiler extends UnsupportedAllParseNodeVisitor<Expressio
Expression child = children.get(i);
isDeterministic &= child.isDeterministic();
child.evaluate(null, ptr);
- Object value = arrayElemDataType.toObject(ptr, child.getDataType(), child.getColumnModifier());
+ Object value = arrayElemDataType.toObject(ptr, child.getDataType(), child.getSortOrder());
elements[i] = LiteralExpression.newConstant(value, child.getDataType(), child.isDeterministic()).getValue();
}
Object value = PArrayDataType.instantiatePhoenixArray(arrayElemDataType, elements);
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionProjector.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionProjector.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionProjector.java
index 8b821f4..e36aa5e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionProjector.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/ExpressionProjector.java
@@ -75,7 +75,7 @@ public class ExpressionProjector implements ColumnProjector {
if (ptr.getLength() == 0) {
return null;
}
- return type.toObject(ptr, expression.getDataType(), expression.getColumnModifier());
+ return type.toObject(ptr, expression.getDataType(), expression.getSortOrder());
} catch (RuntimeException e) {
// FIXME: Expression.evaluate does not throw SQLException
// so this will unwrap throws from that.
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java
index 652a83d..7ad11e0 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/FromCompiler.java
@@ -292,7 +292,7 @@ public class FromCompiler {
familyName = PNameFactory.newName(family);
}
allcolumns.add(new PColumnImpl(name, familyName, dynColumn.getDataType(), dynColumn.getMaxLength(),
- dynColumn.getScale(), dynColumn.isNull(), position, dynColumn.getColumnModifier(), dynColumn.getArraySize()));
+ dynColumn.getScale(), dynColumn.isNull(), position, dynColumn.getSortOrder(), dynColumn.getArraySize()));
position++;
}
theTable = PTableImpl.makePTable(theTable, allcolumns);
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java
index bea89da..0afbd3f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/JoinCompiler.java
@@ -358,7 +358,7 @@ public class JoinCompiler {
PName name = PNameFactory.newName(displayName);
PColumnImpl column = new PColumnImpl(name, familyName, sourceColumn.getDataType(),
sourceColumn.getMaxLength(), sourceColumn.getScale(), sourceColumn.isNullable(),
- position, sourceColumn.getColumnModifier(), sourceColumn.getArraySize());
+ position, sourceColumn.getSortOrder(), sourceColumn.getArraySize());
Expression sourceExpression = new ColumnRef(sourceTable, sourceColumn.getPosition()).newColumnExpression();
projectedColumns.add(column);
sourceExpressions.add(sourceExpression);
@@ -1133,7 +1133,7 @@ public class JoinCompiler {
PColumnImpl column = new PColumnImpl(c.getName(),
PNameFactory.newName(ScanProjector.VALUE_COLUMN_FAMILY), c.getDataType(),
c.getMaxLength(), c.getScale(), innerJoin ? c.isNullable() : true, position++,
- c.getColumnModifier(), c.getArraySize());
+ c.getSortOrder(), c.getArraySize());
merged.add(column);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/LimitCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/LimitCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/LimitCompiler.java
index 1a9d3fd..5903451 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/LimitCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/LimitCompiler.java
@@ -50,8 +50,8 @@ public class LimitCompiler {
return null;
}
@Override
- public ColumnModifier getColumnModifier() {
- return null;
+ public SortOrder getSortOrder() {
+ return SortOrder.getDefault();
}
};
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
index 8b19cc7..33e538e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/OrderByCompiler.java
@@ -37,7 +37,7 @@ import org.apache.phoenix.expression.OrderByExpression;
import org.apache.phoenix.parse.FilterableStatement;
import org.apache.phoenix.parse.OrderByNode;
import org.apache.phoenix.query.ConnectionQueryServices.Feature;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
/**
* Validates ORDER BY clause and builds up a list of referenced columns.
@@ -90,7 +90,7 @@ public class OrderByCompiler {
for (OrderByNode node : orderByNodes) {
boolean isAscending = node.isAscending();
Expression expression = node.getNode().accept(visitor);
- if (!expression.isStateless() && visitor.addEntry(expression, isAscending ? null : ColumnModifier.SORT_DESC)) {
+ if (!expression.isStateless() && visitor.addEntry(expression, isAscending ? SortOrder.ASC : SortOrder.DESC)) {
// Detect mix of aggregate and non aggregates (i.e. ORDER BY txns, SUM(txns)
if (!visitor.isAggregate()) {
if (statement.isAggregate() || statement.isDistinct()) {
@@ -106,7 +106,7 @@ public class OrderByCompiler {
throw new SQLExceptionInfo.Builder(SQLExceptionCode.ORDER_BY_ARRAY_NOT_SUPPORTED)
.setMessage(expression.toString()).build().buildException();
}
- if (expression.getColumnModifier() == ColumnModifier.SORT_DESC) {
+ if (expression.getSortOrder() == SortOrder.DESC) {
isAscending = !isAscending;
}
OrderByExpression orderByExpression = new OrderByExpression(expression, node.isNullsLast(), isAscending);
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/TrackOrderPreservingExpressionCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/TrackOrderPreservingExpressionCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/TrackOrderPreservingExpressionCompiler.java
index a0c4674..9600e55 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/TrackOrderPreservingExpressionCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/TrackOrderPreservingExpressionCompiler.java
@@ -17,7 +17,7 @@ import org.apache.phoenix.parse.ColumnParseNode;
import org.apache.phoenix.parse.DivideParseNode;
import org.apache.phoenix.parse.MultiplyParseNode;
import org.apache.phoenix.parse.SubtractParseNode;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.ColumnRef;
import org.apache.phoenix.util.SchemaUtil;
@@ -158,10 +158,10 @@ public class TrackOrderPreservingExpressionCompiler extends ExpressionCompiler {
return true;
}
- public boolean addEntry(Expression expression, ColumnModifier modifier) {
+ public boolean addEntry(Expression expression, SortOrder sortOrder) {
// If the expression is sorted in a different order than the specified sort order
// then the expressions are not order preserving.
- if (!Objects.equal(expression.getColumnModifier(), modifier)) {
+ if (expression.getSortOrder() != sortOrder) {
if (isReverse == null) {
isReverse = true;
} else if (!isReverse){
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java
index c57466c..8554002 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/UpsertCompiler.java
@@ -70,7 +70,7 @@ import org.apache.phoenix.parse.UpsertStatement;
import org.apache.phoenix.query.ConnectionQueryServices;
import org.apache.phoenix.query.QueryServices;
import org.apache.phoenix.query.QueryServicesOptions;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.ColumnRef;
import org.apache.phoenix.schema.ConstraintViolationException;
import org.apache.phoenix.schema.PColumn;
@@ -136,11 +136,9 @@ public class UpsertCompiler {
Integer precision = rsPrecision == 0 ? null : rsPrecision;
int rsScale = rs.getMetaData().getScale(i+1);
Integer scale = rsScale == 0 ? null : rsScale;
- // If ColumnModifier from expression in SELECT doesn't match the
- // column being projected into then invert the bits.
- if (column.getColumnModifier() == ColumnModifier.SORT_DESC) {
+ if (column.getSortOrder() == SortOrder.DESC) {
byte[] tempByteValue = Arrays.copyOf(byteValue, byteValue.length);
- byteValue = ColumnModifier.SORT_DESC.apply(byteValue, 0, tempByteValue, 0, byteValue.length);
+ byteValue = SortOrder.invert(byteValue, 0, tempByteValue, 0, byteValue.length);
}
// We are guaranteed that the two column will have compatible types,
// as we checked that before.
@@ -572,7 +570,7 @@ public class UpsertCompiler {
long totalRowCount = 0;
while ((tuple=iterator.next()) != null) {// Runs query
KeyValue kv = tuple.getValue(0);
- totalRowCount += PDataType.LONG.getCodec().decodeLong(kv.getBuffer(), kv.getValueOffset(), null);
+ totalRowCount += PDataType.LONG.getCodec().decodeLong(kv.getBuffer(), kv.getValueOffset(), SortOrder.getDefault());
}
// Return total number of rows that have been updated. In the case of auto commit being off
// the mutations will all be in the mutation state of the current connection.
@@ -624,11 +622,11 @@ public class UpsertCompiler {
Object value = null;
byte[] byteValue = ByteUtil.copyKeyBytesIfNecessary(ptr);
if (constantExpression.getDataType() != null) {
- // If ColumnModifier from expression in SELECT doesn't match the
+ // If SortOrder from expression in SELECT doesn't match the
// column being projected into then invert the bits.
- if (constantExpression.getColumnModifier() != column.getColumnModifier()) {
+ if (constantExpression.getSortOrder() != column.getSortOrder()) {
byte[] tempByteValue = Arrays.copyOf(byteValue, byteValue.length);
- byteValue = ColumnModifier.SORT_DESC.apply(byteValue, 0, tempByteValue, 0, byteValue.length);
+ byteValue = SortOrder.invert(byteValue, 0, tempByteValue, 0, byteValue.length);
}
value = constantExpression.getDataType().toObject(byteValue);
if (!constantExpression.getDataType().isCoercibleTo(column.getDataType(), value)) {
@@ -717,7 +715,7 @@ public class UpsertCompiler {
if (isTopLevel()) {
context.getBindManager().addParamMetaData(node, column);
Object value = context.getBindManager().getBindValue(node);
- return LiteralExpression.newConstant(value, column.getDataType(), column.getColumnModifier(), true);
+ return LiteralExpression.newConstant(value, column.getDataType(), column.getSortOrder(), true);
}
return super.visit(node);
}
@@ -725,7 +723,7 @@ public class UpsertCompiler {
@Override
public Expression visit(LiteralParseNode node) throws SQLException {
if (isTopLevel()) {
- return LiteralExpression.newConstant(node.getValue(), column.getDataType(), column.getColumnModifier(), true);
+ return LiteralExpression.newConstant(node.getValue(), column.getDataType(), column.getSortOrder(), true);
}
return super.visit(node);
}
@@ -768,7 +766,7 @@ public class UpsertCompiler {
ImmutableBytesWritable ptr = context.getTempPtr();
literal.evaluate(null, ptr);
PColumn column = columnRef.getColumn();
- column.getDataType().coerceBytes(ptr, literal.getDataType(), literal.getColumnModifier(), column.getColumnModifier());
+ column.getDataType().coerceBytes(ptr, literal.getDataType(), literal.getSortOrder(), column.getSortOrder());
viewColumns.put(columnRef, ByteUtil.copyKeyBytesIfNecessary(ptr));
return super.visitLeave(node, children);
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java b/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
index de9d034..d0bb98d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/compile/WhereOptimizer.java
@@ -51,7 +51,7 @@ import org.apache.phoenix.parse.FilterableStatement;
import org.apache.phoenix.parse.HintNode.Hint;
import org.apache.phoenix.query.KeyRange;
import org.apache.phoenix.query.QueryConstants;
-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.PName;
@@ -381,14 +381,14 @@ public class WhereOptimizer {
// For the actual type of the coerceBytes call, we use the node type instead of the rhs type, because
// for IN, the rhs type will be VARBINARY and no coerce will be done in that case (and we need it to
// be done).
- node.getChild().getDataType().coerceBytes(ptr, node.getDataType(), rhs.getColumnModifier(), node.getChild().getColumnModifier());
+ node.getChild().getDataType().coerceBytes(ptr, node.getDataType(), rhs.getSortOrder(), node.getChild().getSortOrder());
lower = ByteUtil.copyKeyBytesIfNecessary(ptr);
}
byte[] upper = range.getUpperRange();
if (!range.upperUnbound()) {
ptr.set(upper);
// Do the reverse translation so we can optimize out the coerce expression
- node.getChild().getDataType().coerceBytes(ptr, node.getDataType(), rhs.getColumnModifier(), node.getChild().getColumnModifier());
+ node.getChild().getDataType().coerceBytes(ptr, node.getDataType(), rhs.getSortOrder(), node.getChild().getSortOrder());
upper = ByteUtil.copyKeyBytesIfNecessary(ptr);
}
return KeyRange.getKeyRange(lower, range.isLowerInclusive(), upper, range.isUpperInclusive());
@@ -669,13 +669,8 @@ public class WhereOptimizer {
KeySlots childSlots = childParts.get(0);
KeySlot childSlot = childSlots.iterator().next();
KeyPart childPart = childSlot.getKeyPart();
- ColumnModifier modifier = childPart.getColumn().getColumnModifier();
- CompareOp op = node.getFilterOp();
- // For descending columns, the operator needs to be transformed to
- // it's opposite, since the range is backwards.
- if (modifier != null) {
- op = modifier.transform(op);
- }
+ SortOrder sortOrder = childPart.getColumn().getSortOrder();
+ CompareOp op = sortOrder.transform(node.getFilterOp());
KeyRange keyRange = childPart.getKeyRange(op, rhs);
return newKeyParts(childSlot, node, keyRange);
}
@@ -719,7 +714,7 @@ public class WhereOptimizer {
KeySlots childSlots = childParts.get(0);
KeySlot childSlot = childSlots.iterator().next();
final String startsWith = node.getLiteralPrefix();
- byte[] key = PDataType.CHAR.toBytes(startsWith, node.getChildren().get(0).getColumnModifier());
+ byte[] key = PDataType.CHAR.toBytes(startsWith, node.getChildren().get(0).getSortOrder());
// If the expression is an equality expression against a fixed length column
// and the key length doesn't match the column length, the expression can
// never be true.
@@ -755,7 +750,7 @@ public class WhereOptimizer {
List<KeyRange> ranges = Lists.newArrayListWithExpectedSize(keyExpressions.size());
KeySlot childSlot = childParts.get(0).iterator().next();
KeyPart childPart = childSlot.getKeyPart();
- ColumnModifier mod = node.getChildren().get(0).getColumnModifier();
+ SortOrder sortOrder = node.getChildren().get(0).getSortOrder();
// We can only optimize a row value constructor that is fully qualified
if (childSlot.getPKSpan() > 1 && !isFullyQualified(childSlot.getPKSpan())) {
// Just return a key part that has the min/max of the IN list, but doesn't
@@ -769,7 +764,7 @@ public class WhereOptimizer {
for (Expression key : keyExpressions) {
KeyRange range = childPart.getKeyRange(CompareOp.EQUAL, key);
if (range != KeyRange.EMPTY_RANGE) { // null means it can't possibly be in range
- if (mod != null) {
+ if (sortOrder == SortOrder.DESC) {
range = range.invert();
}
ranges.add(range);
@@ -1109,8 +1104,8 @@ public class WhereOptimizer {
}
@Override
- public ColumnModifier getColumnModifier() {
- return childPart.getColumn().getColumnModifier();
+ public SortOrder getSortOrder() {
+ return childPart.getColumn().getSortOrder();
}
};
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
index bc357b1..ca8e1cc 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/MetaDataEndpointImpl.java
@@ -23,7 +23,7 @@ import static com.google.common.collect.Lists.newArrayList;
import static org.apache.hadoop.hbase.filter.CompareFilter.CompareOp.EQUAL;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.ARRAY_SIZE;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_COUNT_BYTES;
-import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_MODIFIER;
+import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.SORT_ORDER;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_NAME_INDEX;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.COLUMN_SIZE;
import static org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.DATA_TABLE_NAME_BYTES;
@@ -88,7 +88,7 @@ import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.schema.AmbiguousColumnException;
import org.apache.phoenix.schema.ColumnFamilyNotFoundException;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.ColumnNotFoundException;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PColumnFamily;
@@ -184,7 +184,7 @@ public class MetaDataEndpointImpl extends BaseEndpointCoprocessor implements Met
private static final KeyValue NULLABLE_KV = KeyValue.createFirstOnRow(ByteUtil.EMPTY_BYTE_ARRAY, TABLE_FAMILY_BYTES, Bytes.toBytes(NULLABLE));
private static final KeyValue DATA_TYPE_KV = KeyValue.createFirstOnRow(ByteUtil.EMPTY_BYTE_ARRAY, TABLE_FAMILY_BYTES, Bytes.toBytes(DATA_TYPE));
private static final KeyValue ORDINAL_POSITION_KV = KeyValue.createFirstOnRow(ByteUtil.EMPTY_BYTE_ARRAY, TABLE_FAMILY_BYTES, Bytes.toBytes(ORDINAL_POSITION));
- private static final KeyValue COLUMN_MODIFIER_KV = KeyValue.createFirstOnRow(ByteUtil.EMPTY_BYTE_ARRAY, TABLE_FAMILY_BYTES, Bytes.toBytes(COLUMN_MODIFIER));
+ private static final KeyValue SORT_ORDER_KV = KeyValue.createFirstOnRow(ByteUtil.EMPTY_BYTE_ARRAY, TABLE_FAMILY_BYTES, Bytes.toBytes(SORT_ORDER));
private static final KeyValue ARRAY_SIZE_KV = KeyValue.createFirstOnRow(ByteUtil.EMPTY_BYTE_ARRAY, TABLE_FAMILY_BYTES, Bytes.toBytes(ARRAY_SIZE));
private static final List<KeyValue> COLUMN_KV_COLUMNS = Arrays.<KeyValue>asList(
DECIMAL_DIGITS_KV,
@@ -192,7 +192,7 @@ public class MetaDataEndpointImpl extends BaseEndpointCoprocessor implements Met
NULLABLE_KV,
DATA_TYPE_KV,
ORDINAL_POSITION_KV,
- COLUMN_MODIFIER_KV,
+ SORT_ORDER_KV,
DATA_TABLE_NAME_KV, // included in both column and table row for metadata APIs
ARRAY_SIZE_KV
);
@@ -204,7 +204,7 @@ public class MetaDataEndpointImpl extends BaseEndpointCoprocessor implements Met
private static final int NULLABLE_INDEX = COLUMN_KV_COLUMNS.indexOf(NULLABLE_KV);
private static final int SQL_DATA_TYPE_INDEX = COLUMN_KV_COLUMNS.indexOf(DATA_TYPE_KV);
private static final int ORDINAL_POSITION_INDEX = COLUMN_KV_COLUMNS.indexOf(ORDINAL_POSITION_KV);
- private static final int COLUMN_MODIFIER_INDEX = COLUMN_KV_COLUMNS.indexOf(COLUMN_MODIFIER_KV);
+ private static final int SORT_ORDER_INDEX = COLUMN_KV_COLUMNS.indexOf(SORT_ORDER_KV);
private static final int ARRAY_SIZE_INDEX = COLUMN_KV_COLUMNS.indexOf(ARRAY_SIZE_KV);
private static final int LINK_TYPE_INDEX = 0;
@@ -299,20 +299,20 @@ public class MetaDataEndpointImpl extends BaseEndpointCoprocessor implements Met
throw new IllegalStateException("Didn't find all required key values in '" + colName.getString() + "' column metadata row");
}
KeyValue columnSizeKv = colKeyValues[COLUMN_SIZE_INDEX];
- Integer maxLength = columnSizeKv == null ? null : PDataType.INTEGER.getCodec().decodeInt(columnSizeKv.getBuffer(), columnSizeKv.getValueOffset(), null);
+ Integer maxLength = columnSizeKv == null ? null : PDataType.INTEGER.getCodec().decodeInt(columnSizeKv.getBuffer(), columnSizeKv.getValueOffset(), SortOrder.getDefault());
KeyValue decimalDigitKv = colKeyValues[DECIMAL_DIGITS_INDEX];
- Integer scale = decimalDigitKv == null ? null : PDataType.INTEGER.getCodec().decodeInt(decimalDigitKv.getBuffer(), decimalDigitKv.getValueOffset(), null);
+ Integer scale = decimalDigitKv == null ? null : PDataType.INTEGER.getCodec().decodeInt(decimalDigitKv.getBuffer(), decimalDigitKv.getValueOffset(), SortOrder.getDefault());
KeyValue ordinalPositionKv = colKeyValues[ORDINAL_POSITION_INDEX];
- int position = PDataType.INTEGER.getCodec().decodeInt(ordinalPositionKv.getBuffer(), ordinalPositionKv.getValueOffset(), null);
+ int position = PDataType.INTEGER.getCodec().decodeInt(ordinalPositionKv.getBuffer(), ordinalPositionKv.getValueOffset(), SortOrder.getDefault());
KeyValue nullableKv = colKeyValues[NULLABLE_INDEX];
- boolean isNullable = PDataType.INTEGER.getCodec().decodeInt(nullableKv.getBuffer(), nullableKv.getValueOffset(), null) != ResultSetMetaData.columnNoNulls;
+ boolean isNullable = PDataType.INTEGER.getCodec().decodeInt(nullableKv.getBuffer(), nullableKv.getValueOffset(), SortOrder.getDefault()) != ResultSetMetaData.columnNoNulls;
KeyValue sqlDataTypeKv = colKeyValues[SQL_DATA_TYPE_INDEX];
- PDataType dataType = PDataType.fromTypeId(PDataType.INTEGER.getCodec().decodeInt(sqlDataTypeKv.getBuffer(), sqlDataTypeKv.getValueOffset(), null));
+ PDataType dataType = PDataType.fromTypeId(PDataType.INTEGER.getCodec().decodeInt(sqlDataTypeKv.getBuffer(), sqlDataTypeKv.getValueOffset(), SortOrder.getDefault()));
if (maxLength == null && dataType == PDataType.BINARY) dataType = PDataType.VARBINARY; // For backward compatibility.
- KeyValue columnModifierKv = colKeyValues[COLUMN_MODIFIER_INDEX];
- ColumnModifier sortOrder = columnModifierKv == null ? null : ColumnModifier.fromSystemValue(PDataType.INTEGER.getCodec().decodeInt(columnModifierKv.getBuffer(), columnModifierKv.getValueOffset(), null));
+ KeyValue sortOrderKv = colKeyValues[SORT_ORDER_INDEX];
+ SortOrder sortOrder = sortOrderKv == null ? SortOrder.getDefault() : SortOrder.fromSystemValue(PDataType.INTEGER.getCodec().decodeInt(sortOrderKv.getBuffer(), sortOrderKv.getValueOffset(), SortOrder.getDefault()));
KeyValue arraySizeKv = colKeyValues[ARRAY_SIZE_INDEX];
- Integer arraySize = arraySizeKv == null ? null : PDataType.INTEGER.getCodec().decodeInt(arraySizeKv.getBuffer(), arraySizeKv.getValueOffset(), null);
+ Integer arraySize = arraySizeKv == null ? null : PDataType.INTEGER.getCodec().decodeInt(arraySizeKv.getBuffer(), arraySizeKv.getValueOffset(), SortOrder.getDefault());
PColumn column = new PColumnImpl(colName, famName, dataType, maxLength, scale, isNullable, position-1, sortOrder, arraySize);
columns.add(column);
}
@@ -379,13 +379,13 @@ public class MetaDataEndpointImpl extends BaseEndpointCoprocessor implements Met
KeyValue tableTypeKv = tableKeyValues[TABLE_TYPE_INDEX];
PTableType tableType = PTableType.fromSerializedValue(tableTypeKv.getBuffer()[tableTypeKv.getValueOffset()]);
KeyValue tableSeqNumKv = tableKeyValues[TABLE_SEQ_NUM_INDEX];
- long tableSeqNum = PDataType.LONG.getCodec().decodeLong(tableSeqNumKv.getBuffer(), tableSeqNumKv.getValueOffset(), null);
+ long tableSeqNum = PDataType.LONG.getCodec().decodeLong(tableSeqNumKv.getBuffer(), tableSeqNumKv.getValueOffset(), SortOrder.getDefault());
KeyValue columnCountKv = tableKeyValues[COLUMN_COUNT_INDEX];
- int columnCount = PDataType.INTEGER.getCodec().decodeInt(columnCountKv.getBuffer(), columnCountKv.getValueOffset(), null);
+ int columnCount = PDataType.INTEGER.getCodec().decodeInt(columnCountKv.getBuffer(), columnCountKv.getValueOffset(), SortOrder.getDefault());
KeyValue pkNameKv = tableKeyValues[PK_NAME_INDEX];
PName pkName = pkNameKv != null ? newPName(pkNameKv.getBuffer(), pkNameKv.getValueOffset(), pkNameKv.getValueLength()) : null;
KeyValue saltBucketNumKv = tableKeyValues[SALT_BUCKETS_INDEX];
- Integer saltBucketNum = saltBucketNumKv != null ? (Integer)PDataType.INTEGER.getCodec().decodeInt(saltBucketNumKv.getBuffer(), saltBucketNumKv.getValueOffset(), null) : null;
+ Integer saltBucketNum = saltBucketNumKv != null ? (Integer)PDataType.INTEGER.getCodec().decodeInt(saltBucketNumKv.getBuffer(), saltBucketNumKv.getValueOffset(), SortOrder.getDefault()) : null;
KeyValue dataTableNameKv = tableKeyValues[DATA_TABLE_NAME_INDEX];
PName dataTableName = dataTableNameKv != null ? newPName(dataTableNameKv.getBuffer(), dataTableNameKv.getValueOffset(), dataTableNameKv.getValueLength()) : null;
KeyValue indexStateKv = tableKeyValues[INDEX_STATE_INDEX];
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/SequenceRegionObserver.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/SequenceRegionObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/SequenceRegionObserver.java
index f1bebd4..6014a2d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/SequenceRegionObserver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/SequenceRegionObserver.java
@@ -29,6 +29,7 @@ import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.Sequence;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.util.ByteUtil;
import org.apache.phoenix.util.KeyValueUtil;
import org.apache.phoenix.util.MetaDataUtil;
@@ -108,9 +109,9 @@ public class SequenceRegionObserver extends BaseRegionObserver {
KeyValue currentValueKV = Sequence.getCurrentValueKV(result);
KeyValue incrementByKV = Sequence.getIncrementByKV(result);
KeyValue cacheSizeKV = Sequence.getCacheSizeKV(result);
- long value = PDataType.LONG.getCodec().decodeLong(currentValueKV.getBuffer(), currentValueKV.getValueOffset(), null);
- long incrementBy = PDataType.LONG.getCodec().decodeLong(incrementByKV.getBuffer(), incrementByKV.getValueOffset(), null);
- int cacheSize = PDataType.INTEGER.getCodec().decodeInt(cacheSizeKV.getBuffer(), cacheSizeKV.getValueOffset(), null);
+ long value = PDataType.LONG.getCodec().decodeLong(currentValueKV.getBuffer(), currentValueKV.getValueOffset(), SortOrder.getDefault());
+ long incrementBy = PDataType.LONG.getCodec().decodeLong(incrementByKV.getBuffer(), incrementByKV.getValueOffset(), SortOrder.getDefault());
+ int cacheSize = PDataType.INTEGER.getCodec().decodeInt(cacheSizeKV.getBuffer(), cacheSizeKV.getValueOffset(), SortOrder.getDefault());
value += incrementBy * cacheSize;
byte[] valueBuffer = new byte[PDataType.LONG.getByteSize()];
PDataType.LONG.getCodec().encodeLong(value, valueBuffer, 0);
@@ -211,8 +212,8 @@ public class SequenceRegionObserver extends BaseRegionObserver {
switch (op) {
case RETURN_SEQUENCE:
KeyValue currentValueKV = result.raw()[0];
- long expectedValue = PDataType.LONG.getCodec().decodeLong(append.getAttribute(CURRENT_VALUE_ATTRIB), 0, null);
- long value = PDataType.LONG.getCodec().decodeLong(currentValueKV.getBuffer(), currentValueKV.getValueOffset(), null);
+ long expectedValue = PDataType.LONG.getCodec().decodeLong(append.getAttribute(CURRENT_VALUE_ATTRIB), 0, SortOrder.getDefault());
+ long value = PDataType.LONG.getCodec().decodeLong(currentValueKV.getBuffer(), currentValueKV.getValueOffset(), SortOrder.getDefault());
// Timestamp should match exactly, or we may have the wrong sequence
if (expectedValue != value || currentValueKV.getTimestamp() != clientTimestamp) {
return new Result(Collections.singletonList(KeyValueUtil.newKeyValue(row, PhoenixDatabaseMetaData.SEQUENCE_FAMILY_BYTES, QueryConstants.EMPTY_COLUMN_BYTES, currentValueKV.getTimestamp(), ByteUtil.EMPTY_BYTE_ARRAY)));
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
index 9207588..004a5d8 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java
@@ -57,6 +57,7 @@ import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
+
import org.apache.phoenix.client.KeyValueBuilder;
import org.apache.phoenix.exception.ValueTypeIncompatibleException;
import org.apache.phoenix.expression.Expression;
@@ -69,7 +70,7 @@ import org.apache.phoenix.join.HashJoinInfo;
import org.apache.phoenix.join.ScanProjector;
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.query.QueryServicesOptions;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.ConstraintViolationException;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PDataType;
@@ -212,10 +213,10 @@ public class UngroupedAggregateRegionObserver extends BaseScannerRegionObserver
Expression expression = selectExpressions.get(i);
if (expression.evaluate(result, ptr)) {
values[i] = ptr.copyBytes();
- // If ColumnModifier from expression in SELECT doesn't match the
+ // If SortOrder from expression in SELECT doesn't match the
// column being projected into then invert the bits.
- if (expression.getColumnModifier() != projectedColumns.get(i).getColumnModifier()) {
- ColumnModifier.SORT_DESC.apply(values[i], 0, values[i], 0, values[i].length);
+ if (expression.getSortOrder() != projectedColumns.get(i).getSortOrder()) {
+ SortOrder.invert(values[i], 0, values[i], 0, values[i].length);
}
}
}
@@ -226,11 +227,11 @@ public class UngroupedAggregateRegionObserver extends BaseScannerRegionObserver
if (expression.evaluate(result, ptr)) {
PColumn column = projectedColumns.get(i);
byte[] bytes = ptr.copyBytes();
- Object value = expression.getDataType().toObject(bytes, column.getColumnModifier());
- // If ColumnModifier from expression in SELECT doesn't match the
+ Object value = expression.getDataType().toObject(bytes, column.getSortOrder());
+ // If SortOrder from expression in SELECT doesn't match the
// column being projected into then invert the bits.
- if (expression.getColumnModifier() != column.getColumnModifier()) {
- ColumnModifier.SORT_DESC.apply(bytes, 0, bytes, 0, bytes.length);
+ if (expression.getSortOrder() != column.getSortOrder()) {
+ SortOrder.invert(bytes, 0, bytes, 0, bytes.length);
}
// We are guaranteed that the two column will have the same type.
if (!column.getDataType().isSizeCompatible(column.getDataType(),
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java
index dbf0ad1..4df9a87 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/ArrayConstructorExpression.java
@@ -75,7 +75,7 @@ public class ArrayConstructorExpression extends BaseCompoundExpression {
return false;
}
} else {
- elements[i] = baseType.toObject(ptr, child.getDataType(), child.getColumnModifier());
+ elements[i] = baseType.toObject(ptr, child.getDataType(), child.getSortOrder());
}
}
if (position >= 0) position = elements.length;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/BaseExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/BaseExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/BaseExpression.java
index dc00566..8eb5e38 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/BaseExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/BaseExpression.java
@@ -28,7 +28,7 @@ import java.util.Iterator;
import java.util.List;
import org.apache.phoenix.expression.visitor.ExpressionVisitor;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
@@ -62,8 +62,8 @@ public abstract class BaseExpression implements Expression {
}
@Override
- public ColumnModifier getColumnModifier() {
- return null;
+ public SortOrder getSortOrder() {
+ return SortOrder.getDefault();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/CoerceExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/CoerceExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/CoerceExpression.java
index b75041f..dce4cbf 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/CoerceExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/CoerceExpression.java
@@ -27,16 +27,17 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.io.WritableUtils;
-
import org.apache.phoenix.expression.visitor.ExpressionVisitor;
-import org.apache.phoenix.schema.ColumnModifier;
import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
+import com.google.common.base.Preconditions;
+
public class CoerceExpression extends BaseSingleExpression {
private PDataType toType;
- private ColumnModifier toMod;
+ private SortOrder toSortOrder;
private Integer byteSize;
public CoerceExpression() {
@@ -51,13 +52,14 @@ public class CoerceExpression extends BaseSingleExpression {
//Package protected for tests
CoerceExpression(Expression expression, PDataType toType) {
- this(expression, toType, null, null);
+ this(expression, toType, SortOrder.getDefault(), null);
}
- CoerceExpression(Expression expression, PDataType toType, ColumnModifier toMod, Integer byteSize) {
+ CoerceExpression(Expression expression, PDataType toType, SortOrder toSortOrder, Integer byteSize) {
super(expression);
+ Preconditions.checkNotNull(toSortOrder);
this.toType = toType;
- this.toMod = toMod;
+ this.toSortOrder = toSortOrder;
this.byteSize = byteSize;
}
@@ -76,7 +78,7 @@ public class CoerceExpression extends BaseSingleExpression {
final int prime = 31;
int result = 1;
result = prime * result + ((byteSize == null) ? 0 : byteSize.hashCode());
- result = prime * result + ((toMod == null) ? 0 : toMod.hashCode());
+ result = prime * result + ((toSortOrder == null) ? 0 : toSortOrder.hashCode());
result = prime * result + ((toType == null) ? 0 : toType.hashCode());
return result;
}
@@ -90,7 +92,7 @@ public class CoerceExpression extends BaseSingleExpression {
if (byteSize == null) {
if (other.byteSize != null) return false;
} else if (!byteSize.equals(other.byteSize)) return false;
- if (toMod != other.toMod) return false;
+ if (toSortOrder != other.toSortOrder) return false;
if (toType != other.toType) return false;
return true;
}
@@ -99,7 +101,7 @@ public class CoerceExpression extends BaseSingleExpression {
public void readFields(DataInput input) throws IOException {
super.readFields(input);
toType = PDataType.values()[WritableUtils.readVInt(input)];
- toMod = ColumnModifier.fromSystemValue(WritableUtils.readVInt(input));
+ toSortOrder = SortOrder.fromSystemValue(WritableUtils.readVInt(input));
int byteSize = WritableUtils.readVInt(input);
this.byteSize = byteSize == -1 ? null : byteSize;
}
@@ -108,14 +110,14 @@ public class CoerceExpression extends BaseSingleExpression {
public void write(DataOutput output) throws IOException {
super.write(output);
WritableUtils.writeVInt(output, toType.ordinal());
- WritableUtils.writeVInt(output, ColumnModifier.toSystemValue(toMod));
+ WritableUtils.writeVInt(output, toSortOrder.getSystemValue());
WritableUtils.writeVInt(output, byteSize == null ? -1 : byteSize);
}
@Override
public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) {
if (getChild().evaluate(tuple, ptr)) {
- getDataType().coerceBytes(ptr, getChild().getDataType(), getChild().getColumnModifier(), getColumnModifier());
+ getDataType().coerceBytes(ptr, getChild().getDataType(), getChild().getSortOrder(), getSortOrder());
return true;
}
return false;
@@ -127,8 +129,8 @@ public class CoerceExpression extends BaseSingleExpression {
}
@Override
- public ColumnModifier getColumnModifier() {
- return toMod;
+ public SortOrder getSortOrder() {
+ return toSortOrder;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/ColumnExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/ColumnExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/ColumnExpression.java
index c9d943d..d01498d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/ColumnExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/ColumnExpression.java
@@ -26,7 +26,7 @@ import java.io.IOException;
import org.apache.hadoop.io.WritableUtils;
import com.google.common.base.Objects;
-import org.apache.phoenix.schema.ColumnModifier;
+import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.PDatum;
@@ -43,7 +43,7 @@ abstract public class ColumnExpression extends BaseTerminalExpression {
private boolean isNullable;
private Integer maxLength;
private Integer scale;
- private ColumnModifier columnModifier;
+ private SortOrder sortOrder;
public ColumnExpression() {
}
@@ -80,7 +80,7 @@ abstract public class ColumnExpression extends BaseTerminalExpression {
}
this.maxLength = datum.getMaxLength();
this.scale = datum.getScale();
- this.columnModifier = datum.getColumnModifier();
+ this.sortOrder = datum.getSortOrder();
}
@Override
@@ -94,8 +94,8 @@ abstract public class ColumnExpression extends BaseTerminalExpression {
}
@Override
- public ColumnModifier getColumnModifier() {
- return columnModifier;
+ public SortOrder getSortOrder() {
+ return sortOrder;
}
@Override
@@ -131,7 +131,7 @@ abstract public class ColumnExpression extends BaseTerminalExpression {
if (type.isFixedWidth() && type.getByteSize() == null) {
byteSize = WritableUtils.readVInt(input);
}
- columnModifier = ColumnModifier.fromSystemValue(WritableUtils.readVInt(input));
+ sortOrder = SortOrder.fromSystemValue(WritableUtils.readVInt(input));
}
@Override
@@ -149,6 +149,6 @@ abstract public class ColumnExpression extends BaseTerminalExpression {
if (type.isFixedWidth() && type.getByteSize() == null) {
WritableUtils.writeVInt(output, byteSize);
}
- WritableUtils.writeVInt(output, ColumnModifier.toSystemValue(columnModifier));
+ WritableUtils.writeVInt(output, sortOrder.getSystemValue());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/ComparisonExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/ComparisonExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/ComparisonExpression.java
index d8a37d5..f29dc94 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/ComparisonExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/ComparisonExpression.java
@@ -34,7 +34,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.PDataType;
import org.apache.phoenix.schema.TypeMismatchException;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -172,12 +172,12 @@ public class ComparisonExpression extends BaseCompoundExpression {
// Comparing an unsigned int/long against a negative int/long would be an example. We just need to take
// into account the comparison operator.
if (rhsExprDataType != lhsExprDataType
- || rhsExpr.getColumnModifier() != lhsExpr.getColumnModifier()
+ || rhsExpr.getSortOrder() != lhsExpr.getSortOrder()
|| (rhsExpr.getMaxLength() != null && lhsExpr.getMaxLength() != null && rhsExpr.getMaxLength() < lhsExpr.getMaxLength())) {
// TODO: if lengths are unequal and fixed width?
if (rhsExprDataType.isCoercibleTo(lhsExprDataType, rhsValue)) { // will convert 2.0 -> 2
children = Arrays.asList(children.get(0), LiteralExpression.newConstant(rhsValue, lhsExprDataType,
- lhsExpr.getMaxLength(), null, lhsExpr.getColumnModifier(), isDeterministic));
+ lhsExpr.getMaxLength(), null, lhsExpr.getSortOrder(), isDeterministic));
} else if (op == CompareOp.EQUAL) {
return LiteralExpression.newConstant(false, PDataType.BOOLEAN, true);
} else if (op == CompareOp.NOT_EQUAL) {
@@ -199,7 +199,7 @@ public class ComparisonExpression extends BaseCompoundExpression {
default: // Else, we truncate the value
BigDecimal bd = (BigDecimal)rhsValue;
rhsValue = bd.longValue() + increment;
- children = Arrays.asList(lhsExpr, LiteralExpression.newConstant(rhsValue, lhsExprDataType, lhsExpr.getColumnModifier(), rhsExpr.isDeterministic()));
+ children = Arrays.asList(lhsExpr, LiteralExpression.newConstant(rhsValue, lhsExprDataType, lhsExpr.getSortOrder(), rhsExpr.isDeterministic()));
break;
}
break;
@@ -247,7 +247,7 @@ public class ComparisonExpression extends BaseCompoundExpression {
break;
}
}
- children = Arrays.asList(lhsExpr, LiteralExpression.newConstant(rhsValue, rhsExprDataType, lhsExpr.getColumnModifier(), isDeterministic));
+ children = Arrays.asList(lhsExpr, LiteralExpression.newConstant(rhsValue, rhsExprDataType, lhsExpr.getSortOrder(), isDeterministic));
break;
}
}
@@ -312,7 +312,7 @@ public class ComparisonExpression extends BaseCompoundExpression {
int lhsOffset = ptr.getOffset();
int lhsLength = ptr.getLength();
PDataType lhsDataType = children.get(0).getDataType();
- ColumnModifier lhsColumnModifier = children.get(0).getColumnModifier();
+ SortOrder lhsSortOrder = children.get(0).getSortOrder();
if (!children.get(1).evaluate(tuple, ptr)) {
return false;
@@ -322,17 +322,17 @@ public class ComparisonExpression extends BaseCompoundExpression {
int rhsOffset = ptr.getOffset();
int rhsLength = ptr.getLength();
PDataType rhsDataType = children.get(1).getDataType();
- ColumnModifier rhsColumnModifier = children.get(1).getColumnModifier();
+ SortOrder rhsSortOrder = children.get(1).getSortOrder();
if (rhsDataType == PDataType.CHAR) {
- rhsLength = StringUtil.getUnpaddedCharLength(rhsBytes, rhsOffset, rhsLength, rhsColumnModifier);
+ rhsLength = StringUtil.getUnpaddedCharLength(rhsBytes, rhsOffset, rhsLength, rhsSortOrder);
}
if (lhsDataType == PDataType.CHAR) {
- lhsLength = StringUtil.getUnpaddedCharLength(lhsBytes, lhsOffset, lhsLength, lhsColumnModifier);
+ lhsLength = StringUtil.getUnpaddedCharLength(lhsBytes, lhsOffset, lhsLength, lhsSortOrder);
}
- int comparisonResult = lhsDataType.compareTo(lhsBytes, lhsOffset, lhsLength, lhsColumnModifier,
- rhsBytes, rhsOffset, rhsLength, rhsColumnModifier, rhsDataType);
+ int comparisonResult = lhsDataType.compareTo(lhsBytes, lhsOffset, lhsLength, lhsSortOrder,
+ rhsBytes, rhsOffset, rhsLength, rhsSortOrder, rhsDataType);
ptr.set(ByteUtil.compare(op, comparisonResult) ? PDataType.TRUE_BYTES : PDataType.FALSE_BYTES);
return true;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DateAddExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DateAddExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DateAddExpression.java
index 400ae8f..bed2883 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DateAddExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DateAddExpression.java
@@ -25,7 +25,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;
@@ -53,16 +53,16 @@ public class DateAddExpression extends AddExpression {
}
long value;
PDataType type = children.get(i).getDataType();
- ColumnModifier columnModifier = children.get(i).getColumnModifier();
+ SortOrder sortOrder = children.get(i).getSortOrder();
if (type == PDataType.DECIMAL) {
- BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, columnModifier);
+ BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, sortOrder);
value = bd.multiply(BD_MILLIS_IN_DAY).longValue();
} else if (type.isCoercibleTo(PDataType.LONG)) {
- value = type.getCodec().decodeLong(ptr, columnModifier) * QueryConstants.MILLIS_IN_DAY;
+ value = type.getCodec().decodeLong(ptr, sortOrder) * QueryConstants.MILLIS_IN_DAY;
} else if (type.isCoercibleTo(PDataType.DOUBLE)) {
- value = (long)(type.getCodec().decodeDouble(ptr, columnModifier) * QueryConstants.MILLIS_IN_DAY);
+ value = (long)(type.getCodec().decodeDouble(ptr, sortOrder) * QueryConstants.MILLIS_IN_DAY);
} else {
- value = type.getCodec().decodeLong(ptr, columnModifier);
+ value = type.getCodec().decodeLong(ptr, sortOrder);
}
finalResult += value;
}
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DateSubtractExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DateSubtractExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DateSubtractExpression.java
index d979cb6..9a10c34 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DateSubtractExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DateSubtractExpression.java
@@ -25,7 +25,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;
@@ -49,16 +49,16 @@ public class DateSubtractExpression extends SubtractExpression {
}
long value;
PDataType type = children.get(i).getDataType();
- ColumnModifier columnModifier = children.get(i).getColumnModifier();
+ SortOrder sortOrder = children.get(i).getSortOrder();
if (type == PDataType.DECIMAL) {
- BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, columnModifier);
+ BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, sortOrder);
value = bd.multiply(BD_MILLIS_IN_DAY).longValue();
} else if (type.isCoercibleTo(PDataType.LONG)) {
- value = type.getCodec().decodeLong(ptr, columnModifier) * QueryConstants.MILLIS_IN_DAY;
+ value = type.getCodec().decodeLong(ptr, sortOrder) * QueryConstants.MILLIS_IN_DAY;
} else if (type.isCoercibleTo(PDataType.DOUBLE)) {
- value = (long)(type.getCodec().decodeDouble(ptr, columnModifier) * QueryConstants.MILLIS_IN_DAY);
+ value = (long)(type.getCodec().decodeDouble(ptr, sortOrder) * QueryConstants.MILLIS_IN_DAY);
} else {
- value = type.getCodec().decodeLong(ptr, columnModifier);
+ value = 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/DecimalAddExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalAddExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalAddExpression.java
index c7f606e..52520c6 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalAddExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalAddExpression.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.exception.ValueTypeIncompatibleException;
-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.NumberUtil;
@@ -65,8 +65,8 @@ public class DecimalAddExpression extends AddExpression {
}
PDataType childType = childExpr.getDataType();
- ColumnModifier childColumnModifier = childExpr.getColumnModifier();
- BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childColumnModifier);
+ SortOrder childSortOrder = childExpr.getSortOrder();
+ BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childSortOrder);
if (result == null) {
result = bd;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalDivideExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalDivideExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalDivideExpression.java
index b3bae38..7cf4372 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalDivideExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalDivideExpression.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.exception.ValueTypeIncompatibleException;
-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.NumberUtil;
@@ -53,8 +53,8 @@ public class DecimalDivideExpression extends DivideExpression {
}
PDataType childType = childExpr.getDataType();
- ColumnModifier childColumnModifier = childExpr.getColumnModifier();
- BigDecimal bd= (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childColumnModifier);
+ SortOrder childSortOrder = childExpr.getSortOrder();
+ BigDecimal bd= (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childSortOrder);
if (result == null) {
result = bd;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalMultiplyExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalMultiplyExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalMultiplyExpression.java
index eb8c001..015acee 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalMultiplyExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalMultiplyExpression.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.exception.ValueTypeIncompatibleException;
-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.NumberUtil;
@@ -53,8 +53,8 @@ public class DecimalMultiplyExpression extends MultiplyExpression {
}
PDataType childType = children.get(i).getDataType();
- ColumnModifier childColumnModifier = children.get(i).getColumnModifier();
- BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childColumnModifier);
+ SortOrder childSortOrder = children.get(i).getSortOrder();
+ BigDecimal bd = (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childSortOrder);
if (result == null) {
result = bd;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalSubtractExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalSubtractExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalSubtractExpression.java
index 768d53e..f927374 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalSubtractExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DecimalSubtractExpression.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.exception.ValueTypeIncompatibleException;
-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.NumberUtil;
@@ -73,10 +73,10 @@ public class DecimalSubtractExpression extends SubtractExpression {
PDataType childType = childExpr.getDataType();
boolean isDate = childType.isCoercibleTo(PDataType.DATE);
- ColumnModifier childColumnModifier = childExpr.getColumnModifier();
+ SortOrder childSortOrder = childExpr.getSortOrder();
BigDecimal bd = isDate ?
- BigDecimal.valueOf(childType.getCodec().decodeLong(ptr, childColumnModifier)) :
- (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childColumnModifier);
+ BigDecimal.valueOf(childType.getCodec().decodeLong(ptr, childSortOrder)) :
+ (BigDecimal)PDataType.DECIMAL.toObject(ptr, childType, childSortOrder);
if (result == null) {
result = bd;
http://git-wip-us.apache.org/repos/asf/incubator-phoenix/blob/ae131f56/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleAddExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleAddExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleAddExpression.java
index e24da32..9f4308e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleAddExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleAddExpression.java
@@ -47,7 +47,7 @@ public class DoubleAddExpression extends AddExpression {
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/DoubleDivideExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleDivideExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleDivideExpression.java
index aefffe9..4e9309a 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleDivideExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/DoubleDivideExpression.java
@@ -47,7 +47,7 @@ public class DoubleDivideExpression extends DivideExpression {
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) {