This is an automated email from the ASF dual-hosted git repository. raulcd pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/arrow-swift.git
commit bc0f16019a8cab0977639c2cf23fc9a80952d682 Author: abandy <[email protected]> AuthorDate: Sat Jul 8 17:19:22 2023 -0400 GH-36544: [Swift] Add/change some init methods to public access (#36545) Added/updated some init methods to public access for public class so these classes can be instantiated outside of the arrow package. * Closes: #36544 Authored-by: Alva Bandy <[email protected]> Signed-off-by: Sutou Kouhei <[email protected]> --- Arrow/.gitignore | 9 +++++++++ Arrow/Sources/Arrow/ArrowArrayBuilder.swift | 18 +++++++++--------- Arrow/Sources/Arrow/ArrowReader.swift | 2 ++ Arrow/Sources/Arrow/ArrowSchema.swift | 2 ++ Arrow/Sources/Arrow/ArrowTable.swift | 12 ++++++++---- Arrow/Sources/Arrow/ArrowWriter.swift | 2 ++ 6 files changed, 32 insertions(+), 13 deletions(-) diff --git a/Arrow/.gitignore b/Arrow/.gitignore new file mode 100644 index 0000000..d561187 --- /dev/null +++ b/Arrow/.gitignore @@ -0,0 +1,9 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm/ +.netrc +Package.resolved \ No newline at end of file diff --git a/Arrow/Sources/Arrow/ArrowArrayBuilder.swift b/Arrow/Sources/Arrow/ArrowArrayBuilder.swift index 4c1c060..049b58b 100644 --- a/Arrow/Sources/Arrow/ArrowArrayBuilder.swift +++ b/Arrow/Sources/Arrow/ArrowArrayBuilder.swift @@ -20,27 +20,27 @@ import Foundation public class ArrowArrayBuilder<T: ArrowBufferBuilder, U: ArrowArray<T.ItemType>> { let type: ArrowType let bufferBuilder: T - var length: UInt {get{return self.bufferBuilder.length}} - var capacity: UInt {get{return self.bufferBuilder.capacity}} - var nullCount : UInt {get{return self.bufferBuilder.nullCount}} - var offset: UInt {get{return self.bufferBuilder.offset}} + public var length: UInt {get{return self.bufferBuilder.length}} + public var capacity: UInt {get{return self.bufferBuilder.capacity}} + public var nullCount : UInt {get{return self.bufferBuilder.nullCount}} + public var offset: UInt {get{return self.bufferBuilder.offset}} fileprivate init(_ type: ArrowType) throws { self.type = type; self.bufferBuilder = try T() } - func append(_ val: T.ItemType?) { + public func append(_ val: T.ItemType?) { self.bufferBuilder.append(val) } - func finish() throws -> ArrowArray<T.ItemType> { + public func finish() throws -> ArrowArray<T.ItemType> { let buffers = self.bufferBuilder.finish(); let arrowData = try ArrowData(self.type, buffers: buffers, nullCount: self.nullCount, stride: self.getStride()) return U(arrowData) } - func getStride() -> Int { + public func getStride() -> Int { MemoryLayout<T.ItemType>.stride } } @@ -74,7 +74,7 @@ public class Date32ArrayBuilder : ArrowArrayBuilder<Date32BufferBuilder, Date32A try self.init(ArrowType(ArrowType.ArrowDate32)) } - override func getStride() -> Int { + public override func getStride() -> Int { MemoryLayout<Int32>.stride } } @@ -84,7 +84,7 @@ public class Date64ArrayBuilder : ArrowArrayBuilder<Date64BufferBuilder, Date64A try self.init(ArrowType(ArrowType.ArrowDate64)) } - override func getStride() -> Int { + public override func getStride() -> Int { MemoryLayout<Int64>.stride } } diff --git a/Arrow/Sources/Arrow/ArrowReader.swift b/Arrow/Sources/Arrow/ArrowReader.swift index 953ba54..b4c8c72 100644 --- a/Arrow/Sources/Arrow/ArrowReader.swift +++ b/Arrow/Sources/Arrow/ArrowReader.swift @@ -36,6 +36,8 @@ public class ArrowReader { public var batches = [RecordBatch]() } + public init() {} + private func loadSchema(_ schema: org_apache_arrow_flatbuf_Schema) -> Result<ArrowSchema, ArrowError> { let builder = ArrowSchema.Builder() for index in 0 ..< schema.fieldsCount { diff --git a/Arrow/Sources/Arrow/ArrowSchema.swift b/Arrow/Sources/Arrow/ArrowSchema.swift index 63841a9..882e66a 100644 --- a/Arrow/Sources/Arrow/ArrowSchema.swift +++ b/Arrow/Sources/Arrow/ArrowSchema.swift @@ -52,6 +52,8 @@ public class ArrowSchema { public class Builder { private var fields: [ArrowField] = [] + public init() {} + @discardableResult public func addField(_ field: ArrowField) -> Builder { fields.append(field) diff --git a/Arrow/Sources/Arrow/ArrowTable.swift b/Arrow/Sources/Arrow/ArrowTable.swift index df8c21b..a288286 100644 --- a/Arrow/Sources/Arrow/ArrowTable.swift +++ b/Arrow/Sources/Arrow/ArrowTable.swift @@ -79,6 +79,8 @@ public class ArrowTable { let schemaBuilder = ArrowSchema.Builder() var columns = [ArrowColumn]() + public init() {} + @discardableResult public func addColumn<T>(_ fieldName: String, arrowArray: ArrowArray<T>) throws -> Builder { return self.addColumn(fieldName, chunked: try ChunkedArray([arrowArray])) @@ -121,10 +123,10 @@ public class ArrowTable { } public class RecordBatch { - let schema: ArrowSchema - var columnCount: UInt {get{return UInt(self.columns.count)}} - let columns: [ArrowArrayHolder] - let length: UInt + public let schema: ArrowSchema + public var columnCount: UInt {get{return UInt(self.columns.count)}} + public let columns: [ArrowArrayHolder] + public let length: UInt public init(_ schema: ArrowSchema, columns: [ArrowArrayHolder]) { self.schema = schema self.columns = columns @@ -135,6 +137,8 @@ public class RecordBatch { let schemaBuilder = ArrowSchema.Builder() var columns = [ArrowArrayHolder]() + public init() {} + @discardableResult public func addColumn(_ fieldName: String, arrowArray: ArrowArrayHolder) -> Builder { let field = ArrowField(fieldName, type: arrowArray.type, isNullable: arrowArray.nullCount != 0) diff --git a/Arrow/Sources/Arrow/ArrowWriter.swift b/Arrow/Sources/Arrow/ArrowWriter.swift index 02e1d43..9f3d9bd 100644 --- a/Arrow/Sources/Arrow/ArrowWriter.swift +++ b/Arrow/Sources/Arrow/ArrowWriter.swift @@ -68,6 +68,8 @@ public class ArrowWriter { } } + public init() {} + private func writeField(_ fbb: inout FlatBufferBuilder, field: ArrowField) -> Result<Offset, ArrowError> { let nameOffset = fbb.create(string: field.name) let fieldTypeOffsetResult = toFBType(&fbb, arrowType: field.type)
