Module: ClickhouseRuby
- Defined in:
- lib/clickhouse_ruby.rb,
lib/clickhouse_ruby/types.rb,
lib/clickhouse_ruby/client.rb,
lib/clickhouse_ruby/errors.rb,
lib/clickhouse_ruby/result.rb,
lib/clickhouse_ruby/version.rb,
lib/clickhouse_ruby/types/map.rb,
lib/clickhouse_ruby/connection.rb,
lib/clickhouse_ruby/types/base.rb,
lib/clickhouse_ruby/types/enum.rb,
lib/clickhouse_ruby/types/uuid.rb,
lib/clickhouse_ruby/types/array.rb,
lib/clickhouse_ruby/types/float.rb,
lib/clickhouse_ruby/types/tuple.rb,
lib/clickhouse_ruby/types/parser.rb,
lib/clickhouse_ruby/types/string.rb,
lib/clickhouse_ruby/active_record.rb,
lib/clickhouse_ruby/configuration.rb,
lib/clickhouse_ruby/retry_handler.rb,
lib/clickhouse_ruby/types/boolean.rb,
lib/clickhouse_ruby/types/decimal.rb,
lib/clickhouse_ruby/types/integer.rb,
lib/clickhouse_ruby/types/nullable.rb,
lib/clickhouse_ruby/types/registry.rb,
lib/clickhouse_ruby/connection_pool.rb,
lib/clickhouse_ruby/instrumentation.rb,
lib/clickhouse_ruby/types/date_time.rb,
lib/clickhouse_ruby/types/null_safe.rb,
lib/clickhouse_ruby/streaming_result.rb,
lib/clickhouse_ruby/types/string_parser.rb,
lib/clickhouse_ruby/active_record/railtie.rb,
lib/clickhouse_ruby/types/low_cardinality.rb,
lib/clickhouse_ruby/active_record/arel_visitor.rb,
lib/clickhouse_ruby/active_record/schema_dumper.rb,
lib/clickhouse_ruby/active_record/schema_dumper.rb,
lib/clickhouse_ruby/active_record/schema_statements.rb,
lib/clickhouse_ruby/active_record/connection_adapter.rb,
lib/clickhouse_ruby/active_record/relation_extensions.rb,
lib/clickhouse_ruby/active_record/generators/migration_generator.rb
Overview
Override the default dumper for ClickHouse connections
Defined Under Namespace
Modules: ActiveRecord, Generators, Instrumentation, Types Classes: Client, Configuration, ConfigurationError, Connection, ConnectionError, ConnectionNotEstablished, ConnectionPool, ConnectionTimeout, Error, PoolError, PoolExhausted, PoolTimeout, QueryError, QueryTimeout, Result, RetryHandler, SSLError, StatementInvalid, StreamingResult, SyntaxError, TypeCastError, UnknownColumn, UnknownDatabase, UnknownTable
Constant Summary collapse
- ERROR_CODE_MAPPING =
Maps ClickHouse error codes to exception classes See: github.com/ClickHouse/ClickHouse/blob/master/src/Common/ErrorCodes.cpp
{ 60 => UnknownTable, # UNKNOWN_TABLE 16 => UnknownColumn, # NO_SUCH_COLUMN_IN_TABLE 81 => UnknownDatabase, # UNKNOWN_DATABASE 62 => SyntaxError, # SYNTAX_ERROR 159 => QueryTimeout, # TIMEOUT_EXCEEDED }.freeze
- VERSION =
"0.3.0"
Class Method Summary collapse
-
.client ⇒ Client
Creates a new client with the global configuration.
-
.configuration ⇒ Configuration
Returns the global configuration instance.
-
.configure {|Configuration| ... } ⇒ Configuration
Allows configuration via a block.
-
.error_class_for_code(code) ⇒ Class
Maps a ClickHouse error code to the appropriate exception class.
-
.execute(sql, **options) ⇒ Result
Convenience method to execute a query using global configuration.
-
.insert(table, rows, **options) ⇒ Result
Convenience method to insert data using global configuration.
-
.reset_configuration! ⇒ Configuration
Resets the configuration to defaults Primarily useful for testing.
-
.sanitize_message(message, config) ⇒ String
Sanitizes a message to prevent credential leakage.
Class Method Details
.client ⇒ Client
Creates a new client with the global configuration
76 77 78 |
# File 'lib/clickhouse_ruby.rb', line 76 def client Client.new(configuration) end |
.configuration ⇒ Configuration
Returns the global configuration instance
45 46 47 |
# File 'lib/clickhouse_ruby.rb', line 45 def configuration @configuration ||= Configuration.new end |
.configure {|Configuration| ... } ⇒ Configuration
Allows configuration via a block
60 61 62 63 |
# File 'lib/clickhouse_ruby.rb', line 60 def configure yield(configuration) configuration end |
.error_class_for_code(code) ⇒ Class
Maps a ClickHouse error code to the appropriate exception class
140 141 142 |
# File 'lib/clickhouse_ruby/errors.rb', line 140 def error_class_for_code(code) ERROR_CODE_MAPPING.fetch(code, QueryError) end |
.execute(sql, **options) ⇒ Result
Convenience method to execute a query using global configuration
85 86 87 |
# File 'lib/clickhouse_ruby.rb', line 85 def execute(sql, **) client.execute(sql, **) end |
.insert(table, rows, **options) ⇒ Result
Convenience method to insert data using global configuration
95 96 97 |
# File 'lib/clickhouse_ruby.rb', line 95 def insert(table, rows, **) client.insert(table, rows, **) end |
.reset_configuration! ⇒ Configuration
Resets the configuration to defaults Primarily useful for testing
69 70 71 |
# File 'lib/clickhouse_ruby.rb', line 69 def reset_configuration! @configuration = Configuration.new end |
.sanitize_message(message, config) ⇒ String
Sanitizes a message to prevent credential leakage
149 150 151 152 153 154 |
# File 'lib/clickhouse_ruby/errors.rb', line 149 def (, config) return unless config.respond_to?(:password) && config&.password return if config.password.to_s.empty? .gsub(config.password.to_s, "[REDACTED]") end |