diff --git a/cpp/src/arrow/ipc/metadata-internal.cc b/cpp/src/arrow/ipc/metadata-internal.cc index 1c15218c0ba..8cc902c2967 100644 --- a/cpp/src/arrow/ipc/metadata-internal.cc +++ b/cpp/src/arrow/ipc/metadata-internal.cc @@ -295,7 +295,8 @@ Status WriteDataHeader(int32_t length, int64_t body_length, } Status MessageBuilder::Finish() { - auto message = flatbuf::CreateMessage(fbb_, header_type_, header_, body_length_); + auto message = flatbuf::CreateMessage(fbb_, kMetadataVersion, + header_type_, header_, body_length_); fbb_.Finish(message); return Status::OK(); } diff --git a/cpp/src/arrow/ipc/metadata-internal.h b/cpp/src/arrow/ipc/metadata-internal.h index 5faa8c947b5..db9a83f6a8d 100644 --- a/cpp/src/arrow/ipc/metadata-internal.h +++ b/cpp/src/arrow/ipc/metadata-internal.h @@ -37,6 +37,9 @@ class Status; namespace ipc { +static constexpr flatbuf::MetadataVersion kMetadataVersion = + flatbuf::MetadataVersion_V1_SNAPSHOT; + Status FieldFromFlatbuffer(const flatbuf::Field* field, std::shared_ptr* out); class MessageBuilder { diff --git a/format/File.fbs b/format/File.fbs index f7ad1e1594a..a29bbc694bc 100644 --- a/format/File.fbs +++ b/format/File.fbs @@ -7,6 +7,7 @@ namespace org.apache.arrow.flatbuf; /// table Footer { + version: org.apache.arrow.flatbuf.MetadataVersion; schema: org.apache.arrow.flatbuf.Schema; diff --git a/format/Message.fbs b/format/Message.fbs index 78bdaeb35f5..657904a7032 100644 --- a/format/Message.fbs +++ b/format/Message.fbs @@ -1,5 +1,9 @@ namespace org.apache.arrow.flatbuf; +enum MetadataVersion:short { + V1_SNAPSHOT +} + /// ---------------------------------------------------------------------- /// Logical types and their metadata (if any) /// @@ -237,6 +241,7 @@ union MessageHeader { } table Message { + version: org.apache.arrow.flatbuf.MetadataVersion; header: MessageHeader; bodyLength: long; }