diff options
author | Ali Ibrahim <aibrahim2k2@gmail.com> | 2019-04-10 14:13:21 -0400 |
---|---|---|
committer | Ali Ibrahim <aibrahim2k2@gmail.com> | 2019-04-11 12:57:19 -0400 |
commit | 6584fb3939dd3892834ed93fa791064d5299cda2 (patch) | |
tree | aa6b25c50f13e543c3eeb35d5f44209d212f6a62 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | b86f32bc8529caa767e166aa10725a0fe1add7b5 (diff) | |
download | rails-6584fb3939dd3892834ed93fa791064d5299cda2.tar.gz rails-6584fb3939dd3892834ed93fa791064d5299cda2.tar.bz2 rails-6584fb3939dd3892834ed93fa791064d5299cda2.zip |
Cache full MySQL version in schema cache
* The database version is cached in all the adapters, but this didn't include
the full MySQL version. Anything that uses the full MySQL version would need
to query the database to get that data even if they're using the schema
cache.
* Now the full MySQL version will be cached in the schema cache via the
Version object.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index ca8bbc14da..75bc94c49c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -51,12 +51,20 @@ module ActiveRecord end end + class Version < AbstractAdapter::Version # :nodoc: + def initialize(version_string, full_version_string) + super + end + end + def initialize(connection, logger, connection_options, config) super(connection, logger, config) end def get_database_version #:nodoc: - Version.new(version_string) + full_version_string = get_full_version + version_string = version_string(full_version_string) + Version.new(version_string, full_version_string) end def mariadb? # :nodoc: @@ -801,8 +809,8 @@ module ActiveRecord MismatchedForeignKey.new(options) end - def version_string - full_version.match(/^(?:5\.5\.5-)?(\d+\.\d+\.\d+)/)[1] + def version_string(full_version_string) # :nodoc: + full_version_string.match(/^(?:5\.5\.5-)?(\d+\.\d+\.\d+)/)[1] end class MysqlString < Type::String # :nodoc: |