Repository: hive Updated Branches: refs/heads/branch-2.1 761aead05 -> 11281a543
HIVE-13876: Vectorization: Port HIVE-11544 to LazySimpleDeserializeRead (Gopal V, reviewed by Sergey Shelukhin) (cherry picked from commit c57a1272f2cf50f835417efd08578a49d01ba2cb) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/11281a54 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/11281a54 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/11281a54 Branch: refs/heads/branch-2.1 Commit: 11281a5437c7569fb3b836a3eb08ca1a8f0ac059 Parents: 761aead Author: Gopal V <[email protected]> Authored: Wed Jun 1 01:33:42 2016 -0700 Committer: Gopal V <[email protected]> Committed: Wed Jun 1 03:46:36 2016 -0700 ---------------------------------------------------------------------- .../lazy/fast/LazySimpleDeserializeRead.java | 27 ++++++++++++++++++++ 1 file changed, 27 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/11281a54/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java ---------------------------------------------------------------------- diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java index b375d26..7e9f94e 100644 --- a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java +++ b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/fast/LazySimpleDeserializeRead.java @@ -270,6 +270,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { } break; case BYTE: + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } try { currentByte = LazyByte.parseByte(bytes, fieldStart, fieldLength, 10); } catch (NumberFormatException e) { @@ -278,6 +281,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { } break; case SHORT: + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } try { currentShort = LazyShort.parseShort(bytes, fieldStart, fieldLength, 10); } catch (NumberFormatException e) { @@ -286,6 +292,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { } break; case INT: + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } try { currentInt = LazyInteger.parseInt(bytes, fieldStart, fieldLength, 10); } catch (NumberFormatException e) { @@ -294,6 +303,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { } break; case LONG: + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } try { currentLong = LazyLong.parseLong(bytes, fieldStart, fieldLength, 10); } catch (NumberFormatException e) { @@ -303,6 +315,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { break; case FLOAT: { + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } String byteData = null; try { byteData = Text.decode(bytes, fieldStart, fieldLength); @@ -319,6 +334,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { break; case DOUBLE: { + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } String byteData = null; try { byteData = Text.decode(bytes, fieldStart, fieldLength); @@ -363,6 +381,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { break; case DATE: { + if (fieldLength == 0) { + return true; + } String s = null; try { s = Text.decode(bytes, fieldStart, fieldLength); @@ -375,6 +396,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { break; case TIMESTAMP: { + if (fieldLength == 0) { + return true; + } String s = null; try { s = new String(bytes, fieldStart, fieldLength, "US-ASCII"); @@ -425,6 +449,9 @@ public final class LazySimpleDeserializeRead extends DeserializeRead { break; case DECIMAL: { + if (!LazyUtils.isNumberMaybe(bytes, fieldStart, fieldLength)) { + return true; + } String byteData = null; try { byteData = Text.decode(bytes, fieldStart, fieldLength);
