Class: ClickHouse::Connection
- Inherits:
-
Object
- Object
- ClickHouse::Connection
- Includes:
- Extend::ConnectionAltering, Extend::ConnectionDatabase, Extend::ConnectionExplaining, Extend::ConnectionHealthy, Extend::ConnectionInserting, Extend::ConnectionSelective, Extend::ConnectionTable
- Defined in:
- lib/click_house/connection.rb
Constant Summary
Constants included from Extend::ConnectionExplaining
Extend::ConnectionExplaining::EXPLAIN, Extend::ConnectionExplaining::EXPLAIN_RE
Constants included from Extend::ConnectionInserting
Extend::ConnectionInserting::EMPTY_INSERT
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
- #compose(path, query = {}) ⇒ Object
- #execute(query, body = nil, database: config.database) ⇒ Object
- #get(path = '/', query: {}, database: config.database) ⇒ Object
-
#initialize(config) ⇒ Connection
constructor
A new instance of Connection.
- #post(body = nil, query: {}, database: config.database) ⇒ Object
- #transport ⇒ Object
Methods included from Extend::ConnectionExplaining
Methods included from Extend::ConnectionAltering
#add_column, #add_index, #alter_table, #clear_column, #drop_column, #drop_index, #modify_column
Methods included from Extend::ConnectionInserting
Methods included from Extend::ConnectionSelective
#select_all, #select_one, #select_value
Methods included from Extend::ConnectionTable
#create_table, #describe_table, #drop_table, #rename_table, #table_exists?, #tables, #truncate_table, #truncate_tables
Methods included from Extend::ConnectionDatabase
#create_database, #databases, #drop_database
Methods included from Extend::ConnectionHealthy
Constructor Details
#initialize(config) ⇒ Connection
Returns a new instance of Connection.
16 17 18 |
# File 'lib/click_house/connection.rb', line 16 def initialize(config) @config = config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
13 14 15 |
# File 'lib/click_house/connection.rb', line 13 def config @config end |
Instance Method Details
#compose(path, query = {}) ⇒ Object
47 48 49 50 |
# File 'lib/click_house/connection.rb', line 47 def compose(path, query = {}) # without <query.compact> "DB::Exception: Empty query" error will occur "#{path}?#{URI.encode_www_form({ send_progress_in_http_headers: 1 }.merge(query).compact)}" end |
#execute(query, body = nil, database: config.database) ⇒ Object
20 21 22 |
# File 'lib/click_house/connection.rb', line 20 def execute(query, body = nil, database: config.database) post(body, query: { query: query }, database: database) end |
#get(path = '/', query: {}, database: config.database) ⇒ Object
24 25 26 |
# File 'lib/click_house/connection.rb', line 24 def get(path = '/', query: {}, database: config.database) transport.get(compose(path, query.merge(database: database))) end |
#post(body = nil, query: {}, database: config.database) ⇒ Object
28 29 30 |
# File 'lib/click_house/connection.rb', line 28 def post(body = nil, query: {}, database: config.database) transport.post(compose('/', query.merge(database: database)), body) end |
#transport ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/click_house/connection.rb', line 32 def transport @transport ||= Faraday.new(config.url!) do |conn| conn..timeout = config.timeout conn..open_timeout = config.open_timeout conn.headers = config.headers conn.ssl.verify = config.ssl_verify conn.basic_auth(config.username, config.password) if config.auth? conn.response Middleware::Logging, logger: config.logger! conn.response Middleware::RaiseError conn.response :json, content_type: %r{application/json} conn.response Middleware::ParseCsv, content_type: %r{text/csv} conn.adapter config.adapter end end |