You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by jo...@apache.org on 2021/04/18 14:40:22 UTC

[arrow-rs] 12/14: Removed c_glib.

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

jorgecarleitao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git

commit 32a88cfe5b8d275612106571514eb50486d85e5c
Author: Jorge C. Leitao <jo...@gmail.com>
AuthorDate: Sun Apr 18 14:23:16 2021 +0000

    Removed c_glib.
---
 c_glib/.gitignore                                  |   70 -
 c_glib/Brewfile                                    |   22 -
 c_glib/Gemfile                                     |   23 -
 c_glib/README.md                                   |  315 -
 c_glib/arrow-cuda-glib/arrow-cuda-glib.h           |   24 -
 c_glib/arrow-cuda-glib/arrow-cuda-glib.hpp         |   24 -
 c_glib/arrow-cuda-glib/cuda.cpp                    |  944 ---
 c_glib/arrow-cuda-glib/cuda.h                      |  183 -
 c_glib/arrow-cuda-glib/cuda.hpp                    |   54 -
 c_glib/arrow-cuda-glib/meson.build                 |   81 -
 c_glib/arrow-dataset-glib/arrow-dataset-glib.h     |   26 -
 c_glib/arrow-dataset-glib/arrow-dataset-glib.hpp   |   26 -
 c_glib/arrow-dataset-glib/file-format.cpp          |  265 -
 c_glib/arrow-dataset-glib/file-format.h            |   92 -
 c_glib/arrow-dataset-glib/file-format.hpp          |   30 -
 c_glib/arrow-dataset-glib/fragment.cpp             |  184 -
 c_glib/arrow-dataset-glib/fragment.h               |   58 -
 c_glib/arrow-dataset-glib/fragment.hpp             |   33 -
 c_glib/arrow-dataset-glib/meson.build              |   82 -
 c_glib/arrow-dataset-glib/scanner.cpp              |  522 --
 c_glib/arrow-dataset-glib/scanner.h                |   88 -
 c_glib/arrow-dataset-glib/scanner.hpp              |   35 -
 c_glib/arrow-glib/array-builder.cpp                | 6178 --------------------
 c_glib/arrow-glib/array-builder.h                  | 1387 -----
 c_glib/arrow-glib/array-builder.hpp                |   27 -
 c_glib/arrow-glib/array.h                          |   23 -
 c_glib/arrow-glib/array.hpp                        |   23 -
 c_glib/arrow-glib/arrow-glib.h                     |   56 -
 c_glib/arrow-glib/arrow-glib.hpp                   |   51 -
 c_glib/arrow-glib/basic-array.cpp                  | 3011 ----------
 c_glib/arrow-glib/basic-array.h                    |  661 ---
 c_glib/arrow-glib/basic-array.hpp                  |   47 -
 c_glib/arrow-glib/basic-data-type.cpp              | 1984 -------
 c_glib/arrow-glib/basic-data-type.h                |  586 --
 c_glib/arrow-glib/basic-data-type.hpp              |   67 -
 c_glib/arrow-glib/buffer.cpp                       |  695 ---
 c_glib/arrow-glib/buffer.h                         |  106 -
 c_glib/arrow-glib/buffer.hpp                       |   43 -
 c_glib/arrow-glib/chunked-array.cpp                |  370 --
 c_glib/arrow-glib/chunked-array.h                  |   66 -
 c_glib/arrow-glib/chunked-array.hpp                |   27 -
 c_glib/arrow-glib/codec.cpp                        |  263 -
 c_glib/arrow-glib/codec.h                          |   74 -
 c_glib/arrow-glib/codec.hpp                        |   34 -
 c_glib/arrow-glib/composite-array.cpp              | 1706 ------
 c_glib/arrow-glib/composite-array.h                |  240 -
 c_glib/arrow-glib/composite-data-type.cpp          |  720 ---
 c_glib/arrow-glib/composite-data-type.h            |  199 -
 c_glib/arrow-glib/compute.cpp                      | 3119 ----------
 c_glib/arrow-glib/compute.h                        |  530 --
 c_glib/arrow-glib/compute.hpp                      |   70 -
 c_glib/arrow-glib/data-type.h                      |   23 -
 c_glib/arrow-glib/data-type.hpp                    |   23 -
 c_glib/arrow-glib/datum.cpp                        |  683 ---
 c_glib/arrow-glib/datum.h                          |  121 -
 c_glib/arrow-glib/datum.hpp                        |   42 -
 c_glib/arrow-glib/decimal.cpp                      | 1115 ----
 c_glib/arrow-glib/decimal.h                        |  154 -
 c_glib/arrow-glib/decimal.hpp                      |   36 -
 c_glib/arrow-glib/enums.c.template                 |   52 -
 c_glib/arrow-glib/enums.h.template                 |   41 -
 c_glib/arrow-glib/error.cpp                        |  159 -
 c_glib/arrow-glib/error.h                          |   69 -
 c_glib/arrow-glib/error.hpp                        |   73 -
 c_glib/arrow-glib/field.cpp                        |  386 --
 c_glib/arrow-glib/field.h                          |   75 -
 c_glib/arrow-glib/field.hpp                        |   28 -
 c_glib/arrow-glib/file-mode.cpp                    |   59 -
 c_glib/arrow-glib/file-mode.h                      |   40 -
 c_glib/arrow-glib/file-mode.hpp                    |   27 -
 c_glib/arrow-glib/file-system.cpp                  | 1450 -----
 c_glib/arrow-glib/file-system.h                    |  283 -
 c_glib/arrow-glib/file-system.hpp                  |   48 -
 c_glib/arrow-glib/file.cpp                         |  120 -
 c_glib/arrow-glib/file.h                           |   43 -
 c_glib/arrow-glib/file.hpp                         |   38 -
 c_glib/arrow-glib/gobject-type.h                   |  116 -
 c_glib/arrow-glib/input-stream.cpp                 | 1238 ----
 c_glib/arrow-glib/input-stream.h                   |  227 -
 c_glib/arrow-glib/input-stream.hpp                 |   50 -
 c_glib/arrow-glib/internal-hash-table.hpp          |   41 -
 c_glib/arrow-glib/internal-index.hpp               |   37 -
 c_glib/arrow-glib/ipc-options.cpp                  |  529 --
 c_glib/arrow-glib/ipc-options.h                    |   66 -
 c_glib/arrow-glib/ipc-options.hpp                  |   32 -
 c_glib/arrow-glib/local-file-system.cpp            |  211 -
 c_glib/arrow-glib/local-file-system.h              |   60 -
 c_glib/arrow-glib/local-file-system.hpp            |   32 -
 c_glib/arrow-glib/meson.build                      |  274 -
 c_glib/arrow-glib/metadata-version.cpp             |   59 -
 c_glib/arrow-glib/metadata-version.h               |   41 -
 c_glib/arrow-glib/metadata-version.hpp             |   27 -
 c_glib/arrow-glib/orc-file-reader.cpp              |  445 --
 c_glib/arrow-glib/orc-file-reader.h                |   76 -
 c_glib/arrow-glib/orc-file-reader.hpp              |   31 -
 c_glib/arrow-glib/output-stream.cpp                |  763 ---
 c_glib/arrow-glib/output-stream.h                  |  227 -
 c_glib/arrow-glib/output-stream.hpp                |   40 -
 c_glib/arrow-glib/readable.cpp                     |  114 -
 c_glib/arrow-glib/readable.h                       |   43 -
 c_glib/arrow-glib/readable.hpp                     |   39 -
 c_glib/arrow-glib/reader.cpp                       | 2187 -------
 c_glib/arrow-glib/reader.h                         |  363 --
 c_glib/arrow-glib/reader.hpp                       |   56 -
 c_glib/arrow-glib/record-batch.cpp                 |  646 --
 c_glib/arrow-glib/record-batch.h                   |  112 -
 c_glib/arrow-glib/record-batch.hpp                 |   33 -
 c_glib/arrow-glib/schema.cpp                       |  440 --
 c_glib/arrow-glib/schema.h                         |   80 -
 c_glib/arrow-glib/schema.hpp                       |   27 -
 c_glib/arrow-glib/table-builder.cpp                |  337 --
 c_glib/arrow-glib/table-builder.h                  |   69 -
 c_glib/arrow-glib/table-builder.hpp                |   27 -
 c_glib/arrow-glib/table.cpp                        |  806 ---
 c_glib/arrow-glib/table.h                          |  138 -
 c_glib/arrow-glib/table.hpp                        |   31 -
 c_glib/arrow-glib/tensor.cpp                       |  464 --
 c_glib/arrow-glib/tensor.h                         |   64 -
 c_glib/arrow-glib/tensor.hpp                       |   29 -
 c_glib/arrow-glib/type.cpp                         |  142 -
 c_glib/arrow-glib/type.h                           |  129 -
 c_glib/arrow-glib/type.hpp                         |   28 -
 c_glib/arrow-glib/version.h.in                     |  411 --
 c_glib/arrow-glib/writable-file.cpp                |   75 -
 c_glib/arrow-glib/writable-file.h                  |   39 -
 c_glib/arrow-glib/writable-file.hpp                |   39 -
 c_glib/arrow-glib/writable.cpp                     |   92 -
 c_glib/arrow-glib/writable.h                       |   40 -
 c_glib/arrow-glib/writable.hpp                     |   39 -
 c_glib/arrow-glib/writer.cpp                       |  334 --
 c_glib/arrow-glib/writer.h                         |  192 -
 c_glib/arrow-glib/writer.hpp                       |   33 -
 .../arrow-dataset-glib/arrow-dataset-glib-docs.xml |   66 -
 c_glib/doc/arrow-dataset-glib/entities.xml.in      |   24 -
 c_glib/doc/arrow-dataset-glib/meson.build          |   83 -
 c_glib/doc/arrow-glib/arrow-glib-docs.xml          |  259 -
 c_glib/doc/arrow-glib/entities.xml.in              |   24 -
 c_glib/doc/arrow-glib/meson.build                  |   93 -
 c_glib/doc/gandiva-glib/entities.xml.in            |   24 -
 c_glib/doc/gandiva-glib/gandiva-glib-docs.xml      |  128 -
 c_glib/doc/gandiva-glib/meson.build                |   83 -
 c_glib/doc/parquet-glib/entities.xml.in            |   24 -
 c_glib/doc/parquet-glib/meson.build                |   83 -
 c_glib/doc/parquet-glib/parquet-glib-docs.xml      |   93 -
 c_glib/doc/plasma-glib/entities.xml.in             |   24 -
 c_glib/doc/plasma-glib/meson.build                 |   86 -
 c_glib/doc/plasma-glib/plasma-glib-docs.xml        |   68 -
 c_glib/example/README.md                           |   48 -
 c_glib/example/build.c                             |   77 -
 c_glib/example/extension-type.c                    |  381 --
 c_glib/example/lua/README.md                       |   50 -
 c_glib/example/lua/meson.build                     |   28 -
 c_glib/example/lua/read-batch.lua                  |   44 -
 c_glib/example/lua/read-stream.lua                 |   51 -
 c_glib/example/lua/write-batch.lua                 |   74 -
 c_glib/example/lua/write-stream.lua                |   74 -
 c_glib/example/meson.build                         |   36 -
 c_glib/example/read-batch.c                        |  145 -
 c_glib/example/read-stream.c                       |  144 -
 c_glib/gandiva-glib/enums.c.template               |   52 -
 c_glib/gandiva-glib/enums.h.template               |   41 -
 c_glib/gandiva-glib/expression.cpp                 |  294 -
 c_glib/gandiva-glib/expression.h                   |   63 -
 c_glib/gandiva-glib/expression.hpp                 |   39 -
 c_glib/gandiva-glib/filter.cpp                     |  257 -
 c_glib/gandiva-glib/filter.h                       |   49 -
 c_glib/gandiva-glib/filter.hpp                     |   33 -
 c_glib/gandiva-glib/function-registry.cpp          |  116 -
 c_glib/gandiva-glib/function-registry.h            |   44 -
 c_glib/gandiva-glib/function-signature.cpp         |  243 -
 c_glib/gandiva-glib/function-signature.h           |   48 -
 c_glib/gandiva-glib/function-signature.hpp         |   27 -
 c_glib/gandiva-glib/gandiva-glib.h                 |   31 -
 c_glib/gandiva-glib/gandiva-glib.hpp               |   28 -
 c_glib/gandiva-glib/meson.build                    |  120 -
 c_glib/gandiva-glib/native-function.cpp            |  282 -
 c_glib/gandiva-glib/native-function.h              |   65 -
 c_glib/gandiva-glib/native-function.hpp            |   36 -
 c_glib/gandiva-glib/node.cpp                       | 1688 ------
 c_glib/gandiva-glib/node.h                         |  395 --
 c_glib/gandiva-glib/node.hpp                       |   49 -
 c_glib/gandiva-glib/projector.cpp                  |  391 --
 c_glib/gandiva-glib/projector.h                    |   75 -
 c_glib/gandiva-glib/projector.hpp                  |   39 -
 c_glib/gandiva-glib/selection-vector.cpp           |  323 -
 c_glib/gandiva-glib/selection-vector.h             |  128 -
 c_glib/gandiva-glib/selection-vector.hpp           |   32 -
 c_glib/gandiva-glib/version.h.in                   |  218 -
 c_glib/meson.build                                 |  181 -
 c_glib/meson_options.txt                           |   38 -
 c_glib/parquet-glib/arrow-file-reader.cpp          |  386 --
 c_glib/parquet-glib/arrow-file-reader.h            |   74 -
 c_glib/parquet-glib/arrow-file-reader.hpp          |   29 -
 c_glib/parquet-glib/arrow-file-writer.cpp          |  579 --
 c_glib/parquet-glib/arrow-file-writer.h            |  125 -
 c_glib/parquet-glib/arrow-file-writer.hpp          |   33 -
 c_glib/parquet-glib/meson.build                    |   93 -
 c_glib/parquet-glib/parquet-glib.h                 |   25 -
 c_glib/parquet-glib/parquet-glib.hpp               |   25 -
 c_glib/parquet-glib/version.h.in                   |  218 -
 c_glib/plasma-glib/client.cpp                      |  608 --
 c_glib/plasma-glib/client.h                        |   98 -
 c_glib/plasma-glib/client.hpp                      |   29 -
 c_glib/plasma-glib/meson.build                     |  107 -
 c_glib/plasma-glib/object.cpp                      |  590 --
 c_glib/plasma-glib/object.h                        |   89 -
 c_glib/plasma-glib/object.hpp                      |   47 -
 c_glib/plasma-glib/plasma-glib.h                   |   23 -
 c_glib/plasma-glib/plasma-glib.hpp                 |   25 -
 c_glib/test/dataset/test-file-format.rb            |   34 -
 c_glib/test/dataset/test-in-memory-scan-task.rb    |   59 -
 c_glib/test/dataset/test-scan-options.rb           |   47 -
 c_glib/test/file-system-tests.rb                   |  383 --
 c_glib/test/fixture/TestOrcFile.test1.orc          |  Bin 1711 -> 0 bytes
 c_glib/test/gandiva/test-binary-literal-node.rb    |   47 -
 c_glib/test/gandiva/test-boolean-literal-node.rb   |   32 -
 c_glib/test/gandiva/test-boolean-node.rb           |   38 -
 c_glib/test/gandiva/test-condition.rb              |   35 -
 c_glib/test/gandiva/test-double-literal-node.rb    |   32 -
 c_glib/test/gandiva/test-expression.rb             |   46 -
 c_glib/test/gandiva/test-field-node.rb             |   37 -
 c_glib/test/gandiva/test-filter.rb                 |   51 -
 c_glib/test/gandiva/test-float-literal-node.rb     |   32 -
 c_glib/test/gandiva/test-function-node.rb          |   43 -
 c_glib/test/gandiva/test-function-registry.rb      |   45 -
 c_glib/test/gandiva/test-function-signature.rb     |  101 -
 c_glib/test/gandiva/test-if-node.rb                |   49 -
 c_glib/test/gandiva/test-int16-literal-node.rb     |   32 -
 c_glib/test/gandiva/test-int32-literal-node.rb     |   32 -
 c_glib/test/gandiva/test-int64-literal-node.rb     |   32 -
 c_glib/test/gandiva/test-int8-literal-node.rb      |   32 -
 c_glib/test/gandiva/test-native-function.rb        |  132 -
 c_glib/test/gandiva/test-null-literal-node.rb      |   38 -
 c_glib/test/gandiva/test-projector.rb              |   63 -
 c_glib/test/gandiva/test-selectable-projector.rb   |   74 -
 c_glib/test/gandiva/test-selection-vector.rb       |   42 -
 c_glib/test/gandiva/test-string-literal-node.rb    |   32 -
 c_glib/test/gandiva/test-uint16-literal-node.rb    |   32 -
 c_glib/test/gandiva/test-uint32-literal-node.rb    |   32 -
 c_glib/test/gandiva/test-uint64-literal-node.rb    |   32 -
 c_glib/test/gandiva/test-uint8-literal-node.rb     |   32 -
 c_glib/test/helper/buildable.rb                    |  234 -
 c_glib/test/helper/data-type.rb                    |   63 -
 c_glib/test/helper/fixture.rb                      |   24 -
 c_glib/test/helper/omittable.rb                    |   36 -
 c_glib/test/helper/plasma-store.rb                 |   57 -
 c_glib/test/parquet/test-arrow-file-reader.rb      |   65 -
 c_glib/test/parquet/test-arrow-file-writer.rb      |   46 -
 c_glib/test/parquet/test-writer-properties.rb      |  103 -
 c_glib/test/plasma/test-plasma-client-options.rb   |   31 -
 c_glib/test/plasma/test-plasma-client.rb           |   94 -
 c_glib/test/plasma/test-plasma-created-object.rb   |   59 -
 c_glib/test/plasma/test-plasma-referred-object.rb  |   54 -
 c_glib/test/run-test.rb                            |   80 -
 c_glib/test/run-test.sh                            |   59 -
 c_glib/test/test-array-builder.rb                  | 1944 ------
 c_glib/test/test-array-datum.rb                    |   58 -
 c_glib/test/test-array-sort-options.rb             |   31 -
 c_glib/test/test-array.rb                          |  188 -
 c_glib/test/test-binary-array.rb                   |   61 -
 c_glib/test/test-binary-data-type.rb               |   33 -
 c_glib/test/test-boolean-array.rb                  |   81 -
 c_glib/test/test-boolean-data-type.rb              |   33 -
 c_glib/test/test-buffer-input-stream.rb            |  111 -
 c_glib/test/test-buffer-output-stream.rb           |   60 -
 c_glib/test/test-buffer.rb                         |  102 -
 c_glib/test/test-cast.rb                           |  145 -
 c_glib/test/test-chunked-array-datum.rb            |   58 -
 c_glib/test/test-chunked-array.rb                  |  141 -
 c_glib/test/test-codec.rb                          |   33 -
 c_glib/test/test-compare.rb                        |   69 -
 c_glib/test/test-compressed-input-stream.rb        |   45 -
 c_glib/test/test-compressed-output-stream.rb       |   43 -
 c_glib/test/test-count-values.rb                   |   51 -
 c_glib/test/test-count.rb                          |   46 -
 c_glib/test/test-csv-reader.rb                     |  241 -
 c_glib/test/test-cuda.rb                           |  159 -
 c_glib/test/test-date32-array.rb                   |   65 -
 c_glib/test/test-date32-data-type.rb               |   33 -
 c_glib/test/test-date64-array.rb                   |   65 -
 c_glib/test/test-date64-data-type.rb               |   33 -
 c_glib/test/test-decimal128-array.rb               |   37 -
 c_glib/test/test-decimal128-data-type.rb           |   43 -
 c_glib/test/test-decimal128.rb                     |  233 -
 c_glib/test/test-decimal256-array.rb               |   37 -
 c_glib/test/test-decimal256-data-type.rb           |   43 -
 c_glib/test/test-decimal256.rb                     |  220 -
 c_glib/test/test-dense-union-array.rb              |   88 -
 c_glib/test/test-dense-union-data-type.rb          |   64 -
 c_glib/test/test-dictionary-array-builder.rb       |  395 --
 c_glib/test/test-dictionary-array.rb               |   78 -
 c_glib/test/test-dictionary-data-type.rb           |   60 -
 c_glib/test/test-dictionary-encode.rb              |   62 -
 c_glib/test/test-double-array.rb                   |   60 -
 c_glib/test/test-double-data-type.rb               |   33 -
 c_glib/test/test-extension-data-type.rb            |  105 -
 c_glib/test/test-feather-file-reader.rb            |   71 -
 c_glib/test/test-field.rb                          |  116 -
 c_glib/test/test-file-info.rb                      |  170 -
 c_glib/test/test-file-output-stream.rb             |   38 -
 c_glib/test/test-file-selector.rb                  |   82 -
 c_glib/test/test-file-writer.rb                    |   85 -
 c_glib/test/test-filter.rb                         |  247 -
 c_glib/test/test-fixed-size-binary-array.rb        |   59 -
 c_glib/test/test-fixed-size-binary-data-type.rb    |   43 -
 c_glib/test/test-float-array.rb                    |   67 -
 c_glib/test/test-float-data-type.rb                |   33 -
 c_glib/test/test-function.rb                       |   64 -
 c_glib/test/test-gio-input-stream.rb               |   72 -
 c_glib/test/test-gio-output-stream.rb              |   79 -
 c_glib/test/test-int-array-builder.rb              |   59 -
 c_glib/test/test-int16-array.rb                    |   60 -
 c_glib/test/test-int16-data-type.rb                |   33 -
 c_glib/test/test-int32-array.rb                    |   58 -
 c_glib/test/test-int32-data-type.rb                |   33 -
 c_glib/test/test-int64-array.rb                    |   58 -
 c_glib/test/test-int64-data-type.rb                |   33 -
 c_glib/test/test-int8-array.rb                     |   65 -
 c_glib/test/test-int8-data-type.rb                 |   40 -
 c_glib/test/test-is-in.rb                          |   96 -
 c_glib/test/test-json-reader.rb                    |   90 -
 c_glib/test/test-large-binary-array.rb             |   61 -
 c_glib/test/test-large-binary-data-type.rb         |   33 -
 c_glib/test/test-large-list-array.rb               |   98 -
 c_glib/test/test-large-list-data-type.rb           |   48 -
 c_glib/test/test-large-string-array.rb             |   46 -
 c_glib/test/test-large-string-data-type.rb         |   33 -
 c_glib/test/test-list-array.rb                     |   97 -
 c_glib/test/test-list-data-type.rb                 |   48 -
 c_glib/test/test-local-file-system.rb              |   57 -
 c_glib/test/test-map-array-builder.rb              |  143 -
 c_glib/test/test-map-array.rb                      |   39 -
 c_glib/test/test-map-data-type.rb                  |   44 -
 c_glib/test/test-memory-mapped-input-stream.rb     |   84 -
 c_glib/test/test-mock-file-system.rb               |   30 -
 c_glib/test/test-mutable-buffer.rb                 |   74 -
 c_glib/test/test-null-array.rb                     |   33 -
 c_glib/test/test-null-data-type.rb                 |   33 -
 c_glib/test/test-numeric-array.rb                  |   26 -
 c_glib/test/test-orc-file-reader.rb                |  238 -
 c_glib/test/test-read-options.rb                   |   61 -
 c_glib/test/test-record-batch-builder.rb           |   86 -
 c_glib/test/test-record-batch-datum.rb             |   58 -
 c_glib/test/test-record-batch-iterator.rb          |   51 -
 c_glib/test/test-record-batch.rb                   |  185 -
 c_glib/test/test-resizable-buffer.rb               |   32 -
 c_glib/test/test-schema.rb                         |  203 -
 c_glib/test/test-slow-file-system.rb               |   43 -
 c_glib/test/test-sort-indices.rb                   |   69 -
 c_glib/test/test-sort-options.rb                   |   59 -
 c_glib/test/test-sparse-union-array.rb             |   86 -
 c_glib/test/test-sparse-union-data-type.rb         |   64 -
 c_glib/test/test-stream-writer.rb                  |   57 -
 c_glib/test/test-string-array.rb                   |   46 -
 c_glib/test/test-string-data-type.rb               |   33 -
 c_glib/test/test-struct-array.rb                   |   88 -
 c_glib/test/test-struct-data-type.rb               |  115 -
 c_glib/test/test-table-batch-reader.rb             |   42 -
 c_glib/test/test-table-datum.rb                    |   58 -
 c_glib/test/test-table.rb                          |  273 -
 c_glib/test/test-take.rb                           |  214 -
 c_glib/test/test-tensor.rb                         |  125 -
 c_glib/test/test-time-data-type.rb                 |   24 -
 c_glib/test/test-time32-array.rb                   |   69 -
 c_glib/test/test-time32-data-type.rb               |   56 -
 c_glib/test/test-time64-array.rb                   |   57 -
 c_glib/test/test-time64-data-type.rb               |   56 -
 c_glib/test/test-timestamp-array.rb                |   57 -
 c_glib/test/test-timestamp-data-type.rb            |   84 -
 c_glib/test/test-uint-array-builder.rb             |   59 -
 c_glib/test/test-uint16-array.rb                   |   60 -
 c_glib/test/test-uint16-data-type.rb               |   33 -
 c_glib/test/test-uint32-array.rb                   |   60 -
 c_glib/test/test-uint32-data-type.rb               |   33 -
 c_glib/test/test-uint64-array.rb                   |   60 -
 c_glib/test/test-uint64-data-type.rb               |   33 -
 c_glib/test/test-uint8-array.rb                    |   58 -
 c_glib/test/test-uint8-data-type.rb                |   40 -
 c_glib/test/test-unique.rb                         |   31 -
 c_glib/test/test-write-options.rb                  |  102 -
 380 files changed, 68370 deletions(-)

diff --git a/c_glib/.gitignore b/c_glib/.gitignore
deleted file mode 100644
index 0c813e8..0000000
--- a/c_glib/.gitignore
+++ /dev/null
@@ -1,70 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-Makefile
-Makefile.in
-.deps/
-.libs/
-*.gir
-*.typelib
-*.o
-*.lo
-*.la
-*~
-/LICENSE.txt
-/*.tar.gz
-/aclocal.m4
-/autom4te.cache/
-/config.h
-/config.h.in
-/config.log
-/config.status
-/config/
-/configure
-/doc/*-glib/*.txt
-/doc/*-glib/*.txt.bak
-/doc/*-glib/*.args
-/doc/*-glib/*.hierarchy
-/doc/*-glib/*.interfaces
-/doc/*-glib/*.prerequisites
-/doc/*-glib/*.signals
-/doc/*-glib/*.types
-/doc/*-glib/entities.xml
-/doc/*-glib/*.stamp
-/doc/*-glib/html/
-/doc/*-glib/xml/
-/doc/*-glib/tmpl/
-/libtool
-/m4/
-/stamp-h1
-/arrow-cuda-glib/*.pc
-/*-glib/enums.c
-/*-glib/enums.h
-/*-glib/stamp-*
-/arrow-glib/version.h
-/arrow-glib/*.pc
-/gandiva-glib/version.h
-/gandiva-glib/*.pc
-/parquet-glib/version.h
-/parquet-glib/*.pc
-/plasma-glib/*.pc
-/example/build
-/example/extension-type
-/example/read-batch
-/example/read-stream
-/gtk-doc.make
-/build/
diff --git a/c_glib/Brewfile b/c_glib/Brewfile
deleted file mode 100644
index ba65853..0000000
--- a/c_glib/Brewfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-brew "autoconf-archive"
-brew "gobject-introspection"
-brew "gtk-doc"
-brew "libtool"
-brew "meson"
diff --git a/c_glib/Gemfile b/c_glib/Gemfile
deleted file mode 100644
index 4b57090..0000000
--- a/c_glib/Gemfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# -*- ruby -*-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-source "https://rubygems.org/"
-
-gem "test-unit"
-gem "gobject-introspection"
diff --git a/c_glib/README.md b/c_glib/README.md
deleted file mode 100644
index ac17935..0000000
--- a/c_glib/README.md
+++ /dev/null
@@ -1,315 +0,0 @@
-<!---
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-
-# Arrow GLib
-
-Arrow GLib is a wrapper library for [Arrow
-C++](https://github.com/apache/arrow/tree/master/cpp). Arrow GLib
-provides C API.
-
-Arrow GLib supports [GObject
-Introspection](https://wiki.gnome.org/action/show/Projects/GObjectIntrospection).
-It means that you can create language bindings at runtime or compile
-time.
-
-For example, you can use Apache Arrow from Ruby by Arrow GLib and
-[gobject-introspection gem](https://rubygems.org/gems/gobject-introspection)
-with the following code:
-
-```ruby
-# Generate bindings at runtime
-require "gi"
-Arrow = GI.load("Arrow")
-
-# Now, you can access arrow::BooleanArray in Arrow C++ by
-# Arrow::BooleanArray
-p Arrow::BooleanArray
-```
-
-In Ruby case, you should use
-[red-arrow gem](https://rubygems.org/gems/red-arrow). It's based on
-gobject-introspection gem. It adds many convenient features to raw
-gobject-introspection gem based bindings.
-
-## Install
-
-You can use packages or build by yourself to install Arrow GLib. It's
-recommended that you use packages.
-
-We use Meson and Ninja as build tools. If you find problems when
-installing please see [common build
-problems](https://github.com/apache/arrow/blob/master/c_glib/README.md#common-build-problems).
-
-### Packages
-
-See [install document](https://arrow.apache.org/install/) for details.
-
-### How to build by users
-
-Arrow GLib users should use released source archive to build Arrow
-GLib (replace the version number in the following commands with the
-one you use):
-
-```console
-% wget https://downloads.apache.org/arrow/arrow-3.0.0/apache-arrow-3.0.0.tar.gz
-% tar xf apache-arrow-3.0.0.tar.gz
-% cd apache-arrow-3.0.0
-```
-
-You need to build and install Arrow C++ before you build and install
-Arrow GLib. See Arrow C++ document about how to install Arrow C++.
-
-If you use macOS with [Homebrew](https://brew.sh/), you must install
-required packages.
-
-macOS:
-
-```console
-$ brew bundle
-$ meson setup c_glib.build c_glib --buildtype=release
-$ meson compile -C c_glib.build
-$ sudo meson install -C c_glib.build
-```
-
-Others:
-
-```console
-$ meson setup c_glib.build c_glib --buildtype=release
-$ meson compile -C c_glib.build
-$ sudo meson install -C build
-```
-
-### How to build by developers
-
-You need to install Arrow C++ before you install Arrow GLib. See Arrow
-C++ document about how to install Arrow C++.
-
-You need [GTK-Doc](https://www.gtk.org/gtk-doc/) and
-[GObject Introspection](https://wiki.gnome.org/Projects/GObjectIntrospection)
-to build Arrow GLib. You can install them by the followings:
-
-On Debian GNU/Linux or Ubuntu:
-
-```console
-$ sudo apt install -y -V gtk-doc-tools libgirepository1.0-dev meson ninja-build
-```
-
-On CentOS 7:
-
-```console
-$ sudo yum install -y gtk-doc gobject-introspection-devel ninja-build
-$ sudo pip3 install meson
-```
-
-On CentOS 8 or later:
-
-```console
-$ sudo dnf install -y --enablerepo=powertools gtk-doc gobject-introspection-devel ninja-build
-$ sudo pip3 install meson
-```
-
-On macOS with [Homebrew](https://brew.sh/):
-
-```console
-$ brew bundle
-```
-
-You can build and install Arrow GLib by the followings:
-
-macOS:
-
-```console
-$ XML_CATALOG_FILES=$(brew --prefix)/etc/xml/catalog
-$ meson setup c_glib.build c_glib -Dgtk_doc=true
-$ meson compile -C c_glib.build
-$ sudo meson install -C c_glib.build
-```
-
-Others:
-
-```console
-$ meson c_glib.build c_glib -Dgtk_doc=true
-$ meson compile -C c_glib.build
-$ sudo meson install -C c_glib.build
-```
-
-## Usage
-
-You can use Arrow GLib with C or other languages. If you use Arrow
-GLib with C, you use C API. If you use Arrow GLib with other
-languages, you use GObject Introspection based bindings.
-
-### C
-
-You can find API reference in the
-`/usr/local/share/gtk-doc/html/arrow-glib/` directory. If you specify
-`--prefix` to `meson`, the directory will be different.
-
-You can find example codes in the `example/` directory.
-
-### Language bindings
-
-You can use Arrow GLib with non-C languages with GObject Introspection
-based bindings. Here are languages that support GObject Introspection:
-
-  * Ruby: [red-arrow gem](https://rubygems.org/gems/red-arrow) should be used.
-    * Examples: https://github.com/red-data-tools/red-arrow/tree/master/example
-
-  * Python: [PyGObject](https://wiki.gnome.org/Projects/PyGObject) should be used. (Note that you should prefer PyArrow over Arrow GLib.)
-
-  * Lua: [LGI](https://github.com/pavouk/lgi) should be used.
-    * Examples: `example/lua/` directory.
-
-  * Go: [Go-gir-generator](https://github.com/linuxdeepin/go-gir-generator) should be used. (Note that you should use Apache Arrow for Go than Arrow GLib.)
-
-See also
-[Projects/GObjectIntrospection/Users - GNOME Wiki!](https://wiki.gnome.org/Projects/GObjectIntrospection/Users)
-for other languages.
-
-## How to run test
-
-Arrow GLib has unit tests. You can confirm that you install Arrow
-GLib correctly by running unit tests.
-
-You need to install the followings to run unit tests:
-
-  * [Ruby](https://www.ruby-lang.org/)
-  * [gobject-introspection gem](https://rubygems.org/gems/gobject-introspection)
-  * [test-unit gem](https://rubygems.org/gems/test-unit)
-
-You can install them by the followings:
-
-On Debian GNU/Linux or Ubuntu:
-
-```console
-$ sudo apt install -y -V ruby-dev
-$ sudo gem install bundler
-$ (cd c_glib && bundle install)
-```
-
-On CentOS 7 or later:
-
-```console
-$ sudo yum install -y git
-$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
-$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
-$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
-$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
-$ exec ${SHELL} --login
-$ sudo yum install -y gcc make patch openssl-devel readline-devel zlib-devel
-$ latest_ruby_version=$(rbenv install --list 2>&1 | grep '^[0-9]' | tail -n1)
-$ rbenv install ${latest_ruby_version}
-$ rbenv global ${latest_ruby_version}
-$ gem install bundler
-$ (cd c_glib && bundle install)
-```
-
-On macOS with [Homebrew](https://brew.sh/):
-
-```console
-$ (cd c_glib && bundle install)
-```
-
-Now, you can run unit tests by the followings:
-
-```console
-$ cd c_glib.build
-$ bundle exec ../c_glib/test/run-test.sh
-```
-
-## Common build problems
-
-### build failed - /usr/bin/ld: cannot find -larrow
-
-Arrow C++ must be installed to build Arrow GLib. Run `make install` on
-Arrow C++ build directory. In addition, on linux, you may need to run
-`sudo ldconfig`.
-
-### build failed - unable to load http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
-
-You need to set the following environment variable on macOS:
-
-```console
-$ export XML_CATALOG_FILES="$(brew --prefix)/etc/xml/catalog"
-```
-
-### build failed - Symbol not found, referenced from `libsource-highlight.4.dylib`
-
-You may get the following error on macOS:
-
-
-```text
-dyld: Symbol not found: __ZN5boost16re_detail_10650112perl_matcherIPKcNSt3__19allocatorINS_9sub_matchIS3_EEEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSC_EENS_15regex_constants12_match_flagsE
-  Referenced from: /usr/local/Cellar/source-highlight/3.1.8_7/lib/libsource-highlight.4.dylib
-  Expected in: flat namespace
- in /usr/local/Cellar/source-highlight/3.1.8_7/lib/libsource-highlight.4.dylib
-```
-
-To fix this error, you need to upgrade `source-highlight`:
-
-```console
-$ brew upgrade source-highlight
-```
-
-### test failed - Failed to load shared library '...' referenced by the typelib: dlopen(...): dependent dylib '@rpath/...' not found for '...'. relative file paths not allowed '@rpath/...'
-
-You may get the following error on macOS by running test:
-
-```text
-(NULL)-WARNING **: Failed to load shared library '/usr/local/lib/libparquet-glib.400.dylib' referenced by the typelib: dlopen(/usr/local/lib/libparquet-glib.400.dylib, 0x0009): dependent dylib '@rpath/libparquet.400.dylib' not found for '/usr/local/lib/libparquet-glib.400.dylib'. relative file paths not allowed '@rpath/libparquet.400.dylib'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/loader.rb:215:in `load_object_info'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/loader.rb:68:in `load_info'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/loader.rb:43:in `block in load'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/repository.rb:34:in `block (2 levels) in each'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/repository.rb:33:in `times'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/repository.rb:33:in `block in each'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/repository.rb:32:in `each'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/repository.rb:32:in `each'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection/loader.rb:42:in `load'
-        from /Library/Ruby/Gems/2.6.0/gems/gobject-introspection-3.4.3/lib/gobject-introspection.rb:44:in `load'
-        from /Users/karlkatzen/Documents/code/arrow-dev/arrow/c_glib/test/run-test.rb:60:in `<main>'
-Traceback (most recent call last):
-        17: from /Users/karlkatzen/Documents/code/arrow-dev/arrow/c_glib/test/run-test.rb:80:in `<main>'
-        16: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/autorunner.rb:66:in `run'
-        15: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/autorunner.rb:434:in `run'
-        14: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/autorunner.rb:106:in `block in <class:AutoRunner>'
-        13: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:38:in `collect'
-        12: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:136:in `add_load_path'
-        11: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:43:in `block in collect'
-        10: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:43:in `each'
-         9: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:46:in `block (2 levels) in collect'
-         8: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:85:in `collect_recursive'
-         7: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:85:in `each'
-         6: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:87:in `block in collect_recursive'
-         5: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:112:in `collect_file'
-         4: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:136:in `add_load_path'
-         3: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:114:in `block in collect_file'
-         2: from /Library/Ruby/Gems/2.6.0/gems/test-unit-3.4.0/lib/test/unit/collector/load.rb:114:in `require'
-         1: from /Users/karlkatzen/Documents/code/arrow-dev/arrow/c_glib/test/test-extension-data-type.rb:18:in `<top (required)>'
-/Users/karlkatzen/Documents/code/arrow-dev/arrow/c_glib/test/test-extension-data-type.rb:19:in `<class:TestExtensionDataType>': uninitialized constant Arrow::ExtensionArray (NameError)
-```
-
-You can't use `@rpath` in Arrow C++. To fix this error, you need to
-build Arrow C++ with `-DARROW_INSTALL_NAME_RPATH=OFF`:
-
-```console
-$ cmake -S cpp -B cpp.build -DARROW_INSTALL_NAME_RPATH=OFF ...
-$ cmake --build cpp.build
-$ sudo cmake --build cpp.build --target install
-```
diff --git a/c_glib/arrow-cuda-glib/arrow-cuda-glib.h b/c_glib/arrow-cuda-glib/arrow-cuda-glib.h
deleted file mode 100644
index b3c7f21..0000000
--- a/c_glib/arrow-cuda-glib/arrow-cuda-glib.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.h>
-
-#include <arrow-cuda-glib/cuda.h>
diff --git a/c_glib/arrow-cuda-glib/arrow-cuda-glib.hpp b/c_glib/arrow-cuda-glib/arrow-cuda-glib.hpp
deleted file mode 100644
index e79b43a..0000000
--- a/c_glib/arrow-cuda-glib/arrow-cuda-glib.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.hpp>
-
-#include <arrow-cuda-glib/cuda.hpp>
diff --git a/c_glib/arrow-cuda-glib/cuda.cpp b/c_glib/arrow-cuda-glib/cuda.cpp
deleted file mode 100644
index 142cd6f..0000000
--- a/c_glib/arrow-cuda-glib/cuda.cpp
+++ /dev/null
@@ -1,944 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <arrow-glib/buffer.hpp>
-#include <arrow-glib/error.hpp>
-#include <arrow-glib/input-stream.hpp>
-#include <arrow-glib/ipc-options.hpp>
-#include <arrow-glib/output-stream.hpp>
-#include <arrow-glib/readable.hpp>
-#include <arrow-glib/record-batch.hpp>
-#include <arrow-glib/schema.hpp>
-
-#include <arrow-cuda-glib/cuda.hpp>
-
-G_BEGIN_DECLS
-
-/**
- * SECTION: cuda
- * @section_id: cuda-classes
- * @title: CUDA related classes
- * @include: arrow-cuda-glib/arrow-cuda-glib.h
- *
- * The following classes provide CUDA support for Apache Arrow data.
- *
- * #GArrowCUDADeviceManager is the starting point. You need at
- * least one #GArrowCUDAContext to process Apache Arrow data on
- * NVIDIA GPU.
- *
- * #GArrowCUDAContext is a class to keep context for one GPU. You
- * need to create #GArrowCUDAContext for each GPU that you want to
- * use. You can create #GArrowCUDAContext by
- * garrow_cuda_device_manager_get_context().
- *
- * #GArrowCUDABuffer is a class for data on GPU. You can copy data
- * on GPU to/from CPU by garrow_cuda_buffer_copy_to_host() and
- * garrow_cuda_buffer_copy_from_host(). You can share data on GPU
- * with other processes by garrow_cuda_buffer_export() and
- * garrow_cuda_buffer_new_ipc().
- *
- * #GArrowCUDAHostBuffer is a class for data on CPU that is
- * directly accessible from GPU.
- *
- * #GArrowCUDAIPCMemoryHandle is a class to share data on GPU with
- * other processes. You can export your data on GPU to other processes
- * by garrow_cuda_buffer_export() and
- * garrow_cuda_ipc_memory_handle_new(). You can import other
- * process data on GPU by garrow_cuda_ipc_memory_handle_new() and
- * garrow_cuda_buffer_new_ipc().
- *
- * #GArrowCUDABufferInputStream is a class to read data in
- * #GArrowCUDABuffer.
- *
- * #GArrowCUDABufferOutputStream is a class to write data into
- * #GArrowCUDABuffer.
- */
-
-G_DEFINE_TYPE(GArrowCUDADeviceManager,
-              garrow_cuda_device_manager,
-              G_TYPE_OBJECT)
-
-static void
-garrow_cuda_device_manager_init(GArrowCUDADeviceManager *object)
-{
-}
-
-static void
-garrow_cuda_device_manager_class_init(GArrowCUDADeviceManagerClass *klass)
-{
-}
-
-/**
- * garrow_cuda_device_manager_new:
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: A newly created #GArrowCUDADeviceManager on success,
- *   %NULL on error.
- *
- * Since: 0.8.0
- */
-GArrowCUDADeviceManager *
-garrow_cuda_device_manager_new(GError **error)
-{
-  auto arrow_manager = arrow::cuda::CudaDeviceManager::Instance();
-  if (garrow::check(error, arrow_manager, "[cuda][device-manager][new]")) {
-    auto manager = g_object_new(GARROW_CUDA_TYPE_DEVICE_MANAGER,
-                                NULL);
-    return GARROW_CUDA_DEVICE_MANAGER(manager);
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_device_manager_get_context:
- * @manager: A #GArrowCUDADeviceManager.
- * @gpu_number: A GPU device number for the target context.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowCUDAContext on
- *   success, %NULL on error. Contexts for the same GPU device number
- *   share the same data internally.
- *
- * Since: 0.8.0
- */
-GArrowCUDAContext *
-garrow_cuda_device_manager_get_context(GArrowCUDADeviceManager *manager,
-                                       gint gpu_number,
-                                       GError **error)
-{
-  auto arrow_manager = arrow::cuda::CudaDeviceManager::Instance();
-  auto arrow_cuda_context = (*arrow_manager)->GetContext(gpu_number);
-  if (garrow::check(error, arrow_cuda_context,
-                    "[cuda][device-manager][get-context]]")) {
-    return garrow_cuda_context_new_raw(&(*arrow_cuda_context));
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_device_manager_get_n_devices:
- * @manager: A #GArrowCUDADeviceManager.
- *
- * Returns: The number of GPU devices.
- *
- * Since: 0.8.0
- */
-gsize
-garrow_cuda_device_manager_get_n_devices(GArrowCUDADeviceManager *manager)
-{
-  auto arrow_manager = arrow::cuda::CudaDeviceManager::Instance();
-  return (*arrow_manager)->num_devices();
-}
-
-
-typedef struct GArrowCUDAContextPrivate_ {
-  std::shared_ptr<arrow::cuda::CudaContext> context;
-} GArrowCUDAContextPrivate;
-
-enum {
-  PROP_CONTEXT = 1
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE(GArrowCUDAContext,
-                           garrow_cuda_context,
-                           G_TYPE_OBJECT)
-
-#define GARROW_CUDA_CONTEXT_GET_PRIVATE(object) \
-  static_cast<GArrowCUDAContextPrivate *>(      \
-    garrow_cuda_context_get_instance_private(   \
-      GARROW_CUDA_CONTEXT(object)))
-
-static void
-garrow_cuda_context_finalize(GObject *object)
-{
-  auto priv = GARROW_CUDA_CONTEXT_GET_PRIVATE(object);
-
-  priv->context.~shared_ptr();
-
-  G_OBJECT_CLASS(garrow_cuda_context_parent_class)->finalize(object);
-}
-
-static void
-garrow_cuda_context_set_property(GObject *object,
-                                 guint prop_id,
-                                 const GValue *value,
-                                 GParamSpec *pspec)
-{
-  auto priv = GARROW_CUDA_CONTEXT_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_CONTEXT:
-    priv->context =
-      *static_cast<std::shared_ptr<arrow::cuda::CudaContext> *>(g_value_get_pointer(value));
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-garrow_cuda_context_get_property(GObject *object,
-                                 guint prop_id,
-                                 GValue *value,
-                                 GParamSpec *pspec)
-{
-  switch (prop_id) {
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-garrow_cuda_context_init(GArrowCUDAContext *object)
-{
-  auto priv = GARROW_CUDA_CONTEXT_GET_PRIVATE(object);
-  new(&priv->context) std::shared_ptr<arrow::cuda::CudaContext>;
-}
-
-static void
-garrow_cuda_context_class_init(GArrowCUDAContextClass *klass)
-{
-  GParamSpec *spec;
-
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->finalize     = garrow_cuda_context_finalize;
-  gobject_class->set_property = garrow_cuda_context_set_property;
-  gobject_class->get_property = garrow_cuda_context_get_property;
-
-  /**
-   * GArrowCUDAContext:context:
-   *
-   * Since: 0.8.0
-   */
-  spec = g_param_spec_pointer("context",
-                              "Context",
-                              "The raw std::shared_ptr<arrow::cuda::CudaContext>",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_CONTEXT, spec);
-}
-
-/**
- * garrow_cuda_context_get_allocated_size:
- * @context: A #GArrowCUDAContext.
- *
- * Returns: The allocated memory by this context in bytes.
- *
- * Since: 0.8.0
- */
-gint64
-garrow_cuda_context_get_allocated_size(GArrowCUDAContext *context)
-{
-  auto arrow_context = garrow_cuda_context_get_raw(context);
-  return arrow_context->bytes_allocated();
-}
-
-
-G_DEFINE_TYPE(GArrowCUDABuffer,
-              garrow_cuda_buffer,
-              GARROW_TYPE_BUFFER)
-
-static void
-garrow_cuda_buffer_init(GArrowCUDABuffer *object)
-{
-}
-
-static void
-garrow_cuda_buffer_class_init(GArrowCUDABufferClass *klass)
-{
-}
-
-/**
- * garrow_cuda_buffer_new:
- * @context: A #GArrowCUDAContext.
- * @size: The number of bytes to be allocated on GPU device for this context.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowCUDABuffer on
- *   success, %NULL on error.
- *
- * Since: 0.8.0
- */
-GArrowCUDABuffer *
-garrow_cuda_buffer_new(GArrowCUDAContext *context,
-                       gint64 size,
-                       GError **error)
-{
-  auto arrow_context = garrow_cuda_context_get_raw(context);
-  auto arrow_buffer = arrow_context->Allocate(size);
-  if (garrow::check(error, arrow_buffer, "[cuda][buffer][new]")) {
-    return garrow_cuda_buffer_new_raw(&(*arrow_buffer));
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_buffer_new_ipc:
- * @context: A #GArrowCUDAContext.
- * @handle: A #GArrowCUDAIPCMemoryHandle to be communicated.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowCUDABuffer on
- *   success, %NULL on error. The buffer has data from the IPC target.
- *
- * Since: 0.8.0
- */
-GArrowCUDABuffer *
-garrow_cuda_buffer_new_ipc(GArrowCUDAContext *context,
-                           GArrowCUDAIPCMemoryHandle *handle,
-                           GError **error)
-{
-  auto arrow_context = garrow_cuda_context_get_raw(context);
-  auto arrow_handle = garrow_cuda_ipc_memory_handle_get_raw(handle);
-  auto arrow_buffer = arrow_context->OpenIpcBuffer(*arrow_handle);
-  if (garrow::check(error, arrow_buffer, "[cuda][buffer][new-ipc]")) {
-    return garrow_cuda_buffer_new_raw(&(*arrow_buffer));
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_buffer_new_record_batch:
- * @context: A #GArrowCUDAContext.
- * @record_batch: A #GArrowRecordBatch to be serialized.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowCUDABuffer on
- *   success, %NULL on error. The buffer has serialized record batch
- *   data.
- *
- * Since: 0.8.0
- */
-GArrowCUDABuffer *
-garrow_cuda_buffer_new_record_batch(GArrowCUDAContext *context,
-                                    GArrowRecordBatch *record_batch,
-                                    GError **error)
-{
-  auto arrow_context = garrow_cuda_context_get_raw(context);
-  auto arrow_record_batch = garrow_record_batch_get_raw(record_batch);
-  auto arrow_buffer = arrow::cuda::SerializeRecordBatch(*arrow_record_batch,
-                                                        arrow_context.get());
-  if (garrow::check(error, arrow_buffer, "[cuda][buffer][new-record-batch]")) {
-    return garrow_cuda_buffer_new_raw(&(*arrow_buffer));
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_buffer_copy_to_host:
- * @buffer: A #GArrowCUDABuffer.
- * @position: The offset of memory on GPU device to be copied.
- * @size: The size of memory on GPU device to be copied in bytes.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A #GBytes that have copied memory on CPU
- *   host on success, %NULL on error.
- *
- * Since: 0.8.0
- */
-GBytes *
-garrow_cuda_buffer_copy_to_host(GArrowCUDABuffer *buffer,
-                                gint64 position,
-                                gint64 size,
-                                GError **error)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto data = static_cast<uint8_t *>(g_malloc(size));
-  auto status = arrow_buffer->CopyToHost(position, size, data);
-  if (garrow_error_check(error, status, "[cuda][buffer][copy-to-host]")) {
-    return g_bytes_new_take(data, size);
-  } else {
-    g_free(data);
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_buffer_copy_from_host:
- * @buffer: A #GArrowCUDABuffer.
- * @data: (array length=size): Data on CPU host to be copied.
- * @size: The size of data on CPU host to be copied in bytes.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_cuda_buffer_copy_from_host(GArrowCUDABuffer *buffer,
-                                  const guint8 *data,
-                                  gint64 size,
-                                  GError **error)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto status = arrow_buffer->CopyFromHost(0, data, size);
-  return garrow_error_check(error,
-                            status,
-                            "[cuda][buffer][copy-from-host]");
-}
-
-/**
- * garrow_cuda_buffer_export:
- * @buffer: A #GArrowCUDABuffer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created
- *   #GArrowCUDAIPCMemoryHandle to handle the exported buffer on
- *   success, %NULL on error
- *
- * Since: 0.8.0
- */
-GArrowCUDAIPCMemoryHandle *
-garrow_cuda_buffer_export(GArrowCUDABuffer *buffer, GError **error)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto arrow_handle = arrow_buffer->ExportForIpc();
-  if (garrow::check(error, arrow_handle, "[cuda][buffer][export-for-ipc]")) {
-    return garrow_cuda_ipc_memory_handle_new_raw(&(*arrow_handle));
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_buffer_get_context:
- * @buffer: A #GArrowCUDABuffer.
- *
- * Returns: (transfer full): A newly created #GArrowCUDAContext for the
- *   buffer. Contexts for the same buffer share the same data internally.
- *
- * Since: 0.8.0
- */
-GArrowCUDAContext *
-garrow_cuda_buffer_get_context(GArrowCUDABuffer *buffer)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto arrow_context = arrow_buffer->context();
-  return garrow_cuda_context_new_raw(&arrow_context);
-}
-
-/**
- * garrow_cuda_buffer_read_record_batch:
- * @buffer: A #GArrowCUDABuffer.
- * @schema: A #GArrowSchema for record batch.
- * @options: (nullable): A #GArrowReadOptions.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowRecordBatch on
- *   success, %NULL on error. The record batch data is located on GPU.
- *
- * Since: 0.8.0
- */
-GArrowRecordBatch *
-garrow_cuda_buffer_read_record_batch(GArrowCUDABuffer *buffer,
-                                     GArrowSchema *schema,
-                                     GArrowReadOptions *options,
-                                     GError **error)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto arrow_schema = garrow_schema_get_raw(schema);
-
-  if (options) {
-    auto arrow_options = garrow_read_options_get_raw(options);
-    auto arrow_dictionary_memo =
-      garrow_read_options_get_dictionary_memo_raw(options);
-    auto arrow_record_batch =
-      arrow::cuda::ReadRecordBatch(arrow_schema,
-                                   arrow_dictionary_memo,
-                                   arrow_buffer,
-                                   arrow_options->memory_pool);
-    if (garrow::check(error, arrow_record_batch,
-                      "[cuda][buffer][read-record-batch]")) {
-      return garrow_record_batch_new_raw(&(*arrow_record_batch));
-    } else {
-      return NULL;
-    }
-  } else {
-    auto arrow_pool = arrow::default_memory_pool();
-    auto arrow_record_batch =
-      arrow::cuda::ReadRecordBatch(arrow_schema,
-                                   nullptr,
-                                   arrow_buffer,
-                                   arrow_pool);
-    if (garrow::check(error, arrow_record_batch,
-                      "[cuda][buffer][read-record-batch]")) {
-      return garrow_record_batch_new_raw(&(*arrow_record_batch));
-    } else {
-      return NULL;
-    }
-  }
-}
-
-
-G_DEFINE_TYPE(GArrowCUDAHostBuffer,
-              garrow_cuda_host_buffer,
-              GARROW_TYPE_MUTABLE_BUFFER)
-
-static void
-garrow_cuda_host_buffer_init(GArrowCUDAHostBuffer *object)
-{
-}
-
-static void
-garrow_cuda_host_buffer_class_init(GArrowCUDAHostBufferClass *klass)
-{
-}
-
-/**
- * garrow_cuda_host_buffer_new:
- * @gpu_number: A GPU device number for the target context.
- * @size: The number of bytes to be allocated on CPU host.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: A newly created #GArrowCUDAHostBuffer on success,
- *   %NULL on error. The allocated memory is accessible from GPU
- *   device for the @context.
- *
- * Since: 0.8.0
- */
-GArrowCUDAHostBuffer *
-garrow_cuda_host_buffer_new(gint gpu_number, gint64 size, GError **error)
-{
-  auto arrow_manager = arrow::cuda::CudaDeviceManager::Instance();
-  auto arrow_buffer = (*arrow_manager)->AllocateHost(gpu_number, size);
-  if (garrow::check(error, arrow_buffer, "[cuda][host-buffer][new]")) {
-    return garrow_cuda_host_buffer_new_raw(&(*arrow_buffer));
-  } else {
-    return NULL;
-  }
-}
-
-
-typedef struct GArrowCUDAIPCMemoryHandlePrivate_ {
-  std::shared_ptr<arrow::cuda::CudaIpcMemHandle> ipc_memory_handle;
-} GArrowCUDAIPCMemoryHandlePrivate;
-
-enum {
-  PROP_IPC_MEMORY_HANDLE = 1
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE(GArrowCUDAIPCMemoryHandle,
-                           garrow_cuda_ipc_memory_handle,
-                           G_TYPE_OBJECT)
-
-#define GARROW_CUDA_IPC_MEMORY_HANDLE_GET_PRIVATE(object)       \
-  static_cast<GArrowCUDAIPCMemoryHandlePrivate *>(              \
-    garrow_cuda_ipc_memory_handle_get_instance_private(         \
-      GARROW_CUDA_IPC_MEMORY_HANDLE(object)))
-
-static void
-garrow_cuda_ipc_memory_handle_finalize(GObject *object)
-{
-  auto priv = GARROW_CUDA_IPC_MEMORY_HANDLE_GET_PRIVATE(object);
-
-  priv->ipc_memory_handle = nullptr;
-
-  G_OBJECT_CLASS(garrow_cuda_ipc_memory_handle_parent_class)->finalize(object);
-}
-
-static void
-garrow_cuda_ipc_memory_handle_set_property(GObject *object,
-                                           guint prop_id,
-                                           const GValue *value,
-                                           GParamSpec *pspec)
-{
-  auto priv = GARROW_CUDA_IPC_MEMORY_HANDLE_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_IPC_MEMORY_HANDLE:
-    priv->ipc_memory_handle =
-      *static_cast<std::shared_ptr<arrow::cuda::CudaIpcMemHandle> *>(g_value_get_pointer(value));
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-garrow_cuda_ipc_memory_handle_get_property(GObject *object,
-                                           guint prop_id,
-                                           GValue *value,
-                                           GParamSpec *pspec)
-{
-  switch (prop_id) {
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-garrow_cuda_ipc_memory_handle_init(GArrowCUDAIPCMemoryHandle *object)
-{
-}
-
-static void
-garrow_cuda_ipc_memory_handle_class_init(GArrowCUDAIPCMemoryHandleClass *klass)
-{
-  GParamSpec *spec;
-
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->finalize     = garrow_cuda_ipc_memory_handle_finalize;
-  gobject_class->set_property = garrow_cuda_ipc_memory_handle_set_property;
-  gobject_class->get_property = garrow_cuda_ipc_memory_handle_get_property;
-
-  /**
-   * GArrowCUDAIPCMemoryHandle:ipc-memory-handle:
-   *
-   * Since: 0.8.0
-   */
-  spec = g_param_spec_pointer("ipc-memory-handle",
-                              "IPC Memory Handle",
-                              "The raw std::shared_ptr<arrow::cuda::CudaIpcMemHandle>",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_IPC_MEMORY_HANDLE, spec);
-}
-
-/**
- * garrow_cuda_ipc_memory_handle_new:
- * @data: (array length=size): A serialized #GArrowCUDAIPCMemoryHandle.
- * @size: The size of data.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowCUDAIPCMemoryHandle
- *   on success, %NULL on error.
- *
- * Since: 0.8.0
- */
-GArrowCUDAIPCMemoryHandle *
-garrow_cuda_ipc_memory_handle_new(const guint8 *data,
-                                  gsize size,
-                                  GError **error)
-{
-  auto arrow_handle = arrow::cuda::CudaIpcMemHandle::FromBuffer(data);
-  if (garrow::check(error, arrow_handle, "[cuda][ipc-memory-handle][new]")) {
-    return garrow_cuda_ipc_memory_handle_new_raw(&(*arrow_handle));
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_cuda_ipc_memory_handle_serialize:
- * @handle: A #GArrowCUDAIPCMemoryHandle.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): A newly created #GArrowBuffer on success,
- *   %NULL on error. The buffer has serialized @handle. The serialized
- *   @handle can be deserialized by garrow_cuda_ipc_memory_handle_new()
- *   in other process.
- *
- * Since: 0.8.0
- */
-GArrowBuffer *
-garrow_cuda_ipc_memory_handle_serialize(GArrowCUDAIPCMemoryHandle *handle,
-                                        GError **error)
-{
-  auto arrow_handle = garrow_cuda_ipc_memory_handle_get_raw(handle);
-  auto arrow_buffer = arrow_handle->Serialize(arrow::default_memory_pool());
-  if (garrow::check(error, arrow_buffer,
-                    "[cuda][ipc-memory-handle][serialize]")) {
-    return garrow_buffer_new_raw(&(*arrow_buffer));
-  } else {
-    return NULL;
-  }
-}
-
-static GArrowBuffer *
-garrow_cuda_buffer_input_stream_buffer_new_raw_readable_interface(std::shared_ptr<arrow::Buffer> *arrow_buffer)
-{
-  auto arrow_cuda_buffer =
-    reinterpret_cast<std::shared_ptr<arrow::cuda::CudaBuffer> *>(arrow_buffer);
-  auto cuda_buffer = garrow_cuda_buffer_new_raw(arrow_cuda_buffer);
-  return GARROW_BUFFER(cuda_buffer);
-}
-
-static std::shared_ptr<arrow::io::Readable>
-garrow_cuda_buffer_input_stream_get_raw_readable_interface(GArrowReadable *readable)
-{
-  auto input_stream = GARROW_INPUT_STREAM(readable);
-  auto arrow_input_stream = garrow_input_stream_get_raw(input_stream);
-  return arrow_input_stream;
-}
-
-static void
-garrow_cuda_buffer_input_stream_readable_interface_init(GArrowReadableInterface *iface)
-{
-  iface->buffer_new_raw =
-    garrow_cuda_buffer_input_stream_buffer_new_raw_readable_interface;
-  iface->get_raw =
-    garrow_cuda_buffer_input_stream_get_raw_readable_interface;
-}
-
-G_DEFINE_TYPE_WITH_CODE(
-  GArrowCUDABufferInputStream,
-  garrow_cuda_buffer_input_stream,
-  GARROW_TYPE_BUFFER_INPUT_STREAM,
-  G_IMPLEMENT_INTERFACE(
-    GARROW_TYPE_READABLE,
-    garrow_cuda_buffer_input_stream_readable_interface_init))
-
-static void
-garrow_cuda_buffer_input_stream_init(GArrowCUDABufferInputStream *object)
-{
-}
-
-static void
-garrow_cuda_buffer_input_stream_class_init(GArrowCUDABufferInputStreamClass *klass)
-{
-}
-
-/**
- * garrow_cuda_buffer_input_stream_new:
- * @buffer: A #GArrowCUDABuffer.
- *
- * Returns: (transfer full): A newly created
- *   #GArrowCUDABufferInputStream.
- *
- * Since: 0.8.0
- */
-GArrowCUDABufferInputStream *
-garrow_cuda_buffer_input_stream_new(GArrowCUDABuffer *buffer)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto arrow_reader =
-    std::make_shared<arrow::cuda::CudaBufferReader>(arrow_buffer);
-  return garrow_cuda_buffer_input_stream_new_raw(&arrow_reader);
-}
-
-
-G_DEFINE_TYPE(GArrowCUDABufferOutputStream,
-              garrow_cuda_buffer_output_stream,
-              GARROW_TYPE_OUTPUT_STREAM)
-
-static void
-garrow_cuda_buffer_output_stream_init(GArrowCUDABufferOutputStream *object)
-{
-}
-
-static void
-garrow_cuda_buffer_output_stream_class_init(GArrowCUDABufferOutputStreamClass *klass)
-{
-}
-
-/**
- * garrow_cuda_buffer_output_stream_new:
- * @buffer: A #GArrowCUDABuffer.
- *
- * Returns: (transfer full): A newly created
- *   #GArrowCUDABufferOutputStream.
- *
- * Since: 0.8.0
- */
-GArrowCUDABufferOutputStream *
-garrow_cuda_buffer_output_stream_new(GArrowCUDABuffer *buffer)
-{
-  auto arrow_buffer = garrow_cuda_buffer_get_raw(buffer);
-  auto arrow_writer =
-    std::make_shared<arrow::cuda::CudaBufferWriter>(arrow_buffer);
-  return garrow_cuda_buffer_output_stream_new_raw(&arrow_writer);
-}
-
-/**
- * garrow_cuda_buffer_output_stream_set_buffer_size:
- * @stream: A #GArrowCUDABufferOutputStream.
- * @size: A size of CPU buffer in bytes.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Sets CPU buffer size. to limit `cudaMemcpy()` calls. If CPU buffer
- * size is `0`, buffering is disabled.
- *
- * The default is `0`.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_cuda_buffer_output_stream_set_buffer_size(GArrowCUDABufferOutputStream *stream,
-                                                 gint64 size,
-                                                 GError **error)
-{
-  auto arrow_stream = garrow_cuda_buffer_output_stream_get_raw(stream);
-  auto status = arrow_stream->SetBufferSize(size);
-  return garrow_error_check(error,
-                            status,
-                            "[cuda][buffer-output-stream][set-buffer-size]");
-}
-
-/**
- * garrow_cuda_buffer_output_stream_get_buffer_size:
- * @stream: A #GArrowCUDABufferOutputStream.
- *
- * Returns: The CPU buffer size in bytes.
- *
- * See garrow_cuda_buffer_output_stream_set_buffer_size() for CPU
- * buffer size details.
- *
- * Since: 0.8.0
- */
-gint64
-garrow_cuda_buffer_output_stream_get_buffer_size(GArrowCUDABufferOutputStream *stream)
-{
-  auto arrow_stream = garrow_cuda_buffer_output_stream_get_raw(stream);
-  return arrow_stream->buffer_size();
-}
-
-/**
- * garrow_cuda_buffer_output_stream_get_buffered_size:
- * @stream: A #GArrowCUDABufferOutputStream.
- *
- * Returns: The size of buffered data in bytes.
- *
- * Since: 0.8.0
- */
-gint64
-garrow_cuda_buffer_output_stream_get_buffered_size(GArrowCUDABufferOutputStream *stream)
-{
-  auto arrow_stream = garrow_cuda_buffer_output_stream_get_raw(stream);
-  return arrow_stream->num_bytes_buffered();
-}
-
-
-G_END_DECLS
-
-GArrowCUDAContext *
-garrow_cuda_context_new_raw(std::shared_ptr<arrow::cuda::CudaContext> *arrow_context)
-{
-  return GARROW_CUDA_CONTEXT(g_object_new(GARROW_CUDA_TYPE_CONTEXT,
-                                          "context", arrow_context,
-                                          NULL));
-}
-
-std::shared_ptr<arrow::cuda::CudaContext>
-garrow_cuda_context_get_raw(GArrowCUDAContext *context)
-{
-  if (!context)
-    return nullptr;
-
-  auto priv = GARROW_CUDA_CONTEXT_GET_PRIVATE(context);
-  return priv->context;
-}
-
-GArrowCUDAIPCMemoryHandle *
-garrow_cuda_ipc_memory_handle_new_raw(std::shared_ptr<arrow::cuda::CudaIpcMemHandle> *arrow_handle)
-{
-  auto handle = g_object_new(GARROW_CUDA_TYPE_IPC_MEMORY_HANDLE,
-                             "ipc-memory-handle", arrow_handle,
-                             NULL);
-  return GARROW_CUDA_IPC_MEMORY_HANDLE(handle);
-}
-
-std::shared_ptr<arrow::cuda::CudaIpcMemHandle>
-garrow_cuda_ipc_memory_handle_get_raw(GArrowCUDAIPCMemoryHandle *handle)
-{
-  if (!handle)
-    return nullptr;
-
-  auto priv = GARROW_CUDA_IPC_MEMORY_HANDLE_GET_PRIVATE(handle);
-  return priv->ipc_memory_handle;
-}
-
-GArrowCUDABuffer *
-garrow_cuda_buffer_new_raw(std::shared_ptr<arrow::cuda::CudaBuffer> *arrow_buffer)
-{
-  return GARROW_CUDA_BUFFER(g_object_new(GARROW_CUDA_TYPE_BUFFER,
-                                         "buffer", arrow_buffer,
-                                         NULL));
-}
-
-std::shared_ptr<arrow::cuda::CudaBuffer>
-garrow_cuda_buffer_get_raw(GArrowCUDABuffer *buffer)
-{
-  if (!buffer)
-    return nullptr;
-
-  auto arrow_buffer = garrow_buffer_get_raw(GARROW_BUFFER(buffer));
-  return std::static_pointer_cast<arrow::cuda::CudaBuffer>(arrow_buffer);
-}
-
-GArrowCUDAHostBuffer *
-garrow_cuda_host_buffer_new_raw(std::shared_ptr<arrow::cuda::CudaHostBuffer> *arrow_buffer)
-{
-  auto buffer = g_object_new(GARROW_CUDA_TYPE_HOST_BUFFER,
-                             "buffer", arrow_buffer,
-                             NULL);
-  return GARROW_CUDA_HOST_BUFFER(buffer);
-}
-
-std::shared_ptr<arrow::cuda::CudaHostBuffer>
-garrow_cuda_host_buffer_get_raw(GArrowCUDAHostBuffer *buffer)
-{
-  if (!buffer)
-    return nullptr;
-
-  auto arrow_buffer = garrow_buffer_get_raw(GARROW_BUFFER(buffer));
-  return std::static_pointer_cast<arrow::cuda::CudaHostBuffer>(arrow_buffer);
-}
-
-GArrowCUDABufferInputStream *
-garrow_cuda_buffer_input_stream_new_raw(std::shared_ptr<arrow::cuda::CudaBufferReader> *arrow_reader)
-{
-  auto input_stream = g_object_new(GARROW_CUDA_TYPE_BUFFER_INPUT_STREAM,
-                                   "input-stream", arrow_reader,
-                                   NULL);
-  return GARROW_CUDA_BUFFER_INPUT_STREAM(input_stream);
-}
-
-std::shared_ptr<arrow::cuda::CudaBufferReader>
-garrow_cuda_buffer_input_stream_get_raw(GArrowCUDABufferInputStream *input_stream)
-{
-  if (!input_stream)
-    return nullptr;
-
-  auto arrow_reader =
-    garrow_input_stream_get_raw(GARROW_INPUT_STREAM(input_stream));
-  return std::static_pointer_cast<arrow::cuda::CudaBufferReader>(arrow_reader);
-}
-
-GArrowCUDABufferOutputStream *
-garrow_cuda_buffer_output_stream_new_raw(std::shared_ptr<arrow::cuda::CudaBufferWriter> *arrow_writer)
-{
-  auto output_stream = g_object_new(GARROW_CUDA_TYPE_BUFFER_OUTPUT_STREAM,
-                                    "output-stream", arrow_writer,
-                                    NULL);
-  return GARROW_CUDA_BUFFER_OUTPUT_STREAM(output_stream);
-}
-
-std::shared_ptr<arrow::cuda::CudaBufferWriter>
-garrow_cuda_buffer_output_stream_get_raw(GArrowCUDABufferOutputStream *output_stream)
-{
-  if (!output_stream)
-    return nullptr;
-
-  auto arrow_writer =
-    garrow_output_stream_get_raw(GARROW_OUTPUT_STREAM(output_stream));
-  return std::static_pointer_cast<arrow::cuda::CudaBufferWriter>(arrow_writer);
-}
diff --git a/c_glib/arrow-cuda-glib/cuda.h b/c_glib/arrow-cuda-glib/cuda.h
deleted file mode 100644
index 3c98dae..0000000
--- a/c_glib/arrow-cuda-glib/cuda.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.h>
-
-G_BEGIN_DECLS
-
-#define GARROW_CUDA_TYPE_DEVICE_MANAGER (garrow_cuda_device_manager_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDADeviceManager,
-                         garrow_cuda_device_manager,
-                         GARROW_CUDA,
-                         DEVICE_MANAGER,
-                         GObject)
-struct _GArrowCUDADeviceManagerClass
-{
-  GObjectClass parent_class;
-};
-
-#define GARROW_CUDA_TYPE_CONTEXT (garrow_cuda_context_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDAContext,
-                         garrow_cuda_context,
-                         GARROW_CUDA,
-                         CONTEXT,
-                         GObject)
-struct _GArrowCUDAContextClass
-{
-  GObjectClass parent_class;
-};
-
-#define GARROW_CUDA_TYPE_BUFFER (garrow_cuda_buffer_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDABuffer,
-                         garrow_cuda_buffer,
-                         GARROW_CUDA,
-                         BUFFER,
-                         GArrowBuffer)
-struct _GArrowCUDABufferClass
-{
-  GArrowBufferClass parent_class;
-};
-
-#define GARROW_CUDA_TYPE_HOST_BUFFER (garrow_cuda_host_buffer_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDAHostBuffer,
-                         garrow_cuda_host_buffer,
-                         GARROW_CUDA,
-                         HOST_BUFFER,
-                         GArrowMutableBuffer)
-struct _GArrowCUDAHostBufferClass
-{
-  GArrowMutableBufferClass parent_class;
-};
-
-#define GARROW_CUDA_TYPE_IPC_MEMORY_HANDLE      \
-  (garrow_cuda_ipc_memory_handle_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDAIPCMemoryHandle,
-                         garrow_cuda_ipc_memory_handle,
-                         GARROW_CUDA,
-                         IPC_MEMORY_HANDLE,
-                         GObject)
-struct _GArrowCUDAIPCMemoryHandleClass
-{
-  GObjectClass parent_class;
-};
-
-#define GARROW_CUDA_TYPE_BUFFER_INPUT_STREAM    \
-  (garrow_cuda_buffer_input_stream_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDABufferInputStream,
-                         garrow_cuda_buffer_input_stream,
-                         GARROW_CUDA,
-                         BUFFER_INPUT_STREAM,
-                         GArrowBufferInputStream)
-struct _GArrowCUDABufferInputStreamClass
-{
-  GArrowBufferInputStreamClass parent_class;
-};
-
-#define GARROW_CUDA_TYPE_BUFFER_OUTPUT_STREAM   \
-  (garrow_cuda_buffer_output_stream_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowCUDABufferOutputStream,
-                         garrow_cuda_buffer_output_stream,
-                         GARROW_CUDA,
-                         BUFFER_OUTPUT_STREAM,
-                         GArrowOutputStream)
-struct _GArrowCUDABufferOutputStreamClass
-{
-  GArrowOutputStreamClass parent_class;
-};
-
-GArrowCUDADeviceManager *
-garrow_cuda_device_manager_new(GError **error);
-
-GArrowCUDAContext *
-garrow_cuda_device_manager_get_context(GArrowCUDADeviceManager *manager,
-                                       gint gpu_number,
-                                       GError **error);
-gsize
-garrow_cuda_device_manager_get_n_devices(GArrowCUDADeviceManager *manager);
-
-gint64
-garrow_cuda_context_get_allocated_size(GArrowCUDAContext *context);
-
-
-GArrowCUDABuffer *
-garrow_cuda_buffer_new(GArrowCUDAContext *context,
-                       gint64 size,
-                       GError **error);
-GArrowCUDABuffer *
-garrow_cuda_buffer_new_ipc(GArrowCUDAContext *context,
-                           GArrowCUDAIPCMemoryHandle *handle,
-                           GError **error);
-GArrowCUDABuffer *
-garrow_cuda_buffer_new_record_batch(GArrowCUDAContext *context,
-                                    GArrowRecordBatch *record_batch,
-                                    GError **error);
-GBytes *
-garrow_cuda_buffer_copy_to_host(GArrowCUDABuffer *buffer,
-                                gint64 position,
-                                gint64 size,
-                                GError **error);
-gboolean
-garrow_cuda_buffer_copy_from_host(GArrowCUDABuffer *buffer,
-                                  const guint8 *data,
-                                  gint64 size,
-                                  GError **error);
-GArrowCUDAIPCMemoryHandle *
-garrow_cuda_buffer_export(GArrowCUDABuffer *buffer,
-                          GError **error);
-GArrowCUDAContext *
-garrow_cuda_buffer_get_context(GArrowCUDABuffer *buffer);
-GArrowRecordBatch *
-garrow_cuda_buffer_read_record_batch(GArrowCUDABuffer *buffer,
-                                     GArrowSchema *schema,
-                                     GArrowReadOptions *options,
-                                     GError **error);
-
-
-GArrowCUDAHostBuffer *
-garrow_cuda_host_buffer_new(gint gpu_number,
-                            gint64 size,
-                            GError **error);
-
-GArrowCUDAIPCMemoryHandle *
-garrow_cuda_ipc_memory_handle_new(const guint8 *data,
-                                  gsize size,
-                                  GError **error);
-
-GArrowBuffer *
-garrow_cuda_ipc_memory_handle_serialize(GArrowCUDAIPCMemoryHandle *handle,
-                                        GError **error);
-
-GArrowCUDABufferInputStream *
-garrow_cuda_buffer_input_stream_new(GArrowCUDABuffer *buffer);
-
-GArrowCUDABufferOutputStream *
-garrow_cuda_buffer_output_stream_new(GArrowCUDABuffer *buffer);
-
-gboolean
-garrow_cuda_buffer_output_stream_set_buffer_size(GArrowCUDABufferOutputStream *stream,
-                                                 gint64 size,
-                                                 GError **error);
-gint64
-garrow_cuda_buffer_output_stream_get_buffer_size(GArrowCUDABufferOutputStream *stream);
-gint64
-garrow_cuda_buffer_output_stream_get_buffered_size(GArrowCUDABufferOutputStream *stream);
-
-G_END_DECLS
diff --git a/c_glib/arrow-cuda-glib/cuda.hpp b/c_glib/arrow-cuda-glib/cuda.hpp
deleted file mode 100644
index 0f8985a..0000000
--- a/c_glib/arrow-cuda-glib/cuda.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow/gpu/cuda_api.h>
-
-#include <arrow-cuda-glib/cuda.h>
-
-GArrowCUDAContext *
-garrow_cuda_context_new_raw(std::shared_ptr<arrow::cuda::CudaContext> *arrow_context);
-std::shared_ptr<arrow::cuda::CudaContext>
-garrow_cuda_context_get_raw(GArrowCUDAContext *context);
-
-GArrowCUDAIPCMemoryHandle *
-garrow_cuda_ipc_memory_handle_new_raw(std::shared_ptr<arrow::cuda::CudaIpcMemHandle> *arrow_handle);
-std::shared_ptr<arrow::cuda::CudaIpcMemHandle>
-garrow_cuda_ipc_memory_handle_get_raw(GArrowCUDAIPCMemoryHandle *handle);
-
-GArrowCUDABuffer *
-garrow_cuda_buffer_new_raw(std::shared_ptr<arrow::cuda::CudaBuffer> *arrow_buffer);
-std::shared_ptr<arrow::cuda::CudaBuffer>
-garrow_cuda_buffer_get_raw(GArrowCUDABuffer *buffer);
-
-GArrowCUDAHostBuffer *
-garrow_cuda_host_buffer_new_raw(std::shared_ptr<arrow::cuda::CudaHostBuffer> *arrow_buffer);
-std::shared_ptr<arrow::cuda::CudaHostBuffer>
-garrow_cuda_host_buffer_get_raw(GArrowCUDAHostBuffer *buffer);
-
-GArrowCUDABufferInputStream *
-garrow_cuda_buffer_input_stream_new_raw(std::shared_ptr<arrow::cuda::CudaBufferReader> *arrow_reader);
-std::shared_ptr<arrow::cuda::CudaBufferReader>
-garrow_cuda_buffer_input_stream_get_raw(GArrowCUDABufferInputStream *input_stream);
-
-GArrowCUDABufferOutputStream *
-garrow_cuda_buffer_output_stream_new_raw(std::shared_ptr<arrow::cuda::CudaBufferWriter> *arrow_writer);
-std::shared_ptr<arrow::cuda::CudaBufferWriter>
-garrow_cuda_buffer_output_stream_get_raw(GArrowCUDABufferOutputStream *output_stream);
diff --git a/c_glib/arrow-cuda-glib/meson.build b/c_glib/arrow-cuda-glib/meson.build
deleted file mode 100644
index a655be0..0000000
--- a/c_glib/arrow-cuda-glib/meson.build
+++ /dev/null
@@ -1,81 +0,0 @@
-# -*- indent-tabs-mode: nil -*-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-sources = files(
-  'cuda.cpp',
-)
-
-c_headers = files(
-  'arrow-cuda-glib.h',
-  'cuda.h',
-)
-
-cpp_headers = files(
-  'arrow-cuda-glib.hpp',
-  'cuda.hpp',
-)
-
-headers = c_headers + cpp_headers
-install_headers(headers, subdir: 'arrow-cuda-glib')
-
-
-dependencies = [
-  arrow_cuda,
-  arrow_glib,
-]
-libarrow_cuda_glib = library('arrow-cuda-glib',
-                             sources: sources,
-                             install: true,
-                             dependencies: dependencies,
-                             include_directories: base_include_directories,
-                             soversion: so_version,
-                             version: library_version)
-arrow_cuda_glib = declare_dependency(link_with: libarrow_cuda_glib,
-                                     include_directories: base_include_directories,
-                                     dependencies: dependencies)
-
-pkgconfig.generate(libarrow_cuda_glib,
-                   filebase: 'arrow-cuda-glib',
-                   name: 'Apache Arrow CUDA GLib',
-                   description: 'C API for Apache Arrow CUDA based on GLib',
-                   version: version,
-                   requires: ['arrow-glib', 'arrow-cuda'])
-
-if have_gi
-  gir_dependencies = [
-    declare_dependency(sources: arrow_glib_gir),
-  ]
-  gir_extra_args = [
-    '--warn-all',
-    '--include-uninstalled=./arrow-glib/Arrow-1.0.gir',
-  ]
-  arrow_cuda_glib_gir = gnome.generate_gir(libarrow_cuda_glib,
-                                           dependencies: gir_dependencies,
-                                           sources: sources + c_headers,
-                                           namespace: 'ArrowCUDA',
-                                           nsversion: api_version,
-                                           identifier_prefix: 'GArrowCUDA',
-                                           symbol_prefix: 'garrow_cuda',
-                                           export_packages: 'arrow-cuda-glib',
-                                           includes: [
-                                             'Arrow-1.0',
-                                           ],
-                                           install: true,
-                                           extra_args: gir_extra_args)
-endif
diff --git a/c_glib/arrow-dataset-glib/arrow-dataset-glib.h b/c_glib/arrow-dataset-glib/arrow-dataset-glib.h
deleted file mode 100644
index ff16045..0000000
--- a/c_glib/arrow-dataset-glib/arrow-dataset-glib.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.h>
-
-#include <arrow-dataset-glib/file-format.h>
-#include <arrow-dataset-glib/fragment.h>
-#include <arrow-dataset-glib/scanner.h>
diff --git a/c_glib/arrow-dataset-glib/arrow-dataset-glib.hpp b/c_glib/arrow-dataset-glib/arrow-dataset-glib.hpp
deleted file mode 100644
index c221825..0000000
--- a/c_glib/arrow-dataset-glib/arrow-dataset-glib.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.hpp>
-
-#include <arrow-dataset-glib/file-format.hpp>
-#include <arrow-dataset-glib/fragment.hpp>
-#include <arrow-dataset-glib/scanner.hpp>
diff --git a/c_glib/arrow-dataset-glib/file-format.cpp b/c_glib/arrow-dataset-glib/file-format.cpp
deleted file mode 100644
index 7f10c9d..0000000
--- a/c_glib/arrow-dataset-glib/file-format.cpp
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <arrow-glib/error.hpp>
-
-#include <arrow-dataset-glib/file-format.hpp>
-
-G_BEGIN_DECLS
-
-/**
- * SECTION: file-format
- * @section_id: file-format
- * @title: File format classes
- * @include: arrow-dataset-glib/arrow-dataset-glib.h
- *
- * #GADFileFormat is a base class for file format classes.
- *
- * #GADCSVFileFormat is a class for CSV file format.
- *
- * #GADIPCFileFormat is a class for IPC file format.
- *
- * #GADParquetFileFormat is a class for Parquet file format.
- *
- * * Since: 3.0.0
- */
-
-typedef struct GADFileFormatPrivate_ {
-  std::shared_ptr<arrow::dataset::FileFormat> file_format;
-} GADFileFormatPrivate;
-
-enum {
-  PROP_FILE_FORMAT = 1,
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE(GADFileFormat,
-                           gad_file_format,
-                           G_TYPE_OBJECT)
-
-#define GAD_FILE_FORMAT_GET_PRIVATE(obj)        \
-  static_cast<GADFileFormatPrivate *>(          \
-    gad_file_format_get_instance_private(       \
-      GAD_FILE_FORMAT(obj)))
-
-static void
-gad_file_format_finalize(GObject *object)
-{
-  auto priv = GAD_FILE_FORMAT_GET_PRIVATE(object);
-
-  priv->file_format.~shared_ptr();
-
-  G_OBJECT_CLASS(gad_file_format_parent_class)->finalize(object);
-}
-
-static void
-gad_file_format_set_property(GObject *object,
-                             guint prop_id,
-                             const GValue *value,
-                             GParamSpec *pspec)
-{
-  auto priv = GAD_FILE_FORMAT_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_FILE_FORMAT:
-    priv->file_format =
-      *static_cast<std::shared_ptr<arrow::dataset::FileFormat> *>(g_value_get_pointer(value));
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-gad_file_format_init(GADFileFormat *object)
-{
-  auto priv = GAD_FILE_FORMAT_GET_PRIVATE(object);
-  new(&priv->file_format) std::shared_ptr<arrow::dataset::FileFormat>;
-}
-
-static void
-gad_file_format_class_init(GADFileFormatClass *klass)
-{
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->finalize     = gad_file_format_finalize;
-  gobject_class->set_property = gad_file_format_set_property;
-
-  GParamSpec *spec;
-  spec = g_param_spec_pointer("file-format",
-                              "FileFormat",
-                              "The raw std::shared<arrow::dataset::FileFormat> *",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_FILE_FORMAT, spec);
-}
-
-/**
- * gad_file_format_get_type_name:
- * @file_format: A #GADFileFormat.
- *
- * Returns: The type name of @file_format.
- *
- *   It should be freed with g_free() when no longer needed.
- *
- * Since: 3.0.0
- */
-gchar *
-gad_file_format_get_type_name(GADFileFormat *file_format)
-{
-  const auto arrow_file_format = gad_file_format_get_raw(file_format);
-  const auto &type_name = arrow_file_format->type_name();
-  return g_strndup(type_name.data(), type_name.size());
-}
-
-/**
- * gad_file_format_equal:
- * @file_format: A #GADFileFormat.
- * @other_file_format: A #GADFileFormat to be compared.
- *
- * Returns: %TRUE if they are the same content file format, %FALSE otherwise.
- *
- * Since: 3.0.0
- */
-gboolean
-gad_file_format_equal(GADFileFormat *file_format,
-                      GADFileFormat *other_file_format)
-{
-  const auto arrow_file_format = gad_file_format_get_raw(file_format);
-  const auto arrow_other_file_format = gad_file_format_get_raw(other_file_format);
-  return arrow_file_format->Equals(*arrow_other_file_format);
-}
-
-
-G_DEFINE_TYPE(GADCSVFileFormat,
-              gad_csv_file_format,
-              GAD_TYPE_FILE_FORMAT)
-
-static void
-gad_csv_file_format_init(GADCSVFileFormat *object)
-{
-}
-
-static void
-gad_csv_file_format_class_init(GADCSVFileFormatClass *klass)
-{
-}
-
-/**
- * gad_csv_file_format_new:
- *
- * Returns: The newly created CSV file format.
- *
- * Since: 3.0.0
- */
-GADCSVFileFormat *
-gad_csv_file_format_new(void)
-{
-  std::shared_ptr<arrow::dataset::FileFormat> arrow_file_format =
-    std::make_shared<arrow::dataset::CsvFileFormat>();
-  return GAD_CSV_FILE_FORMAT(gad_file_format_new_raw(&arrow_file_format));
-}
-
-
-G_DEFINE_TYPE(GADIPCFileFormat,
-              gad_ipc_file_format,
-              GAD_TYPE_FILE_FORMAT)
-
-static void
-gad_ipc_file_format_init(GADIPCFileFormat *object)
-{
-}
-
-static void
-gad_ipc_file_format_class_init(GADIPCFileFormatClass *klass)
-{
-}
-
-/**
- * gad_ipc_file_format_new:
- *
- * Returns: The newly created IPC file format.
- *
- * Since: 3.0.0
- */
-GADIPCFileFormat *
-gad_ipc_file_format_new(void)
-{
-  std::shared_ptr<arrow::dataset::FileFormat> arrow_file_format =
-    std::make_shared<arrow::dataset::IpcFileFormat>();
-  return GAD_IPC_FILE_FORMAT(gad_file_format_new_raw(&arrow_file_format));
-}
-
-
-G_DEFINE_TYPE(GADParquetFileFormat,
-              gad_parquet_file_format,
-              GAD_TYPE_FILE_FORMAT)
-
-static void
-gad_parquet_file_format_init(GADParquetFileFormat *object)
-{
-}
-
-static void
-gad_parquet_file_format_class_init(GADParquetFileFormatClass *klass)
-{
-}
-
-/**
- * gad_parquet_file_format_new:
- *
- * Returns: The newly created Parquet file format.
- *
- * Since: 3.0.0
- */
-GADParquetFileFormat *
-gad_parquet_file_format_new(void)
-{
-  std::shared_ptr<arrow::dataset::FileFormat> arrow_file_format =
-    std::make_shared<arrow::dataset::ParquetFileFormat>();
-  return GAD_PARQUET_FILE_FORMAT(gad_file_format_new_raw(&arrow_file_format));
-}
-
-
-G_END_DECLS
-
-GADFileFormat *
-gad_file_format_new_raw(
-  std::shared_ptr<arrow::dataset::FileFormat> *arrow_file_format)
-{
-  GType type = GAD_TYPE_FILE_FORMAT;
-  const auto &type_name = (*arrow_file_format)->type_name();
-  if (type_name == "csv") {
-    type = GAD_TYPE_CSV_FILE_FORMAT;
-  } else if (type_name == "ipc") {
-    type = GAD_TYPE_IPC_FILE_FORMAT;
-  } else if (type_name == "parquet") {
-    type = GAD_TYPE_PARQUET_FILE_FORMAT;
-  }
-  return GAD_FILE_FORMAT(g_object_new(type,
-                                      "file-format", arrow_file_format,
-                                      NULL));
-}
-
-std::shared_ptr<arrow::dataset::FileFormat>
-gad_file_format_get_raw(GADFileFormat *file_format)
-{
-  auto priv = GAD_FILE_FORMAT_GET_PRIVATE(file_format);
-  return priv->file_format;
-}
diff --git a/c_glib/arrow-dataset-glib/file-format.h b/c_glib/arrow-dataset-glib/file-format.h
deleted file mode 100644
index f77addc..0000000
--- a/c_glib/arrow-dataset-glib/file-format.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.h>
-
-G_BEGIN_DECLS
-
-#define GAD_TYPE_FILE_FORMAT (gad_file_format_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADFileFormat,
-                         gad_file_format,
-                         GAD,
-                         FILE_FORMAT,
-                         GObject)
-struct _GADFileFormatClass
-{
-  GObjectClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_3_0
-gchar *
-gad_file_format_get_type_name(GADFileFormat *file_format);
-
-GARROW_AVAILABLE_IN_3_0
-gboolean
-gad_file_format_equal(GADFileFormat *file_format,
-                      GADFileFormat *other_file_format);
-
-
-#define GAD_TYPE_CSV_FILE_FORMAT (gad_csv_file_format_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADCSVFileFormat,
-                         gad_csv_file_format,
-                         GAD,
-                         CSV_FILE_FORMAT,
-                         GADFileFormat)
-struct _GADCSVFileFormatClass
-{
-  GADFileFormatClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_3_0
-GADCSVFileFormat *gad_csv_file_format_new(void);
-
-
-#define GAD_TYPE_IPC_FILE_FORMAT (gad_ipc_file_format_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADIPCFileFormat,
-                         gad_ipc_file_format,
-                         GAD,
-                         IPC_FILE_FORMAT,
-                         GADFileFormat)
-struct _GADIPCFileFormatClass
-{
-  GADFileFormatClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_3_0
-GADIPCFileFormat *gad_ipc_file_format_new(void);
-
-
-#define GAD_TYPE_PARQUET_FILE_FORMAT (gad_parquet_file_format_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADParquetFileFormat,
-                         gad_parquet_file_format,
-                         GAD,
-                         PARQUET_FILE_FORMAT,
-                         GADFileFormat)
-struct _GADParquetFileFormatClass
-{
-  GADFileFormatClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_3_0
-GADParquetFileFormat *gad_parquet_file_format_new(void);
-
-
-G_END_DECLS
diff --git a/c_glib/arrow-dataset-glib/file-format.hpp b/c_glib/arrow-dataset-glib/file-format.hpp
deleted file mode 100644
index e7e73f4..0000000
--- a/c_glib/arrow-dataset-glib/file-format.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow/dataset/api.h>
-
-#include <arrow-dataset-glib/file-format.h>
-
-GADFileFormat *
-gad_file_format_new_raw(
-  std::shared_ptr<arrow::dataset::FileFormat> *arrow_file_format);
-std::shared_ptr<arrow::dataset::FileFormat>
-gad_file_format_get_raw(GADFileFormat *file_format);
diff --git a/c_glib/arrow-dataset-glib/fragment.cpp b/c_glib/arrow-dataset-glib/fragment.cpp
deleted file mode 100644
index 515a370..0000000
--- a/c_glib/arrow-dataset-glib/fragment.cpp
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <arrow-glib/record-batch.hpp>
-#include <arrow-glib/schema.hpp>
-
-#include <arrow-dataset-glib/fragment.hpp>
-
-G_BEGIN_DECLS
-
-/**
- * SECTION: fragment
- * @section_id: fragment
- * @title: Fragment classes
- * @include: arrow-dataset-glib/arrow-dataset-glib.h
- *
- * #GADFragment is a base class for all fragment classes.
- *
- * #GADInMemoryFragment is a class for in-memory fragment.
- *
- * Since: 4.0.0
- */
-
-/* arrow::dataset::Fragment */
-
-typedef struct GADFragmentPrivate_ {
-  std::shared_ptr<arrow::dataset::Fragment> fragment;
-} GADFragmentPrivate;
-
-enum {
-  PROP_FRAGMENT = 1,
-};
-
-G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(GADFragment,
-                                    gad_fragment,
-                                    G_TYPE_OBJECT)
-
-#define GAD_FRAGMENT_GET_PRIVATE(obj)           \
-  static_cast<GADFragmentPrivate *>(            \
-    gad_fragment_get_instance_private(          \
-      GAD_FRAGMENT(obj)))
-
-static void
-gad_fragment_finalize(GObject *object)
-{
-  auto priv = GAD_FRAGMENT_GET_PRIVATE(object);
-
-  priv->fragment.~shared_ptr();
-
-  G_OBJECT_CLASS(gad_fragment_parent_class)->finalize(object);
-}
-
-static void
-gad_fragment_set_property(GObject *object,
-                          guint prop_id,
-                          const GValue *value,
-                          GParamSpec *pspec)
-{
-  auto priv = GAD_FRAGMENT_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_FRAGMENT:
-    priv->fragment =
-      *static_cast<std::shared_ptr<arrow::dataset::Fragment> *>(g_value_get_pointer(value));
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-gad_fragment_init(GADFragment *object)
-{
-  auto priv = GAD_FRAGMENT_GET_PRIVATE(object);
-  new(&priv->fragment) std::shared_ptr<arrow::dataset::Fragment>;
-}
-
-static void
-gad_fragment_class_init(GADFragmentClass *klass)
-{
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->finalize     = gad_fragment_finalize;
-  gobject_class->set_property = gad_fragment_set_property;
-
-  GParamSpec *spec;
-  spec = g_param_spec_pointer("fragment",
-                              "Fragment",
-                              "The raw std::shared<arrow::dataset::Fragment> *",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_FRAGMENT, spec);
-}
-
-/* arrow::dataset::InMemoryFragment */
-
-G_DEFINE_TYPE(GADInMemoryFragment,
-              gad_in_memory_fragment,
-              GAD_TYPE_FRAGMENT)
-
-static void
-gad_in_memory_fragment_init(GADInMemoryFragment *object)
-{
-}
-
-static void
-gad_in_memory_fragment_class_init(GADInMemoryFragmentClass *klass)
-{
-}
-
-/**
- * gad_in_memory_fragment_new:
- * @schema: A #GArrowSchema.
- * @record_batches: (array length=n_record_batches):
- *   (element-type GArrowRecordBatch): The record batches of the table.
- * @n_record_batches: The number of record batches.
- *
- * Returns: A newly created #GADInMemoryFragment.
- *
- * Since: 4.0.0
- */
-GADInMemoryFragment *
-gad_in_memory_fragment_new(GArrowSchema *schema,
-                           GArrowRecordBatch **record_batches,
-                           gsize n_record_batches)
-{
-  auto arrow_schema = garrow_schema_get_raw(schema);
-  std::vector<std::shared_ptr<arrow::RecordBatch>> arrow_record_batches;
-  arrow_record_batches.reserve(n_record_batches);
-  for (gsize i = 0; i < n_record_batches; ++i) {
-    auto arrow_record_batch = garrow_record_batch_get_raw(record_batches[i]);
-    arrow_record_batches.push_back(arrow_record_batch);
-  }
-  auto arrow_in_memory_fragment =
-    std::make_shared<arrow::dataset::InMemoryFragment>(arrow_schema,
-                                                       arrow_record_batches);
-  return gad_in_memory_fragment_new_raw(&arrow_in_memory_fragment);
-}
-
-G_END_DECLS
-
-GADFragment *
-gad_fragment_new_raw(std::shared_ptr<arrow::dataset::Fragment> *arrow_fragment)
-{
-  auto fragment =
-    GAD_FRAGMENT(g_object_new(GAD_TYPE_FRAGMENT,
-                              "fragment", arrow_fragment,
-                              NULL));
-  return fragment;
-}
-
-std::shared_ptr<arrow::dataset::Fragment>
-gad_fragment_get_raw(GADFragment *fragment)
-{
-  auto priv = GAD_FRAGMENT_GET_PRIVATE(fragment);
-  return priv->fragment;
-}
-
-GADInMemoryFragment *
-gad_in_memory_fragment_new_raw(std::shared_ptr<arrow::dataset::InMemoryFragment> *arrow_fragment)
-{
-  auto fragment =
-    GAD_IN_MEMORY_FRAGMENT(g_object_new(GAD_TYPE_IN_MEMORY_FRAGMENT,
-                                        "fragment", arrow_fragment,
-                                        NULL));
-  return fragment;
-}
diff --git a/c_glib/arrow-dataset-glib/fragment.h b/c_glib/arrow-dataset-glib/fragment.h
deleted file mode 100644
index c0ee876..0000000
--- a/c_glib/arrow-dataset-glib/fragment.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.h>
-
-G_BEGIN_DECLS
-
-/* arrow::dataset::Fragment */
-
-#define GAD_TYPE_FRAGMENT (gad_fragment_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADFragment,
-                         gad_fragment,
-                         GAD,
-                         FRAGMENT,
-                         GObject)
-struct _GADFragmentClass
-{
-  GObjectClass parent_class;
-};
-
-/* arrow::dataset::InMemoryFragment */
-
-#define GAD_TYPE_IN_MEMORY_FRAGMENT (gad_in_memory_fragment_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADInMemoryFragment,
-                         gad_in_memory_fragment,
-                         GAD,
-                         IN_MEMORY_FRAGMENT,
-                         GADFragment)
-struct _GADInMemoryFragmentClass
-{
-  GADFragmentClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_4_0
-GADInMemoryFragment *
-gad_in_memory_fragment_new(GArrowSchema *schema,
-                           GArrowRecordBatch **record_batches,
-                           gsize n_record_batches);
-
-G_END_DECLS
diff --git a/c_glib/arrow-dataset-glib/fragment.hpp b/c_glib/arrow-dataset-glib/fragment.hpp
deleted file mode 100644
index 441b7c9..0000000
--- a/c_glib/arrow-dataset-glib/fragment.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow/dataset/api.h>
-
-#include <arrow-dataset-glib/fragment.h>
-
-std::shared_ptr<arrow::dataset::Fragment>
-gad_fragment_get_raw(GADFragment *fragment);
-
-GADFragment*
-gad_fragment_new_raw(std::shared_ptr<arrow::dataset::Fragment> *arrow_fragment);
-
-GADInMemoryFragment*
-gad_in_memory_fragment_new_raw(std::shared_ptr<arrow::dataset::InMemoryFragment> *arrow_fragment);
diff --git a/c_glib/arrow-dataset-glib/meson.build b/c_glib/arrow-dataset-glib/meson.build
deleted file mode 100644
index 83b5750..0000000
--- a/c_glib/arrow-dataset-glib/meson.build
+++ /dev/null
@@ -1,82 +0,0 @@
-# -*- indent-tabs-mode: nil -*-
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-sources = files(
-  'file-format.cpp',
-  'fragment.cpp',
-  'scanner.cpp',
-)
-
-c_headers = files(
-  'arrow-dataset-glib.h',
-  'file-format.h',
-  'fragment.h',
-  'scanner.h',
-)
-
-cpp_headers = files(
-  'arrow-dataset-glib.hpp',
-  'file-format.hpp',
-  'fragment.hpp',
-  'scanner.hpp',
-)
-
-headers = c_headers + cpp_headers
-install_headers(headers, subdir: 'arrow-dataset-glib')
-
-dependencies = [
-  arrow_dataset,
-  arrow_glib,
-]
-libarrow_dataset_glib = library('arrow-dataset-glib',
-                                sources: sources,
-                                install: true,
-                                dependencies: dependencies,
-                                include_directories: base_include_directories,
-                                soversion: so_version,
-                                version: library_version)
-arrow_dataset_glib = declare_dependency(link_with: libarrow_dataset_glib,
-                                        include_directories: base_include_directories,
-                                        dependencies: dependencies)
-
-pkgconfig.generate(libarrow_dataset_glib,
-                   filebase: 'arrow-dataset-glib',
-                   name: 'Apache Arrow Dataset GLib',
-                   description: 'C API for Apache Arrow Dataset based on GLib',
-                   version: version,
-                   requires: ['arrow-glib', 'arrow-dataset'])
-
-if have_gi
-  gnome.generate_gir(libarrow_dataset_glib,
-                     dependencies: declare_dependency(sources: arrow_glib_gir),
-                     sources: sources + c_headers,
-                     namespace: 'ArrowDataset',
-                     nsversion: api_version,
-                     identifier_prefix: 'GAD',
-                     symbol_prefix: 'gad',
-                     export_packages: 'arrow-dataset-glib',
-                     includes: [
-                       'Arrow-1.0',
-                     ],
-                     install: true,
-                     extra_args: [
-                       '--warn-all',
-                       '--include-uninstalled=./arrow-glib/Arrow-1.0.gir',
-                     ])
-endif
diff --git a/c_glib/arrow-dataset-glib/scanner.cpp b/c_glib/arrow-dataset-glib/scanner.cpp
deleted file mode 100644
index 36701ca..0000000
--- a/c_glib/arrow-dataset-glib/scanner.cpp
+++ /dev/null
@@ -1,522 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <arrow/util/iterator.h>
-
-#include <arrow-glib/error.hpp>
-#include <arrow-glib/record-batch.hpp>
-#include <arrow-glib/schema.hpp>
-
-#include <arrow-dataset-glib/fragment.hpp>
-#include <arrow-dataset-glib/scanner.hpp>
-
-G_BEGIN_DECLS
-
-/**
- * SECTION: scanner
- * @section_id: scanner
- * @title: Scanner classes
- * @include: arrow-dataset-glib/arrow-dataset-glib.h
- *
- * #GADScanOptions is a class for a set of scan options.
- *
- * #GADScanTask is an abstract class for a scan task.
- *
- * #GADInMemoryScanTask is a class for a scan task of record batches.
- *
- * Since: 1.0.0
- */
-
-/* arrow::dataset::ScanOptions */
-
-typedef struct GADScanOptionsPrivate_ {
-  std::shared_ptr<arrow::dataset::ScanOptions> scan_options;
-} GADScanOptionsPrivate;
-
-enum {
-  PROP_SCAN_OPTIONS = 1,
-  PROP_FILTER,
-  PROP_EVALUATOR,
-  PROP_PROJECTOR,
-  PROP_BATCH_SIZE,
-  PROP_USE_THREADS,
-};
-
-G_DEFINE_TYPE_WITH_PRIVATE(GADScanOptions,
-                           gad_scan_options,
-                           G_TYPE_OBJECT)
-
-#define GAD_SCAN_OPTIONS_GET_PRIVATE(obj)       \
-  static_cast<GADScanOptionsPrivate *>(         \
-    gad_scan_options_get_instance_private(      \
-      GAD_SCAN_OPTIONS(obj)))
-
-static void
-gad_scan_options_finalize(GObject *object)
-{
-  auto priv = GAD_SCAN_OPTIONS_GET_PRIVATE(object);
-
-  priv->scan_options.~shared_ptr();
-
-  G_OBJECT_CLASS(gad_scan_options_parent_class)->finalize(object);
-}
-
-static void
-gad_scan_options_set_property(GObject *object,
-                              guint prop_id,
-                              const GValue *value,
-                              GParamSpec *pspec)
-{
-  auto priv = GAD_SCAN_OPTIONS_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_SCAN_OPTIONS:
-    priv->scan_options =
-      *static_cast<std::shared_ptr<arrow::dataset::ScanOptions> *>(g_value_get_pointer(value));
-    break;
-  case PROP_BATCH_SIZE:
-    priv->scan_options->batch_size = g_value_get_int64(value);
-    break;
-  case PROP_USE_THREADS:
-    priv->scan_options->use_threads = g_value_get_boolean(value);
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-gad_scan_options_get_property(GObject *object,
-                              guint prop_id,
-                              GValue *value,
-                              GParamSpec *pspec)
-{
-  auto priv = GAD_SCAN_OPTIONS_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_BATCH_SIZE:
-    g_value_set_int64(value, priv->scan_options->batch_size);
-    break;
-  case PROP_USE_THREADS:
-    g_value_set_boolean(value, priv->scan_options->use_threads);
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-gad_scan_options_init(GADScanOptions *object)
-{
-  auto priv = GAD_SCAN_OPTIONS_GET_PRIVATE(object);
-  new(&priv->scan_options) std::shared_ptr<arrow::dataset::ScanOptions>;
-}
-
-static void
-gad_scan_options_class_init(GADScanOptionsClass *klass)
-{
-  GObjectClass *gobject_class;
-  GParamSpec *spec;
-
-  gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->finalize     = gad_scan_options_finalize;
-  gobject_class->set_property = gad_scan_options_set_property;
-  gobject_class->get_property = gad_scan_options_get_property;
-
-  auto scan_options = std::make_shared<arrow::dataset::ScanOptions>();
-
-  spec = g_param_spec_pointer("scan-options",
-                              "ScanOptions",
-                              "The raw std::shared<arrow::dataset::ScanOptions> *",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_SCAN_OPTIONS, spec);
-
-  // TODO: PROP_FILTER
-  // TODO: PROP_EVALUATOR
-  // TODO: PROP_PROJECTOR
-
-  /**
-   * GADScanOptions:batch-size:
-   *
-   * Maximum row count for scanned batches.
-   *
-   * Since: 1.0.0
-   */
-  spec = g_param_spec_int64("batch-size",
-                            "Batch size",
-                            "Maximum row count for scanned batches",
-                            0,
-                            G_MAXINT64,
-                            scan_options->batch_size,
-                            static_cast<GParamFlags>(G_PARAM_READWRITE));
-  g_object_class_install_property(gobject_class, PROP_BATCH_SIZE, spec);
-
-  /**
-   * GADScanOptions:use-threads:
-   *
-   * Indicate if the Scanner should make use of a ThreadPool.
-   *
-   * Since: 4.0.0
-   */
-  spec = g_param_spec_boolean("use-threads",
-                              "Use threads",
-                              "Indicate if the Scanner should make use of a ThreadPool",
-                              scan_options->use_threads,
-                              static_cast<GParamFlags>(G_PARAM_READWRITE));
-  g_object_class_install_property(gobject_class, PROP_USE_THREADS, spec);
-}
-
-/**
- * gad_scan_options_new:
- * @schema: A #GArrowSchema.
- *
- * Returns: A newly created #GADScanOptions.
- *
- * Since: 1.0.0
- */
-GADScanOptions *
-gad_scan_options_new(GArrowSchema *schema)
-{
-  auto arrow_schema = garrow_schema_get_raw(schema);
-  auto arrow_scan_options = std::make_shared<arrow::dataset::ScanOptions>();
-  arrow_scan_options->dataset_schema = arrow_schema;
-  return gad_scan_options_new_raw(&arrow_scan_options);
-}
-
-/**
- * gad_scan_options_get_schema:
- * @scan_options: A #GADScanOptions.
- *
- * Returns: (transfer full): A #GArrowSchema.
- *
- * Since: 1.0.0
- */
-GArrowSchema *
-gad_scan_options_get_schema(GADScanOptions *scan_options)
-{
-  auto priv = GAD_SCAN_OPTIONS_GET_PRIVATE(scan_options);
-  auto arrow_schema = priv->scan_options->dataset_schema;
-  return garrow_schema_new_raw(&arrow_schema);
-}
-
-/* arrow::dataset::ScanTask */
-
-typedef struct GADScanTaskPrivate_ {
-  std::shared_ptr<arrow::dataset::ScanTask> scan_task;
-  GADScanOptions *options;
-  GADFragment *fragment;
-} GADScanTaskPrivate;
-
-enum {
-  PROP_SCAN_TASK = 1,
-  PROP_OPTIONS,
-  PROP_FRAGMENT,
-};
-
-G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(GADScanTask,
-                                    gad_scan_task,
-                                    G_TYPE_OBJECT)
-
-#define GAD_SCAN_TASK_GET_PRIVATE(obj)          \
-  static_cast<GADScanTaskPrivate *>(            \
-    gad_scan_task_get_instance_private(         \
-      GAD_SCAN_TASK(obj)))
-
-static void
-gad_scan_task_dispose(GObject *object)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(object);
-
-  if (priv->options) {
-    g_object_unref(priv->options);
-    priv->options = NULL;
-  }
-
-  if (priv->fragment) {
-    g_object_unref(priv->fragment);
-    priv->fragment = NULL;
-  }
-
-  G_OBJECT_CLASS(gad_scan_task_parent_class)->dispose(object);
-}
-
-static void
-gad_scan_task_finalize(GObject *object)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(object);
-
-  priv->scan_task.~shared_ptr();
-
-  G_OBJECT_CLASS(gad_scan_task_parent_class)->finalize(object);
-}
-
-static void
-gad_scan_task_set_property(GObject *object,
-                           guint prop_id,
-                           const GValue *value,
-                           GParamSpec *pspec)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_SCAN_TASK:
-    priv->scan_task =
-      *static_cast<std::shared_ptr<arrow::dataset::ScanTask> *>(g_value_get_pointer(value));
-    break;
-  case PROP_OPTIONS:
-    priv->options = GAD_SCAN_OPTIONS(g_value_dup_object(value));
-    break;
-  case PROP_FRAGMENT:
-    priv->fragment = GAD_FRAGMENT(g_value_dup_object(value));
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-gad_scan_task_get_property(GObject *object,
-                           guint prop_id,
-                           GValue *value,
-                           GParamSpec *pspec)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_OPTIONS:
-    g_value_set_object(value, priv->options);
-    break;
-  case PROP_FRAGMENT:
-    g_value_set_object(value, priv->fragment);
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-gad_scan_task_init(GADScanTask *object)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(object);
-  new(&priv->scan_task) std::shared_ptr<arrow::dataset::ScanTask>;
-}
-
-static void
-gad_scan_task_class_init(GADScanTaskClass *klass)
-{
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->dispose      = gad_scan_task_dispose;
-  gobject_class->finalize     = gad_scan_task_finalize;
-  gobject_class->set_property = gad_scan_task_set_property;
-  gobject_class->get_property = gad_scan_task_get_property;
-
-  GParamSpec *spec;
-  spec = g_param_spec_pointer("scan-task",
-                              "ScanTask",
-                              "The raw std::shared<arrow::dataset::ScanTask> *",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_SCAN_TASK, spec);
-
-  /**
-   * GADScanTask:options:
-   *
-   * The options of the scan task.
-   *
-   * Since: 1.0.0
-   */
-  spec = g_param_spec_object("options",
-                             "Options",
-                             "The options of the scan task",
-                             GAD_TYPE_SCAN_OPTIONS,
-                             static_cast<GParamFlags>(G_PARAM_READWRITE |
-                                                      G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_OPTIONS, spec);
-
-  /**
-   * GADScanTask:fragment:
-   *
-   * The fragment of the scan task.
-   *
-   * Since: 4.0.0
-   */
-  spec = g_param_spec_object("fragment",
-                             "Fragment",
-                             "The fragment of the scan task",
-                             GAD_TYPE_FRAGMENT,
-                             static_cast<GParamFlags>(G_PARAM_READWRITE |
-                                                      G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_FRAGMENT, spec);
-}
-
-/**
- * gad_scan_task_get_options:
- * @scan_task: A #GADScanTask.
- *
- * Returns: (transfer full): A #GADScanOptions.
- *
- * Since: 1.0.0
- */
-GADScanOptions *
-gad_scan_task_get_options(GADScanTask *scan_task)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(scan_task);
-  if (priv->options) {
-    g_object_ref(priv->options);
-    return priv->options;
-  }
-
-  auto arrow_options = priv->scan_task->options();
-  return gad_scan_options_new_raw(&arrow_options);
-}
-
-/**
- * gad_scan_task_get_fragment:
- * @scan_task: A #GADFragment.
- *
- * Returns: (transfer full): A #GADFragment.
- *
- * Since: 4.0.0
- */
-GADFragment *
-gad_scan_task_get_fragment(GADScanTask *scan_task)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(scan_task);
-  if (priv->fragment) {
-    g_object_ref(priv->fragment);
-    return priv->fragment;
-  }
-
-  auto arrow_fragment = priv->scan_task->fragment();
-  return gad_fragment_new_raw(&arrow_fragment);
-}
-
-/**
- * gad_scan_task_execute:
- * @scan_task: A #GADScanTask.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (nullable) (transfer full): A newly created #GArrowRecordBatchIterator,
- *   or %NULL on error.
- *
- * Since: 1.0.0
- */
-GArrowRecordBatchIterator *gad_scan_task_execute(GADScanTask *scan_task,
-                                                 GError **error)
-{
-  auto priv = GAD_SCAN_TASK_GET_PRIVATE(scan_task);
-  auto arrow_result = priv->scan_task->Execute();
-  if (garrow::check(error, arrow_result, "[datasets][scan-task][execute]")) {
-    auto arrow_record_batch_iteraor = std::move(*arrow_result);
-    return garrow_record_batch_iterator_new_raw(&arrow_record_batch_iteraor);
-  } else {
-    return NULL;
-  }
-}
-
-/* arrow::dataset::InMemoryScanTask */
-
-G_DEFINE_TYPE(GADInMemoryScanTask,
-              gad_in_memory_scan_task,
-              GAD_TYPE_SCAN_TASK)
-
-static void
-gad_in_memory_scan_task_init(GADInMemoryScanTask *object)
-{
-}
-
-static void
-gad_in_memory_scan_task_class_init(GADInMemoryScanTaskClass *klass)
-{
-}
-
-/**
- * gad_in_memory_scan_task_new:
- * @record_batches: (array length=n_record_batches):
- *   (element-type GArrowRecordBatch): The record batches of the table.
- * @n_record_batches: The number of record batches.
- * @options: A #GADScanOptions.
- * @fragment: A #GADInMemoryFragment.
- *
- * Returns: A newly created #GADInMemoryScanTask.
- *
- * Since: 1.0.0
- */
-GADInMemoryScanTask *
-gad_in_memory_scan_task_new(GArrowRecordBatch **record_batches,
-                            gsize n_record_batches,
-                            GADScanOptions *options,
-                            GADInMemoryFragment *fragment)
-{
-  std::vector<std::shared_ptr<arrow::RecordBatch>> arrow_record_batches;
-  arrow_record_batches.reserve(n_record_batches);
-  for (gsize i = 0; i < n_record_batches; ++i) {
-    auto arrow_record_batch = garrow_record_batch_get_raw(record_batches[i]);
-    arrow_record_batches.push_back(arrow_record_batch);
-  }
-  auto arrow_options = gad_scan_options_get_raw(options);
-  auto arrow_fragment = gad_fragment_get_raw(GAD_FRAGMENT(fragment));
-  auto arrow_in_memory_scan_task =
-    std::make_shared<arrow::dataset::InMemoryScanTask>(arrow_record_batches,
-                                                       arrow_options,
-                                                       arrow_fragment);
-  return gad_in_memory_scan_task_new_raw(&arrow_in_memory_scan_task,
-                                         options,
-                                         fragment);
-}
-
-G_END_DECLS
-
-GADScanOptions *
-gad_scan_options_new_raw(std::shared_ptr<arrow::dataset::ScanOptions> *arrow_scan_options)
-{
-  auto scan_options =
-    GAD_SCAN_OPTIONS(g_object_new(GAD_TYPE_SCAN_OPTIONS,
-                                  "scan-options", arrow_scan_options,
-                                  NULL));
-  return scan_options;
-}
-
-std::shared_ptr<arrow::dataset::ScanOptions>
-gad_scan_options_get_raw(GADScanOptions *scan_options)
-{
-  auto priv = GAD_SCAN_OPTIONS_GET_PRIVATE(scan_options);
-  return priv->scan_options;
-}
-
-GADInMemoryScanTask *
-gad_in_memory_scan_task_new_raw(std::shared_ptr<arrow::dataset::InMemoryScanTask> *arrow_in_memory_scan_task,
-                                GADScanOptions *options,
-                                GADInMemoryFragment *fragment)
-{
-  auto in_memory_scan_task =
-    GAD_IN_MEMORY_SCAN_TASK(g_object_new(GAD_TYPE_IN_MEMORY_SCAN_TASK,
-                                         "scan-task", arrow_in_memory_scan_task,
-                                         "options", options,
-                                         "fragment", fragment,
-                                         NULL));
-  return in_memory_scan_task;
-}
diff --git a/c_glib/arrow-dataset-glib/scanner.h b/c_glib/arrow-dataset-glib/scanner.h
deleted file mode 100644
index f387e89..0000000
--- a/c_glib/arrow-dataset-glib/scanner.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/arrow-glib.h>
-
-#include <arrow-dataset-glib/fragment.h>
-
-G_BEGIN_DECLS
-
-/* arrow::dataset::ScanOptions */
-
-#define GAD_TYPE_SCAN_OPTIONS (gad_scan_options_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADScanOptions,
-                         gad_scan_options,
-                         GAD,
-                         SCAN_OPTIONS,
-                         GObject)
-struct _GADScanOptionsClass
-{
-  GObjectClass parent_class;
-};
-
-
-GARROW_AVAILABLE_IN_1_0
-GADScanOptions *gad_scan_options_new(GArrowSchema *schema);
-GARROW_AVAILABLE_IN_1_0
-GArrowSchema *gad_scan_options_get_schema(GADScanOptions *scan_options);
-
-/* arrow::dataset::ScanTask */
-
-#define GAD_TYPE_SCAN_TASK (gad_scan_task_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADScanTask,
-                         gad_scan_task,
-                         GAD,
-                         SCAN_TASK,
-                         GObject)
-struct _GADScanTaskClass
-{
-  GObjectClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_1_0
-GADScanOptions *gad_scan_task_get_options(GADScanTask *scan_task);
-GARROW_AVAILABLE_IN_4_0
-GADFragment *gad_scan_task_get_fragment(GADScanTask *scan_task);
-GARROW_AVAILABLE_IN_1_0
-GArrowRecordBatchIterator *gad_scan_task_execute(GADScanTask *scan_task,
-                                                 GError **error);
-
-/* arrow::dataset::InMemoryScanTask */
-
-#define GAD_TYPE_IN_MEMORY_SCAN_TASK (gad_in_memory_scan_task_get_type())
-G_DECLARE_DERIVABLE_TYPE(GADInMemoryScanTask,
-                         gad_in_memory_scan_task,
-                         GAD,
-                         IN_MEMORY_SCAN_TASK,
-                         GADScanTask)
-struct _GADInMemoryScanTaskClass
-{
-  GADScanTaskClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_1_0
-GADInMemoryScanTask *
-gad_in_memory_scan_task_new(GArrowRecordBatch **record_batches,
-                            gsize n_record_batches,
-                            GADScanOptions *options,
-                            GADInMemoryFragment *fragment);
-
-G_END_DECLS
diff --git a/c_glib/arrow-dataset-glib/scanner.hpp b/c_glib/arrow-dataset-glib/scanner.hpp
deleted file mode 100644
index f10351e..0000000
--- a/c_glib/arrow-dataset-glib/scanner.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow/dataset/api.h>
-
-#include <arrow-dataset-glib/fragment.h>
-#include <arrow-dataset-glib/scanner.h>
-
-GADScanOptions *
-gad_scan_options_new_raw(std::shared_ptr<arrow::dataset::ScanOptions> *arrow_scan_options);
-std::shared_ptr<arrow::dataset::ScanOptions>
-gad_scan_options_get_raw(GADScanOptions *scan_options);
-
-GADInMemoryScanTask *
-gad_in_memory_scan_task_new_raw(std::shared_ptr<arrow::dataset::InMemoryScanTask> *arrow_in_memory_scan_task,
-                                GADScanOptions *scan_options,
-                                GADInMemoryFragment *fragment);
diff --git a/c_glib/arrow-glib/array-builder.cpp b/c_glib/arrow-glib/array-builder.cpp
deleted file mode 100644
index c9ac8f5..0000000
--- a/c_glib/arrow-glib/array-builder.cpp
+++ /dev/null
@@ -1,6178 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#include <arrow-glib/array-builder.hpp>
-#include <arrow-glib/data-type.hpp>
-#include <arrow-glib/decimal.hpp>
-#include <arrow-glib/error.hpp>
-#include <arrow-glib/type.hpp>
-
-template <typename BUILDER, typename VALUE>
-gboolean
-garrow_array_builder_append_value(GArrowArrayBuilder *builder,
-                                  VALUE value,
-                                  GError **error,
-                                  const gchar *context)
-{
-  auto arrow_builder =
-    static_cast<BUILDER>(garrow_array_builder_get_raw(builder));
-  auto status = arrow_builder->Append(value);
-  return garrow_error_check(error, status, context);
-}
-
-template <typename VALUE, typename APPEND_FUNCTION>
-gboolean
-garrow_array_builder_append_values(VALUE *values,
-                                   gint64 values_length,
-                                   const gboolean *is_valids,
-                                   gint64 is_valids_length,
-                                   GError **error,
-                                   const gchar *context,
-                                   APPEND_FUNCTION append_function)
-{
-  if (is_valids_length > 0) {
-    if (values_length != is_valids_length) {
-      g_set_error(error,
-                  GARROW_ERROR,
-                  GARROW_ERROR_INVALID,
-                  "%s: values length and is_valids length must be equal: "
-                  "<%" G_GINT64_FORMAT "> != "
-                  "<%" G_GINT64_FORMAT ">",
-                  context,
-                  values_length,
-                  is_valids_length);
-      return FALSE;
-    }
-
-    const gint64 chunk_size = 4096;
-    gint64 n_chunks = is_valids_length / chunk_size;
-    gint64 n_remains = is_valids_length % chunk_size;
-    gint64 n_loops = n_chunks;
-    if (n_remains > 0) {
-      ++n_loops;
-    }
-    for (gint64 i = 0; i < n_loops; ++i) {
-      uint8_t valid_bytes[chunk_size];
-      gint64 offset = chunk_size * i;
-      const gboolean *chunked_is_valids = is_valids + offset;
-      gint64 n_values;
-      if (i == n_chunks) {
-        n_values = n_remains;
-      } else {
-        n_values = chunk_size;
-      }
-      for (gint64 j = 0; j < n_values; ++j) {
-        valid_bytes[j] = chunked_is_valids[j];
-      }
-      auto status = append_function(values + offset,
-                                    n_values,
-                                    valid_bytes);
-      if (!garrow_error_check(error, status, context)) {
-        return FALSE;
-      }
-    }
-    return TRUE;
-  } else {
-    auto status = append_function(values, values_length, nullptr);
-    return garrow_error_check(error, status, context);
-  }
-}
-
-template <typename BUILDER, typename VALUE>
-gboolean
-garrow_array_builder_append_values(GArrowArrayBuilder *builder,
-                                   VALUE *values,
-                                   gint64 values_length,
-                                   const gboolean *is_valids,
-                                   gint64 is_valids_length,
-                                   GError **error,
-                                   const gchar *context)
-{
-  auto arrow_builder =
-    static_cast<BUILDER>(garrow_array_builder_get_raw(builder));
-  return garrow_array_builder_append_values(
-    values,
-    values_length,
-    is_valids,
-    is_valids_length,
-    error,
-    context,
-    [&arrow_builder](VALUE *values,
-                     gint64 values_length,
-                     const uint8_t *valid_bytes) -> arrow::Status {
-      return arrow_builder->AppendValues(values, values_length, valid_bytes);
-    });
-}
-
-template <typename BUILDER>
-gboolean
-garrow_array_builder_append_values(GArrowArrayBuilder *builder,
-                                   GBytes **values,
-                                   gint64 values_length,
-                                   const gboolean *is_valids,
-                                   gint64 is_valids_length,
-                                   GError **error,
-                                   const gchar *context)
-{
-  auto arrow_builder =
-    static_cast<BUILDER>(garrow_array_builder_get_raw(builder));
-  arrow::Status status;
-  if (is_valids_length > 0 && values_length != is_valids_length) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "%s: values length and is_valids length must be equal: "
-                "<%" G_GINT64_FORMAT "> != "
-                "<%" G_GINT64_FORMAT ">",
-                context,
-                values_length,
-                is_valids_length);
-    return FALSE;
-  }
-
-  const gint64 chunk_size = 4096;
-  gint64 n_chunks = values_length / chunk_size;
-  gint64 n_remains = values_length % chunk_size;
-  gint64 n_loops = n_chunks;
-  if (n_remains > 0) {
-    ++n_loops;
-  }
-  for (gint64 i = 0; i < n_loops; ++i) {
-    std::vector<std::string> strings;
-    uint8_t *valid_bytes = nullptr;
-    uint8_t valid_bytes_buffer[chunk_size];
-    if (is_valids_length > 0) {
-      valid_bytes = valid_bytes_buffer;
-    }
-    const gint64 offset = chunk_size * i;
-    gint64 n_values;
-    if (i == n_chunks) {
-      n_values = n_remains;
-    } else {
-      n_values = chunk_size;
-    }
-    for (gint64 j = 0; j < n_values; ++j) {
-      auto value = values[offset + j];
-      size_t data_size;
-      auto raw_data = g_bytes_get_data(value, &data_size);
-      strings.push_back(std::string(static_cast<const char *>(raw_data),
-                                    data_size));
-      if (valid_bytes) {
-        valid_bytes_buffer[j] = is_valids[offset + j];
-      }
-    }
-    status = arrow_builder->AppendValues(strings, valid_bytes);
-    if (!garrow_error_check(error, status, context)) {
-      return FALSE;
-    }
-  }
-  return TRUE;
-}
-
-template <typename VALUE, typename GET_VALUE_FUNCTION>
-gboolean
-garrow_array_builder_append_values(
-  GArrowArrayBuilder *builder,
-  VALUE *values,
-  gint64 values_length,
-  const gboolean *is_valids,
-  gint64 is_valids_length,
-  GError **error,
-  const gchar *context,
-  GET_VALUE_FUNCTION get_value_function)
-{
-  auto arrow_builder =
-    static_cast<arrow::FixedSizeBinaryBuilder *>(
-      garrow_array_builder_get_raw(builder));
-  if (is_valids_length > 0 && values_length != is_valids_length) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "%s: values length and is_valids length must be equal: "
-                "<%" G_GINT64_FORMAT "> != "
-                "<%" G_GINT64_FORMAT ">",
-                context,
-                values_length,
-                is_valids_length);
-    return FALSE;
-  }
-
-  auto value_size = arrow_builder->byte_width();
-  const gint64 chunk_size = 4096;
-  gint64 n_chunks = values_length / chunk_size;
-  gint64 n_remains = values_length % chunk_size;
-  gint64 n_loops = n_chunks;
-  if (n_remains > 0) {
-    ++n_loops;
-  }
-  for (gint64 i = 0; i < n_loops; ++i) {
-    uint8_t data[value_size * chunk_size];
-    uint8_t *valid_bytes = nullptr;
-    uint8_t valid_bytes_buffer[chunk_size];
-    if (is_valids_length > 0) {
-      valid_bytes = valid_bytes_buffer;
-    }
-    const gint64 offset = chunk_size * i;
-    gint64 n_values;
-    if (i == n_chunks) {
-      n_values = n_remains;
-    } else {
-      n_values = chunk_size;
-    }
-    for (gint64 j = 0; j < n_values; ++j) {
-      bool is_valid = true;
-      if (is_valids) {
-        is_valid = is_valids[offset + j];
-      }
-      VALUE value = nullptr;
-      if (is_valid) {
-        value = values[offset + j];
-      }
-      if (value) {
-        get_value_function(data + (value_size * j),
-                           value,
-                           value_size);
-      } else {
-        is_valid = false;
-        if (!valid_bytes) {
-          valid_bytes = valid_bytes_buffer;
-          memset(valid_bytes_buffer, true, j);
-        }
-      }
-      if (valid_bytes) {
-        valid_bytes_buffer[j] = is_valid;
-      }
-    }
-    auto status = arrow_builder->AppendValues(data, n_values, valid_bytes);
-    if (!garrow_error_check(error, status, context)) {
-      return FALSE;
-    }
-  }
-  return TRUE;
-}
-
-template <typename BUILDER>
-gboolean
-garrow_array_builder_append_values(GArrowArrayBuilder *builder,
-                                   GBytes *values,
-                                   const gboolean *is_valids,
-                                   gint64 is_valids_length,
-                                   GError **error,
-                                   const gchar *context)
-{
-  auto arrow_builder =
-    static_cast<BUILDER>(garrow_array_builder_get_raw(builder));
-  auto value_size = arrow_builder->byte_width();
-  gsize raw_values_size;
-  auto raw_values =
-    static_cast<const uint8_t *>(g_bytes_get_data(values, &raw_values_size));
-  const gint64 n_values = raw_values_size / value_size;
-  if (is_valids_length > 0 && n_values != is_valids_length) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "%s: the number of values and is_valids length must be equal: "
-                "<%" G_GINT64_FORMAT "> != "
-                "<%" G_GINT64_FORMAT ">",
-                context,
-                n_values,
-                is_valids_length);
-    return FALSE;
-  }
-
-  if (is_valids_length == 0) {
-    auto status = arrow_builder->AppendValues(raw_values, n_values);
-    if (!garrow_error_check(error, status, context)) {
-      return FALSE;
-    }
-    return TRUE;
-  }
-
-  const gint64 chunk_size = 4096;
-  gint64 n_chunks = n_values / chunk_size;
-  gint64 n_remains = n_values % chunk_size;
-  gint64 n_loops = n_chunks;
-  if (n_remains > 0) {
-    ++n_loops;
-  }
-  for (gint64 i = 0; i < n_loops; ++i) {
-    uint8_t valid_bytes[chunk_size];
-    const auto offset = chunk_size * i;
-    gint64 n_values;
-    if (i == n_chunks) {
-      n_values = n_remains;
-    } else {
-      n_values = chunk_size;
-    }
-    for (gint64 j = 0; j < n_values; ++j) {
-      valid_bytes[j] = is_valids[offset + j];
-    }
-    auto status = arrow_builder->AppendValues(raw_values + (value_size * offset),
-                                              n_values,
-                                              valid_bytes);
-    if (!garrow_error_check(error, status, context)) {
-      return FALSE;
-    }
-  }
-  return TRUE;
-}
-
-
-G_BEGIN_DECLS
-
-/**
- * SECTION: array-builder
- * @section_id: array-builder-classes
- * @title: Array builder classes
- * @include: arrow-glib/arrow-glib.h
- *
- * #GArrowArrayBuilder is a base class for all array builder classes
- * such as #GArrowBooleanArrayBuilder.
- *
- * You need to use array builder class to create a new array.
- *
- * #GArrowNullArrayBuilder is the class to create a new
- * #GArrowNullArray.
- *
- * #GArrowBooleanArrayBuilder is the class to create a new
- * #GArrowBooleanArray.
- *
- * #GArrowIntArrayBuilder is the class to create a new integer
- * array. Integer size is automatically chosen. It's recommend that
- * you use this builder instead of specific integer size builder such
- * as #GArrowInt8ArrayBuilder.
- *
- * #GArrowUIntArrayBuilder is the class to create a new unsigned
- * integer array. Unsigned integer size is automatically chosen. It's
- * recommend that you use this builder instead of specific unsigned
- * integer size builder such as #GArrowUInt8ArrayBuilder.
- *
- * #GArrowInt8ArrayBuilder is the class to create a new
- * #GArrowInt8Array.
- *
- * #GArrowUInt8ArrayBuilder is the class to create a new
- * #GArrowUInt8Array.
- *
- * #GArrowInt16ArrayBuilder is the class to create a new
- * #GArrowInt16Array.
- *
- * #GArrowUInt16ArrayBuilder is the class to create a new
- * #GArrowUInt16Array.
- *
- * #GArrowInt32ArrayBuilder is the class to create a new
- * #GArrowInt32Array.
- *
- * #GArrowUInt32ArrayBuilder is the class to create a new
- * #GArrowUInt32Array.
- *
- * #GArrowInt64ArrayBuilder is the class to create a new
- * #GArrowInt64Array.
- *
- * #GArrowUInt64ArrayBuilder is the class to create a new
- * #GArrowUInt64Array.
- *
- * #GArrowFloatArrayBuilder is the class to creating a new
- * #GArrowFloatArray.
- *
- * #GArrowDoubleArrayBuilder is the class to create a new
- * #GArrowDoubleArray.
- *
- * #GArrowBinaryArrayBuilder is the class to create a new
- * #GArrowBinaryArray.
- *
- * #GArrowLargeBinaryArrayBuilder is the class to create a new
- * #GArrowLargeBinaryArray.
- *
- * #GArrowStringArrayBuilder is the class to create a new
- * #GArrowStringArray.
- *
- * #GArrowLargeStringArrayBuilder is the class to create a new
- * #GArrowLargeStringArray.
- *
- * #GArrowFixedSizeBinaryArrayBuilder is the class to create a new
- * #GArrowFixedSizeBinaryArray.
- *
- * #GArrowDate32ArrayBuilder is the class to create a new
- * #GArrowDate32Array.
- *
- * #GArrowDate64ArrayBuilder is the class to create a new
- * #GArrowDate64Array.
- *
- * #GArrowTimestampArrayBuilder is the class to create a new
- * #GArrowTimestampArray.
- *
- * #GArrowTime32ArrayBuilder is the class to create a new
- * #GArrowTime32Array.
- *
- * #GArrowTime64ArrayBuilder is the class to create a new
- * #GArrowTime64Array.
- *
- * #GArrowStringDictionaryArrayBuilder is the class to create a new
- * #GArrowDictionaryArray with a dictionary array of #GArrowStringArray.
- *
- * #GArrowListArrayBuilder is the class to create a new
- * #GArrowListArray.
- *
- * #GArrowLargeListArrayBuilder is the class to create a new
- * #GArrowLargeListArray.
- *
- * #GArrowStructArrayBuilder is the class to create a new
- * #GArrowStructArray.
- *
- * #GArrowMapArrayBuilder is the class to create a new
- * #GArrowMapArray.
- *
- * #GArrowDecimal128ArrayBuilder is the class to create a new
- * #GArrowDecimal128Array.
- *
- * #GArrowDecimal256ArrayBuilder is the class to create a new
- * #GArrowDecimal256Array.
- */
-
-typedef struct GArrowArrayBuilderPrivate_ {
-  arrow::ArrayBuilder *array_builder;
-  gboolean have_ownership;
-} GArrowArrayBuilderPrivate;
-
-enum {
-  PROP_0,
-  PROP_ARRAY_BUILDER
-};
-
-G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(GArrowArrayBuilder,
-                                    garrow_array_builder,
-                                    G_TYPE_OBJECT)
-
-#define GARROW_ARRAY_BUILDER_GET_PRIVATE(obj)         \
-  static_cast<GArrowArrayBuilderPrivate *>(           \
-     garrow_array_builder_get_instance_private(       \
-       GARROW_ARRAY_BUILDER(obj)))
-
-static void
-garrow_array_builder_finalize(GObject *object)
-{
-  auto priv = GARROW_ARRAY_BUILDER_GET_PRIVATE(object);
-
-  if (priv->have_ownership) {
-    delete priv->array_builder;
-  }
-
-  G_OBJECT_CLASS(garrow_array_builder_parent_class)->finalize(object);
-}
-
-static void
-garrow_array_builder_set_property(GObject *object,
-                                  guint prop_id,
-                                  const GValue *value,
-                                  GParamSpec *pspec)
-{
-  auto priv = GARROW_ARRAY_BUILDER_GET_PRIVATE(object);
-
-  switch (prop_id) {
-  case PROP_ARRAY_BUILDER:
-    priv->array_builder =
-      static_cast<arrow::ArrayBuilder *>(g_value_get_pointer(value));
-    break;
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-garrow_array_builder_get_property(GObject *object,
-                                  guint prop_id,
-                                  GValue *value,
-                                  GParamSpec *pspec)
-{
-  switch (prop_id) {
-  default:
-    G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
-    break;
-  }
-}
-
-static void
-garrow_array_builder_init(GArrowArrayBuilder *builder)
-{
-  auto priv = GARROW_ARRAY_BUILDER_GET_PRIVATE(builder);
-  priv->have_ownership = TRUE;
-}
-
-static void
-garrow_array_builder_class_init(GArrowArrayBuilderClass *klass)
-{
-  GObjectClass *gobject_class;
-  GParamSpec *spec;
-
-  gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->finalize     = garrow_array_builder_finalize;
-  gobject_class->set_property = garrow_array_builder_set_property;
-  gobject_class->get_property = garrow_array_builder_get_property;
-
-  spec = g_param_spec_pointer("array-builder",
-                              "Array builder",
-                              "The raw arrow::ArrayBuilder *",
-                              static_cast<GParamFlags>(G_PARAM_WRITABLE |
-                                                       G_PARAM_CONSTRUCT_ONLY));
-  g_object_class_install_property(gobject_class, PROP_ARRAY_BUILDER, spec);
-}
-
-static GArrowArrayBuilder *
-garrow_array_builder_new(const std::shared_ptr<arrow::DataType> &type,
-                         GError **error,
-                         const char *context)
-{
-  auto memory_pool = arrow::default_memory_pool();
-  std::unique_ptr<arrow::ArrayBuilder> arrow_builder;
-  auto status = arrow::MakeBuilder(memory_pool, type, &arrow_builder);
-  if (!garrow_error_check(error, status, context)) {
-    return NULL;
-  }
-  return garrow_array_builder_new_raw(arrow_builder.release());
-}
-
-/**
- * garrow_array_builder_release_ownership: (skip)
- * @builder: A #GArrowArrayBuilder.
- *
- * Release ownership of `arrow::ArrayBuilder` in `builder`.
- *
- * Since: 0.8.0
- */
-void
-garrow_array_builder_release_ownership(GArrowArrayBuilder *builder)
-{
-  auto priv = GARROW_ARRAY_BUILDER_GET_PRIVATE(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.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (transfer full): The built #GArrowArray on success,
- *   %NULL on error.
- */
-GArrowArray *
-garrow_array_builder_finish(GArrowArrayBuilder *builder, GError **error)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  std::shared_ptr<arrow::Array> arrow_array;
-  auto status = arrow_builder->Finish(&arrow_array);
-  if (garrow_error_check(error, status, "[array-builder][finish]")) {
-    return garrow_array_new_raw(&arrow_array);
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_array_builder_reset:
- * @builder: A #GArrowArrayBuilder.
- *
- * Since: 2.0.0
- */
-void
-garrow_array_builder_reset(GArrowArrayBuilder *builder)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  arrow_builder->Reset();
-}
-
-/**
- * garrow_array_builder_get_capacity:
- * @builder: A #GArrowArrayBuilder.
- *
- * Returns: The capacity of the building array.
- *
- * Since: 2.0.0
- */
-gint64
-garrow_array_builder_get_capacity(GArrowArrayBuilder *builder)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  return arrow_builder->capacity();
-}
-
-/**
- * garrow_array_builder_get_length:
- * @builder: A #GArrowArrayBuilder.
- *
- * Returns: The current length of the building array.
- *
- * Since: 2.0.0
- */
-gint64
-garrow_array_builder_get_length(GArrowArrayBuilder *builder)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  return arrow_builder->length();
-}
-
-/**
- * garrow_array_builder_get_n_nulls:
- * @builder: A #GArrowArrayBuilder.
- *
- * Returns: The current number of null elements in the building array.
- *
- * Since: 2.0.0
- */
-gint64
-garrow_array_builder_get_n_nulls(GArrowArrayBuilder *builder)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  return arrow_builder->null_count();
-}
-
-/**
- * garrow_array_builder_resize:
- * @builder: A #GArrowArrayBuilder.
- * @capacity: A new capacity.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_array_builder_resize(GArrowArrayBuilder *builder,
-                            gint64 capacity,
-                            GError **error)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  auto status = arrow_builder->Resize(capacity);
-  return garrow_error_check(error, status, "[array-builder][resize]");
-}
-
-/**
- * garrow_array_builder_reserve:
- * @builder: A #GArrowArrayBuilder.
- * @additional_capacity: The additional capacity to be reserved.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_array_builder_reserve(GArrowArrayBuilder *builder,
-                             gint64 additional_capacity,
-                             GError **error)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  auto status = arrow_builder->Reserve(additional_capacity);
-  return garrow_error_check(error, status, "[array-builder][reserve]");
-}
-
-/**
- * garrow_array_builder_append_null:
- * @builder: A #GArrowArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_array_builder_append_null(GArrowArrayBuilder *builder,
-                                 GError **error)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  auto status = arrow_builder->AppendNull();
-  return garrow_error_check(error, status, "[array-builder][append-null]");
-}
-
-/**
- * garrow_array_builder_append_nulls:
- * @builder: A #GArrowArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * garrow_array_builder_append_null() calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_array_builder_append_nulls(GArrowArrayBuilder *builder,
-                                  gint64 n,
-                                  GError **error)
-{
-  const gchar *context = "[array-builder][append-nulls]";
-  if (n < 0) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "%s: the number of nulls must be 0 or larger: "
-                "<%" G_GINT64_FORMAT ">",
-                context,
-                n);
-    return FALSE;
-  }
-  if (n == 0) {
-    return TRUE;
-  }
-
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  auto status = arrow_builder->AppendNulls(n);
-  return garrow_error_check(error, status, context);
-}
-
-/**
- * garrow_array_builder_append_empty_value:
- * @builder: A #GArrowArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_array_builder_append_empty_value(GArrowArrayBuilder *builder,
-                                        GError **error)
-{
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  auto status = arrow_builder->AppendEmptyValue();
-  return garrow_error_check(error,
-                            status,
-                            "[array-builder][append-empty-value]");
-}
-
-/**
- * garrow_array_builder_append_empty_values:
- * @builder: A #GArrowArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple empty values at once. It's more efficient than multiple
- * garrow_array_builder_append_empty_value() calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_array_builder_append_empty_values(GArrowArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  const gchar *context = "[array-builder][append-empty-values]";
-  if (n < 0) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "%s: the number of empty values must be 0 or larger: "
-                "<%" G_GINT64_FORMAT ">",
-                context,
-                n);
-    return FALSE;
-  }
-  if (n == 0) {
-    return TRUE;
-  }
-
-  auto arrow_builder = garrow_array_builder_get_raw(builder);
-  auto status = arrow_builder->AppendEmptyValues(n);
-  return garrow_error_check(error, status, context);
-}
-
-
-G_DEFINE_TYPE(GArrowNullArrayBuilder,
-              garrow_null_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_null_array_builder_init(GArrowNullArrayBuilder *builder)
-{
-}
-
-static void
-garrow_null_array_builder_class_init(GArrowNullArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_null_array_builder_new:
- *
- * Returns: A newly created #GArrowNullArrayBuilder.
- *
- * Since: 0.13.0
- */
-GArrowNullArrayBuilder *
-garrow_null_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::null(),
-                                          NULL,
-                                          "[null-array-builder][new]");
-  return GARROW_NULL_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_null_array_builder_append_null: (skip)
- * @builder: A #GArrowNullArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.13.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_null_array_builder_append_null(GArrowNullArrayBuilder *builder,
-                                      GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_null_array_builder_append_nulls: (skip)
- * @builder: A #GArrowNullArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.13.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_null_array_builder_append_nulls(GArrowNullArrayBuilder *builder,
-                                       gint64 n,
-                                       GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowBooleanArrayBuilder,
-              garrow_boolean_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_boolean_array_builder_init(GArrowBooleanArrayBuilder *builder)
-{
-}
-
-static void
-garrow_boolean_array_builder_class_init(GArrowBooleanArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_boolean_array_builder_new:
- *
- * Returns: A newly created #GArrowBooleanArrayBuilder.
- */
-GArrowBooleanArrayBuilder *
-garrow_boolean_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::boolean(),
-                                          NULL,
-                                          "[boolean-array-builder][new]");
-  return GARROW_BOOLEAN_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_boolean_array_builder_append:
- * @builder: A #GArrowBooleanArrayBuilder.
- * @value: A boolean value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_boolean_array_builder_append_value() instead.
- */
-gboolean
-garrow_boolean_array_builder_append(GArrowBooleanArrayBuilder *builder,
-                                    gboolean value,
-                                    GError **error)
-{
-  return garrow_boolean_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_boolean_array_builder_append_value:
- * @builder: A #GArrowBooleanArrayBuilder.
- * @value: A boolean value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_boolean_array_builder_append_value(GArrowBooleanArrayBuilder *builder,
-                                          gboolean value,
-                                          GError **error)
-{
-  return garrow_array_builder_append_value<arrow::BooleanBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     static_cast<bool>(value),
-     error,
-     "[boolean-array-builder][append-value]");
-}
-
-/**
- * garrow_boolean_array_builder_append_values:
- * @builder: A #GArrowBooleanArrayBuilder.
- * @values: (array length=values_length): The array of boolean.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_boolean_array_builder_append_values(GArrowBooleanArrayBuilder *builder,
-                                           const gboolean *values,
-                                           gint64 values_length,
-                                           const gboolean *is_valids,
-                                           gint64 is_valids_length,
-                                           GError **error)
-{
-  guint8 arrow_values[values_length];
-  for (gint64 i = 0; i < values_length; ++i) {
-    arrow_values[i] = values[i];
-  }
-  return garrow_array_builder_append_values<arrow::BooleanBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     arrow_values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[boolean-array-builder][append-values]");
-}
-
-/**
- * garrow_boolean_array_builder_append_null: (skip)
- * @builder: A #GArrowBooleanArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_boolean_array_builder_append_null(GArrowBooleanArrayBuilder *builder,
-                                         GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_boolean_array_builder_append_nulls: (skip)
- * @builder: A #GArrowBooleanArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_boolean_array_builder_append_nulls(GArrowBooleanArrayBuilder *builder,
-                                          gint64 n,
-                                          GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowIntArrayBuilder,
-              garrow_int_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_int_array_builder_init(GArrowIntArrayBuilder *builder)
-{
-}
-
-static void
-garrow_int_array_builder_class_init(GArrowIntArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_int_array_builder_new:
- *
- * Returns: A newly created #GArrowIntArrayBuilder.
- *
- * Since: 0.6.0
- */
-GArrowIntArrayBuilder *
-garrow_int_array_builder_new(void)
-{
-  auto memory_pool = arrow::default_memory_pool();
-  auto arrow_builder = new arrow::AdaptiveIntBuilder(memory_pool);
-  auto builder = garrow_array_builder_new_raw(arrow_builder,
-                                              GARROW_TYPE_INT_ARRAY_BUILDER);
-  return GARROW_INT_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_int_array_builder_append:
- * @builder: A #GArrowIntArrayBuilder.
- * @value: A int value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.6.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_int_array_builder_append_value() instead.
- */
-gboolean
-garrow_int_array_builder_append(GArrowIntArrayBuilder *builder,
-                                gint64 value,
-                                GError **error)
-{
-  return garrow_int_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_int_array_builder_append_value:
- * @builder: A #GArrowIntArrayBuilder.
- * @value: A int value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_int_array_builder_append_value(GArrowIntArrayBuilder *builder,
-                                      gint64 value,
-                                      GError **error)
-{
-  return garrow_array_builder_append_value<arrow::AdaptiveIntBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[int-array-builder][append-value]");
-}
-
-/**
- * garrow_int_array_builder_append_values:
- * @builder: A #GArrowIntArrayBuilder.
- * @values: (array length=values_length): The array of int.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_int_array_builder_append_values(GArrowIntArrayBuilder *builder,
-                                       const gint64 *values,
-                                       gint64 values_length,
-                                       const gboolean *is_valids,
-                                       gint64 is_valids_length,
-                                       GError **error)
-{
-  return garrow_array_builder_append_values<arrow::AdaptiveIntBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const int64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[int-array-builder][append-values]");
-}
-
-/**
- * garrow_int_array_builder_append_null: (skip)
- * @builder: A #GArrowIntArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.6.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_int_array_builder_append_null(GArrowIntArrayBuilder *builder,
-                                     GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_int_array_builder_append_nulls: (skip)
- * @builder: A #GArrowIntArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_int_array_builder_append_nulls(GArrowIntArrayBuilder *builder,
-                                      gint64 n,
-                                      GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowUIntArrayBuilder,
-              garrow_uint_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_uint_array_builder_init(GArrowUIntArrayBuilder *builder)
-{
-}
-
-static void
-garrow_uint_array_builder_class_init(GArrowUIntArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_uint_array_builder_new:
- *
- * Returns: A newly created #GArrowUIntArrayBuilder.
- *
- * Since: 0.8.0
- */
-GArrowUIntArrayBuilder *
-garrow_uint_array_builder_new(void)
-{
-  auto memory_pool = arrow::default_memory_pool();
-  auto arrow_builder = new arrow::AdaptiveUIntBuilder(memory_pool);
-  auto builder = garrow_array_builder_new_raw(arrow_builder,
-                                              GARROW_TYPE_UINT_ARRAY_BUILDER);
-  return GARROW_UINT_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_uint_array_builder_append:
- * @builder: A #GArrowUIntArrayBuilder.
- * @value: A unsigned int value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_uint_array_builder_append_value() instead.
- */
-gboolean
-garrow_uint_array_builder_append(GArrowUIntArrayBuilder *builder,
-                                 guint64 value,
-                                 GError **error)
-{
-  return garrow_uint_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_uint_array_builder_append_value:
- * @builder: A #GArrowUIntArrayBuilder.
- * @value: A unsigned int value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_uint_array_builder_append_value(GArrowUIntArrayBuilder *builder,
-                                       guint64 value,
-                                       GError **error)
-{
-  return garrow_array_builder_append_value<arrow::AdaptiveUIntBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[uint-array-builder][append-value]");
-}
-
-/**
- * garrow_uint_array_builder_append_values:
- * @builder: A #GArrowUIntArrayBuilder.
- * @values: (array length=values_length): The array of unsigned int.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_uint_array_builder_append_values(GArrowUIntArrayBuilder *builder,
-                                        const guint64 *values,
-                                        gint64 values_length,
-                                        const gboolean *is_valids,
-                                        gint64 is_valids_length,
-                                        GError **error)
-{
-  return garrow_array_builder_append_values<arrow::AdaptiveUIntBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const uint64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[uint-array-builder][append-values]");
-}
-
-/**
- * garrow_uint_array_builder_append_null: (skip)
- * @builder: A #GArrowUIntArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_uint_array_builder_append_null(GArrowUIntArrayBuilder *builder,
-                                      GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_uint_array_builder_append_nulls: (skip)
- * @builder: A #GArrowUIntArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_uint_array_builder_append_nulls(GArrowUIntArrayBuilder *builder,
-                                       gint64 n,
-                                       GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowInt8ArrayBuilder,
-              garrow_int8_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_int8_array_builder_init(GArrowInt8ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_int8_array_builder_class_init(GArrowInt8ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_int8_array_builder_new:
- *
- * Returns: A newly created #GArrowInt8ArrayBuilder.
- */
-GArrowInt8ArrayBuilder *
-garrow_int8_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::int8(),
-                                          NULL,
-                                          "[int8-array-builder][new]");
-  return GARROW_INT8_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_int8_array_builder_append:
- * @builder: A #GArrowInt8ArrayBuilder.
- * @value: A int8 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_int8_array_builder_append_value() instead.
- */
-gboolean
-garrow_int8_array_builder_append(GArrowInt8ArrayBuilder *builder,
-                                 gint8 value,
-                                 GError **error)
-{
-  return garrow_int8_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_int8_array_builder_append_value:
- * @builder: A #GArrowInt8ArrayBuilder.
- * @value: A int8 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_int8_array_builder_append_value(GArrowInt8ArrayBuilder *builder,
-                                       gint8 value,
-                                       GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Int8Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[int8-array-builder][append-value]");
-}
-
-/**
- * garrow_int8_array_builder_append_values:
- * @builder: A #GArrowInt8ArrayBuilder.
- * @values: (array length=values_length): The array of int8.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_int8_array_builder_append_values(GArrowInt8ArrayBuilder *builder,
-                                        const gint8 *values,
-                                        gint64 values_length,
-                                        const gboolean *is_valids,
-                                        gint64 is_valids_length,
-                                        GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Int8Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[int8-array-builder][append-values]");
-}
-
-/**
- * garrow_int8_array_builder_append_null: (skip)
- * @builder: A #GArrowInt8ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_int8_array_builder_append_null(GArrowInt8ArrayBuilder *builder,
-                                      GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_int8_array_builder_append_nulls: (skip)
- * @builder: A #GArrowInt8ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_int8_array_builder_append_nulls(GArrowInt8ArrayBuilder *builder,
-                                       gint64 n,
-                                       GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowUInt8ArrayBuilder,
-              garrow_uint8_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_uint8_array_builder_init(GArrowUInt8ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_uint8_array_builder_class_init(GArrowUInt8ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_uint8_array_builder_new:
- *
- * Returns: A newly created #GArrowUInt8ArrayBuilder.
- */
-GArrowUInt8ArrayBuilder *
-garrow_uint8_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::uint8(),
-                                          NULL,
-                                          "[uint8-array-builder][new]");
-  return GARROW_UINT8_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_uint8_array_builder_append:
- * @builder: A #GArrowUInt8ArrayBuilder.
- * @value: An uint8 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_uint8_array_builder_append_value() instead.
- */
-gboolean
-garrow_uint8_array_builder_append(GArrowUInt8ArrayBuilder *builder,
-                                  guint8 value,
-                                  GError **error)
-{
-  return garrow_uint8_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_uint8_array_builder_append_value:
- * @builder: A #GArrowUInt8ArrayBuilder.
- * @value: An uint8 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_uint8_array_builder_append_value(GArrowUInt8ArrayBuilder *builder,
-                                  guint8 value,
-                                  GError **error)
-{
-  return garrow_array_builder_append_value<arrow::UInt8Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[uint8-array-builder][append-value]");
-}
-
-/**
- * garrow_uint8_array_builder_append_values:
- * @builder: A #GArrowUInt8ArrayBuilder.
- * @values: (array length=values_length): The array of uint8.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_uint8_array_builder_append_values(GArrowUInt8ArrayBuilder *builder,
-                                         const guint8 *values,
-                                         gint64 values_length,
-                                         const gboolean *is_valids,
-                                         gint64 is_valids_length,
-                                         GError **error)
-{
-  return garrow_array_builder_append_values<arrow::UInt8Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[uint8-array-builder][append-values]");
-}
-
-/**
- * garrow_uint8_array_builder_append_null: (skip)
- * @builder: A #GArrowUInt8ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_uint8_array_builder_append_null(GArrowUInt8ArrayBuilder *builder,
-                                       GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_uint8_array_builder_append_nulls: (skip)
- * @builder: A #GArrowUInt8ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_uint8_array_builder_append_nulls(GArrowUInt8ArrayBuilder *builder,
-                                        gint64 n,
-                                        GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowInt16ArrayBuilder,
-              garrow_int16_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_int16_array_builder_init(GArrowInt16ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_int16_array_builder_class_init(GArrowInt16ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_int16_array_builder_new:
- *
- * Returns: A newly created #GArrowInt16ArrayBuilder.
- */
-GArrowInt16ArrayBuilder *
-garrow_int16_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::int16(),
-                                          NULL,
-                                          "[int16-array-builder][new]");
-  return GARROW_INT16_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_int16_array_builder_append:
- * @builder: A #GArrowInt16ArrayBuilder.
- * @value: A int16 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_int16_array_builder_append_value() instead.
- */
-gboolean
-garrow_int16_array_builder_append(GArrowInt16ArrayBuilder *builder,
-                                  gint16 value,
-                                  GError **error)
-{
-  return garrow_int16_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_int16_array_builder_append_value:
- * @builder: A #GArrowInt16ArrayBuilder.
- * @value: A int16 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_int16_array_builder_append_value(GArrowInt16ArrayBuilder *builder,
-                                        gint16 value,
-                                        GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Int16Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[int16-array-builder][append-value]");
-}
-
-/**
- * garrow_int16_array_builder_append_values:
- * @builder: A #GArrowInt16ArrayBuilder.
- * @values: (array length=values_length): The array of int16.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_int16_array_builder_append_values(GArrowInt16ArrayBuilder *builder,
-                                         const gint16 *values,
-                                         gint64 values_length,
-                                         const gboolean *is_valids,
-                                         gint64 is_valids_length,
-                                         GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Int16Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[int16-array-builder][append-values]");
-}
-
-/**
- * garrow_int16_array_builder_append_null: (skip)
- * @builder: A #GArrowInt16ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_int16_array_builder_append_null(GArrowInt16ArrayBuilder *builder,
-                                       GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_int16_array_builder_append_nulls: (skip)
- * @builder: A #GArrowInt16ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_int16_array_builder_append_nulls(GArrowInt16ArrayBuilder *builder,
-                                        gint64 n,
-                                        GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowUInt16ArrayBuilder,
-              garrow_uint16_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_uint16_array_builder_init(GArrowUInt16ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_uint16_array_builder_class_init(GArrowUInt16ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_uint16_array_builder_new:
- *
- * Returns: A newly created #GArrowUInt16ArrayBuilder.
- */
-GArrowUInt16ArrayBuilder *
-garrow_uint16_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::uint16(),
-                                          NULL,
-                                          "[uint16-array-builder][new]");
-  return GARROW_UINT16_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_uint16_array_builder_append:
- * @builder: A #GArrowUInt16ArrayBuilder.
- * @value: An uint16 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_uint16_array_builder_append_value() instead.
- */
-gboolean
-garrow_uint16_array_builder_append(GArrowUInt16ArrayBuilder *builder,
-                                   guint16 value,
-                                   GError **error)
-{
-  return garrow_uint16_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_uint16_array_builder_append_value:
- * @builder: A #GArrowUInt16ArrayBuilder.
- * @value: An uint16 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_uint16_array_builder_append_value(GArrowUInt16ArrayBuilder *builder,
-                                         guint16 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::UInt16Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[uint16-array-builder][append-value]");
-}
-
-/**
- * garrow_uint16_array_builder_append_values:
- * @builder: A #GArrowUInt16ArrayBuilder.
- * @values: (array length=values_length): The array of uint16.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_uint16_array_builder_append_values(GArrowUInt16ArrayBuilder *builder,
-                                          const guint16 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::UInt16Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[uint16-array-builder][append-values]");
-}
-
-/**
- * garrow_uint16_array_builder_append_null: (skip)
- * @builder: A #GArrowUInt16ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_uint16_array_builder_append_null(GArrowUInt16ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_uint16_array_builder_append_nulls: (skip)
- * @builder: A #GArrowUInt16ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_uint16_array_builder_append_nulls(GArrowUInt16ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowInt32ArrayBuilder,
-              garrow_int32_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_int32_array_builder_init(GArrowInt32ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_int32_array_builder_class_init(GArrowInt32ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_int32_array_builder_new:
- *
- * Returns: A newly created #GArrowInt32ArrayBuilder.
- */
-GArrowInt32ArrayBuilder *
-garrow_int32_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::int32(),
-                                          NULL,
-                                          "[int32-array-builder][new]");
-  return GARROW_INT32_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_int32_array_builder_append:
- * @builder: A #GArrowInt32ArrayBuilder.
- * @value: A int32 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_int32_array_builder_append_value() instead.
- */
-gboolean
-garrow_int32_array_builder_append(GArrowInt32ArrayBuilder *builder,
-                                  gint32 value,
-                                  GError **error)
-{
-  return garrow_int32_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_int32_array_builder_append_value:
- * @builder: A #GArrowInt32ArrayBuilder.
- * @value: A int32 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_int32_array_builder_append_value(GArrowInt32ArrayBuilder *builder,
-                                        gint32 value,
-                                        GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Int32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[int32-array-builder][append-value]");
-}
-
-/**
- * garrow_int32_array_builder_append_values:
- * @builder: A #GArrowInt32ArrayBuilder.
- * @values: (array length=values_length): The array of int32.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_int32_array_builder_append_values(GArrowInt32ArrayBuilder *builder,
-                                         const gint32 *values,
-                                         gint64 values_length,
-                                         const gboolean *is_valids,
-                                         gint64 is_valids_length,
-                                         GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Int32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[int32-array-builder][append-values]");
-}
-
-/**
- * garrow_int32_array_builder_append_null: (skip)
- * @builder: A #GArrowInt32ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_int32_array_builder_append_null(GArrowInt32ArrayBuilder *builder,
-                                       GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_int32_array_builder_append_nulls: (skip)
- * @builder: A #GArrowInt32ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_int32_array_builder_append_nulls(GArrowInt32ArrayBuilder *builder,
-                                        gint64 n,
-                                        GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowUInt32ArrayBuilder,
-              garrow_uint32_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_uint32_array_builder_init(GArrowUInt32ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_uint32_array_builder_class_init(GArrowUInt32ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_uint32_array_builder_new:
- *
- * Returns: A newly created #GArrowUInt32ArrayBuilder.
- */
-GArrowUInt32ArrayBuilder *
-garrow_uint32_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::uint32(),
-                                          NULL,
-                                          "[uint32-array-builder][new]");
-  return GARROW_UINT32_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_uint32_array_builder_append:
- * @builder: A #GArrowUInt32ArrayBuilder.
- * @value: An uint32 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_uint32_array_builder_append_value() instead.
- */
-gboolean
-garrow_uint32_array_builder_append(GArrowUInt32ArrayBuilder *builder,
-                                   guint32 value,
-                                   GError **error)
-{
-  return garrow_uint32_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_uint32_array_builder_append_value:
- * @builder: A #GArrowUInt32ArrayBuilder.
- * @value: An uint32 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_uint32_array_builder_append_value(GArrowUInt32ArrayBuilder *builder,
-                                         guint32 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::UInt32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[uint32-array-builder][append-value]");
-}
-
-/**
- * garrow_uint32_array_builder_append_values:
- * @builder: A #GArrowUInt32ArrayBuilder.
- * @values: (array length=values_length): The array of uint32.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_uint32_array_builder_append_values(GArrowUInt32ArrayBuilder *builder,
-                                          const guint32 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::UInt32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[uint32-array-builder][append-values]");
-}
-
-/**
- * garrow_uint32_array_builder_append_null: (skip)
- * @builder: A #GArrowUInt32ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_uint32_array_builder_append_null(GArrowUInt32ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_uint32_array_builder_append_nulls: (skip)
- * @builder: A #GArrowUInt32ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_uint32_array_builder_append_nulls(GArrowUInt32ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowInt64ArrayBuilder,
-              garrow_int64_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_int64_array_builder_init(GArrowInt64ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_int64_array_builder_class_init(GArrowInt64ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_int64_array_builder_new:
- *
- * Returns: A newly created #GArrowInt64ArrayBuilder.
- */
-GArrowInt64ArrayBuilder *
-garrow_int64_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::int64(),
-                                          NULL,
-                                          "[int64-array-builder][new]");
-  return GARROW_INT64_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_int64_array_builder_append:
- * @builder: A #GArrowInt64ArrayBuilder.
- * @value: A int64 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_int64_array_builder_append_value() instead.
- */
-gboolean
-garrow_int64_array_builder_append(GArrowInt64ArrayBuilder *builder,
-                                  gint64 value,
-                                  GError **error)
-{
-  return garrow_int64_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_int64_array_builder_append_value:
- * @builder: A #GArrowInt64ArrayBuilder.
- * @value: A int64 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_int64_array_builder_append_value(GArrowInt64ArrayBuilder *builder,
-                                        gint64 value,
-                                        GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Int64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[int64-array-builder][append-value]");
-}
-
-/**
- * garrow_int64_array_builder_append_values:
- * @builder: A #GArrowInt64ArrayBuilder.
- * @values: (array length=values_length): The array of int64.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_int64_array_builder_append_values(GArrowInt64ArrayBuilder *builder,
-                                         const gint64 *values,
-                                         gint64 values_length,
-                                         const gboolean *is_valids,
-                                         gint64 is_valids_length,
-                                         GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Int64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const int64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[int64-array-builder][append-values]");
-}
-
-/**
- * garrow_int64_array_builder_append_null: (skip)
- * @builder: A #GArrowInt64ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_int64_array_builder_append_null(GArrowInt64ArrayBuilder *builder,
-                                       GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_int64_array_builder_append_nulls: (skip)
- * @builder: A #GArrowInt64ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_int64_array_builder_append_nulls(GArrowInt64ArrayBuilder *builder,
-                                        gint64 n,
-                                        GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowUInt64ArrayBuilder,
-              garrow_uint64_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_uint64_array_builder_init(GArrowUInt64ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_uint64_array_builder_class_init(GArrowUInt64ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_uint64_array_builder_new:
- *
- * Returns: A newly created #GArrowUInt64ArrayBuilder.
- */
-GArrowUInt64ArrayBuilder *
-garrow_uint64_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::uint64(),
-                                          NULL,
-                                          "[uint64-array-builder][new]");
-  return GARROW_UINT64_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_uint64_array_builder_append:
- * @builder: A #GArrowUInt64ArrayBuilder.
- * @value: An uint64 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_uint64_array_builder_append_value() instead.
- */
-gboolean
-garrow_uint64_array_builder_append(GArrowUInt64ArrayBuilder *builder,
-                                  guint64 value,
-                                  GError **error)
-{
-  return garrow_uint64_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_uint64_array_builder_append_value:
- * @builder: A #GArrowUInt64ArrayBuilder.
- * @value: An uint64 value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_uint64_array_builder_append_value(GArrowUInt64ArrayBuilder *builder,
-                                         guint64 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::UInt64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[uint64-array-builder][append-value]");
-}
-
-/**
- * garrow_uint64_array_builder_append_values:
- * @builder: A #GArrowUInt64ArrayBuilder.
- * @values: (array length=values_length): The array of uint64.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_uint64_array_builder_append_values(GArrowUInt64ArrayBuilder *builder,
-                                          const guint64 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::UInt64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const uint64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[uint64-array-builder][append-values]");
-}
-
-/**
- * garrow_uint64_array_builder_append_null: (skip)
- * @builder: A #GArrowUInt64ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_uint64_array_builder_append_null(GArrowUInt64ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_uint64_array_builder_append_nulls: (skip)
- * @builder: A #GArrowUInt64ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_uint64_array_builder_append_nulls(GArrowUInt64ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowFloatArrayBuilder,
-              garrow_float_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_float_array_builder_init(GArrowFloatArrayBuilder *builder)
-{
-}
-
-static void
-garrow_float_array_builder_class_init(GArrowFloatArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_float_array_builder_new:
- *
- * Returns: A newly created #GArrowFloatArrayBuilder.
- */
-GArrowFloatArrayBuilder *
-garrow_float_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::float32(),
-                                          NULL,
-                                          "[float-array-builder][new]");
-  return GARROW_FLOAT_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_float_array_builder_append:
- * @builder: A #GArrowFloatArrayBuilder.
- * @value: A float value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_float_array_builder_append_value() instead.
- */
-gboolean
-garrow_float_array_builder_append(GArrowFloatArrayBuilder *builder,
-                                  gfloat value,
-                                  GError **error)
-{
-  return garrow_float_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_float_array_builder_append_value:
- * @builder: A #GArrowFloatArrayBuilder.
- * @value: A float value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_float_array_builder_append_value(GArrowFloatArrayBuilder *builder,
-                                        gfloat value,
-                                        GError **error)
-{
-  return garrow_array_builder_append_value<arrow::FloatBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[float-array-builder][append-value]");
-}
-
-/**
- * garrow_float_array_builder_append_values:
- * @builder: A #GArrowFloatArrayBuilder.
- * @values: (array length=values_length): The array of float.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_float_array_builder_append_values(GArrowFloatArrayBuilder *builder,
-                                         const gfloat *values,
-                                         gint64 values_length,
-                                         const gboolean *is_valids,
-                                         gint64 is_valids_length,
-                                         GError **error)
-{
-  return garrow_array_builder_append_values<arrow::FloatBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[float-array-builder][append-values]");
-}
-
-/**
- * garrow_float_array_builder_append_null: (skip)
- * @builder: A #GArrowFloatArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_float_array_builder_append_null(GArrowFloatArrayBuilder *builder,
-                                       GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_float_array_builder_append_nulls: (skip)
- * @builder: A #GArrowFloatArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_float_array_builder_append_nulls(GArrowFloatArrayBuilder *builder,
-                                        gint64 n,
-                                        GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowDoubleArrayBuilder,
-              garrow_double_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_double_array_builder_init(GArrowDoubleArrayBuilder *builder)
-{
-}
-
-static void
-garrow_double_array_builder_class_init(GArrowDoubleArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_double_array_builder_new:
- *
- * Returns: A newly created #GArrowDoubleArrayBuilder.
- */
-GArrowDoubleArrayBuilder *
-garrow_double_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::float64(),
-                                          NULL,
-                                          "[double-array-builder][new]");
-  return GARROW_DOUBLE_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_double_array_builder_append:
- * @builder: A #GArrowDoubleArrayBuilder.
- * @value: A double value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_double_array_builder_append_value() instead.
- */
-gboolean
-garrow_double_array_builder_append(GArrowDoubleArrayBuilder *builder,
-                                   gdouble value,
-                                   GError **error)
-{
-  return garrow_double_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_double_array_builder_append_value:
- * @builder: A #GArrowDoubleArrayBuilder.
- * @value: A double value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_double_array_builder_append_value(GArrowDoubleArrayBuilder *builder,
-                                         gdouble value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::DoubleBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[double-array-builder][append-value]");
-}
-
-/**
- * garrow_double_array_builder_append_values:
- * @builder: A #GArrowDoubleArrayBuilder.
- * @values: (array length=values_length): The array of double.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_double_array_builder_append_values(GArrowDoubleArrayBuilder *builder,
-                                          const gdouble *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::DoubleBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[double-array-builder][append-values]");
-}
-
-/**
- * garrow_double_array_builder_append_null: (skip)
- * @builder: A #GArrowDoubleArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_double_array_builder_append_null(GArrowDoubleArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_double_array_builder_append_nulls: (skip)
- * @builder: A #GArrowDoubleArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_double_array_builder_append_nulls(GArrowDoubleArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowBinaryArrayBuilder,
-              garrow_binary_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_binary_array_builder_init(GArrowBinaryArrayBuilder *builder)
-{
-}
-
-static void
-garrow_binary_array_builder_class_init(GArrowBinaryArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_binary_array_builder_new:
- *
- * Returns: A newly created #GArrowBinaryArrayBuilder.
- */
-GArrowBinaryArrayBuilder *
-garrow_binary_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::binary(),
-                                          NULL,
-                                          "[binary-array-builder][new]");
-  return GARROW_BINARY_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_binary_array_builder_append:
- * @builder: A #GArrowBinaryArrayBuilder.
- * @value: (array length=length): A binary value.
- * @length: A value length.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_binary_array_builder_append_value() instead.
- */
-gboolean
-garrow_binary_array_builder_append(GArrowBinaryArrayBuilder *builder,
-                                   const guint8 *value,
-                                   gint32 length,
-                                   GError **error)
-{
-  return garrow_binary_array_builder_append_value(builder, value, length, error);
-}
-
-/**
- * garrow_binary_array_builder_append_value:
- * @builder: A #GArrowBinaryArrayBuilder.
- * @value: (array length=length): A binary value.
- * @length: A value length.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_binary_array_builder_append_value(GArrowBinaryArrayBuilder *builder,
-                                         const guint8 *value,
-                                         gint32 length,
-                                         GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append(value, length);
-  return garrow_error_check(error,
-                            status,
-                            "[binary-array-builder][append-value]");
-}
-
-/**
- * garrow_binary_array_builder_append_value_bytes:
- * @builder: A #GArrowBinaryArrayBuilder.
- * @value: A binary value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_binary_array_builder_append_value_bytes(GArrowBinaryArrayBuilder *builder,
-                                               GBytes *value,
-                                               GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  gsize size;
-  auto data = g_bytes_get_data(value, &size);
-  auto status = arrow_builder->Append(static_cast<const uint8_t *>(data),
-                                      size);
-  return garrow_error_check(error,
-                            status,
-                            "[binary-array-builder][append-value-bytes]");
-}
-
-/**
- * garrow_binary_array_builder_append_values:
- * @builder: A #GArrowBinaryArrayBuilder.
- * @values: (array length=values_length): The array of #GBytes.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_binary_array_builder_append_values(GArrowBinaryArrayBuilder *builder,
-                                          GBytes **values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::BinaryBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[binary-array-builder][append-values]");
-}
-
-/**
- * garrow_binary_array_builder_append_null: (skip)
- * @builder: A #GArrowBinaryArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_binary_array_builder_append_null(GArrowBinaryArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_binary_array_builder_append_nulls: (skip)
- * @builder: A #GArrowBinaryArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_binary_array_builder_append_nulls(GArrowBinaryArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowLargeBinaryArrayBuilder,
-              garrow_large_binary_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_large_binary_array_builder_init(GArrowLargeBinaryArrayBuilder *builder)
-{
-}
-
-static void
-garrow_large_binary_array_builder_class_init(GArrowLargeBinaryArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_large_binary_array_builder_new:
- *
- * Returns: A newly created #GArrowLargeBinaryArrayBuilder.
- *
- * Since: 0.16.0
- */
-GArrowLargeBinaryArrayBuilder *
-garrow_large_binary_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::large_binary(),
-                                          NULL,
-                                          "[large-binary-array-builder][new]");
-  return GARROW_LARGE_BINARY_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_large_binary_array_builder_append_value:
- * @builder: A #GArrowLargeBinaryArrayBuilder.
- * @value: (array length=length): A binary value.
- * @length: A value length.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_large_binary_array_builder_append_value(GArrowLargeBinaryArrayBuilder *builder,
-                                               const guint8 *value,
-                                               gint64 length,
-                                               GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::LargeBinaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append(value, length);
-  return garrow_error_check(error,
-                            status,
-                            "[large-binary-array-builder][append-value]");
-}
-
-/**
- * garrow_large_binary_array_builder_append_value_bytes:
- * @builder: A #GArrowLargeBinaryArrayBuilder.
- * @value: A binary value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_large_binary_array_builder_append_value_bytes(GArrowLargeBinaryArrayBuilder *builder,
-                                                     GBytes *value,
-                                                     GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::LargeBinaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  gsize size;
-  gconstpointer data = g_bytes_get_data(value, &size);
-  auto status = arrow_builder->Append(static_cast<const uint8_t *>(data),
-                                      size);
-  return garrow_error_check(error,
-                            status,
-                            "[large-binary-array-builder][append-value-bytes]");
-}
-
-/**
- * garrow_large_binary_array_builder_append_values:
- * @builder: A #GArrowLargeBinaryArrayBuilder.
- * @values: (array length=values_length): The array of #GBytes.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_large_binary_array_builder_append_values(GArrowLargeBinaryArrayBuilder *builder,
-                                                GBytes **values,
-                                                gint64 values_length,
-                                                const gboolean *is_valids,
-                                                gint64 is_valids_length,
-                                                GError **error)
-{
-  return garrow_array_builder_append_values<arrow::LargeBinaryBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[large-binary-array-builder][append-values]");
-}
-
-/**
- * garrow_large_binary_array_builder_append_null: (skip)
- * @builder: A #GArrowLargeBinaryArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_large_binary_array_builder_append_null(GArrowLargeBinaryArrayBuilder *builder,
-                                              GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_large_binary_array_builder_append_nulls: (skip)
- * @builder: A #GArrowLargeBinaryArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_large_binary_array_builder_append_nulls(GArrowLargeBinaryArrayBuilder *builder,
-                                               gint64 n,
-                                               GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowStringArrayBuilder,
-              garrow_string_array_builder,
-              GARROW_TYPE_BINARY_ARRAY_BUILDER)
-
-static void
-garrow_string_array_builder_init(GArrowStringArrayBuilder *builder)
-{
-}
-
-static void
-garrow_string_array_builder_class_init(GArrowStringArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_string_array_builder_new:
- *
- * Returns: A newly created #GArrowStringArrayBuilder.
- */
-GArrowStringArrayBuilder *
-garrow_string_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::utf8(),
-                                          NULL,
-                                          "[string-array-builder][new]");
-  return GARROW_STRING_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_string_array_builder_append:
- * @builder: A #GArrowStringArrayBuilder.
- * @value: A string value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Deprecated: 0.12.0:
- *   Use garrow_string_array_builder_append_value() instead.
- */
-gboolean
-garrow_string_array_builder_append(GArrowStringArrayBuilder *builder,
-                                   const gchar *value,
-                                   GError **error)
-{
-  return garrow_string_array_builder_append_string(builder, value, error);
-}
-
-/**
- * garrow_string_array_builder_append_value: (skip)
- * @builder: A #GArrowStringArrayBuilder.
- * @value: A string value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- *
- * Deprecated: 1.0.0:
- *   Use garrow_string_array_builder_append_string() instead.
- */
-gboolean
-garrow_string_array_builder_append_value(GArrowStringArrayBuilder *builder,
-                                         const gchar *value,
-                                         GError **error)
-{
-  return garrow_string_array_builder_append_string(builder, value, error);
-}
-
-/**
- * garrow_string_array_builder_append_string:
- * @builder: A #GArrowStringArrayBuilder.
- * @value: A string value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_string_array_builder_append_string(GArrowStringArrayBuilder *builder,
-                                          const gchar *value,
-                                          GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::StringBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append(value,
-                                      static_cast<gint32>(strlen(value)));
-  return garrow_error_check(error,
-                            status,
-                            "[string-array-builder][append-string]");
-}
-
-/**
- * garrow_string_array_builder_append_values: (skip)
- * @builder: A #GArrowStringArrayBuilder.
- * @values: (array length=values_length): The array of strings.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.10.0
- *
- * Deprecated: 1.0.0:
- *   Use garrow_string_array_builder_append_strings() instead.
- */
-gboolean
-garrow_string_array_builder_append_values(GArrowStringArrayBuilder *builder,
-                                          const gchar **values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_string_array_builder_append_strings(builder,
-                                                    values,
-                                                    values_length,
-                                                    is_valids,
-                                                    is_valids_length,
-                                                    error);
-}
-
-/**
- * garrow_string_array_builder_append_strings:
- * @builder: A #GArrowStringArrayBuilder.
- * @values: (array length=values_length): The array of strings.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_string_array_builder_append_strings(GArrowStringArrayBuilder *builder,
-                                           const gchar **values,
-                                           gint64 values_length,
-                                           const gboolean *is_valids,
-                                           gint64 is_valids_length,
-                                           GError **error)
-{
-  return garrow_array_builder_append_values<arrow::StringBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[string-array-builder][append-strings]");
-}
-
-
-G_DEFINE_TYPE(GArrowLargeStringArrayBuilder,
-              garrow_large_string_array_builder,
-              GARROW_TYPE_LARGE_BINARY_ARRAY_BUILDER)
-
-static void
-garrow_large_string_array_builder_init(GArrowLargeStringArrayBuilder *builder)
-{
-}
-
-static void
-garrow_large_string_array_builder_class_init(GArrowLargeStringArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_large_string_array_builder_new:
- *
- * Returns: A newly created #GArrowLargeStringArrayBuilder.
- *
- * Since: 0.16.0
- */
-GArrowLargeStringArrayBuilder *
-garrow_large_string_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::large_utf8(),
-                                          NULL,
-                                          "[large-string-array-builder][new]");
-  return GARROW_LARGE_STRING_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_large_string_array_builder_append_string:
- * @builder: A #GArrowLargeStringArrayBuilder.
- * @value: A string value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_large_string_array_builder_append_string(GArrowLargeStringArrayBuilder *builder,
-                                                const gchar *value,
-                                                GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::LargeStringBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto status = arrow_builder->Append(value);
-  return garrow_error_check(error,
-                            status,
-                            "[large-string-array-builder][append-string]");
-}
-
-/**
- * garrow_large_string_array_builder_append_strings:
- * @builder: A #GArrowLargeStringArrayBuilder.
- * @values: (array length=values_length): The array of strings.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_large_string_array_builder_append_strings(GArrowLargeStringArrayBuilder *builder,
-                                                 const gchar **values,
-                                                 gint64 values_length,
-                                                 const gboolean *is_valids,
-                                                 gint64 is_valids_length,
-                                                 GError **error)
-{
-  return garrow_array_builder_append_values<arrow::LargeStringBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[large-string-array-builder][append-strings]");
-}
-
-
-G_DEFINE_TYPE(GArrowFixedSizeBinaryArrayBuilder,
-              garrow_fixed_size_binary_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_fixed_size_binary_array_builder_init(
-  GArrowFixedSizeBinaryArrayBuilder *builder)
-{
-}
-
-static void
-garrow_fixed_size_binary_array_builder_class_init(
-  GArrowFixedSizeBinaryArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_fixed_size_binary_array_builder_new:
- * @data_type: A #GArrowFixedSizeBinaryDataType for created array.
- *
- * Returns: A newly created #GArrowFixedSizeBinaryArrayBuilder.
- */
-GArrowFixedSizeBinaryArrayBuilder *
-garrow_fixed_size_binary_array_builder_new(
-  GArrowFixedSizeBinaryDataType *data_type)
-{
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder =
-    garrow_array_builder_new(arrow_data_type,
-                             NULL,
-                             "[fixed-size-binary-array-builder][new]");
-  return GARROW_FIXED_SIZE_BINARY_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_fixed_size_binary_array_builder_append_value:
- * @builder: A #GArrowFixedSizeBinaryArrayBuilder.
- * @value: (nullable) (array length=length): A binary value.
- * @length: A value length.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_fixed_size_binary_array_builder_append_value(
-  GArrowFixedSizeBinaryArrayBuilder *builder,
-  const guint8 *value,
-  gint32 length,
-  GError **error)
-{
-  const gchar *context = "[fixed-size-binary-array-builder][append-value]";
-  auto arrow_builder =
-    static_cast<arrow::FixedSizeBinaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  arrow::Status status;
-  if (value) {
-    if (arrow_builder->byte_width() != length) {
-      g_set_error(error,
-                  GARROW_ERROR,
-                  GARROW_ERROR_INVALID,
-                  "%s: value size must be <%d>: <%d>",
-                  context,
-                  arrow_builder->byte_width(),
-                  length);
-      return FALSE;
-    }
-    status = arrow_builder->Append(value);
-  } else {
-    status = arrow_builder->AppendNull();
-  }
-  return garrow_error_check(error, status, context);
-}
-
-/**
- * garrow_fixed_size_binary_array_builder_append_value_bytes:
- * @builder: A #GArrowFixedSizeBinaryArrayBuilder.
- * @value: A binary value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_fixed_size_binary_array_builder_append_value_bytes(
-  GArrowFixedSizeBinaryArrayBuilder *builder,
-  GBytes *value,
-  GError **error)
-{
-  const gchar *context = "[fixed-size-binary-array-builder][append-value-bytes]";
-  auto arrow_builder =
-    static_cast<arrow::FixedSizeBinaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  gsize size;
-  auto data = g_bytes_get_data(value, &size);
-  if (arrow_builder->byte_width() != static_cast<gint32>(size)) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "%s: value size must be <%d>: <%" G_GSIZE_FORMAT ">",
-                context,
-                arrow_builder->byte_width(),
-                size);
-    return FALSE;
-  }
-  auto status = arrow_builder->Append(static_cast<const uint8_t *>(data));
-  return garrow_error_check(error, status, context);
-}
-
-/**
- * garrow_fixed_size_binary_array_builder_append_values:
- * @builder: A #GArrowFixedSizeBinaryArrayBuilder.
- * @values: (array length=values_length): The array of #GBytes.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_fixed_size_binary_array_builder_append_values(
-  GArrowFixedSizeBinaryArrayBuilder *builder,
-  GBytes **values,
-  gint64 values_length,
-  const gboolean *is_valids,
-  gint64 is_valids_length,
-  GError **error)
-{
-  return garrow_array_builder_append_values(
-    GARROW_ARRAY_BUILDER(builder),
-    values,
-    values_length,
-    is_valids,
-    is_valids_length,
-    error,
-    "[fixed-size-binary-array-builder][append-values]",
-    [](guint8 *output, GBytes *value, gsize size) {
-      size_t data_size;
-      auto raw_data = g_bytes_get_data(value, &data_size);
-      memcpy(output, raw_data, size);
-    });
-}
-
-/**
- * garrow_fixed_size_binary_array_builder_append_values_packed:
- * @builder: A #GArrowFixedSizeBinaryArrayBuilder.
- * @values: A #GBytes that contains multiple values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * This is more efficient than
- * garrow_fixed_size_binary_array_builder_append_values().
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_fixed_size_binary_array_builder_append_values_packed(
-  GArrowFixedSizeBinaryArrayBuilder *builder,
-  GBytes *values,
-  const gboolean *is_valids,
-  gint64 is_valids_length,
-  GError **error)
-{
-  return garrow_array_builder_append_values<arrow::FixedSizeBinaryBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     is_valids,
-     is_valids_length,
-     error,
-     "[fixed-size-binary-array-builder][append-values-packed]");
-}
-
-
-G_DEFINE_TYPE(GArrowDate32ArrayBuilder,
-              garrow_date32_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_date32_array_builder_init(GArrowDate32ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_date32_array_builder_class_init(GArrowDate32ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_date32_array_builder_new:
- *
- * Returns: A newly created #GArrowDate32ArrayBuilder.
- *
- * Since: 0.7.0
- */
-GArrowDate32ArrayBuilder *
-garrow_date32_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::date32(),
-                                          NULL,
-                                          "[date32-array-builder][new]");
-  return GARROW_DATE32_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_date32_array_builder_append:
- * @builder: A #GArrowDate32ArrayBuilder.
- * @value: The number of days since UNIX epoch in signed 32bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_date32_array_builder_append_value() instead.
- */
-gboolean
-garrow_date32_array_builder_append(GArrowDate32ArrayBuilder *builder,
-                                   gint32 value,
-                                   GError **error)
-{
-  return garrow_date32_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_date32_array_builder_append_value:
- * @builder: A #GArrowDate32ArrayBuilder.
- * @value: The number of days since UNIX epoch in signed 32bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_date32_array_builder_append_value(GArrowDate32ArrayBuilder *builder,
-                                         gint32 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Date32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[date32-array-builder][append-value]");
-}
-
-/**
- * garrow_date32_array_builder_append_values:
- * @builder: A #GArrowDate32ArrayBuilder.
- * @values: (array length=values_length): The array of
- *   the number of days since UNIX epoch in signed 32bit integer.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_date32_array_builder_append_values(GArrowDate32ArrayBuilder *builder,
-                                          const gint32 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Date32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[date32-array-builder][append-values]");
-}
-
-/**
- * garrow_date32_array_builder_append_null: (skip)
- * @builder: A #GArrowDate32ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_date32_array_builder_append_null(GArrowDate32ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_date32_array_builder_append_nulls: (skip)
- * @builder: A #GArrowDate32ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_date32_array_builder_append_nulls(GArrowDate32ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowDate64ArrayBuilder,
-              garrow_date64_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_date64_array_builder_init(GArrowDate64ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_date64_array_builder_class_init(GArrowDate64ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_date64_array_builder_new:
- *
- * Returns: A newly created #GArrowDate64ArrayBuilder.
- *
- * Since: 0.7.0
- */
-GArrowDate64ArrayBuilder *
-garrow_date64_array_builder_new(void)
-{
-  auto builder = garrow_array_builder_new(arrow::date64(),
-                                          NULL,
-                                          "[date64-array-builder][new]");
-  return GARROW_DATE64_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_date64_array_builder_append:
- * @builder: A #GArrowDate64ArrayBuilder.
- * @value: The number of milliseconds since UNIX epoch in signed 64bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_date64_array_builder_append_value() instead.
- */
-gboolean
-garrow_date64_array_builder_append(GArrowDate64ArrayBuilder *builder,
-                                   gint64 value,
-                                   GError **error)
-{
-  return garrow_date64_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_date64_array_builder_append_value:
- * @builder: A #GArrowDate64ArrayBuilder.
- * @value: The number of milliseconds since UNIX epoch in signed 64bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_date64_array_builder_append_value(GArrowDate64ArrayBuilder *builder,
-                                         gint64 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Date64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[date64-array-builder][append-value]");
-}
-
-/**
- * garrow_date64_array_builder_append_values:
- * @builder: A #GArrowDate64ArrayBuilder.
- * @values: (array length=values_length): The array of
- *   the number of milliseconds since UNIX epoch in signed 64bit integer.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_date64_array_builder_append_values(GArrowDate64ArrayBuilder *builder,
-                                          const gint64 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Date64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const int64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[date64-array-builder][append-values]");
-}
-
-/**
- * garrow_date64_array_builder_append_null: (skip)
- * @builder: A #GArrowDate64ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_date64_array_builder_append_null(GArrowDate64ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_date64_array_builder_append_nulls: (skip)
- * @builder: A #GArrowDate64ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_date64_array_builder_append_nulls(GArrowDate64ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowTimestampArrayBuilder,
-              garrow_timestamp_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_timestamp_array_builder_init(GArrowTimestampArrayBuilder *builder)
-{
-}
-
-static void
-garrow_timestamp_array_builder_class_init(GArrowTimestampArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_timestamp_array_builder_new:
- * @data_type: A #GArrowTimestampDataType.
- *
- * Returns: A newly created #GArrowTimestampArrayBuilder.
- *
- * Since: 0.7.0
- */
-GArrowTimestampArrayBuilder *
-garrow_timestamp_array_builder_new(GArrowTimestampDataType *data_type)
-{
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          NULL,
-                                          "[timestamp-array-builder][new]");
-  return GARROW_TIMESTAMP_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_timestamp_array_builder_append:
- * @builder: A #GArrowTimestampArrayBuilder.
- * @value: The number of milliseconds since UNIX epoch in signed 64bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_timestamp_array_builder_append_value() instead.
- */
-gboolean
-garrow_timestamp_array_builder_append(GArrowTimestampArrayBuilder *builder,
-                                      gint64 value,
-                                      GError **error)
-{
-  return garrow_timestamp_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_timestamp_array_builder_append_value:
- * @builder: A #GArrowTimestampArrayBuilder.
- * @value: The number of milliseconds since UNIX epoch in signed 64bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_timestamp_array_builder_append_value(GArrowTimestampArrayBuilder *builder,
-                                            gint64 value,
-                                            GError **error)
-{
-  return garrow_array_builder_append_value<arrow::TimestampBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[timestamp-array-builder][append-value]");
-}
-
-/**
- * garrow_timestamp_array_builder_append_values:
- * @builder: A #GArrowTimestampArrayBuilder.
- * @values: (array length=values_length): The array of
- *   the number of milliseconds since UNIX epoch in signed 64bit integer.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_timestamp_array_builder_append_values(GArrowTimestampArrayBuilder *builder,
-                                             const gint64 *values,
-                                             gint64 values_length,
-                                             const gboolean *is_valids,
-                                             gint64 is_valids_length,
-                                             GError **error)
-{
-  return garrow_array_builder_append_values<arrow::TimestampBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const int64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[timestamp-array-builder][append-values]");
-}
-
-/**
- * garrow_timestamp_array_builder_append_null: (skip)
- * @builder: A #GArrowTimestampArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_timestamp_array_builder_append_null(GArrowTimestampArrayBuilder *builder,
-                                           GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_timestamp_array_builder_append_nulls: (skip)
- * @builder: A #GArrowTimestampArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_timestamp_array_builder_append_nulls(GArrowTimestampArrayBuilder *builder,
-                                            gint64 n,
-                                            GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowTime32ArrayBuilder,
-              garrow_time32_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_time32_array_builder_init(GArrowTime32ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_time32_array_builder_class_init(GArrowTime32ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_time32_array_builder_new:
- * @data_type: A #GArrowTime32DataType.
- *
- * Returns: A newly created #GArrowTime32ArrayBuilder.
- *
- * Since: 0.7.0
- */
-GArrowTime32ArrayBuilder *
-garrow_time32_array_builder_new(GArrowTime32DataType *data_type)
-{
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          NULL,
-                                          "[time32-array-builder][new]");
-  return GARROW_TIME32_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_time32_array_builder_append:
- * @builder: A #GArrowTime32ArrayBuilder.
- * @value: The number of days since UNIX epoch in signed 32bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_time32_array_builder_append_value() instead.
- */
-gboolean
-garrow_time32_array_builder_append(GArrowTime32ArrayBuilder *builder,
-                                   gint32 value,
-                                   GError **error)
-{
-  return garrow_time32_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_time32_array_builder_append_value:
- * @builder: A #GArrowTime32ArrayBuilder.
- * @value: The number of days since UNIX epoch in signed 32bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_time32_array_builder_append_value(GArrowTime32ArrayBuilder *builder,
-                                         gint32 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Time32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[time32-array-builder][append-value]");
-}
-
-/**
- * garrow_time32_array_builder_append_values:
- * @builder: A #GArrowTime32ArrayBuilder.
- * @values: (array length=values_length): The array of
- *   the number of days since UNIX epoch in signed 32bit integer.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_time32_array_builder_append_values(GArrowTime32ArrayBuilder *builder,
-                                          const gint32 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Time32Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     values,
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[time32-array-builder][append-values]");
-}
-
-/**
- * garrow_time32_array_builder_append_null: (skip)
- * @builder: A #GArrowTime32ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_time32_array_builder_append_null(GArrowTime32ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_time32_array_builder_append_nulls: (skip)
- * @builder: A #GArrowTime32ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_time32_array_builder_append_nulls(GArrowTime32ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowTime64ArrayBuilder,
-              garrow_time64_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_time64_array_builder_init(GArrowTime64ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_time64_array_builder_class_init(GArrowTime64ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_time64_array_builder_new:
- * @data_type: A #GArrowTime64DataType.
- *
- * Returns: A newly created #GArrowTime64ArrayBuilder.
- *
- * Since: 0.7.0
- */
-GArrowTime64ArrayBuilder *
-garrow_time64_array_builder_new(GArrowTime64DataType *data_type)
-{
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          NULL,
-                                          "[time64-array-builder][new]");
-  return GARROW_TIME64_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_time64_array_builder_append:
- * @builder: A #GArrowTime64ArrayBuilder.
- * @value: The number of milliseconds since UNIX epoch in signed 64bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_time64_array_builder_append_value() instead.
- */
-gboolean
-garrow_time64_array_builder_append(GArrowTime64ArrayBuilder *builder,
-                                   gint64 value,
-                                   GError **error)
-{
-  return garrow_time64_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_time64_array_builder_append_value:
- * @builder: A #GArrowTime64ArrayBuilder.
- * @value: The number of milliseconds since UNIX epoch in signed 64bit integer.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_time64_array_builder_append_value(GArrowTime64ArrayBuilder *builder,
-                                         gint64 value,
-                                         GError **error)
-{
-  return garrow_array_builder_append_value<arrow::Time64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     value,
-     error,
-     "[time64-array-builder][append-value]");
-}
-
-/**
- * garrow_time64_array_builder_append_values:
- * @builder: A #GArrowTime64ArrayBuilder.
- * @values: (array length=values_length): The array of
- *   the number of milliseconds since UNIX epoch in signed 64bit integer.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- */
-gboolean
-garrow_time64_array_builder_append_values(GArrowTime64ArrayBuilder *builder,
-                                          const gint64 *values,
-                                          gint64 values_length,
-                                          const gboolean *is_valids,
-                                          gint64 is_valids_length,
-                                          GError **error)
-{
-  return garrow_array_builder_append_values<arrow::Time64Builder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const int64_t *>(values),
-     values_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[time64-array-builder][append-values]");
-}
-
-/**
- * garrow_time64_array_builder_append_null: (skip)
- * @builder: A #GArrowTime64ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.7.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_time64_array_builder_append_null(GArrowTime64ArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_time64_array_builder_append_nulls: (skip)
- * @builder: A #GArrowTime64ArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.8.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_time64_array_builder_append_nulls(GArrowTime64ArrayBuilder *builder,
-                                         gint64 n,
-                                         GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-
-G_DEFINE_TYPE(GArrowBinaryDictionaryArrayBuilder,
-              garrow_binary_dictionary_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_binary_dictionary_array_builder_init(GArrowBinaryDictionaryArrayBuilder *builder)
-{
-}
-
-static void
-garrow_binary_dictionary_array_builder_class_init(GArrowBinaryDictionaryArrayBuilderClass *klass)
-{
-}
-
-
-/**
- * garrow_binary_dictionary_array_builder_new:
- *
- * Returns: A newly created #GArrowBinaryDictionaryArrayBuilder.
- *
- * Since: 2.0.0
- */
-GArrowBinaryDictionaryArrayBuilder *
-garrow_binary_dictionary_array_builder_new(void)
-{
-  // We can use arrow:int8() for the index type of the following arrow_dict_type
-  // because arrow::MakeBuilder creates a dictionary builder with arrow::AdaptiveIntBuilder.
-  auto arrow_dict_type = arrow::dictionary(arrow::int8(), arrow::binary());
-  auto builder = garrow_array_builder_new(arrow_dict_type,
-                                          nullptr,
-                                          "[binary-dictionary-array-builder][new]");
-  return GARROW_BINARY_DICTIONARY_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_binary_dictionary_array_builder_append_null: (skip)
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_binary_dictionary_array_builder_append_null(GArrowBinaryDictionaryArrayBuilder *builder,
-                                                   GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_binary_dictionary_array_builder_append_value:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @value: (array length=length): A binary value.
- * @length: A value length.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_binary_dictionary_array_builder_append_value(GArrowBinaryDictionaryArrayBuilder *builder,
-                                                    const guint8 *value,
-                                                    gint32 length,
-                                                    GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append(value, length);
-
-  return garrow_error_check(error,
-                            status,
-                            "[binary-dictionary-array-builder][append-value]");
-}
-
-/**
- * garrow_binary_dictionary_array_builder_append_value_bytes:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @value: A binary value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_binary_dictionary_array_builder_append_value_bytes(GArrowBinaryDictionaryArrayBuilder *builder,
-                                                          GBytes *value,
-                                                          GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  gsize size;
-  auto data = g_bytes_get_data(value, &size);
-  auto status = arrow_builder->Append(static_cast<const uint8_t *>(data),
-                                      size);
-
-  return garrow_error_check(error,
-                            status,
-                            "[binary-dictionary-array-builder][append-value-bytes]");
-}
-
-/**
- * garrow_binary_dictionary_array_builder_append_array:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @array: A #GArrowBinaryArray.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_binary_dictionary_array_builder_append_array(GArrowBinaryDictionaryArrayBuilder *builder,
-                                                    GArrowBinaryArray *array,
-                                                    GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto arrow_array = garrow_array_get_raw<arrow::BinaryType>(GARROW_ARRAY(array));
-
-  auto status = arrow_builder->AppendArray(*arrow_array);
-
-  return garrow_error_check(error,
-                            status,
-                            "[binary-dictionary-array-builder][append-binary-array]");
-}
-
-/**
- * garrow_binary_dictionary_array_builder_append_indices:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @values: (array length=values_length): The array of indices.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   %TRUE or %FALSE that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append dictionary indices directly without modifying the internal memo.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_binary_dictionary_array_builder_append_indices(GArrowBinaryDictionaryArrayBuilder *builder,
-                                                      const gint64 *values,
-                                                      gint64 values_length,
-                                                      const gboolean *is_valids,
-                                                      gint64 is_valids_length,
-                                                      GError **error)
-{
-  static const char *context = "[binary-dictionary-array-builder][append-indices]";
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto append_function = [&arrow_builder](
-      const gint64 *values,
-      gint64 values_length,
-      const uint8_t *valid_bytes) -> arrow::Status {
-    return arrow_builder->AppendIndices(values, values_length, valid_bytes);
-  };
-  return garrow_array_builder_append_values(values, values_length, is_valids,
-                                            is_valids_length, error, context,
-                                            append_function);
-}
-
-/**
- * garrow_binary_dictionary_array_builder_get_dictionary_length:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- *
- * Returns: A number of entries in the dicitonary.
- *
- * Since: 2.0.0
- */
-gint64 garrow_binary_dictionary_array_builder_get_dictionary_length(GArrowBinaryDictionaryArrayBuilder *builder)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  return arrow_builder->dictionary_length();
-}
-
-/**
- * garrow_binary_dictionary_array_builder_finish_delta:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @out_indices: (out): The built #GArrowArray containing indices.
- * @out_delta: (out): The built #GArrowArray containing dictionary.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_binary_dictionary_array_builder_finish_delta(GArrowBinaryDictionaryArrayBuilder* builder,
-                                                    GArrowArray **out_indices,
-                                                    GArrowArray **out_delta,
-                                                    GError **error)
-{
-  static const char *context = "[binary-dictionary-array-builder][finish-delta]";
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  std::shared_ptr<arrow::Array> arrow_indices, arrow_delta;
-  auto status = arrow_builder->FinishDelta(&arrow_indices, &arrow_delta);
-  if (!garrow_error_check(error, status, context)) {
-    return FALSE;
-  }
-  *out_indices = garrow_array_new_raw(&arrow_indices);
-  *out_delta = garrow_array_new_raw(&arrow_delta);
-  return TRUE;
-}
-
-/**
- * garrow_binary_dictionary_array_builder_insert_memo_values:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- * @values: A #GArrowBinaryArray.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_binary_dictionary_array_builder_insert_memo_values(GArrowBinaryDictionaryArrayBuilder *builder,
-                                                          GArrowBinaryArray *values,
-                                                          GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto arrow_array = garrow_array_get_raw<arrow::BinaryType>(GARROW_ARRAY(values));
-
-  auto status = arrow_builder->InsertMemoValues(*arrow_array);
-
-  return garrow_error_check(error,
-                            status,
-                            "[binary-dictionary-array-builder][insert-memo-values]");
-}
-
-/**
- * garrow_binary_dictionary_array_builder_reset_full:
- * @builder: A #GArrowBinaryDictionaryArrayBuilder.
- *
- * Reset and also clear accumulated dictionary values in memo table.
- *
- * Since: 2.0.0
- */
-void
-garrow_binary_dictionary_array_builder_reset_full(GArrowBinaryDictionaryArrayBuilder *builder)
-{
-  auto arrow_builder =
-    static_cast<arrow::BinaryDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  arrow_builder->ResetFull();
-}
-
-
-G_DEFINE_TYPE(GArrowStringDictionaryArrayBuilder,
-              garrow_string_dictionary_array_builder,
-              GARROW_TYPE_ARRAY_BUILDER)
-
-static void
-garrow_string_dictionary_array_builder_init(GArrowStringDictionaryArrayBuilder *builder)
-{
-}
-
-static void
-garrow_string_dictionary_array_builder_class_init(GArrowStringDictionaryArrayBuilderClass *klass)
-{
-}
-
-
-/**
- * garrow_string_dictionary_array_builder_new:
- *
- * Returns: A newly created #GArrowStringDictionaryArrayBuilder.
- *
- * Since: 2.0.0
- */
-GArrowStringDictionaryArrayBuilder *
-garrow_string_dictionary_array_builder_new(void)
-{
-  // We can use arrow:int8() for the index type of the following arrow_dict_type
-  // because arrow::MakeBuilder creates a dictionary builder with arrow::AdaptiveIntBuilder.
-  auto arrow_dict_type = arrow::dictionary(arrow::int8(), arrow::utf8());
-  auto builder = garrow_array_builder_new(arrow_dict_type,
-                                          nullptr,
-                                          "[string-dictionary-array-builder][new]");
-  return GARROW_STRING_DICTIONARY_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_string_dictionary_array_builder_append_null: (skip)
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_string_dictionary_array_builder_append_null(GArrowStringDictionaryArrayBuilder *builder,
-                                                   GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_string_dictionary_array_builder_append_string:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- * @value: A string value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_string_dictionary_array_builder_append_string(GArrowStringDictionaryArrayBuilder *builder,
-                                                     const gchar *value,
-                                                     GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append(value,
-                                      static_cast<guint32>(strlen(value)));
-
-  return garrow_error_check(error,
-                            status,
-                            "[string-dictionary-array-builder][append-string]");
-}
-
-/**
- * garrow_string_dictionary_array_builder_append_array:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- * @array: A #GArrowStringArray.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_string_dictionary_array_builder_append_array(GArrowStringDictionaryArrayBuilder *builder,
-                                                    GArrowStringArray *array,
-                                                    GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto arrow_array = garrow_array_get_raw<arrow::StringType>(GARROW_ARRAY(array));
-
-  auto status = arrow_builder->AppendArray(*arrow_array);
-
-  return garrow_error_check(error,
-                            status,
-                            "[string-dictionary-array-builder][append-string-array]");
-}
-
-/**
- * garrow_string_dictionary_array_builder_append_indices:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- * @values: (array length=values_length): The array of indices.
- * @values_length: The length of `values`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   %TRUE or %FALSE that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append dictionary indices directly without modifying the internal memo.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_string_dictionary_array_builder_append_indices(GArrowStringDictionaryArrayBuilder *builder,
-                                                      const gint64 *values,
-                                                      gint64 values_length,
-                                                      const gboolean *is_valids,
-                                                      gint64 is_valids_length,
-                                                      GError **error)
-{
-  static const char *context = "[string-dictionary-array-builder][append-indices]";
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto append_function = [&arrow_builder](
-      const gint64 *values,
-      gint64 values_length,
-      const uint8_t *valid_bytes) -> arrow::Status {
-    return arrow_builder->AppendIndices(values, values_length, valid_bytes);
-  };
-  return garrow_array_builder_append_values(values, values_length, is_valids,
-                                            is_valids_length, error, context,
-                                            append_function);
-}
-
-/**
- * garrow_string_dictionary_array_builder_get_dictionary_length:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- *
- * Returns: A number of entries in the dicitonary.
- *
- * Since: 2.0.0
- */
-gint64 garrow_string_dictionary_array_builder_get_dictionary_length(GArrowStringDictionaryArrayBuilder *builder)
-{
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  return arrow_builder->dictionary_length();
-}
-
-/**
- * garrow_string_dictionary_array_builder_finish_delta:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- * @out_indices: (out): The built #GArrowArray containing indices.
- * @out_delta: (out): The built #GArrowArray containing dictionary.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_string_dictionary_array_builder_finish_delta(GArrowStringDictionaryArrayBuilder* builder,
-                                                    GArrowArray **out_indices,
-                                                    GArrowArray **out_delta,
-                                                    GError **error)
-{
-  static const char *context = "[string-dictionary-array-builder][finish-delta]";
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  std::shared_ptr<arrow::Array> arrow_indices, arrow_delta;
-  auto status = arrow_builder->FinishDelta(&arrow_indices, &arrow_delta);
-  if (!garrow_error_check(error, status, context)) {
-    return FALSE;
-  }
-  *out_indices = garrow_array_new_raw(&arrow_indices);
-  *out_delta = garrow_array_new_raw(&arrow_delta);
-  return TRUE;
-}
-
-/**
- * garrow_string_dictionary_array_builder_insert_memo_values:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- * @values: A #GArrowStringArray.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 2.0.0
- */
-gboolean
-garrow_string_dictionary_array_builder_insert_memo_values(GArrowStringDictionaryArrayBuilder *builder,
-                                                          GArrowStringArray *values,
-                                                          GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  auto arrow_array = garrow_array_get_raw<arrow::StringType>(GARROW_ARRAY(values));
-
-  auto status = arrow_builder->InsertMemoValues(*arrow_array);
-
-  return garrow_error_check(error,
-                            status,
-                            "[string-dictionary-array-builder][insert-memo-values]");
-}
-
-/**
- * garrow_string_dictionary_array_builder_reset_full:
- * @builder: A #GArrowStringDictionaryArrayBuilder.
- *
- * Reset and also clear accumulated dictionary values in memo table.
- *
- * Since: 2.0.0
- */
-void
-garrow_string_dictionary_array_builder_reset_full(GArrowStringDictionaryArrayBuilder *builder)
-{
-  auto arrow_builder =
-    static_cast<arrow::StringDictionaryBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-  arrow_builder->ResetFull();
-}
-
-
-typedef struct GArrowListArrayBuilderPrivate_ {
-  GArrowArrayBuilder *value_builder;
-} GArrowListArrayBuilderPrivate;
-
-G_DEFINE_TYPE_WITH_PRIVATE(GArrowListArrayBuilder,
-                           garrow_list_array_builder,
-                           GARROW_TYPE_ARRAY_BUILDER)
-
-#define GARROW_LIST_ARRAY_BUILDER_GET_PRIVATE(obj)         \
-  static_cast<GArrowListArrayBuilderPrivate *>(            \
-     garrow_list_array_builder_get_instance_private(       \
-       GARROW_LIST_ARRAY_BUILDER(obj)))
-
-static void
-garrow_list_array_builder_dispose(GObject *object)
-{
-  auto priv = GARROW_LIST_ARRAY_BUILDER_GET_PRIVATE(object);
-
-  if (priv->value_builder) {
-    g_object_unref(priv->value_builder);
-    priv->value_builder = NULL;
-  }
-
-  G_OBJECT_CLASS(garrow_list_array_builder_parent_class)->dispose(object);
-}
-
-static void
-garrow_list_array_builder_init(GArrowListArrayBuilder *builder)
-{
-}
-
-static void
-garrow_list_array_builder_class_init(GArrowListArrayBuilderClass *klass)
-{
-  GObjectClass *gobject_class;
-
-  gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->dispose = garrow_list_array_builder_dispose;
-}
-
-/**
- * garrow_list_array_builder_new:
- * @data_type: A #GArrowListDataType for value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: A newly created #GArrowListArrayBuilder.
- */
-GArrowListArrayBuilder *
-garrow_list_array_builder_new(GArrowListDataType *data_type,
-                              GError **error)
-{
-  if (!GARROW_IS_LIST_DATA_TYPE(data_type)) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "[list-array-builder][new] data type must be list data type");
-    return NULL;
-  }
-
-  auto arrow_data_type =
-    garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          error,
-                                          "[list-array-builder][new]");
-  return GARROW_LIST_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_list_array_builder_append:
- * @builder: A #GArrowListArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new list element. To append a new list element, you
- * need to call this function then append list element values to
- * `value_builder`. `value_builder` is the #GArrowArrayBuilder
- * specified to constructor. You can get `value_builder` by
- * garrow_list_array_builder_get_value_builder().
- *
- * |[<!-- language="C" -->
- * GArrowInt8ArrayBuilder *value_builder;
- * GArrowListArrayBuilder *builder;
- *
- * value_builder = garrow_int8_array_builder_new();
- * builder = garrow_list_array_builder_new(value_builder, NULL);
- *
- * // Start 0th list element: [1, 0, -1]
- * garrow_list_array_builder_append(builder, NULL);
- * garrow_int8_array_builder_append(value_builder, 1);
- * garrow_int8_array_builder_append(value_builder, 0);
- * garrow_int8_array_builder_append(value_builder, -1);
- *
- * // Start 1st list element: [-29, 29]
- * garrow_list_array_builder_append(builder, NULL);
- * garrow_int8_array_builder_append(value_builder, -29);
- * garrow_int8_array_builder_append(value_builder, 29);
- *
- * {
- *   // [[1, 0, -1], [-29, 29]]
- *   GArrowArray *array = garrow_array_builder_finish(builder);
- *   // Now, builder is needless.
- *   g_object_unref(builder);
- *   g_object_unref(value_builder);
- *
- *   // Use array...
- *   g_object_unref(array);
- * }
- * ]|
- *
- * Deprecated: 0.12.0:
- *   Use garrow_list_array_builder_append_value() instead.
- */
-gboolean
-garrow_list_array_builder_append(GArrowListArrayBuilder *builder,
-                                 GError **error)
-{
-  return garrow_list_array_builder_append_value(builder, error);
-}
-
-/**
- * garrow_list_array_builder_append_value:
- * @builder: A #GArrowListArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new list element. To append a new list element, you
- * need to call this function then append list element values to
- * `value_builder`. `value_builder` is the #GArrowArrayBuilder
- * specified to constructor. You can get `value_builder` by
- * garrow_list_array_builder_get_value_builder().
- *
- * |[<!-- language="C" -->
- * GArrowInt8ArrayBuilder *value_builder;
- * GArrowListArrayBuilder *builder;
- *
- * value_builder = garrow_int8_array_builder_new();
- * builder = garrow_list_array_builder_new(value_builder, NULL);
- *
- * // Start 0th list element: [1, 0, -1]
- * garrow_list_array_builder_append(builder, NULL);
- * garrow_int8_array_builder_append(value_builder, 1);
- * garrow_int8_array_builder_append(value_builder, 0);
- * garrow_int8_array_builder_append(value_builder, -1);
- *
- * // Start 1st list element: [-29, 29]
- * garrow_list_array_builder_append(builder, NULL);
- * garrow_int8_array_builder_append(value_builder, -29);
- * garrow_int8_array_builder_append(value_builder, 29);
- *
- * {
- *   // [[1, 0, -1], [-29, 29]]
- *   GArrowArray *array = garrow_array_builder_finish(builder);
- *   // Now, builder is needless.
- *   g_object_unref(builder);
- *   g_object_unref(value_builder);
- *
- *   // Use array...
- *   g_object_unref(array);
- * }
- * ]|
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_list_array_builder_append_value(GArrowListArrayBuilder *builder,
-                                       GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::ListBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append();
-  return garrow_error_check(error, status, "[list-array-builder][append-value]");
-}
-
-/**
- * garrow_list_array_builder_append_null: (skip)
- * @builder: A #GArrowListArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new NULL element.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_list_array_builder_append_null(GArrowListArrayBuilder *builder,
-                                      GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_list_array_builder_get_value_builder:
- * @builder: A #GArrowListArrayBuilder.
- *
- * Returns: (transfer none): The #GArrowArrayBuilder for values.
- */
-GArrowArrayBuilder *
-garrow_list_array_builder_get_value_builder(GArrowListArrayBuilder *builder)
-{
-  auto priv = GARROW_LIST_ARRAY_BUILDER_GET_PRIVATE(builder);
-  if (!priv->value_builder) {
-    auto arrow_builder =
-      static_cast<arrow::ListBuilder *>(
-        garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-    auto arrow_value_builder = arrow_builder->value_builder();
-    priv->value_builder = garrow_array_builder_new_raw(arrow_value_builder);
-    garrow_array_builder_release_ownership(priv->value_builder);
-  }
-  return priv->value_builder;
-}
-
-
-typedef struct GArrowLargeListArrayBuilderPrivate_ {
-  GArrowArrayBuilder *value_builder;
-} GArrowLargeListArrayBuilderPrivate;
-
-G_DEFINE_TYPE_WITH_PRIVATE(GArrowLargeListArrayBuilder,
-                           garrow_large_list_array_builder,
-                           GARROW_TYPE_ARRAY_BUILDER)
-
-#define GARROW_LARGE_LIST_ARRAY_BUILDER_GET_PRIVATE(obj)        \
-  static_cast<GArrowLargeListArrayBuilderPrivate *>(            \
-     garrow_large_list_array_builder_get_instance_private(      \
-       GARROW_LARGE_LIST_ARRAY_BUILDER(obj)))
-
-static void
-garrow_large_list_array_builder_dispose(GObject *object)
-{
-  auto priv = GARROW_LARGE_LIST_ARRAY_BUILDER_GET_PRIVATE(object);
-
-  if (priv->value_builder) {
-    g_object_unref(priv->value_builder);
-    priv->value_builder = NULL;
-  }
-
-  G_OBJECT_CLASS(garrow_large_list_array_builder_parent_class)->dispose(object);
-}
-
-static void
-garrow_large_list_array_builder_init(GArrowLargeListArrayBuilder *builder)
-{
-}
-
-static void
-garrow_large_list_array_builder_class_init(GArrowLargeListArrayBuilderClass *klass)
-{
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->dispose = garrow_large_list_array_builder_dispose;
-}
-
-/**
- * garrow_large_list_array_builder_new:
- * @data_type: A #GArrowLargeListDataType for value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: A newly created #GArrowLargeListArrayBuilder.
- *
- * Since: 0.16.0
- */
-GArrowLargeListArrayBuilder *
-garrow_large_list_array_builder_new(GArrowLargeListDataType *data_type,
-                                    GError **error)
-{
-  if (!GARROW_IS_LARGE_LIST_DATA_TYPE(data_type)) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "[large-list-array-builder][new] data type must be large list data type");
-    return NULL;
-  }
-
-  auto arrow_data_type =
-    garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          error,
-                                          "[large-list-array-builder][new]");
-  return GARROW_LARGE_LIST_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_large_list_array_builder_append_value:
- * @builder: A #GArrowLargeListArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new list element. To append a new list element, you
- * need to call this function then append list element values to
- * `value_builder`. `value_builder` is the #GArrowArrayBuilder
- * specified to constructor. You can get `value_builder` by
- * garrow_large_list_array_builder_get_value_builder().
- *
- * Since: 0.16.0
- */
-gboolean
-garrow_large_list_array_builder_append_value(GArrowLargeListArrayBuilder *builder,
-                                             GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::LargeListBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append();
-  return garrow_error_check(error, status, "[large-list-array-builder][append-value]");
-}
-
-/**
- * garrow_large_list_array_builder_append_null: (skip)
- * @builder: A #GArrowLargeListArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new NULL element.
- *
- * Since: 0.16.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_large_list_array_builder_append_null(GArrowLargeListArrayBuilder *builder,
-                                            GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_large_list_array_builder_get_value_builder:
- * @builder: A #GArrowLargeListArrayBuilder.
- *
- * Returns: (transfer none): The #GArrowArrayBuilder for values.
- *
- * Since: 0.16.0
- */
-GArrowArrayBuilder *
-garrow_large_list_array_builder_get_value_builder(GArrowLargeListArrayBuilder *builder)
-{
-  auto priv = GARROW_LARGE_LIST_ARRAY_BUILDER_GET_PRIVATE(builder);
-  if (!priv->value_builder) {
-    auto arrow_builder =
-      static_cast<arrow::LargeListBuilder *>(
-        garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-    auto arrow_value_builder = arrow_builder->value_builder();
-    priv->value_builder = garrow_array_builder_new_raw(arrow_value_builder);
-    garrow_array_builder_release_ownership(priv->value_builder);
-  }
-  return priv->value_builder;
-}
-
-
-typedef struct GArrowStructArrayBuilderPrivate_ {
-  GList *field_builders;
-} GArrowStructArrayBuilderPrivate;
-
-G_DEFINE_TYPE_WITH_PRIVATE(GArrowStructArrayBuilder,
-                           garrow_struct_array_builder,
-                           GARROW_TYPE_ARRAY_BUILDER)
-
-#define GARROW_STRUCT_ARRAY_BUILDER_GET_PRIVATE(obj)         \
-  static_cast<GArrowStructArrayBuilderPrivate *>(            \
-     garrow_struct_array_builder_get_instance_private(       \
-       GARROW_STRUCT_ARRAY_BUILDER(obj)))
-
-static void
-garrow_struct_array_builder_dispose(GObject *object)
-{
-  auto priv = GARROW_STRUCT_ARRAY_BUILDER_GET_PRIVATE(object);
-
-  for (auto node = priv->field_builders; node; node = g_list_next(node)) {
-    auto field_builder = static_cast<GArrowArrayBuilder *>(node->data);
-    GArrowArrayBuilderPrivate *field_builder_priv;
-
-    field_builder_priv = GARROW_ARRAY_BUILDER_GET_PRIVATE(field_builder);
-    field_builder_priv->array_builder = nullptr;
-    g_object_unref(field_builder);
-  }
-  g_list_free(priv->field_builders);
-  priv->field_builders = NULL;
-
-  G_OBJECT_CLASS(garrow_struct_array_builder_parent_class)->dispose(object);
-}
-
-static void
-garrow_struct_array_builder_init(GArrowStructArrayBuilder *builder)
-{
-}
-
-static void
-garrow_struct_array_builder_class_init(GArrowStructArrayBuilderClass *klass)
-{
-  GObjectClass *gobject_class;
-
-  gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->dispose = garrow_struct_array_builder_dispose;
-}
-
-/**
- * garrow_struct_array_builder_new:
- * @data_type: #GArrowStructDataType for the struct.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: A newly created #GArrowStructArrayBuilder.
- */
-GArrowStructArrayBuilder *
-garrow_struct_array_builder_new(GArrowStructDataType *data_type,
-                                GError **error)
-{
-  if (!GARROW_IS_STRUCT_DATA_TYPE(data_type)) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "[struct-array-builder][new] data type must be struct data type");
-    return NULL;
-  }
-
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          error,
-                                          "[struct-array-builder][new]");
-  return GARROW_STRUCT_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_struct_array_builder_append:
- * @builder: A #GArrowStructArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new struct element. To append a new struct element,
- * you need to call this function then append struct element field
- * values to all `field_builder`s. `field_value`s are the
- * #GArrowArrayBuilder specified to constructor. You can get
- * `field_builder` by garrow_struct_array_builder_get_field_builder()
- * or garrow_struct_array_builder_get_field_builders().
- *
- * |[<!-- language="C" -->
- * // TODO
- * ]|
- *
- * Deprecated: 0.12.0:
- *   Use garrow_struct_array_builder_append_value() instead.
- */
-gboolean
-garrow_struct_array_builder_append(GArrowStructArrayBuilder *builder,
-                                   GError **error)
-{
-  return garrow_struct_array_builder_append_value(builder, error);
-}
-
-/**
- * garrow_struct_array_builder_append_value:
- * @builder: A #GArrowStructArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new struct element. To append a new struct element,
- * you need to call this function then append struct element field
- * values to all `field_builder`s. `field_value`s are the
- * #GArrowArrayBuilder specified to constructor. You can get
- * `field_builder` by garrow_struct_array_builder_get_field_builder()
- * or garrow_struct_array_builder_get_field_builders().
- *
- * |[<!-- language="C" -->
- * // TODO
- * ]|
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_struct_array_builder_append_value(GArrowStructArrayBuilder *builder,
-                                         GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::StructBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append();
-  return garrow_error_check(error,
-                            status,
-                            "[struct-array-builder][append-value]");
-}
-
-/**
- * garrow_struct_array_builder_append_null: (skip)
- * @builder: A #GArrowStructArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new NULL element.
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_struct_array_builder_append_null(GArrowStructArrayBuilder *builder,
-                                        GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_struct_array_builder_get_field_builder:
- * @builder: A #GArrowStructArrayBuilder.
- * @i: The index of the field in the struct.
- *
- * Returns: (transfer none): The #GArrowArrayBuilder for the i-th field.
- */
-GArrowArrayBuilder *
-garrow_struct_array_builder_get_field_builder(GArrowStructArrayBuilder *builder,
-                                              gint i)
-{
-  auto field_builders = garrow_struct_array_builder_get_field_builders(builder);
-  auto field_builder = g_list_nth_data(field_builders, i);
-  return static_cast<GArrowArrayBuilder *>(field_builder);
-}
-
-/**
- * garrow_struct_array_builder_get_field_builders:
- * @builder: A #GArrowStructArrayBuilder.
- *
- * Returns: (element-type GArrowArray) (transfer none):
- *   The #GArrowArrayBuilder for all fields.
- */
-GList *
-garrow_struct_array_builder_get_field_builders(GArrowStructArrayBuilder *builder)
-{
-  auto priv = GARROW_STRUCT_ARRAY_BUILDER_GET_PRIVATE(builder);
-  if (!priv->field_builders) {
-    auto arrow_struct_builder =
-      static_cast<arrow::StructBuilder *>(
-        garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-    GList *field_builders = NULL;
-    for (int i = 0; i < arrow_struct_builder->num_fields(); ++i) {
-      auto arrow_field_builder = arrow_struct_builder->field_builder(i);
-      auto field_builder = garrow_array_builder_new_raw(arrow_field_builder);
-      field_builders = g_list_prepend(field_builders, field_builder);
-    }
-    priv->field_builders = g_list_reverse(field_builders);
-  }
-
-  return priv->field_builders;
-}
-
-
-typedef struct GArrowMapArrayBuilderPrivate_ {
-  GArrowArrayBuilder *key_builder;
-  GArrowArrayBuilder *item_builder;
-  GArrowArrayBuilder *value_builder;
-} GArrowMapArrayBuilderPrivate;
-
-G_DEFINE_TYPE_WITH_PRIVATE(GArrowMapArrayBuilder,
-                           garrow_map_array_builder,
-                           GARROW_TYPE_ARRAY_BUILDER)
-
-#define GARROW_MAP_ARRAY_BUILDER_GET_PRIVATE(object)      \
-  static_cast<GArrowMapArrayBuilderPrivate *>(            \
-     garrow_map_array_builder_get_instance_private(       \
-       GARROW_MAP_ARRAY_BUILDER(object)))
-
-static void
-garrow_map_array_builder_dispose(GObject *object)
-{
-  auto priv = GARROW_MAP_ARRAY_BUILDER_GET_PRIVATE(object);
-
-  if (priv->key_builder) {
-    g_object_unref(priv->key_builder);
-    priv->key_builder = NULL;
-  }
-
-  if (priv->item_builder) {
-    g_object_unref(priv->item_builder);
-    priv->item_builder = NULL;
-  }
-
-  if (priv->value_builder) {
-    g_object_unref(priv->value_builder);
-    priv->value_builder = NULL;
-  }
-
-  G_OBJECT_CLASS(garrow_map_array_builder_parent_class)->dispose(object);
-}
-
-static void
-garrow_map_array_builder_init(GArrowMapArrayBuilder *builder)
-{
-}
-
-static void
-garrow_map_array_builder_class_init(GArrowMapArrayBuilderClass *klass)
-{
-  auto gobject_class = G_OBJECT_CLASS(klass);
-
-  gobject_class->dispose = garrow_map_array_builder_dispose;
-}
-
-/**
- * garrow_map_array_builder_new:
- * @data_type: #GArrowMapDataType for the map.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: (nullable): A newly created #GArrowMapArrayBuilder on success,
- *   %NULL on error.
- *
- * Since: 0.17.0
- */
-GArrowMapArrayBuilder *
-garrow_map_array_builder_new(GArrowMapDataType *data_type,
-                             GError **error)
-{
-  if (!GARROW_IS_MAP_DATA_TYPE(data_type)) {
-    g_set_error(error,
-                GARROW_ERROR,
-                GARROW_ERROR_INVALID,
-                "[map-array-builder][new] data type must be map data type");
-    return NULL;
-  }
-
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          error,
-                                          "[map-array-builder][new]");
-  if (builder) {
-    return GARROW_MAP_ARRAY_BUILDER(builder);
-  } else {
-    return NULL;
-  }
-}
-
-/**
- * garrow_map_array_builder_append_value:
- * @builder: A #GArrowMapArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.17.0
- */
-gboolean
-garrow_map_array_builder_append_value(GArrowMapArrayBuilder *builder,
-                                      GError **error)
-{
-  auto arrow_builder =
-    static_cast<arrow::MapBuilder *>(
-      garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-
-  auto status = arrow_builder->Append();
-  return garrow::check(error,
-                       status,
-                       "[map-array-builder][append-value]");
-}
-
-/**
- * garrow_map_array_builder_append_values:
- * @builder: A #GArrowMapArrayBuilder.
- * @offsets: (array length=offsets_length): The array of signed int.
- * @offsets_length: The length of `offsets`.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth `is_valids` is %TRUE, the Nth `values` is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of `is_valids`.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.17.0
- */
-gboolean
-garrow_map_array_builder_append_values(GArrowMapArrayBuilder *builder,
-                                       const gint32 *offsets,
-                                       gint64 offsets_length,
-                                       const gboolean *is_valids,
-                                       gint64 is_valids_length,
-                                       GError **error)
-{
-  return garrow_array_builder_append_values<arrow::MapBuilder *>
-    (GARROW_ARRAY_BUILDER(builder),
-     reinterpret_cast<const int32_t *>(offsets),
-     offsets_length,
-     is_valids,
-     is_valids_length,
-     error,
-     "[map-array-builder][append-values]");
-}
-
-/**
- * garrow_map_array_builder_append_null: (skip)
- * @builder: A #GArrowMapArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.17.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_map_array_builder_append_null(GArrowMapArrayBuilder *builder,
-                                     GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-/**
- * garrow_map_array_builder_append_nulls: (skip)
- * @builder: A #GArrowMapArrayBuilder.
- * @n: The number of null values to be appended.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple nulls at once. It's more efficient than multiple
- * `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.17.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_nulls() instead.
- */
-gboolean
-garrow_map_array_builder_append_nulls(GArrowMapArrayBuilder *builder,
-                                      gint64 n,
-                                      GError **error)
-{
-  return garrow_array_builder_append_nulls(GARROW_ARRAY_BUILDER(builder),
-                                           n,
-                                           error);
-}
-
-/**
- * garrow_map_array_builder_get_key_builder:
- * @builder: A #GArrowMapArrayBuilder.
- *
- * Returns: (transfer none): The #GArrowArrayBuilder for key values.
- *
- * Since: 0.17.0
- */
-GArrowArrayBuilder *
-garrow_map_array_builder_get_key_builder(GArrowMapArrayBuilder *builder)
-{
-  auto priv = GARROW_MAP_ARRAY_BUILDER_GET_PRIVATE(builder);
-  if (!priv->key_builder) {
-    auto arrow_builder =
-      static_cast<arrow::MapBuilder *>(
-        garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-    auto arrow_key_builder = arrow_builder->key_builder();
-    priv->key_builder = garrow_array_builder_new_raw(arrow_key_builder);
-    garrow_array_builder_release_ownership(priv->key_builder);
-  }
-  return priv->key_builder;
-}
-
-/**
- * garrow_map_array_builder_get_item_builder:
- * @builder: A #GArrowMapArrayBuilder.
- *
- * Returns: (transfer none): The #GArrowArrayBuilder for item values.
- *
- * Since: 0.17.0
- */
-GArrowArrayBuilder *
-garrow_map_array_builder_get_item_builder(GArrowMapArrayBuilder *builder)
-{
-  auto priv = GARROW_MAP_ARRAY_BUILDER_GET_PRIVATE(builder);
-  if (!priv->item_builder) {
-    auto arrow_builder =
-      static_cast<arrow::MapBuilder *>(
-        garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-    auto arrow_item_builder = arrow_builder->item_builder();
-    priv->item_builder = garrow_array_builder_new_raw(arrow_item_builder);
-    garrow_array_builder_release_ownership(priv->item_builder);
-  }
-  return priv->item_builder;
-}
-
-/**
- * garrow_map_array_builder_get_value_builder:
- * @builder: A #GArrowMapArrayBuilder.
- *
- * Returns: (transfer none): The #GArrowArrayBuilder to add map entries as struct values.
- *   This can be used instead of garrow_map_array_builder_get_key_builder() and
- *   garrow_map_array_builder_get_item_builder(). You can build map entries as a list of
- *   struct values with this builder.
- *
- * Since: 0.17.0
- */
-GArrowArrayBuilder *
-garrow_map_array_builder_get_value_builder(GArrowMapArrayBuilder *builder)
-{
-  auto priv = GARROW_MAP_ARRAY_BUILDER_GET_PRIVATE(builder);
-  if (!priv->value_builder) {
-    auto arrow_builder =
-      static_cast<arrow::MapBuilder *>(
-        garrow_array_builder_get_raw(GARROW_ARRAY_BUILDER(builder)));
-    auto arrow_value_builder = arrow_builder->value_builder();
-    priv->value_builder = garrow_array_builder_new_raw(arrow_value_builder);
-    garrow_array_builder_release_ownership(priv->value_builder);
-  }
-  return priv->value_builder;
-}
-
-
-G_DEFINE_TYPE(GArrowDecimal128ArrayBuilder,
-              garrow_decimal128_array_builder,
-              GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY_BUILDER)
-
-static void
-garrow_decimal128_array_builder_init(GArrowDecimal128ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_decimal128_array_builder_class_init(GArrowDecimal128ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_decimal128_array_builder_new:
- * @data_type: #GArrowDecimal128DataType for the decimal.
- *
- * Returns: A newly created #GArrowDecimal128ArrayBuilder.
- *
- * Since: 0.10.0
- */
-GArrowDecimal128ArrayBuilder *
-garrow_decimal128_array_builder_new(GArrowDecimal128DataType *data_type)
-{
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          NULL,
-                                          "[decimal128-array-builder][new]");
-  return GARROW_DECIMAL128_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_decimal128_array_builder_append:
- * @builder: A #GArrowDecimal128ArrayBuilder.
- * @value: A decimal value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.10.0
- *
- * Deprecated: 0.12.0:
- *   Use garrow_decimal128_array_builder_append_value() instead.
- */
-gboolean
-garrow_decimal128_array_builder_append(GArrowDecimal128ArrayBuilder *builder,
-                                       GArrowDecimal128 *value,
-                                       GError **error)
-{
-  return garrow_decimal128_array_builder_append_value(builder, value, error);
-}
-
-/**
- * garrow_decimal128_array_builder_append_value:
- * @builder: A #GArrowDecimal128ArrayBuilder.
- * @value: (nullable): A decimal value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 0.12.0
- */
-gboolean
-garrow_decimal128_array_builder_append_value(GArrowDecimal128ArrayBuilder *builder,
-                                             GArrowDecimal128 *value,
-                                             GError **error)
-{
-  if (value) {
-    auto arrow_decimal = garrow_decimal128_get_raw(value);
-    return garrow_array_builder_append_value<arrow::Decimal128Builder *>
-      (GARROW_ARRAY_BUILDER(builder),
-       *arrow_decimal,
-       error,
-       "[decimal128-array-builder][append-value]");
-  } else {
-    return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder),
-                                            error);
-  }
-}
-
-/**
- * garrow_decimal128_array_builder_append_values:
- * @builder: A #GArrowDecimal128ArrayBuilder.
- * @values: (array length=values_length): The array of #GArrowDecimal128.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_decimal128_array_builder_append_values(
-  GArrowDecimal128ArrayBuilder *builder,
-  GArrowDecimal128 **values,
-  gint64 values_length,
-  const gboolean *is_valids,
-  gint64 is_valids_length,
-  GError **error)
-{
-  return garrow_array_builder_append_values(
-    GARROW_ARRAY_BUILDER(builder),
-    values,
-    values_length,
-    is_valids,
-    is_valids_length,
-    error,
-    "[decimal128-array-builder][append-values]",
-    [](guint8 *output, GArrowDecimal128 *value, gsize size) {
-      auto arrow_decimal = garrow_decimal128_get_raw(value);
-      arrow_decimal->ToBytes(output);
-    });
-}
-
-/**
- * garrow_decimal128_array_builder_append_null: (skip)
- * @builder: A #GArrowDecimal128ArrayBuilder.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * It appends a new NULL element.
- *
- * Since: 0.12.0
- *
- * Deprecated: 3.0.0:
- *   Use garrow_array_builder_append_null() instead.
- */
-gboolean
-garrow_decimal128_array_builder_append_null(GArrowDecimal128ArrayBuilder *builder,
-                                            GError **error)
-{
-  return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder), error);
-}
-
-
-G_DEFINE_TYPE(GArrowDecimal256ArrayBuilder,
-              garrow_decimal256_array_builder,
-              GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY_BUILDER)
-
-static void
-garrow_decimal256_array_builder_init(GArrowDecimal256ArrayBuilder *builder)
-{
-}
-
-static void
-garrow_decimal256_array_builder_class_init(GArrowDecimal256ArrayBuilderClass *klass)
-{
-}
-
-/**
- * garrow_decimal256_array_builder_new:
- * @data_type: #GArrowDecimal256DataType for the decimal.
- *
- * Returns: A newly created #GArrowDecimal256ArrayBuilder.
- *
- * Since: 3.0.0
- */
-GArrowDecimal256ArrayBuilder *
-garrow_decimal256_array_builder_new(GArrowDecimal256DataType *data_type)
-{
-  auto arrow_data_type = garrow_data_type_get_raw(GARROW_DATA_TYPE(data_type));
-  auto builder = garrow_array_builder_new(arrow_data_type,
-                                          NULL,
-                                          "[decimal256-array-builder][new]");
-  return GARROW_DECIMAL256_ARRAY_BUILDER(builder);
-}
-
-/**
- * garrow_decimal256_array_builder_append_value:
- * @builder: A #GArrowDecimal256ArrayBuilder.
- * @value: (nullable): A decimal value.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_decimal256_array_builder_append_value(GArrowDecimal256ArrayBuilder *builder,
-                                             GArrowDecimal256 *value,
-                                             GError **error)
-{
-  if (value) {
-    auto arrow_decimal = garrow_decimal256_get_raw(value);
-    return garrow_array_builder_append_value<arrow::Decimal256Builder *>
-      (GARROW_ARRAY_BUILDER(builder),
-       *arrow_decimal,
-       error,
-       "[decimal256-array-builder][append-value]");
-  } else {
-    return garrow_array_builder_append_null(GARROW_ARRAY_BUILDER(builder),
-                                            error);
-  }
-}
-
-/**
- * garrow_decimal256_array_builder_append_values:
- * @builder: A #GArrowDecimal256ArrayBuilder.
- * @values: (array length=values_length): The array of #GArrowDecimal256.
- * @values_length: The length of @values.
- * @is_valids: (nullable) (array length=is_valids_length): The array of
- *   boolean that shows whether the Nth value is valid or not. If the
- *   Nth @is_valids is %TRUE, the Nth @values is valid value. Otherwise
- *   the Nth value is null value.
- * @is_valids_length: The length of @is_valids.
- * @error: (nullable): Return location for a #GError or %NULL.
- *
- * Append multiple values at once. It's more efficient than multiple
- * `append` and `append_null` calls.
- *
- * Returns: %TRUE on success, %FALSE if there was an error.
- *
- * Since: 3.0.0
- */
-gboolean
-garrow_decimal256_array_builder_append_values(
-  GArrowDecimal256ArrayBuilder *builder,
-  GArrowDecimal256 **values,
-  gint64 values_length,
-  const gboolean *is_valids,
-  gint64 is_valids_length,
-  GError **error)
-{
-  return garrow_array_builder_append_values(
-    GARROW_ARRAY_BUILDER(builder),
-    values,
-    values_length,
-    is_valids,
-    is_valids_length,
-    error,
-    "[decimal256-array-builder][append-values]",
-    [](guint8 *output, GArrowDecimal256 *value, gsize size) {
-      auto arrow_decimal = garrow_decimal256_get_raw(value);
-      arrow_decimal->ToBytes(output);
-    });
-}
-
-
-G_END_DECLS
-
-GArrowArrayBuilder *
-garrow_array_builder_new_raw(arrow::ArrayBuilder *arrow_builder,
-                             GType type)
-{
-  if (type == G_TYPE_INVALID) {
-    switch (arrow_builder->type()->id()) {
-    case arrow::Type::type::NA:
-      type = GARROW_TYPE_NULL_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::BOOL:
-      type = GARROW_TYPE_BOOLEAN_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::UINT8:
-      type = GARROW_TYPE_UINT8_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::INT8:
-      type = GARROW_TYPE_INT8_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::UINT16:
-      type = GARROW_TYPE_UINT16_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::INT16:
-      type = GARROW_TYPE_INT16_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::UINT32:
-      type = GARROW_TYPE_UINT32_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::INT32:
-      type = GARROW_TYPE_INT32_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::UINT64:
-      type = GARROW_TYPE_UINT64_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::INT64:
-      type = GARROW_TYPE_INT64_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::FLOAT:
-      type = GARROW_TYPE_FLOAT_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::DOUBLE:
-      type = GARROW_TYPE_DOUBLE_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::BINARY:
-      type = GARROW_TYPE_BINARY_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::LARGE_BINARY:
-      type = GARROW_TYPE_LARGE_BINARY_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::STRING:
-      type = GARROW_TYPE_STRING_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::LARGE_STRING:
-      type = GARROW_TYPE_LARGE_STRING_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::FIXED_SIZE_BINARY:
-      type = GARROW_TYPE_FIXED_SIZE_BINARY_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::DATE32:
-      type = GARROW_TYPE_DATE32_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::DATE64:
-      type = GARROW_TYPE_DATE64_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::TIMESTAMP:
-      type = GARROW_TYPE_TIMESTAMP_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::TIME32:
-      type = GARROW_TYPE_TIME32_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::TIME64:
-      type = GARROW_TYPE_TIME64_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::LIST:
-      type = GARROW_TYPE_LIST_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::LARGE_LIST:
-      type = GARROW_TYPE_LARGE_LIST_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::STRUCT:
-      type = GARROW_TYPE_STRUCT_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::MAP:
-      type = GARROW_TYPE_MAP_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::DECIMAL128:
-      type = GARROW_TYPE_DECIMAL128_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::DECIMAL256:
-      type = GARROW_TYPE_DECIMAL256_ARRAY_BUILDER;
-      break;
-    case arrow::Type::type::DICTIONARY:
-      {
-        const auto& dict_type =
-          arrow::internal::checked_cast<arrow::DictionaryType&>(*arrow_builder->type());
-        switch (dict_type.value_type()->id()) {
-          case arrow::Type::type::BINARY:
-            type = GARROW_TYPE_BINARY_DICTIONARY_ARRAY_BUILDER;
-            break;
-          case arrow::Type::type::STRING:
-            type = GARROW_TYPE_STRING_DICTIONARY_ARRAY_BUILDER;
-            break;
-          default:
-            type = GARROW_TYPE_ARRAY_BUILDER;
-            break;
-        }
-      }
-      break;
-    default:
-      type = GARROW_TYPE_ARRAY_BUILDER;
-      break;
-    }
-  }
-
-  auto builder =
-    GARROW_ARRAY_BUILDER(g_object_new(type,
-                                      "array-builder", arrow_builder,
-                                      NULL));
-  return builder;
-}
-
-arrow::ArrayBuilder *
-garrow_array_builder_get_raw(GArrowArrayBuilder *builder)
-{
-  auto priv = GARROW_ARRAY_BUILDER_GET_PRIVATE(builder);
-  return priv->array_builder;
-}
diff --git a/c_glib/arrow-glib/array-builder.h b/c_glib/arrow-glib/array-builder.h
deleted file mode 100644
index 7ab7a4c..0000000
--- a/c_glib/arrow-glib/array-builder.h
+++ /dev/null
@@ -1,1387 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#pragma once
-
-#include <arrow-glib/array.h>
-#include <arrow-glib/decimal.h>
-
-G_BEGIN_DECLS
-
-#define GARROW_TYPE_ARRAY_BUILDER (garrow_array_builder_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowArrayBuilder,
-                         garrow_array_builder,
-                         GARROW,
-                         ARRAY_BUILDER,
-                         GObject)
-struct _GArrowArrayBuilderClass
-{
-  GObjectClass parent_class;
-};
-
-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);
-
-GARROW_AVAILABLE_IN_2_0
-void garrow_array_builder_reset(GArrowArrayBuilder *builder);
-
-GARROW_AVAILABLE_IN_2_0
-gint64 garrow_array_builder_get_capacity(GArrowArrayBuilder *builder);
-GARROW_AVAILABLE_IN_2_0
-gint64 garrow_array_builder_get_length(GArrowArrayBuilder *builder);
-GARROW_AVAILABLE_IN_2_0
-gint64 garrow_array_builder_get_n_nulls(GArrowArrayBuilder *builder);
-
-GARROW_AVAILABLE_IN_2_0
-gboolean garrow_array_builder_resize(GArrowArrayBuilder *builder,
-                                     gint64 capacity,
-                                     GError **error);
-GARROW_AVAILABLE_IN_2_0
-gboolean garrow_array_builder_reserve(GArrowArrayBuilder *builder,
-                                      gint64 additional_capacity,
-                                      GError **error);
-
-GARROW_AVAILABLE_IN_3_0
-gboolean garrow_array_builder_append_null(GArrowArrayBuilder *builder,
-                                          GError **error);
-GARROW_AVAILABLE_IN_3_0
-gboolean garrow_array_builder_append_nulls(GArrowArrayBuilder *builder,
-                                           gint64 n,
-                                           GError **error);
-GARROW_AVAILABLE_IN_3_0
-gboolean garrow_array_builder_append_empty_value(GArrowArrayBuilder *builder,
-                                                 GError **error);
-GARROW_AVAILABLE_IN_3_0
-gboolean garrow_array_builder_append_empty_values(GArrowArrayBuilder *builder,
-                                                  gint64 n,
-                                                  GError **error);
-
-#define GARROW_TYPE_NULL_ARRAY_BUILDER (garrow_null_array_builder_get_type())
-G_DECLARE_DERIVABLE_TYPE(GArrowNullArrayBuilder,
-                         garrow_null_array_builder,
-                         GARROW,
-                         NULL_ARRAY_BUILDER,
-                         GArrowArrayBuilder)
-struct _GArrowNullArrayBuilderClass
-{
-  GArrowArrayBuilderClass parent_class;
-};
-
-GARROW_AVAILABLE_IN_0_13
-GArrowNullArrayBuilder *garrow_null_array_builder_new(void);
-
-#ifndef GARROW_DISABLE_DEPRECATED
-GARROW_DEPRECATED_IN_3_0_FOR(garrow_array_builder_append_null)
-GARROW_AVAILABLE_IN_0_13
-gboolean garrow_null_array_builder_append_null(GArrowNullArrayBuilder *builder,
-                                               GError **error);
-GARROW_DEPRECATED_IN_3_0_FOR(garrow_array_builder_append_nulls)
-GARROW_AVAILABLE_IN_0_13
-gboolean garrow_null_array_builder_append_nulls(GArrowNullArrayBuilder *builder,
-                                                gint64 n,
-                                                GError **error);
-#endif
-
-
-#define GARROW_TYPE_BOOLEAN_ARRAY_BUILDER       \
-  (garrow_boolean_array_builder_get_type())
... 61036 lines suppressed ...