Class: ClickHouse::SQL::SelectItem
- Inherits:
-
Struct
- Object
- Struct
- ClickHouse::SQL::SelectItem
- Includes:
- Part
- Defined in:
- lib/clickhouse/sql/select_item.rb
Overview
A SELECT expression with an optional validated alias.
Instance Attribute Summary collapse
-
#alias_name ⇒ String, ...
Optional output alias.
-
#expression ⇒ ClickHouse::SQL::Part
SQL expression to select.
Instance Method Summary collapse
-
#placeholder_types ⇒ Hash{Symbol=>String}
Returns ClickHouse placeholder types used by the SELECT expression.
-
#placeholders ⇒ Hash{Symbol=>Object}
Returns typed placeholder values used by the SELECT expression.
-
#to_redacted_sql(bind_index_manager) ⇒ String
Renders the SELECT expression with typed placeholders redacted.
-
#to_sql ⇒ String
Renders the SELECT expression.
Instance Attribute Details
#alias_name ⇒ String, ...
Returns Optional output alias.
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 39 40 41 42 43 44 45 46 |
# File 'lib/clickhouse/sql/select_item.rb', line 11 SelectItem = Struct.new(:expression, :alias_name, keyword_init: true) do include Part # Renders the SELECT expression. # # @return [String] SQL select item. def to_sql return expression.to_sql unless alias_name "#{expression.to_sql} AS #{ClickHouse::SQL.validate_alias!(alias_name)}" end # Renders the SELECT expression with typed placeholders redacted. # # @param bind_index_manager [ClickHouse::SQL::BindIndexManager] Redacted bind index state. # @return [String] Redacted SQL select item. def to_redacted_sql(bind_index_manager) return expression.to_redacted_sql(bind_index_manager) unless alias_name "#{expression.to_redacted_sql(bind_index_manager)} AS #{ClickHouse::SQL.validate_alias!(alias_name)}" end # Returns typed placeholder values used by the SELECT expression. # # @return [Hash{Symbol=>Object}] Placeholder values keyed by name. def placeholders expression.placeholders end # Returns ClickHouse placeholder types used by the SELECT expression. # # @return [Hash{Symbol=>String}] Placeholder types keyed by name. def placeholder_types expression.placeholder_types end end |
#expression ⇒ ClickHouse::SQL::Part
Returns SQL expression to select.
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 39 40 41 42 43 44 45 46 |
# File 'lib/clickhouse/sql/select_item.rb', line 11 SelectItem = Struct.new(:expression, :alias_name, keyword_init: true) do include Part # Renders the SELECT expression. # # @return [String] SQL select item. def to_sql return expression.to_sql unless alias_name "#{expression.to_sql} AS #{ClickHouse::SQL.validate_alias!(alias_name)}" end # Renders the SELECT expression with typed placeholders redacted. # # @param bind_index_manager [ClickHouse::SQL::BindIndexManager] Redacted bind index state. # @return [String] Redacted SQL select item. def to_redacted_sql(bind_index_manager) return expression.to_redacted_sql(bind_index_manager) unless alias_name "#{expression.to_redacted_sql(bind_index_manager)} AS #{ClickHouse::SQL.validate_alias!(alias_name)}" end # Returns typed placeholder values used by the SELECT expression. # # @return [Hash{Symbol=>Object}] Placeholder values keyed by name. def placeholders expression.placeholders end # Returns ClickHouse placeholder types used by the SELECT expression. # # @return [Hash{Symbol=>String}] Placeholder types keyed by name. def placeholder_types expression.placeholder_types end end |
Instance Method Details
#placeholder_types ⇒ Hash{Symbol=>String}
Returns ClickHouse placeholder types used by the SELECT expression.
43 44 45 |
# File 'lib/clickhouse/sql/select_item.rb', line 43 def placeholder_types expression.placeholder_types end |
#placeholders ⇒ Hash{Symbol=>Object}
Returns typed placeholder values used by the SELECT expression.
36 37 38 |
# File 'lib/clickhouse/sql/select_item.rb', line 36 def placeholders expression.placeholders end |
#to_redacted_sql(bind_index_manager) ⇒ String
Renders the SELECT expression with typed placeholders redacted.
27 28 29 30 31 |
# File 'lib/clickhouse/sql/select_item.rb', line 27 def to_redacted_sql(bind_index_manager) return expression.to_redacted_sql(bind_index_manager) unless alias_name "#{expression.to_redacted_sql(bind_index_manager)} AS #{ClickHouse::SQL.validate_alias!(alias_name)}" end |
#to_sql ⇒ String
Renders the SELECT expression.
17 18 19 20 21 |
# File 'lib/clickhouse/sql/select_item.rb', line 17 def to_sql return expression.to_sql unless alias_name "#{expression.to_sql} AS #{ClickHouse::SQL.validate_alias!(alias_name)}" end |