Class: ClickHouse::SQL::Setting

Inherits:
Object
  • Object
show all
Includes:
Part
Defined in:
lib/clickhouse/sql/setting.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, value) ⇒ ClickHouse::SQL::Setting

Builds a validated ClickHouse SETTINGS assignment.

Parameters:

  • name (String, Symbol)

    ClickHouse setting name.

  • value (String, Integer, Float, Boolean)

    Inline setting value.



13
14
15
16
# File 'lib/clickhouse/sql/setting.rb', line 13

def initialize(name, value)
  @name = ClickHouse::SQL.validate_setting_name!(name)
  @value = validate_value(value)
end

Instance Method Details

#placeholder_typesHash

Returns no placeholder types because settings are rendered as literals.

Returns:

  • (Hash)

    Empty placeholder types.



43
44
45
# File 'lib/clickhouse/sql/setting.rb', line 43

def placeholder_types
  {}
end

#placeholdersHash

Returns no placeholders because settings are rendered as literals.

Returns:

  • (Hash)

    Empty placeholder values.



36
37
38
# File 'lib/clickhouse/sql/setting.rb', line 36

def placeholders
  {}
end

#to_redacted_sql(bind_index_manager = ClickHouse::SQL::BindIndexManager.new) ⇒ String

Renders the setting assignment with its value redacted.

Parameters:

Returns:

  • (String)

    Redacted SQL setting assignment.



29
30
31
# File 'lib/clickhouse/sql/setting.rb', line 29

def to_redacted_sql(bind_index_manager = ClickHouse::SQL::BindIndexManager.new)
  "#{@name} = #{bind_index_manager.next_bind_str}"
end

#to_sqlString

Renders the setting assignment with its literal value.

Returns:

  • (String)

    SQL setting assignment.



21
22
23
# File 'lib/clickhouse/sql/setting.rb', line 21

def to_sql
  "#{@name} = #{serialized_value}"
end