Module: ActiveRecord::Trino::Config
- Defined in:
- lib/active_record/trino/config.rb
Constant Summary collapse
- DEFAULT_QUERY_TIMEOUT =
150- DEFAULT_PLAN_TIMEOUT =
30- DEFAULT_SLOW_QUERY_THRESHOLD_SECONDS =
20- DEFAULT_HTTP_PORT =
8080- DEFAULT_HTTPS_PORT =
443- REQUIRED_KEYS =
%i[host user catalog schema].freeze
Class Method Summary collapse
- .bulk_column_reflection?(config) ⇒ Boolean
- .client_options(config) ⇒ Object
- .default_port(ssl) ⇒ Object
- .persistent?(config) ⇒ Boolean
- .slow_query_threshold(config) ⇒ Object
- .static_schema?(config) ⇒ Boolean
- .symbolize(config) ⇒ Object
- .validate!(config) ⇒ Object
Class Method Details
.bulk_column_reflection?(config) ⇒ Boolean
40 41 42 |
# File 'lib/active_record/trino/config.rb', line 40 def bulk_column_reflection?(config) !!symbolize(config).fetch(:bulk_column_reflection, false) end |
.client_options(config) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/active_record/trino/config.rb', line 16 def (config) symbolized = symbolize(config) validate!(symbolized) ssl = symbolized.fetch(:ssl, false) port = symbolized.fetch(:port, default_port(ssl)) { server: "#{symbolized[:host]}:#{port}", user: symbolized[:user], password: symbolized[:password], catalog: symbolized[:catalog], schema: symbolized[:schema], ssl: ssl, http_proxy: symbolized[:http_proxy], time_zone: symbolized[:time_zone], gzip: symbolized[:gzip], query_timeout: symbolized.fetch(:query_timeout, DEFAULT_QUERY_TIMEOUT), plan_timeout: symbolized.fetch(:plan_timeout, DEFAULT_PLAN_TIMEOUT), }.compact end |
.default_port(ssl) ⇒ Object
48 49 50 |
# File 'lib/active_record/trino/config.rb', line 48 def default_port(ssl) ssl ? DEFAULT_HTTPS_PORT : DEFAULT_HTTP_PORT end |
.persistent?(config) ⇒ Boolean
36 37 38 |
# File 'lib/active_record/trino/config.rb', line 36 def persistent?(config) !!symbolize(config).fetch(:persistent, false) end |
.slow_query_threshold(config) ⇒ Object
52 53 54 55 |
# File 'lib/active_record/trino/config.rb', line 52 def slow_query_threshold(config) symbolized = symbolize(config) symbolized.fetch(:slow_query_threshold_seconds, DEFAULT_SLOW_QUERY_THRESHOLD_SECONDS).to_f end |
.static_schema?(config) ⇒ Boolean
44 45 46 |
# File 'lib/active_record/trino/config.rb', line 44 def static_schema?(config) !!symbolize(config).fetch(:static_schema, false) end |
.symbolize(config) ⇒ Object
66 67 68 |
# File 'lib/active_record/trino/config.rb', line 66 def symbolize(config) config.to_h.transform_keys(&:to_sym) end |
.validate!(config) ⇒ Object
57 58 59 60 61 62 63 64 |
# File 'lib/active_record/trino/config.rb', line 57 def validate!(config) symbolized = symbolize(config) missing = REQUIRED_KEYS.reject { |k| symbolized[k] && !symbolized[k].to_s.empty? } return if missing.empty? raise ActiveRecord::Trino::ConfigurationError, "activerecord-trino-adapter: missing required config keys: #{missing.join(', ')}" end |