Class: Couchbase::Options::Scan

Inherits:
Base
  • Object
show all
Defined in:
lib/couchbase/options.rb

Overview

Options for Collection#scan

Constant Summary collapse

DEFAULT =
Scan.new.freeze

Instance Attribute Summary collapse

Attributes inherited from Base

#client_context, #parent_span, #retry_strategy, #timeout

Instance Method Summary collapse

Constructor Details

#initialize(ids_only: false, transcoder: JsonTranscoder.new, mutation_state: nil, batch_byte_limit: nil, batch_item_limit: nil, concurrency: nil, timeout: nil, retry_strategy: nil, client_context: nil, parent_span: nil) {|self| ... } ⇒ Scan

Creates an instance of options for Collection#scan

Parameters:

  • ids_only (Boolean) (defaults to: false)

    if set to true, the content of the documents is not included in the results

  • transcoder (JsonTranscoder, #decode(String)) (defaults to: JsonTranscoder.new)

    used for decoding

  • mutation_state (MutationState, nil) (defaults to: nil)

    sets the mutation tokens this scan should be consistent with

  • batch_byte_limit (Integer, nil) (defaults to: nil)

    allows to limit the maximum amount of bytes that are sent from the server to the client on each partition batch, defaults to 15,000

  • batch_item_limit (Integer, nil) (defaults to: nil)

    allows to limit the maximum amount of items that are sent from the server to the client on each partition batch, defaults to 50

  • concurrency (Integer, nil) (defaults to: nil)

    specifies the maximum number of partitions that can be scanned concurrently, defaults to 1

  • timeout (Integer, #in_milliseconds, nil) (defaults to: nil)
  • retry_strategy (Proc, nil) (defaults to: nil)

    the custom retry strategy, if set

  • client_context (Hash, nil) (defaults to: nil)

    the client context data, if set

  • parent_span (Span, nil) (defaults to: nil)

    if set holds the parent span, that should be used for this request

Yield Parameters:



1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
# File 'lib/couchbase/options.rb', line 1131

def initialize(ids_only: false,
               transcoder: JsonTranscoder.new,
               mutation_state: nil,
               batch_byte_limit: nil,
               batch_item_limit: nil,
               concurrency: nil,
               timeout: nil,
               retry_strategy: nil,
               client_context: nil,
               parent_span: nil)
  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
  @ids_only = ids_only
  @transcoder = transcoder
  @mutation_state = mutation_state
  @batch_byte_limit = batch_byte_limit
  @batch_item_limit = batch_item_limit
  @concurrency = concurrency
  yield self if block_given?
end

Instance Attribute Details

#batch_byte_limitInteger?

Returns:

  • (Integer, nil)


1109
1110
1111
# File 'lib/couchbase/options.rb', line 1109

def batch_byte_limit
  @batch_byte_limit
end

#batch_item_limitInteger?

Returns:

  • (Integer, nil)


1110
1111
1112
# File 'lib/couchbase/options.rb', line 1110

def batch_item_limit
  @batch_item_limit
end

#concurrencyInteger?

Returns:

  • (Integer, nil)


1111
1112
1113
# File 'lib/couchbase/options.rb', line 1111

def concurrency
  @concurrency
end

#ids_onlyBoolean

Returns:

  • (Boolean)


1106
1107
1108
# File 'lib/couchbase/options.rb', line 1106

def ids_only
  @ids_only
end

#mutation_stateMutationState?

Returns:



1108
1109
1110
# File 'lib/couchbase/options.rb', line 1108

def mutation_state
  @mutation_state
end

#transcoderJsonTranscoder, #decode(String)

Returns:



1107
1108
1109
# File 'lib/couchbase/options.rb', line 1107

def transcoder
  @transcoder
end

Instance Method Details

#consistent_with(mutation_state) ⇒ Object

Note:

overrides consistency level set by #scan_consistency=

Sets the mutation tokens this query should be consistent with

Parameters:

  • mutation_state (MutationState)

    the mutation state containing the mutation tokens



1156
1157
1158
# File 'lib/couchbase/options.rb', line 1156

def consistent_with(mutation_state)
  @mutation_state = mutation_state
end

#to_backendObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
# File 'lib/couchbase/options.rb', line 1161

def to_backend
  {
    timeout: Utils::Time.extract_duration(@timeout),
    ids_only: @ids_only,
    mutation_state: @mutation_state.to_a,
    batch_byte_limit: @batch_byte_limit,
    batch_item_limit: @batch_item_limit,
    concurrency: @concurrency,
  }
end