diff --git a/R/dbAppendTableArrow_DBIConnection.R b/R/dbAppendTableArrow_DBIConnection.R index 7477ad4f..1a3e0969 100644 --- a/R/dbAppendTableArrow_DBIConnection.R +++ b/R/dbAppendTableArrow_DBIConnection.R @@ -7,18 +7,22 @@ dbAppendTableArrow_DBIConnection <- function(conn, name, value, ...) { value <- nanoarrow::as_nanoarrow_array_stream(value) + rows <- 0L + while (TRUE) { # Append next batch (starting with the first or second, doesn't matter) tmp <- value$get_next() if (is.null(tmp)) { break } - dbAppendTable(conn, name, stream_append_data(as.data.frame(tmp)), ...) + tmp_df <- as.data.frame(tmp) + dbAppendTable(conn, name, stream_append_data(tmp_df), ...) + rows <- rows + nrow(tmp_df) } value$release() - TRUE + rows } #' @rdname hidden_aliases #' @export