You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by za...@apache.org on 2024/04/05 12:04:22 UTC
(hive) branch master updated (855e4055675 -> a537000af73)
This is an automated email from the ASF dual-hosted git repository.
zabetak pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
from 855e4055675 HIVE-28148: Implement array_compact UDF to remove all nulls from an array (#5161) (Taraka Rama Rao Lethavadla reviewed by Sourabh Badhya)
new e6e6b12d5fe HIVE-28144: Remove overly verbose debug messages from MetastoreDirectSqlUtils (Stamatis Zampetakis reviewed by Butao Zhang)
new a537000af73 HIVE-28046: Use serdeConstants fields instead of string literals in hive-exec module (Michal Lorek reviewed by Stamatis Zampetakis)
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../hadoop/hive/ql/exec/ColumnStatsUpdateTask.java | 27 ++++---
.../apache/hadoop/hive/ql/exec/DDLPlanUtils.java | 3 +-
.../ql/exec/vector/VectorExpressionDescriptor.java | 24 +++---
.../hive/ql/exec/vector/VectorizationContext.java | 86 +++++++++++-----------
.../hive/ql/exec/vector/VectorizedBatchUtil.java | 3 +-
.../exec/vector/expressions/CastDateToBoolean.java | 3 +-
.../vector/expressions/CastDateToTimestamp.java | 3 +-
.../vector/expressions/CastDoubleToTimestamp.java | 3 +-
.../vector/expressions/CastTimestampToBoolean.java | 3 +-
.../vector/expressions/CastTimestampToDouble.java | 3 +-
.../vector/expressions/CastTimestampToLong.java | 3 +-
.../expressions/DateColSubtractDateColumn.java | 5 +-
.../expressions/DateColSubtractDateScalar.java | 5 +-
.../expressions/DateScalarSubtractDateColumn.java | 5 +-
.../IfExprDoubleColumnDoubleColumn.java | 5 +-
.../hive/ql/exec/vector/ptf/VectorPTFOperator.java | 11 +--
.../org/apache/hadoop/hive/ql/io/IOConstants.java | 2 +-
.../hadoop/hive/ql/io/RCFileOutputFormat.java | 3 +-
.../org/apache/hadoop/hive/ql/io/orc/OrcSerde.java | 4 +-
.../org/apache/hadoop/hive/ql/io/orc/OrcUnion.java | 5 +-
.../parquet/convert/HiveCollectionConverter.java | 4 +-
.../hive/ql/io/parquet/serde/ParquetHiveSerDe.java | 2 +-
.../hive/ql/io/sarg/ConvertAstToSearchArg.java | 3 +-
.../hive/ql/optimizer/SimpleFetchOptimizer.java | 3 +-
.../calcite/translator/SqlFunctionConverter.java | 28 +++----
.../hive/ql/optimizer/physical/Vectorizer.java | 55 +++++++-------
.../hadoop/hive/ql/parse/BaseSemanticAnalyzer.java | 4 +-
.../hive/ql/parse/rewrite/MergeRewriter.java | 3 +-
.../hive/ql/parse/type/TypeCheckProcFactory.java | 8 +-
.../apache/hadoop/hive/ql/plan/PartitionDesc.java | 2 +-
.../org/apache/hadoop/hive/ql/plan/PlanUtils.java | 9 ++-
.../hadoop/hive/ql/processors/DfsProcessor.java | 3 +-
.../ql/processors/LlapCacheResourceProcessor.java | 5 +-
.../processors/LlapClusterResourceProcessor.java | 13 ++--
.../hive/ql/udf/esri/serde/BaseJsonSerDe.java | 3 +-
.../hive/ql/udf/generic/GenericUDFBetween.java | 3 +-
.../hive/ql/udf/ptf/ValueBoundaryScanner.java | 25 ++++---
.../hive/metastore/MetastoreDirectSqlUtils.java | 5 +-
38 files changed, 209 insertions(+), 175 deletions(-)
(hive) 01/02: HIVE-28144: Remove overly verbose debug messages from MetastoreDirectSqlUtils (Stamatis Zampetakis reviewed by Butao Zhang)
Posted by za...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
commit e6e6b12d5fe13e8cbca99e8f3a5d5f13438b2400
Author: Stamatis Zampetakis <za...@gmail.com>
AuthorDate: Fri Mar 22 11:05:08 2024 +0100
HIVE-28144: Remove overly verbose debug messages from MetastoreDirectSqlUtils (Stamatis Zampetakis reviewed by Butao Zhang)
When BITVECTOR or KLL stats are disabled/not present in the metastore the following message may appear way too often in the HMS logs.
```
2024-03-22T01:50:57,849 DEBUG [CachedStore-CacheUpdateService: Thread-240] metastore.MetastoreDirectSqlUtils: Expected blob type but got java.lang.String
```
In fact in some cases, the message appears more than once for every single partition that is present in the table(s) being queried. When the number of partitions is important it can easily clog the logs with redundant and useless information.
To put things in perspective while running the cbo_query10.q on the statistics of TPC-DS30TB dataset the message occupies more than 50% (26MB) of the total log file (46MB).
The presence of the message does not tells us much on its own. In conjunction with the code we can infer that we are not fetching BITVECTOR/KLL stats from the metastore but this could be done in a different place without having to print the same message 170K times.
Removing this message saves disk space, avoids frequent log rotation, and improves the overall readability of the log file.
There is another redundant message which appears when transforming a database value to Boolean. The message is redundant since it is followed directly by an exception so there is no reason to have both. This message may not appear as often as the previous one but given that it doesn't add much value it can also be removed.
Close apache/hive#5159
---
.../org/apache/hadoop/hive/metastore/MetastoreDirectSqlUtils.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDirectSqlUtils.java b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDirectSqlUtils.java
index 067e415d725..8a608a030ee 100644
--- a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDirectSqlUtils.java
+++ b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/MetastoreDirectSqlUtils.java
@@ -554,7 +554,6 @@ class MetastoreDirectSqlUtils {
return true;
}
}
- LOG.debug("Value is of type {}", value.getClass());
throw new MetaException("Cannot extract boolean from column value " + value);
}
@@ -590,8 +589,8 @@ class MetastoreDirectSqlUtils {
return (byte[]) value;
}
else {
- // this may happen when enablebitvector is false
- LOG.debug("Expected blob type but got " + value.getClass().getName());
+ // org.apache.hadoop.hive.metastore.MetaStoreDirectSql.getStatsList(enableBitVector,enableKll)
+ // We get here when enableBitvector or enableKll is false
return null;
}
}
(hive) 02/02: HIVE-28046: Use serdeConstants fields instead of string literals in hive-exec module (Michal Lorek reviewed by Stamatis Zampetakis)
Posted by za...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
zabetak pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
commit a537000af730e994a37b0f60b37007e3caf8f1c7
Author: mlorek <mi...@gmail.comx>
AuthorDate: Tue Jan 30 14:28:23 2024 +0000
HIVE-28046: Use serdeConstants fields instead of string literals in hive-exec module (Michal Lorek reviewed by Stamatis Zampetakis)
The procedure to replace literals with constans is outlined below:
1. Generate a sed script file using serdeConstants.java for the possible replacements
grep "public static final java.lang.String" ./serde/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/serde/serdeConstants.java | sed 's/.\+java\.lang\.String//'| sed 's/ //g' | sed 's/\(.*\)=\(.*\);/s#\2#serdeConstants.\1#/' | sed 's/\./\\./g' > sedrepscript
2. Apply the script file to all java files in production code
find ql/src/java -name "*.java" -exec sed -i -f sedrepscript {} \;
3. Manual review of change files adding import when necessary and reverting irrelevant changes
using serdeConstants fields instead of string literals for 'columns' and 'columns.types'
Co-authored-by: Stamatis Zampetakis <za...@gmail.com>
Close apache/hive#5072
---
.../hadoop/hive/ql/exec/ColumnStatsUpdateTask.java | 27 ++++---
.../apache/hadoop/hive/ql/exec/DDLPlanUtils.java | 3 +-
.../ql/exec/vector/VectorExpressionDescriptor.java | 24 +++---
.../hive/ql/exec/vector/VectorizationContext.java | 86 +++++++++++-----------
.../hive/ql/exec/vector/VectorizedBatchUtil.java | 3 +-
.../exec/vector/expressions/CastDateToBoolean.java | 3 +-
.../vector/expressions/CastDateToTimestamp.java | 3 +-
.../vector/expressions/CastDoubleToTimestamp.java | 3 +-
.../vector/expressions/CastTimestampToBoolean.java | 3 +-
.../vector/expressions/CastTimestampToDouble.java | 3 +-
.../vector/expressions/CastTimestampToLong.java | 3 +-
.../expressions/DateColSubtractDateColumn.java | 5 +-
.../expressions/DateColSubtractDateScalar.java | 5 +-
.../expressions/DateScalarSubtractDateColumn.java | 5 +-
.../IfExprDoubleColumnDoubleColumn.java | 5 +-
.../hive/ql/exec/vector/ptf/VectorPTFOperator.java | 11 +--
.../org/apache/hadoop/hive/ql/io/IOConstants.java | 2 +-
.../hadoop/hive/ql/io/RCFileOutputFormat.java | 3 +-
.../org/apache/hadoop/hive/ql/io/orc/OrcSerde.java | 4 +-
.../org/apache/hadoop/hive/ql/io/orc/OrcUnion.java | 5 +-
.../parquet/convert/HiveCollectionConverter.java | 4 +-
.../hive/ql/io/parquet/serde/ParquetHiveSerDe.java | 2 +-
.../hive/ql/io/sarg/ConvertAstToSearchArg.java | 3 +-
.../hive/ql/optimizer/SimpleFetchOptimizer.java | 3 +-
.../calcite/translator/SqlFunctionConverter.java | 28 +++----
.../hive/ql/optimizer/physical/Vectorizer.java | 55 +++++++-------
.../hadoop/hive/ql/parse/BaseSemanticAnalyzer.java | 4 +-
.../hive/ql/parse/rewrite/MergeRewriter.java | 3 +-
.../hive/ql/parse/type/TypeCheckProcFactory.java | 8 +-
.../apache/hadoop/hive/ql/plan/PartitionDesc.java | 2 +-
.../org/apache/hadoop/hive/ql/plan/PlanUtils.java | 9 ++-
.../hadoop/hive/ql/processors/DfsProcessor.java | 3 +-
.../ql/processors/LlapCacheResourceProcessor.java | 5 +-
.../processors/LlapClusterResourceProcessor.java | 13 ++--
.../hive/ql/udf/esri/serde/BaseJsonSerDe.java | 3 +-
.../hive/ql/udf/generic/GenericUDFBetween.java | 3 +-
.../hive/ql/udf/ptf/ValueBoundaryScanner.java | 25 ++++---
37 files changed, 207 insertions(+), 172 deletions(-)
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
index 8b6c8d6b1bd..c4ae676d7a9 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java
@@ -55,6 +55,7 @@ import org.apache.hadoop.hive.ql.metadata.Table;
import org.apache.hadoop.hive.ql.parse.SemanticException;
import org.apache.hadoop.hive.ql.plan.ColumnStatsUpdateWork;
import org.apache.hadoop.hive.ql.plan.api.StageType;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.DateWritableV2;
import org.apache.hadoop.hive.serde2.io.TimestampWritableV2;
import org.slf4j.Logger;
@@ -101,9 +102,11 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
ColumnStatisticsData statsData = new ColumnStatisticsData();
- if (columnType.equalsIgnoreCase("long") || columnType.equalsIgnoreCase("tinyint")
- || columnType.equalsIgnoreCase("smallint") || columnType.equalsIgnoreCase("int")
- || columnType.equalsIgnoreCase("bigint")) {
+ if (columnType.equalsIgnoreCase("long")
+ || columnType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME)
+ || columnType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME)
+ || columnType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME)
+ || columnType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME)) {
LongColumnStatsDataInspector longStats = new LongColumnStatsDataInspector();
longStats.setNumNullsIsSet(false);
longStats.setNumDVsIsSet(false);
@@ -127,7 +130,8 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setLongStats(longStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("double") || columnType.equalsIgnoreCase("float")) {
+ } else if (columnType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)
+ || columnType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME)) {
DoubleColumnStatsDataInspector doubleStats = new DoubleColumnStatsDataInspector();
doubleStats.setNumNullsIsSet(false);
doubleStats.setNumDVsIsSet(false);
@@ -151,8 +155,9 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setDoubleStats(doubleStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("string") || columnType.toLowerCase().startsWith("char")
- || columnType.toLowerCase().startsWith("varchar")) { //char(x),varchar(x) types
+ } else if (columnType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME)
+ || columnType.toLowerCase().startsWith(serdeConstants.CHAR_TYPE_NAME)
+ || columnType.toLowerCase().startsWith(serdeConstants.VARCHAR_TYPE_NAME)) { //char(x),varchar(x) types
StringColumnStatsDataInspector stringStats = new StringColumnStatsDataInspector();
stringStats.setMaxColLenIsSet(false);
stringStats.setAvgColLenIsSet(false);
@@ -176,7 +181,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setStringStats(stringStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("boolean")) {
+ } else if (columnType.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME)) {
BooleanColumnStatsData booleanStats = new BooleanColumnStatsData();
booleanStats.setNumNullsIsSet(false);
booleanStats.setNumTruesIsSet(false);
@@ -197,7 +202,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setBooleanStats(booleanStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("binary")) {
+ } else if (columnType.equalsIgnoreCase(serdeConstants.BINARY_TYPE_NAME)) {
BinaryColumnStatsData binaryStats = new BinaryColumnStatsData();
binaryStats.setNumNullsIsSet(false);
binaryStats.setAvgColLenIsSet(false);
@@ -218,7 +223,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setBinaryStats(binaryStats);
statsObj.setStatsData(statsData);
- } else if (columnType.toLowerCase().startsWith("decimal")) { //decimal(a,b) type
+ } else if (columnType.toLowerCase().startsWith(serdeConstants.DECIMAL_TYPE_NAME)) { //decimal(a,b) type
DecimalColumnStatsDataInspector decimalStats = new DecimalColumnStatsDataInspector();
decimalStats.setNumNullsIsSet(false);
decimalStats.setNumDVsIsSet(false);
@@ -246,7 +251,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setDecimalStats(decimalStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("date")) {
+ } else if (columnType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME)) {
DateColumnStatsDataInspector dateStats = new DateColumnStatsDataInspector();
Map<String, String> mapProp = work.getMapProp();
for (Entry<String, String> entry : mapProp.entrySet()) {
@@ -268,7 +273,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> {
}
statsData.setDateStats(dateStats);
statsObj.setStatsData(statsData);
- } else if (columnType.equalsIgnoreCase("timestamp")) {
+ } else if (columnType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME)) {
TimestampColumnStatsDataInspector timestampStats = new TimestampColumnStatsDataInspector();
Map<String, String> mapProp = work.getMapProp();
for (Entry<String, String> entry : mapProp.entrySet()) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLPlanUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLPlanUtils.java
index 9e226c24e92..d3163bee95b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLPlanUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLPlanUtils.java
@@ -89,6 +89,7 @@ import java.util.stream.Collectors;
import static org.apache.hadoop.hive.metastore.api.hive_metastoreConstants.META_TABLE_STORAGE;
import static org.apache.hadoop.hive.ql.metadata.HiveUtils.unparseIdentifier;
+import static org.apache.hadoop.hive.serde.serdeConstants.UNION_TYPE_NAME;
public class DDLPlanUtils {
private static final String EXTERNAL = "external";
@@ -964,7 +965,7 @@ public class DDLPlanUtils {
String unionElementType = formatType(unionElementTypeInfo);
unionFormattedType.append(unionElementType);
}
- return "uniontype<" + unionFormattedType.toString() + ">";
+ return UNION_TYPE_NAME + "<" + unionFormattedType.toString() + ">";
default:
throw new RuntimeException("Unknown type: " + typeInfo.getCategory());
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExpressionDescriptor.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExpressionDescriptor.java
index ff8f31ae90b..726d562480d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExpressionDescriptor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorExpressionDescriptor.java
@@ -105,28 +105,28 @@ public class VectorExpressionDescriptor {
public static ArgumentType fromHiveTypeName(String hiveTypeName) {
String lower = hiveTypeName.toLowerCase();
- if (lower.equals("tinyint") ||
- lower.equals("smallint") ||
- lower.equals("int") ||
- lower.equals("bigint") ||
- lower.equals("boolean") ||
+ if (lower.equals(serdeConstants.TINYINT_TYPE_NAME) ||
+ lower.equals(serdeConstants.SMALLINT_TYPE_NAME) ||
+ lower.equals(serdeConstants.INT_TYPE_NAME) ||
+ lower.equals(serdeConstants.BIGINT_TYPE_NAME) ||
+ lower.equals(serdeConstants.BOOLEAN_TYPE_NAME) ||
lower.equals("long")) {
return INT_FAMILY;
- } else if (lower.equals("double") || lower.equals("float")) {
+ } else if (lower.equals(serdeConstants.DOUBLE_TYPE_NAME) || lower.equals(serdeConstants.FLOAT_TYPE_NAME)) {
return FLOAT_FAMILY;
- } else if (lower.equals("string")) {
+ } else if (lower.equals(serdeConstants.STRING_TYPE_NAME)) {
return STRING;
} else if (VectorizationContext.charTypePattern.matcher(lower).matches()) {
return CHAR;
} else if (VectorizationContext.varcharTypePattern.matcher(lower).matches()) {
return VARCHAR;
- } else if (lower.equals("binary")) {
+ } else if (lower.equals(serdeConstants.BINARY_TYPE_NAME)) {
return BINARY;
} else if (VectorizationContext.decimalTypePattern.matcher(lower).matches()) {
return DECIMAL;
- } else if (lower.equals("timestamp")) {
+ } else if (lower.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) {
return TIMESTAMP;
- } else if (lower.equals("date")) {
+ } else if (lower.equals(serdeConstants.DATE_TYPE_NAME)) {
return DATE;
} else if (lower.equals(serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME)) {
return INTERVAL_YEAR_MONTH;
@@ -138,7 +138,7 @@ public class VectorExpressionDescriptor {
return LIST;
} else if (VectorizationContext.mapTypePattern.matcher(lower).matches()) {
return MAP;
- } else if (lower.equals("void")) {
+ } else if (lower.equals(serdeConstants.VOID_TYPE_NAME)) {
return VOID;
} else {
return NONE;
@@ -149,7 +149,7 @@ public class VectorExpressionDescriptor {
if (inType.equalsIgnoreCase("long")) {
// A synonym in some places in the code...
return INT_FAMILY;
- } else if (inType.equalsIgnoreCase("double")) {
+ } else if (inType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)) {
// A synonym in some places in the code...
return FLOAT_FAMILY;
} else if (VectorizationContext.decimalTypePattern.matcher(inType).matches()) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
index 42a0f2ea609..a3a24aa9029 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
@@ -512,9 +512,9 @@ import com.google.common.annotations.VisibleForTesting;
typeName = VectorizationContext.mapTypeNameSynonyms(typeName);
// Make CHAR and VARCHAR type info parsable.
- if (typeName.equals("char")) {
+ if (typeName.equals(serdeConstants.CHAR_TYPE_NAME)) {
typeName = "char(" + HiveChar.MAX_CHAR_LENGTH + ")";
- } else if (typeName.equals("varchar")) {
+ } else if (typeName.equals(serdeConstants.VARCHAR_TYPE_NAME)) {
typeName = "varchar(" + HiveVarchar.MAX_VARCHAR_LENGTH + ")";
}
@@ -1475,9 +1475,9 @@ import com.google.common.annotations.VisibleForTesting;
if ((gudf instanceof GenericUDFToString
|| gudf instanceof GenericUDFToChar
|| gudf instanceof GenericUDFToVarchar) &&
- (arg0Type(expr).equals("timestamp")
- || arg0Type(expr).equals("double")
- || arg0Type(expr).equals("float"))) {
+ (arg0Type(expr).equals(serdeConstants.TIMESTAMP_TYPE_NAME)
+ || arg0Type(expr).equals(serdeConstants.DOUBLE_TYPE_NAME)
+ || arg0Type(expr).equals(serdeConstants.FLOAT_TYPE_NAME))) {
return true;
} else if (gudf instanceof GenericUDFBetween && (mode == VectorExpressionDescriptor.Mode.PROJECTION)) {
return true;
@@ -1623,7 +1623,7 @@ import com.google.common.annotations.VisibleForTesting;
}
// Boolean is special case.
- if (typeName.equalsIgnoreCase("boolean")) {
+ if (typeName.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME)) {
if (mode == VectorExpressionDescriptor.Mode.FILTER) {
if ((Boolean) constantValue) {
return new FilterConstantBooleanVectorExpression(1);
@@ -3248,7 +3248,7 @@ import com.google.common.annotations.VisibleForTesting;
isFloatFamily(inputType) ||
decimalTypePattern.matcher(inputType).matches() ||
isStringFamily(inputType) ||
- inputType.equals("timestamp")) {
+ inputType.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) {
return returnDecimalType;
}
return null;
@@ -3289,10 +3289,10 @@ import com.google.common.annotations.VisibleForTesting;
}
return createVectorExpression(CastLongToDecimal.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("float")) {
+ } else if (inputType.equals(serdeConstants.FLOAT_TYPE_NAME)) {
return createVectorExpression(CastFloatToDecimal.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("double")) {
+ } else if (inputType.equals(serdeConstants.DOUBLE_TYPE_NAME)) {
return createVectorExpression(CastDoubleToDecimal.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
} else if (decimalTypePattern.matcher(inputType).matches()) {
@@ -3329,7 +3329,7 @@ import com.google.common.annotations.VisibleForTesting;
DataTypePhysicalVariation.NONE;
return createVectorExpression(CastStringToDecimal.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, dataTypePhysicalVariation);
- } else if (inputType.equals("timestamp")) {
+ } else if (inputType.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) {
return createVectorExpression(CastTimestampToDecimal.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
}
@@ -3353,17 +3353,17 @@ import com.google.common.annotations.VisibleForTesting;
return null;
}
}
- if (inputType.equals("boolean")) {
+ if (inputType.equals(serdeConstants.BOOLEAN_TYPE_NAME)) {
// Boolean must come before the integer family. It's a special case.
return createVectorExpression(CastBooleanToStringViaLongToString.class, childExpr,
VectorExpressionDescriptor.Mode.PROJECTION, returnType, DataTypePhysicalVariation.NONE);
} else if (isIntFamily(inputType)) {
return createVectorExpression(CastLongToString.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("float")) {
+ } else if (inputType.equals(serdeConstants.FLOAT_TYPE_NAME)) {
return createVectorExpression(CastFloatToString.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("double")) {
+ } else if (inputType.equals(serdeConstants.DOUBLE_TYPE_NAME)) {
return createVectorExpression(CastDoubleToString.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
} else if (isDecimalFamily(inputType)) {
@@ -3394,17 +3394,17 @@ import com.google.common.annotations.VisibleForTesting;
// Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424.
return null;
}
- if (inputType.equals("boolean")) {
+ if (inputType.equals(serdeConstants.BOOLEAN_TYPE_NAME)) {
// Boolean must come before the integer family. It's a special case.
return createVectorExpression(CastBooleanToCharViaLongToChar.class, childExpr,
VectorExpressionDescriptor.Mode.PROJECTION, returnType, DataTypePhysicalVariation.NONE);
} else if (isIntFamily(inputType)) {
return createVectorExpression(CastLongToChar.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("float")) {
+ } else if (inputType.equals(serdeConstants.FLOAT_TYPE_NAME)) {
return createVectorExpression(CastFloatToChar.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("double")) {
+ } else if (inputType.equals(serdeConstants.DOUBLE_TYPE_NAME)) {
return createVectorExpression(CastDoubleToChar.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
} else if (isDecimalFamily(inputType)) {
@@ -3432,17 +3432,17 @@ import com.google.common.annotations.VisibleForTesting;
// Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424.
return null;
}
- if (inputType.equals("boolean")) {
+ if (inputType.equals(serdeConstants.BOOLEAN_TYPE_NAME)) {
// Boolean must come before the integer family. It's a special case.
return createVectorExpression(CastBooleanToVarCharViaLongToVarChar.class, childExpr,
VectorExpressionDescriptor.Mode.PROJECTION, returnType, DataTypePhysicalVariation.NONE);
} else if (isIntFamily(inputType)) {
return createVectorExpression(CastLongToVarChar.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("float")) {
+ } else if (inputType.equals(serdeConstants.FLOAT_TYPE_NAME)) {
return createVectorExpression(CastFloatToVarChar.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
- } else if (inputType.equals("double")) {
+ } else if (inputType.equals(serdeConstants.DOUBLE_TYPE_NAME)) {
return createVectorExpression(CastDoubleToVarChar.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
} else if (isDecimalFamily(inputType)) {
@@ -3470,7 +3470,7 @@ import com.google.common.annotations.VisibleForTesting;
// Family of related JIRAs: HIVE-7421, HIVE-7422, and HIVE-7424.
return null;
}
- if (inputType.equalsIgnoreCase("string") || varcharTypePattern.matcher(inputType).matches()) {
+ if (inputType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) || varcharTypePattern.matcher(inputType).matches()) {
// STRING and VARCHAR types require no conversion, so use a no-op.
return getIdentityExpression(childExpr);
@@ -3500,7 +3500,7 @@ import com.google.common.annotations.VisibleForTesting;
return createVectorExpression(CastLongToDouble.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
}
- } else if (inputType.equals("timestamp")) {
+ } else if (inputType.equals(serdeConstants.TIMESTAMP_TYPE_NAME)) {
return createVectorExpression(CastTimestampToDouble.class, childExpr, VectorExpressionDescriptor.Mode.PROJECTION,
returnType, DataTypePhysicalVariation.NONE);
} else if (isFloatFamily(inputType)) {
@@ -3749,7 +3749,7 @@ import com.google.common.annotations.VisibleForTesting;
} else {
cl = FilterDoubleColumnNotBetween.class;
}
- } else if (colType.equals("string") && !notKeywordPresent) {
+ } else if (colType.equals(serdeConstants.STRING_TYPE_NAME) && !notKeywordPresent) {
if (mode == VectorExpressionDescriptor.Mode.PROJECTION) {
cl = StringColumnBetween.class;
} else {
@@ -3757,7 +3757,7 @@ import com.google.common.annotations.VisibleForTesting;
FilterStringColumnBetweenDynamicValue.class :
FilterStringColumnBetween.class);
}
- } else if (colType.equals("string") && notKeywordPresent) {
+ } else if (colType.equals(serdeConstants.STRING_TYPE_NAME) && notKeywordPresent) {
if (mode == VectorExpressionDescriptor.Mode.PROJECTION) {
cl = StringColumnNotBetween.class;
} else {
@@ -3791,7 +3791,7 @@ import com.google.common.annotations.VisibleForTesting;
} else {
cl = FilterCharColumnNotBetween.class;
}
- } else if (colType.equals("timestamp") && !notKeywordPresent) {
+ } else if (colType.equals(serdeConstants.TIMESTAMP_TYPE_NAME) && !notKeywordPresent) {
if (mode == VectorExpressionDescriptor.Mode.PROJECTION) {
cl = TimestampColumnBetween.class;
} else {
@@ -3799,7 +3799,7 @@ import com.google.common.annotations.VisibleForTesting;
FilterTimestampColumnBetweenDynamicValue.class :
FilterTimestampColumnBetween.class);
}
- } else if (colType.equals("timestamp") && notKeywordPresent) {
+ } else if (colType.equals(serdeConstants.TIMESTAMP_TYPE_NAME) && notKeywordPresent) {
if (mode == VectorExpressionDescriptor.Mode.PROJECTION) {
cl = TimestampColumnNotBetween.class;
} else {
@@ -4266,43 +4266,43 @@ import com.google.common.annotations.VisibleForTesting;
}
public static boolean isStringFamily(String resultType) {
- return resultType.equalsIgnoreCase("string") || charVarcharTypePattern.matcher(resultType).matches() ||
+ return resultType.equalsIgnoreCase(serdeConstants.STRING_TYPE_NAME) || charVarcharTypePattern.matcher(resultType).matches() ||
resultType.equalsIgnoreCase("string_family");
}
public static boolean isDatetimeFamily(String resultType) {
- return resultType.equalsIgnoreCase("timestamp") || resultType.equalsIgnoreCase("date");
+ return resultType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME) || resultType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME);
}
public static boolean isTimestampFamily(String resultType) {
- return resultType.equalsIgnoreCase("timestamp");
+ return resultType.equalsIgnoreCase(serdeConstants.TIMESTAMP_TYPE_NAME);
}
public static boolean isDateFamily(String resultType) {
- return resultType.equalsIgnoreCase("date");
+ return resultType.equalsIgnoreCase(serdeConstants.DATE_TYPE_NAME);
}
@SuppressWarnings("unused") public static boolean isIntervalYearMonthFamily(String resultType) {
- return resultType.equalsIgnoreCase("interval_year_month");
+ return resultType.equalsIgnoreCase(serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME);
}
@SuppressWarnings("unused") public static boolean isIntervalDayTimeFamily(String resultType) {
- return resultType.equalsIgnoreCase("interval_day_time");
+ return resultType.equalsIgnoreCase(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME);
}
// return true if this is any kind of float
public static boolean isFloatFamily(String resultType) {
- return resultType.equalsIgnoreCase("double")
- || resultType.equalsIgnoreCase("float");
+ return resultType.equalsIgnoreCase(serdeConstants.DOUBLE_TYPE_NAME)
+ || resultType.equalsIgnoreCase(serdeConstants.FLOAT_TYPE_NAME);
}
// Return true if this data type is handled in the output vector as an integer.
public static boolean isIntFamily(String resultType) {
- return resultType.equalsIgnoreCase("tinyint")
- || resultType.equalsIgnoreCase("smallint")
- || resultType.equalsIgnoreCase("int")
- || resultType.equalsIgnoreCase("bigint")
- || resultType.equalsIgnoreCase("boolean")
+ return resultType.equalsIgnoreCase(serdeConstants.TINYINT_TYPE_NAME)
+ || resultType.equalsIgnoreCase(serdeConstants.SMALLINT_TYPE_NAME)
+ || resultType.equalsIgnoreCase(serdeConstants.INT_TYPE_NAME)
+ || resultType.equalsIgnoreCase(serdeConstants.BIGINT_TYPE_NAME)
+ || resultType.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME)
|| resultType.equalsIgnoreCase("long");
}
@@ -4319,7 +4319,7 @@ import com.google.common.annotations.VisibleForTesting;
return ((HiveChar) constDesc.getValue()).getStrippedValue().getBytes(StandardCharsets.UTF_8);
} else if (varcharTypePattern.matcher(typeString).matches()) {
return ((HiveVarchar) constDesc.getValue()).getValue().getBytes(StandardCharsets.UTF_8);
- } else if (typeString.equalsIgnoreCase("boolean")) {
+ } else if (typeString.equalsIgnoreCase(serdeConstants.BOOLEAN_TYPE_NAME)) {
if (constDesc.getValue() == null) {
return null;
}else{
@@ -4495,9 +4495,9 @@ import com.google.common.annotations.VisibleForTesting;
typeName = typeName.toLowerCase();
switch (typeName) {
case "long":
- return "bigint";
+ return serdeConstants.BIGINT_TYPE_NAME;
case "string_family":
- return "string";
+ return serdeConstants.STRING_TYPE_NAME;
default:
return typeName;
}
@@ -4582,10 +4582,10 @@ import com.google.common.annotations.VisibleForTesting;
String typeName;
if (vectorTypeName.equalsIgnoreCase("bytes")) {
// Use hive type name.
- typeName = "string";
+ typeName = serdeConstants.STRING_TYPE_NAME;
} else if (vectorTypeName.equalsIgnoreCase("long")) {
// Use hive type name.
- typeName = "bigint";
+ typeName = serdeConstants.BIGINT_TYPE_NAME;
} else {
typeName = vectorTypeName;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
index 89289b36d60..cfa846e6877 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedBatchUtil.java
@@ -34,6 +34,7 @@ import org.apache.hadoop.hive.common.type.HiveIntervalYearMonth;
import org.apache.hadoop.hive.common.type.HiveVarchar;
import org.apache.hadoop.hive.common.type.Timestamp;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DateWritableV2;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
@@ -116,7 +117,7 @@ public class VectorizedBatchUtil {
typeName = typeName.toLowerCase();
// Allow undecorated CHAR and VARCHAR to support scratch column type names.
- if (typeName.equals("char") || typeName.equals("varchar")) {
+ if (typeName.equals(serdeConstants.CHAR_TYPE_NAME) || typeName.equals(serdeConstants.VARCHAR_TYPE_NAME)) {
return new BytesColumnVector(VectorizedRowBatch.DEFAULT_SIZE);
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToBoolean.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToBoolean.java
index 117e8140777..5eddc296a29 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToBoolean.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToBoolean.java
@@ -19,6 +19,7 @@
package org.apache.hadoop.hive.ql.exec.vector.expressions;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
+import org.apache.hadoop.hive.serde.serdeConstants;
/*
* Comment from BooleanWritable evaluate(DateWritable d)
@@ -54,7 +55,7 @@ public class CastDateToBoolean extends NullVectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(1)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("date"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToTimestamp.java
index ec8b9662fa1..9bd62dd7ce2 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDateToTimestamp.java
@@ -25,6 +25,7 @@ import org.apache.hadoop.hive.ql.exec.vector.TimestampColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.DateWritableV2;
public class CastDateToTimestamp extends VectorExpression {
@@ -145,7 +146,7 @@ public class CastDateToTimestamp extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(1)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("date"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDoubleToTimestamp.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDoubleToTimestamp.java
index 8f6db5cdff1..9baabefdfd8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDoubleToTimestamp.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastDoubleToTimestamp.java
@@ -26,6 +26,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.util.TimestampUtils;
+import org.apache.hadoop.hive.serde.serdeConstants;
public class CastDoubleToTimestamp extends VectorExpression {
private static final long serialVersionUID = 1L;
@@ -155,7 +156,7 @@ public class CastDoubleToTimestamp extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(1)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("double"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DOUBLE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToBoolean.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToBoolean.java
index d77eb94bd77..a70fd4f355c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToBoolean.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToBoolean.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.MathExpr;
import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
public class CastTimestampToBoolean extends VectorExpression {
private static final long serialVersionUID = 1L;
@@ -121,7 +122,7 @@ public class CastTimestampToBoolean extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(1)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("timestamp"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.TIMESTAMP_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToDouble.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToDouble.java
index 72a7b32cefe..0b0397fac8c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToDouble.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToDouble.java
@@ -22,6 +22,7 @@ import java.util.Arrays;
import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
public class CastTimestampToDouble extends VectorExpression {
private static final long serialVersionUID = 1L;
@@ -142,7 +143,7 @@ public class CastTimestampToDouble extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(1)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("timestamp"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.TIMESTAMP_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToLong.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToLong.java
index 7fca34ba3b4..5677c68bc8e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToLong.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/CastTimestampToLong.java
@@ -25,6 +25,7 @@ import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.MathExpr;
import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector.PrimitiveCategory;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
@@ -183,7 +184,7 @@ public class CastTimestampToLong extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(1)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("timestamp"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.TIMESTAMP_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateColumn.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateColumn.java
index d8162c5236b..620e95929c0 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateColumn.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateColumn.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.hive.common.type.HiveIntervalDayTime;
import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.util.DateTimeMath;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.DateWritableV2;
// A type date (LongColumnVector storing epoch days) minus a type date produces a
@@ -159,8 +160,8 @@ public class DateColSubtractDateColumn extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(2)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("date"),
- VectorExpressionDescriptor.ArgumentType.getType("date"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME),
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN,
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateScalar.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateScalar.java
index 845c3946c5c..81c5dea5f3c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateScalar.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateColSubtractDateScalar.java
@@ -27,6 +27,7 @@ import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.util.DateTimeMath;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.DateWritableV2;
// A type date (LongColumnVector storing epoch days) minus a type date produces a
@@ -170,8 +171,8 @@ public class DateColSubtractDateScalar extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(2)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("date"),
- VectorExpressionDescriptor.ArgumentType.getType("date"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME),
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN,
VectorExpressionDescriptor.InputExpressionType.SCALAR).build();
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateScalarSubtractDateColumn.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateScalarSubtractDateColumn.java
index 36aa6b92ed3..53aadc77eaf 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateScalarSubtractDateColumn.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/DateScalarSubtractDateColumn.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
import org.apache.hadoop.hive.ql.exec.vector.*;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.util.DateTimeMath;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.DateWritableV2;
// A type date (LongColumnVector storing epoch days) minus a type date produces a
@@ -153,8 +154,8 @@ public class DateScalarSubtractDateColumn extends VectorExpression {
VectorExpressionDescriptor.Mode.PROJECTION)
.setNumArguments(2)
.setArgumentTypes(
- VectorExpressionDescriptor.ArgumentType.getType("date"),
- VectorExpressionDescriptor.ArgumentType.getType("date"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME),
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DATE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.SCALAR,
VectorExpressionDescriptor.InputExpressionType.COLUMN).build();
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprDoubleColumnDoubleColumn.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprDoubleColumnDoubleColumn.java
index f72d9e7bdc3..6e0436c8f99 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprDoubleColumnDoubleColumn.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/IfExprDoubleColumnDoubleColumn.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.hive.ql.exec.vector.LongColumnVector;
import org.apache.hadoop.hive.ql.exec.vector.VectorExpressionDescriptor;
import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
/**
* Compute IF(expr1, expr2, expr3) for 3 input column expressions.
@@ -159,8 +160,8 @@ public class IfExprDoubleColumnDoubleColumn extends VectorExpression {
.setNumArguments(3)
.setArgumentTypes(
VectorExpressionDescriptor.ArgumentType.getType("long"),
- VectorExpressionDescriptor.ArgumentType.getType("double"),
- VectorExpressionDescriptor.ArgumentType.getType("double"))
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DOUBLE_TYPE_NAME),
+ VectorExpressionDescriptor.ArgumentType.getType(serdeConstants.DOUBLE_TYPE_NAME))
.setInputExpressionTypes(
VectorExpressionDescriptor.InputExpressionType.COLUMN,
VectorExpressionDescriptor.InputExpressionType.COLUMN,
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java
index 1bdfee594c0..e2bd65590fb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/ptf/VectorPTFOperator.java
@@ -55,6 +55,7 @@ import org.apache.hadoop.hive.ql.plan.VectorDesc;
import org.apache.hadoop.hive.ql.plan.VectorPTFDesc;
import org.apache.hadoop.hive.ql.plan.VectorPTFInfo;
import org.apache.hadoop.hive.ql.plan.api.OperatorType;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo;
import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoUtils;
@@ -568,15 +569,15 @@ public class VectorPTFOperator extends Operator<PTFDesc>
private static TypeInfo columnVectorTypeToTypeInfo(Type type) {
switch (type) {
case DOUBLE:
- return TypeInfoUtils.getTypeInfoFromTypeString("double");
+ return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.DOUBLE_TYPE_NAME);
case BYTES:
- return TypeInfoUtils.getTypeInfoFromTypeString("string");
+ return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.STRING_TYPE_NAME);
case DECIMAL:
- return TypeInfoUtils.getTypeInfoFromTypeString("decimal");
+ return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.DECIMAL_TYPE_NAME);
case TIMESTAMP:
- return TypeInfoUtils.getTypeInfoFromTypeString("timestamp");
+ return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.TIMESTAMP_TYPE_NAME);
case LONG:
- return TypeInfoUtils.getTypeInfoFromTypeString("int");
+ return TypeInfoUtils.getTypeInfoFromTypeString(serdeConstants.INT_TYPE_NAME);
default:
throw new RuntimeException("Cannot convert column vector type: '" + type + "' to TypeInfo");
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/IOConstants.java b/ql/src/java/org/apache/hadoop/hive/ql/io/IOConstants.java
index 2be864e752e..49f310d930a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/IOConstants.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/IOConstants.java
@@ -39,7 +39,7 @@ public final class IOConstants {
/**
* The desired TABLE column names and types for input format schema evolution.
- * This is different than COLUMNS and COLUMNS_TYPES, which are based on individual partition
+ * This is different from COLUMNS and COLUMNS_TYPES, which are based on individual partition
* metadata.
*
* Virtual columns and partition columns are not included
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/RCFileOutputFormat.java b/ql/src/java/org/apache/hadoop/hive/ql/io/RCFileOutputFormat.java
index 37aeba0a82a..21c96cb86d7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/RCFileOutputFormat.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/RCFileOutputFormat.java
@@ -27,6 +27,7 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.conf.HiveConf;
import org.apache.hadoop.hive.ql.exec.Utilities;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.columnar.BytesRefArrayWritable;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableComparable;
@@ -124,7 +125,7 @@ public class RCFileOutputFormat extends
boolean isCompressed, Properties tableProperties, Progressable progress) throws IOException {
String[] cols = null;
- String columns = tableProperties.getProperty("columns");
+ String columns = tableProperties.getProperty(serdeConstants.LIST_COLUMNS);
if (columns == null || columns.trim().equals("")) {
cols = new String[0];
} else {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java
index 4e92edee013..3553a6a04d1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java
@@ -97,7 +97,7 @@ public class OrcSerde extends AbstractSerDe implements SchemaInference {
}
/**
- * NOTE: if "columns.types" is missing, all columns will be of String type.
+ * NOTE: if {@link serdeConstants#LIST_COLUMN_TYPES} is missing, all columns will be of String type.
*/
@Override
protected List<TypeInfo> parseColumnTypes() {
@@ -163,7 +163,7 @@ public class OrcSerde extends AbstractSerDe implements SchemaInference {
}
private String convertPrimitiveType(TypeDescription fieldType) {
- if (fieldType.getCategory().getName().equals("timestamp with local time zone")) {
+ if (fieldType.getCategory().getName().equals(serdeConstants.TIMESTAMPLOCALTZ_TYPE_NAME)) {
throw new IllegalArgumentException("Unhandled ORC type " + fieldType.getCategory().getName());
}
return fieldType.toString();
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcUnion.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcUnion.java
index b87e00d0070..733d8f261a8 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcUnion.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcUnion.java
@@ -27,6 +27,8 @@ import org.apache.orc.OrcProto;
import java.util.ArrayList;
import java.util.List;
+import static org.apache.hadoop.hive.serde.serdeConstants.UNION_TYPE_NAME;
+
/**
* An in-memory representation of a union type.
*/
@@ -119,7 +121,8 @@ final class OrcUnion implements UnionObject {
@Override
public String getTypeName() {
- StringBuilder builder = new StringBuilder("uniontype<");
+ StringBuilder builder = new StringBuilder(UNION_TYPE_NAME);
+ builder.append("<");
boolean first = true;
for(ObjectInspector child: children) {
if (first) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveCollectionConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveCollectionConverter.java
index 537213091fb..4c54f11c657 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveCollectionConverter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/convert/HiveCollectionConverter.java
@@ -31,6 +31,8 @@ import org.apache.parquet.io.api.Converter;
import org.apache.parquet.schema.GroupType;
import org.apache.parquet.schema.Type;
+import static org.apache.hadoop.hive.serde.serdeConstants.LIST_TYPE_NAME;
+
public class HiveCollectionConverter extends HiveGroupConverter {
private final GroupType collectionType;
private final ConverterParent parent;
@@ -184,7 +186,7 @@ public class HiveCollectionConverter extends HiveGroupConverter {
if (repeatedType.isPrimitive() ||
(repeatedType.asGroupType().getFieldCount() != 1)) {
return true;
- } else if (repeatedType.getName().equals("array")) {
+ } else if (repeatedType.getName().equals(LIST_TYPE_NAME)) {
return true; // existing avro data
} else if (repeatedType.getName().equals(parentName + "_tuple")) {
return true; // existing thrift data
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java
index a3a123ee00c..db882d8ba82 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java
@@ -422,7 +422,7 @@ public class ParquetHiveSerDe extends AbstractSerDe implements SchemaInference {
MessageType msg = metadata.getSchema();
List<FieldSchema> schema = new ArrayList<>();
String inferBinaryAsStringValue = conf.get(HiveConf.ConfVars.HIVE_PARQUET_INFER_BINARY_AS.varname);
- boolean inferBinaryAsString = "string".equalsIgnoreCase(inferBinaryAsStringValue);
+ boolean inferBinaryAsString = serdeConstants.STRING_TYPE_NAME.equalsIgnoreCase(inferBinaryAsStringValue);
for (Type field: msg.getFields()) {
FieldSchema fieldSchema = convertParquetTypeToFieldSchema(field, inferBinaryAsString);
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java b/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java
index de6f88b932c..5bbe6b3f619 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/io/sarg/ConvertAstToSearchArg.java
@@ -51,6 +51,7 @@ import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNotEqual;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNotNull;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPNull;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPOr;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.typeinfo.PrimitiveTypeInfo;
@@ -439,7 +440,7 @@ public class ConvertAstToSearchArg {
// if it is a reference to a boolean column, covert it to a truth test.
if (expression instanceof ExprNodeColumnDesc) {
ExprNodeColumnDesc columnDesc = (ExprNodeColumnDesc) expression;
- if (columnDesc.getTypeString().equals("boolean")) {
+ if (columnDesc.getTypeString().equals(serdeConstants.BOOLEAN_TYPE_NAME)) {
builder.equals(columnDesc.getColumn(), PredicateLeaf.Type.BOOLEAN,
true);
return;
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java
index fb1f6a1c795..a4e236b4c33 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.RemoteIterator;
import org.apache.hadoop.hive.common.StatsSetupConst;
import org.apache.hadoop.hive.ql.stats.StatsUtils;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.fs.FileSystem;
@@ -231,7 +232,7 @@ public class SimpleFetchOptimizer extends Transform {
if (op instanceof FilterOperator) {
ExprNodeDesc predicate = ((FilterOperator) op).getConf().getPredicate();
if (predicate instanceof ExprNodeConstantDesc
- && "boolean".equals(predicate.getTypeInfo().getTypeName())) {
+ && serdeConstants.BOOLEAN_TYPE_NAME.equals(predicate.getTypeInfo().getTypeName())) {
continue;
} else if (PartitionPruner.onlyContainsPartnCols(table, predicate)) {
continue;
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/SqlFunctionConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/SqlFunctionConverter.java
index 9fdbfa9a38a..dcaf70e2a50 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/SqlFunctionConverter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/translator/SqlFunctionConverter.java
@@ -179,38 +179,38 @@ public class SqlFunctionConverter {
TypeInfo castType = TypeConverter.convert(dt);
if (castType.equals(TypeInfoFactory.byteTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("tinyint");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.TINYINT_TYPE_NAME);
} else if (castType instanceof CharTypeInfo) {
- castUDF = handleCastForParameterizedType(castType, FunctionRegistry.getFunctionInfo("char"));
+ castUDF = handleCastForParameterizedType(castType, FunctionRegistry.getFunctionInfo(serdeConstants.CHAR_TYPE_NAME));
} else if (castType instanceof VarcharTypeInfo) {
castUDF = handleCastForParameterizedType(castType,
- FunctionRegistry.getFunctionInfo("varchar"));
+ FunctionRegistry.getFunctionInfo(serdeConstants.VARCHAR_TYPE_NAME));
} else if (castType.equals(TypeInfoFactory.stringTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("string");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.STRING_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.booleanTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("boolean");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.BOOLEAN_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.shortTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("smallint");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.SMALLINT_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.intTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("int");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.INT_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.longTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("bigint");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.BIGINT_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.floatTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("float");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.FLOAT_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.doubleTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("double");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.DOUBLE_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.timestampTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("timestamp");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.TIMESTAMP_TYPE_NAME);
} else if (castType instanceof TimestampLocalTZTypeInfo) {
castUDF = handleCastForParameterizedType(castType,
FunctionRegistry.getFunctionInfo(serdeConstants.TIMESTAMPLOCALTZ_TYPE_NAME));
} else if (castType.equals(TypeInfoFactory.dateTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("date");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.DATE_TYPE_NAME);
} else if (castType instanceof DecimalTypeInfo) {
castUDF = handleCastForParameterizedType(castType,
- FunctionRegistry.getFunctionInfo("decimal"));
+ FunctionRegistry.getFunctionInfo(serdeConstants.DECIMAL_TYPE_NAME));
} else if (castType.equals(TypeInfoFactory.binaryTypeInfo)) {
- castUDF = FunctionRegistry.getFunctionInfo("binary");
+ castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.BINARY_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.intervalDayTimeTypeInfo)) {
castUDF = FunctionRegistry.getFunctionInfo(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME);
} else if (castType.equals(TypeInfoFactory.intervalYearMonthTypeInfo)) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
index a33e5627b4b..d231d988f45 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java
@@ -259,33 +259,34 @@ public class Vectorizer implements PhysicalPlanResolver {
static {
StringBuilder patternBuilder = new StringBuilder();
- patternBuilder.append("int");
- patternBuilder.append("|smallint");
- patternBuilder.append("|tinyint");
- patternBuilder.append("|bigint");
- patternBuilder.append("|integer");
- patternBuilder.append("|long");
- patternBuilder.append("|short");
- patternBuilder.append("|timestamp");
- patternBuilder.append("|" + serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME);
- patternBuilder.append("|" + serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME);
- patternBuilder.append("|boolean");
- patternBuilder.append("|binary");
- patternBuilder.append("|string");
- patternBuilder.append("|byte");
- patternBuilder.append("|float");
- patternBuilder.append("|double");
- patternBuilder.append("|date");
- patternBuilder.append("|void");
-
- // Decimal types can be specified with different precision and scales e.g. decimal(10,5),
- // as opposed to other data types which can be represented by constant strings.
- // The regex matches only the "decimal" prefix of the type.
- patternBuilder.append("|decimal.*");
+ patternBuilder.append(serdeConstants.INT_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.SMALLINT_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.TINYINT_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.BIGINT_TYPE_NAME);
+ patternBuilder.append("|").append("integer");
+ patternBuilder.append("|").append("long");
+ patternBuilder.append("|").append("short");
+ patternBuilder.append("|").append(serdeConstants.TIMESTAMP_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.INTERVAL_YEAR_MONTH_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.INTERVAL_DAY_TIME_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.BOOLEAN_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.BINARY_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.STRING_TYPE_NAME);
+ patternBuilder.append("|").append("byte");
+ patternBuilder.append("|").append(serdeConstants.FLOAT_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.DOUBLE_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.DATE_TYPE_NAME);
+ patternBuilder.append("|").append(serdeConstants.VOID_TYPE_NAME);
+
+ /** Decimal types can be specified with different precision and scales e.g. decimal(10,5),
+ * as opposed to other data types which can be represented by constant strings.
+ * The regex matches only the {@link serdeConstants#DECIMAL_TYPE_NAME} prefix of the type.
+ */
+ patternBuilder.append("|").append(serdeConstants.DECIMAL_TYPE_NAME).append(".*");
// CHAR and VARCHAR types can be specified with maximum length.
- patternBuilder.append("|char.*");
- patternBuilder.append("|varchar.*");
+ patternBuilder.append("|").append(serdeConstants.CHAR_TYPE_NAME).append(".*");
+ patternBuilder.append("|").append(serdeConstants.VARCHAR_TYPE_NAME).append(".*");
supportedDataTypesPattern = Pattern.compile(patternBuilder.toString());
}
@@ -3255,7 +3256,7 @@ public class Vectorizer implements PhysicalPlanResolver {
type = type.toLowerCase();
boolean result = supportedDataTypesPattern.matcher(type).matches();
if (result && !allowVoidProjection &&
- mode == VectorExpressionDescriptor.Mode.PROJECTION && type.equals("void")) {
+ mode == VectorExpressionDescriptor.Mode.PROJECTION && type.equals(serdeConstants.VOID_TYPE_NAME)) {
return false;
}
@@ -3283,7 +3284,7 @@ public class Vectorizer implements PhysicalPlanResolver {
type = type.toLowerCase();
boolean result = supportedDataTypesPattern.matcher(type).matches();
if (result && !allowVoidProjection &&
- mode == VectorExpressionDescriptor.Mode.PROJECTION && type.equals("void")) {
+ mode == VectorExpressionDescriptor.Mode.PROJECTION && type.equals(serdeConstants.VOID_TYPE_NAME)) {
return "Vectorizing data type void not supported when mode = PROJECTION";
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
index 54b6587ba99..9a406fed65d 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
@@ -1954,8 +1954,8 @@ public abstract class BaseSemanticAnalyzer {
prop.setProperty(serdeConstants.SERIALIZATION_FORMAT, Integer.toString(Utilities.tabCode));
prop.setProperty(serdeConstants.SERIALIZATION_NULL_FORMAT, " ");
String[] colTypes = schema.split("#");
- prop.setProperty("columns", colTypes[0]);
- prop.setProperty("columns.types", colTypes[1]);
+ prop.setProperty(serdeConstants.LIST_COLUMNS, colTypes[0]);
+ prop.setProperty(serdeConstants.LIST_COLUMN_TYPES, colTypes[1]);
prop.setProperty(serdeConstants.SERIALIZATION_LIB, LazySimpleSerDe.class.getName());
prop.setProperty(hive_metastoreConstants.TABLE_BUCKETING_VERSION, "-1");
FetchWork fetch =
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/rewrite/MergeRewriter.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/rewrite/MergeRewriter.java
index 64152f419b6..d97f71a641f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/rewrite/MergeRewriter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/rewrite/MergeRewriter.java
@@ -41,6 +41,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.UnaryOperator;
+import org.apache.hadoop.hive.serde.serdeConstants;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
@@ -141,7 +142,7 @@ public class MergeRewriter implements Rewriter<MergeStatement>, MergeStatement.D
Table table = db.newTable(tableName);
table.setSerializationLib(format.getSerde());
List<FieldSchema> fields = new ArrayList<>();
- fields.add(new FieldSchema("val", "int", null));
+ fields.add(new FieldSchema("val", serdeConstants.INT_TYPE_NAME, null));
table.setFields(fields);
table.setDataLocation(Warehouse.getDnsPath(new Path(SessionState.get().getTempTableSpace(),
tableName), conf));
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/type/TypeCheckProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/type/TypeCheckProcFactory.java
index f8b50ca6c29..1eb1d17297f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/parse/type/TypeCheckProcFactory.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/type/TypeCheckProcFactory.java
@@ -1043,8 +1043,8 @@ public class TypeCheckProcFactory<T> {
// flatten OR
List<T> childrenList = new ArrayList<>(children.size());
for (T child : children) {
- if (TypeInfoFactory.getPrimitiveTypeInfo("void").equals(exprFactory.getTypeInfo(child))) {
- child = exprFactory.setTypeInfo(child, TypeInfoFactory.getPrimitiveTypeInfo("boolean"));
+ if (TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.VOID_TYPE_NAME).equals(exprFactory.getTypeInfo(child))) {
+ child = exprFactory.setTypeInfo(child, TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.BOOLEAN_TYPE_NAME));
}
if (exprFactory.isORFuncCallExpr(child)) {
childrenList.addAll(exprFactory.getExprChildren(child));
@@ -1057,8 +1057,8 @@ public class TypeCheckProcFactory<T> {
// flatten AND
List<T> childrenList = new ArrayList<>(children.size());
for (T child : children) {
- if (TypeInfoFactory.getPrimitiveTypeInfo("void").equals(exprFactory.getTypeInfo(child))) {
- child = exprFactory.setTypeInfo(child, TypeInfoFactory.getPrimitiveTypeInfo("boolean"));
+ if (TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.VOID_TYPE_NAME).equals(exprFactory.getTypeInfo(child))) {
+ child = exprFactory.setTypeInfo(child, TypeInfoFactory.getPrimitiveTypeInfo(serdeConstants.BOOLEAN_TYPE_NAME));
}
if (exprFactory.isANDFuncCallExpr(child)) {
childrenList.addAll(exprFactory.getExprChildren(child));
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java
index 5358e100660..0dcfe72d7f5 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/PartitionDesc.java
@@ -217,7 +217,7 @@ public class PartitionDesc implements Serializable, Cloneable {
}
public void setProperties(final Properties properties) {
- properties.remove("columns.comments");
+ properties.remove(serdeConstants.LIST_COLUMN_COMMENTS);
if (properties instanceof CopyOnFirstWriteProperties) {
this.properties = properties;
} else {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
index 188ec71a57e..0a6c9c26eec 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/PlanUtils.java
@@ -90,6 +90,7 @@ import org.apache.hadoop.mapred.TextInputFormat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import static org.apache.hadoop.hive.serde.serdeConstants.LIST_COLUMN_COMMENTS;
/**
* PlanUtils.
*
@@ -543,9 +544,9 @@ public final class PlanUtils {
serdeConstants.SERIALIZATION_LIB, BinarySortableSerDe.class.getName()));
} else {
return new TableDesc(SequenceFileInputFormat.class,
- SequenceFileOutputFormat.class, Utilities.makeProperties("columns",
+ SequenceFileOutputFormat.class, Utilities.makeProperties(serdeConstants.LIST_COLUMNS,
MetaStoreUtils.getColumnNamesFromFieldSchema(fieldSchemas),
- "columns.types", MetaStoreUtils
+ serdeConstants.LIST_COLUMN_TYPES, MetaStoreUtils
.getColumnTypesFromFieldSchema(fieldSchemas),
serdeConstants.ESCAPE_CHAR, "\\",
serdeConstants.SERIALIZATION_LIB,LazyBinarySerDe.class.getName()));
@@ -1238,11 +1239,11 @@ public final class PlanUtils {
static Map<Object, Object> getPropertiesForExplain(Properties properties) {
if (properties != null) {
Map<Object, Object> clone = null;
- String value = properties.getProperty("columns.comments");
+ String value = properties.getProperty(LIST_COLUMN_COMMENTS);
if (value != null) {
// should copy properties first
clone = new HashMap<>(properties);
- clone.put("columns.comments", quoteComments(value));
+ clone.put(LIST_COLUMN_COMMENTS, quoteComments(value));
}
value = properties.getProperty(StatsSetupConst.NUM_ERASURE_CODED_FILES);
if ("0".equals(value)) {
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
index 2a68da0699a..2d8dfddd87a 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/DfsProcessor.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
import java.util.ArrayList;
import java.util.Map;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.hadoop.conf.Configuration;
@@ -56,7 +57,7 @@ public class DfsProcessor implements CommandProcessor {
public DfsProcessor(Configuration conf, boolean addSchema) {
dfs = new FsShell(conf);
dfsSchema = new Schema();
- dfsSchema.addToFieldSchemas(new FieldSchema(DFS_RESULT_HEADER, "string", ""));
+ dfsSchema.addToFieldSchemas(new FieldSchema(DFS_RESULT_HEADER, serdeConstants.STRING_TYPE_NAME, ""));
}
@Override
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapCacheResourceProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapCacheResourceProcessor.java
index 53d4328724d..094cd7fc7df 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapCacheResourceProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapCacheResourceProcessor.java
@@ -51,6 +51,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Schema;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
import org.apache.hadoop.hive.ql.session.SessionState;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.io.retry.RetryPolicies;
import org.apache.hadoop.io.retry.RetryPolicy;
import org.apache.hadoop.net.NetUtils;
@@ -122,8 +123,8 @@ public class LlapCacheResourceProcessor implements CommandProcessor {
private Schema getSchema() {
Schema sch = new Schema();
- sch.addToFieldSchemas(new FieldSchema("hostName", "string", ""));
- sch.addToFieldSchemas(new FieldSchema("purgedMemoryBytes", "string", ""));
+ sch.addToFieldSchemas(new FieldSchema("hostName", serdeConstants.STRING_TYPE_NAME, ""));
+ sch.addToFieldSchemas(new FieldSchema("purgedMemoryBytes", serdeConstants.STRING_TYPE_NAME, ""));
sch.putToProperties(SERIALIZATION_NULL_FORMAT, defaultNullString);
return sch;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapClusterResourceProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapClusterResourceProcessor.java
index c5dd688a46d..61d1914223e 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapClusterResourceProcessor.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/processors/LlapClusterResourceProcessor.java
@@ -39,6 +39,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.metastore.api.Schema;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveOperationType;
import org.apache.hadoop.hive.ql.session.SessionState;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -113,12 +114,12 @@ public class LlapClusterResourceProcessor implements CommandProcessor {
private Schema getSchema() {
Schema sch = new Schema();
- sch.addToFieldSchemas(new FieldSchema("applicationId", "string", ""));
- sch.addToFieldSchemas(new FieldSchema("workerIdentity", "string", ""));
- sch.addToFieldSchemas(new FieldSchema("hostname", "string", ""));
- sch.addToFieldSchemas(new FieldSchema("rpcPort", "string", ""));
- sch.addToFieldSchemas(new FieldSchema("memory", "string", ""));
- sch.addToFieldSchemas(new FieldSchema("vcores", "string", ""));
+ sch.addToFieldSchemas(new FieldSchema("applicationId", serdeConstants.STRING_TYPE_NAME, ""));
+ sch.addToFieldSchemas(new FieldSchema("workerIdentity", serdeConstants.STRING_TYPE_NAME, ""));
+ sch.addToFieldSchemas(new FieldSchema("hostname", serdeConstants.STRING_TYPE_NAME, ""));
+ sch.addToFieldSchemas(new FieldSchema("rpcPort", serdeConstants.STRING_TYPE_NAME, ""));
+ sch.addToFieldSchemas(new FieldSchema("memory", serdeConstants.STRING_TYPE_NAME, ""));
+ sch.addToFieldSchemas(new FieldSchema("vcores", serdeConstants.STRING_TYPE_NAME, ""));
sch.putToProperties(SERIALIZATION_NULL_FORMAT, defaultNullString);
return sch;
}
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/esri/serde/BaseJsonSerDe.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/esri/serde/BaseJsonSerDe.java
index e4b2dbbed55..76df357d4be 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/esri/serde/BaseJsonSerDe.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/esri/serde/BaseJsonSerDe.java
@@ -28,6 +28,7 @@ import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.JsonToken;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.AbstractSerDe;
import org.apache.hadoop.hive.serde2.SerDeException;
import org.apache.hadoop.hive.serde2.SerDeStats;
@@ -110,7 +111,7 @@ abstract public class BaseJsonSerDe extends AbstractSerDe {
throw new SerDeException("Only primitive field types are accepted");
}
- if (colTypeInfo.getTypeName().equals("binary")) {
+ if (colTypeInfo.getTypeName().equals(serdeConstants.BINARY_TYPE_NAME)) {
if (geometryColumn >= 0) {
// only one column can be defined as binary for geometries
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBetween.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBetween.java
index 2eb65c51df4..290572f4b24 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBetween.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBetween.java
@@ -22,6 +22,7 @@ import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.PrimitiveObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
@@ -39,7 +40,7 @@ public class GenericUDFBetween extends GenericUDF {
@Override
public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {
- if (!arguments[0].getTypeName().equals("boolean")) {
+ if (!arguments[0].getTypeName().equals(serdeConstants.BOOLEAN_TYPE_NAME)) {
throw new UDFArgumentTypeException(0, "First argument for BETWEEN should be boolean type");
}
egt.initialize(new ObjectInspector[] {arguments[1], arguments[2]});
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/ValueBoundaryScanner.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/ValueBoundaryScanner.java
index 59bb6d9b261..f0fc1b4b150 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/ValueBoundaryScanner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/ValueBoundaryScanner.java
@@ -37,6 +37,7 @@ import org.apache.hadoop.hive.ql.plan.ptf.BoundaryDef;
import org.apache.hadoop.hive.ql.plan.ptf.OrderDef;
import org.apache.hadoop.hive.ql.plan.ptf.OrderExpressionDef;
import org.apache.hadoop.hive.ql.plan.ptf.WindowFrameDef;
+import org.apache.hadoop.hive.serde.serdeConstants;
import org.apache.hadoop.hive.serde2.io.HiveDecimalWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritableV2;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorUtils;
@@ -757,27 +758,27 @@ abstract class SingleValueBoundaryScanner extends ValueBoundaryScanner {
public static SingleValueBoundaryScanner getBoundaryScanner(BoundaryDef start, BoundaryDef end,
boolean nullsLast, OrderExpressionDef exprDef, String typeString) throws HiveException {
switch (typeString) {
- case "int":
- case "bigint":
- case "smallint":
- case "tinyint":
+ case serdeConstants.INT_TYPE_NAME:
+ case serdeConstants.BIGINT_TYPE_NAME:
+ case serdeConstants.SMALLINT_TYPE_NAME:
+ case serdeConstants.TINYINT_TYPE_NAME:
return new LongPrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
- case "timestamp":
+ case serdeConstants.TIMESTAMP_TYPE_NAME:
return new TimestampPrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
- case "double":
- case "float":
+ case serdeConstants.DOUBLE_TYPE_NAME:
+ case serdeConstants.FLOAT_TYPE_NAME:
return new DoublePrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
- case "date":
+ case serdeConstants.DATE_TYPE_NAME:
return new DatePrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
- case "string":
+ case serdeConstants.STRING_TYPE_NAME:
return new StringPrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
- case "boolean":
+ case serdeConstants.BOOLEAN_TYPE_NAME:
return new BooleanPrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
default:
// The following types includes scale/precision: "decimal(10,4), char(10) and varchar(15)"
- if (typeString.startsWith("char") || typeString.startsWith("varchar")) {
+ if (typeString.startsWith(serdeConstants.CHAR_TYPE_NAME) || typeString.startsWith(serdeConstants.VARCHAR_TYPE_NAME)) {
return new StringPrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
- } else if (typeString.startsWith("decimal")) {
+ } else if (typeString.startsWith(serdeConstants.DECIMAL_TYPE_NAME)) {
return new HiveDecimalPrimitiveValueBoundaryScanner(start, end, exprDef, nullsLast);
}
throw new HiveException(String