Class: Couchbase::Management::QueryIndexManager

Inherits:
Object
  • Object
show all
Defined in:
lib/couchbase/management/query_index_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(backend) ⇒ QueryIndexManager

Returns a new instance of QueryIndexManager.

Parameters:

  • backend (Couchbase::Backend)


332
333
334
# File 'lib/couchbase/management/query_index_manager.rb', line 332

def initialize(backend)
  @backend = backend
end

Instance Method Details

#build_deferred_indexes(bucket_name, options = Options::Query::BuildDeferredIndexes.new) ⇒ Object

Build all indexes which are currently in deferred state

Parameters:

Returns:

  • void

Raises:

  • (ArgumentError)


427
428
429
# File 'lib/couchbase/management/query_index_manager.rb', line 427

def build_deferred_indexes(bucket_name, options = Options::Query::BuildDeferredIndexes.new)
  @backend.query_index_build_deferred(bucket_name, options.to_backend)
end

#create_index(bucket_name, index_name, fields, options = Options::Query::CreateIndex.new) ⇒ Object

Creates a new index

Parameters:

  • bucket_name (String)

    name of the bucket

  • index_name (String)

    name of the index

  • fields (Array<String>)

    the lists of fields to create th index over

  • options (Options::Query::CreateIndex) (defaults to: Options::Query::CreateIndex.new)

Returns:

  • void

Raises:



373
374
375
# File 'lib/couchbase/management/query_index_manager.rb', line 373

def create_index(bucket_name, index_name, fields, options = Options::Query::CreateIndex.new)
  @backend.query_index_create(bucket_name, index_name, fields, options.to_backend)
end

#create_primary_index(bucket_name, options = Options::Query::CreatePrimaryIndex.new) ⇒ Object

Creates new primary index

Parameters:

Returns:

  • void

Raises:



386
387
388
# File 'lib/couchbase/management/query_index_manager.rb', line 386

def create_primary_index(bucket_name, options = Options::Query::CreatePrimaryIndex.new)
  @backend.query_index_create_primary(bucket_name, options.to_backend)
end

#drop_index(bucket_name, index_name, options = Options::Query::DropIndex.new) ⇒ Object

Drops the index

Parameters:

  • bucket_name (String)

    name of the bucket

  • index_name (String)

    name of the index

  • options (Options::Query::DropIndex) (defaults to: Options::Query::DropIndex.new)

Returns:

  • void

Raises:



400
401
402
403
# File 'lib/couchbase/management/query_index_manager.rb', line 400

def drop_index(bucket_name, index_name, options = Options::Query::DropIndex.new)
  @backend.query_index_drop(bucket_name, index_name, options.to_backend)
  true
end

#drop_primary_index(bucket_name, options = Options::Query::DropPrimaryIndex.new) ⇒ Object

Drops the primary index

Parameters:

Returns:

  • void

Raises:



414
415
416
417
# File 'lib/couchbase/management/query_index_manager.rb', line 414

def drop_primary_index(bucket_name, options = Options::Query::DropPrimaryIndex.new)
  @backend.query_index_drop_primary(bucket_name, options.to_backend)
  true
end

#get_all_indexes(bucket_name, options = GetAllIndexOptions.new) ⇒ Array<QueryIndex>

Fetches all indexes from the server

Parameters:

Returns:

Raises:

  • (ArgumentError)


344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
# File 'lib/couchbase/management/query_index_manager.rb', line 344

def get_all_indexes(bucket_name, options = GetAllIndexOptions.new)
  res = @backend.query_index_get_all(bucket_name, options.to_backend)
  res[:indexes].map do |idx|
    QueryIndex.new do |index|
      index.name = idx[:name]
      index.is_primary = idx[:is_primary]
      index.type = idx[:type]
      index.state = idx[:state]
      index.bucket = idx[:bucket_name]
      index.scope = idx[:scope_name]
      index.collection = idx[:collection_name]
      index.index_key = idx[:index_key]
      index.condition = idx[:condition]
      index.partition = idx[:partition]
    end
  end
end

#watch_indexes(bucket_name, index_names, timeout, options = Options::Query::WatchIndexes.new) ⇒ Object

Polls indexes until they are online

Parameters:

  • bucket_name (String)

    name of the bucket

  • index_names (Array<String>)

    names of the indexes to watch

  • timeout (Integer, #in_milliseconds)

    the time in milliseconds allowed for the operation to complete

  • options (Options::Query::WatchIndexes) (defaults to: Options::Query::WatchIndexes.new)

Raises:



440
441
442
443
444
# File 'lib/couchbase/management/query_index_manager.rb', line 440

def watch_indexes(bucket_name, index_names, timeout, options = Options::Query::WatchIndexes.new)
  @backend.query_index_watch(bucket_name, index_names,
                             timeout.respond_to?(:in_milliseconds) ? timeout.public_send(:in_milliseconds) : timeout,
                             options.to_backend)
end