aboutsummaryrefslogtreecommitdiff
path: root/unsafe
diff options
context:
space:
mode:
authorTarek Auel <tarek.auel@googlemail.com>2015-07-20 15:23:28 -0700
committerReynold Xin <rxin@databricks.com>2015-07-20 15:23:28 -0700
commit4863c11ea9d9f94799fbe6ae5a60860f0740a44d (patch)
tree015c2adfa7ac637de58bff7970e4694fef10cca9 /unsafe
parentdde0e12f32e3a0448d8308ec78ad59cbb2c55d23 (diff)
downloadspark-4863c11ea9d9f94799fbe6ae5a60860f0740a44d.tar.gz
spark-4863c11ea9d9f94799fbe6ae5a60860f0740a44d.tar.bz2
spark-4863c11ea9d9f94799fbe6ae5a60860f0740a44d.zip
[SPARK-9155][SQL] codegen StringSpace
Jira https://issues.apache.org/jira/browse/SPARK-9155 Author: Tarek Auel <tarek.auel@googlemail.com> Closes #7531 from tarekauel/SPARK-9155 and squashes the following commits: 423c426 [Tarek Auel] [SPARK-9155] language typo fix e34bd1b [Tarek Auel] [SPARK-9155] moved creation of blank string to UTF8String 4bc33e6 [Tarek Auel] [SPARK-9155] codegen StringSpace
Diffstat (limited to 'unsafe')
-rw-r--r--unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java10
-rw-r--r--unsafe/src/test/java/org/apache/spark/unsafe/types/UTF8StringSuite.java8
2 files changed, 18 insertions, 0 deletions
diff --git a/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java b/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
index 3eecd657e6..819639f300 100644
--- a/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
+++ b/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
@@ -20,6 +20,7 @@ package org.apache.spark.unsafe.types;
import javax.annotation.Nonnull;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
import org.apache.spark.unsafe.PlatformDependent;
import org.apache.spark.unsafe.array.ByteArrayMethods;
@@ -77,6 +78,15 @@ public final class UTF8String implements Comparable<UTF8String>, Serializable {
}
}
+ /**
+ * Creates an UTF8String that contains `length` spaces.
+ */
+ public static UTF8String blankString(int length) {
+ byte[] spaces = new byte[length];
+ Arrays.fill(spaces, (byte) ' ');
+ return fromBytes(spaces);
+ }
+
protected UTF8String(Object base, long offset, int size) {
this.base = base;
this.offset = offset;
diff --git a/unsafe/src/test/java/org/apache/spark/unsafe/types/UTF8StringSuite.java b/unsafe/src/test/java/org/apache/spark/unsafe/types/UTF8StringSuite.java
index 7d0c49e2fb..6a21c27461 100644
--- a/unsafe/src/test/java/org/apache/spark/unsafe/types/UTF8StringSuite.java
+++ b/unsafe/src/test/java/org/apache/spark/unsafe/types/UTF8StringSuite.java
@@ -286,4 +286,12 @@ public class UTF8StringSuite {
assertEquals(
UTF8String.fromString("世界千世").levenshteinDistance(UTF8String.fromString("千a世b")),4);
}
+
+ @Test
+ public void createBlankString() {
+ assertEquals(fromString(" "), blankString(1));
+ assertEquals(fromString(" "), blankString(2));
+ assertEquals(fromString(" "), blankString(3));
+ assertEquals(fromString(""), blankString(0));
+ }
}