module ActiveRecord::ConnectionAdapters::CockroachDBConnectionPool

Public Class Methods

new(pool_config) click to toggle source
Calls superclass method
# File lib/active_record/connection_adapters/cockroachdb_adapter.rb, line 61
def initialize(pool_config)
  super(pool_config)
  disable_telemetry = pool_config.db_config.configuration_hash[:disable_cockroachdb_telemetry]
  adapter = pool_config.db_config.configuration_hash[:adapter]
  return if disable_telemetry || adapter != "cockroachdb"

  begin
    with_connection do |conn|
      if conn.active?
        begin
          ar_version = conn.quote("ActiveRecord %d.%d" % [ActiveRecord::VERSION::MAJOR,
                                                          ActiveRecord::VERSION::MINOR])
          ar_query = "SELECT crdb_internal.increment_feature_counter(%s)" % ar_version
          adapter_version = conn.quote("activerecord-cockroachdb-adapter #{ActiveRecord::COCKROACH_DB_ADAPTER_VERSION}")
          adapter_query = "SELECT crdb_internal.increment_feature_counter(%s)" % adapter_version

          conn.execute(ar_query)
          conn.execute(adapter_query)
        rescue ActiveRecord::StatementInvalid
          # The increment_feature_counter built-in is not supported on this
          # CockroachDB version. Ignore.
        rescue StandardError => e
          conn.logger.warn "Unexpected error when incrementing feature counter: #{e}"
        end
      end
    end
  rescue StandardError
    # Prevent failures on db creation and parallel testing.
  end
end