You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by pa...@apache.org on 2022/08/19 12:49:34 UTC

[arrow-nanoarrow] branch main updated: Use NANOARROW_RETURN_NOT_OK(), remove unused schema view fields (#23)

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

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git


The following commit(s) were added to refs/heads/main by this push:
     new b7be0c4  Use NANOARROW_RETURN_NOT_OK(), remove unused schema view fields (#23)
b7be0c4 is described below

commit b7be0c45e4277ed64a8bccb3c18803e3ec709da2
Author: Dewey Dunnington <de...@fishandwhistle.net>
AuthorDate: Fri Aug 19 09:49:31 2022 -0300

    Use NANOARROW_RETURN_NOT_OK(), remove unused schema view fields (#23)
    
    * use more NANOARROW_RETURN_NOT_OK
    
    * remove buffer ids and n_buffers fields from schema view
---
 src/nanoarrow/bitmap_inline.h     | 19 +++-----
 src/nanoarrow/buffer_inline.h     | 11 ++---
 src/nanoarrow/metadata.c          | 41 ++++-------------
 src/nanoarrow/nanoarrow.h         | 15 ------
 src/nanoarrow/schema.c            | 25 ++++------
 src/nanoarrow/schema_view.c       | 50 +-------------------
 src/nanoarrow/schema_view_test.cc | 96 ---------------------------------------
 7 files changed, 27 insertions(+), 230 deletions(-)

diff --git a/src/nanoarrow/bitmap_inline.h b/src/nanoarrow/bitmap_inline.h
index 763da2a..6239ca7 100644
--- a/src/nanoarrow/bitmap_inline.h
+++ b/src/nanoarrow/bitmap_inline.h
@@ -23,6 +23,7 @@
 
 #include "buffer_inline.h"
 #include "typedefs_inline.h"
+#include "utils_inline.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -173,11 +174,8 @@ static inline ArrowErrorCode ArrowBitmapReserve(struct ArrowBitmap* bitmap,
     return NANOARROW_OK;
   }
 
-  int result =
-      ArrowBufferReserve(&bitmap->buffer, _ArrowBytesForBits(additional_size_bits));
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(
+      ArrowBufferReserve(&bitmap->buffer, _ArrowBytesForBits(additional_size_bits)));
 
   bitmap->buffer.data[bitmap->buffer.capacity_bytes - 1] = 0;
   return NANOARROW_OK;
@@ -191,10 +189,8 @@ static inline ArrowErrorCode ArrowBitmapResize(struct ArrowBitmap* bitmap,
   }
 
   int64_t new_capacity_bytes = _ArrowBytesForBits(new_capacity_bits);
-  int result = ArrowBufferResize(&bitmap->buffer, new_capacity_bytes, shrink_to_fit);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(
+      ArrowBufferResize(&bitmap->buffer, new_capacity_bytes, shrink_to_fit));
 
   if (new_capacity_bits < bitmap->size_bits) {
     bitmap->size_bits = new_capacity_bits;
@@ -205,10 +201,7 @@ static inline ArrowErrorCode ArrowBitmapResize(struct ArrowBitmap* bitmap,
 
 static inline ArrowErrorCode ArrowBitmapAppend(struct ArrowBitmap* bitmap,
                                                uint8_t bits_are_set, int64_t length) {
-  int result = ArrowBitmapReserve(bitmap, length);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowBitmapReserve(bitmap, length));
 
   ArrowBitmapAppendUnsafe(bitmap, bits_are_set, length);
   return NANOARROW_OK;
diff --git a/src/nanoarrow/buffer_inline.h b/src/nanoarrow/buffer_inline.h
index 9b5320c..f7ef2d8 100644
--- a/src/nanoarrow/buffer_inline.h
+++ b/src/nanoarrow/buffer_inline.h
@@ -23,6 +23,7 @@
 #include <string.h>
 
 #include "typedefs_inline.h"
+#include "utils_inline.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -120,10 +121,7 @@ static inline void ArrowBufferAppendUnsafe(struct ArrowBuffer* buffer, const voi
 
 static inline ArrowErrorCode ArrowBufferAppend(struct ArrowBuffer* buffer,
                                                const void* data, int64_t size_bytes) {
-  int result = ArrowBufferReserve(buffer, size_bytes);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowBufferReserve(buffer, size_bytes));
 
   ArrowBufferAppendUnsafe(buffer, data, size_bytes);
   return NANOARROW_OK;
@@ -181,10 +179,7 @@ static inline ArrowErrorCode ArrowBufferAppendFloat(struct ArrowBuffer* buffer,
 
 static inline ArrowErrorCode ArrowBufferAppendFill(struct ArrowBuffer* buffer,
                                                    uint8_t value, int64_t size_bytes) {
-  int result = ArrowBufferReserve(buffer, size_bytes);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowBufferReserve(buffer, size_bytes));
 
   memset(buffer->data + buffer->size_bytes, value, size_bytes);
   buffer->size_bytes += size_bytes;
diff --git a/src/nanoarrow/metadata.c b/src/nanoarrow/metadata.c
index 2f24cbc..7cf452c 100644
--- a/src/nanoarrow/metadata.c
+++ b/src/nanoarrow/metadata.c
@@ -125,12 +125,7 @@ char ArrowMetadataHasKey(const char* metadata, struct ArrowStringView key) {
 ArrowErrorCode ArrowMetadataBuilderInit(struct ArrowBuffer* buffer,
                                         const char* metadata) {
   ArrowBufferInit(buffer);
-  int result = ArrowBufferAppend(buffer, metadata, ArrowMetadataSizeOf(metadata));
-  if (result != NANOARROW_OK) {
-    return result;
-  }
-
-  return NANOARROW_OK;
+  return ArrowBufferAppend(buffer, metadata, ArrowMetadataSizeOf(metadata));
 }
 
 static ArrowErrorCode ArrowMetadataBuilderAppendInternal(struct ArrowBuffer* buffer,
@@ -140,14 +135,8 @@ static ArrowErrorCode ArrowMetadataBuilderAppendInternal(struct ArrowBuffer* buf
     return NANOARROW_OK;
   }
 
-  int result;
-
   if (buffer->capacity_bytes == 0) {
-    int32_t zero = 0;
-    result = ArrowBufferAppend(buffer, &zero, sizeof(int32_t));
-    if (result != NANOARROW_OK) {
-      return result;
-    }
+    NANOARROW_RETURN_NOT_OK(ArrowBufferAppendInt32(buffer, 0));
   }
 
   if (buffer->capacity_bytes < sizeof(int32_t)) {
@@ -159,11 +148,8 @@ static ArrowErrorCode ArrowMetadataBuilderAppendInternal(struct ArrowBuffer* buf
 
   int32_t key_size = key->n_bytes;
   int32_t value_size = value->n_bytes;
-  result = ArrowBufferReserve(buffer,
-                              sizeof(int32_t) + key_size + sizeof(int32_t) + value_size);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowBufferReserve(
+      buffer, sizeof(int32_t) + key_size + sizeof(int32_t) + value_size));
 
   ArrowBufferAppendUnsafe(buffer, &key_size, sizeof(int32_t));
   ArrowBufferAppendUnsafe(buffer, key->data, key_size);
@@ -181,11 +167,8 @@ static ArrowErrorCode ArrowMetadataBuilderSetInternal(struct ArrowBuffer* buffer
                                                       struct ArrowStringView* value) {
   // Inspect the current value to see if we can avoid copying the buffer
   struct ArrowStringView current_value = ArrowCharView(NULL);
-  int result =
-      ArrowMetadataGetValueInternal((const char*)buffer->data, key, &current_value);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(
+      ArrowMetadataGetValueInternal((const char*)buffer->data, key, &current_value));
 
   // The key should be removed but no key exists
   if (value == NULL && current_value.data == NULL) {
@@ -200,19 +183,13 @@ static ArrowErrorCode ArrowMetadataBuilderSetInternal(struct ArrowBuffer* buffer
   struct ArrowMetadataReader reader;
   struct ArrowStringView existing_key;
   struct ArrowStringView existing_value;
-  result = ArrowMetadataReaderInit(&reader, (const char*)buffer->data);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowMetadataReaderInit(&reader, (const char*)buffer->data));
 
   struct ArrowBuffer new_buffer;
-  result = ArrowMetadataBuilderInit(&new_buffer, NULL);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowMetadataBuilderInit(&new_buffer, NULL));
 
   while (reader.remaining_keys > 0) {
-    result = ArrowMetadataReaderRead(&reader, &existing_key, &existing_value);
+    int result = ArrowMetadataReaderRead(&reader, &existing_key, &existing_value);
     if (result != NANOARROW_OK) {
       ArrowBufferReset(&new_buffer);
       return result;
diff --git a/src/nanoarrow/nanoarrow.h b/src/nanoarrow/nanoarrow.h
index c417eaa..d3957d8 100644
--- a/src/nanoarrow/nanoarrow.h
+++ b/src/nanoarrow/nanoarrow.h
@@ -277,21 +277,6 @@ struct ArrowSchemaView {
   /// extension_metadata.data will be non-NULL.
   struct ArrowStringView extension_metadata;
 
-  /// \brief The expected number of buffers in a paired ArrowArray
-  int32_t n_buffers;
-
-  /// \brief The index of the validity buffer or -1 if one does not exist
-  int32_t validity_buffer_id;
-
-  /// \brief The index of the offset buffer or -1 if one does not exist
-  int32_t offset_buffer_id;
-
-  /// \brief The index of the data buffer or -1 if one does not exist
-  int32_t data_buffer_id;
-
-  /// \brief The index of the type_ids buffer or -1 if one does not exist
-  int32_t type_id_buffer_id;
-
   /// \brief Format fixed size parameter
   ///
   /// This value is set when parsing a fixed-size binary or fixed-size
diff --git a/src/nanoarrow/schema.c b/src/nanoarrow/schema.c
index c4220d9..9833c4e 100644
--- a/src/nanoarrow/schema.c
+++ b/src/nanoarrow/schema.c
@@ -164,10 +164,7 @@ ArrowErrorCode ArrowSchemaInit(struct ArrowSchema* schema, enum ArrowType data_t
 
 ArrowErrorCode ArrowSchemaInitFixedSize(struct ArrowSchema* schema,
                                         enum ArrowType data_type, int32_t fixed_size) {
-  int result = ArrowSchemaInit(schema, NANOARROW_TYPE_UNINITIALIZED);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowSchemaInit(schema, NANOARROW_TYPE_UNINITIALIZED));
 
   if (fixed_size <= 0) {
     schema->release(schema);
@@ -189,21 +186,19 @@ ArrowErrorCode ArrowSchemaInitFixedSize(struct ArrowSchema* schema,
   }
 
   buffer[n_chars] = '\0';
-  result = ArrowSchemaSetFormat(schema, buffer);
+  int result = ArrowSchemaSetFormat(schema, buffer);
   if (result != NANOARROW_OK) {
     schema->release(schema);
+    return result;
   }
 
-  return result;
+  return NANOARROW_OK;
 }
 
 ArrowErrorCode ArrowSchemaInitDecimal(struct ArrowSchema* schema,
                                       enum ArrowType data_type, int32_t decimal_precision,
                                       int32_t decimal_scale) {
-  int result = ArrowSchemaInit(schema, NANOARROW_TYPE_UNINITIALIZED);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowSchemaInit(schema, NANOARROW_TYPE_UNINITIALIZED));
 
   if (decimal_precision <= 0) {
     schema->release(schema);
@@ -228,7 +223,7 @@ ArrowErrorCode ArrowSchemaInitDecimal(struct ArrowSchema* schema,
 
   buffer[n_chars] = '\0';
 
-  result = ArrowSchemaSetFormat(schema, buffer);
+  int result = ArrowSchemaSetFormat(schema, buffer);
   if (result != NANOARROW_OK) {
     schema->release(schema);
     return result;
@@ -419,13 +414,9 @@ ArrowErrorCode ArrowSchemaAllocateDictionary(struct ArrowSchema* schema) {
 }
 
 int ArrowSchemaDeepCopy(struct ArrowSchema* schema, struct ArrowSchema* schema_out) {
-  int result;
-  result = ArrowSchemaInit(schema_out, NANOARROW_TYPE_NA);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowSchemaInit(schema_out, NANOARROW_TYPE_NA));
 
-  result = ArrowSchemaSetFormat(schema_out, schema->format);
+  int result = ArrowSchemaSetFormat(schema_out, schema->format);
   if (result != NANOARROW_OK) {
     schema_out->release(schema_out);
     return result;
diff --git a/src/nanoarrow/schema_view.c b/src/nanoarrow/schema_view.c
index 21f8e23..691f737 100644
--- a/src/nanoarrow/schema_view.c
+++ b/src/nanoarrow/schema_view.c
@@ -24,20 +24,12 @@ static void ArrowSchemaViewSetPrimitive(struct ArrowSchemaView* schema_view,
                                         enum ArrowType data_type) {
   schema_view->data_type = data_type;
   schema_view->storage_data_type = data_type;
-  schema_view->n_buffers = 2;
-  schema_view->validity_buffer_id = 0;
-  schema_view->data_buffer_id = 1;
 }
 
 static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
                                            const char* format,
                                            const char** format_end_out,
                                            struct ArrowError* error) {
-  schema_view->validity_buffer_id = -1;
-  schema_view->offset_buffer_id = -1;
-  schema_view->offset_buffer_id = -1;
-  schema_view->data_buffer_id = -1;
-  schema_view->type_id_buffer_id = -1;
   *format_end_out = format;
 
   // needed for decimal parsing
@@ -48,7 +40,6 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
     case 'n':
       schema_view->data_type = NANOARROW_TYPE_NA;
       schema_view->storage_data_type = NANOARROW_TYPE_NA;
-      schema_view->n_buffers = 0;
       *format_end_out = format + 1;
       return NANOARROW_OK;
     case 'b':
@@ -155,9 +146,6 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
         return EINVAL;
       }
 
-      schema_view->n_buffers = 2;
-      schema_view->validity_buffer_id = 0;
-      schema_view->data_buffer_id = 1;
       schema_view->fixed_size = strtol(format + 2, (char**)format_end_out, 10);
       return NANOARROW_OK;
 
@@ -165,19 +153,11 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
     case 'z':
       schema_view->data_type = NANOARROW_TYPE_BINARY;
       schema_view->storage_data_type = NANOARROW_TYPE_BINARY;
-      schema_view->n_buffers = 3;
-      schema_view->validity_buffer_id = 0;
-      schema_view->offset_buffer_id = 1;
-      schema_view->data_buffer_id = 2;
       *format_end_out = format + 1;
       return NANOARROW_OK;
     case 'u':
       schema_view->data_type = NANOARROW_TYPE_STRING;
       schema_view->storage_data_type = NANOARROW_TYPE_STRING;
-      schema_view->n_buffers = 3;
-      schema_view->validity_buffer_id = 0;
-      schema_view->offset_buffer_id = 1;
-      schema_view->data_buffer_id = 2;
       *format_end_out = format + 1;
       return NANOARROW_OK;
 
@@ -185,19 +165,11 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
     case 'Z':
       schema_view->data_type = NANOARROW_TYPE_LARGE_BINARY;
       schema_view->storage_data_type = NANOARROW_TYPE_LARGE_BINARY;
-      schema_view->n_buffers = 3;
-      schema_view->validity_buffer_id = 0;
-      schema_view->offset_buffer_id = 1;
-      schema_view->data_buffer_id = 2;
       *format_end_out = format + 1;
       return NANOARROW_OK;
     case 'U':
       schema_view->data_type = NANOARROW_TYPE_LARGE_STRING;
       schema_view->storage_data_type = NANOARROW_TYPE_LARGE_STRING;
-      schema_view->n_buffers = 3;
-      schema_view->validity_buffer_id = 0;
-      schema_view->offset_buffer_id = 1;
-      schema_view->data_buffer_id = 2;
       *format_end_out = format + 1;
       return NANOARROW_OK;
 
@@ -208,9 +180,6 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
         case 'l':
           schema_view->storage_data_type = NANOARROW_TYPE_LIST;
           schema_view->data_type = NANOARROW_TYPE_LIST;
-          schema_view->n_buffers = 2;
-          schema_view->validity_buffer_id = 0;
-          schema_view->offset_buffer_id = 1;
           *format_end_out = format + 2;
           return NANOARROW_OK;
 
@@ -218,9 +187,6 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
         case 'L':
           schema_view->storage_data_type = NANOARROW_TYPE_LARGE_LIST;
           schema_view->data_type = NANOARROW_TYPE_LARGE_LIST;
-          schema_view->n_buffers = 2;
-          schema_view->validity_buffer_id = 0;
-          schema_view->offset_buffer_id = 1;
           *format_end_out = format + 2;
           return NANOARROW_OK;
 
@@ -233,22 +199,16 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
 
           schema_view->storage_data_type = NANOARROW_TYPE_FIXED_SIZE_LIST;
           schema_view->data_type = NANOARROW_TYPE_FIXED_SIZE_LIST;
-          schema_view->n_buffers = 1;
-          schema_view->validity_buffer_id = 0;
           schema_view->fixed_size = strtol(format + 3, (char**)format_end_out, 10);
           return NANOARROW_OK;
         case 's':
           schema_view->storage_data_type = NANOARROW_TYPE_STRUCT;
           schema_view->data_type = NANOARROW_TYPE_STRUCT;
-          schema_view->n_buffers = 1;
-          schema_view->validity_buffer_id = 0;
           *format_end_out = format + 2;
           return NANOARROW_OK;
         case 'm':
           schema_view->storage_data_type = NANOARROW_TYPE_MAP;
           schema_view->data_type = NANOARROW_TYPE_MAP;
-          schema_view->n_buffers = 1;
-          schema_view->validity_buffer_id = 0;
           *format_end_out = format + 2;
           return NANOARROW_OK;
 
@@ -258,15 +218,10 @@ static ArrowErrorCode ArrowSchemaViewParse(struct ArrowSchemaView* schema_view,
             case 'd':
               schema_view->storage_data_type = NANOARROW_TYPE_DENSE_UNION;
               schema_view->data_type = NANOARROW_TYPE_DENSE_UNION;
-              schema_view->n_buffers = 2;
-              schema_view->type_id_buffer_id = 0;
-              schema_view->offset_buffer_id = 1;
               break;
             case 's':
               schema_view->storage_data_type = NANOARROW_TYPE_SPARSE_UNION;
               schema_view->data_type = NANOARROW_TYPE_SPARSE_UNION;
-              schema_view->n_buffers = 1;
-              schema_view->type_id_buffer_id = 0;
               break;
             default:
               ArrowErrorSet(error,
@@ -492,10 +447,7 @@ static ArrowErrorCode ArrowSchemaViewValidateUnion(struct ArrowSchemaView* schem
 
 static ArrowErrorCode ArrowSchemaViewValidateMap(struct ArrowSchemaView* schema_view,
                                                  struct ArrowError* error) {
-  int result = ArrowSchemaViewValidateNChildren(schema_view, 1, error);
-  if (result != NANOARROW_OK) {
-    return result;
-  }
+  NANOARROW_RETURN_NOT_OK(ArrowSchemaViewValidateNChildren(schema_view, 1, error));
 
   if (schema_view->schema->children[0]->n_children != 2) {
     ArrowErrorSet(error, "Expected child of map type to have 2 children but found %d",
diff --git a/src/nanoarrow/schema_view_test.cc b/src/nanoarrow/schema_view_test.cc
index a5fa963..9af569e 100644
--- a/src/nanoarrow/schema_view_test.cc
+++ b/src/nanoarrow/schema_view_test.cc
@@ -69,9 +69,6 @@ void ExpectSimpleTypeOk(std::shared_ptr<DataType> arrow_t, enum ArrowType nanoar
 
   ARROW_EXPECT_OK(ExportType(*arrow_t, &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, nanoarrow_t);
   EXPECT_EQ(schema_view.storage_data_type, nanoarrow_t);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -92,7 +89,6 @@ TEST(SchemaViewTest, SchemaViewInitSimple) {
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_NA);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_NA);
-  EXPECT_EQ(schema_view.n_buffers, 0);
   EXPECT_EQ(schema_view.extension_name.data, nullptr);
   EXPECT_EQ(schema_view.extension_metadata.data, nullptr);
   schema.release(&schema);
@@ -132,9 +128,6 @@ TEST(SchemaViewTest, SchemaViewInitDecimal) {
 
   ARROW_EXPECT_OK(ExportType(*decimal128(5, 6), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DECIMAL128);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_DECIMAL128);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -150,9 +143,6 @@ TEST(SchemaViewTest, SchemaViewInitDecimal) {
 
   ARROW_EXPECT_OK(ExportType(*decimal256(5, 6), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DECIMAL256);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_DECIMAL256);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -219,9 +209,6 @@ TEST(SchemaViewTest, SchemaViewInitBinaryAndString) {
 
   ARROW_EXPECT_OK(ExportType(*fixed_size_binary(123), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_FIXED_SIZE_BINARY);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_FIXED_SIZE_BINARY);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -235,10 +222,6 @@ TEST(SchemaViewTest, SchemaViewInitBinaryAndString) {
 
   ARROW_EXPECT_OK(ExportType(*utf8(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 3);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
-  EXPECT_EQ(schema_view.data_buffer_id, 2);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_STRING);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_STRING);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -251,10 +234,6 @@ TEST(SchemaViewTest, SchemaViewInitBinaryAndString) {
 
   ARROW_EXPECT_OK(ExportType(*binary(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 3);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
-  EXPECT_EQ(schema_view.data_buffer_id, 2);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_BINARY);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_BINARY);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -267,10 +246,6 @@ TEST(SchemaViewTest, SchemaViewInitBinaryAndString) {
 
   ARROW_EXPECT_OK(ExportType(*large_binary(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 3);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
-  EXPECT_EQ(schema_view.data_buffer_id, 2);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_LARGE_BINARY);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_LARGE_BINARY);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -283,10 +258,6 @@ TEST(SchemaViewTest, SchemaViewInitBinaryAndString) {
 
   ARROW_EXPECT_OK(ExportType(*large_utf8(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 3);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
-  EXPECT_EQ(schema_view.data_buffer_id, 2);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_LARGE_STRING);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_LARGE_STRING);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -334,18 +305,12 @@ TEST(SchemaViewTest, SchemaViewInitTimeDate) {
 
   ARROW_EXPECT_OK(ExportType(*date32(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DATE32);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   schema.release(&schema);
 
   ARROW_EXPECT_OK(ExportType(*date64(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DATE64);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   schema.release(&schema);
@@ -358,9 +323,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTime) {
 
   ARROW_EXPECT_OK(ExportType(*time32(TimeUnit::SECOND), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIME32);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_SECOND);
@@ -368,9 +330,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTime) {
 
   ARROW_EXPECT_OK(ExportType(*time32(TimeUnit::MILLI), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIME32);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_MILLI);
@@ -378,9 +337,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTime) {
 
   ARROW_EXPECT_OK(ExportType(*time64(TimeUnit::MICRO), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIME64);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_MICRO);
@@ -388,9 +344,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTime) {
 
   ARROW_EXPECT_OK(ExportType(*time64(TimeUnit::NANO), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIME64);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_NANO);
@@ -404,9 +357,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTimestamp) {
 
   ARROW_EXPECT_OK(ExportType(*timestamp(TimeUnit::SECOND, "America/Halifax"), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIMESTAMP);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_SECOND);
@@ -414,9 +364,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTimestamp) {
 
   ARROW_EXPECT_OK(ExportType(*timestamp(TimeUnit::MILLI, "America/Halifax"), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIMESTAMP);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_MILLI);
@@ -424,9 +371,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTimestamp) {
 
   ARROW_EXPECT_OK(ExportType(*timestamp(TimeUnit::MICRO, "America/Halifax"), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIMESTAMP);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_MICRO);
@@ -434,9 +378,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeTimestamp) {
 
   ARROW_EXPECT_OK(ExportType(*timestamp(TimeUnit::NANO, "America/Halifax"), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_TIMESTAMP);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_NANO);
@@ -450,9 +391,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeDuration) {
 
   ARROW_EXPECT_OK(ExportType(*duration(TimeUnit::SECOND), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DURATION);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_SECOND);
@@ -460,9 +398,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeDuration) {
 
   ARROW_EXPECT_OK(ExportType(*duration(TimeUnit::MILLI), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DURATION);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT32);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_MILLI);
@@ -470,9 +405,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeDuration) {
 
   ARROW_EXPECT_OK(ExportType(*duration(TimeUnit::MICRO), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DURATION);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_MICRO);
@@ -480,9 +412,6 @@ TEST(SchemaViewTest, SchemaViewInitTimeDuration) {
 
   ARROW_EXPECT_OK(ExportType(*duration(TimeUnit::NANO), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DURATION);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INT64);
   EXPECT_EQ(schema_view.time_unit, NANOARROW_TIME_UNIT_NANO);
@@ -496,24 +425,18 @@ TEST(SchemaViewTest, SchemaViewInitTimeInterval) {
 
   ARROW_EXPECT_OK(ExportType(*month_interval(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_INTERVAL_MONTHS);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INTERVAL_MONTHS);
   schema.release(&schema);
 
   ARROW_EXPECT_OK(ExportType(*day_time_interval(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_INTERVAL_DAY_TIME);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INTERVAL_DAY_TIME);
   schema.release(&schema);
 
   ARROW_EXPECT_OK(ExportType(*month_day_nano_interval(), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANO);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANO);
   schema.release(&schema);
@@ -576,9 +499,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedList) {
 
   ARROW_EXPECT_OK(ExportType(*list(int32()), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_LIST);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_LIST);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -591,9 +511,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedList) {
 
   ARROW_EXPECT_OK(ExportType(*large_list(int32()), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_LARGE_LIST);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_LARGE_LIST);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -606,8 +523,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedList) {
 
   ARROW_EXPECT_OK(ExportType(*fixed_size_list(int32(), 123), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 1);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_FIXED_SIZE_LIST);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_FIXED_SIZE_LIST);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -652,8 +567,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedStruct) {
 
   ARROW_EXPECT_OK(ExportType(*struct_({field("col", int32())}), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 1);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_STRUCT);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_STRUCT);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
@@ -703,10 +616,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedMap) {
 
   ARROW_EXPECT_OK(ExportType(*map(int32(), int32()), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 1);
-  EXPECT_EQ(schema_view.validity_buffer_id, 0);
-  EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_MAP);
-  EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_MAP);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_VALIDITY);
   EXPECT_EQ(schema_view.layout.buffer_type[1], NANOARROW_BUFFER_TYPE_NONE);
   EXPECT_EQ(schema_view.layout.buffer_type[2], NANOARROW_BUFFER_TYPE_NONE);
@@ -762,9 +671,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedUnion) {
 
   ARROW_EXPECT_OK(ExportType(*dense_union({field("col", int32())}), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 2);
-  EXPECT_EQ(schema_view.type_id_buffer_id, 0);
-  EXPECT_EQ(schema_view.offset_buffer_id, 1);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_DENSE_UNION);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_DENSE_UNION);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_TYPE_ID);
@@ -780,8 +686,6 @@ TEST(SchemaViewTest, SchemaViewInitNestedUnion) {
 
   ARROW_EXPECT_OK(ExportType(*sparse_union({field("col", int32())}), &schema));
   EXPECT_EQ(ArrowSchemaViewInit(&schema_view, &schema, &error), NANOARROW_OK);
-  EXPECT_EQ(schema_view.n_buffers, 1);
-  EXPECT_EQ(schema_view.type_id_buffer_id, 0);
   EXPECT_EQ(schema_view.data_type, NANOARROW_TYPE_SPARSE_UNION);
   EXPECT_EQ(schema_view.storage_data_type, NANOARROW_TYPE_SPARSE_UNION);
   EXPECT_EQ(schema_view.layout.buffer_type[0], NANOARROW_BUFFER_TYPE_TYPE_ID);