Class: ClickHouse::Connection

Inherits:
Object
  • Object
show all
Defined in:
lib/click_house/connection.rb

Instance Method Summary collapse

Constructor Details

#initialize(database, configuration = ClickHouse::Client.configuration) ⇒ Connection

Returns a new instance of Connection.



5
6
7
8
# File 'lib/click_house/connection.rb', line 5

def initialize(database, configuration = ClickHouse::Client.configuration)
  @database = database
  @configuration = configuration
end

Instance Method Details

#database_nameObject



26
27
28
# File 'lib/click_house/connection.rb', line 26

def database_name
  configuration.databases[database]&.database
end

#execute(query) ⇒ Object



14
15
16
# File 'lib/click_house/connection.rb', line 14

def execute(query)
  ClickHouse::Client.execute(query, database, configuration)
end

#insert_csv(query, file) ⇒ Object



18
19
20
# File 'lib/click_house/connection.rb', line 18

def insert_csv(query, file)
  ClickHouse::Client.insert_csv(query, file, database, configuration)
end

#pingObject



22
23
24
# File 'lib/click_house/connection.rb', line 22

def ping
  execute('SELECT 1')
end

#select(query) ⇒ Object



10
11
12
# File 'lib/click_house/connection.rb', line 10

def select(query)
  ClickHouse::Client.select(query, database, configuration)
end

#table_exists?(table_name) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/click_house/connection.rb', line 30

def table_exists?(table_name)
  raw_query = <<~SQL.squish
    SELECT 1 FROM system.tables
    WHERE name = {table_name: String} AND database = {database_name: String}
  SQL

  placeholders = { table_name: table_name, database_name: database_name }

  query = ClickHouse::Client::Query.new(raw_query: raw_query, placeholders: placeholders)

  select(query).any?
end