[ 
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)

Reply via email to