Class: ClickHouse::Definition::ColumnSet

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

Constant Summary collapse

TYPES =
ClickHouse.types.each_with_object([]) do |(name, type), object|
  object << name.sub('%s', "'%s'") if type.ddl?
end

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize {|_self| ... } ⇒ ColumnSet

Returns a new instance of ColumnSet.

Yields:

  • (_self)

Yield Parameters:



36
37
38
# File 'lib/click_house/definition/column_set.rb', line 36

def initialize
  yield(self) if block_given?
end

Class Method Details

.method_name_for_type(type) ⇒ Object



13
14
15
# File 'lib/click_house/definition/column_set.rb', line 13

def method_name_for_type(type)
  type.sub(/\(.+/, '')
end

Instance Method Details

#columnsObject



40
41
42
# File 'lib/click_house/definition/column_set.rb', line 40

def columns
  @columns ||= []
end

#nested(name, &block) ⇒ Object Also known as: Nested

Examples:

t.Nested :json do |n|
  n.UInt8 :city_id
end


54
55
56
# File 'lib/click_house/definition/column_set.rb', line 54

def nested(name, &block)
  columns << "#{name} Nested #{ColumnSet.new(&block)}"
end

#push(sql) ⇒ Object Also known as: <<



60
61
62
# File 'lib/click_house/definition/column_set.rb', line 60

def push(sql)
  columns << sql
end

#to_sObject



44
45
46
47
48
# File 'lib/click_house/definition/column_set.rb', line 44

def to_s
  <<~SQL
    ( #{columns.map(&:to_s).join(', ')} )
  SQL
end