You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2017/04/21 21:51:36 UTC
arrow git commit: ARROW-868: [GLib] Use GBytes to reduce copy
Repository: arrow
Updated Branches:
refs/heads/master b4a75b1e1 -> 423235ccb
ARROW-868: [GLib] Use GBytes to reduce copy
Author: Kouhei Sutou <ko...@clear-code.com>
Closes #576 from kou/glib-binary-array-use-gbytes and squashes the following commits:
7aeb799 [Kouhei Sutou] [GLib] Use GBytes to reduce copy
Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/423235cc
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/423235cc
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/423235cc
Branch: refs/heads/master
Commit: 423235ccb39737d66e1c47d119879787d9e10847
Parents: b4a75b1
Author: Kouhei Sutou <ko...@clear-code.com>
Authored: Fri Apr 21 17:51:31 2017 -0400
Committer: Wes McKinney <we...@twosigma.com>
Committed: Fri Apr 21 17:51:31 2017 -0400
----------------------------------------------------------------------
c_glib/arrow-glib/array.cpp | 13 +++++++------
c_glib/arrow-glib/array.h | 5 ++---
c_glib/test/test-binary-array.rb | 5 +++--
3 files changed, 12 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/arrow/blob/423235cc/c_glib/arrow-glib/array.cpp
----------------------------------------------------------------------
diff --git a/c_glib/arrow-glib/array.cpp b/c_glib/arrow-glib/array.cpp
index c86bff9..dc1386b 100644
--- a/c_glib/arrow-glib/array.cpp
+++ b/c_glib/arrow-glib/array.cpp
@@ -672,19 +672,20 @@ garrow_binary_array_class_init(GArrowBinaryArrayClass *klass)
* garrow_binary_array_get_value:
* @array: A #GArrowBinaryArray.
* @i: The index of the target value.
- * @length: (out): The length of the value.
*
- * Returns: (array length=length): The i-th value.
+ * Returns: (transfer full): The i-th value.
*/
-const guint8 *
+GBytes *
garrow_binary_array_get_value(GArrowBinaryArray *array,
- gint64 i,
- gint32 *length)
+ gint64 i)
{
auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
auto arrow_binary_array =
static_cast<arrow::BinaryArray *>(arrow_array.get());
- return arrow_binary_array->GetValue(i, length);
+
+ int32_t length;
+ auto value = arrow_binary_array->GetValue(i, &length);
+ return g_bytes_new_static(value, length);
}
http://git-wip-us.apache.org/repos/asf/arrow/blob/423235cc/c_glib/arrow-glib/array.h
----------------------------------------------------------------------
diff --git a/c_glib/arrow-glib/array.h b/c_glib/arrow-glib/array.h
index b417cdb..7406456 100644
--- a/c_glib/arrow-glib/array.h
+++ b/c_glib/arrow-glib/array.h
@@ -660,9 +660,8 @@ struct _GArrowBinaryArrayClass
GType garrow_binary_array_get_type(void) G_GNUC_CONST;
-const guint8 *garrow_binary_array_get_value(GArrowBinaryArray *array,
- gint64 i,
- gint32 *length);
+GBytes *garrow_binary_array_get_value(GArrowBinaryArray *array,
+ gint64 i);
#define GARROW_TYPE_STRING_ARRAY \
(garrow_string_array_get_type())
http://git-wip-us.apache.org/repos/asf/arrow/blob/423235cc/c_glib/test/test-binary-array.rb
----------------------------------------------------------------------
diff --git a/c_glib/test/test-binary-array.rb b/c_glib/test/test-binary-array.rb
index 82a537e..6fe8924 100644
--- a/c_glib/test/test-binary-array.rb
+++ b/c_glib/test/test-binary-array.rb
@@ -17,9 +17,10 @@
class TestBinaryArray < Test::Unit::TestCase
def test_value
+ data = "\x00\x01\x02"
builder = Arrow::BinaryArrayBuilder.new
- builder.append("\x00\x01\x02")
+ builder.append(data)
array = builder.finish
- assert_equal([0, 1, 2], array.get_value(0))
+ assert_equal(data, array.get_value(0).to_s)
end
end