diff options
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/mysql/quoting.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/mysql/quoting.rb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb b/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb index 84354c0187..740832d6b8 100644 --- a/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb +++ b/activerecord/lib/active_record/connection_adapters/mysql/quoting.rb @@ -40,13 +40,22 @@ module ActiveRecord COLUMN_NAME_WITH_ORDER end - COLUMN_NAME = /\A(?:(`?)\w+\k<1>\.)?(`?)\w+\k<2>\z/i + COLUMN_NAME = / + \A + ( + (?:\w+\.|`\w+`\.)?(?:\w+|`\w+`) + ) + (?:\s*,\s*\g<1>)* + \z + /ix COLUMN_NAME_WITH_ORDER = / \A - (?:(`?)\w+\k<1>\.)? - (`?)\w+\k<2> - (?:\s+ASC|\s+DESC)? + ( + (?:\w+\.|`\w+`\.)?(?:\w+|`\w+`) + (?:\s+ASC|\s+DESC)? + ) + (?:\s*,\s*\g<1>)* \z /ix |