Skip to content

Commit 82e3252

Browse files
authored
Merge pull request rails#51286 from yahonda/wl_13325_mysql_8019
MySQL 8.0.19 introduces aliases in the VALUES and SET clauses of INSERT INTO ... ON DUPLICATE KEY UPDATE statement
2 parents 608c1bf + 52353c8 commit 82e3252

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -641,8 +641,9 @@ def default_index_type?(index) # :nodoc:
641641
def build_insert_sql(insert) # :nodoc:
642642
no_op_column = quote_column_name(insert.keys.first)
643643

644-
# Avoid MySQL 8.0 deprecation warning, see https://dev.mysql.com/worklog/task/?id=13325.
645-
if !mariadb? && database_version >= "8.0.0"
644+
# MySQL 8.0.19 replaces `VALUES(<expression>)` clauses with row and column alias names, see https://dev.mysql.com/worklog/task/?id=6312 .
645+
# then MySQL 8.0.20 deprecates the `VALUES(<expression>)` see https://dev.mysql.com/worklog/task/?id=13325 .
646+
if !mariadb? && database_version >= "8.0.19"
646647
values_alias = quote_table_name("#{insert.model.table_name}_values")
647648
sql = +"INSERT #{insert.into} #{insert.values_list} AS #{values_alias}"
648649

0 commit comments

Comments
 (0)