This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new b77af9e1cc GH-36544: [Swift] Add/change some init methods to public
access (#36545)
b77af9e1cc is described below
commit b77af9e1cc87b2228bd2ed7de211b3ffe6f400ed
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]>
---
swift/Arrow/.gitignore | 9 +++++++++
swift/Arrow/Sources/Arrow/ArrowArrayBuilder.swift | 18 +++++++++---------
swift/Arrow/Sources/Arrow/ArrowReader.swift | 2 ++
swift/Arrow/Sources/Arrow/ArrowSchema.swift | 2 ++
swift/Arrow/Sources/Arrow/ArrowTable.swift | 12 ++++++++----
swift/Arrow/Sources/Arrow/ArrowWriter.swift | 2 ++
6 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/swift/Arrow/.gitignore b/swift/Arrow/.gitignore
new file mode 100644
index 0000000000..d561187385
--- /dev/null
+++ b/swift/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/swift/Arrow/Sources/Arrow/ArrowArrayBuilder.swift
b/swift/Arrow/Sources/Arrow/ArrowArrayBuilder.swift
index 4c1c060463..049b58bc33 100644
--- a/swift/Arrow/Sources/Arrow/ArrowArrayBuilder.swift
+++ b/swift/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/swift/Arrow/Sources/Arrow/ArrowReader.swift
b/swift/Arrow/Sources/Arrow/ArrowReader.swift
index 953ba540d1..b4c8c72276 100644
--- a/swift/Arrow/Sources/Arrow/ArrowReader.swift
+++ b/swift/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/swift/Arrow/Sources/Arrow/ArrowSchema.swift
b/swift/Arrow/Sources/Arrow/ArrowSchema.swift
index 63841a9ab2..882e66a247 100644
--- a/swift/Arrow/Sources/Arrow/ArrowSchema.swift
+++ b/swift/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/swift/Arrow/Sources/Arrow/ArrowTable.swift
b/swift/Arrow/Sources/Arrow/ArrowTable.swift
index df8c21b5b8..a288286a82 100644
--- a/swift/Arrow/Sources/Arrow/ArrowTable.swift
+++ b/swift/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/swift/Arrow/Sources/Arrow/ArrowWriter.swift
b/swift/Arrow/Sources/Arrow/ArrowWriter.swift
index 02e1d432ea..9f3d9bd0c8 100644
--- a/swift/Arrow/Sources/Arrow/ArrowWriter.swift
+++ b/swift/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)