class Google::Cloud::Bigquery::Table::AsyncInserter

def push_batch_request!

def push_batch_request!
  return unless @batch
  orig_rows = @batch.rows
  json_rows = @batch.json_rows
  insert_ids = @batch.insert_ids
  Concurrent::Future.new executor: @thread_pool do
    raise ArgumentError, "No rows provided" if json_rows.empty?
    insert_resp = @table.service.insert_tabledata_json_rows @table.dataset_id,
                                                            @table.table_id,
                                                            json_rows,
                                                            skip_invalid: @skip_invalid,
                                                            ignore_unknown: @ignore_unknown,
                                                            insert_ids: insert_ids,
                                                            project_id: @table.project_id
    result = Result.new InsertResponse.from_gapi(orig_rows, insert_resp)
  rescue StandardError => e
    result = Result.new nil, e
  ensure
    @callback&.call result
  end.execute
  @batch = nil
  @batch_created_at = nil
end