diff options
author | Dan McClain <git@danmcclain.net> | 2013-03-25 13:33:37 -0400 |
---|---|---|
committer | Dan McClain <git@danmcclain.net> | 2013-03-25 17:56:38 -0400 |
commit | e199dc1a570d4f0d9a07628268835bce5aab2732 (patch) | |
tree | 693717ae53d7043907f7c7ae9a0bc13ac14d7831 /activerecord/test/cases/adapters/postgresql | |
parent | 1a838ccda4a31bb023985f6c977e6bc3e238cda9 (diff) | |
download | rails-e199dc1a570d4f0d9a07628268835bce5aab2732.tar.gz rails-e199dc1a570d4f0d9a07628268835bce5aab2732.tar.bz2 rails-e199dc1a570d4f0d9a07628268835bce5aab2732.zip |
Adds support for concurrent indexing in PostgreSQL adapter
Adds support for algorithm option in MySQL indexes
Moves USING and algorithm options upstream
The syntax is still specific to the Adapter, so the actual executed string happens
in the corresponding adapter
Diffstat (limited to 'activerecord/test/cases/adapters/postgresql')
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/active_schema_test.rb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/activerecord/test/cases/adapters/postgresql/active_schema_test.rb b/activerecord/test/cases/adapters/postgresql/active_schema_test.rb index ac36d0e835..41e9bb912e 100644 --- a/activerecord/test/cases/adapters/postgresql/active_schema_test.rb +++ b/activerecord/test/cases/adapters/postgresql/active_schema_test.rb @@ -29,18 +29,24 @@ class PostgresqlActiveSchemaTest < ActiveRecord::TestCase false end - expected = %(CREATE UNIQUE INDEX "index_people_on_last_name" ON "people" ("last_name") WHERE state = 'active') + expected = %(CREATE UNIQUE INDEX "index_people_on_last_name" ON "people" ("last_name") WHERE state = 'active') assert_equal expected, add_index(:people, :last_name, :unique => true, :where => "state = 'active'") + expected = %(CREATE INDEX CONCURRENTLY "index_people_on_last_name" ON "people" ("last_name")) + assert_equal expected, add_index(:people, :last_name, algorithm: :concurrently) + %w(gin gist hash btree).each do |type| - expected = %(CREATE INDEX "index_people_on_last_name" ON "people" USING #{type} ("last_name")) - assert_equal expected, add_index(:people, :last_name, :using => type) + expected = %(CREATE INDEX "index_people_on_last_name" ON "people" USING #{type} ("last_name")) + assert_equal expected, add_index(:people, :last_name, using: type) + + expected = %(CREATE INDEX CONCURRENTLY "index_people_on_last_name" ON "people" USING #{type} ("last_name")) + assert_equal expected, add_index(:people, :last_name, using: type, algorithm: :concurrently) end - expected = %(CREATE UNIQUE INDEX "index_people_on_last_name" ON "people" USING gist ("last_name")) + expected = %(CREATE UNIQUE INDEX "index_people_on_last_name" ON "people" USING gist ("last_name")) assert_equal expected, add_index(:people, :last_name, :unique => true, :using => :gist) - expected = %(CREATE UNIQUE INDEX "index_people_on_last_name" ON "people" USING gist ("last_name") WHERE state = 'active') + expected = %(CREATE UNIQUE INDEX "index_people_on_last_name" ON "people" USING gist ("last_name") WHERE state = 'active') assert_equal expected, add_index(:people, :last_name, :unique => true, :where => "state = 'active'", :using => :gist) ActiveRecord::ConnectionAdapters::PostgreSQLAdapter.send(:remove_method, :index_name_exists?) |