Sha256: 52adef6ae7d98520cf05a9886fa79e0f8849fea70e32b2069bc2e7da47d356ee

Contents?: true

Size: 1.45 KB

Versions: 9

Compression:

Stored size: 1.45 KB

Contents

# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


module Google
  module Cloud
    module Spanner
      ##
      # @private Helper class to process BatchDML response
      class BatchUpdateResults
        ## Object of type
        # Google::Cloud::Spanner::V1::ExecuteBatchDmlResponse
        attr_reader :grpc

        def initialize grpc
          @grpc = grpc
        end

        def row_counts
          if @grpc.status.code.zero?
            @grpc.result_sets.map { |rs| rs.stats.row_count_exact }
          else
            begin
              raise Google::Cloud::Error.from_error @grpc.status
            rescue Google::Cloud::Error
              raise Google::Cloud::Spanner::BatchUpdateError.from_grpc @grpc
            end
          end
        end

        ##
        # Returns transaction if available. Otherwise returns nil
        def transaction
          @grpc&.result_sets&.first&.metadata&.transaction
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
google-cloud-spanner-2.24.0 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.23.0 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.22.0 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.21.0 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.20.0 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.19.1 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.19.0 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.18.1 lib/google/cloud/spanner/batch_update_results.rb
google-cloud-spanner-2.18.0 lib/google/cloud/spanner/batch_update_results.rb