method
visit_Arel_Nodes_UpdateStatement
rails latest stable - Class:
Arel::Visitors::PostgreSQL
visit_Arel_Nodes_UpdateStatement(o, collector)private
No documentation available.
# File activerecord/lib/arel/visitors/postgresql.rb, line 7
def visit_Arel_Nodes_UpdateStatement(o, collector)
collector.retryable = false
o = prepare_update_statement(o)
collector << "UPDATE "
# UPDATE with JOIN is in the form of:
#
# UPDATE t1 AS __active_record_update_alias
# SET ..
# FROM t1 JOIN t2 ON t2.join_id = t1.join_id ..
# WHERE t1.id = __active_record_update_alias.id AND ..
if has_join_sources?(o)
collector = visit o.relation.left, collector
collect_nodes_for o.values, collector, " SET "
collector << " FROM "
collector = inject_join o.relation.right, collector, " "
else
collector = visit o.relation, collector
collect_nodes_for o.values, collector, " SET "
end
collect_nodes_for o.wheres, collector, " WHERE ", " AND "
collect_nodes_for o.orders, collector, " ORDER BY "
maybe_visit o.limit, collector
maybe_visit o.comment, collector
end