aboutsummaryrefslogtreecommitdiff
path: root/unsafe/src
diff options
context:
space:
mode:
authorReynold Xin <rxin@databricks.com>2015-07-25 01:37:41 -0700
committerReynold Xin <rxin@databricks.com>2015-07-25 01:37:41 -0700
commit215713e19924dff69d226a97f1860a5470464d15 (patch)
treec9ab7c622d1af96b07346cf0dd3fd058c59f057b /unsafe/src
parentf0ebab3f6d3a9231474acf20110db72c0fb51882 (diff)
downloadspark-215713e19924dff69d226a97f1860a5470464d15.tar.gz
spark-215713e19924dff69d226a97f1860a5470464d15.tar.bz2
spark-215713e19924dff69d226a97f1860a5470464d15.zip
[SPARK-9334][SQL] Remove UnsafeRowConverter in favor of UnsafeProjection.
The two are redundant. Once this patch is merged, I plan to remove the inbound conversions from unsafe aggregates. Author: Reynold Xin <rxin@databricks.com> Closes #7658 from rxin/unsafeconverters and squashes the following commits: ed19e6c [Reynold Xin] Updated support types. 2a56d7e [Reynold Xin] [SPARK-9334][SQL] Remove UnsafeRowConverter in favor of UnsafeProjection.
Diffstat (limited to 'unsafe/src')
-rw-r--r--unsafe/src/main/java/org/apache/spark/unsafe/types/ByteArray.java38
-rw-r--r--unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java15
2 files changed, 53 insertions, 0 deletions
diff --git a/unsafe/src/main/java/org/apache/spark/unsafe/types/ByteArray.java b/unsafe/src/main/java/org/apache/spark/unsafe/types/ByteArray.java
new file mode 100644
index 0000000000..69b0e206ce
--- /dev/null
+++ b/unsafe/src/main/java/org/apache/spark/unsafe/types/ByteArray.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.spark.unsafe.types;
+
+import org.apache.spark.unsafe.PlatformDependent;
+
+public class ByteArray {
+
+ /**
+ * Writes the content of a byte array into a memory address, identified by an object and an
+ * offset. The target memory address must already been allocated, and have enough space to
+ * hold all the bytes in this string.
+ */
+ public static void writeToMemory(byte[] src, Object target, long targetOffset) {
+ PlatformDependent.copyMemory(
+ src,
+ PlatformDependent.BYTE_ARRAY_OFFSET,
+ target,
+ targetOffset,
+ src.length
+ );
+ }
+}
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 6d8dcb1cbf..85381cf0ef 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
@@ -96,6 +96,21 @@ public final class UTF8String implements Comparable<UTF8String>, Serializable {
}
/**
+ * Writes the content of this string into a memory address, identified by an object and an offset.
+ * The target memory address must already been allocated, and have enough space to hold all the
+ * bytes in this string.
+ */
+ public void writeToMemory(Object target, long targetOffset) {
+ PlatformDependent.copyMemory(
+ base,
+ offset,
+ target,
+ targetOffset,
+ numBytes
+ );
+ }
+
+ /**
* Returns the number of bytes for a code point with the first byte as `b`
* @param b The first byte of a code point
*/