<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -181,7 +181,7 @@ module ActiveRecord
       ADAPTER_NAME            = 'SQLServer'.freeze
       VERSION                 = '2.2.17'.freeze
       DATABASE_VERSION_REGEXP = /Microsoft SQL Server\s+(\d{4})/
-      SUPPORTED_VERSIONS      = [2000,2005].freeze
+      SUPPORTED_VERSIONS      = [2000,2005,2008].freeze
       LIMITABLE_TYPES         = ['string','integer','float','char','nchar','varchar','nvarchar'].freeze
       
       LOST_CONNECTION_EXCEPTIONS = [DBI::DatabaseError, DBI::InterfaceError]
@@ -250,6 +250,10 @@ module ActiveRecord
         database_year == 2005
       end
       
+      def sqlserver_2008?
+        database_year == 2008
+      end
+      
       def version
         self.class::VERSION
       end
@@ -276,7 +280,7 @@ module ActiveRecord
       end
       
       def native_binary_database_type
-        @@native_binary_database_type || (sqlserver_2005? ? 'varbinary(max)' : 'image')
+        @@native_binary_database_type || ((sqlserver_2005? || sqlserver_2008?) ? 'varbinary(max)' : 'image')
       end
       
       # QUOTING ==================================================#</diff>
      <filename>lib/active_record/connection_adapters/sqlserver_adapter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -59,6 +59,7 @@ class AdapterTestSqlserver &lt; ActiveRecord::TestCase
         @supported_version = ActiveRecord::ConnectionAdapters::SQLServerAdapter::SUPPORTED_VERSIONS
         @sqlserver_2000_string = &quot;Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)&quot;
         @sqlserver_2005_string = &quot;Microsoft SQL Server 2005 - 9.00.3215.00 (Intel X86)&quot;
+        @sqlserver_2008_string = &quot;Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)&quot;
       end
       
       should 'return a string from #database_version that matches class regexp' do
@@ -80,6 +81,11 @@ class AdapterTestSqlserver &lt; ActiveRecord::TestCase
         assert @connection.sqlserver_2005?
       end
       
+      should 'return true to #sqlserver_2008?' do
+        @connection.stubs(:database_version).returns(@sqlserver_2008_string)
+        assert @connection.sqlserver_2008?
+      end
+      
     end
     
     context 'for #unqualify_table_name and #unqualify_db_name' do</diff>
      <filename>test/cases/adapter_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -66,7 +66,7 @@ class ColumnTestSqlserver &lt; ActiveRecord::TestCase
     should 'have correct simplified types' do
       assert_equal :string, @char.type
       assert_equal :string, @char10.type
-      if sqlserver_2005?
+      if sqlserver_2005? || sqlserver_2008?
         assert_equal :text, @varcharmax.type, @varcharmax.inspect
         assert_equal :text, @varcharmax10.type, @varcharmax10.inspect
       end
@@ -75,7 +75,7 @@ class ColumnTestSqlserver &lt; ActiveRecord::TestCase
     should 'have correct #sql_type per schema definition' do
       assert_equal 'char(1)',     @char.sql_type,       'Specifing a char type with no limit is 1 by SQL Server standards.'
       assert_equal 'char(10)',    @char10.sql_type,      @char10.inspect
-      if sqlserver_2005?
+      if sqlserver_2005? || sqlserver_2008?
         assert_equal 'varchar(max)', @varcharmax.sql_type,   'A -1 limit should be converted to max (max) type.'
         assert_equal 'varchar(max)', @varcharmax10.sql_type, 'A -1 limit should be converted to max (max) type.'
       end
@@ -84,7 +84,7 @@ class ColumnTestSqlserver &lt; ActiveRecord::TestCase
     should 'have correct #limit per schema definition' do
       assert_equal 1,   @char.limit
       assert_equal 10,  @char10.limit
-      if sqlserver_2005?
+      if sqlserver_2005? || sqlserver_2008?
         assert_equal nil, @varcharmax.limit,   'Limits on max types are moot and we should let rails know that.'
         assert_equal nil, @varcharmax10.limit, 'Limits on max types are moot and we should let rails know that.'
       end
@@ -119,7 +119,7 @@ class ColumnTestSqlserver &lt; ActiveRecord::TestCase
       assert_equal :text,   @ntext10.type
       assert_equal :string, @nchar10.type
       assert_equal :string, @nvarchar100.type
-      if sqlserver_2005?
+      if sqlserver_2005? || sqlserver_2008?
         assert_equal :text, @nvarcharmax.type, @nvarcharmax.inspect
         assert_equal :text, @nvarcharmax10.type, @nvarcharmax10.inspect
       end
@@ -132,7 +132,7 @@ class ColumnTestSqlserver &lt; ActiveRecord::TestCase
       assert_equal 'ntext',         @ntext10.sql_type,     'Even a next with a limit of 10 specified will mean nothing.'
       assert_equal 'nchar(10)',     @nchar10.sql_type,     'An nchar with a limit of 10 needs to have it show up here.'
       assert_equal 'nvarchar(100)', @nvarchar100.sql_type, 'An nvarchar with a specified limit of 100 needs to show it.'
-      if sqlserver_2005?
+      if sqlserver_2005? || sqlserver_2008?
         assert_equal 'nvarchar(max)', @nvarcharmax.sql_type,   'A -1 limit should be converted to max (max) type.'
         assert_equal 'nvarchar(max)', @nvarcharmax10.sql_type, 'A -1 limit should be converted to max (max) type.'
       end
@@ -144,7 +144,7 @@ class ColumnTestSqlserver &lt; ActiveRecord::TestCase
       assert_equal nil, @ntext.limit,       'An ntext column limit is moot, it is a fixed variable length'
       assert_equal 10,  @nchar10.limit
       assert_equal 100, @nvarchar100.limit
-      if sqlserver_2005?
+      if sqlserver_2005? || sqlserver_2008?
         assert_equal nil, @nvarcharmax.limit,   'Limits on max types are moot and we should let rails know that.'
         assert_equal nil, @nvarcharmax10.limit, 'Limits on max types are moot and we should let rails know that.'
       end</diff>
      <filename>test/cases/column_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ class ExecuteProcedureTestSqlserver &lt; ActiveRecord::TestCase
   should 'quote bind vars correctly' do
     assert_sql(/EXEC sp_tables '%sql_server%', NULL, NULL, NULL, 1/) do
       @klass.execute_procedure :sp_tables, '%sql_server%', nil, nil, nil, true
-    end if sqlserver_2005?
+    end if sqlserver_2005? || sqlserver_2008?
     assert_sql(/EXEC sp_tables '%sql_server%', NULL, NULL, NULL/) do
       @klass.execute_procedure :sp_tables, '%sql_server%', nil, nil, nil
     end if sqlserver_2000?</diff>
      <filename>test/cases/execute_procedure_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -41,7 +41,7 @@ class SchemaDumperTestSqlserver &lt; ActiveRecord::TestCase
       table_dump('sql_server_strings') do |output|
         assert_match %r{t.text.*varchar_max}, output
       end
-    end
+    end if sqlserver_2005? || sqlserver_2008?
 
   end
   </diff>
      <filename>test/cases/schema_dumper_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -96,6 +96,7 @@ module ActiveRecord
     class &lt;&lt; self
       def sqlserver_2000? ; ActiveRecord::Base.connection.sqlserver_2000? ; end
       def sqlserver_2005? ; ActiveRecord::Base.connection.sqlserver_2005? ; end
+      def sqlserver_2008? ; ActiveRecord::Base.connection.sqlserver_2008? ; end
       def active_record_2_point_2? ; ActiveRecord::VERSION::MAJOR == 2 &amp;&amp; ActiveRecord::VERSION::MINOR == 2 ; end
       def active_record_2_point_3? ; ActiveRecord::VERSION::MAJOR == 2 &amp;&amp; ActiveRecord::VERSION::MINOR == 3 ; end
       def ruby_19? ; RUBY_VERSION &gt;= '1.9' ; end
@@ -112,6 +113,7 @@ module ActiveRecord
     end
     def sqlserver_2000? ; self.class.sqlserver_2000? ; end
     def sqlserver_2005? ; self.class.sqlserver_2005? ; end
+    def sqlserver_2008? ; self.class.sqlserver_2008? ; end
     def active_record_2_point_2? ; self.class.active_record_2_point_2? ; end
     def active_record_2_point_3? ; self.class.active_record_2_point_3? ; end
     def ruby_19? ; self.class.ruby_19? ; end</diff>
      <filename>test/cases/sqlserver_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@ class UnicodeTestSqlserver &lt; ActiveRecord::TestCase
       test_string = 'Ken Collins'
       assert nvarcharmax_data = SqlServerUnicode.create!(:nvarchar_max =&gt; test_string)
       assert_equal test_string, SqlServerUnicode.find(nvarcharmax_data.id).nvarchar_max
-    end if sqlserver_2005?
+    end if sqlserver_2005? || sqlserver_2008?
 
     should 'enforce default nchar_10 limit of 10' do
       assert_raise(ActiveRecord::StatementInvalid) { SqlServerUnicode.create!(:nchar =&gt; '01234567891') }</diff>
      <filename>test/cases/unicode_test_sqlserver.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,6 @@ ActiveRecord::Schema.define do
   
   create_table :table_with_real_columns, :force =&gt; true do |t|
     t.column :real_number, :real
-    # t.column :varchar_max, :varchar_max if ActiveRecord::Base.connection.sqlserver_2005?
   end
   
   create_table :defaults, :force =&gt; true do |t|
@@ -44,7 +43,7 @@ ActiveRecord::Schema.define do
     t.column :ntext_10,       :ntext,     :limit =&gt; 10
     t.column :nchar_10,       :nchar,     :limit =&gt; 10
     t.column :nvarchar_100,   :nvarchar,  :limit =&gt; 100
-    if ActiveRecord::Base.connection.sqlserver_2005?
+    if ActiveRecord::Base.connection.sqlserver_2005? || ActiveRecord::Base.connection.sqlserver_2008?
       t.column :nvarchar_max,     :nvarchar_max 
       t.column :nvarchar_max_10,  :nvarchar_max, :limit =&gt; 10
     end
@@ -53,7 +52,7 @@ ActiveRecord::Schema.define do
   create_table :sql_server_strings, :force =&gt; true do |t|
     t.column :char,     :char
     t.column :char_10,  :char,  :limit =&gt; 10
-    if ActiveRecord::Base.connection.sqlserver_2005?
+    if ActiveRecord::Base.connection.sqlserver_2005? || ActiveRecord::Base.connection.sqlserver_2008?
       t.column :varchar_max,     :varchar_max 
       t.column :varchar_max_10,  :varchar_max, :limit =&gt; 10
     end</diff>
      <filename>test/schema/sqlserver_specific_schema.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d4f58d44f299939c58a3e66c7a7de95560d42efb</id>
    </parent>
  </parents>
  <author>
    <name>Ken Collins</name>
    <email>ken@metaskills.net</email>
  </author>
  <url>http://github.com/rails-sqlserver/2000-2005-adapter/commit/cbf4ff589829cd153b60595edcbe1ad67e7f9c9b</url>
  <id>cbf4ff589829cd153b60595edcbe1ad67e7f9c9b</id>
  <committed-date>2009-06-05T09:49:11-07:00</committed-date>
  <authored-date>2009-06-05T09:49:11-07:00</authored-date>
  <message>Add 2008 support in raw form.</message>
  <tree>065678034c21cb86737ed80934b74ab9fb600859</tree>
  <committer>
    <name>Ken Collins</name>
    <email>ken@metaskills.net</email>
  </committer>
</commit>
