You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ko...@apache.org on 2018/01/10 14:35:11 UTC
[arrow] branch master updated: ARROW-1965: [GLib] Add
garrow_array_builder_get_value_data_type()
This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new 1b0732c ARROW-1965: [GLib] Add garrow_array_builder_get_value_data_type()
1b0732c is described below
commit 1b0732cde515f9ec9b42f98061f9204796c9e154
Author: Kouhei Sutou <ko...@clear-code.com>
AuthorDate: Wed Jan 10 23:34:47 2018 +0900
ARROW-1965: [GLib] Add garrow_array_builder_get_value_data_type()
garrow_array_builder_get_value_type() is also added for convenient.
Author: Kouhei Sutou <ko...@clear-code.com>
Closes #1456 from kou/glib-add-builder-get-value-type and squashes the following commits:
5a4b1229 [Kouhei Sutou] [GLib] Add garrow_array_builder_get_value_data_type()
---
c_glib/arrow-glib/array-builder.cpp | 34 ++++++++
c_glib/arrow-glib/array-builder.h | 4 +
c_glib/test/test-array-builder.rb | 156 ++++++++++++++++++++++++++++++++++++
3 files changed, 194 insertions(+)
diff --git a/c_glib/arrow-glib/array-builder.cpp b/c_glib/arrow-glib/array-builder.cpp
index a5df681..7625bcd 100644
--- a/c_glib/arrow-glib/array-builder.cpp
+++ b/c_glib/arrow-glib/array-builder.cpp
@@ -24,6 +24,7 @@
#include <arrow-glib/array-builder.hpp>
#include <arrow-glib/data-type.hpp>
#include <arrow-glib/error.hpp>
+#include <arrow-glib/type.hpp>
template <typename BUILDER, typename VALUE>
gboolean
@@ -328,6 +329,39 @@ garrow_array_builder_release_ownership(GArrowArrayBuilder *builder)
}
/**
+ * garrow_array_builder_get_value_data_type:
+ * @builder: A #GArrowArrayBuilder.
+ *
+ * Returns: (transfer full): The #GArrowDataType of the value of
+ * the array builder.
+ *
+ * Since: 0.9.0
+ */
+GArrowDataType *
+garrow_array_builder_get_value_data_type(GArrowArrayBuilder *builder)
+{
+ auto arrow_builder = garrow_array_builder_get_raw(builder);
+ auto arrow_type = arrow_builder->type();
+ return garrow_data_type_new_raw(&arrow_type);
+}
+
+/**
+ * garrow_array_builder_get_value_type:
+ * @builder: A #GArrowArrayBuilder.
+ *
+ * Returns: The #GArrowType of the value of the array builder.
+ *
+ * Since: 0.9.0
+ */
+GArrowType
+garrow_array_builder_get_value_type(GArrowArrayBuilder *builder)
+{
+ auto arrow_builder = garrow_array_builder_get_raw(builder);
+ auto arrow_type = arrow_builder->type();
+ return garrow_type_from_raw(arrow_type->id());
+}
+
+/**
* garrow_array_builder_finish:
* @builder: A #GArrowArrayBuilder.
* @error: (nullable): Return location for a #GError or %NULL.
diff --git a/c_glib/arrow-glib/array-builder.h b/c_glib/arrow-glib/array-builder.h
index 19dadb3..ea95f31 100644
--- a/c_glib/arrow-glib/array-builder.h
+++ b/c_glib/arrow-glib/array-builder.h
@@ -37,6 +37,10 @@ struct _GArrowArrayBuilderClass
void garrow_array_builder_release_ownership(GArrowArrayBuilder *builder);
+GArrowDataType *
+garrow_array_builder_get_value_data_type(GArrowArrayBuilder *builder);
+GArrowType garrow_array_builder_get_value_type(GArrowArrayBuilder *builder);
+
GArrowArray *garrow_array_builder_finish (GArrowArrayBuilder *builder,
GError **error);
diff --git a/c_glib/test/test-array-builder.rb b/c_glib/test/test-array-builder.rb
index 92976a4..a773131 100644
--- a/c_glib/test/test-array-builder.rb
+++ b/c_glib/test/test-array-builder.rb
@@ -76,6 +76,18 @@ module ArrayBuilderAppendNullsTests
end
end
+module ArrayBuilderValueTypeTests
+ def test_value_data_type
+ assert_equal(value_data_type,
+ build_array(sample_values).value_data_type)
+ end
+
+ def test_value_type
+ assert_equal(value_data_type.id,
+ build_array(sample_values).value_type)
+ end
+end
+
class TestArrayBuilder < Test::Unit::TestCase
include Helper::Buildable
include Helper::Omittable
@@ -93,6 +105,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::BooleanArrayBuilder.new
end
+ def value_data_type
+ Arrow::BooleanDataType.new
+ end
+
def builder_class_name
"boolean-array-builder"
end
@@ -101,6 +117,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[true, false, true]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -115,6 +135,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::IntArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int8DataType.new
+ end
+
def builder_class_name
"int-array-builder"
end
@@ -123,6 +147,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, -2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -137,6 +165,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::UIntArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt8DataType.new
+ end
+
def builder_class_name
"uint-array-builder"
end
@@ -145,6 +177,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, 2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -159,6 +195,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Int8ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int8DataType.new
+ end
+
def builder_class_name
"int8-array-builder"
end
@@ -167,6 +207,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, -2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -181,6 +225,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::UInt8ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt8DataType.new
+ end
+
def builder_class_name
"uint8-array-builder"
end
@@ -189,6 +237,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, 2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -203,6 +255,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Int16ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int16DataType.new
+ end
+
def builder_class_name
"int16-array-builder"
end
@@ -211,6 +267,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, -2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -225,6 +285,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::UInt16ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt16DataType.new
+ end
+
def builder_class_name
"uint16-array-builder"
end
@@ -233,6 +297,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, 2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -247,6 +315,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Int32ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int32DataType.new
+ end
+
def builder_class_name
"int32-array-builder"
end
@@ -255,6 +327,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, -2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -269,6 +345,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::UInt32ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt32DataType.new
+ end
+
def builder_class_name
"uint32-array-builder"
end
@@ -277,6 +357,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, 2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -291,6 +375,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Int64ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int64DataType.new
+ end
+
def builder_class_name
"int64-array-builder"
end
@@ -299,6 +387,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, -2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -313,6 +405,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::UInt64ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt64DataType.new
+ end
+
def builder_class_name
"uint64-array-builder"
end
@@ -321,6 +417,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1, 2, 3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -335,6 +435,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::FloatArrayBuilder.new
end
+ def value_data_type
+ Arrow::FloatDataType.new
+ end
+
def builder_class_name
"float-array-builder"
end
@@ -343,6 +447,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1.1, -2.2, 3.3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -357,6 +465,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::DoubleArrayBuilder.new
end
+ def value_data_type
+ Arrow::DoubleDataType.new
+ end
+
def builder_class_name
"double-array-builder"
end
@@ -365,6 +477,10 @@ class TestArrayBuilder < Test::Unit::TestCase
[1.1, -2.2, 3.3]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -379,6 +495,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Date32ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Date32DataType.new
+ end
+
def builder_class_name
"date32-array-builder"
end
@@ -391,6 +511,10 @@ class TestArrayBuilder < Test::Unit::TestCase
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -405,6 +529,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Date64ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Date64DataType.new
+ end
+
def builder_class_name
"date64-array-builder"
end
@@ -417,6 +545,10 @@ class TestArrayBuilder < Test::Unit::TestCase
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -432,6 +564,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::TimestampArrayBuilder.new(data_type)
end
+ def value_data_type
+ Arrow::TimestampDataType.new(:milli)
+ end
+
def builder_class_name
"timestamp-array-builder"
end
@@ -444,6 +580,10 @@ class TestArrayBuilder < Test::Unit::TestCase
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -459,6 +599,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Time32ArrayBuilder.new(data_type)
end
+ def value_data_type
+ Arrow::Time32DataType.new(:second)
+ end
+
def builder_class_name
"time32-array-builder"
end
@@ -471,6 +615,10 @@ class TestArrayBuilder < Test::Unit::TestCase
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -486,6 +634,10 @@ class TestArrayBuilder < Test::Unit::TestCase
Arrow::Time64ArrayBuilder.new(data_type)
end
+ def value_data_type
+ Arrow::Time64DataType.new(:micro)
+ end
+
def builder_class_name
"time64-array-builder"
end
@@ -498,6 +650,10 @@ class TestArrayBuilder < Test::Unit::TestCase
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
--
To stop receiving notification emails like this one, please contact
['"commits@arrow.apache.org" <co...@arrow.apache.org>'].