Skip to content

Instantly share code, notes, and snippets.

@palkan
Last active September 30, 2015 07:33
Show Gist options
  • Save palkan/16214c31ff1f5eb47fd8 to your computer and use it in GitHub Desktop.
Save palkan/16214c31ff1f5eb47fd8 to your computer and use it in GitHub Desktop.
Rails Issue 21765
begin
require 'bundler/inline'
rescue LoadError => e
$stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
raise e
end
gemfile(true) do
source 'https://rubygems.org'
gem 'rack', github: "rack/rack"
gem 'rails', github: "rails/rails"
gem 'sprockets-rails', github: "rails/sprockets-rails"
gem 'arel', github: "rails/arel"
gem 'byebug'
gem 'pg'
end
system("createdb indexes_test")
at_exit do
ActiveRecord::Base.connection.disconnect!
system("dropdb indexes_test")
end
require 'active_record'
require 'minitest/autorun'
require 'logger'
# This connection will do for database-independent bug reports.
ActiveRecord::Base.establish_connection(adapter: 'postgresql', database: 'indexes_test')
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Schema.define do
create_table :users, force: true do |t|
t.string :email
t.integer :gender
t.integer :some_id
t.datetime :created_at
end
execute <<-SQL
CREATE INDEX users_email_lower_idx on users (lower(email))
SQL
execute <<-SQL
CREATE INDEX users_email_lower_gender_idx on users (lower(email), gender)
SQL
execute <<-SQL
CREATE INDEX users_some_id_idx on users (some_id)
SQL
end
class User < ActiveRecord::Base; end
class BugTest < Minitest::Test
def test_pg_indices
names = ActiveRecord::Base.connection.indexes('users').map(&:name)
assert_includes names, 'users_some_id_idx'
assert_includes names, 'users_email_lower_idx'
assert_includes names, 'users_email_lower_gender_idx'
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment