activerecord-cockroachdb-adapter icon indicating copy to clipboard operation
activerecord-cockroachdb-adapter copied to clipboard

[ActiveRecord 5.2 Test Failure] test/cases/adapters/postgresql/full_text_test.rb

Open alimi opened this issue 5 years ago • 0 comments

Error:
PostgresqlFullTextTest#test_tsvector_column:
ActiveRecord::StatementInvalid: PG::FeatureNotSupported: ERROR:  at or near "tsvector": syntax error: unimplemented: this syntax
DETAIL:  source SQL:
CREATE TABLE "tsvectors" ("id" bigserial primary key, "text_vector" tsvector)
                                                                    ^
HINT:  You have attempted to use a feature that is not yet implemented.
See: https://github.com/cockroachdb/cockroach/issues/7821
: CREATE TABLE "tsvectors" ("id" bigserial primary key, "text_vector" tsvector)
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `exec'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /Users/alimi/repos/rails/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
    /Users/alimi/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
    /Users/alimi/repos/rails/activesupport/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
    /Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:12:in `block in <class:PostgresqlFullTextTest>'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `instance_exec'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `block in make_lambda'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:606:in `block (2 levels) in default_terminator'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:605:in `catch'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:605:in `block in default_terminator'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:199:in `block in halting'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `block in invoke_before'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `each'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `invoke_before'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:131:in `run_callbacks'
    /Users/alimi/repos/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:41:in `before_setup'
    /Users/alimi/repos/rails/activerecord/lib/active_record/fixtures.rb:861:in `before_setup'

Error:
PostgresqlFullTextTest#test_tsvector_column:
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: DROP TABLE IF EXISTS "tsvectors"
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `exec'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /Users/alimi/repos/rails/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
    /Users/alimi/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
    /Users/alimi/repos/rails/activesupport/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb:58:in `drop_table'
    /Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:18:in `block in <class:PostgresqlFullTextTest>'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `instance_exec'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `block in make_lambda'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:271:in `block in simple'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `block in invoke_after'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `each'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `invoke_after'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:133:in `run_callbacks'
    /Users/alimi/repos/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:46:in `after_teardown'
    /Users/alimi/repos/rails/activerecord/lib/active_record/fixtures.rb:865:in `after_teardown'

bin/rails test Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:21

Error:
PostgresqlFullTextTest#test_update_tsvector:
ActiveRecord::StatementInvalid: PG::FeatureNotSupported: ERROR:  at or near "tsvector": syntax error: unimplemented: this syntax
DETAIL:  source SQL:
CREATE TABLE "tsvectors" ("id" bigserial primary key, "text_vector" tsvector)
                                                                    ^
HINT:  You have attempted to use a feature that is not yet implemented.
See: https://github.com/cockroachdb/cockroach/issues/7821
: CREATE TABLE "tsvectors" ("id" bigserial primary key, "text_vector" tsvector)
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `exec'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /Users/alimi/repos/rails/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
    /Users/alimi/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
    /Users/alimi/repos/rails/activesupport/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
    /Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:12:in `block in <class:PostgresqlFullTextTest>'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `instance_exec'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `block in make_lambda'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:606:in `block (2 levels) in default_terminator'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:605:in `catch'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:605:in `block in default_terminator'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:199:in `block in halting'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `block in invoke_before'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `each'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `invoke_before'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:131:in `run_callbacks'
    /Users/alimi/repos/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:41:in `before_setup'
    /Users/alimi/repos/rails/activerecord/lib/active_record/fixtures.rb:861:in `before_setup'

Error:
PostgresqlFullTextTest#test_update_tsvector:
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: DROP TABLE IF EXISTS "tsvectors"
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `exec'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /Users/alimi/repos/rails/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
    /Users/alimi/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
    /Users/alimi/repos/rails/activesupport/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb:58:in `drop_table'
    /Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:18:in `block in <class:PostgresqlFullTextTest>'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `instance_exec'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `block in make_lambda'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:271:in `block in simple'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `block in invoke_after'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `each'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `invoke_after'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:133:in `run_callbacks'
    /Users/alimi/repos/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:46:in `after_teardown'
    /Users/alimi/repos/rails/activerecord/lib/active_record/fixtures.rb:865:in `after_teardown'

bin/rails test Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:31

Error:
PostgresqlFullTextTest#test_schema_dump_with_shorthand:
ActiveRecord::StatementInvalid: PG::FeatureNotSupported: ERROR:  at or near "tsvector": syntax error: unimplemented: this syntax
DETAIL:  source SQL:
CREATE TABLE "tsvectors" ("id" bigserial primary key, "text_vector" tsvector)
                                                                    ^
HINT:  You have attempted to use a feature that is not yet implemented.
See: https://github.com/cockroachdb/cockroach/issues/7821
: CREATE TABLE "tsvectors" ("id" bigserial primary key, "text_vector" tsvector)
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `exec'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /Users/alimi/repos/rails/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
    /Users/alimi/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
    /Users/alimi/repos/rails/activesupport/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb:311:in `create_table'
    /Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:12:in `block in <class:PostgresqlFullTextTest>'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `instance_exec'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `block in make_lambda'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:198:in `block (2 levels) in halting'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:606:in `block (2 levels) in default_terminator'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:605:in `catch'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:605:in `block in default_terminator'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:199:in `block in halting'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `block in invoke_before'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `each'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:513:in `invoke_before'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:131:in `run_callbacks'
    /Users/alimi/repos/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:41:in `before_setup'
    /Users/alimi/repos/rails/activerecord/lib/active_record/fixtures.rb:861:in `before_setup'

Error:
PostgresqlFullTextTest#test_schema_dump_with_shorthand:
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: DROP TABLE IF EXISTS "tsvectors"
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `exec'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:75:in `block (2 levels) in execute'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:48:in `block in permit_concurrent_loads'
    /Users/alimi/repos/rails/activesupport/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
    /Users/alimi/repos/rails/activesupport/lib/active_support/dependencies/interlock.rb:47:in `permit_concurrent_loads'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:74:in `block in execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:581:in `block (2 levels) in log'
    /Users/alimi/.rvm/rubies/ruby-2.5.3/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:580:in `block in log'
    /Users/alimi/repos/rails/activesupport/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:571:in `log'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb:73:in `execute'
    /Users/alimi/repos/rails/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb:58:in `drop_table'
    /Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:18:in `block in <class:PostgresqlFullTextTest>'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `instance_exec'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:426:in `block in make_lambda'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:271:in `block in simple'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `block in invoke_after'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `each'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:517:in `invoke_after'
    /Users/alimi/repos/rails/activesupport/lib/active_support/callbacks.rb:133:in `run_callbacks'
    /Users/alimi/repos/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb:46:in `after_teardown'
    /Users/alimi/repos/rails/activerecord/lib/active_record/fixtures.rb:865:in `after_teardown'

bin/rails test Users/alimi/repos/rails/activerecord/test/cases/adapters/postgresql/full_text_test.rb:42

See the Contributing Guide for instructions on running tests.

If the test isn't valid against CockroachDB

  1. Add a ruby file to test/excludes that matches the name of the test class if one doesn't already exist. For example to exclude a test from ActiveRecord::AdapterTest, create test/excludes/ActiveRecord/AdapterTest.rb.
  2. Add an exclude statement to the file with the name of the test to exclude and a description. For example to exclude test_indexes from ActiveRecord::AdapterTest: https://github.com/cockroachdb/activerecord-cockroachdb-adapter/blob/c3cb637bd855b36bbf9e76b7947162054b95022e/test/excludes/ActiveRecord/AdapterTest.rb#L1
  3. Finally, if the test can run against CockroachDB with a few changes, add it to test/cases. Everything from the ActiveRecord test suite will be available, so a lot of the excluded test can be copied over. Namespace the test under the CockroachDB module to avoid name collisions. See test/cases/adapter_test.rb for an example.

See https://github.com/cockroachdb/activerecord-cockroachdb-adapter/issues/48.

alimi avatar Apr 17 '20 20:04 alimi