466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
|
# File 'lib/arel_extensions/visitors/to_sql.rb', line 466
def visit_ArelExtensions_InsertManager_BulkValues o, collector
collector << 'VALUES '
row_nb = o.left.length
o.left.each_with_index do |row, idx|
collector << '('
len = row.length - 1
row.zip(o.cols).each_with_index { |(value, attr), i|
case value
when Arel::Nodes::SqlLiteral, Arel::Nodes::BindParam
collector = visit value, collector
else
collector << quote(value, attr && column_for(attr)).to_s
end
collector << COMMA unless i == len
}
collector << (idx == row_nb - 1 ? ')' : '), ')
end
collector
end
|