This is an automated email from the ASF dual-hosted git repository.

uwe 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 bdedf23  ARROW-2088: [GLib] Add GArrowNumericArray
bdedf23 is described below

commit bdedf2390aafd7809032a2c6c5946db2123be325
Author: Kouhei Sutou <k...@clear-code.com>
AuthorDate: Sun Feb 4 19:56:11 2018 +0100

    ARROW-2088: [GLib] Add GArrowNumericArray
    
    We can use the class to determine whether an array is a numeric array or 
not.
    
    Author: Kouhei Sutou <k...@clear-code.com>
    
    Closes #1556 from kou/glib-add-numeric-array and squashes the following 
commits:
    
    41a2535 [Kouhei Sutou] [GLib] Add GArrowNumericArray
---
 c_glib/arrow-glib/basic-array.cpp |  45 ++-
 c_glib/arrow-glib/basic-array.h   | 724 +++++++-------------------------------
 2 files changed, 149 insertions(+), 620 deletions(-)

diff --git a/c_glib/arrow-glib/basic-array.cpp 
b/c_glib/arrow-glib/basic-array.cpp
index 3c027c0..35a5ea8 100644
--- a/c_glib/arrow-glib/basic-array.cpp
+++ b/c_glib/arrow-glib/basic-array.cpp
@@ -778,9 +778,24 @@ garrow_boolean_array_get_values(GArrowBooleanArray *array,
 }
 
 
+G_DEFINE_TYPE(GArrowNumericArray,               \
+              garrow_numeric_array,             \
+              GARROW_TYPE_PRIMITIVE_ARRAY)
+
+static void
+garrow_numeric_array_init(GArrowNumericArray *object)
+{
+}
+
+static void
+garrow_numeric_array_class_init(GArrowNumericArrayClass *klass)
+{
+}
+
+
 G_DEFINE_TYPE(GArrowInt8Array,               \
               garrow_int8_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_int8_array_init(GArrowInt8Array *object)
@@ -853,7 +868,7 @@ garrow_int8_array_get_values(GArrowInt8Array *array,
 
 G_DEFINE_TYPE(GArrowUInt8Array,               \
               garrow_uint8_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_uint8_array_init(GArrowUInt8Array *object)
@@ -926,7 +941,7 @@ garrow_uint8_array_get_values(GArrowUInt8Array *array,
 
 G_DEFINE_TYPE(GArrowInt16Array,               \
               garrow_int16_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_int16_array_init(GArrowInt16Array *object)
@@ -999,7 +1014,7 @@ garrow_int16_array_get_values(GArrowInt16Array *array,
 
 G_DEFINE_TYPE(GArrowUInt16Array,               \
               garrow_uint16_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_uint16_array_init(GArrowUInt16Array *object)
@@ -1072,7 +1087,7 @@ garrow_uint16_array_get_values(GArrowUInt16Array *array,
 
 G_DEFINE_TYPE(GArrowInt32Array,               \
               garrow_int32_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_int32_array_init(GArrowInt32Array *object)
@@ -1145,7 +1160,7 @@ garrow_int32_array_get_values(GArrowInt32Array *array,
 
 G_DEFINE_TYPE(GArrowUInt32Array,               \
               garrow_uint32_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_uint32_array_init(GArrowUInt32Array *object)
@@ -1218,7 +1233,7 @@ garrow_uint32_array_get_values(GArrowUInt32Array *array,
 
 G_DEFINE_TYPE(GArrowInt64Array,               \
               garrow_int64_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_int64_array_init(GArrowInt64Array *object)
@@ -1293,7 +1308,7 @@ garrow_int64_array_get_values(GArrowInt64Array *array,
 
 G_DEFINE_TYPE(GArrowUInt64Array,               \
               garrow_uint64_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_uint64_array_init(GArrowUInt64Array *object)
@@ -1368,7 +1383,7 @@ garrow_uint64_array_get_values(GArrowUInt64Array *array,
 
 G_DEFINE_TYPE(GArrowFloatArray,               \
               garrow_float_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_float_array_init(GArrowFloatArray *object)
@@ -1441,7 +1456,7 @@ garrow_float_array_get_values(GArrowFloatArray *array,
 
 G_DEFINE_TYPE(GArrowDoubleArray,               \
               garrow_double_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_double_array_init(GArrowDoubleArray *object)
@@ -1690,7 +1705,7 @@ garrow_string_array_get_string(GArrowStringArray *array,
 
 G_DEFINE_TYPE(GArrowDate32Array,               \
               garrow_date32_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_date32_array_init(GArrowDate32Array *object)
@@ -1767,7 +1782,7 @@ garrow_date32_array_get_values(GArrowDate32Array *array,
 
 G_DEFINE_TYPE(GArrowDate64Array,               \
               garrow_date64_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_date64_array_init(GArrowDate64Array *object)
@@ -1846,7 +1861,7 @@ garrow_date64_array_get_values(GArrowDate64Array *array,
 
 G_DEFINE_TYPE(GArrowTimestampArray,             \
               garrow_timestamp_array,           \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_timestamp_array_init(GArrowTimestampArray *object)
@@ -1929,7 +1944,7 @@ garrow_timestamp_array_get_values(GArrowTimestampArray 
*array,
 
 G_DEFINE_TYPE(GArrowTime32Array,               \
               garrow_time32_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_time32_array_init(GArrowTime32Array *object)
@@ -2010,7 +2025,7 @@ garrow_time32_array_get_values(GArrowTime32Array *array,
 
 G_DEFINE_TYPE(GArrowTime64Array,               \
               garrow_time64_array,             \
-              GARROW_TYPE_PRIMITIVE_ARRAY)
+              GARROW_TYPE_NUMERIC_ARRAY)
 
 static void
 garrow_time64_array_init(GArrowTime64Array *object)
diff --git a/c_glib/arrow-glib/basic-array.h b/c_glib/arrow-glib/basic-array.h
index 420c30e..4bf0af3 100644
--- a/c_glib/arrow-glib/basic-array.h
+++ b/c_glib/arrow-glib/basic-array.h
@@ -116,48 +116,17 @@ GType garrow_null_array_get_type(void) G_GNUC_CONST;
 GArrowNullArray *garrow_null_array_new(gint64 length);
 
 
-#define GARROW_TYPE_PRIMITIVE_ARRAY             \
-  (garrow_primitive_array_get_type())
-#define GARROW_PRIMITIVE_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                            \
-                              GARROW_TYPE_PRIMITIVE_ARRAY,      \
-                              GArrowPrimitiveArray))
-#define GARROW_PRIMITIVE_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_PRIMITIVE_ARRAY, \
-                           GArrowPrimitiveArrayClass))
-#define GARROW_IS_PRIMITIVE_ARRAY(obj)                          \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_PRIMITIVE_ARRAY))
-#define GARROW_IS_PRIMITIVE_ARRAY_CLASS(klass)                  \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                             \
-                           GARROW_TYPE_PRIMITIVE_ARRAY))
-#define GARROW_PRIMITIVE_ARRAY_GET_CLASS(obj)                   \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                             \
-                             GARROW_TYPE_PRIMITIVE_ARRAY,       \
-                             GArrowPrimitiveArrayClass))
-
-typedef struct _GArrowPrimitiveArray         GArrowPrimitiveArray;
-typedef struct _GArrowPrimitiveArrayClass    GArrowPrimitiveArrayClass;
-
-/**
- * GArrowPrimitiveArray:
- *
- * It wraps `arrow::PrimitiveArray`.
- */
-struct _GArrowPrimitiveArray
-{
-  /*< private >*/
-  GArrowArray parent_instance;
-};
-
+#define GARROW_TYPE_PRIMITIVE_ARRAY (garrow_primitive_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowPrimitiveArray,
+                         garrow_primitive_array,
+                         GARROW,
+                         PRIMITIVE_ARRAY,
+                         GArrowArray)
 struct _GArrowPrimitiveArrayClass
 {
   GArrowArrayClass parent_class;
 };
 
-GType garrow_primitive_array_get_type(void) G_GNUC_CONST;
-
 GArrowBuffer *garrow_primitive_array_get_buffer(GArrowPrimitiveArray *array);
 
 
@@ -213,49 +182,28 @@ gboolean       garrow_boolean_array_get_value 
(GArrowBooleanArray *array,
 gboolean      *garrow_boolean_array_get_values(GArrowBooleanArray *array,
                                                gint64 *length);
 
-
-#define GARROW_TYPE_INT8_ARRAY                  \
-  (garrow_int8_array_get_type())
-#define GARROW_INT8_ARRAY(obj)                          \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_INT8_ARRAY,   \
-                              GArrowInt8Array))
-#define GARROW_INT8_ARRAY_CLASS(klass)                  \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_INT8_ARRAY,      \
-                           GArrowInt8ArrayClass))
-#define GARROW_IS_INT8_ARRAY(obj)                       \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                    \
-                              GARROW_TYPE_INT8_ARRAY))
-#define GARROW_IS_INT8_ARRAY_CLASS(klass)               \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_INT8_ARRAY))
-#define GARROW_INT8_ARRAY_GET_CLASS(obj)                \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_INT8_ARRAY,    \
-                             GArrowInt8ArrayClass))
-
-typedef struct _GArrowInt8Array         GArrowInt8Array;
-typedef struct _GArrowInt8ArrayClass    GArrowInt8ArrayClass;
-
-/**
- * GArrowInt8Array:
- *
- * It wraps `arrow::Int8Array`.
- */
-struct _GArrowInt8Array
+#define GARROW_TYPE_NUMERIC_ARRAY (garrow_numeric_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowNumericArray,
+                         garrow_numeric_array,
+                         GARROW,
+                         NUMERIC_ARRAY,
+                         GArrowPrimitiveArray)
+struct _GArrowNumericArrayClass
 {
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
+  GArrowPrimitiveArrayClass parent_class;
 };
 
+#define GARROW_TYPE_INT8_ARRAY (garrow_int8_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowInt8Array,
+                         garrow_int8_array,
+                         GARROW,
+                         INT8_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowInt8ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_int8_array_get_type(void) G_GNUC_CONST;
-
 GArrowInt8Array *garrow_int8_array_new(gint64 length,
                                        GArrowBuffer *data,
                                        GArrowBuffer *null_bitmap,
@@ -267,48 +215,17 @@ const gint8 *garrow_int8_array_get_values(GArrowInt8Array 
*array,
                                           gint64 *length);
 
 
-#define GARROW_TYPE_UINT8_ARRAY                 \
-  (garrow_uint8_array_get_type())
-#define GARROW_UINT8_ARRAY(obj)                         \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_UINT8_ARRAY,  \
-                              GArrowUInt8Array))
-#define GARROW_UINT8_ARRAY_CLASS(klass)                 \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_UINT8_ARRAY,     \
-                           GArrowUInt8ArrayClass))
-#define GARROW_IS_UINT8_ARRAY(obj)                      \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                    \
-                              GARROW_TYPE_UINT8_ARRAY))
-#define GARROW_IS_UINT8_ARRAY_CLASS(klass)              \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_UINT8_ARRAY))
-#define GARROW_UINT8_ARRAY_GET_CLASS(obj)               \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_UINT8_ARRAY,   \
-                             GArrowUInt8ArrayClass))
-
-typedef struct _GArrowUInt8Array         GArrowUInt8Array;
-typedef struct _GArrowUInt8ArrayClass    GArrowUInt8ArrayClass;
-
-/**
- * GArrowUInt8Array:
- *
- * It wraps `arrow::UInt8Array`.
- */
-struct _GArrowUInt8Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_UINT8_ARRAY (garrow_uint8_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowUInt8Array,
+                         garrow_uint8_array,
+                         GARROW,
+                         UINT8_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowUInt8ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_uint8_array_get_type(void) G_GNUC_CONST;
-
 GArrowUInt8Array *garrow_uint8_array_new(gint64 length,
                                          GArrowBuffer *data,
                                          GArrowBuffer *null_bitmap,
@@ -320,48 +237,17 @@ const guint8 
*garrow_uint8_array_get_values(GArrowUInt8Array *array,
                                             gint64 *length);
 
 
-#define GARROW_TYPE_INT16_ARRAY                  \
-  (garrow_int16_array_get_type())
-#define GARROW_INT16_ARRAY(obj)                         \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_INT16_ARRAY,  \
-                              GArrowInt16Array))
-#define GARROW_INT16_ARRAY_CLASS(klass)                 \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_INT16_ARRAY,     \
-                           GArrowInt16ArrayClass))
-#define GARROW_IS_INT16_ARRAY(obj)                      \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                    \
-                              GARROW_TYPE_INT16_ARRAY))
-#define GARROW_IS_INT16_ARRAY_CLASS(klass)              \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_INT16_ARRAY))
-#define GARROW_INT16_ARRAY_GET_CLASS(obj)               \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_INT16_ARRAY,   \
-                             GArrowInt16ArrayClass))
-
-typedef struct _GArrowInt16Array         GArrowInt16Array;
-typedef struct _GArrowInt16ArrayClass    GArrowInt16ArrayClass;
-
-/**
- * GArrowInt16Array:
- *
- * It wraps `arrow::Int16Array`.
- */
-struct _GArrowInt16Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_INT16_ARRAY (garrow_int16_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowInt16Array,
+                         garrow_int16_array,
+                         GARROW,
+                         INT16_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowInt16ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_int16_array_get_type(void) G_GNUC_CONST;
-
 GArrowInt16Array *garrow_int16_array_new(gint64 length,
                                          GArrowBuffer *data,
                                          GArrowBuffer *null_bitmap,
@@ -373,48 +259,17 @@ const gint16 
*garrow_int16_array_get_values(GArrowInt16Array *array,
                                             gint64 *length);
 
 
-#define GARROW_TYPE_UINT16_ARRAY                 \
-  (garrow_uint16_array_get_type())
-#define GARROW_UINT16_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_UINT16_ARRAY, \
-                              GArrowUInt16Array))
-#define GARROW_UINT16_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_UINT16_ARRAY,    \
-                           GArrowUInt16ArrayClass))
-#define GARROW_IS_UINT16_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_UINT16_ARRAY))
-#define GARROW_IS_UINT16_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_UINT16_ARRAY))
-#define GARROW_UINT16_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_UINT16_ARRAY,  \
-                             GArrowUInt16ArrayClass))
-
-typedef struct _GArrowUInt16Array         GArrowUInt16Array;
-typedef struct _GArrowUInt16ArrayClass    GArrowUInt16ArrayClass;
-
-/**
- * GArrowUInt16Array:
- *
- * It wraps `arrow::UInt16Array`.
- */
-struct _GArrowUInt16Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_UINT16_ARRAY (garrow_uint16_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowUInt16Array,
+                         garrow_uint16_array,
+                         GARROW,
+                         UINT16_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowUInt16ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_uint16_array_get_type(void) G_GNUC_CONST;
-
 GArrowUInt16Array *garrow_uint16_array_new(gint64 length,
                                            GArrowBuffer *data,
                                            GArrowBuffer *null_bitmap,
@@ -426,48 +281,17 @@ const guint16 
*garrow_uint16_array_get_values(GArrowUInt16Array *array,
                                               gint64 *length);
 
 
-#define GARROW_TYPE_INT32_ARRAY                 \
-  (garrow_int32_array_get_type())
-#define GARROW_INT32_ARRAY(obj)                         \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_INT32_ARRAY,  \
-                              GArrowInt32Array))
-#define GARROW_INT32_ARRAY_CLASS(klass)                 \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_INT32_ARRAY,     \
-                           GArrowInt32ArrayClass))
-#define GARROW_IS_INT32_ARRAY(obj)                      \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                    \
-                              GARROW_TYPE_INT32_ARRAY))
-#define GARROW_IS_INT32_ARRAY_CLASS(klass)              \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_INT32_ARRAY))
-#define GARROW_INT32_ARRAY_GET_CLASS(obj)               \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_INT32_ARRAY,   \
-                             GArrowInt32ArrayClass))
-
-typedef struct _GArrowInt32Array         GArrowInt32Array;
-typedef struct _GArrowInt32ArrayClass    GArrowInt32ArrayClass;
-
-/**
- * GArrowInt32Array:
- *
- * It wraps `arrow::Int32Array`.
- */
-struct _GArrowInt32Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_INT32_ARRAY (garrow_int32_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowInt32Array,
+                         garrow_int32_array,
+                         GARROW,
+                         INT32_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowInt32ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_int32_array_get_type(void) G_GNUC_CONST;
-
 GArrowInt32Array *garrow_int32_array_new(gint64 length,
                                          GArrowBuffer *data,
                                          GArrowBuffer *null_bitmap,
@@ -479,48 +303,17 @@ const gint32 
*garrow_int32_array_get_values(GArrowInt32Array *array,
                                             gint64 *length);
 
 
-#define GARROW_TYPE_UINT32_ARRAY                \
-  (garrow_uint32_array_get_type())
-#define GARROW_UINT32_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_UINT32_ARRAY, \
-                              GArrowUInt32Array))
-#define GARROW_UINT32_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_UINT32_ARRAY,    \
-                           GArrowUInt32ArrayClass))
-#define GARROW_IS_UINT32_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_UINT32_ARRAY))
-#define GARROW_IS_UINT32_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_UINT32_ARRAY))
-#define GARROW_UINT32_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_UINT32_ARRAY,  \
-                             GArrowUInt32ArrayClass))
-
-typedef struct _GArrowUInt32Array         GArrowUInt32Array;
-typedef struct _GArrowUInt32ArrayClass    GArrowUInt32ArrayClass;
-
-/**
- * GArrowUInt32Array:
- *
- * It wraps `arrow::UInt32Array`.
- */
-struct _GArrowUInt32Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_UINT32_ARRAY (garrow_uint32_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowUInt32Array,
+                         garrow_uint32_array,
+                         GARROW,
+                         UINT32_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowUInt32ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_uint32_array_get_type(void) G_GNUC_CONST;
-
 GArrowUInt32Array *garrow_uint32_array_new(gint64 length,
                                            GArrowBuffer *data,
                                            GArrowBuffer *null_bitmap,
@@ -532,48 +325,17 @@ const guint32 
*garrow_uint32_array_get_values(GArrowUInt32Array *array,
                                               gint64 *length);
 
 
-#define GARROW_TYPE_INT64_ARRAY                 \
-  (garrow_int64_array_get_type())
-#define GARROW_INT64_ARRAY(obj)                         \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_INT64_ARRAY,  \
-                              GArrowInt64Array))
-#define GARROW_INT64_ARRAY_CLASS(klass)                 \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_INT64_ARRAY,     \
-                           GArrowInt64ArrayClass))
-#define GARROW_IS_INT64_ARRAY(obj)                      \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                    \
-                              GARROW_TYPE_INT64_ARRAY))
-#define GARROW_IS_INT64_ARRAY_CLASS(klass)              \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_INT64_ARRAY))
-#define GARROW_INT64_ARRAY_GET_CLASS(obj)               \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_INT64_ARRAY,   \
-                             GArrowInt64ArrayClass))
-
-typedef struct _GArrowInt64Array         GArrowInt64Array;
-typedef struct _GArrowInt64ArrayClass    GArrowInt64ArrayClass;
-
-/**
- * GArrowInt64Array:
- *
- * It wraps `arrow::Int64Array`.
- */
-struct _GArrowInt64Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_INT64_ARRAY (garrow_int64_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowInt64Array,
+                         garrow_int64_array,
+                         GARROW,
+                         INT64_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowInt64ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_int64_array_get_type(void) G_GNUC_CONST;
-
 GArrowInt64Array *garrow_int64_array_new(gint64 length,
                                          GArrowBuffer *data,
                                          GArrowBuffer *null_bitmap,
@@ -585,48 +347,17 @@ const gint64 
*garrow_int64_array_get_values(GArrowInt64Array *array,
                                             gint64 *length);
 
 
-#define GARROW_TYPE_UINT64_ARRAY                \
-  (garrow_uint64_array_get_type())
-#define GARROW_UINT64_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_UINT64_ARRAY, \
-                              GArrowUInt64Array))
-#define GARROW_UINT64_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_UINT64_ARRAY,    \
-                           GArrowUInt64ArrayClass))
-#define GARROW_IS_UINT64_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_UINT64_ARRAY))
-#define GARROW_IS_UINT64_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_UINT64_ARRAY))
-#define GARROW_UINT64_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_UINT64_ARRAY,  \
-                             GArrowUInt64ArrayClass))
-
-typedef struct _GArrowUInt64Array         GArrowUInt64Array;
-typedef struct _GArrowUInt64ArrayClass    GArrowUInt64ArrayClass;
-
-/**
- * GArrowUInt64Array:
- *
- * It wraps `arrow::UInt64Array`.
- */
-struct _GArrowUInt64Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_UINT64_ARRAY (garrow_uint64_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowUInt64Array,
+                         garrow_uint64_array,
+                         GARROW,
+                         UINT64_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowUInt64ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_uint64_array_get_type(void) G_GNUC_CONST;
-
 GArrowUInt64Array *garrow_uint64_array_new(gint64 length,
                                            GArrowBuffer *data,
                                            GArrowBuffer *null_bitmap,
@@ -638,48 +369,17 @@ const guint64 
*garrow_uint64_array_get_values(GArrowUInt64Array *array,
                                               gint64 *length);
 
 
-#define GARROW_TYPE_FLOAT_ARRAY                 \
-  (garrow_float_array_get_type())
-#define GARROW_FLOAT_ARRAY(obj)                         \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_FLOAT_ARRAY,  \
-                              GArrowFloatArray))
-#define GARROW_FLOAT_ARRAY_CLASS(klass)                 \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_FLOAT_ARRAY,     \
-                           GArrowFloatArrayClass))
-#define GARROW_IS_FLOAT_ARRAY(obj)                      \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                    \
-                              GARROW_TYPE_FLOAT_ARRAY))
-#define GARROW_IS_FLOAT_ARRAY_CLASS(klass)              \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_FLOAT_ARRAY))
-#define GARROW_FLOAT_ARRAY_GET_CLASS(obj)               \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_FLOAT_ARRAY,   \
-                             GArrowFloatArrayClass))
-
-typedef struct _GArrowFloatArray         GArrowFloatArray;
-typedef struct _GArrowFloatArrayClass    GArrowFloatArrayClass;
-
-/**
- * GArrowFloatArray:
- *
- * It wraps `arrow::FloatArray`.
- */
-struct _GArrowFloatArray
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_FLOAT_ARRAY (garrow_float_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowFloatArray,
+                         garrow_float_array,
+                         GARROW,
+                         FLOAT_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowFloatArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_float_array_get_type(void) G_GNUC_CONST;
-
 GArrowFloatArray *garrow_float_array_new(gint64 length,
                                          GArrowBuffer *data,
                                          GArrowBuffer *null_bitmap,
@@ -691,48 +391,17 @@ const gfloat 
*garrow_float_array_get_values(GArrowFloatArray *array,
                                             gint64 *length);
 
 
-#define GARROW_TYPE_DOUBLE_ARRAY                \
-  (garrow_double_array_get_type())
-#define GARROW_DOUBLE_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_DOUBLE_ARRAY, \
-                              GArrowDoubleArray))
-#define GARROW_DOUBLE_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_DOUBLE_ARRAY,    \
-                           GArrowDoubleArrayClass))
-#define GARROW_IS_DOUBLE_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_DOUBLE_ARRAY))
-#define GARROW_IS_DOUBLE_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_DOUBLE_ARRAY))
-#define GARROW_DOUBLE_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_DOUBLE_ARRAY,  \
-                             GArrowDoubleArrayClass))
-
-typedef struct _GArrowDoubleArray         GArrowDoubleArray;
-typedef struct _GArrowDoubleArrayClass    GArrowDoubleArrayClass;
-
-/**
- * GArrowDoubleArray:
- *
- * It wraps `arrow::DoubleArray`.
- */
-struct _GArrowDoubleArray
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_DOUBLE_ARRAY (garrow_double_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowDoubleArray,
+                         garrow_double_array,
+                         GARROW,
+                         DOUBLE_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowDoubleArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_double_array_get_type(void) G_GNUC_CONST;
-
 GArrowDoubleArray *garrow_double_array_new(gint64 length,
                                            GArrowBuffer *data,
                                            GArrowBuffer *null_bitmap,
@@ -849,48 +518,17 @@ gchar *garrow_string_array_get_string(GArrowStringArray 
*array,
                                       gint64 i);
 
 
-#define GARROW_TYPE_DATE32_ARRAY                \
-  (garrow_date32_array_get_type())
-#define GARROW_DATE32_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_DATE32_ARRAY, \
-                              GArrowDate32Array))
-#define GARROW_DATE32_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_DATE32_ARRAY,    \
-                           GArrowDate32ArrayClass))
-#define GARROW_IS_DATE32_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_DATE32_ARRAY))
-#define GARROW_IS_DATE32_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_DATE32_ARRAY))
-#define GARROW_DATE32_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_DATE32_ARRAY,  \
-                             GArrowDate32ArrayClass))
-
-typedef struct _GArrowDate32Array         GArrowDate32Array;
-typedef struct _GArrowDate32ArrayClass    GArrowDate32ArrayClass;
-
-/**
- * GArrowDate32Array:
- *
- * It wraps `arrow::Date32Array`.
- */
-struct _GArrowDate32Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_DATE32_ARRAY (garrow_date32_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowDate32Array,
+                         garrow_date32_array,
+                         GARROW,
+                         DATE32_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowDate32ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_date32_array_get_type(void) G_GNUC_CONST;
-
 GArrowDate32Array *garrow_date32_array_new(gint64 length,
                                            GArrowBuffer *data,
                                            GArrowBuffer *null_bitmap,
@@ -902,48 +540,17 @@ const gint32 
*garrow_date32_array_get_values(GArrowDate32Array *array,
                                              gint64 *length);
 
 
-#define GARROW_TYPE_DATE64_ARRAY                \
-  (garrow_date64_array_get_type())
-#define GARROW_DATE64_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_DATE64_ARRAY, \
-                              GArrowDate64Array))
-#define GARROW_DATE64_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_DATE64_ARRAY,    \
-                           GArrowDate64ArrayClass))
-#define GARROW_IS_DATE64_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_DATE64_ARRAY))
-#define GARROW_IS_DATE64_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_DATE64_ARRAY))
-#define GARROW_DATE64_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_DATE64_ARRAY,  \
-                             GArrowDate64ArrayClass))
-
-typedef struct _GArrowDate64Array         GArrowDate64Array;
-typedef struct _GArrowDate64ArrayClass    GArrowDate64ArrayClass;
-
-/**
- * GArrowDate64Array:
- *
- * It wraps `arrow::Date64Array`.
- */
-struct _GArrowDate64Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_DATE64_ARRAY (garrow_date64_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowDate64Array,
+                         garrow_date64_array,
+                         GARROW,
+                         DATE64_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowDate64ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_date64_array_get_type(void) G_GNUC_CONST;
-
 GArrowDate64Array *garrow_date64_array_new(gint64 length,
                                            GArrowBuffer *data,
                                            GArrowBuffer *null_bitmap,
@@ -955,48 +562,17 @@ const gint64 
*garrow_date64_array_get_values(GArrowDate64Array *array,
                                              gint64 *length);
 
 
-#define GARROW_TYPE_TIMESTAMP_ARRAY             \
-  (garrow_timestamp_array_get_type())
-#define GARROW_TIMESTAMP_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                            \
-                              GARROW_TYPE_TIMESTAMP_ARRAY,      \
-                              GArrowTimestampArray))
-#define GARROW_TIMESTAMP_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_TIMESTAMP_ARRAY, \
-                           GArrowTimestampArrayClass))
-#define GARROW_IS_TIMESTAMP_ARRAY(obj)                          \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_TIMESTAMP_ARRAY))
-#define GARROW_IS_TIMESTAMP_ARRAY_CLASS(klass)                  \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                             \
-                           GARROW_TYPE_TIMESTAMP_ARRAY))
-#define GARROW_TIMESTAMP_ARRAY_GET_CLASS(obj)                   \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                             \
-                             GARROW_TYPE_TIMESTAMP_ARRAY,       \
-                             GArrowTimestampArrayClass))
-
-typedef struct _GArrowTimestampArray         GArrowTimestampArray;
-typedef struct _GArrowTimestampArrayClass    GArrowTimestampArrayClass;
-
-/**
- * GArrowTimestampArray:
- *
- * It wraps `arrow::TimestampArray`.
- */
-struct _GArrowTimestampArray
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_TIMESTAMP_ARRAY (garrow_timestamp_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowTimestampArray,
+                         garrow_timestamp_array,
+                         GARROW,
+                         TIMESTAMP_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowTimestampArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_timestamp_array_get_type(void) G_GNUC_CONST;
-
 GArrowTimestampArray *garrow_timestamp_array_new(GArrowTimestampDataType 
*data_type,
                                                  gint64 length,
                                                  GArrowBuffer *data,
@@ -1009,48 +585,17 @@ const gint64 
*garrow_timestamp_array_get_values(GArrowTimestampArray *array,
                                                 gint64 *length);
 
 
-#define GARROW_TYPE_TIME32_ARRAY                \
-  (garrow_time32_array_get_type())
-#define GARROW_TIME32_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_TIME32_ARRAY, \
-                              GArrowTime32Array))
-#define GARROW_TIME32_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_TIME32_ARRAY,    \
-                           GArrowTime32ArrayClass))
-#define GARROW_IS_TIME32_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_TIME32_ARRAY))
-#define GARROW_IS_TIME32_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_TIME32_ARRAY))
-#define GARROW_TIME32_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_TIME32_ARRAY,  \
-                             GArrowTime32ArrayClass))
-
-typedef struct _GArrowTime32Array         GArrowTime32Array;
-typedef struct _GArrowTime32ArrayClass    GArrowTime32ArrayClass;
-
-/**
- * GArrowTime32Array:
- *
- * It wraps `arrow::Time32Array`.
- */
-struct _GArrowTime32Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_TIME32_ARRAY (garrow_time32_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowTime32Array,
+                         garrow_time32_array,
+                         GARROW,
+                         TIME32_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowTime32ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_time32_array_get_type(void) G_GNUC_CONST;
-
 GArrowTime32Array *garrow_time32_array_new(GArrowTime32DataType *data_type,
                                            gint64 length,
                                            GArrowBuffer *data,
@@ -1063,48 +608,17 @@ const gint32 
*garrow_time32_array_get_values(GArrowTime32Array *array,
                                              gint64 *length);
 
 
-#define GARROW_TYPE_TIME64_ARRAY                \
-  (garrow_time64_array_get_type())
-#define GARROW_TIME64_ARRAY(obj)                        \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),                    \
-                              GARROW_TYPE_TIME64_ARRAY, \
-                              GArrowTime64Array))
-#define GARROW_TIME64_ARRAY_CLASS(klass)                \
-  (G_TYPE_CHECK_CLASS_CAST((klass),                     \
-                           GARROW_TYPE_TIME64_ARRAY,    \
-                           GArrowTime64ArrayClass))
-#define GARROW_IS_TIME64_ARRAY(obj)                             \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),                            \
-                              GARROW_TYPE_TIME64_ARRAY))
-#define GARROW_IS_TIME64_ARRAY_CLASS(klass)             \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),                     \
-                           GARROW_TYPE_TIME64_ARRAY))
-#define GARROW_TIME64_ARRAY_GET_CLASS(obj)              \
-  (G_TYPE_INSTANCE_GET_CLASS((obj),                     \
-                             GARROW_TYPE_TIME64_ARRAY,  \
-                             GArrowTime64ArrayClass))
-
-typedef struct _GArrowTime64Array         GArrowTime64Array;
-typedef struct _GArrowTime64ArrayClass    GArrowTime64ArrayClass;
-
-/**
- * GArrowTime64Array:
- *
- * It wraps `arrow::Time64Array`.
- */
-struct _GArrowTime64Array
-{
-  /*< private >*/
-  GArrowPrimitiveArray parent_instance;
-};
-
+#define GARROW_TYPE_TIME64_ARRAY (garrow_time64_array_get_type())
+G_DECLARE_DERIVABLE_TYPE(GArrowTime64Array,
+                         garrow_time64_array,
+                         GARROW,
+                         TIME64_ARRAY,
+                         GArrowNumericArray)
 struct _GArrowTime64ArrayClass
 {
-  GArrowPrimitiveArrayClass parent_class;
+  GArrowNumericArrayClass parent_class;
 };
 
-GType garrow_time64_array_get_type(void) G_GNUC_CONST;
-
 GArrowTime64Array *garrow_time64_array_new(GArrowTime64DataType *data_type,
                                            gint64 length,
                                            GArrowBuffer *data,

-- 
To stop receiving notification emails like this one, please contact
u...@apache.org.

Reply via email to