blob: 9fac0df8d87506d2260daabfe53eb8053201e086 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# frozen_string_literal: true
module ClickHouse
module Client
class Database
attr_reader :database
def initialize(database:, url:, username:, password:, variables: {})
@database = database
@url = url
@username = username
@password = password
@variables = {
database: database,
enable_http_compression: 1 # enable HTTP compression by default
}.merge(variables).freeze
end
def uri
@uri ||= build_custom_uri
end
def build_custom_uri(extra_variables: {})
parsed = Addressable::URI.parse(@url)
parsed.query_values = @variables.merge(extra_variables)
parsed
end
def headers
@headers ||= {
'X-ClickHouse-User' => @username,
'X-ClickHouse-Key' => @password,
'X-ClickHouse-Format' => 'JSON' # always return JSON data
}.freeze
end
end
end
end
|