From 574234be067f0f000a945560cabcabb68c8a1ec9 Mon Sep 17 00:00:00 2001
From: Aaron Patterson <aaron.patterson@gmail.com>
Date: Wed, 15 Oct 2014 17:31:56 -0700
Subject: add table.bigint support

In the DSL you can now do:

create_table(:foos) do |t|
  t.bigint :hi
end
---
 .../abstract/schema_definitions.rb                    |  2 +-
 .../connection_adapters/postgresql_adapter.rb         |  1 +
 .../test/cases/migration/change_schema_test.rb        | 19 +++++++++++++++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

(limited to 'activerecord')

diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
index fe00f9d750..fca5cd2efa 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb
@@ -270,7 +270,7 @@ module ActiveRecord
         @columns_hash.delete name.to_s
       end
 
-      [:string, :text, :integer, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean].each do |column_type|
+      [:string, :text, :integer, :bigint, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean].each do |column_type|
         define_method column_type do |*args|
           options = args.extract_options!
           column_names = args
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
index 0d74cb6707..fe7648291d 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -94,6 +94,7 @@ module ActiveRecord
         int8range:   { name: "int8range" },
         binary:      { name: "bytea" },
         boolean:     { name: "boolean" },
+        bigint:      { name: "bigint" },
         xml:         { name: "xml" },
         tsvector:    { name: "tsvector" },
         hstore:      { name: "hstore" },
diff --git a/activerecord/test/cases/migration/change_schema_test.rb b/activerecord/test/cases/migration/change_schema_test.rb
index bd3dd29f4d..d91e7142b3 100644
--- a/activerecord/test/cases/migration/change_schema_test.rb
+++ b/activerecord/test/cases/migration/change_schema_test.rb
@@ -97,6 +97,25 @@ module ActiveRecord
         end
       end
 
+      def test_create_table_with_bigint
+        connection.create_table :testings do |t|
+          t.bigint :eight_int
+        end
+        columns = connection.columns(:testings)
+        eight   = columns.detect { |c| c.name == "eight_int"   }
+
+        if current_adapter?(:OracleAdapter)
+          assert_equal 'NUMBER(8)', eight.sql_type
+        elsif current_adapter?(:SQLite3Adapter)
+          assert_equal 'bigint', eight.sql_type
+        else
+          assert_equal :integer, eight.type
+          assert_equal 8, eight.limit
+        end
+      ensure
+        connection.drop_table :testings
+      end
+
       def test_create_table_with_limits
         connection.create_table :testings do |t|
           t.column :foo, :string, :limit => 255
-- 
cgit v1.2.3