[
https://issues.apache.org/jira/browse/HIVE-26074?focusedWorklogId=759042&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-759042
]
ASF GitHub Bot logged work on HIVE-26074:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 20/Apr/22 08:30
Start Date: 20/Apr/22 08:30
Worklog Time Spent: 10m
Work Description: ayushtkn commented on code in PR #3187:
URL: https://github.com/apache/hive/pull/3187#discussion_r853870053
##########
ql/src/java/org/apache/hadoop/hive/ql/udf/ptf/ValueBoundaryScanner.java:
##########
@@ -1214,6 +1223,55 @@ public boolean isEqualPrimitive(String s1, String s2) {
}
}
+class CharValueBoundaryScanner extends SingleValueBoundaryScanner {
+ public CharValueBoundaryScanner(BoundaryDef start, BoundaryDef end,
+ OrderExpressionDef expressionDef, boolean nullsLast) {
+ super(start, end, expressionDef, nullsLast);
+ }
+
+ @Override
+ public boolean isDistanceGreater(Object v1, Object v2, int amt) {
+ HiveChar s1 = PrimitiveObjectInspectorUtils.getHiveChar(v1,
+ (PrimitiveObjectInspector) expressionDef.getOI());
+ HiveChar s2 = PrimitiveObjectInspectorUtils.getHiveChar(v2,
+ (PrimitiveObjectInspector) expressionDef.getOI());
+ return s1 != null && s2 != null && s1.compareTo(s2) > 0;
+ }
+
+ @Override
+ public boolean isEqual(Object v1, Object v2) {
+ HiveChar s1 = PrimitiveObjectInspectorUtils.getHiveChar(v1,
+ (PrimitiveObjectInspector) expressionDef.getOI());
+ HiveChar s2 = PrimitiveObjectInspectorUtils.getHiveChar(v2,
+ (PrimitiveObjectInspector) expressionDef.getOI());
+ return (s1 == null && s2 == null) || (s1 != null && s1.equals(s2));
+ }
+}
+
+class VarcharValueBoundaryScanner extends SingleValueBoundaryScanner {
+ public VarcharValueBoundaryScanner(BoundaryDef start, BoundaryDef end,
+ OrderExpressionDef expressionDef, boolean nullsLast) {
+ super(start, end, expressionDef, nullsLast);
+ }
+
+ @Override
+ public boolean isDistanceGreater(Object v1, Object v2, int amt) {
+ HiveVarchar s1 = PrimitiveObjectInspectorUtils.getHiveVarchar(v1,
+ (PrimitiveObjectInspector) expressionDef.getOI());
+ HiveVarchar s2 = PrimitiveObjectInspectorUtils.getHiveVarchar(v2,
+ (PrimitiveObjectInspector) expressionDef.getOI());
+ return s1 != null && s2 != null && s1.compareTo(s2) > 0;
+ }
+
+ @Override
+ public boolean isEqual(Object v1, Object v2) {
Review Comment:
Added
Issue Time Tracking
-------------------
Worklog Id: (was: 759042)
Time Spent: 1h 10m (was: 1h)
> PTF Vectorization: BoundaryScanner for varchar
> ----------------------------------------------
>
> Key: HIVE-26074
> URL: https://issues.apache.org/jira/browse/HIVE-26074
> Project: Hive
> Issue Type: Bug
> Reporter: László Bodor
> Assignee: László Bodor
> Priority: Major
> Labels: pull-request-available
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> HIVE-24761 should be extended for varchar, otherwise it fails on varchar type
> {code}
> Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Internal Error:
> attempt to setup a Window for typeString: 'varchar(170)'
> at
> org.apache.hadoop.hive.ql.udf.ptf.SingleValueBoundaryScanner.getBoundaryScanner(ValueBoundaryScanner.java:773)
> at
> org.apache.hadoop.hive.ql.udf.ptf.MultiValueBoundaryScanner$MultiPrimitiveValueBoundaryScanner.<init
> (ValueBoundaryScanner.java:1257)
> at
> org.apache.hadoop.hive.ql.udf.ptf.MultiValueBoundaryScanner.getScanner(ValueBoundaryScanner.java:1237)
> at
> org.apache.hadoop.hive.ql.udf.ptf.ValueBoundaryScanner.getScanner(ValueBoundaryScanner.java:327)
> at
> org.apache.hadoop.hive.ql.udf.ptf.PTFRangeUtil.getRange(PTFRangeUtil.java:40)
> at
> org.apache.hadoop.hive.ql.exec.vector.ptf.VectorPTFGroupBatches.finishPartition(VectorPTFGroupBatches.java:442)
> at
> org.apache.hadoop.hive.ql.exec.vector.ptf.VectorPTFOperator.finishPartition(VectorPTFOperator.java:631)
> at
> org.apache.hadoop.hive.ql.exec.vector.ptf.VectorPTFOperator.closeOp(VectorPTFOperator.java:782)
> at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:731)
> at org.apache.hadoop.hive.ql.exec.Operator.close(Operator.java:755)
> at
> org.apache.hadoop.hive.ql.exec.tez.ReduceRecordProcessor.close(ReduceRecordProcessor.java:383)
> ... 16 more
> {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)