Class: Arel::Visitors::DB2
- Inherits:
-
ToSql
- Object
- ToSql
- Arel::Visitors::DB2
- Defined in:
- lib/arel/visitors/db2.rb
Instance Method Summary collapse
- #visit_Arel_Nodes_InsertStatement(o, a = nil) ⇒ Object
- #visit_Arel_Nodes_SelectStatement(o, a = nil) ⇒ Object
Instance Method Details
#visit_Arel_Nodes_InsertStatement(o, a = nil) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/arel/visitors/db2.rb', line 13 def visit_Arel_Nodes_InsertStatement o, a = nil sql = "INSERT INTO " sql << visit(o.relation, a) values = o.values if o.columns.any? cols = o.columns.map { |x| quote_column_name x.name } sql << ' (' << cols.join(', ') << ') ' # should depend the other way around but who cares it's AR elsif o.values.eql? ArJdbc::DB2::VALUES_DEFAULT cols = o.relation.engine.columns.map { |c| c.name } sql << ' (' << cols.join(', ') << ')' sql << ' VALUES ' sql << ' (' << cols.map { 'DEFAULT' }.join(', ') << ')' values = nil end sql << visit(values, a) if values sql end |
#visit_Arel_Nodes_SelectStatement(o, a = nil) ⇒ Object
7 8 9 10 11 |
# File 'lib/arel/visitors/db2.rb', line 7 def visit_Arel_Nodes_SelectStatement o, a = nil sql = o.cores.map { |x| do_visit_select_core x, a }.join sql << " ORDER BY #{o.orders.map { |x| do_visit x, a }.join(', ')}" unless o.orders.empty? add_limit_offset(sql, o) end |