[ 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)