You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ad...@apache.org on 2015/01/07 12:07:43 UTC
[2/3] drill git commit: DRILL-1931: byte_substr() does not set the
'start' field of output holder correctly
DRILL-1931: byte_substr() does not set the 'start' field of output holder correctly
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/eced8bbd
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/eced8bbd
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/eced8bbd
Branch: refs/heads/master
Commit: eced8bbdbd6f8f6a7d884a6ff00d09e8e888d319
Parents: 8a9f02a
Author: Aditya Kishore <ad...@apache.org>
Authored: Mon Jan 5 14:39:31 2015 -0800
Committer: Aditya Kishore <ad...@apache.org>
Committed: Wed Jan 7 02:30:20 2015 -0800
----------------------------------------------------------------------
.../drill/exec/expr/fn/impl/ByteSubstring.java | 17 ++++++-----------
1 file changed, 6 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/eced8bbd/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ByteSubstring.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ByteSubstring.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ByteSubstring.java
index 55dc35a..8831d98 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ByteSubstring.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ByteSubstring.java
@@ -46,7 +46,7 @@ import org.apache.drill.exec.record.RecordBatch;
nulls = FunctionTemplate.NullHandling.NULL_IF_NULL)
public class ByteSubstring implements DrillSimpleFunc {
- @Param VarBinaryHolder string;
+ @Param VarBinaryHolder in;
@Param BigIntHolder offset;
@Param BigIntHolder length;
@Output VarBinaryHolder out;
@@ -56,30 +56,25 @@ public class ByteSubstring implements DrillSimpleFunc {
@Override
public void eval() {
- out.buffer = string.buffer;
+ out.buffer = in.buffer;
// handle invalid values; e.g. SUBSTRING(value, 0, x) or SUBSTRING(value, x, 0)
if (offset.value == 0 || length.value <= 0) {
-
out.start = 0;
out.end = 0;
-
} else {
-
// handle negative and positive offset values
if (offset.value < 0) {
- out.start = string.end + (int)offset.value;
+ out.start = in.end + (int)offset.value;
} else {
- out.start = (int)offset.value - 1;
+ out.start = in.start + (int)offset.value - 1;
}
-
// calculate end position from length and truncate to upper value bounds
- if (out.start + length.value > string.end) {
- out.end = string.end;
+ if (out.start + length.value > in.end) {
+ out.end = in.end;
} else {
out.end = out.start + (int)length.value;
}
-
}
}