3535 num_columns = function () ipc___feather___TableReader__num_columns(self ),
3636 GetColumnName = function (i ) ipc___feather___TableReader__GetColumnName(self , i ),
3737 GetColumn = function (i ) shared_ptr(`arrow::Column` , ipc___feather___TableReader__GetColumn(self , i )),
38- Read = function () shared_ptr(`arrow::Table` , ipc___feather___TableReader__Read(self ))
38+ Read = function (columns ) {
39+ if (is.null(columns )) {
40+ shared_ptr(`arrow::Table` , ipc___feather___TableReader__Read(self ))
41+ }
42+ }
3943 )
4044)
4145
4448# ' @param stream an OutputStream
4549# '
4650# ' @export
47- feather_table_writer <- function (stream ) {
48- UseMethod(" feather_table_writer " )
51+ FeatherTableWriter <- function (stream ) {
52+ UseMethod(" FeatherTableWriter " )
4953}
5054
5155# ' @export
52- `feather_table_writer .arrow::io::OutputStream` <- function (stream ){
56+ `FeatherTableWriter .arrow::io::OutputStream` <- function (stream ){
5357 unique_ptr(`arrow::ipc::feather::TableWriter` , ipc___feather___TableWriter__Open(stream ))
5458}
5559
@@ -107,7 +111,7 @@ write_feather_RecordBatch <- function(data, stream) {
107111# ' @export
108112# ' @method write_feather_RecordBatch arrow::io::OutputStream
109113`write_feather_RecordBatch.arrow::io::OutputStream` <- function (data , stream ) {
110- ipc___TableWriter__RecordBatch__WriteFeather(feather_table_writer (stream ), data )
114+ ipc___TableWriter__RecordBatch__WriteFeather(FeatherTableWriter (stream ), data )
111115}
112116
113117# ' A arrow::ipc::feather::TableReader to read from a file
@@ -117,44 +121,45 @@ write_feather_RecordBatch <- function(data, stream) {
117121# ' @param ... extra parameters
118122# '
119123# ' @export
120- feather_table_reader <- function (file , mmap = TRUE , ... ){
121- UseMethod(" feather_table_reader " )
124+ FeatherTableReader <- function (file , mmap = TRUE , ... ){
125+ UseMethod(" FeatherTableReader " )
122126}
123127
124128# ' @export
125- feather_table_reader .default <- function (file , mmap = TRUE , ... ) {
129+ FeatherTableReader .default <- function (file , mmap = TRUE , ... ) {
126130 stop(" unsupported" )
127131}
128132
129133# ' @export
130- feather_table_reader .character <- function (file , mmap = TRUE , ... ) {
131- feather_table_reader (fs :: path_abs(file ), mmap = mmap , ... )
134+ FeatherTableReader .character <- function (file , mmap = TRUE , ... ) {
135+ FeatherTableReader (fs :: path_abs(file ), mmap = mmap , ... )
132136}
133137
134138# ' @export
135- feather_table_reader .fs_path <- function (file , mmap = TRUE , ... ) {
139+ FeatherTableReader .fs_path <- function (file , mmap = TRUE , ... ) {
136140 stream <- if (isTRUE(mmap )) mmap_open(file , ... ) else ReadableFile(file , ... )
137- feather_table_reader (stream )
141+ FeatherTableReader (stream )
138142}
139143
140144# ' @export
141- `feather_table_reader .arrow::io::RandomAccessFile` <- function (file , mmap = TRUE , ... ){
145+ `FeatherTableReader .arrow::io::RandomAccessFile` <- function (file , mmap = TRUE , ... ){
142146 unique_ptr(`arrow::ipc::feather::TableReader` , ipc___feather___TableReader__Open(file ))
143147}
144148
145149# ' @export
146- `feather_table_reader .arrow::ipc::feather::TableReader` <- function (file , mmap = TRUE , ... ){
150+ `FeatherTableReader .arrow::ipc::feather::TableReader` <- function (file , mmap = TRUE , ... ){
147151 file
148152}
149153
150154# ' Read a feather file
151155# '
152156# ' @param file a arrow::ipc::feather::TableReader or whatever the [feather_table_reader()] function can handle
157+ # ' @param columns names if the columns to read. The default `NULL` means all columns
153158# ' @param ... additional parameters
154159# '
155160# ' @return an arrow::Table
156161# '
157162# ' @export
158- read_feather <- function (file , ... ){
159- feather_table_reader (file , ... )$ Read()
163+ read_feather <- function (file , columns = NULL , ... ){
164+ FeatherTableReader (file , ... )$ Read(columns )
160165}
0 commit comments