Sha256: 16223b7dd9f20391786ce29901fe7caeb8c3d1745a2e04d4b45a15e655d11b62

Contents?: true

Size: 1.62 KB

Versions: 20

Compression:

Stored size: 1.62 KB

Contents

require 'jdbc_common'
require 'db/mysql'

class MySQLIndexLengthDBSetup < ActiveRecord::Migration
  def self.up
    execute <<-SQL
      CREATE TABLE index_length_test (
        int_column INT,
        text_column TEXT,
        second_text_column TEXT,
        INDEX ix_int (int_column),
        INDEX ix_length_text (text_column(255))
      )
    SQL
  end

  def self.down
    drop_table 'index_length_test'
  end
end

class MySQLIndexLengthTest < Test::Unit::TestCase
  def setup
    MySQLIndexLengthDBSetup.up
    @connection = ActiveRecord::Base.connection
  end

  def teardown
    MySQLIndexLengthDBSetup.down
  end

  def test_index_length
    index = @connection.indexes('index_length_test').find { |idx| idx.name == 'ix_length_text' }
    assert_not_nil index
    assert_equal "index_length_test", index.table
    assert_equal "ix_length_text", index.name
    assert !index.unique
    assert_equal ["text_column"], index.columns
    assert_equal [255], index.lengths
  end

  def test_add_index
    @connection.add_index 'index_length_test', ['text_column', 'second_text_column'],
      :name => 'added_index', :length => {'text_column' => 32, 'second_text_column' => 64}

    index = @connection.indexes('index_length_test').find { |idx| idx.name == 'added_index' }
    assert_not_nil index
    assert_equal ['text_column', 'second_text_column'], index.columns
    assert_equal [32, 64], index.lengths
  end

  def test_index_without_length
    index = @connection.indexes('index_length_test').find { |idx| idx.name == 'ix_int' }
    assert_not_nil index
    assert_equal ['int_column'], index.columns
    assert_equal [nil], index.lengths
  end
end

Version data entries

20 entries across 20 versions & 5 rubygems

Version Path
activerecord-jdbc-adapter-1.2.9.1 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.3.0.beta2 test/db/mysql/index_length_test.rb
cmoran92-activerecord-jdbc-adapter-1.2.1.2 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.3.0.beta1 test/db/mysql/index_length_test.rb
activerecord-jdbc-adapter-1.2.9 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.2.8 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.2.5 test/mysql_index_length_test.rb
tgbyte-activerecord-jdbc-adapter-1.2.2.5 test/mysql_index_length_test.rb
tgbyte-activerecord-jdbc-adapter-1.2.2.4 test/mysql_index_length_test.rb
tgbyte-activerecord-jdbc-adapter-1.2.2.3 test/mysql_index_length_test.rb
tgbyte-activerecord-jdbc-adapter-1.2.2.2 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.2.2.1 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-onsite-1.2.2 test/mysql_index_length_test.rb
cmoran92-activerecord-jdbc-adapter-1.2.1.1 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.2.2 test/mysql_index_length_test.rb
cmoran92-activerecord-jdbc-adapter-1.2.1 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.2.1 test/mysql_index_length_test.rb
activerecord-jdbc-adapter-1.2.0 test/mysql_index_length_test.rb
jashmenn-activerecord-jdbc-adapter-1.2.0.0 test/mysql_index_length_test.rb
jashmenn-activerecord-jdbc-adapter-1.2.0 test/mysql_index_length_test.rb