Class: SQLTree::Node::InsertQuery

Inherits:
Base
  • Object
show all
Defined in:
lib/active_record/turntable/sql_tree_patch.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#quote_field_name

Class Method Details

.parse_value_list(tokens) ⇒ Object



287
288
289
290
291
292
293
294
295
296
297
298
299
300
# File 'lib/active_record/turntable/sql_tree_patch.rb', line 287

def self.parse_value_list(tokens)
  values = []
  tokens.consume(SQLTree::Token::VALUES)
  tokens.consume(SQLTree::Token::LPAREN)
  values << parse_list(tokens)
  tokens.consume(SQLTree::Token::RPAREN)
  while SQLTree::Token::COMMA === tokens.peek
    tokens.consume(SQLTree::Token::COMMA)
    tokens.consume(SQLTree::Token::LPAREN)
    values << parse_list(tokens)
    tokens.consume(SQLTree::Token::RPAREN)
  end
  return values
end

Instance Method Details

#to_sql(options = { }) ⇒ Object



277
278
279
280
281
282
283
284
285
# File 'lib/active_record/turntable/sql_tree_patch.rb', line 277

def to_sql(options = { })
  sql = "INSERT INTO #{ table.to_sql(options)} "
  sql << '(' + fields.map { |f| f.to_sql(options) }.join(', ') + ') ' if fields
  sql << 'VALUES'
  sql << values.map do |value|
           ' (' + value.map { |v| v.to_sql(options) }.join(', ') + ')'
         end.join(',')
  sql
end