gtomitsuka opened a new issue, #40261:
URL: https://github.com/apache/arrow/issues/40261

   ### Describe the enhancement requested
   
   Currnetly, the definitions in Go's `arrow/array` are inconsistent. Most 
table-related methods (e.g., `AddColumn()` or `TableFromJSON()`) return tables 
via the `arrow.Table` interface, while `NewTable`, `NewTableFromSlice`, and 
`NewTableFromColumns` return.
   
   While `*simpleTable` conforms to the `arrow.Table` interface, this makes 
typings harder as it's not immediately obvious whether `*simpleTable` conforms 
to `arrow.Table`, `*arrow.Table`, or any interface at all; you have to actively 
look through the types and figure it out yourself, leading to significant 
wasted time as a developer.
   You can't use `*simpleTable` in function signatures or variables with 
explicit types, so it's a meaningful DX improvement, leading to better docs and 
IDE support for Arrow.
   
   Upon further inspection, the same issue applies to two other functions from 
`arrow/array`:
   * `NewRecord` returns `*simpleRecord` instead of `arrow.Record`
   * `NewRecordReader` returns `*simpleRecords` instead of  `array.RecordReader`
   
   I made those changes locally on a large project and tested it, so I'm 
confident the changes would be purely cosmetic, not impacting any functionality 
(which intuitively should be true, since `*simpleTable` isn't exposed and 
conforms to all `arrow.Table` interfaces)
   
   I would like to take on this issue and work on it myself, given that 
contributors agree this would be a meaningful task to work on.
   
   Thank you!
   
   ### Component(s)
   
   Go


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to