Class: OracleSqlParser::Ast::IntervalExpression

Inherits:
Hash show all
Defined in:
lib/oracle-sql-parser/ast/interval_expression.rb

Instance Method Summary collapse

Methods inherited from Hash

[], #[]=, #initialize, #inspect, #map_ast!, #method_missing, #remove_nil_values!

Methods inherited from Base

#==, [], #ast, #deep_dup, deep_dup, find_different_value, #initialize, #initialize_copy, #inspect, #map_ast, #map_ast!, #remove_nil_values!

Methods included from Util::Parameterizable

#to_parameterized, #to_parameternized

Constructor Details

This class inherits a constructor from OracleSqlParser::Ast::Hash

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class OracleSqlParser::Ast::Hash

Instance Method Details

#to_sql(options = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/oracle-sql-parser/ast/interval_expression.rb', line 3

def to_sql(options = {})
  result = []
  result << '('
  result << @ast[:left]
  result << '-'
  result << @ast[:right]
  result << ')'
  result << (@ast[:day] || @ast[:year])
  if @ast[:leading_field_precision]
    result << '('
    result << @ast[:leading_field_precision]
    result << ')'
  end
  result << @ast[:to]
  result << (@ast[:second] || @ast[:month])
  if @ast[:fractional_second_precision]
    result << '('
    result << @ast[:fractional_second_precision]
    result << ')'
  end
  result.compact.map(&:to_sql).join(' ')
end