Sha256: 842de09e2e42363abca99fd3ec361451e44801e9c3629488af246969e8aa9b0c

Contents?: true

Size: 1.07 KB

Versions: 12

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

module ActiveRecord
  module ConnectionAdapters
    module SQLServer
      class TableDefinition < ::ActiveRecord::ConnectionAdapters::TableDefinition
        # SQL Server supports precision of 38 for decimal columns. In Rails the test schema includes a column
        # with a precision of 55. This is a problem for SQL Server 2008. This method will override the default
        # decimal method to limit the precision to 38 for the :atoms_in_universe column.
        # See https://github.com/rails/rails/pull/51826/files#diff-2a57b61bbf9ee2c23938fc571d403799f68b4b530d65e2cde219a429bbf10af5L876
        def decimal(*names, **options)
          throw "This 'decimal' method should only be used in a test environment." unless defined?(ActiveSupport::TestCase)

          names.each do |name|
            options_for_name = options.dup
            options_for_name[:precision] = 38 if name == :atoms_in_universe && options_for_name[:precision].to_i == 55

            column(name, :decimal, **options_for_name)
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-8.0.5 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-8.0.4 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-7.2.5 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-8.0.3 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-7.2.4 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-8.0.2 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-7.2.3 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-8.0.1 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-8.0.0 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-7.2.2 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-7.2.1 test/support/table_definition_sqlserver.rb
activerecord-sqlserver-adapter-7.2.0 test/support/table_definition_sqlserver.rb