Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/apache/arrow into ARROW-1…
Browse files Browse the repository at this point in the history
…242-upgrade-jackson
  • Loading branch information
Matt Darwin committed Aug 10, 2017
2 parents 06d7745 + 2972c9d commit ee29d65
Show file tree
Hide file tree
Showing 260 changed files with 6,190 additions and 3,109 deletions.
500 changes: 277 additions & 223 deletions c_glib/arrow-glib/array-builder.cpp

Large diffs are not rendered by default.

54 changes: 53 additions & 1 deletion c_glib/arrow-glib/array-builder.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ struct _GArrowArrayBuilderClass

GType garrow_array_builder_get_type (void) G_GNUC_CONST;

GArrowArray *garrow_array_builder_finish (GArrowArrayBuilder *builder);
GArrowArray *garrow_array_builder_finish (GArrowArrayBuilder *builder,
GError **error);


#define GARROW_TYPE_BOOLEAN_ARRAY_BUILDER \
Expand Down Expand Up @@ -119,6 +120,57 @@ gboolean garrow_boolean_array_builder_append_null(GArrowBooleanArrayBuilder *bui
GError **error);


#define GARROW_TYPE_INT_ARRAY_BUILDER \
(garrow_int_array_builder_get_type())
#define GARROW_INT_ARRAY_BUILDER(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj), \
GARROW_TYPE_INT_ARRAY_BUILDER, \
GArrowIntArrayBuilder))
#define GARROW_INT_ARRAY_BUILDER_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass), \
GARROW_TYPE_INT_ARRAY_BUILDER, \
GArrowIntArrayBuilderClass))
#define GARROW_IS_INT_ARRAY_BUILDER(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), \
GARROW_TYPE_INT_ARRAY_BUILDER))
#define GARROW_IS_INT_ARRAY_BUILDER_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), \
GARROW_TYPE_INT_ARRAY_BUILDER))
#define GARROW_INT_ARRAY_BUILDER_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), \
GARROW_TYPE_INT_ARRAY_BUILDER, \
GArrowIntArrayBuilderClass))

typedef struct _GArrowIntArrayBuilder GArrowIntArrayBuilder;
typedef struct _GArrowIntArrayBuilderClass GArrowIntArrayBuilderClass;

/**
* GArrowIntArrayBuilder:
*
* It wraps `arrow::AdaptiveIntBuilder`.
*/
struct _GArrowIntArrayBuilder
{
/*< private >*/
GArrowArrayBuilder parent_instance;
};

struct _GArrowIntArrayBuilderClass
{
GArrowArrayBuilderClass parent_class;
};

GType garrow_int_array_builder_get_type(void) G_GNUC_CONST;

GArrowIntArrayBuilder *garrow_int_array_builder_new(void);

gboolean garrow_int_array_builder_append(GArrowIntArrayBuilder *builder,
gint64 value,
GError **error);
gboolean garrow_int_array_builder_append_null(GArrowIntArrayBuilder *builder,
GError **error);


#define GARROW_TYPE_INT8_ARRAY_BUILDER \
(garrow_int8_array_builder_get_type())
#define GARROW_INT8_ARRAY_BUILDER(obj) \
Expand Down
3 changes: 2 additions & 1 deletion c_glib/arrow-glib/array-builder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@
#include <arrow-glib/array.hpp>
#include <arrow-glib/array-builder.h>

GArrowArrayBuilder *garrow_array_builder_new_raw(arrow::ArrayBuilder *arrow_builder);
GArrowArrayBuilder *garrow_array_builder_new_raw(arrow::ArrayBuilder *arrow_builder,
GType type=G_TYPE_INVALID);
arrow::ArrayBuilder *garrow_array_builder_get_raw(GArrowArrayBuilder *builder);
24 changes: 24 additions & 0 deletions c_glib/arrow-glib/array.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -557,6 +557,30 @@ garrow_boolean_array_get_value(GArrowBooleanArray *array,
return static_cast<arrow::BooleanArray *>(arrow_array.get())->Value(i);
}

/**
* garrow_boolean_array_get_values:
* @array: A #GArrowBooleanArray.
* @length: (out): The number of values.
*
* Returns: (array length=length): The raw boolean values.
*
* It should be freed with g_free() when no longer needed.
*/
gboolean *
garrow_boolean_array_get_values(GArrowBooleanArray *array,
gint64 *length)
{
auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
auto arrow_boolean_array =
std::static_pointer_cast<arrow::BooleanArray>(arrow_array);
*length = arrow_boolean_array->length();
auto values = static_cast<gboolean *>(g_new(gboolean, *length));
for (gint64 i = 0; i < *length; ++i) {
values[i] = arrow_boolean_array->Value(i);
}
return values;
}


G_DEFINE_TYPE(GArrowInt8Array, \
garrow_int8_array, \
Expand Down
2 changes: 2 additions & 0 deletions c_glib/arrow-glib/array.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ GArrowBooleanArray *garrow_boolean_array_new(gint64 length,

gboolean garrow_boolean_array_get_value (GArrowBooleanArray *array,
gint64 i);
gboolean *garrow_boolean_array_get_values(GArrowBooleanArray *array,
gint64 *length);


#define GARROW_TYPE_INT8_ARRAY \
Expand Down
1 change: 1 addition & 0 deletions c_glib/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ else
ARROW_LIB_DIR="${GARROW_ARROW_CPP_BUILD_DIR}/${GARROW_ARROW_CPP_BUILD_TYPE}"

ARROW_CFLAGS="-I${ARROW_INCLUDE_DIR}"

ARROW_LIBS="-L${ARROW_LIB_DIR} -larrow"

AC_SUBST(ARROW_LIB_DIR)
Expand Down
8 changes: 7 additions & 1 deletion c_glib/example/build.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,13 @@ main(int argc, char **argv)
g_object_unref(builder);
return EXIT_FAILURE;
}
array = garrow_array_builder_finish(GARROW_ARRAY_BUILDER(builder));
array = garrow_array_builder_finish(GARROW_ARRAY_BUILDER(builder), &error);
if (!array) {
g_print("failed to finish: %s\n", error->message);
g_error_free(error);
g_object_unref(builder);
return EXIT_FAILURE;
}
g_object_unref(builder);
}

Expand Down
60 changes: 50 additions & 10 deletions c_glib/example/go/write-batch.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,79 +29,119 @@ func BuildUInt8Array() *arrow.Array {
for _, value := range []uint8{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildUInt16Array() *arrow.Array {
builder := arrow.NewUInt16ArrayBuilder()
for _, value := range []uint16{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildUInt32Array() *arrow.Array {
builder := arrow.NewUInt32ArrayBuilder()
for _, value := range []uint32{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildUInt64Array() *arrow.Array {
builder := arrow.NewUInt64ArrayBuilder()
for _, value := range []uint64{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt8Array() *arrow.Array {
builder := arrow.NewInt8ArrayBuilder()
for _, value := range []int8{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt16Array() *arrow.Array {
builder := arrow.NewInt16ArrayBuilder()
for _, value := range []int16{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt32Array() *arrow.Array {
builder := arrow.NewInt32ArrayBuilder()
for _, value := range []int32{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt64Array() *arrow.Array {
builder := arrow.NewInt64ArrayBuilder()
for _, value := range []int64{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildFloatArray() *arrow.Array {
builder := arrow.NewFloatArrayBuilder()
for _, value := range []float32{1.1, -2.2, 4.4, -8.8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildDoubleArray() *arrow.Array {
builder := arrow.NewDoubleArrayBuilder()
for _, value := range []float64{1.1, -2.2, 4.4, -8.8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func main() {
Expand Down
60 changes: 50 additions & 10 deletions c_glib/example/go/write-stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,79 +29,119 @@ func BuildUInt8Array() *arrow.Array {
for _, value := range []uint8{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildUInt16Array() *arrow.Array {
builder := arrow.NewUInt16ArrayBuilder()
for _, value := range []uint16{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildUInt32Array() *arrow.Array {
builder := arrow.NewUInt32ArrayBuilder()
for _, value := range []uint32{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildUInt64Array() *arrow.Array {
builder := arrow.NewUInt64ArrayBuilder()
for _, value := range []uint64{1, 2, 4, 8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt8Array() *arrow.Array {
builder := arrow.NewInt8ArrayBuilder()
for _, value := range []int8{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt16Array() *arrow.Array {
builder := arrow.NewInt16ArrayBuilder()
for _, value := range []int16{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt32Array() *arrow.Array {
builder := arrow.NewInt32ArrayBuilder()
for _, value := range []int32{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildInt64Array() *arrow.Array {
builder := arrow.NewInt64ArrayBuilder()
for _, value := range []int64{1, -2, 4, -8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildFloatArray() *arrow.Array {
builder := arrow.NewFloatArrayBuilder()
for _, value := range []float32{1.1, -2.2, 4.4, -8.8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func BuildDoubleArray() *arrow.Array {
builder := arrow.NewDoubleArrayBuilder()
for _, value := range []float64{1.1, -2.2, 4.4, -8.8} {
builder.Append(value)
}
return builder.Finish()
array, err := builder.Finish()
if err != nil {
log.Fatalf("Failed to build array: %v", err)
}
return array
}

func main() {
Expand Down
Loading

0 comments on commit ee29d65

Please sign in to comment.