Module: ActiveRecordUpsert::Arel::Visitors::ToSqlExtensions
- Defined in:
 - lib/active_record_upsert/arel/visitors/to_sql.rb
 
Instance Method Summary collapse
- #table_exists?(name) ⇒ Boolean
 - #visit_Arel_Nodes_DoNothing(_o, collector) ⇒ Object
 - #visit_Arel_Nodes_DoUpdateSet(o, collector) ⇒ Object
 - #visit_Arel_Nodes_ExcludedColumn(o, collector) ⇒ Object
 - #visit_Arel_Nodes_InsertStatement(o, collector) ⇒ Object
 - #visit_Arel_Nodes_OnConflict(o, collector) ⇒ Object
 
Instance Method Details
#table_exists?(name) ⇒ Boolean
      47 48 49  | 
    
      # File 'lib/active_record_upsert/arel/visitors/to_sql.rb', line 47 def table_exists?(name) schema_cache.data_source_exists?(name) end  | 
  
#visit_Arel_Nodes_DoNothing(_o, collector) ⇒ Object
      21 22 23  | 
    
      # File 'lib/active_record_upsert/arel/visitors/to_sql.rb', line 21 def visit_Arel_Nodes_DoNothing _o, collector collector << "DO NOTHING" end  | 
  
#visit_Arel_Nodes_DoUpdateSet(o, collector) ⇒ Object
      25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40  | 
    
      # File 'lib/active_record_upsert/arel/visitors/to_sql.rb', line 25 def visit_Arel_Nodes_DoUpdateSet o, collector wheres = o.wheres collector << "DO UPDATE " unless o.values.empty? collector << " SET " collector = inject_join o.values, collector, ", " end unless wheres.empty? collector << " WHERE " collector = inject_join wheres, collector, " AND " end collector end  | 
  
#visit_Arel_Nodes_ExcludedColumn(o, collector) ⇒ Object
      42 43 44 45  | 
    
      # File 'lib/active_record_upsert/arel/visitors/to_sql.rb', line 42 def visit_Arel_Nodes_ExcludedColumn o, collector collector << "EXCLUDED.#{quote_column_name o.column}" collector end  | 
  
#visit_Arel_Nodes_InsertStatement(o, collector) ⇒ Object
      5 6 7 8 9 10 11 12  | 
    
      # File 'lib/active_record_upsert/arel/visitors/to_sql.rb', line 5 def visit_Arel_Nodes_InsertStatement(o, collector) collector = super if o.on_conflict maybe_visit o.on_conflict, collector else collector end end  | 
  
#visit_Arel_Nodes_OnConflict(o, collector) ⇒ Object
      14 15 16 17 18 19  | 
    
      # File 'lib/active_record_upsert/arel/visitors/to_sql.rb', line 14 def visit_Arel_Nodes_OnConflict o, collector collector << "ON CONFLICT " collector << " (#{quote_column_name o.target.name}) ".gsub(',', '","') collector << " WHERE #{o.where}" if o.where maybe_visit o.action, collector end  |