dbFetchArrow() always returns an object coercible to a data.frame
with as many rows as records were fetched and as many columns as fields in the result set, even if the result is a single value or has one or zero rows.
An attempt to fetch from a closed result set raises an error.
Fetching multi-row queries with one
or more columns by default returns the entire result.
The object returned by
dbFetchArrow() can also be passed to
nanoarrow::as_nanoarrow_array_stream() to create a nanoarrow
array stream object that can be used to read the result set
The chunk size is implementation-specific.