[
https://issues.apache.org/jira/browse/ARROW-1965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16320336#comment-16320336
]
ASF GitHub Bot commented on ARROW-1965:
---------------------------------------
kou closed pull request #1456: ARROW-1965: [GLib] Add
garrow_array_builder_get_value_data_type()
URL: https://github.com/apache/arrow/pull/1456
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/c_glib/arrow-glib/array-builder.cpp
b/c_glib/arrow-glib/array-builder.cpp
index a5df68142..7625bcd51 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
@@ -327,6 +328,39 @@ garrow_array_builder_release_ownership(GArrowArrayBuilder
*builder)
priv->have_ownership = FALSE;
}
+/**
+ * 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.
diff --git a/c_glib/arrow-glib/array-builder.h
b/c_glib/arrow-glib/array-builder.h
index 19dadb309..ea95f31e8 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 92976a424..a773131e1 100644
--- a/c_glib/test/test-array-builder.rb
+++ b/c_glib/test/test-array-builder.rb
@@ -76,6 +76,18 @@ def test_negative
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 @@ def create_builder
Arrow::BooleanArrayBuilder.new
end
+ def value_data_type
+ Arrow::BooleanDataType.new
+ end
+
def builder_class_name
"boolean-array-builder"
end
@@ -101,6 +117,10 @@ def sample_values
[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 @@ def create_builder
Arrow::IntArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int8DataType.new
+ end
+
def builder_class_name
"int-array-builder"
end
@@ -123,6 +147,10 @@ def sample_values
[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 @@ def create_builder
Arrow::UIntArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt8DataType.new
+ end
+
def builder_class_name
"uint-array-builder"
end
@@ -145,6 +177,10 @@ def sample_values
[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 @@ def create_builder
Arrow::Int8ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int8DataType.new
+ end
+
def builder_class_name
"int8-array-builder"
end
@@ -167,6 +207,10 @@ def sample_values
[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 @@ def create_builder
Arrow::UInt8ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt8DataType.new
+ end
+
def builder_class_name
"uint8-array-builder"
end
@@ -189,6 +237,10 @@ def sample_values
[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 @@ def create_builder
Arrow::Int16ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int16DataType.new
+ end
+
def builder_class_name
"int16-array-builder"
end
@@ -211,6 +267,10 @@ def sample_values
[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 @@ def create_builder
Arrow::UInt16ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt16DataType.new
+ end
+
def builder_class_name
"uint16-array-builder"
end
@@ -233,6 +297,10 @@ def sample_values
[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 @@ def create_builder
Arrow::Int32ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int32DataType.new
+ end
+
def builder_class_name
"int32-array-builder"
end
@@ -255,6 +327,10 @@ def sample_values
[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 @@ def create_builder
Arrow::UInt32ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt32DataType.new
+ end
+
def builder_class_name
"uint32-array-builder"
end
@@ -277,6 +357,10 @@ def sample_values
[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 @@ def create_builder
Arrow::Int64ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Int64DataType.new
+ end
+
def builder_class_name
"int64-array-builder"
end
@@ -299,6 +387,10 @@ def sample_values
[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 @@ def create_builder
Arrow::UInt64ArrayBuilder.new
end
+ def value_data_type
+ Arrow::UInt64DataType.new
+ end
+
def builder_class_name
"uint64-array-builder"
end
@@ -321,6 +417,10 @@ def sample_values
[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 @@ def create_builder
Arrow::FloatArrayBuilder.new
end
+ def value_data_type
+ Arrow::FloatDataType.new
+ end
+
def builder_class_name
"float-array-builder"
end
@@ -343,6 +447,10 @@ def sample_values
[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 @@ def create_builder
Arrow::DoubleArrayBuilder.new
end
+ def value_data_type
+ Arrow::DoubleDataType.new
+ end
+
def builder_class_name
"double-array-builder"
end
@@ -365,6 +477,10 @@ def sample_values
[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 @@ def create_builder
Arrow::Date32ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Date32DataType.new
+ end
+
def builder_class_name
"date32-array-builder"
end
@@ -391,6 +511,10 @@ def sample_values
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -405,6 +529,10 @@ def create_builder
Arrow::Date64ArrayBuilder.new
end
+ def value_data_type
+ Arrow::Date64DataType.new
+ end
+
def builder_class_name
"date64-array-builder"
end
@@ -417,6 +545,10 @@ def sample_values
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -432,6 +564,10 @@ def create_builder
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 @@ def sample_values
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -459,6 +599,10 @@ def create_builder
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 @@ def sample_values
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
@@ -486,6 +634,10 @@ def create_builder
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 @@ def sample_values
]
end
+ sub_test_case("value type") do
+ include ArrayBuilderValueTypeTests
+ end
+
sub_test_case("#append_values") do
include ArrayBuilderAppendValuesTests
end
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> [GLib] Add garrow_array_builder_get_value_data_type() and
> garrow_array_builder_get_value_type()
> -----------------------------------------------------------------------------------------------
>
> Key: ARROW-1965
> URL: https://issues.apache.org/jira/browse/ARROW-1965
> Project: Apache Arrow
> Issue Type: New Feature
> Components: GLib
> Reporter: Kouhei Sutou
> Assignee: Kouhei Sutou
> Priority: Minor
> Labels: pull-request-available
> Fix For: 0.9.0
>
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)