You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by nd...@apache.org on 2014/12/18 01:11:56 UTC
[18/22] phoenix git commit: PHOENIX-1514 Break up PDataType Enum
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LpadFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LpadFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LpadFunction.java
index 9ddc7e7..9dfc8fc 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LpadFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/LpadFunction.java
@@ -22,7 +22,10 @@ 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.PDataType;
+import org.apache.phoenix.schema.types.PChar;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.StringUtil;
@@ -33,9 +36,9 @@ import org.apache.phoenix.util.StringUtil;
* Fills up the input to length (number of characters) by prepending characters in fill (space by default). If the input
* is already longer than length then it is truncated on the right.
*/
-@BuiltInFunction(name = LpadFunction.NAME, args = { @Argument(allowedTypes = { PDataType.VARCHAR }),
- @Argument(allowedTypes = { PDataType.INTEGER }),
- @Argument(allowedTypes = { PDataType.VARCHAR }, defaultValue = "' '") })
+@BuiltInFunction(name = LpadFunction.NAME, args = { @Argument(allowedTypes = { PVarchar.class }),
+ @Argument(allowedTypes = { PInteger.class }),
+ @Argument(allowedTypes = { PVarchar.class }, defaultValue = "' '") })
public class LpadFunction extends ScalarFunction {
public static final String NAME = "LPAD";
@@ -97,8 +100,8 @@ public class LpadFunction extends ScalarFunction {
return false;
}
- boolean isStrCharType = getStrExpr().getDataType() == PDataType.CHAR;
- boolean isFillCharType = getFillExpr().getDataType() == PDataType.CHAR;
+ boolean isStrCharType = getStrExpr().getDataType() == PChar.INSTANCE;
+ boolean isFillCharType = getFillExpr().getDataType() == PChar.INSTANCE;
SortOrder strSortOrder = getStrExpr().getSortOrder();
SortOrder fillSortOrder = getFillExpr().getSortOrder();
int inputStrLen = getUTF8Length(ptr, strSortOrder, isStrCharType);
@@ -165,7 +168,7 @@ public class LpadFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MD5Function.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MD5Function.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MD5Function.java
index 3bac400..e4c3c98 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MD5Function.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/MD5Function.java
@@ -26,7 +26,8 @@ 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.PDataType;
+import org.apache.phoenix.schema.types.PBinary;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@BuiltInFunction(name = MD5Function.NAME, args = { @Argument() })
@@ -66,7 +67,7 @@ public class MD5Function extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.BINARY;
+ return PBinary.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/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 d33f41c..4913f91 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
@@ -26,8 +26,8 @@ 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.PDataType;
import org.apache.phoenix.schema.SortOrder;
+import org.apache.phoenix.schema.types.PDataType;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/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 00c87cb..5b99e13 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
@@ -27,8 +27,8 @@ 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.PDataType;
import org.apache.phoenix.schema.SortOrder;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/NthValueFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/NthValueFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/NthValueFunction.java
index 5614088..969fda9 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/NthValueFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/NthValueFunction.java
@@ -26,7 +26,8 @@ import org.apache.phoenix.expression.aggregator.FirstLastValueBaseClientAggregat
import org.apache.phoenix.expression.aggregator.FirstLastValueServerAggregator;
import org.apache.phoenix.parse.NthValueAggregateParseNode;
import org.apache.phoenix.parse.FunctionParseNode;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PBoolean;
+import org.apache.phoenix.schema.types.PInteger;
/**
* Built-in function for NTH_VALUE(<expression>, <expression>) WITHIN GROUP (ORDER BY <expression> ASC/DESC)
@@ -35,9 +36,9 @@ import org.apache.phoenix.schema.PDataType;
*/
@FunctionParseNode.BuiltInFunction(name = NthValueFunction.NAME, nodeClass = NthValueAggregateParseNode.class, args = {
@FunctionParseNode.Argument(),
- @FunctionParseNode.Argument(allowedTypes = {PDataType.BOOLEAN}, isConstant = true),
+ @FunctionParseNode.Argument(allowedTypes = { PBoolean.class }, isConstant = true),
@FunctionParseNode.Argument(),
- @FunctionParseNode.Argument(allowedTypes = {PDataType.INTEGER}, isConstant = true)})
+ @FunctionParseNode.Argument(allowedTypes = { PInteger.class }, isConstant = true)})
public class NthValueFunction extends FirstLastValueBaseFunction {
public static final String NAME = "NTH_VALUE";
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/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 776b736..51dc816 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
@@ -28,7 +28,9 @@ import org.apache.phoenix.expression.aggregator.DistinctValueWithCountServerAggr
import org.apache.phoenix.expression.aggregator.PercentRankClientAggregator;
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.types.PDecimal;
+import org.apache.phoenix.schema.types.PBoolean;
+import org.apache.phoenix.schema.types.PDataType;
/**
*
@@ -38,7 +40,7 @@ import org.apache.phoenix.schema.PDataType;
* @since 1.2.1
*/
@BuiltInFunction(name = PercentRankAggregateFunction.NAME, args = { @Argument(),
- @Argument(allowedTypes = { PDataType.BOOLEAN }, isConstant = true), @Argument(isConstant = true) })
+ @Argument(allowedTypes = { PBoolean.class }, isConstant = true), @Argument(isConstant = true) })
public class PercentRankAggregateFunction extends DistinctValueWithCountAggregateFunction {
public static final String NAME = "PERCENT_RANK";
@@ -67,6 +69,6 @@ public class PercentRankAggregateFunction extends DistinctValueWithCountAggregat
@Override
public PDataType getDataType() {
- return PDataType.DECIMAL;
+ return PDecimal.INSTANCE;
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/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 9226384..17bb33c 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
@@ -28,7 +28,9 @@ import org.apache.phoenix.expression.aggregator.DistinctValueWithCountServerAggr
import org.apache.phoenix.expression.aggregator.PercentileClientAggregator;
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.types.PDecimal;
+import org.apache.phoenix.schema.types.PBoolean;
+import org.apache.phoenix.schema.types.PDataType;
/**
*
@@ -37,9 +39,9 @@ import org.apache.phoenix.schema.PDataType;
*
* @since 1.2.1
*/
-@BuiltInFunction(name = PercentileContAggregateFunction.NAME, args = { @Argument(allowedTypes = { PDataType.DECIMAL }),
- @Argument(allowedTypes = { PDataType.BOOLEAN }, isConstant = true),
- @Argument(allowedTypes = { PDataType.DECIMAL }, isConstant = true, minValue = "0", maxValue = "1") })
+@BuiltInFunction(name = PercentileContAggregateFunction.NAME, args = { @Argument(allowedTypes = { PDecimal.class }),
+ @Argument(allowedTypes = { PBoolean.class }, isConstant = true),
+ @Argument(allowedTypes = { PDecimal.class }, isConstant = true, minValue = "0", maxValue = "1") })
public class PercentileContAggregateFunction extends DistinctValueWithCountAggregateFunction {
public static final String NAME = "PERCENTILE_CONT";
@@ -68,6 +70,6 @@ public class PercentileContAggregateFunction extends DistinctValueWithCountAggre
@Override
public PDataType getDataType() {
- return PDataType.DECIMAL;
+ return PDecimal.INSTANCE;
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/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 26d78b7..13482f0 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
@@ -28,8 +28,8 @@ import org.apache.phoenix.expression.aggregator.DistinctValueWithCountServerAggr
import org.apache.phoenix.expression.aggregator.PercentileDiscClientAggregator;
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.types.PDecimal;
+import org.apache.phoenix.schema.types.PBoolean;
/**
*
@@ -38,9 +38,9 @@ import org.apache.phoenix.schema.PDataType;
*
* @since 1.2.1
*/
-@BuiltInFunction(name = PercentileDiscAggregateFunction.NAME, args = { @Argument(allowedTypes = { PDataType.DECIMAL }),
- @Argument(allowedTypes = { PDataType.BOOLEAN }, isConstant = true),
- @Argument(allowedTypes = { PDataType.DECIMAL }, isConstant = true, minValue = "0", maxValue = "1") })
+@BuiltInFunction(name = PercentileDiscAggregateFunction.NAME, args = { @Argument(allowedTypes = { PDecimal.class }),
+ @Argument(allowedTypes = { PBoolean.class }, isConstant = true),
+ @Argument(allowedTypes = { PDecimal.class }, isConstant = true, minValue = "0", maxValue = "1") })
public class PercentileDiscAggregateFunction extends DistinctValueWithCountAggregateFunction {
public static final String NAME = "PERCENTILE_DISC";
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PrefixFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PrefixFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PrefixFunction.java
index 40d2467..3373df7 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PrefixFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/PrefixFunction.java
@@ -26,7 +26,7 @@ import org.apache.phoenix.compile.KeyPart;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.query.KeyRange;
import org.apache.phoenix.schema.PColumn;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.util.ByteUtil;
import org.apache.phoenix.util.StringUtil;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/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 a19a1bf..911ed19 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
@@ -29,7 +29,8 @@ 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.PColumn;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -45,7 +46,7 @@ import org.apache.phoenix.util.StringUtil;
* @since 0.1
*/
@BuiltInFunction(name=RTrimFunction.NAME, args={
- @Argument(allowedTypes={PDataType.VARCHAR})})
+ @Argument(allowedTypes={PVarchar.class})})
public class RTrimFunction extends ScalarFunction {
public static final String NAME = "RTRIM";
@@ -152,7 +153,7 @@ public class RTrimFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpReplaceFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpReplaceFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpReplaceFunction.java
index b62a79f..3f470a9 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpReplaceFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpReplaceFunction.java
@@ -28,7 +28,8 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
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.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -39,18 +40,18 @@ import org.apache.phoenix.schema.tuple.Tuple;
* REGEXP_REPLACE(<source_char>,<pattern>,<replace_string>)
* source_char is the string in which we want to perform string replacement. pattern is a
* Java compatible regular expression string, and we replace all the matching part with
- * replace_string. The first 2 arguments are required and are {@link org.apache.phoenix.schema.PDataType#VARCHAR},
+ * replace_string. The first 2 arguments are required and are {@link org.apache.phoenix.schema.types.PVarchar},
* the replace_string is default to empty string.
*
- * The function returns a {@link org.apache.phoenix.schema.PDataType#VARCHAR}
+ * The function returns a {@link org.apache.phoenix.schema.types.PVarchar}
*
*
* @since 0.1
*/
@BuiltInFunction(name=RegexpReplaceFunction.NAME, args= {
- @Argument(allowedTypes={PDataType.VARCHAR}),
- @Argument(allowedTypes={PDataType.VARCHAR}),
- @Argument(allowedTypes={PDataType.VARCHAR},defaultValue="null")} )
+ @Argument(allowedTypes={PVarchar.class}),
+ @Argument(allowedTypes={PVarchar.class}),
+ @Argument(allowedTypes={PVarchar.class},defaultValue="null")} )
public class RegexpReplaceFunction extends ScalarFunction {
public static final String NAME = "REGEXP_REPLACE";
@@ -83,7 +84,7 @@ public class RegexpReplaceFunction extends ScalarFunction {
if (!sourceStrExpression.evaluate(tuple, ptr)) {
return false;
}
- String sourceStr = (String)PDataType.VARCHAR.toObject(ptr, sourceStrExpression.getSortOrder());
+ String sourceStr = (String) PVarchar.INSTANCE.toObject(ptr, sourceStrExpression.getSortOrder());
if (sourceStr == null) {
return false;
}
@@ -93,12 +94,12 @@ public class RegexpReplaceFunction extends ScalarFunction {
if (!replaceStrExpression.evaluate(tuple, ptr)) {
return false;
}
- replaceStr = (String)PDataType.VARCHAR.toObject(ptr, replaceStrExpression.getSortOrder());
+ replaceStr = (String) PVarchar.INSTANCE.toObject(ptr, replaceStrExpression.getSortOrder());
} else {
replaceStr = "";
}
String replacedStr = pattern.matcher(sourceStr).replaceAll(replaceStr);
- ptr.set(PDataType.VARCHAR.toBytes(replacedStr));
+ ptr.set(PVarchar.INSTANCE.toBytes(replacedStr));
return true;
}
@@ -112,7 +113,7 @@ public class RegexpReplaceFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSplitFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSplitFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSplitFunction.java
index 5dd70c4..89c7c9e 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSplitFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSplitFunction.java
@@ -25,8 +25,10 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
import org.apache.phoenix.parse.FunctionParseNode;
-import org.apache.phoenix.schema.PDataType;
-import org.apache.phoenix.schema.PhoenixArray;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
+import org.apache.phoenix.schema.types.PVarcharArray;
+import org.apache.phoenix.schema.types.PhoenixArray;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -42,11 +44,11 @@ import com.google.common.collect.Lists;
* {@code source_str} is the string in which we want to split. {@code split_pattern} is a
* Java compatible regular expression string to split the source string.
*
- * The function returns a {@link org.apache.phoenix.schema.PDataType#VARCHAR_ARRAY}
+ * The function returns a {@link org.apache.phoenix.schema.types.PVarcharArray}
*/
@FunctionParseNode.BuiltInFunction(name=RegexpSplitFunction.NAME, args= {
- @FunctionParseNode.Argument(allowedTypes={PDataType.VARCHAR}),
- @FunctionParseNode.Argument(allowedTypes={PDataType.VARCHAR})})
+ @FunctionParseNode.Argument(allowedTypes={PVarchar.class}),
+ @FunctionParseNode.Argument(allowedTypes={PVarchar.class})})
public class RegexpSplitFunction extends ScalarFunction {
public static final String NAME = "REGEXP_SPLIT";
@@ -88,7 +90,7 @@ public class RegexpSplitFunction extends ScalarFunction {
}
Expression sourceStrExpression = children.get(0);
- String sourceStr = (String)PDataType.VARCHAR.toObject(ptr, sourceStrExpression.getSortOrder());
+ String sourceStr = (String) PVarchar.INSTANCE.toObject(ptr, sourceStrExpression.getSortOrder());
if (sourceStr == null) { // sourceStr evaluated to null
ptr.set(ByteUtil.EMPTY_BYTE_ARRAY);
return true;
@@ -108,20 +110,20 @@ public class RegexpSplitFunction extends ScalarFunction {
return true; // ptr is already set to null
}
- String patternStr = (String) PDataType.VARCHAR.toObject(
+ String patternStr = (String) PVarchar.INSTANCE.toObject(
ptr, patternExpression.getSortOrder());
splitter = Splitter.onPattern(patternStr);
}
List<String> splitStrings = Lists.newArrayList(splitter.split(sourceStr));
- PhoenixArray splitArray = new PhoenixArray(PDataType.VARCHAR, splitStrings.toArray());
- ptr.set(PDataType.VARCHAR_ARRAY.toBytes(splitArray));
+ PhoenixArray splitArray = new PhoenixArray(PVarchar.INSTANCE, splitStrings.toArray());
+ ptr.set(PVarcharArray.INSTANCE.toBytes(splitArray));
return true;
}
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR_ARRAY;
+ return PVarcharArray.INSTANCE;
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSubstrFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSubstrFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSubstrFunction.java
index 840e3d7..93d8706 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSubstrFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RegexpSubstrFunction.java
@@ -28,7 +28,9 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
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.types.PLong;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -46,9 +48,9 @@ import org.apache.phoenix.util.ByteUtil;
* @since 0.1
*/
@BuiltInFunction(name=RegexpSubstrFunction.NAME, args={
- @Argument(allowedTypes={PDataType.VARCHAR}),
- @Argument(allowedTypes={PDataType.VARCHAR}),
- @Argument(allowedTypes={PDataType.LONG}, defaultValue="1")} )
+ @Argument(allowedTypes={PVarchar.class}),
+ @Argument(allowedTypes={PVarchar.class}),
+ @Argument(allowedTypes={PLong.class}, defaultValue="1")} )
public class RegexpSubstrFunction extends PrefixFunction {
public static final String NAME = "REGEXP_SUBSTR";
@@ -96,7 +98,7 @@ public class RegexpSubstrFunction extends PrefixFunction {
if (!getSourceStrExpression().evaluate(tuple, ptr)) {
return false;
}
- String sourceStr = (String)PDataType.VARCHAR.toObject(ptr, getSourceStrExpression().getSortOrder());
+ String sourceStr = (String) PVarchar.INSTANCE.toObject(ptr, getSourceStrExpression().getSortOrder());
if (sourceStr == null) {
return false;
}
@@ -124,7 +126,7 @@ public class RegexpSubstrFunction extends PrefixFunction {
return true;
}
String subString = matcher.group();
- ptr.set(PDataType.VARCHAR.toBytes(subString));
+ ptr.set(PVarchar.INSTANCE.toBytes(subString));
return true;
}
@@ -171,7 +173,7 @@ public class RegexpSubstrFunction extends PrefixFunction {
public PDataType getDataType() {
// ALways VARCHAR since we do not know in advanced how long the
// matched string will be.
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ReverseFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ReverseFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ReverseFunction.java
index 91cc332..dd1f3a8 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ReverseFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ReverseFunction.java
@@ -26,13 +26,14 @@ 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.types.PVarchar;
import org.apache.phoenix.schema.SortOrder;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.StringUtil;
@BuiltInFunction(name=ReverseFunction.NAME, args={
- @Argument(allowedTypes={PDataType.VARCHAR})} )
+ @Argument(allowedTypes={PVarchar.class})} )
public class ReverseFunction extends ScalarFunction {
public static final String NAME = "REVERSE";
@@ -77,7 +78,7 @@ public class ReverseFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDateExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDateExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDateExpression.java
index 58ff652..d8fa1dc 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDateExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDateExpression.java
@@ -33,9 +33,11 @@ import org.apache.phoenix.expression.Determinism;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
import org.apache.phoenix.query.KeyRange;
+import org.apache.phoenix.schema.types.PInteger;
import org.apache.phoenix.schema.PColumn;
-import org.apache.phoenix.schema.PDataType;
-import org.apache.phoenix.schema.PDataType.PDataCodec;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PDataType.PDataCodec;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -47,7 +49,7 @@ import com.google.common.collect.Lists;
* an even increment. Usage:
* ROUND(<date/time col ref>,<'day'|'hour'|'minute'|'second'|'millisecond'>,<optional integer multiplier>)
* The integer multiplier is optional and is used to do rollups to a partial time unit (i.e. 10 minute rollup)
- * The function returns a {@link org.apache.phoenix.schema.PDataType#DATE}
+ * The function returns a {@link org.apache.phoenix.schema.types.PDate}
*
* @since 0.1
@@ -93,11 +95,11 @@ public class RoundDateExpression extends ScalarFunction {
}
static Expression getTimeUnitExpr(TimeUnit timeUnit) throws SQLException {
- return LiteralExpression.newConstant(timeUnit.name(), PDataType.VARCHAR, Determinism.ALWAYS);
+ return LiteralExpression.newConstant(timeUnit.name(), PVarchar.INSTANCE, Determinism.ALWAYS);
}
static Expression getMultiplierExpr(int multiplier) throws SQLException {
- return LiteralExpression.newConstant(multiplier, PDataType.INTEGER, Determinism.ALWAYS);
+ return LiteralExpression.newConstant(multiplier, PInteger.INSTANCE, Determinism.ALWAYS);
}
RoundDateExpression(List<Expression> children) {
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDecimalExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDecimalExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDecimalExpression.java
index e8d96a8..e81650f 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDecimalExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundDecimalExpression.java
@@ -30,8 +30,11 @@ import org.apache.hadoop.io.WritableUtils;
import org.apache.phoenix.expression.Determinism;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
+import org.apache.phoenix.schema.types.PDecimal;
import org.apache.phoenix.schema.IllegalDataException;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PLong;
import org.apache.phoenix.schema.tuple.Tuple;
import com.google.common.collect.Lists;
@@ -40,12 +43,11 @@ import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.phoenix.compile.KeyPart;
import org.apache.phoenix.query.KeyRange;
import org.apache.phoenix.schema.PColumn;
-import static org.apache.phoenix.schema.PDataType.DECIMAL;
/**
*
* Class encapsulating the process for rounding off a column/literal of type
- * {@link org.apache.phoenix.schema.PDataType#DECIMAL}
+ * {@link org.apache.phoenix.schema.types.PDecimal}
*
*
* @since 3.0.0
@@ -59,10 +61,10 @@ public class RoundDecimalExpression extends ScalarFunction {
*
*/
public static Expression create(Expression expr, int scale) throws SQLException {
- if (expr.getDataType().isCoercibleTo(PDataType.LONG)) {
+ if (expr.getDataType().isCoercibleTo(PLong.INSTANCE)) {
return expr;
}
- Expression scaleExpr = LiteralExpression.newConstant(scale, PDataType.INTEGER, Determinism.ALWAYS);
+ Expression scaleExpr = LiteralExpression.newConstant(scale, PInteger.INSTANCE, Determinism.ALWAYS);
List<Expression> expressions = Lists.newArrayList(expr, scaleExpr);
return new RoundDecimalExpression(expressions);
}
@@ -77,11 +79,11 @@ public class RoundDecimalExpression extends ScalarFunction {
public static Expression create(List<Expression> exprs) throws SQLException {
Expression expr = exprs.get(0);
- if (expr.getDataType().isCoercibleTo(PDataType.LONG)) {
+ if (expr.getDataType().isCoercibleTo(PLong.INSTANCE)) {
return expr;
}
if (exprs.size() == 1) {
- Expression scaleExpr = LiteralExpression.newConstant(0, PDataType.INTEGER, Determinism.ALWAYS);
+ Expression scaleExpr = LiteralExpression.newConstant(0, PInteger.INSTANCE, Determinism.ALWAYS);
exprs = Lists.newArrayList(expr, scaleExpr);
}
return new RoundDecimalExpression(exprs);
@@ -95,8 +97,8 @@ public class RoundDecimalExpression extends ScalarFunction {
PDataType scaleType = scaleChild.getDataType();
Object scaleValue = scaleChild.getValue();
if(scaleValue != null) {
- if (scaleType.isCoercibleTo(PDataType.INTEGER, scaleValue)) {
- int scale = (Integer)PDataType.INTEGER.toObject(scaleValue, scaleType);
+ if (scaleType.isCoercibleTo(PInteger.INSTANCE, scaleValue)) {
+ int scale = (Integer) PInteger.INSTANCE.toObject(scaleValue, scaleType);
if (scale >=0 && scale <= PDataType.MAX_PRECISION) {
this.scale = scale;
return;
@@ -110,9 +112,9 @@ public class RoundDecimalExpression extends ScalarFunction {
public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) {
Expression childExpr = children.get(0);
if(childExpr.evaluate(tuple, ptr)) {
- BigDecimal value = (BigDecimal)PDataType.DECIMAL.toObject(ptr, childExpr.getDataType(), childExpr.getSortOrder());
+ BigDecimal value = (BigDecimal) PDecimal.INSTANCE.toObject(ptr, childExpr.getDataType(), childExpr.getSortOrder());
BigDecimal scaledValue = value.setScale(scale, getRoundingMode());
- ptr.set(PDataType.DECIMAL.toBytes(scaledValue));
+ ptr.set(PDecimal.INSTANCE.toBytes(scaledValue));
return true;
}
return false;
@@ -120,7 +122,7 @@ public class RoundDecimalExpression extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.DECIMAL;
+ return PDecimal.INSTANCE;
}
protected RoundingMode getRoundingMode() {
@@ -175,7 +177,7 @@ public class RoundDecimalExpression extends ScalarFunction {
@Override
public KeyRange getKeyRange(CompareFilter.CompareOp op, Expression rhs) {
- final BigDecimal rhsDecimal = (BigDecimal) DECIMAL.toObject(evaluateExpression(rhs));
+ final BigDecimal rhsDecimal = (BigDecimal) PDecimal.INSTANCE.toObject(evaluateExpression(rhs));
// equality requires an exact match. if rounding would cut off more precision
// than needed for a match, it's impossible for there to be any matches
@@ -289,8 +291,8 @@ public class RoundDecimalExpression extends ScalarFunction {
throw new IllegalArgumentException("Cannot produce input range for decimal " + result
+ ", not enough precision with scale " + getRoundingScale());
}
- byte[] lowerRange = DECIMAL.toBytes(halfStepPrevInScale(result));
- byte[] upperRange = DECIMAL.toBytes(halfStepNextInScale(result));
+ byte[] lowerRange = PDecimal.INSTANCE.toBytes(halfStepPrevInScale(result));
+ byte[] upperRange = PDecimal.INSTANCE.toBytes(halfStepNextInScale(result));
// inclusiveness changes depending on sign
// e.g. -0.5 rounds "up" to -1 even though it is the lower boundary
boolean lowerInclusive = result.signum() > 0;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundFunction.java
index 0ebf385..9277716 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundFunction.java
@@ -23,8 +23,10 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.parse.RoundParseNode;
-import org.apache.phoenix.schema.PDataType;
-
+import org.apache.phoenix.schema.types.PDecimal;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PTimestamp;
+import org.apache.phoenix.schema.types.PVarchar;
/**
* Base class for RoundFunction.
@@ -35,9 +37,9 @@ import org.apache.phoenix.schema.PDataType;
@BuiltInFunction(name = RoundFunction.NAME,
nodeClass = RoundParseNode.class,
args = {
- @Argument(allowedTypes={PDataType.TIMESTAMP, PDataType.DECIMAL}),
- @Argument(allowedTypes={PDataType.VARCHAR, PDataType.INTEGER}, defaultValue = "null", isConstant=true),
- @Argument(allowedTypes={PDataType.INTEGER}, defaultValue="1", isConstant=true)
+ @Argument(allowedTypes={PTimestamp.class, PDecimal.class}),
+ @Argument(allowedTypes={PVarchar.class, PInteger.class}, defaultValue = "null", isConstant=true),
+ @Argument(allowedTypes={PInteger.class}, defaultValue="1", isConstant=true)
}
)
public abstract class RoundFunction extends ScalarFunction {
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundTimestampExpression.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundTimestampExpression.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundTimestampExpression.java
index fff29cc..215cf79 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundTimestampExpression.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/RoundTimestampExpression.java
@@ -27,15 +27,19 @@ 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.types.PDate;
+import org.apache.phoenix.schema.types.PTimestamp;
+import org.apache.phoenix.schema.types.PUnsignedDate;
+import org.apache.phoenix.schema.types.PUnsignedTimestamp;
import org.apache.phoenix.schema.SortOrder;
-import org.apache.phoenix.schema.PDataType;
-import org.apache.phoenix.schema.PDataType.PDataCodec;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PDataType.PDataCodec;
import org.apache.phoenix.schema.tuple.Tuple;
/**
*
* Class encapsulating the process for rounding off a column/literal of
- * type {@link org.apache.phoenix.schema.PDataType#TIMESTAMP}
+ * type {@link org.apache.phoenix.schema.types.PTimestamp}
* This class only supports rounding off the milliseconds that is for
* {@link TimeUnit#MILLISECOND}. If you want more options of rounding like
* using {@link TimeUnit#HOUR} use {@link RoundDateExpression}
@@ -70,17 +74,18 @@ public class RoundTimestampExpression extends RoundDateExpression {
}
// Coerce TIMESTAMP to DATE, as the nanos has no affect
List<Expression> newChildren = Lists.newArrayListWithExpectedSize(children.size());
- newChildren.add(CoerceExpression.create(firstChild, firstChildDataType == PDataType.TIMESTAMP ? PDataType.DATE : PDataType.UNSIGNED_DATE));
+ newChildren.add(CoerceExpression.create(firstChild, firstChildDataType == PTimestamp.INSTANCE ?
+ PDate.INSTANCE : PUnsignedDate.INSTANCE));
newChildren.addAll(children.subList(1, children.size()));
return RoundDateExpression.create(newChildren);
}
@Override
protected PDataCodec getKeyRangeCodec(PDataType columnDataType) {
- return columnDataType == PDataType.TIMESTAMP
- ? PDataType.DATE.getCodec()
- : columnDataType == PDataType.UNSIGNED_TIMESTAMP
- ? PDataType.UNSIGNED_DATE.getCodec()
+ return columnDataType == PTimestamp.INSTANCE
+ ? PDate.INSTANCE.getCodec()
+ : columnDataType == PUnsignedTimestamp.INSTANCE
+ ? PUnsignedDate.INSTANCE.getCodec()
: super.getKeyRangeCodec(columnDataType);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLIndexTypeFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLIndexTypeFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLIndexTypeFunction.java
index 617e977..14b7dea 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLIndexTypeFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLIndexTypeFunction.java
@@ -24,8 +24,10 @@ 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.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.PTable.IndexType;
+import org.apache.phoenix.schema.types.PUnsignedTinyint;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -40,7 +42,7 @@ import org.apache.phoenix.schema.tuple.Tuple;
* @since 2.2
*/
@BuiltInFunction(name=SQLIndexTypeFunction.NAME, args= {
- @Argument(allowedTypes=PDataType.UNSIGNED_TINYINT)} )
+ @Argument(allowedTypes= PUnsignedTinyint.class)} )
public class SQLIndexTypeFunction extends ScalarFunction {
public static final String NAME = "SQLIndexType";
@@ -67,7 +69,7 @@ public class SQLIndexTypeFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLTableTypeFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLTableTypeFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLTableTypeFunction.java
index 825c2d0..5970512 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLTableTypeFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLTableTypeFunction.java
@@ -25,8 +25,10 @@ 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.PDataType;
+import org.apache.phoenix.schema.types.PChar;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.PTableType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -41,7 +43,7 @@ import org.apache.phoenix.schema.tuple.Tuple;
* @since 2.2
*/
@BuiltInFunction(name=SQLTableTypeFunction.NAME, args= {
- @Argument(allowedTypes=PDataType.CHAR)} )
+ @Argument(allowedTypes= PChar.class)} )
public class SQLTableTypeFunction extends ScalarFunction {
public static final String NAME = "SQLTableType";
@@ -68,7 +70,7 @@ public class SQLTableTypeFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLViewTypeFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLViewTypeFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLViewTypeFunction.java
index 17151c8..d105d21 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLViewTypeFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SQLViewTypeFunction.java
@@ -25,8 +25,10 @@ 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.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.PTable.ViewType;
+import org.apache.phoenix.schema.types.PUnsignedTinyint;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -41,7 +43,7 @@ import org.apache.phoenix.schema.tuple.Tuple;
* @since 2.2
*/
@BuiltInFunction(name=SQLViewTypeFunction.NAME, args= {
- @Argument(allowedTypes=PDataType.UNSIGNED_TINYINT)} )
+ @Argument(allowedTypes= PUnsignedTinyint.class)} )
public class SQLViewTypeFunction extends ScalarFunction {
public static final String NAME = "SQLViewType";
@@ -68,7 +70,7 @@ public class SQLViewTypeFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SingleAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SingleAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SingleAggregateFunction.java
index d33d555..6155e1d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SingleAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SingleAggregateFunction.java
@@ -30,7 +30,7 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
import org.apache.phoenix.expression.aggregator.Aggregator;
import org.apache.phoenix.expression.visitor.ExpressionVisitor;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SqlTypeNameFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SqlTypeNameFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SqlTypeNameFunction.java
index 34ccd0c..bbd7efa 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SqlTypeNameFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SqlTypeNameFunction.java
@@ -26,7 +26,9 @@ 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.IllegalDataException;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -42,7 +44,7 @@ import org.apache.phoenix.util.ByteUtil;
* @since 0.1
*/
@BuiltInFunction(name=SqlTypeNameFunction.NAME, args= {
- @Argument(allowedTypes=PDataType.INTEGER)} )
+ @Argument(allowedTypes= PInteger.class)} )
public class SqlTypeNameFunction extends ScalarFunction {
public static final String NAME = "SqlTypeName";
@@ -74,7 +76,7 @@ public class SqlTypeNameFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevPopFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevPopFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevPopFunction.java
index b5ba63a..338031b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevPopFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevPopFunction.java
@@ -29,7 +29,8 @@ import org.apache.phoenix.expression.aggregator.DistinctValueWithCountServerAggr
import org.apache.phoenix.expression.aggregator.StddevPopAggregator;
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.types.PDecimal;
+import org.apache.phoenix.schema.types.PDataType;
/**
*
@@ -38,7 +39,7 @@ import org.apache.phoenix.schema.PDataType;
*
* @since 1.2.1
*/
-@BuiltInFunction(name = StddevPopFunction.NAME, args = { @Argument(allowedTypes={PDataType.DECIMAL})})
+@BuiltInFunction(name = StddevPopFunction.NAME, args = { @Argument(allowedTypes={PDecimal.class})})
public class StddevPopFunction extends DistinctValueWithCountAggregateFunction {
public static final String NAME = "STDDEV_POP";
@@ -57,7 +58,7 @@ public class StddevPopFunction extends DistinctValueWithCountAggregateFunction {
@Override
public DistinctValueWithCountClientAggregator newClientAggregator() {
- if (children.get(0).getDataType() == PDataType.DECIMAL) {
+ if (children.get(0).getDataType() == PDecimal.INSTANCE) {
// Special Aggregators for DECIMAL datatype for more precision than double
return new DecimalStddevPopAggregator(children, getAggregatorExpression().getSortOrder());
}
@@ -71,6 +72,6 @@ public class StddevPopFunction extends DistinctValueWithCountAggregateFunction {
@Override
public PDataType getDataType() {
- return PDataType.DECIMAL;
+ return PDecimal.INSTANCE;
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevSampFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevSampFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevSampFunction.java
index 9684cc9..0f22c75 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevSampFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/StddevSampFunction.java
@@ -29,7 +29,8 @@ import org.apache.phoenix.expression.aggregator.DistinctValueWithCountServerAggr
import org.apache.phoenix.expression.aggregator.StddevSampAggregator;
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.types.PDecimal;
+import org.apache.phoenix.schema.types.PDataType;
/**
*
@@ -38,7 +39,7 @@ import org.apache.phoenix.schema.PDataType;
*
* @since 1.2.1
*/
-@BuiltInFunction(name = StddevSampFunction.NAME, args = { @Argument(allowedTypes={PDataType.DECIMAL})})
+@BuiltInFunction(name = StddevSampFunction.NAME, args = { @Argument(allowedTypes={PDecimal.class})})
public class StddevSampFunction extends DistinctValueWithCountAggregateFunction {
public static final String NAME = "STDDEV_SAMP";
@@ -57,7 +58,7 @@ public class StddevSampFunction extends DistinctValueWithCountAggregateFunction
@Override
public DistinctValueWithCountClientAggregator newClientAggregator() {
- if (children.get(0).getDataType() == PDataType.DECIMAL) {
+ if (children.get(0).getDataType() == PDecimal.INSTANCE) {
// Special Aggregators for DECIMAL datatype for more precision than double
return new DecimalStddevSampAggregator(children, getAggregatorExpression().getSortOrder());
}
@@ -71,6 +72,6 @@ public class StddevSampFunction extends DistinctValueWithCountAggregateFunction
@Override
public PDataType getDataType() {
- return PDataType.DECIMAL;
+ return PDecimal.INSTANCE;
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
index a7f15ac..4b21736 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SubstrFunction.java
@@ -19,7 +19,6 @@ package org.apache.phoenix.expression.function;
import java.io.DataInput;
import java.io.IOException;
-import java.io.UnsupportedEncodingException;
import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
@@ -27,7 +26,10 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.expression.LiteralExpression;
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.types.PChar;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PLong;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.StringUtil;
@@ -47,9 +49,9 @@ import org.apache.phoenix.util.StringUtil;
* @since 0.1
*/
@BuiltInFunction(name=SubstrFunction.NAME, args={
- @Argument(allowedTypes={PDataType.VARCHAR}),
- @Argument(allowedTypes={PDataType.LONG}), // These are LONG because negative numbers end up as longs
- @Argument(allowedTypes={PDataType.LONG},defaultValue="null")} )
+ @Argument(allowedTypes={PVarchar.class}),
+ @Argument(allowedTypes={PLong.class}), // These are LONG because negative numbers end up as longs
+ @Argument(allowedTypes={PLong.class},defaultValue="null")} )
public class SubstrFunction extends PrefixFunction {
public static final String NAME = "SUBSTR";
private boolean hasLengthExpression;
@@ -115,7 +117,7 @@ public class SubstrFunction extends PrefixFunction {
return false;
}
- boolean isCharType = getStrExpression().getDataType() == PDataType.CHAR;
+ boolean isCharType = getStrExpression().getDataType() == PChar.INSTANCE;
SortOrder sortOrder = getStrExpression().getSortOrder();
int strlen = isCharType ? ptr.getLength() : StringUtil.calculateUTF8Length(ptr.get(), ptr.getOffset(), ptr.getLength(), sortOrder);
@@ -140,7 +142,7 @@ public class SubstrFunction extends PrefixFunction {
public PDataType getDataType() {
// If fixed width, then return child expression type.
// If not fixed width, then we don't know how big this will be across the board
- return isFixedWidth ? getStrExpression().getDataType() : PDataType.VARCHAR;
+ return isFixedWidth ? getStrExpression().getDataType() : PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SumAggregateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SumAggregateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SumAggregateFunction.java
index 4c5ce4a..d761a78 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SumAggregateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/SumAggregateFunction.java
@@ -32,8 +32,14 @@ import org.apache.phoenix.expression.aggregator.NumberSumAggregator;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.parse.SumAggregateParseNode;
+import org.apache.phoenix.schema.types.PDecimal;
+import org.apache.phoenix.schema.types.PDouble;
+import org.apache.phoenix.schema.types.PFloat;
+import org.apache.phoenix.schema.types.PLong;
+import org.apache.phoenix.schema.types.PUnsignedDouble;
+import org.apache.phoenix.schema.types.PUnsignedFloat;
import org.apache.phoenix.schema.SortOrder;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -44,7 +50,7 @@ import org.apache.phoenix.schema.tuple.Tuple;
*
* @since 0.1
*/
-@BuiltInFunction(name=SumAggregateFunction.NAME, nodeClass=SumAggregateParseNode.class, args= {@Argument(allowedTypes={PDataType.DECIMAL})} )
+@BuiltInFunction(name=SumAggregateFunction.NAME, nodeClass=SumAggregateParseNode.class, args= {@Argument(allowedTypes={PDecimal.class})} )
public class SumAggregateFunction extends DelegateConstantToCountAggregateFunction {
public static final String NAME = "SUM";
@@ -61,26 +67,22 @@ public class SumAggregateFunction extends DelegateConstantToCountAggregateFuncti
}
private Aggregator newAggregator(final PDataType type, SortOrder sortOrder, ImmutableBytesWritable ptr) {
- switch( type ) {
- case DECIMAL:
- return new DecimalSumAggregator(sortOrder, ptr);
- case UNSIGNED_DOUBLE:
- case UNSIGNED_FLOAT:
- case DOUBLE:
- case FLOAT:
- return new DoubleSumAggregator(sortOrder, ptr) {
- @Override
- protected PDataType getInputDataType() {
- return type;
- }
- };
- default:
- return new NumberSumAggregator(sortOrder, ptr) {
- @Override
- protected PDataType getInputDataType() {
- return type;
- }
- };
+ if (type == PDecimal.INSTANCE) {
+ return new DecimalSumAggregator(sortOrder, ptr);
+ } else if (PDataType.equalsAny(type, PUnsignedDouble.INSTANCE, PUnsignedFloat.INSTANCE, PDouble.INSTANCE, PFloat.INSTANCE)) {
+ return new DoubleSumAggregator(sortOrder, ptr) {
+ @Override
+ protected PDataType getInputDataType() {
+ return type;
+ }
+ };
+ } else {
+ return new NumberSumAggregator(sortOrder, ptr) {
+ @Override
+ protected PDataType getInputDataType() {
+ return type;
+ }
+ };
}
}
@@ -109,9 +111,9 @@ public class SumAggregateFunction extends DelegateConstantToCountAggregateFuncti
if (isConstantExpression()) {
PDataType type = getDataType();
Object constantValue = ((LiteralExpression)children.get(0)).getValue();
- if (type == PDataType.DECIMAL) {
- BigDecimal value = ((BigDecimal)constantValue).multiply((BigDecimal)PDataType.DECIMAL.toObject(ptr, PDataType.LONG));
- ptr.set(PDataType.DECIMAL.toBytes(value));
+ if (type == PDecimal.INSTANCE) {
+ BigDecimal value = ((BigDecimal)constantValue).multiply((BigDecimal) PDecimal.INSTANCE.toObject(ptr, PLong.INSTANCE));
+ ptr.set(PDecimal.INSTANCE.toBytes(value));
} else {
long constantLongValue = ((Number)constantValue).longValue();
long value = constantLongValue * type.getCodec().decodeLong(ptr, SortOrder.getDefault());
@@ -125,16 +127,13 @@ public class SumAggregateFunction extends DelegateConstantToCountAggregateFuncti
@Override
public PDataType getDataType() {
- switch(super.getDataType()) {
- case DECIMAL:
- return PDataType.DECIMAL;
- case UNSIGNED_FLOAT:
- case UNSIGNED_DOUBLE:
- case FLOAT:
- case DOUBLE:
- return PDataType.DOUBLE;
- default:
- return PDataType.LONG;
+ if (super.getDataType() == PDecimal.INSTANCE) {
+ return PDecimal.INSTANCE;
+ } else if (PDataType.equalsAny(super.getDataType(), PUnsignedFloat.INSTANCE, PUnsignedDouble.INSTANCE,
+ PFloat.INSTANCE, PDouble.INSTANCE)) {
+ return PDouble.INSTANCE;
+ } else {
+ return PLong.INSTANCE;
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TimezoneOffsetFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TimezoneOffsetFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TimezoneOffsetFunction.java
index 870e0fa..2cfbc25 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TimezoneOffsetFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TimezoneOffsetFunction.java
@@ -29,16 +29,18 @@ import org.apache.hadoop.hbase.util.Bytes;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode;
import org.apache.phoenix.schema.IllegalDataException;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDate;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
-
/**
* Returns offset (shift in minutes) of timezone at particular datetime in minutes.
*/
@FunctionParseNode.BuiltInFunction(name = TimezoneOffsetFunction.NAME, args = {
- @FunctionParseNode.Argument(allowedTypes = {PDataType.VARCHAR}),
- @FunctionParseNode.Argument(allowedTypes = {PDataType.DATE})})
+ @FunctionParseNode.Argument(allowedTypes = {PVarchar.class}),
+ @FunctionParseNode.Argument(allowedTypes = {PDate.class})})
public class TimezoneOffsetFunction extends ScalarFunction {
public static final String NAME = "TIMEZONE_OFFSET";
@@ -77,16 +79,16 @@ public class TimezoneOffsetFunction extends ScalarFunction {
cachedTimeZones.put(timezone, tz);
}
- Date date = (Date)PDataType.DATE.toObject(ptr, children.get(1).getSortOrder());
+ Date date = (Date) PDate.INSTANCE.toObject(ptr, children.get(1).getSortOrder());
int offset = cachedTimeZones.get(timezone).getOffset(date.getTime());
- ptr.set(PDataType.INTEGER.toBytes(offset / MILLIS_TO_MINUTES));
+ ptr.set(PInteger.INSTANCE.toBytes(offset / MILLIS_TO_MINUTES));
return true;
}
@Override
public PDataType getDataType() {
- return PDataType.INTEGER;
+ return PInteger.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
index c088735..e0bc68b 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToCharFunction.java
@@ -30,7 +30,10 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.parse.*;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDecimal;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PTimestamp;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -43,8 +46,8 @@ import org.apache.phoenix.schema.tuple.Tuple;
* @since 0.1
*/
@BuiltInFunction(name=ToCharFunction.NAME, nodeClass=ToCharParseNode.class, args={
- @Argument(allowedTypes={PDataType.TIMESTAMP, PDataType.DECIMAL}),
- @Argument(allowedTypes={PDataType.VARCHAR},isConstant=true,defaultValue="null") } )
+ @Argument(allowedTypes={PTimestamp.class, PDecimal.class}),
+ @Argument(allowedTypes={PVarchar.class},isConstant=true,defaultValue="null") } )
public class ToCharFunction extends ScalarFunction {
public static final String NAME = "TO_CHAR";
private String formatString;
@@ -99,7 +102,7 @@ public class ToCharFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToDateFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToDateFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToDateFunction.java
index 28d1206..3e4cfae 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToDateFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToDateFunction.java
@@ -30,7 +30,9 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.*;
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.types.PDate;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.DateUtil;
@@ -46,9 +48,9 @@ import org.apache.phoenix.util.DateUtil;
* @since 0.1
*/
@BuiltInFunction(name=ToDateFunction.NAME, nodeClass=ToDateParseNode.class,
- args={@Argument(allowedTypes={PDataType.VARCHAR}),
- @Argument(allowedTypes={PDataType.VARCHAR},isConstant=true,defaultValue="null"),
- @Argument(allowedTypes={PDataType.VARCHAR}, isConstant=true, defaultValue = "null") } )
+ args={@Argument(allowedTypes={PVarchar.class}),
+ @Argument(allowedTypes={PVarchar.class},isConstant=true,defaultValue="null"),
+ @Argument(allowedTypes={PVarchar.class}, isConstant=true, defaultValue = "null") } )
public class ToDateFunction extends ScalarFunction {
public static final String NAME = "TO_DATE";
private Format dateParser;
@@ -103,7 +105,7 @@ public class ToDateFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.DATE;
+ return PDate.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToNumberFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToNumberFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToNumberFunction.java
index dcccd35..ed70f2d 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToNumberFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/ToNumberFunction.java
@@ -34,7 +34,10 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode.Argument;
import org.apache.phoenix.parse.FunctionParseNode.BuiltInFunction;
import org.apache.phoenix.parse.*;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDecimal;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PTimestamp;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
/**
@@ -46,8 +49,8 @@ import org.apache.phoenix.schema.tuple.Tuple;
* @since 0.1
*/
@BuiltInFunction(name=ToNumberFunction.NAME, nodeClass=ToNumberParseNode.class, args= {
- @Argument(allowedTypes={PDataType.VARCHAR, PDataType.TIMESTAMP}),
- @Argument(allowedTypes={PDataType.VARCHAR}, isConstant=true, defaultValue="null")} )
+ @Argument(allowedTypes={PVarchar.class, PTimestamp.class}),
+ @Argument(allowedTypes={PVarchar.class}, isConstant=true, defaultValue="null")} )
public class ToNumberFunction extends ScalarFunction {
public static final String NAME = "TO_NUMBER";
@@ -75,7 +78,7 @@ public class ToNumberFunction extends ScalarFunction {
}
PDataType type = expression.getDataType();
- if (type.isCoercibleTo(PDataType.TIMESTAMP)) {
+ if (type.isCoercibleTo(PTimestamp.INSTANCE)) {
Date date = (Date) type.toObject(ptr, expression.getSortOrder());
BigDecimal time = new BigDecimal(date.getTime());
byte[] byteValue = getDataType().toBytes(time);
@@ -116,7 +119,7 @@ public class ToNumberFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.DECIMAL;
+ return PDecimal.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TrimFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TrimFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TrimFunction.java
index d14ddf9..12b53c7 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TrimFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TrimFunction.java
@@ -24,7 +24,8 @@ 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.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.tuple.Tuple;
import org.apache.phoenix.util.ByteUtil;
@@ -39,7 +40,7 @@ import org.apache.phoenix.util.StringUtil;
* @since 0.1
*/
@BuiltInFunction(name=TrimFunction.NAME, args={
- @Argument(allowedTypes={PDataType.VARCHAR})} )
+ @Argument(allowedTypes={ PVarchar.class })} )
public class TrimFunction extends ScalarFunction {
public static final String NAME = "TRIM";
@@ -94,7 +95,7 @@ public class TrimFunction extends ScalarFunction {
@Override
public PDataType getDataType() {
- return PDataType.VARCHAR;
+ return PVarchar.INSTANCE;
}
@Override
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TruncFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TruncFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TruncFunction.java
index 4fb16be..a4e79c2 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TruncFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/TruncFunction.java
@@ -24,8 +24,10 @@ import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FloorParseNode;
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.types.PDecimal;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PTimestamp;
+import org.apache.phoenix.schema.types.PVarchar;
/**
*
@@ -33,7 +35,7 @@ import org.apache.phoenix.schema.PDataType;
* an even increment. Usage:
* TRUNC(<date/time col ref>,<'day'|'hour'|'minute'|'second'|'millisecond'>,[<optional integer multiplier>])
* The integer multiplier is optional and is used to do rollups to a partial time unit (i.e. 10 minute rollup)
- * The function returns a {@link org.apache.phoenix.schema.PDataType#DATE}
+ * The function returns a {@link org.apache.phoenix.schema.types.PDate}
*
*
* @since 0.1
@@ -41,9 +43,9 @@ import org.apache.phoenix.schema.PDataType;
@BuiltInFunction(name = TruncFunction.NAME,
nodeClass = FloorParseNode.class,
args = {
- @Argument(allowedTypes={PDataType.TIMESTAMP, PDataType.DECIMAL}),
- @Argument(allowedTypes={PDataType.VARCHAR, PDataType.INTEGER}, defaultValue = "null", isConstant=true),
- @Argument(allowedTypes={PDataType.INTEGER}, defaultValue="1", isConstant=true)
+ @Argument(allowedTypes={PTimestamp.class, PDecimal.class}),
+ @Argument(allowedTypes={PVarchar.class, PInteger.class}, defaultValue = "null", isConstant=true),
+ @Argument(allowedTypes={PInteger.class}, defaultValue="1", isConstant=true)
}
)
public abstract class TruncFunction extends ScalarFunction {
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/UpperFunction.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/UpperFunction.java b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/UpperFunction.java
index 43b3766..3a6305c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/expression/function/UpperFunction.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/expression/function/UpperFunction.java
@@ -25,11 +25,12 @@ import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.Expression;
import org.apache.phoenix.parse.FunctionParseNode;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
+import org.apache.phoenix.schema.types.PVarchar;
import org.apache.phoenix.schema.tuple.Tuple;
@FunctionParseNode.BuiltInFunction(name=UpperFunction.NAME, args={
- @FunctionParseNode.Argument(allowedTypes={PDataType.VARCHAR})} )
+ @FunctionParseNode.Argument(allowedTypes={PVarchar.class})} )
public class UpperFunction extends ScalarFunction {
public static final String NAME = "UPPER";
@@ -46,12 +47,12 @@ public class UpperFunction extends ScalarFunction {
return false;
}
- String sourceStr = (String)PDataType.VARCHAR.toObject(ptr, getStrExpression().getSortOrder());
+ String sourceStr = (String) PVarchar.INSTANCE.toObject(ptr, getStrExpression().getSortOrder());
if (sourceStr == null) {
return true;
}
- ptr.set(PDataType.VARCHAR.toBytes(sourceStr.toUpperCase()));
+ ptr.set(PVarchar.INSTANCE.toBytes(sourceStr.toUpperCase()));
return true;
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java b/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
index f8c73fc..61b6e68 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
@@ -50,7 +50,7 @@ import org.apache.phoenix.hbase.index.util.IndexManagementUtil.ReferencingColumn
import org.apache.phoenix.query.QueryConstants;
import org.apache.phoenix.schema.PColumn;
import org.apache.phoenix.schema.PColumnFamily;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.PDatum;
import org.apache.phoenix.schema.PIndexState;
import org.apache.phoenix.schema.PTable;
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java
index 46d09d6..a0bd7c5 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexBuilder.java
@@ -35,7 +35,7 @@ import org.apache.phoenix.compile.ScanRanges;
import org.apache.phoenix.hbase.index.covered.CoveredColumnsIndexBuilder;
import org.apache.phoenix.hbase.index.util.IndexManagementUtil;
import org.apache.phoenix.query.KeyRange;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PVarbinary;
import org.apache.phoenix.util.ScanUtil;
import org.apache.phoenix.util.SchemaUtil;
@@ -57,7 +57,7 @@ public class PhoenixIndexBuilder extends CoveredColumnsIndexBuilder {
ImmutableBytesWritable indexTableName = new ImmutableBytesWritable();
for (int i = 0; i < miniBatchOp.size(); i++) {
Mutation m = miniBatchOp.getOperation(i);
- keys.add(PDataType.VARBINARY.getKeyRange(m.getRow()));
+ keys.add(PVarbinary.INSTANCE.getKeyRange(m.getRow()));
List<IndexMaintainer> indexMaintainers = getCodec().getIndexMaintainers(m.getAttributesMap());
for(IndexMaintainer indexMaintainer: indexMaintainers) {
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
index 565b28c..1c98c5c 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/index/PhoenixIndexFailurePolicy.java
@@ -50,8 +50,8 @@ import org.apache.phoenix.coprocessor.generated.MetaDataProtos.UpdateIndexStateR
import org.apache.phoenix.jdbc.PhoenixConnection;
import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData;
import org.apache.phoenix.protobuf.ProtobufUtil;
-import org.apache.phoenix.schema.PDataType;
import org.apache.phoenix.schema.PIndexState;
+import org.apache.phoenix.schema.types.PLong;
import org.apache.phoenix.schema.PTable;
import org.apache.phoenix.schema.PTable.IndexType;
import org.apache.phoenix.util.MetaDataUtil;
@@ -150,7 +150,7 @@ public class PhoenixIndexFailurePolicy extends KillServerOnFailurePolicy {
put.add(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, PhoenixDatabaseMetaData.INDEX_STATE_BYTES,
PIndexState.DISABLE.getSerializedBytes());
put.add(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, PhoenixDatabaseMetaData.INDEX_DISABLE_TIMESTAMP_BYTES,
- PDataType.LONG.toBytes(minTimeStamp));
+ PLong.INSTANCE.toBytes(minTimeStamp));
final List<Mutation> tableMetadata = Collections.<Mutation>singletonList(put);
final Map<byte[], MetaDataResponse> results =
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java
index 8c04383..9756871 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/ExplainTable.java
@@ -39,7 +39,8 @@ import org.apache.phoenix.parse.HintNode;
import org.apache.phoenix.parse.HintNode.Hint;
import org.apache.phoenix.query.KeyRange;
import org.apache.phoenix.query.KeyRange.Bound;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PInteger;
+import org.apache.phoenix.schema.types.PDataType;
import org.apache.phoenix.schema.RowKeySchema;
import org.apache.phoenix.schema.SortOrder;
import org.apache.phoenix.schema.TableRef;
@@ -162,7 +163,7 @@ public abstract class ExplainTable {
Integer groupByLimit = null;
byte[] groupByLimitBytes = scan.getAttribute(BaseScannerRegionObserver.GROUP_BY_LIMIT);
if (groupByLimitBytes != null) {
- groupByLimit = (Integer)PDataType.INTEGER.toObject(groupByLimitBytes);
+ groupByLimit = (Integer) PInteger.INSTANCE.toObject(groupByLimitBytes);
}
groupBy.explain(planSteps, groupByLimit);
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterAggregatingResultIterator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterAggregatingResultIterator.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterAggregatingResultIterator.java
index 15b9094..4fa2011 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterAggregatingResultIterator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterAggregatingResultIterator.java
@@ -23,7 +23,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PBoolean;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -46,7 +46,7 @@ public class FilterAggregatingResultIterator implements AggregatingResultIterat
public FilterAggregatingResultIterator(AggregatingResultIterator delegate, Expression expression) {
this.delegate = delegate;
this.expression = expression;
- if (expression.getDataType() != PDataType.BOOLEAN) {
+ if (expression.getDataType() != PBoolean.INSTANCE) {
throw new IllegalArgumentException("FilterResultIterator requires a boolean expression, but got " + expression);
}
}
http://git-wip-us.apache.org/repos/asf/phoenix/blob/04ef859b/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterResultIterator.java
----------------------------------------------------------------------
diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterResultIterator.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterResultIterator.java
index 6c332fa..eaa6956 100644
--- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterResultIterator.java
+++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/FilterResultIterator.java
@@ -23,7 +23,7 @@ import java.util.List;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.phoenix.expression.Expression;
-import org.apache.phoenix.schema.PDataType;
+import org.apache.phoenix.schema.types.PBoolean;
import org.apache.phoenix.schema.tuple.Tuple;
@@ -49,7 +49,7 @@ public class FilterResultIterator extends LookAheadResultIterator {
}
this.delegate = delegate;
this.expression = expression;
- if (expression.getDataType() != PDataType.BOOLEAN) {
+ if (expression.getDataType() != PBoolean.INSTANCE) {
throw new IllegalArgumentException("FilterResultIterator requires a boolean expression, but got " + expression);
}
}