Method: Couchbase::Options::Analytics#initialize

Defined in:
lib/couchbase/options.rb

#initialize(client_context_id: nil, scan_consistency: nil, readonly: false, priority: nil, transcoder: JsonTranscoder.new, positional_parameters: nil, named_parameters: nil, scope_qualifier: nil, timeout: nil, retry_strategy: nil, client_context: nil, parent_span: nil) {|self| ... } ⇒ Analytics

Note:

Either positional_parameters or named_parameters may be specified.

Creates new instance of options for Cluster#analytics_query

Parameters:

  • client_context_id (String) (defaults to: nil)

    provides a custom client context ID for this query

  • scan_consistency (Symbol) (defaults to: nil)

    specifies level of consistency for the query

    :not_bounded

    The index will return whatever state it has to the analytics query engine at the time of query.

    This is the default (for single-statement requests). No timestamp vector is used in the index scan. This is also the fastest mode, because we avoid the cost of obtaining the vector, and we also avoid any wait for the index

    :request_plus

    The index will wait until all mutations have been processed at the time of request before being processed in the analytics query engine.

    This implements strong consistency per request. Before processing the request, a current vector is obtained. The vector is used as a lower bound for the statements in the request.

  • readonly (Boolean) (defaults to: false)

    allows explicitly marking a query as being readonly and not mutating any documents on the server side.

  • priority (Boolean) (defaults to: nil)

    allows to give certain requests higher priority than others

  • transcoder (JsonTranscoder) (defaults to: JsonTranscoder.new)

    to decode rows

  • positional_parameters (Array<#to_json>, nil) (defaults to: nil)

    parameters to be used as substitution for numbered macros like $1, $2 in query string

  • named_parameters (Hash<String => #to_json>, nil) (defaults to: nil)

    parameters to be used as substitution for named macros like $name in query string

  • scope_qualifier (String, nil) (defaults to: nil)

    Associate scope qualifier (also known as query_context) with the query. The qualifier must be in form {bucket_name}.{scope_name} or default:{bucket_name}.{scope_name}.

  • 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:

Raises:

  • (ArgumentError)


1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
# File 'lib/couchbase/options.rb', line 1996

def initialize(client_context_id: nil,
               scan_consistency: nil,
               readonly: false,
               priority: nil,
               transcoder: JsonTranscoder.new,
               positional_parameters: nil,
               named_parameters: nil,
               scope_qualifier: nil,
               timeout: nil,
               retry_strategy: nil,
               client_context: nil,
               parent_span: nil)
  raise ArgumentError, "Cannot pass positional and named parameters at the same time" if positional_parameters && named_parameters

  super(timeout: timeout, retry_strategy: retry_strategy, client_context: client_context, parent_span: parent_span)
  @client_context_id = client_context_id
  @scan_consistency = scan_consistency
  @readonly = readonly
  @priority = priority
  @transcoder = transcoder
  @positional_parameters = positional_parameters
  @named_parameters = named_parameters
  @scope_qualifier = scope_qualifier
  @raw_parameters = {}
  yield self if block_given?
end