| 39 | } |
| 40 | |
| 41 | static GArrowRecordBatch * |
| 42 | build_record_batch(void) |
| 43 | { |
| 44 | GArrowSchema *schema = build_schema(); |
| 45 | if (!schema) { |
| 46 | return NULL; |
| 47 | } |
| 48 | GError *error = NULL; |
| 49 | GArrowRecordBatchBuilder *builder = garrow_record_batch_builder_new(schema, &error); |
| 50 | g_object_unref(schema); |
| 51 | if (!builder) { |
| 52 | g_print("failed to build record batch builder: %s\n", error->message); |
| 53 | g_error_free(error); |
| 54 | return NULL; |
| 55 | } |
| 56 | |
| 57 | const gint64 n_records = 3; |
| 58 | GArrowBooleanArrayBuilder *boolean_builder = GARROW_BOOLEAN_ARRAY_BUILDER( |
| 59 | garrow_record_batch_builder_get_column_builder(builder, 0)); |
| 60 | gboolean boolean_values[] = {TRUE, TRUE, FALSE}; |
| 61 | gboolean boolean_is_valids[] = {TRUE, FALSE, TRUE}; |
| 62 | if (!garrow_boolean_array_builder_append_values(boolean_builder, |
| 63 | boolean_values, |
| 64 | n_records, |
| 65 | boolean_is_valids, |
| 66 | n_records, |
| 67 | &error)) { |
| 68 | g_print("failed to append boolean values: %s\n", error->message); |
| 69 | g_error_free(error); |
| 70 | g_object_unref(boolean_builder); |
| 71 | g_object_unref(builder); |
| 72 | return NULL; |
| 73 | } |
| 74 | |
| 75 | GArrowInt32ArrayBuilder *int32_builder = GARROW_INT32_ARRAY_BUILDER( |
| 76 | garrow_record_batch_builder_get_column_builder(builder, 1)); |
| 77 | gint32 int32_values[] = {1, 11, 111}; |
| 78 | gint32 int32_is_valids[] = {FALSE, TRUE, TRUE}; |
| 79 | if (!garrow_int32_array_builder_append_values(int32_builder, |
| 80 | int32_values, |
| 81 | n_records, |
| 82 | int32_is_valids, |
| 83 | n_records, |
| 84 | &error)) { |
| 85 | g_print("failed to append int32 values: %s\n", error->message); |
| 86 | g_error_free(error); |
| 87 | g_object_unref(int32_builder); |
| 88 | g_object_unref(builder); |
| 89 | return NULL; |
| 90 | } |
| 91 | |
| 92 | GArrowRecordBatch *record_batch = garrow_record_batch_builder_flush(builder, &error); |
| 93 | if (!record_batch) { |
| 94 | g_print("failed to build record batch: %s\n", error->message); |
| 95 | g_error_free(error); |
| 96 | g_object_unref(builder); |
| 97 | return NULL; |
| 98 | } |