Class: ClickHouse::SQL::Raw

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(sql, unsafe_reason: nil) ⇒ ClickHouse::SQL::Raw

Builds a trusted raw SQL expression.

Parameters:

  • sql (String, #to_s)

    Raw SQL text.

  • unsafe_reason (String, nil) (defaults to: nil)

    Reason for using unsafe raw SQL.

Raises:



16
17
18
19
20
21
# File 'lib/clickhouse/sql/raw.rb', line 16

def initialize(sql, unsafe_reason: nil)
  raise Error, "Empty SQL string given" if ValueNormalization.blank_string?(sql)

  @sql = sql.to_s
  @unsafe_reason = unsafe_reason
end

Instance Attribute Details

#unsafe_reasonString? (readonly)

Returns Reason this raw SQL is intentionally unsafe, if any.

Returns:

  • (String, nil)

    Reason this raw SQL is intentionally unsafe, if any.



9
10
11
# File 'lib/clickhouse/sql/raw.rb', line 9

def unsafe_reason
  @unsafe_reason
end

Instance Method Details

#placeholder_typesHash

Returns no placeholder types because raw SQL cannot bind values.

Returns:

  • (Hash)

    Empty placeholder types.



48
49
50
# File 'lib/clickhouse/sql/raw.rb', line 48

def placeholder_types
  {}
end

#placeholdersHash

Returns no placeholders because raw SQL cannot bind values.

Returns:

  • (Hash)

    Empty placeholder values.



41
42
43
# File 'lib/clickhouse/sql/raw.rb', line 41

def placeholders
  {}
end

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

Renders the raw SQL text for redacted logs.

Parameters:

Returns:

  • (String)

    Raw SQL text.



34
35
36
# File 'lib/clickhouse/sql/raw.rb', line 34

def to_redacted_sql(_bind_index_manager = ClickHouse::SQL::BindIndexManager.new)
  @sql
end

#to_sqlString

Renders the raw SQL text.

Returns:

  • (String)

    Raw SQL text.



26
27
28
# File 'lib/clickhouse/sql/raw.rb', line 26

def to_sql
  @sql
end