class Sequel::Cockroach::Database
Public Instance Methods
indexes(table_name)
click to toggle source
Retrieves indexes for the given table
NOTE: Apparently CockroachDB is not fully compatible with Postgres or Sequel's Postgres adapter, and it can't correctly figure out indexes and their properties. As a workaround, a specific indexes()
method is implemented here, which executes `SHOW INDEXES FROM …` and parses the results.
@param table_name [String,Symbol] @return [Hash] index_name => index_properties
# File lib/mimi/db/extensions/sequel-cockroachdb.rb, line 36 def indexes(table_name) idxs = {} results = fetch('show indexes from ' + table_name.to_s).all results.each do |idx_entry| idx_name = idx_entry[:Name].to_sym next if idx_name == :primary # ignore primary index idxs[idx_name] ||= { name: idx_name.to_s } idx = idxs[idx_name] idx[:unique] = idx_entry[:Unique] idx[:deferrable] = false idx[:columns] ||= [] idx[:columns] << idx_entry[:Column].to_sym unless idx_entry[:Implicit] end idxs end
server_version(*)
click to toggle source
# File lib/mimi/db/extensions/sequel-cockroachdb.rb, line 21 def server_version(*) 80000 # mimics Postgres v8 # 100000 # mimics Postgres v10 end
supports_savepoints?()
click to toggle source
Cockroach
DB only supports one savepoint
# File lib/mimi/db/extensions/sequel-cockroachdb.rb, line 17 def supports_savepoints? false end
Private Instance Methods
dataset_class_default()
click to toggle source
# File lib/mimi/db/extensions/sequel-cockroachdb.rb, line 54 def dataset_class_default Dataset end