Skip to content

Commit ddb5c5b

Browse files
committed
Touch updated_at when upsert_all modifies a record
From upstream
1 parent 9024932 commit ddb5c5b

File tree

2 files changed

+2
-0
lines changed

2 files changed

+2
-0
lines changed

lib/arjdbc/postgresql/adapter.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,7 @@ def build_insert_sql(insert) # :nodoc:
437437
sql << " ON CONFLICT #{insert.conflict_target} DO NOTHING"
438438
elsif insert.update_duplicates?
439439
sql << " ON CONFLICT #{insert.conflict_target} DO UPDATE SET "
440+
sql << insert.touch_model_timestamps_unless { |column| "#{insert.model.quoted_table_name}.#{column} IS NOT DISTINCT FROM excluded.#{column}" }
440441
sql << insert.updatable_columns.map { |column| "#{column}=excluded.#{column}" }.join(",")
441442
end
442443

lib/arjdbc/sqlite3/adapter.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ def build_insert_sql(insert) # :nodoc:
346346
sql << " ON CONFLICT #{insert.conflict_target} DO NOTHING"
347347
elsif insert.update_duplicates?
348348
sql << " ON CONFLICT #{insert.conflict_target} DO UPDATE SET "
349+
sql << insert.touch_model_timestamps_unless { |column| "#{column} IS excluded.#{column}" }
349350
sql << insert.updatable_columns.map { |column| "#{column}=excluded.#{column}" }.join(",")
350351
end
351352

0 commit comments

Comments
 (0)