Skip to content

Commit 9b51f46

Browse files
author
Matt Darwin
committed
Merge branch 'master' into upgrade-libs
2 parents 79550b1 + 284a4ce commit 9b51f46

File tree

245 files changed

+5914
-3020
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

245 files changed

+5914
-3020
lines changed

c_glib/arrow-glib/array-builder.cpp

Lines changed: 277 additions & 223 deletions
Large diffs are not rendered by default.

c_glib/arrow-glib/array-builder.h

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ struct _GArrowArrayBuilderClass
6565

6666
GType garrow_array_builder_get_type (void) G_GNUC_CONST;
6767

68-
GArrowArray *garrow_array_builder_finish (GArrowArrayBuilder *builder);
68+
GArrowArray *garrow_array_builder_finish (GArrowArrayBuilder *builder,
69+
GError **error);
6970

7071

7172
#define GARROW_TYPE_BOOLEAN_ARRAY_BUILDER \
@@ -119,6 +120,57 @@ gboolean garrow_boolean_array_builder_append_null(GArrowBooleanArrayBuilder *bui
119120
GError **error);
120121

121122

123+
#define GARROW_TYPE_INT_ARRAY_BUILDER \
124+
(garrow_int_array_builder_get_type())
125+
#define GARROW_INT_ARRAY_BUILDER(obj) \
126+
(G_TYPE_CHECK_INSTANCE_CAST((obj), \
127+
GARROW_TYPE_INT_ARRAY_BUILDER, \
128+
GArrowIntArrayBuilder))
129+
#define GARROW_INT_ARRAY_BUILDER_CLASS(klass) \
130+
(G_TYPE_CHECK_CLASS_CAST((klass), \
131+
GARROW_TYPE_INT_ARRAY_BUILDER, \
132+
GArrowIntArrayBuilderClass))
133+
#define GARROW_IS_INT_ARRAY_BUILDER(obj) \
134+
(G_TYPE_CHECK_INSTANCE_TYPE((obj), \
135+
GARROW_TYPE_INT_ARRAY_BUILDER))
136+
#define GARROW_IS_INT_ARRAY_BUILDER_CLASS(klass) \
137+
(G_TYPE_CHECK_CLASS_TYPE((klass), \
138+
GARROW_TYPE_INT_ARRAY_BUILDER))
139+
#define GARROW_INT_ARRAY_BUILDER_GET_CLASS(obj) \
140+
(G_TYPE_INSTANCE_GET_CLASS((obj), \
141+
GARROW_TYPE_INT_ARRAY_BUILDER, \
142+
GArrowIntArrayBuilderClass))
143+
144+
typedef struct _GArrowIntArrayBuilder GArrowIntArrayBuilder;
145+
typedef struct _GArrowIntArrayBuilderClass GArrowIntArrayBuilderClass;
146+
147+
/**
148+
* GArrowIntArrayBuilder:
149+
*
150+
* It wraps `arrow::AdaptiveIntBuilder`.
151+
*/
152+
struct _GArrowIntArrayBuilder
153+
{
154+
/*< private >*/
155+
GArrowArrayBuilder parent_instance;
156+
};
157+
158+
struct _GArrowIntArrayBuilderClass
159+
{
160+
GArrowArrayBuilderClass parent_class;
161+
};
162+
163+
GType garrow_int_array_builder_get_type(void) G_GNUC_CONST;
164+
165+
GArrowIntArrayBuilder *garrow_int_array_builder_new(void);
166+
167+
gboolean garrow_int_array_builder_append(GArrowIntArrayBuilder *builder,
168+
gint64 value,
169+
GError **error);
170+
gboolean garrow_int_array_builder_append_null(GArrowIntArrayBuilder *builder,
171+
GError **error);
172+
173+
122174
#define GARROW_TYPE_INT8_ARRAY_BUILDER \
123175
(garrow_int8_array_builder_get_type())
124176
#define GARROW_INT8_ARRAY_BUILDER(obj) \

c_glib/arrow-glib/array-builder.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,6 @@
2222
#include <arrow-glib/array.hpp>
2323
#include <arrow-glib/array-builder.h>
2424

25-
GArrowArrayBuilder *garrow_array_builder_new_raw(arrow::ArrayBuilder *arrow_builder);
25+
GArrowArrayBuilder *garrow_array_builder_new_raw(arrow::ArrayBuilder *arrow_builder,
26+
GType type=G_TYPE_INVALID);
2627
arrow::ArrayBuilder *garrow_array_builder_get_raw(GArrowArrayBuilder *builder);

c_glib/arrow-glib/array.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,30 @@ garrow_boolean_array_get_value(GArrowBooleanArray *array,
557557
return static_cast<arrow::BooleanArray *>(arrow_array.get())->Value(i);
558558
}
559559

560+
/**
561+
* garrow_boolean_array_get_values:
562+
* @array: A #GArrowBooleanArray.
563+
* @length: (out): The number of values.
564+
*
565+
* Returns: (array length=length): The raw boolean values.
566+
*
567+
* It should be freed with g_free() when no longer needed.
568+
*/
569+
gboolean *
570+
garrow_boolean_array_get_values(GArrowBooleanArray *array,
571+
gint64 *length)
572+
{
573+
auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
574+
auto arrow_boolean_array =
575+
std::static_pointer_cast<arrow::BooleanArray>(arrow_array);
576+
*length = arrow_boolean_array->length();
577+
auto values = static_cast<gboolean *>(g_new(gboolean, *length));
578+
for (gint64 i = 0; i < *length; ++i) {
579+
values[i] = arrow_boolean_array->Value(i);
580+
}
581+
return values;
582+
}
583+
560584

561585
G_DEFINE_TYPE(GArrowInt8Array, \
562586
garrow_int8_array, \

c_glib/arrow-glib/array.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,8 @@ GArrowBooleanArray *garrow_boolean_array_new(gint64 length,
221221

222222
gboolean garrow_boolean_array_get_value (GArrowBooleanArray *array,
223223
gint64 i);
224+
gboolean *garrow_boolean_array_get_values(GArrowBooleanArray *array,
225+
gint64 *length);
224226

225227

226228
#define GARROW_TYPE_INT8_ARRAY \

c_glib/configure.ac

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ else
7979
ARROW_LIB_DIR="${GARROW_ARROW_CPP_BUILD_DIR}/${GARROW_ARROW_CPP_BUILD_TYPE}"
8080

8181
ARROW_CFLAGS="-I${ARROW_INCLUDE_DIR}"
82+
8283
ARROW_LIBS="-L${ARROW_LIB_DIR} -larrow"
8384

8485
AC_SUBST(ARROW_LIB_DIR)

c_glib/example/build.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,13 @@ main(int argc, char **argv)
4747
g_object_unref(builder);
4848
return EXIT_FAILURE;
4949
}
50-
array = garrow_array_builder_finish(GARROW_ARRAY_BUILDER(builder));
50+
array = garrow_array_builder_finish(GARROW_ARRAY_BUILDER(builder), &error);
51+
if (!array) {
52+
g_print("failed to finish: %s\n", error->message);
53+
g_error_free(error);
54+
g_object_unref(builder);
55+
return EXIT_FAILURE;
56+
}
5157
g_object_unref(builder);
5258
}
5359

c_glib/example/go/write-batch.go

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,79 +29,119 @@ func BuildUInt8Array() *arrow.Array {
2929
for _, value := range []uint8{1, 2, 4, 8} {
3030
builder.Append(value)
3131
}
32-
return builder.Finish()
32+
array, err := builder.Finish()
33+
if err != nil {
34+
log.Fatalf("Failed to build array: %v", err)
35+
}
36+
return array
3337
}
3438

3539
func BuildUInt16Array() *arrow.Array {
3640
builder := arrow.NewUInt16ArrayBuilder()
3741
for _, value := range []uint16{1, 2, 4, 8} {
3842
builder.Append(value)
3943
}
40-
return builder.Finish()
44+
array, err := builder.Finish()
45+
if err != nil {
46+
log.Fatalf("Failed to build array: %v", err)
47+
}
48+
return array
4149
}
4250

4351
func BuildUInt32Array() *arrow.Array {
4452
builder := arrow.NewUInt32ArrayBuilder()
4553
for _, value := range []uint32{1, 2, 4, 8} {
4654
builder.Append(value)
4755
}
48-
return builder.Finish()
56+
array, err := builder.Finish()
57+
if err != nil {
58+
log.Fatalf("Failed to build array: %v", err)
59+
}
60+
return array
4961
}
5062

5163
func BuildUInt64Array() *arrow.Array {
5264
builder := arrow.NewUInt64ArrayBuilder()
5365
for _, value := range []uint64{1, 2, 4, 8} {
5466
builder.Append(value)
5567
}
56-
return builder.Finish()
68+
array, err := builder.Finish()
69+
if err != nil {
70+
log.Fatalf("Failed to build array: %v", err)
71+
}
72+
return array
5773
}
5874

5975
func BuildInt8Array() *arrow.Array {
6076
builder := arrow.NewInt8ArrayBuilder()
6177
for _, value := range []int8{1, -2, 4, -8} {
6278
builder.Append(value)
6379
}
64-
return builder.Finish()
80+
array, err := builder.Finish()
81+
if err != nil {
82+
log.Fatalf("Failed to build array: %v", err)
83+
}
84+
return array
6585
}
6686

6787
func BuildInt16Array() *arrow.Array {
6888
builder := arrow.NewInt16ArrayBuilder()
6989
for _, value := range []int16{1, -2, 4, -8} {
7090
builder.Append(value)
7191
}
72-
return builder.Finish()
92+
array, err := builder.Finish()
93+
if err != nil {
94+
log.Fatalf("Failed to build array: %v", err)
95+
}
96+
return array
7397
}
7498

7599
func BuildInt32Array() *arrow.Array {
76100
builder := arrow.NewInt32ArrayBuilder()
77101
for _, value := range []int32{1, -2, 4, -8} {
78102
builder.Append(value)
79103
}
80-
return builder.Finish()
104+
array, err := builder.Finish()
105+
if err != nil {
106+
log.Fatalf("Failed to build array: %v", err)
107+
}
108+
return array
81109
}
82110

83111
func BuildInt64Array() *arrow.Array {
84112
builder := arrow.NewInt64ArrayBuilder()
85113
for _, value := range []int64{1, -2, 4, -8} {
86114
builder.Append(value)
87115
}
88-
return builder.Finish()
116+
array, err := builder.Finish()
117+
if err != nil {
118+
log.Fatalf("Failed to build array: %v", err)
119+
}
120+
return array
89121
}
90122

91123
func BuildFloatArray() *arrow.Array {
92124
builder := arrow.NewFloatArrayBuilder()
93125
for _, value := range []float32{1.1, -2.2, 4.4, -8.8} {
94126
builder.Append(value)
95127
}
96-
return builder.Finish()
128+
array, err := builder.Finish()
129+
if err != nil {
130+
log.Fatalf("Failed to build array: %v", err)
131+
}
132+
return array
97133
}
98134

99135
func BuildDoubleArray() *arrow.Array {
100136
builder := arrow.NewDoubleArrayBuilder()
101137
for _, value := range []float64{1.1, -2.2, 4.4, -8.8} {
102138
builder.Append(value)
103139
}
104-
return builder.Finish()
140+
array, err := builder.Finish()
141+
if err != nil {
142+
log.Fatalf("Failed to build array: %v", err)
143+
}
144+
return array
105145
}
106146

107147
func main() {

c_glib/example/go/write-stream.go

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,79 +29,119 @@ func BuildUInt8Array() *arrow.Array {
2929
for _, value := range []uint8{1, 2, 4, 8} {
3030
builder.Append(value)
3131
}
32-
return builder.Finish()
32+
array, err := builder.Finish()
33+
if err != nil {
34+
log.Fatalf("Failed to build array: %v", err)
35+
}
36+
return array
3337
}
3438

3539
func BuildUInt16Array() *arrow.Array {
3640
builder := arrow.NewUInt16ArrayBuilder()
3741
for _, value := range []uint16{1, 2, 4, 8} {
3842
builder.Append(value)
3943
}
40-
return builder.Finish()
44+
array, err := builder.Finish()
45+
if err != nil {
46+
log.Fatalf("Failed to build array: %v", err)
47+
}
48+
return array
4149
}
4250

4351
func BuildUInt32Array() *arrow.Array {
4452
builder := arrow.NewUInt32ArrayBuilder()
4553
for _, value := range []uint32{1, 2, 4, 8} {
4654
builder.Append(value)
4755
}
48-
return builder.Finish()
56+
array, err := builder.Finish()
57+
if err != nil {
58+
log.Fatalf("Failed to build array: %v", err)
59+
}
60+
return array
4961
}
5062

5163
func BuildUInt64Array() *arrow.Array {
5264
builder := arrow.NewUInt64ArrayBuilder()
5365
for _, value := range []uint64{1, 2, 4, 8} {
5466
builder.Append(value)
5567
}
56-
return builder.Finish()
68+
array, err := builder.Finish()
69+
if err != nil {
70+
log.Fatalf("Failed to build array: %v", err)
71+
}
72+
return array
5773
}
5874

5975
func BuildInt8Array() *arrow.Array {
6076
builder := arrow.NewInt8ArrayBuilder()
6177
for _, value := range []int8{1, -2, 4, -8} {
6278
builder.Append(value)
6379
}
64-
return builder.Finish()
80+
array, err := builder.Finish()
81+
if err != nil {
82+
log.Fatalf("Failed to build array: %v", err)
83+
}
84+
return array
6585
}
6686

6787
func BuildInt16Array() *arrow.Array {
6888
builder := arrow.NewInt16ArrayBuilder()
6989
for _, value := range []int16{1, -2, 4, -8} {
7090
builder.Append(value)
7191
}
72-
return builder.Finish()
92+
array, err := builder.Finish()
93+
if err != nil {
94+
log.Fatalf("Failed to build array: %v", err)
95+
}
96+
return array
7397
}
7498

7599
func BuildInt32Array() *arrow.Array {
76100
builder := arrow.NewInt32ArrayBuilder()
77101
for _, value := range []int32{1, -2, 4, -8} {
78102
builder.Append(value)
79103
}
80-
return builder.Finish()
104+
array, err := builder.Finish()
105+
if err != nil {
106+
log.Fatalf("Failed to build array: %v", err)
107+
}
108+
return array
81109
}
82110

83111
func BuildInt64Array() *arrow.Array {
84112
builder := arrow.NewInt64ArrayBuilder()
85113
for _, value := range []int64{1, -2, 4, -8} {
86114
builder.Append(value)
87115
}
88-
return builder.Finish()
116+
array, err := builder.Finish()
117+
if err != nil {
118+
log.Fatalf("Failed to build array: %v", err)
119+
}
120+
return array
89121
}
90122

91123
func BuildFloatArray() *arrow.Array {
92124
builder := arrow.NewFloatArrayBuilder()
93125
for _, value := range []float32{1.1, -2.2, 4.4, -8.8} {
94126
builder.Append(value)
95127
}
96-
return builder.Finish()
128+
array, err := builder.Finish()
129+
if err != nil {
130+
log.Fatalf("Failed to build array: %v", err)
131+
}
132+
return array
97133
}
98134

99135
func BuildDoubleArray() *arrow.Array {
100136
builder := arrow.NewDoubleArrayBuilder()
101137
for _, value := range []float64{1.1, -2.2, 4.4, -8.8} {
102138
builder.Append(value)
103139
}
104-
return builder.Finish()
140+
array, err := builder.Finish()
141+
if err != nil {
142+
log.Fatalf("Failed to build array: %v", err)
143+
}
144+
return array
105145
}
106146

107147
func main() {

0 commit comments

Comments
 (0)