Class: Axiom::SQL::Generator::Relation::Materialized

Inherits:
Axiom::SQL::Generator::Relation show all
Includes:
Literal
Defined in:
lib/axiom/sql/generator/relation/materialized.rb

Overview

Generates an SQL statement for materialized relation

Constant Summary

Constants included from Literal

Literal::ESCAPED_QUOTE, Literal::FALSE, Literal::NULL, Literal::QUOTE, Literal::SEPARATOR, Literal::TIME_SCALE, Literal::TRUE

Constants inherited from Axiom::SQL::Generator::Relation

EMPTY_HASH, EMPTY_STRING, SEPARATOR, STAR

Constants included from Identifier

Identifier::ESCAPED_QUOTE, Identifier::QUOTE

Constants inherited from Visitor

Visitor::DOUBLE_COLON, Visitor::NAME_REP, Visitor::NAME_SEP_REGEXP, Visitor::UNDERSCORE

Instance Attribute Summary

Attributes inherited from Axiom::SQL::Generator::Relation

#name

Instance Method Summary collapse

Methods included from Literal

dup_frozen, #visit_class, #visit_date, #visit_date_time, #visit_enumerable, #visit_false_class, #visit_nil_class, #visit_numeric, #visit_string, #visit_time, #visit_true_class

Methods inherited from Axiom::SQL::Generator::Relation

#initialize, #to_s, #to_sql, #to_subquery, visit, #visit

Methods included from Identifier

#visit_identifier

Methods included from Attribute

#visit_axiom_attribute

Methods inherited from Visitor

handler_for, #visit

Constructor Details

This class inherits a constructor from Axiom::SQL::Generator::Relation

Instance Method Details

#visit_axiom_relation_materialized(materialized) ⇒ self

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Visit a Materialized relation

Parameters:

Returns:

  • (self)


19
20
21
22
23
24
25
26
# File 'lib/axiom/sql/generator/relation/materialized.rb', line 19

def visit_axiom_relation_materialized(materialized)
  @values = materialized.map do |tuple|
    Generator.parenthesize!(
      tuple.to_ary.map { |value| dispatch(value) }.join(', ')
    )
  end
  self
end

#visited?Boolean

Test if a visitable object has been visited

Examples:

visitor.visited?  # true or false

Returns:

  • (Boolean)


36
37
38
# File 'lib/axiom/sql/generator/relation/materialized.rb', line 36

def visited?
  instance_variable_defined?(:@values)
end