activerecord-sqlserver-adapter 4.2.4 → 4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +18 -0
 - data/CODE_OF_CONDUCT.md +31 -0
 - data/Gemfile +7 -4
 - data/README.md +4 -3
 - data/RUNNING_UNIT_TESTS.md +14 -5
 - data/activerecord-sqlserver-adapter.gemspec +3 -2
 - data/appveyor.yml +30 -0
 - data/lib/active_record/connection_adapters/sqlserver/database_statements.rb +16 -0
 - data/lib/active_record/connection_adapters/sqlserver/schema_statements.rb +5 -2
 - data/lib/active_record/connection_adapters/sqlserver/type.rb +0 -2
 - data/lib/active_record/connection_adapters/sqlserver/type/boolean.rb +0 -1
 - data/lib/active_record/connection_adapters/sqlserver/type/date.rb +0 -2
 - data/lib/active_record/connection_adapters/sqlserver/type/datetime.rb +0 -2
 - data/lib/active_record/connection_adapters/sqlserver/type/decimal.rb +0 -1
 - data/lib/active_record/connection_adapters/sqlserver/type/float.rb +0 -2
 - data/lib/active_record/connection_adapters/sqlserver/type/integer.rb +0 -1
 - data/lib/active_record/connection_adapters/sqlserver/type/real.rb +0 -2
 - data/lib/active_record/connection_adapters/sqlserver/type/smalldatetime.rb +0 -2
 - data/lib/active_record/connection_adapters/sqlserver/type/time.rb +0 -3
 - data/lib/active_record/connection_adapters/sqlserver/version.rb +1 -1
 - data/lib/active_record/connection_adapters/sqlserver_column.rb +8 -0
 - data/test/appveyor/dbsetup.ps1 +27 -0
 - data/test/appveyor/dbsetup.sql +11 -0
 - data/test/cases/coerced_tests.rb +30 -38
 - data/test/cases/column_test_sqlserver.rb +6 -6
 - data/test/cases/helper_sqlserver.rb +2 -3
 - data/test/cases/rake_test_sqlserver.rb +4 -0
 - data/test/cases/schema_dumper_test_sqlserver.rb +8 -2
 - data/test/cases/specific_schema_test_sqlserver.rb +6 -0
 - data/test/config.yml +4 -1
 - data/test/models/sqlserver/object_default.rb +3 -0
 - data/test/schema/sqlserver_specific_schema.rb +8 -0
 - metadata +15 -8
 - data/lib/active_record/connection_adapters/sqlserver/type/castable.rb +0 -15
 - data/lib/active_record/connection_adapters/sqlserver/type/core_ext/value.rb +0 -39
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 54dab2a4b34d04529678804457e654cdf3c436b9
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 1719214a6ddc266cd8fad7dec68005cabd6ad9e8
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 3ffd8586472a4bdbbd6a113919085029268a134b4eecc5b924c129e151518aa61a287f7e5120f5c755e28addb73a4a546136952b18d35265a78df8f775bce015
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 2ca086d538c72d86cd508e55cac63ebad56261dcc71eb4f13ae2bd8dd94cb4835b20a7e32acfe9ab551297b201d3af6eaa033fafe139ac1a7a6765d015662e6b
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,12 +1,30 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
      
 2 
     | 
    
         
            +
            ## v4.2.5
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            #### Removed
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            * Remove Type::Castable hacks for core type objects to force trust the DB. Allows Rails 5 attributes.
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            #### Fixed
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
            * Tests for decimal scale. See Rails commit. http://git.io/vGotB
         
     | 
| 
      
 11 
     | 
    
         
            +
            * Improve case comparision performace per column. Fixes #414
         
     | 
| 
      
 12 
     | 
    
         
            +
            * DB rollback when reversable add_column has several options. Fixes #359
         
     | 
| 
      
 13 
     | 
    
         
            +
            * Better column definitions for default objects. Fixes #412
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       2 
16 
     | 
    
         
             
            ## v4.2.4
         
     | 
| 
       3 
17 
     | 
    
         | 
| 
      
 18 
     | 
    
         
            +
            #### Fixed
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
       4 
20 
     | 
    
         
             
            * Compatible with Rails 4.2.1.
         
     | 
| 
       5 
21 
     | 
    
         
             
            * Fix schema limit reflection for char/varchar. Fixes #394.
         
     | 
| 
       6 
22 
     | 
    
         | 
| 
       7 
23 
     | 
    
         | 
| 
       8 
24 
     | 
    
         
             
            ## v4.2.3
         
     | 
| 
       9 
25 
     | 
    
         | 
| 
      
 26 
     | 
    
         
            +
            #### Fixed
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
       10 
28 
     | 
    
         
             
            * Fix SET defaults when using Azure.
         
     | 
| 
       11 
29 
     | 
    
         
             
            * Test insert 4-byte unicode chars.
         
     | 
| 
       12 
30 
     | 
    
         
             
            * Make rollback transaction transcount aware for implicit error rollbacks. Fixes #390
         
     | 
    
        data/CODE_OF_CONDUCT.md
    ADDED
    
    | 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Contributor Code of Conduct
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            As contributors and maintainers of this project, we pledge to respect all
         
     | 
| 
      
 4 
     | 
    
         
            +
            people who contribute through reporting issues, posting feature requests,
         
     | 
| 
      
 5 
     | 
    
         
            +
            updating documentation, submitting pull requests or patches, and other
         
     | 
| 
      
 6 
     | 
    
         
            +
            activities.
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            We are committed to making participation in this project a harassment-free
         
     | 
| 
      
 9 
     | 
    
         
            +
            experience for everyone, regardless of level of experience, gender, gender
         
     | 
| 
      
 10 
     | 
    
         
            +
            identity and expression, sexual orientation, disability, personal appearance,
         
     | 
| 
      
 11 
     | 
    
         
            +
            body size, race, ethnicity, age, or religion.
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            Examples of unacceptable behavior by participants include the use of sexual
         
     | 
| 
      
 14 
     | 
    
         
            +
            language or imagery, derogatory comments or personal attacks, trolling, public
         
     | 
| 
      
 15 
     | 
    
         
            +
            or private harassment, insults, or other unprofessional conduct.
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            Project maintainers have the right and responsibility to remove, edit, or
         
     | 
| 
      
 18 
     | 
    
         
            +
            reject comments, commits, code, wiki edits, issues, and other contributions
         
     | 
| 
      
 19 
     | 
    
         
            +
            that are not aligned to this Code of Conduct. Project maintainers who do not
         
     | 
| 
      
 20 
     | 
    
         
            +
            follow the Code of Conduct may be removed from the project team.
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            This code of conduct applies both within project spaces and in public spaces
         
     | 
| 
      
 23 
     | 
    
         
            +
            when an individual is representing the project or its community.
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            Instances of abusive, harassing, or otherwise unacceptable behavior may be
         
     | 
| 
      
 26 
     | 
    
         
            +
            reported by opening an issue or contacting one or more of the project
         
     | 
| 
      
 27 
     | 
    
         
            +
            maintainers.
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            This Code of Conduct is adapted from the Contributor Covenant
         
     | 
| 
      
 30 
     | 
    
         
            +
            (http://contributor-covenant.org), version 1.1.0, available at
         
     | 
| 
      
 31 
     | 
    
         
            +
            http://contributor-covenant.org/version/1/1/0/
         
     | 
    
        data/Gemfile
    CHANGED
    
    | 
         @@ -2,6 +2,7 @@ source 'https://rubygems.org' 
     | 
|
| 
       2 
2 
     | 
    
         
             
            gemspec
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
4 
     | 
    
         
             
            gem 'bcrypt'
         
     | 
| 
      
 5 
     | 
    
         
            +
            gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
         
     | 
| 
       5 
6 
     | 
    
         | 
| 
       6 
7 
     | 
    
         
             
            if RbConfig::CONFIG["host_os"] =~ /darwin/
         
     | 
| 
       7 
8 
     | 
    
         
             
              gem 'terminal-notifier-guard'
         
     | 
| 
         @@ -17,8 +18,11 @@ else 
     | 
|
| 
       17 
18 
     | 
    
         
             
                spec = eval(File.read('activerecord-sqlserver-adapter.gemspec'))
         
     | 
| 
       18 
19 
     | 
    
         
             
                version = spec.dependencies.detect{ |d|d.name == 'activerecord' }.requirement.requirements.first.last.version
         
     | 
| 
       19 
20 
     | 
    
         
             
                major, minor, tiny = version.split('.')
         
     | 
| 
       20 
     | 
    
         
            -
                uri = URI.parse " 
     | 
| 
       21 
     | 
    
         
            -
                 
     | 
| 
      
 21 
     | 
    
         
            +
                uri = URI.parse "https://rubygems.org/api/v1/versions/activerecord.yaml"
         
     | 
| 
      
 22 
     | 
    
         
            +
                http = Net::HTTP.new(uri.host, uri.port)
         
     | 
| 
      
 23 
     | 
    
         
            +
                http.use_ssl = true
         
     | 
| 
      
 24 
     | 
    
         
            +
                http.verify_mode = OpenSSL::SSL::VERIFY_NONE
         
     | 
| 
      
 25 
     | 
    
         
            +
                YAML.load(http.request(Net::HTTP::Get.new(uri.request_uri)).body).select do |data|
         
     | 
| 
       22 
26 
     | 
    
         
             
                  a, b, c = data['number'].split('.')
         
     | 
| 
       23 
27 
     | 
    
         
             
                  !data['prerelease'] && major == a && (minor.nil? || minor == b)
         
     | 
| 
       24 
28 
     | 
    
         
             
                end.first['number']
         
     | 
| 
         @@ -34,8 +38,7 @@ group :tinytds do 
     | 
|
| 
       34 
38 
     | 
    
         
             
              if ENV['TINYTDS_SOURCE']
         
     | 
| 
       35 
39 
     | 
    
         
             
                gem 'tiny_tds', path: ENV['TINYTDS_SOURCE']
         
     | 
| 
       36 
40 
     | 
    
         
             
              else
         
     | 
| 
       37 
     | 
    
         
            -
                 
     | 
| 
       38 
     | 
    
         
            -
                gem 'tiny_tds', git:"https://github.com/rails-sqlserver/tiny_tds.git"
         
     | 
| 
      
 41 
     | 
    
         
            +
                gem 'tiny_tds'
         
     | 
| 
       39 
42 
     | 
    
         
             
              end
         
     | 
| 
       40 
43 
     | 
    
         
             
            end
         
     | 
| 
       41 
44 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,14 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         | 
| 
       2 
2 
     | 
    
         
             
            # ActiveRecord SQL Server Adapter. For SQL Server 2012 And Higher.
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            [](https://rubygems.org/gems/activerecord-sqlserver-adapter)
         
     | 
| 
       5 
     | 
    
         
            -
            [](https://gitter.im/rails-sqlserver/activerecord-sqlserver-adapter)
         
     | 
| 
      
 4 
     | 
    
         
            +
            [](https://ci.appveyor.com/project/rails-sqlserver/activerecord-sqlserver-adapter/branch/master) [](https://rubygems.org/gems/activerecord-sqlserver-adapter) [](https://gitter.im/rails-sqlserver/activerecord-sqlserver-adapter)
         
     | 
| 
       6 
5 
     | 
    
         | 
| 
       7 
6 
     | 
    
         
             
            
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
8 
     | 
    
         
             
            ## Code Name Kantishna
         
     | 
| 
       10 
9 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
            The SQL Server adapter for ActiveRecord v4.2 using SQL Server 2012 or higher. 
     | 
| 
      
 10 
     | 
    
         
            +
            The SQL Server adapter for ActiveRecord v4.2 using SQL Server 2012 or higher.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            Interested in older versions? We follow a rational versioning policy that tracks Rails. That means that our 4.2.x version of the adapter is only for the latest 4.2 version of Rails. If you need the adapter for SQL Server 2008 or 2005, you are still in the right spot. Just install the latest 3.2.x to 4.1.x version of the adapter that matches your Rails version. We also have stable branches for each major/minor release of ActiveRecord.
         
     | 
| 
       12 
13 
     | 
    
         | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
            #### Executing Stored Procedures
         
     | 
    
        data/RUNNING_UNIT_TESTS.md
    CHANGED
    
    | 
         @@ -9,11 +9,7 @@ This process is much easier than it has been before! 
     | 
|
| 
       9 
9 
     | 
    
         
             
            Default testing uses DBLIB with TinyTDS.
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            * Setup two databases in SQL Server, [activerecord_unittest] and [activerecord_unittest2]
         
     | 
| 
       12 
     | 
    
         
            -
            * Create a [rails] user with an empty password and give it a [db_owner] role to both DBs. Some tests require a server role of [sysadmin] too.
         
     | 
| 
       13 
     | 
    
         
            -
              - http://twitpic.com/9bsiyp/full
         
     | 
| 
       14 
     | 
    
         
            -
              - http://twitpic.com/9bsj7z/full
         
     | 
| 
       15 
     | 
    
         
            -
              - http://twitpic.com/9bsjdx/full
         
     | 
| 
       16 
     | 
    
         
            -
              - http://twitpic.com/9bsjl7/full
         
     | 
| 
      
 12 
     | 
    
         
            +
            * Create a [rails] user with an empty password and give it a [db_owner] role to both DBs. Some tests require a server role of [sysadmin] too. More details below with DDL SQL examples.
         
     | 
| 
       17 
13 
     | 
    
         
             
            * $ bundle install
         
     | 
| 
       18 
14 
     | 
    
         
             
            * $ bundle exec rake test ACTIVERECORD_UNITTEST_HOST='my.db.net'
         
     | 
| 
       19 
15 
     | 
    
         | 
| 
         @@ -34,6 +30,19 @@ The default names for the test databases are `activerecord_unittest` and `active 
     | 
|
| 
       34 
30 
     | 
    
         | 
| 
       35 
31 
     | 
    
         
             
            The connection files make certain assumptions. For instance, the ODBC connection assumes you have a DSN setup that matches the name of the default database names. Remember too you have to set an environment variable for the DSN of the adapter, see the connection.rb file that matches your connection mode for details.
         
     | 
| 
       36 
32 
     | 
    
         | 
| 
      
 33 
     | 
    
         
            +
            ```sql
         
     | 
| 
      
 34 
     | 
    
         
            +
            CREATE DATABASE [activerecord_unittest];
         
     | 
| 
      
 35 
     | 
    
         
            +
            CREATE DATABASE [activerecord_unittest2];
         
     | 
| 
      
 36 
     | 
    
         
            +
            GO
         
     | 
| 
      
 37 
     | 
    
         
            +
            CREATE LOGIN [rails] WITH PASSWORD = '', CHECK_POLICY = OFF, DEFAULT_DATABASE = [activerecord_unittest];
         
     | 
| 
      
 38 
     | 
    
         
            +
            GO
         
     | 
| 
      
 39 
     | 
    
         
            +
            USE [activerecord_unittest];
         
     | 
| 
      
 40 
     | 
    
         
            +
            CREATE USER [rails] FOR LOGIN [rails];
         
     | 
| 
      
 41 
     | 
    
         
            +
            GO
         
     | 
| 
      
 42 
     | 
    
         
            +
            EXEC sp_addrolemember N'db_owner', N'rails';
         
     | 
| 
      
 43 
     | 
    
         
            +
            EXEC master..sp_addsrvrolemember @loginame = N'rails', @rolename = N'sysadmin'
         
     | 
| 
      
 44 
     | 
    
         
            +
            GO
         
     | 
| 
      
 45 
     | 
    
         
            +
            ```
         
     | 
| 
       37 
46 
     | 
    
         | 
| 
       38 
47 
     | 
    
         
             
            ## Cloning The Repos
         
     | 
| 
       39 
48 
     | 
    
         | 
| 
         @@ -6,11 +6,12 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       6 
6 
     | 
    
         
             
              spec.name          = 'activerecord-sqlserver-adapter'
         
     | 
| 
       7 
7 
     | 
    
         
             
              spec.version       = ActiveRecord::ConnectionAdapters::SQLServer::Version::VERSION
         
     | 
| 
       8 
8 
     | 
    
         
             
              spec.platform      = Gem::Platform::RUBY
         
     | 
| 
      
 9 
     | 
    
         
            +
              spec.license       = 'MIT'
         
     | 
| 
       9 
10 
     | 
    
         
             
              spec.authors       = ['Ken Collins', 'Anna Carey', 'Will Bond', 'Murray Steele', 'Shawn Balestracci', 'Joe Rafaniello', 'Tom Ward']
         
     | 
| 
       10 
11 
     | 
    
         
             
              spec.email         = ['ken@metaskills.net', 'will@wbond.net']
         
     | 
| 
       11 
12 
     | 
    
         
             
              spec.homepage      = 'http://github.com/rails-sqlserver/activerecord-sqlserver-adapter'
         
     | 
| 
       12 
13 
     | 
    
         
             
              spec.summary       = 'ActiveRecord SQL Server Adapter.'
         
     | 
| 
       13 
     | 
    
         
            -
              spec.description   =  
     | 
| 
      
 14 
     | 
    
         
            +
              spec.description   = 'ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.'
         
     | 
| 
       14 
15 
     | 
    
         
             
              spec.files         = `git ls-files -z`.split("\x0")
         
     | 
| 
       15 
16 
     | 
    
         
             
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
       16 
17 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
         @@ -24,6 +25,6 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       24 
25 
     | 
    
         
             
              spec.add_development_dependency 'minitest-spec-rails'
         
     | 
| 
       25 
26 
     | 
    
         
             
              spec.add_development_dependency 'mocha'
         
     | 
| 
       26 
27 
     | 
    
         
             
              spec.add_development_dependency 'nokogiri'
         
     | 
| 
       27 
     | 
    
         
            -
              spec.add_development_dependency ' 
     | 
| 
      
 28 
     | 
    
         
            +
              spec.add_development_dependency 'byebug'
         
     | 
| 
       28 
29 
     | 
    
         
             
              spec.add_development_dependency 'rake'
         
     | 
| 
       29 
30 
     | 
    
         
             
            end
         
     | 
    
        data/appveyor.yml
    ADDED
    
    | 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            version: 4.2.5.{build}
         
     | 
| 
      
 2 
     | 
    
         
            +
            init:
         
     | 
| 
      
 3 
     | 
    
         
            +
              - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
         
     | 
| 
      
 4 
     | 
    
         
            +
              - SET PATH=C:\MinGW\msys\1.0\bin;%PATH%
         
     | 
| 
      
 5 
     | 
    
         
            +
              - SET RAKEOPT=-rdevkit
         
     | 
| 
      
 6 
     | 
    
         
            +
            clone_depth: 5
         
     | 
| 
      
 7 
     | 
    
         
            +
            skip_tags: true
         
     | 
| 
      
 8 
     | 
    
         
            +
            matrix:
         
     | 
| 
      
 9 
     | 
    
         
            +
              fast_finish: true
         
     | 
| 
      
 10 
     | 
    
         
            +
            install:
         
     | 
| 
      
 11 
     | 
    
         
            +
              - ruby --version
         
     | 
| 
      
 12 
     | 
    
         
            +
              - gem --version
         
     | 
| 
      
 13 
     | 
    
         
            +
              - bundle install --without odbc
         
     | 
| 
      
 14 
     | 
    
         
            +
            build: off
         
     | 
| 
      
 15 
     | 
    
         
            +
            test_script:
         
     | 
| 
      
 16 
     | 
    
         
            +
              - powershell -File "%APPVEYOR_BUILD_FOLDER%\test\appveyor\dbsetup.ps1"
         
     | 
| 
      
 17 
     | 
    
         
            +
              - timeout /t 4 /nobreak > NUL
         
     | 
| 
      
 18 
     | 
    
         
            +
              - ps: Start-Service 'MSSQL$SQL2014'
         
     | 
| 
      
 19 
     | 
    
         
            +
              - timeout /t 4 /nobreak > NUL
         
     | 
| 
      
 20 
     | 
    
         
            +
              - sqlcmd -S ".\SQL2014" -U sa -P Password12! -i %APPVEYOR_BUILD_FOLDER%\test\appveyor\dbsetup.sql
         
     | 
| 
      
 21 
     | 
    
         
            +
              - bundle exec rake test ACTIVERECORD_UNITTEST_DATASERVER="localhost\SQL2014"
         
     | 
| 
      
 22 
     | 
    
         
            +
              - ps: Stop-Service 'MSSQL$SQL2014'
         
     | 
| 
      
 23 
     | 
    
         
            +
              - ps: Start-Service 'MSSQL$SQL2012SP1'
         
     | 
| 
      
 24 
     | 
    
         
            +
              - timeout /t 4 /nobreak > NUL
         
     | 
| 
      
 25 
     | 
    
         
            +
              - sqlcmd -S ".\SQL2012SP1" -U sa -P Password12! -i %APPVEYOR_BUILD_FOLDER%\test\appveyor\dbsetup.sql
         
     | 
| 
      
 26 
     | 
    
         
            +
              - bundle exec rake test ACTIVERECORD_UNITTEST_DATASERVER="localhost\SQL2012SP1"
         
     | 
| 
      
 27 
     | 
    
         
            +
            environment:
         
     | 
| 
      
 28 
     | 
    
         
            +
              matrix:
         
     | 
| 
      
 29 
     | 
    
         
            +
                - ruby_version: "200-x64"
         
     | 
| 
      
 30 
     | 
    
         
            +
                - ruby_version: "21-x64"
         
     | 
| 
         @@ -87,6 +87,22 @@ module ActiveRecord 
     | 
|
| 
       87 
87 
     | 
    
         
             
                      Arel::Nodes::Bin.new(node)
         
     | 
| 
       88 
88 
     | 
    
         
             
                    end
         
     | 
| 
       89 
89 
     | 
    
         | 
| 
      
 90 
     | 
    
         
            +
                    def case_sensitive_comparison(table, attribute, column, value)
         
     | 
| 
      
 91 
     | 
    
         
            +
                      if column.case_sensitive?
         
     | 
| 
      
 92 
     | 
    
         
            +
                        table[attribute].eq(value)
         
     | 
| 
      
 93 
     | 
    
         
            +
                      else
         
     | 
| 
      
 94 
     | 
    
         
            +
                        super
         
     | 
| 
      
 95 
     | 
    
         
            +
                      end
         
     | 
| 
      
 96 
     | 
    
         
            +
                    end
         
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
      
 98 
     | 
    
         
            +
                    def case_insensitive_comparison(table, attribute, column, value)
         
     | 
| 
      
 99 
     | 
    
         
            +
                      if column.case_sensitive?
         
     | 
| 
      
 100 
     | 
    
         
            +
                        super
         
     | 
| 
      
 101 
     | 
    
         
            +
                      else
         
     | 
| 
      
 102 
     | 
    
         
            +
                        table[attribute].eq(value)
         
     | 
| 
      
 103 
     | 
    
         
            +
                      end
         
     | 
| 
      
 104 
     | 
    
         
            +
                    end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
       90 
106 
     | 
    
         
             
                    # === SQLServer Specific ======================================== #
         
     | 
| 
       91 
107 
     | 
    
         | 
| 
       92 
108 
     | 
    
         
             
                    def execute_procedure(proc_name, *variables)
         
     | 
| 
         @@ -45,7 +45,7 @@ module ActiveRecord 
     | 
|
| 
       45 
45 
     | 
    
         
             
                    def columns(table_name, _name = nil)
         
     | 
| 
       46 
46 
     | 
    
         
             
                      return [] if table_name.blank?
         
     | 
| 
       47 
47 
     | 
    
         
             
                      column_definitions(table_name).map do |ci|
         
     | 
| 
       48 
     | 
    
         
            -
                        sqlserver_options = ci.slice :ordinal_position, :is_primary, :is_identity, :default_function, :table_name
         
     | 
| 
      
 48 
     | 
    
         
            +
                        sqlserver_options = ci.slice :ordinal_position, :is_primary, :is_identity, :default_function, :table_name, :collation
         
     | 
| 
       49 
49 
     | 
    
         
             
                        cast_type = lookup_cast_type(ci[:type])
         
     | 
| 
       50 
50 
     | 
    
         
             
                        new_column ci[:name], ci[:default_value], cast_type, ci[:type], ci[:null], sqlserver_options
         
     | 
| 
       51 
51 
     | 
    
         
             
                      end
         
     | 
| 
         @@ -60,7 +60,7 @@ module ActiveRecord 
     | 
|
| 
       60 
60 
     | 
    
         
             
                      rename_table_indexes(table_name, new_name)
         
     | 
| 
       61 
61 
     | 
    
         
             
                    end
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                    def remove_column(table_name, column_name,  
     | 
| 
      
 63 
     | 
    
         
            +
                    def remove_column(table_name, column_name, type = nil, options = {})
         
     | 
| 
       64 
64 
     | 
    
         
             
                      raise ArgumentError.new('You must specify at least one column name.  Example: remove_column(:people, :first_name)') if column_name.is_a? Array
         
     | 
| 
       65 
65 
     | 
    
         
             
                      remove_check_constraints(table_name, column_name)
         
     | 
| 
       66 
66 
     | 
    
         
             
                      remove_default_constraint(table_name, column_name)
         
     | 
| 
         @@ -233,6 +233,7 @@ module ActiveRecord 
     | 
|
| 
       233 
233 
     | 
    
         
             
                        columns.NUMERIC_SCALE AS numeric_scale,
         
     | 
| 
       234 
234 
     | 
    
         
             
                        columns.NUMERIC_PRECISION AS numeric_precision,
         
     | 
| 
       235 
235 
     | 
    
         
             
                        columns.DATETIME_PRECISION AS datetime_precision,
         
     | 
| 
      
 236 
     | 
    
         
            +
                        columns.COLLATION_NAME AS collation,
         
     | 
| 
       236 
237 
     | 
    
         
             
                        columns.ordinal_position,
         
     | 
| 
       237 
238 
     | 
    
         
             
                        CASE
         
     | 
| 
       238 
239 
     | 
    
         
             
                          WHEN columns.DATA_TYPE IN ('nchar','nvarchar','char','varchar') THEN columns.CHARACTER_MAXIMUM_LENGTH
         
     | 
| 
         @@ -311,6 +312,8 @@ module ActiveRecord 
     | 
|
| 
       311 
312 
     | 
    
         
             
                          when /\A\(N'(.*)'\)\Z/m
         
     | 
| 
       312 
313 
     | 
    
         
             
                            string_literal = SQLServer::Utils.unquote_string(Regexp.last_match[1])
         
     | 
| 
       313 
314 
     | 
    
         
             
                            [string_literal, nil]
         
     | 
| 
      
 315 
     | 
    
         
            +
                          when /CREATE DEFAULT/mi
         
     | 
| 
      
 316 
     | 
    
         
            +
                            [nil, nil]
         
     | 
| 
       314 
317 
     | 
    
         
             
                          else
         
     | 
| 
       315 
318 
     | 
    
         
             
                            type = case ci[:type]
         
     | 
| 
       316 
319 
     | 
    
         
             
                                   when /smallint|int|bigint/ then ci[:_type]
         
     | 
| 
         @@ -1,6 +1,4 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'active_record/type'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'active_record/connection_adapters/sqlserver/type/core_ext/value.rb'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'active_record/connection_adapters/sqlserver/type/castable.rb'
         
     | 
| 
       4 
2 
     | 
    
         
             
            require 'active_record/connection_adapters/sqlserver/type/quoter.rb'
         
     | 
| 
       5 
3 
     | 
    
         
             
            # Exact Numerics
         
     | 
| 
       6 
4 
     | 
    
         
             
            require 'active_record/connection_adapters/sqlserver/type/integer.rb'
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            Write-Output "Setting up..."
         
     | 
| 
      
 3 
     | 
    
         
            +
            [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null
         
     | 
| 
      
 4 
     | 
    
         
            +
            [reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | Out-Null
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Write-Output "Setting variables..."
         
     | 
| 
      
 7 
     | 
    
         
            +
            $serverName = $env:COMPUTERNAME
         
     | 
| 
      
 8 
     | 
    
         
            +
            $instances = @('SQL2012SP1', 'SQL2014')
         
     | 
| 
      
 9 
     | 
    
         
            +
            $smo = 'Microsoft.SqlServer.Management.Smo.'
         
     | 
| 
      
 10 
     | 
    
         
            +
            $wmi = new-object ($smo + 'Wmi.ManagedComputer')
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            Write-Output "Configure Instances..."
         
     | 
| 
      
 13 
     | 
    
         
            +
            foreach ($instance in $instances) {
         
     | 
| 
      
 14 
     | 
    
         
            +
              Write-Output "Instance $instance ..."
         
     | 
| 
      
 15 
     | 
    
         
            +
              Write-Output "Enable TCP/IP and port 1433..."
         
     | 
| 
      
 16 
     | 
    
         
            +
              $uri = "ManagedComputer[@Name='$serverName']/ServerInstance[@Name='$instance']/ServerProtocol[@Name='Tcp']"
         
     | 
| 
      
 17 
     | 
    
         
            +
              $tcp = $wmi.GetSmoObject($uri)
         
     | 
| 
      
 18 
     | 
    
         
            +
              $tcp.IsEnabled = $true
         
     | 
| 
      
 19 
     | 
    
         
            +
              foreach ($ipAddress in $Tcp.IPAddresses) {
         
     | 
| 
      
 20 
     | 
    
         
            +
                $ipAddress.IPAddressProperties["TcpDynamicPorts"].Value = ""
         
     | 
| 
      
 21 
     | 
    
         
            +
                $ipAddress.IPAddressProperties["TcpPort"].Value = "1433"
         
     | 
| 
      
 22 
     | 
    
         
            +
              }
         
     | 
| 
      
 23 
     | 
    
         
            +
              $tcp.Alter()
         
     | 
| 
      
 24 
     | 
    
         
            +
            }
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            Set-Service SQLBrowser -StartupType Manual
         
     | 
| 
      
 27 
     | 
    
         
            +
            Start-Service SQLBrowser
         
     | 
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            CREATE DATABASE [activerecord_unittest];
         
     | 
| 
      
 2 
     | 
    
         
            +
            CREATE DATABASE [activerecord_unittest2];
         
     | 
| 
      
 3 
     | 
    
         
            +
            GO
         
     | 
| 
      
 4 
     | 
    
         
            +
            CREATE LOGIN [rails] WITH PASSWORD = '', CHECK_POLICY = OFF, DEFAULT_DATABASE = [activerecord_unittest];
         
     | 
| 
      
 5 
     | 
    
         
            +
            GO
         
     | 
| 
      
 6 
     | 
    
         
            +
            USE [activerecord_unittest];
         
     | 
| 
      
 7 
     | 
    
         
            +
            CREATE USER [rails] FOR LOGIN [rails];
         
     | 
| 
      
 8 
     | 
    
         
            +
            GO
         
     | 
| 
      
 9 
     | 
    
         
            +
            EXEC sp_addrolemember N'db_owner', N'rails';
         
     | 
| 
      
 10 
     | 
    
         
            +
            EXEC master..sp_addsrvrolemember @loginame = N'rails', @rolename = N'sysadmin'
         
     | 
| 
      
 11 
     | 
    
         
            +
            GO
         
     | 
    
        data/test/cases/coerced_tests.rb
    CHANGED
    
    | 
         @@ -1,6 +1,24 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'cases/helper_sqlserver'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         | 
| 
      
 4 
     | 
    
         
            +
            # Windows/Appveyor
         
     | 
| 
      
 5 
     | 
    
         
            +
            if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
         
     | 
| 
      
 6 
     | 
    
         
            +
              # All of these are due to Time.local(2000).zone. See http://git.io/v3t0o
         
     | 
| 
      
 7 
     | 
    
         
            +
              class BelongsToAssociationsTest < ActiveRecord::TestCase
         
     | 
| 
      
 8 
     | 
    
         
            +
                coerce_tests! :test_belongs_to_with_touch_option_on_touch_without_updated_at_attributes
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
              class BasicsTest < ActiveRecord::TestCase
         
     | 
| 
      
 11 
     | 
    
         
            +
                coerce_tests! :test_preserving_time_objects_with_local_time_conversion_to_default_timezone_utc
         
     | 
| 
      
 12 
     | 
    
         
            +
                coerce_tests! :test_preserving_time_objects_with_time_with_zone_conversion_to_default_timezone_local
         
     | 
| 
      
 13 
     | 
    
         
            +
                coerce_tests! :test_preserving_time_objects_with_utc_time_conversion_to_default_timezone_local
         
     | 
| 
      
 14 
     | 
    
         
            +
              end
         
     | 
| 
      
 15 
     | 
    
         
            +
              class DirtyTest < ActiveRecord::TestCase
         
     | 
| 
      
 16 
     | 
    
         
            +
                coerce_tests! :test_save_always_should_update_timestamps_when_serialized_attributes_are_present
         
     | 
| 
      
 17 
     | 
    
         
            +
                coerce_tests! :test_previous_changes # Coupled to above test.
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       4 
22 
     | 
    
         
             
            module ActiveRecord
         
     | 
| 
       5 
23 
     | 
    
         
             
              class AdapterTest < ActiveRecord::TestCase
         
     | 
| 
       6 
24 
     | 
    
         | 
| 
         @@ -46,15 +64,19 @@ class BasicsTest < ActiveRecord::TestCase 
     | 
|
| 
       46 
64 
     | 
    
         
             
                assert_equal "[foo'bar]", quoted
         
     | 
| 
       47 
65 
     | 
    
         
             
              end
         
     | 
| 
       48 
66 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
              #  
     | 
| 
       50 
     | 
    
         
            -
              #  
     | 
| 
       51 
     | 
    
         
            -
              #  
     | 
| 
       52 
     | 
    
         
            -
              # it always comes back as a BigDecimal.
         
     | 
| 
      
 67 
     | 
    
         
            +
              # PENDING: [Rails5.x] Remove coerced tests and use simple symbol types..
         
     | 
| 
      
 68 
     | 
    
         
            +
              # This test has a few problems. First, it would require that we use the
         
     | 
| 
      
 69 
     | 
    
         
            +
              # `Type::SQLServer::BigInteger.new(limit: 8)` for the `world_population` attribute.
         
     | 
| 
       53 
70 
     | 
    
         
             
              coerce_tests! :test_numeric_fields
         
     | 
| 
      
 71 
     | 
    
         
            +
              coerce_tests! :test_numeric_fields_with_scale
         
     | 
| 
       54 
72 
     | 
    
         | 
| 
       55 
73 
     | 
    
         
             
              # Just like PostgreSQLAdapter does.
         
     | 
| 
       56 
74 
     | 
    
         
             
              coerce_tests! :test_respect_internal_encoding
         
     | 
| 
       57 
75 
     | 
    
         | 
| 
      
 76 
     | 
    
         
            +
              # Caused in Rails v4.2.5 by adding `firm_id` column in this http://git.io/vBfMs
         
     | 
| 
      
 77 
     | 
    
         
            +
              # commit. Trust Rails has this covered.
         
     | 
| 
      
 78 
     | 
    
         
            +
              coerce_tests! :test_find_keeps_multiple_group_values
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
       58 
80 
     | 
    
         
             
            end
         
     | 
| 
       59 
81 
     | 
    
         | 
| 
       60 
82 
     | 
    
         | 
| 
         @@ -388,41 +410,8 @@ class BigNumber < ActiveRecord::Base 
     | 
|
| 
       388 
410 
     | 
    
         
             
            end
         
     | 
| 
       389 
411 
     | 
    
         
             
            class MigrationTest < ActiveRecord::TestCase
         
     | 
| 
       390 
412 
     | 
    
         | 
| 
      
 413 
     | 
    
         
            +
              # PENDING: [Rails5.x] Remove coerced tests and use simple symbol types.
         
     | 
| 
       391 
414 
     | 
    
         
             
              coerce_tests! :test_add_table_with_decimals
         
     | 
| 
       392 
     | 
    
         
            -
              def test_add_table_with_decimals_coerced
         
     | 
| 
       393 
     | 
    
         
            -
                Person.connection.drop_table :big_numbers rescue nil
         
     | 
| 
       394 
     | 
    
         
            -
                assert !BigNumber.table_exists?
         
     | 
| 
       395 
     | 
    
         
            -
                GiveMeBigNumbers.up
         
     | 
| 
       396 
     | 
    
         
            -
                assert BigNumber.create(
         
     | 
| 
       397 
     | 
    
         
            -
                  :bank_balance => 1586.43,
         
     | 
| 
       398 
     | 
    
         
            -
                  :big_bank_balance => BigDecimal("1000234000567.95"),
         
     | 
| 
       399 
     | 
    
         
            -
                  :world_population => 6000000000,
         
     | 
| 
       400 
     | 
    
         
            -
                  :my_house_population => 3,
         
     | 
| 
       401 
     | 
    
         
            -
                  :value_of_e => BigDecimal("2.7182818284590452353602875")
         
     | 
| 
       402 
     | 
    
         
            -
                )
         
     | 
| 
       403 
     | 
    
         
            -
                b = BigNumber.first
         
     | 
| 
       404 
     | 
    
         
            -
                assert_not_nil b
         
     | 
| 
       405 
     | 
    
         
            -
                assert_not_nil b.bank_balance
         
     | 
| 
       406 
     | 
    
         
            -
                assert_not_nil b.big_bank_balance
         
     | 
| 
       407 
     | 
    
         
            -
                assert_not_nil b.world_population
         
     | 
| 
       408 
     | 
    
         
            -
                assert_not_nil b.my_house_population
         
     | 
| 
       409 
     | 
    
         
            -
                assert_not_nil b.value_of_e
         
     | 
| 
       410 
     | 
    
         
            -
                # SQLServer: We rock and cast during assignment.
         
     | 
| 
       411 
     | 
    
         
            -
                assert_kind_of BigDecimal, b.world_population
         
     | 
| 
       412 
     | 
    
         
            -
                assert_equal BigDecimal('6000000000'), b.world_population
         
     | 
| 
       413 
     | 
    
         
            -
                # TODO: Our trust the DB policy breaks this expectation. Review SQLServer::Type::Castable module.
         
     | 
| 
       414 
     | 
    
         
            -
                skip
         
     | 
| 
       415 
     | 
    
         
            -
                assert_kind_of Fixnum, b.my_house_population
         
     | 
| 
       416 
     | 
    
         
            -
                assert_equal 3, b.my_house_population
         
     | 
| 
       417 
     | 
    
         
            -
                assert_kind_of BigDecimal, b.bank_balance
         
     | 
| 
       418 
     | 
    
         
            -
                assert_equal BigDecimal("1586.43"), b.bank_balance
         
     | 
| 
       419 
     | 
    
         
            -
                assert_kind_of BigDecimal, b.big_bank_balance
         
     | 
| 
       420 
     | 
    
         
            -
                assert_equal BigDecimal("1000234000567.95"), b.big_bank_balance
         
     | 
| 
       421 
     | 
    
         
            -
                assert_kind_of BigDecimal, b.value_of_e
         
     | 
| 
       422 
     | 
    
         
            -
                assert_equal BigDecimal("2.7182818284590452353602875"), b.value_of_e
         
     | 
| 
       423 
     | 
    
         
            -
                GiveMeBigNumbers.down
         
     | 
| 
       424 
     | 
    
         
            -
                assert_raise(ActiveRecord::StatementInvalid) { BigNumber.first }
         
     | 
| 
       425 
     | 
    
         
            -
              end
         
     | 
| 
       426 
415 
     | 
    
         | 
| 
       427 
416 
     | 
    
         
             
            end
         
     | 
| 
       428 
417 
     | 
    
         | 
| 
         @@ -609,6 +598,9 @@ class SchemaDumperTest < ActiveRecord::TestCase 
     | 
|
| 
       609 
598 
     | 
    
         
             
              # This accidently returns the wrong number because of our tables too.
         
     | 
| 
       610 
599 
     | 
    
         
             
              coerce_tests! :test_types_line_up
         
     | 
| 
       611 
600 
     | 
    
         | 
| 
      
 601 
     | 
    
         
            +
              # This is a poorly written test and really does not catch the bottom'ness it is meant too. Ours throw it off.
         
     | 
| 
      
 602 
     | 
    
         
            +
              coerce_tests! :test_foreign_keys_are_dumped_at_the_bottom_to_circumvent_dependency_issues
         
     | 
| 
      
 603 
     | 
    
         
            +
             
     | 
| 
       612 
604 
     | 
    
         
             
            end
         
     | 
| 
       613 
605 
     | 
    
         | 
| 
       614 
606 
     | 
    
         | 
| 
         @@ -134,7 +134,7 @@ class ColumnTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       134 
134 
     | 
    
         
             
                  type.precision.must_equal         9
         
     | 
| 
       135 
135 
     | 
    
         
             
                  type.scale.must_equal             2
         
     | 
| 
       136 
136 
     | 
    
         
             
                  obj.decimal_9_2 = '1234567.8901'
         
     | 
| 
       137 
     | 
    
         
            -
                  obj.decimal_9_2.must_equal        BigDecimal('1234567. 
     | 
| 
      
 137 
     | 
    
         
            +
                  obj.decimal_9_2.must_equal        BigDecimal('1234567.89')
         
     | 
| 
       138 
138 
     | 
    
         
             
                  obj.save!
         
     | 
| 
       139 
139 
     | 
    
         
             
                  obj.reload.decimal_9_2.must_equal BigDecimal('1234567.89')
         
     | 
| 
       140 
140 
     | 
    
         
             
                end
         
     | 
| 
         @@ -149,7 +149,7 @@ class ColumnTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       149 
149 
     | 
    
         
             
                  type.precision.must_equal         16
         
     | 
| 
       150 
150 
     | 
    
         
             
                  type.scale.must_equal             4
         
     | 
| 
       151 
151 
     | 
    
         
             
                  obj.decimal_16_4 = '1234567.8901001'
         
     | 
| 
       152 
     | 
    
         
            -
                  obj.decimal_16_4.must_equal        BigDecimal('1234567. 
     | 
| 
      
 152 
     | 
    
         
            +
                  obj.decimal_16_4.must_equal        BigDecimal('1234567.8901')
         
     | 
| 
       153 
153 
     | 
    
         
             
                  obj.save!
         
     | 
| 
       154 
154 
     | 
    
         
             
                  obj.reload.decimal_16_4.must_equal BigDecimal('1234567.8901')
         
     | 
| 
       155 
155 
     | 
    
         
             
                end
         
     | 
| 
         @@ -169,7 +169,7 @@ class ColumnTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       169 
169 
     | 
    
         
             
                  type.precision.must_equal         18
         
     | 
| 
       170 
170 
     | 
    
         
             
                  type.scale.must_equal             0
         
     | 
| 
       171 
171 
     | 
    
         
             
                  obj.numeric_18_0 = '192.1'
         
     | 
| 
       172 
     | 
    
         
            -
                  obj.numeric_18_0.must_equal        BigDecimal('192 
     | 
| 
      
 172 
     | 
    
         
            +
                  obj.numeric_18_0.must_equal        BigDecimal('192')
         
     | 
| 
       173 
173 
     | 
    
         
             
                  obj.save!
         
     | 
| 
       174 
174 
     | 
    
         
             
                  obj.reload.numeric_18_0.must_equal BigDecimal('192')
         
     | 
| 
       175 
175 
     | 
    
         
             
                end
         
     | 
| 
         @@ -189,7 +189,7 @@ class ColumnTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       189 
189 
     | 
    
         
             
                  type.precision.must_equal         36
         
     | 
| 
       190 
190 
     | 
    
         
             
                  type.scale.must_equal             2
         
     | 
| 
       191 
191 
     | 
    
         
             
                  obj.numeric_36_2 = '192.123'
         
     | 
| 
       192 
     | 
    
         
            -
                  obj.numeric_36_2.must_equal        BigDecimal('192. 
     | 
| 
      
 192 
     | 
    
         
            +
                  obj.numeric_36_2.must_equal        BigDecimal('192.12')
         
     | 
| 
       193 
193 
     | 
    
         
             
                  obj.save!
         
     | 
| 
       194 
194 
     | 
    
         
             
                  obj.reload.numeric_36_2.must_equal BigDecimal('192.12')
         
     | 
| 
       195 
195 
     | 
    
         
             
                end
         
     | 
| 
         @@ -209,7 +209,7 @@ class ColumnTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       209 
209 
     | 
    
         
             
                  type.precision.must_equal         19
         
     | 
| 
       210 
210 
     | 
    
         
             
                  type.scale.must_equal             4
         
     | 
| 
       211 
211 
     | 
    
         
             
                  obj.money = '922337203685477.58061'
         
     | 
| 
       212 
     | 
    
         
            -
                  obj.money.must_equal              BigDecimal('922337203685477. 
     | 
| 
      
 212 
     | 
    
         
            +
                  obj.money.must_equal              BigDecimal('922337203685477.5806')
         
     | 
| 
       213 
213 
     | 
    
         
             
                  obj.save!
         
     | 
| 
       214 
214 
     | 
    
         
             
                  obj.reload.money.must_equal       BigDecimal('922337203685477.5806')
         
     | 
| 
       215 
215 
     | 
    
         
             
                end
         
     | 
| 
         @@ -229,7 +229,7 @@ class ColumnTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       229 
229 
     | 
    
         
             
                  type.precision.must_equal         10
         
     | 
| 
       230 
230 
     | 
    
         
             
                  type.scale.must_equal             4
         
     | 
| 
       231 
231 
     | 
    
         
             
                  obj.smallmoney = '214748.36461'
         
     | 
| 
       232 
     | 
    
         
            -
                  obj.smallmoney.must_equal        BigDecimal('214748. 
     | 
| 
      
 232 
     | 
    
         
            +
                  obj.smallmoney.must_equal        BigDecimal('214748.3646')
         
     | 
| 
       233 
233 
     | 
    
         
             
                  obj.save!
         
     | 
| 
       234 
234 
     | 
    
         
             
                  obj.reload.smallmoney.must_equal BigDecimal('214748.3646')
         
     | 
| 
       235 
235 
     | 
    
         
             
                end
         
     | 
| 
         @@ -20,14 +20,13 @@ module ActiveRecord 
     | 
|
| 
       20 
20 
     | 
    
         
             
                  def connection_mode_dblib? ; ActiveRecord::Base.connection.instance_variable_get(:@connection_options)[:mode] == :dblib ; end
         
     | 
| 
       21 
21 
     | 
    
         
             
                  def connection_mode_odbc? ; ActiveRecord::Base.connection.instance_variable_get(:@connection_options)[:mode] == :odbc ; end
         
     | 
| 
       22 
22 
     | 
    
         
             
                  def sqlserver_azure? ; ActiveRecord::Base.connection.sqlserver_azure? ; end
         
     | 
| 
      
 23 
     | 
    
         
            +
                  def host_windows? ; RbConfig::CONFIG['host_os'] =~ /mswin|mingw/ ; end
         
     | 
| 
       23 
24 
     | 
    
         
             
                end
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                private
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
26 
     | 
    
         
             
                def connection_mode_dblib? ; self.class.connection_mode_dblib? ; end
         
     | 
| 
       29 
27 
     | 
    
         
             
                def connection_mode_odbc? ; self.class.connection_mode_odbc? ; end
         
     | 
| 
       30 
28 
     | 
    
         
             
                def sqlserver_azure? ; self.class.sqlserver_azure? ; end
         
     | 
| 
      
 29 
     | 
    
         
            +
                def host_windows? ; self.class.host_windows? ; end
         
     | 
| 
       31 
30 
     | 
    
         | 
| 
       32 
31 
     | 
    
         
             
                def connection
         
     | 
| 
       33 
32 
     | 
    
         
             
                  ActiveRecord::Base.connection
         
     | 
| 
         @@ -120,6 +120,8 @@ class SQLServerRakeStructureDumpLoadTest < SQLServerRakeTest 
     | 
|
| 
       120 
120 
     | 
    
         
             
              end
         
     | 
| 
       121 
121 
     | 
    
         | 
| 
       122 
122 
     | 
    
         
             
              it 'dumps structure and accounts for defncopy oddities' do
         
     | 
| 
      
 123 
     | 
    
         
            +
                # CHANGED: [TinyTDS] When utilities are available http://git.io/v3tBk
         
     | 
| 
      
 124 
     | 
    
         
            +
                skip if host_windows?
         
     | 
| 
       123 
125 
     | 
    
         
             
                db_tasks.structure_dump configuration, filename
         
     | 
| 
       124 
126 
     | 
    
         
             
                filedata.wont_match %r{\AUSE.*\z}
         
     | 
| 
       125 
127 
     | 
    
         
             
                filedata.wont_match %r{\AGO.*\z}
         
     | 
| 
         @@ -129,6 +131,8 @@ class SQLServerRakeStructureDumpLoadTest < SQLServerRakeTest 
     | 
|
| 
       129 
131 
     | 
    
         
             
              end
         
     | 
| 
       130 
132 
     | 
    
         | 
| 
       131 
133 
     | 
    
         
             
              it 'can load dumped structure' do
         
     | 
| 
      
 134 
     | 
    
         
            +
                # CHANGED: [TinyTDS] When utilities are available http://git.io/v3tBk
         
     | 
| 
      
 135 
     | 
    
         
            +
                skip if host_windows?
         
     | 
| 
       132 
136 
     | 
    
         
             
                db_tasks.structure_dump configuration, filename
         
     | 
| 
       133 
137 
     | 
    
         
             
                filedata.must_match %r{CREATE TABLE dbo\.users}
         
     | 
| 
       134 
138 
     | 
    
         
             
                db_tasks.purge(configuration)
         
     | 
| 
         @@ -100,12 +100,12 @@ class SchemaDumperTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       100 
100 
     | 
    
         
             
                assert_line :binary_basic_col,  type: 'binary_basic', limit: '1',           precision: nil,   scale: nil,  default: nil
         
     | 
| 
       101 
101 
     | 
    
         
             
                assert_line :varbinary_col,     type: 'varbinary',    limit: '8000',        precision: nil,   scale: nil,  default: nil
         
     | 
| 
       102 
102 
     | 
    
         
             
                assert_line :uuid_col,          type: 'uuid',         limit: nil,           precision: nil,   scale: nil,  default: nil
         
     | 
| 
       103 
     | 
    
         
            -
                assert_line :sstimestamp_col, 
     | 
| 
      
 103 
     | 
    
         
            +
                assert_line :sstimestamp_col,   type: 'ss_timestamp', limit: nil,           precision: nil,   scale: nil,  default: nil
         
     | 
| 
       104 
104 
     | 
    
         
             
              end
         
     | 
| 
       105 
105 
     | 
    
         | 
| 
       106 
106 
     | 
    
         
             
              # Special Cases
         
     | 
| 
       107 
107 
     | 
    
         | 
| 
       108 
     | 
    
         
            -
              it ' 
     | 
| 
      
 108 
     | 
    
         
            +
              it 'honor nonstandard primary keys' do
         
     | 
| 
       109 
109 
     | 
    
         
             
                generate_schema_for_table('movies') do |output|
         
     | 
| 
       110 
110 
     | 
    
         
             
                  match = output.match(%r{create_table "movies"(.*)do})
         
     | 
| 
       111 
111 
     | 
    
         
             
                  assert_not_nil(match, "nonstandardpk table not found")
         
     | 
| 
         @@ -113,6 +113,12 @@ class SchemaDumperTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       113 
113 
     | 
    
         
             
                end
         
     | 
| 
       114 
114 
     | 
    
         
             
              end
         
     | 
| 
       115 
115 
     | 
    
         | 
| 
      
 116 
     | 
    
         
            +
              it 'no id with model driven primary key' do
         
     | 
| 
      
 117 
     | 
    
         
            +
                output = generate_schema_for_table 'sst_no_pk_data'
         
     | 
| 
      
 118 
     | 
    
         
            +
                output.must_match %r{create_table "sst_no_pk_data".*id:\sfalse.*do}
         
     | 
| 
      
 119 
     | 
    
         
            +
                assert_line :name, type: 'string', limit: '4000'
         
     | 
| 
      
 120 
     | 
    
         
            +
              end
         
     | 
| 
      
 121 
     | 
    
         
            +
             
     | 
| 
       116 
122 
     | 
    
         | 
| 
       117 
123 
     | 
    
         
             
              private
         
     | 
| 
       118 
124 
     | 
    
         | 
| 
         @@ -62,6 +62,12 @@ class SpecificSchemaTestSQLServer < ActiveRecord::TestCase 
     | 
|
| 
       62 
62 
     | 
    
         
             
                assert_equal '(NULL)', default.string_with_pretend_null_four
         
     | 
| 
       63 
63 
     | 
    
         
             
              end
         
     | 
| 
       64 
64 
     | 
    
         | 
| 
      
 65 
     | 
    
         
            +
              it 'default objects work' do
         
     | 
| 
      
 66 
     | 
    
         
            +
                obj = SSTestObjectDefault.create! name: 'MetaSkills'
         
     | 
| 
      
 67 
     | 
    
         
            +
                obj.date.must_be_nil 'since this is set on insert'
         
     | 
| 
      
 68 
     | 
    
         
            +
                obj.reload.date.must_be_instance_of Date
         
     | 
| 
      
 69 
     | 
    
         
            +
              end
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
       65 
71 
     | 
    
         
             
              # Natural primary keys.
         
     | 
| 
       66 
72 
     | 
    
         | 
| 
       67 
73 
     | 
    
         
             
              it 'work with identity inserts' do
         
     | 
    
        data/test/config.yml
    CHANGED
    
    | 
         @@ -8,7 +8,6 @@ default_connection_info: &default_connection_info 
     | 
|
| 
       8 
8 
     | 
    
         
             
              database: activerecord_unittest
         
     | 
| 
       9 
9 
     | 
    
         
             
              username: <%= ENV['ACTIVERECORD_UNITTEST_USER'] || 'rails' %>
         
     | 
| 
       10 
10 
     | 
    
         
             
              password: <%= ENV['ACTIVERECORD_UNITTEST_PASS'] || '' %>
         
     | 
| 
       11 
     | 
    
         
            -
              azure: <%= !ENV['ACTIVERECORD_UNITTEST_AZURE'].nil? %>
         
     | 
| 
       12 
11 
     | 
    
         
             
              collation: <%= ENV['ACTIVERECORD_UNITTEST_COLLATION'] || nil %>
         
     | 
| 
       13 
12 
     | 
    
         
             
              encoding: utf8
         
     | 
| 
       14 
13 
     | 
    
         | 
| 
         @@ -19,11 +18,15 @@ connections: 
     | 
|
| 
       19 
18 
     | 
    
         
             
                  <<: *default_connection_info
         
     | 
| 
       20 
19 
     | 
    
         
             
                  appname: SQLServerAdptrUnit
         
     | 
| 
       21 
20 
     | 
    
         
             
                  dataserver: <%= ENV['ACTIVERECORD_UNITTEST_DATASERVER'] %>
         
     | 
| 
      
 21 
     | 
    
         
            +
                  tds_version: <%= ENV['ACTIVERECORD_UNITTEST_TDSVERSION'] %>
         
     | 
| 
      
 22 
     | 
    
         
            +
                  azure: <%= !ENV['ACTIVERECORD_UNITTEST_AZURE'].nil? %>
         
     | 
| 
       22 
23 
     | 
    
         
             
                arunit2:
         
     | 
| 
       23 
24 
     | 
    
         
             
                  <<: *default_connection_info
         
     | 
| 
       24 
25 
     | 
    
         
             
                  database: activerecord_unittest2
         
     | 
| 
       25 
26 
     | 
    
         
             
                  appname: SQLServerAdptrUnit2
         
     | 
| 
       26 
27 
     | 
    
         
             
                  dataserver: <%= ENV['ACTIVERECORD_UNITTEST_DATASERVER'] %>
         
     | 
| 
      
 28 
     | 
    
         
            +
                  tds_version: <%= ENV['ACTIVERECORD_UNITTEST_TDSVERSION'] %>
         
     | 
| 
      
 29 
     | 
    
         
            +
                  azure: <%= !ENV['ACTIVERECORD_UNITTEST_AZURE'].nil? %>
         
     | 
| 
       27 
30 
     | 
    
         | 
| 
       28 
31 
     | 
    
         
             
              odbc:
         
     | 
| 
       29 
32 
     | 
    
         
             
                arunit:
         
     | 
| 
         @@ -109,6 +109,14 @@ ActiveRecord::Schema.define do 
     | 
|
| 
       109 
109 
     | 
    
         
             
                )
         
     | 
| 
       110 
110 
     | 
    
         
             
              TINYITPKTABLE
         
     | 
| 
       111 
111 
     | 
    
         | 
| 
      
 112 
     | 
    
         
            +
              execute "DROP DEFAULT [sst_getdateobject];" rescue nil
         
     | 
| 
      
 113 
     | 
    
         
            +
              execute "CREATE DEFAULT [sst_getdateobject] AS getdate();" rescue nil
         
     | 
| 
      
 114 
     | 
    
         
            +
              create_table 'sst_defaultobjects', force: true do |t|
         
     | 
| 
      
 115 
     | 
    
         
            +
                t.string :name
         
     | 
| 
      
 116 
     | 
    
         
            +
                t.date   :date
         
     | 
| 
      
 117 
     | 
    
         
            +
              end
         
     | 
| 
      
 118 
     | 
    
         
            +
              execute "sp_bindefault 'sst_getdateobject', 'sst_defaultobjects.date'"
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
       112 
120 
     | 
    
         
             
              # Constraints
         
     | 
| 
       113 
121 
     | 
    
         | 
| 
       114 
122 
     | 
    
         
             
              create_table(:sst_has_fks, force: true) { |t| t.column(:fk_id, :integer, null: false) }
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: activerecord-sqlserver-adapter
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 4.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 4.2.5
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ken Collins
         
     | 
| 
         @@ -14,7 +14,7 @@ authors: 
     | 
|
| 
       14 
14 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       15 
15 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
16 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
     | 
    
         
            -
            date: 2015- 
     | 
| 
      
 17 
     | 
    
         
            +
            date: 2015-11-22 00:00:00.000000000 Z
         
     | 
| 
       18 
18 
     | 
    
         
             
            dependencies:
         
     | 
| 
       19 
19 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       20 
20 
     | 
    
         
             
              name: activerecord
         
     | 
| 
         @@ -143,7 +143,7 @@ dependencies: 
     | 
|
| 
       143 
143 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       144 
144 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       145 
145 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       146 
     | 
    
         
            -
              name:  
     | 
| 
      
 146 
     | 
    
         
            +
              name: byebug
         
     | 
| 
       147 
147 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       148 
148 
     | 
    
         
             
                requirements:
         
     | 
| 
       149 
149 
     | 
    
         
             
                - - ">="
         
     | 
| 
         @@ -170,7 +170,7 @@ dependencies: 
     | 
|
| 
       170 
170 
     | 
    
         
             
                - - ">="
         
     | 
| 
       171 
171 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       172 
172 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       173 
     | 
    
         
            -
            description: ActiveRecord SQL Server Adapter.
         
     | 
| 
      
 173 
     | 
    
         
            +
            description: ActiveRecord SQL Server Adapter. SQL Server 2012 and upward.
         
     | 
| 
       174 
174 
     | 
    
         
             
            email:
         
     | 
| 
       175 
175 
     | 
    
         
             
            - ken@metaskills.net
         
     | 
| 
       176 
176 
     | 
    
         
             
            - will@wbond.net
         
     | 
| 
         @@ -180,6 +180,7 @@ extra_rdoc_files: [] 
     | 
|
| 
       180 
180 
     | 
    
         
             
            files:
         
     | 
| 
       181 
181 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       182 
182 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
      
 183 
     | 
    
         
            +
            - CODE_OF_CONDUCT.md
         
     | 
| 
       183 
184 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       184 
185 
     | 
    
         
             
            - Guardfile
         
     | 
| 
       185 
186 
     | 
    
         
             
            - MIT-LICENSE
         
     | 
| 
         @@ -187,6 +188,7 @@ files: 
     | 
|
| 
       187 
188 
     | 
    
         
             
            - RUNNING_UNIT_TESTS.md
         
     | 
| 
       188 
189 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       189 
190 
     | 
    
         
             
            - activerecord-sqlserver-adapter.gemspec
         
     | 
| 
      
 191 
     | 
    
         
            +
            - appveyor.yml
         
     | 
| 
       190 
192 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/core_ext/active_record.rb
         
     | 
| 
       191 
193 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/core_ext/attribute_methods.rb
         
     | 
| 
       192 
194 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/core_ext/explain.rb
         
     | 
| 
         @@ -209,9 +211,7 @@ files: 
     | 
|
| 
       209 
211 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/big_integer.rb
         
     | 
| 
       210 
212 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/binary.rb
         
     | 
| 
       211 
213 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/boolean.rb
         
     | 
| 
       212 
     | 
    
         
            -
            - lib/active_record/connection_adapters/sqlserver/type/castable.rb
         
     | 
| 
       213 
214 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/char.rb
         
     | 
| 
       214 
     | 
    
         
            -
            - lib/active_record/connection_adapters/sqlserver/type/core_ext/value.rb
         
     | 
| 
       215 
215 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/date.rb
         
     | 
| 
       216 
216 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/datetime.rb
         
     | 
| 
       217 
217 
     | 
    
         
             
            - lib/active_record/connection_adapters/sqlserver/type/decimal.rb
         
     | 
| 
         @@ -247,6 +247,8 @@ files: 
     | 
|
| 
       247 
247 
     | 
    
         
             
            - lib/activerecord-sqlserver-adapter.rb
         
     | 
| 
       248 
248 
     | 
    
         
             
            - lib/arel/visitors/sqlserver.rb
         
     | 
| 
       249 
249 
     | 
    
         
             
            - lib/arel_sqlserver.rb
         
     | 
| 
      
 250 
     | 
    
         
            +
            - test/appveyor/dbsetup.ps1
         
     | 
| 
      
 251 
     | 
    
         
            +
            - test/appveyor/dbsetup.sql
         
     | 
| 
       250 
252 
     | 
    
         
             
            - test/cases/adapter_test_sqlserver.rb
         
     | 
| 
       251 
253 
     | 
    
         
             
            - test/cases/coerced_tests.rb
         
     | 
| 
       252 
254 
     | 
    
         
             
            - test/cases/column_test_sqlserver.rb
         
     | 
| 
         @@ -280,6 +282,7 @@ files: 
     | 
|
| 
       280 
282 
     | 
    
         
             
            - test/models/sqlserver/natural_pk_data.rb
         
     | 
| 
       281 
283 
     | 
    
         
             
            - test/models/sqlserver/natural_pk_int_data.rb
         
     | 
| 
       282 
284 
     | 
    
         
             
            - test/models/sqlserver/no_pk_data.rb
         
     | 
| 
      
 285 
     | 
    
         
            +
            - test/models/sqlserver/object_default.rb
         
     | 
| 
       283 
286 
     | 
    
         
             
            - test/models/sqlserver/quoted_table.rb
         
     | 
| 
       284 
287 
     | 
    
         
             
            - test/models/sqlserver/quoted_view_1.rb
         
     | 
| 
       285 
288 
     | 
    
         
             
            - test/models/sqlserver/quoted_view_2.rb
         
     | 
| 
         @@ -299,7 +302,8 @@ files: 
     | 
|
| 
       299 
302 
     | 
    
         
             
            - test/support/rake_helpers.rb
         
     | 
| 
       300 
303 
     | 
    
         
             
            - test/support/sql_counter_sqlserver.rb
         
     | 
| 
       301 
304 
     | 
    
         
             
            homepage: http://github.com/rails-sqlserver/activerecord-sqlserver-adapter
         
     | 
| 
       302 
     | 
    
         
            -
            licenses: 
     | 
| 
      
 305 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 306 
     | 
    
         
            +
            - MIT
         
     | 
| 
       303 
307 
     | 
    
         
             
            metadata: {}
         
     | 
| 
       304 
308 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       305 
309 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
         @@ -317,11 +321,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       317 
321 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       318 
322 
     | 
    
         
             
            requirements: []
         
     | 
| 
       319 
323 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       320 
     | 
    
         
            -
            rubygems_version: 2.4. 
     | 
| 
      
 324 
     | 
    
         
            +
            rubygems_version: 2.4.8
         
     | 
| 
       321 
325 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       322 
326 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       323 
327 
     | 
    
         
             
            summary: ActiveRecord SQL Server Adapter.
         
     | 
| 
       324 
328 
     | 
    
         
             
            test_files:
         
     | 
| 
      
 329 
     | 
    
         
            +
            - test/appveyor/dbsetup.ps1
         
     | 
| 
      
 330 
     | 
    
         
            +
            - test/appveyor/dbsetup.sql
         
     | 
| 
       325 
331 
     | 
    
         
             
            - test/cases/adapter_test_sqlserver.rb
         
     | 
| 
       326 
332 
     | 
    
         
             
            - test/cases/coerced_tests.rb
         
     | 
| 
       327 
333 
     | 
    
         
             
            - test/cases/column_test_sqlserver.rb
         
     | 
| 
         @@ -355,6 +361,7 @@ test_files: 
     | 
|
| 
       355 
361 
     | 
    
         
             
            - test/models/sqlserver/natural_pk_data.rb
         
     | 
| 
       356 
362 
     | 
    
         
             
            - test/models/sqlserver/natural_pk_int_data.rb
         
     | 
| 
       357 
363 
     | 
    
         
             
            - test/models/sqlserver/no_pk_data.rb
         
     | 
| 
      
 364 
     | 
    
         
            +
            - test/models/sqlserver/object_default.rb
         
     | 
| 
       358 
365 
     | 
    
         
             
            - test/models/sqlserver/quoted_table.rb
         
     | 
| 
       359 
366 
     | 
    
         
             
            - test/models/sqlserver/quoted_view_1.rb
         
     | 
| 
       360 
367 
     | 
    
         
             
            - test/models/sqlserver/quoted_view_2.rb
         
     | 
| 
         @@ -1,39 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module ActiveRecord
         
     | 
| 
       2 
     | 
    
         
            -
              module Type
         
     | 
| 
       3 
     | 
    
         
            -
                class Value
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
                  module SQLServerBehavior
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
                    extend ActiveSupport::Concern
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                    included do
         
     | 
| 
       10 
     | 
    
         
            -
                      self.type_cast_from_ss_database = false
         
     | 
| 
       11 
     | 
    
         
            -
                    end
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                    module ClassMethods
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
                      def type_cast_from_ss_database
         
     | 
| 
       16 
     | 
    
         
            -
                        @@type_cast_from_ss_database
         
     | 
| 
       17 
     | 
    
         
            -
                      end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                      def type_cast_from_ss_database=(boolean)
         
     | 
| 
       20 
     | 
    
         
            -
                        @@type_cast_from_ss_database = !!boolean
         
     | 
| 
       21 
     | 
    
         
            -
                      end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                    end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                    def type_cast_from_ss_database?
         
     | 
| 
       26 
     | 
    
         
            -
                      self.class.type_cast_from_ss_database
         
     | 
| 
       27 
     | 
    
         
            -
                    end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                    def type_cast_from_database(value)
         
     | 
| 
       30 
     | 
    
         
            -
                      type_cast_from_ss_database? ? super : value
         
     | 
| 
       31 
     | 
    
         
            -
                    end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                  end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                  include SQLServerBehavior
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                end
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
            end
         
     |