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 52688b5  [C] Copy flags in ArrowSchemaDeepCopy (#68)
52688b5 is described below

commit 52688b5d12fb5c93414250d5d6829bb741954610
Author: David Li <[email protected]>
AuthorDate: Wed Nov 23 21:20:11 2022 -0500

    [C] Copy flags in ArrowSchemaDeepCopy (#68)
---
 src/nanoarrow/schema.c       |  2 ++
 src/nanoarrow/schema_test.cc | 18 ++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/src/nanoarrow/schema.c b/src/nanoarrow/schema.c
index 88dad89..8b372aa 100644
--- a/src/nanoarrow/schema.c
+++ b/src/nanoarrow/schema.c
@@ -422,6 +422,8 @@ int ArrowSchemaDeepCopy(struct ArrowSchema* schema, struct 
ArrowSchema* schema_o
     return result;
   }
 
+  schema_out->flags = schema->flags;
+
   result = ArrowSchemaSetName(schema_out, schema->name);
   if (result != NANOARROW_OK) {
     schema_out->release(schema_out);
diff --git a/src/nanoarrow/schema_test.cc b/src/nanoarrow/schema_test.cc
index 46d7dd9..9fd3cc1 100644
--- a/src/nanoarrow/schema_test.cc
+++ b/src/nanoarrow/schema_test.cc
@@ -408,6 +408,24 @@ TEST(SchemaTest, SchemaCopyDictType) {
   schema_copy.release(&schema_copy);
 }
 
+TEST(SchemaTest, SchemaCopyFlags) {
+  struct ArrowSchema schema;
+  ARROW_EXPECT_OK(ExportType(*int32(), &schema));
+  ASSERT_TRUE(schema.flags & ARROW_FLAG_NULLABLE);
+  schema.flags &= ~ARROW_FLAG_NULLABLE;
+  ASSERT_FALSE(schema.flags & ARROW_FLAG_NULLABLE);
+
+  struct ArrowSchema schema_copy;
+  ArrowSchemaDeepCopy(&schema, &schema_copy);
+
+  ASSERT_NE(schema_copy.release, nullptr);
+  ASSERT_EQ(schema.flags, schema_copy.flags);
+  ASSERT_FALSE(schema_copy.flags & ARROW_FLAG_NULLABLE);
+
+  schema.release(&schema);
+  schema_copy.release(&schema_copy);
+}
+
 TEST(SchemaTest, SchemaCopyMetadata) {
   struct ArrowSchema schema;
   auto arrow_meta = std::make_shared<KeyValueMetadata>();

Reply via email to