Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fix GH #4754. Remove double-quote characters around PK when using sql…

…_mode=ANSI_QUOTES
  • Loading branch information...
commit daa8686ca4d3110907056a322587d9b4164bb2b6 1 parent 423241c
@kennyj authored
View
2  activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
@@ -576,7 +576,7 @@ def pk_and_sequence_for(table)
create_table = result.first[1]
if create_table.to_s =~ /PRIMARY KEY\s+\((.+)\)/
- keys = $1.split(",").map { |key| key.gsub(/`/, "") }
+ keys = $1.split(",").map { |key| key.gsub(/[`"]/, "") }
keys.length == 1 ? [keys.first, nil] : nil
else
nil
View
2  activerecord/lib/active_record/connection_adapters/mysql_adapter.rb
@@ -760,7 +760,7 @@ def pk_and_sequence_for(table) #:nodoc:
result.free
if create_table.to_s =~ /PRIMARY KEY\s+\((.+)\)/
- keys = $1.split(",").map { |key| key.gsub(/`/, "") }
+ keys = $1.split(",").map { |key| key.gsub(/[`"]/, "") }
keys.length == 1 ? [keys.first, nil] : nil
else
nil
View
11 activerecord/test/cases/primary_keys_test.rb
@@ -171,4 +171,15 @@ def test_set_primary_key_with_no_connection
assert_equal 'foo', model.primary_key
end
+
+ if current_adapter?(:MysqlAdapter) or current_adapter?(:Mysql2Adapter)
+ def test_primaery_key_method_with_ansi_quotes
+ con = ActiveRecord::Base.connection
+ con.execute("SET SESSION sql_mode='ANSI_QUOTES'")
+ assert_equal "id", con.primary_key("topics")
+ ensure
+ con.reconnect!
+ end
+ end
+
end
Please sign in to comment.
Something went wrong with that request. Please try again.