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)

Reply via email to