ibm_db 3.0.4-x86-mingw32 → 3.0.5-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES +4 -1
- data/LICENSE +1 -1
- data/MANIFEST +14 -14
- data/README +225 -225
- data/ext/Makefile.nt32 +181 -181
- data/ext/Makefile.nt32.191 +212 -212
- data/ext/extconf.rb +291 -291
- data/ext/ibm_db.c +11887 -11884
- data/ext/ruby_ibm_db.h +241 -241
- data/ext/ruby_ibm_db_cli.c +866 -866
- data/ext/ruby_ibm_db_cli.h +500 -500
- data/init.rb +41 -41
- data/lib/IBM_DB.rb +27 -27
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3177 -3177
- data/lib/active_record/connection_adapters/ibmdb_adapter.rb +1 -1
- data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
- data/lib/mswin32/ibm_db.rb +122 -122
- data/lib/mswin32/rb21x/i386/ibm_db.so +0 -0
- data/lib/mswin32/rb22x/i386/ibm_db.so +0 -0
- data/lib/mswin32/rb23x/i386/ibm_db.so +0 -0
- data/test/active_record/connection_adapters/fake_adapter.rb +46 -46
- data/test/assets/example.log +1 -1
- data/test/assets/test.txt +1 -1
- data/test/cases/adapter_test.rb +276 -261
- data/test/cases/aggregations_test.rb +158 -158
- data/test/cases/ar_schema_test.rb +161 -161
- data/test/cases/associations/association_scope_test.rb +21 -21
- data/test/cases/associations/belongs_to_associations_test.rb +1029 -1029
- data/test/cases/associations/callbacks_test.rb +192 -192
- data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
- data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +26 -26
- data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
- data/test/cases/associations/eager_load_nested_include_test.rb +128 -128
- data/test/cases/associations/eager_singularization_test.rb +148 -148
- data/test/cases/associations/eager_test.rb +1429 -1411
- data/test/cases/associations/extension_test.rb +82 -82
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +972 -932
- data/test/cases/associations/has_many_associations_test.rb +2182 -2162
- data/test/cases/associations/has_many_through_associations_test.rb +1204 -1204
- data/test/cases/associations/has_one_associations_test.rb +610 -610
- data/test/cases/associations/has_one_through_associations_test.rb +380 -380
- data/test/cases/associations/inner_join_association_test.rb +139 -139
- data/test/cases/associations/inverse_associations_test.rb +706 -693
- data/test/cases/associations/join_model_test.rb +754 -754
- data/test/cases/associations/nested_through_associations_test.rb +579 -579
- data/test/cases/associations/required_test.rb +82 -82
- data/test/cases/associations_test.rb +380 -380
- data/test/cases/attribute_decorators_test.rb +125 -125
- data/test/cases/attribute_methods/read_test.rb +60 -60
- data/test/cases/attribute_methods/serialization_test.rb +29 -29
- data/test/cases/attribute_methods_test.rb +952 -952
- data/test/cases/attribute_set_test.rb +210 -200
- data/test/cases/attribute_test.rb +180 -180
- data/test/cases/attributes_test.rb +136 -136
- data/test/cases/autosave_association_test.rb +1595 -1595
- data/test/cases/base_test.rb +1664 -1638
- data/test/cases/batches_test.rb +212 -212
- data/test/cases/binary_test.rb +52 -52
- data/test/cases/bind_parameter_test.rb +100 -100
- data/test/cases/calculations_test.rb +646 -646
- data/test/cases/callbacks_test.rb +543 -543
- data/test/cases/clone_test.rb +40 -40
- data/test/cases/coders/yaml_column_test.rb +63 -63
- data/test/cases/column_alias_test.rb +17 -17
- data/test/cases/column_definition_test.rb +123 -123
- data/test/cases/connection_adapters/adapter_leasing_test.rb +54 -54
- data/test/cases/connection_adapters/connection_handler_test.rb +53 -53
- data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
- data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +293 -293
- data/test/cases/connection_adapters/mysql_type_lookup_test.rb +65 -65
- data/test/cases/connection_adapters/quoting_test.rb +13 -13
- data/test/cases/connection_adapters/schema_cache_test.rb +56 -56
- data/test/cases/connection_adapters/type_lookup_test.rb +110 -110
- data/test/cases/connection_management_test.rb +122 -122
- data/test/cases/connection_pool_test.rb +346 -346
- data/test/cases/connection_specification/resolver_test.rb +116 -116
- data/test/cases/core_test.rb +112 -112
- data/test/cases/counter_cache_test.rb +209 -209
- data/test/cases/custom_locking_test.rb +17 -17
- data/test/cases/database_statements_test.rb +19 -19
- data/test/cases/date_time_test.rb +61 -61
- data/test/cases/defaults_test.rb +223 -223
- data/test/cases/dirty_test.rb +785 -775
- data/test/cases/disconnected_test.rb +28 -28
- data/test/cases/dup_test.rb +157 -157
- data/test/cases/enum_test.rb +290 -290
- data/test/cases/explain_subscriber_test.rb +64 -64
- data/test/cases/explain_test.rb +76 -76
- data/test/cases/finder_respond_to_test.rb +60 -60
- data/test/cases/finder_test.rb +1169 -1166
- data/test/cases/fixture_set/file_test.rb +138 -138
- data/test/cases/fixtures_test.rb +908 -897
- data/test/cases/forbidden_attributes_protection_test.rb +99 -99
- data/test/cases/habtm_destroy_order_test.rb +61 -61
- data/test/cases/helper.rb +210 -210
- data/test/cases/hot_compatibility_test.rb +54 -54
- data/test/cases/i18n_test.rb +45 -45
- data/test/cases/inheritance_test.rb +375 -375
- data/test/cases/integration_test.rb +139 -139
- data/test/cases/invalid_connection_test.rb +22 -22
- data/test/cases/invalid_date_test.rb +32 -32
- data/test/cases/invertible_migration_test.rb +295 -295
- data/test/cases/json_serialization_test.rb +302 -302
- data/test/cases/locking_test.rb +477 -477
- data/test/cases/log_subscriber_test.rb +136 -136
- data/test/cases/migration/change_schema_test - Copy.rb +448 -448
- data/test/cases/migration/change_schema_test.rb +512 -472
- data/test/cases/migration/change_table_test.rb +224 -224
- data/test/cases/migration/column_attributes_test.rb +192 -192
- data/test/cases/migration/column_positioning_test.rb +56 -56
- data/test/cases/migration/columns_test.rb +304 -304
- data/test/cases/migration/command_recorder_test.rb +305 -305
- data/test/cases/migration/create_join_table_test.rb +148 -148
- data/test/cases/migration/foreign_key_test - Changed.rb +325 -325
- data/test/cases/migration/foreign_key_test.rb +328 -360
- data/test/cases/migration/helper.rb +39 -39
- data/test/cases/migration/index_test.rb +216 -216
- data/test/cases/migration/logger_test.rb +36 -36
- data/test/cases/migration/pending_migrations_test.rb +53 -53
- data/test/cases/migration/references_foreign_key_test.rb +169 -214
- data/test/cases/migration/references_index_test.rb +101 -101
- data/test/cases/migration/references_statements_test.rb +116 -116
- data/test/cases/migration/rename_table_test.rb +93 -93
- data/test/cases/migration/table_and_index_test.rb +24 -24
- data/test/cases/migration_test.rb +959 -959
- data/test/cases/migrator_test.rb +388 -388
- data/test/cases/mixin_test.rb +70 -70
- data/test/cases/modules_test.rb +173 -173
- data/test/cases/multiparameter_attributes_test.rb +350 -350
- data/test/cases/multiple_db_test.rb +115 -115
- data/test/cases/nested_attributes_test.rb +1070 -1057
- data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
- data/test/cases/persistence_test.rb +909 -909
- data/test/cases/pooled_connections_test.rb +81 -81
- data/test/cases/primary_keys_test.rb +237 -237
- data/test/cases/query_cache_test.rb +326 -326
- data/test/cases/quoting_test.rb +156 -156
- data/test/cases/readonly_test.rb +118 -118
- data/test/cases/reaper_test.rb +85 -85
- data/test/cases/reflection_test.rb +463 -454
- data/test/cases/relation/delegation_test.rb +68 -68
- data/test/cases/relation/merging_test.rb +161 -161
- data/test/cases/relation/mutation_test.rb +165 -165
- data/test/cases/relation/predicate_builder_test.rb +14 -14
- data/test/cases/relation/where_chain_test.rb +181 -181
- data/test/cases/relation/where_test.rb +300 -300
- data/test/cases/relation/where_test2.rb +36 -36
- data/test/cases/relation_test.rb +319 -297
- data/test/cases/relations_test.rb +1815 -1815
- data/test/cases/reload_models_test.rb +22 -22
- data/test/cases/result_test.rb +80 -80
- data/test/cases/sanitize_test.rb +83 -83
- data/test/cases/schema_dumper_test.rb +463 -463
- data/test/cases/scoping/default_scoping_test.rb +454 -454
- data/test/cases/scoping/named_scoping_test.rb +524 -524
- data/test/cases/scoping/relation_scoping_test.rb +357 -357
- data/test/cases/serialization_test.rb +104 -104
- data/test/cases/serialized_attribute_test.rb +277 -277
- data/test/cases/statement_cache_test.rb +98 -98
- data/test/cases/store_test.rb +194 -194
- data/test/cases/tasks/database_tasks_test.rb +398 -396
- data/test/cases/tasks/mysql_rake_test.rb +324 -311
- data/test/cases/tasks/postgresql_rake_test.rb +250 -245
- data/test/cases/tasks/sqlite_rake_test.rb +193 -193
- data/test/cases/test_case.rb +123 -123
- data/test/cases/timestamp_test.rb +467 -468
- data/test/cases/transaction_callbacks_test.rb +452 -452
- data/test/cases/transaction_isolation_test.rb +106 -106
- data/test/cases/transactions_test.rb +817 -817
- data/test/cases/type/decimal_test.rb +56 -51
- data/test/cases/type/integer_test.rb +121 -121
- data/test/cases/type/string_test.rb +36 -36
- data/test/cases/type/type_map_test.rb +177 -177
- data/test/cases/type/unsigned_integer_test.rb +18 -18
- data/test/cases/types_test.rb +141 -141
- data/test/cases/unconnected_test.rb +33 -33
- data/test/cases/validations/association_validation_test.rb +86 -86
- data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
- data/test/cases/validations/i18n_validation_test.rb +90 -90
- data/test/cases/validations/length_validation_test.rb +47 -47
- data/test/cases/validations/presence_validation_test.rb +68 -68
- data/test/cases/validations/uniqueness_validation_test.rb +457 -434
- data/test/cases/validations_repair_helper.rb +23 -23
- data/test/cases/validations_test.rb +165 -165
- data/test/cases/view_test.rb +119 -113
- data/test/cases/xml_serialization_test.rb +457 -457
- data/test/cases/yaml_serialization_test.rb +126 -86
- data/test/config.rb +5 -5
- data/test/config.yml +154 -154
- data/test/connections/native_ibm_db/connection.rb +43 -43
- data/test/fixtures/accounts.yml +29 -29
- data/test/fixtures/admin/accounts.yml +2 -2
- data/test/fixtures/admin/randomly_named_a9.yml +7 -7
- data/test/fixtures/admin/randomly_named_b0.yml +7 -7
- data/test/fixtures/admin/users.yml +10 -10
- data/test/fixtures/author_addresses.yml +17 -17
- data/test/fixtures/author_favorites.yml +3 -3
- data/test/fixtures/authors.yml +23 -23
- data/test/fixtures/binaries.yml +133 -133
- data/test/fixtures/books.yml +11 -11
- data/test/fixtures/bulbs.yml +5 -5
- data/test/fixtures/cars.yml +9 -9
- data/test/fixtures/categories.yml +19 -19
- data/test/fixtures/categories/special_categories.yml +9 -9
- data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
- data/test/fixtures/categories_ordered.yml +7 -7
- data/test/fixtures/categories_posts.yml +31 -31
- data/test/fixtures/categorizations.yml +23 -23
- data/test/fixtures/clubs.yml +8 -8
- data/test/fixtures/collections.yml +3 -3
- data/test/fixtures/colleges.yml +3 -3
- data/test/fixtures/comments.yml +65 -65
- data/test/fixtures/companies.yml +67 -67
- data/test/fixtures/computers.yml +10 -10
- data/test/fixtures/courses.yml +8 -8
- data/test/fixtures/customers.yml +25 -25
- data/test/fixtures/dashboards.yml +6 -6
- data/test/fixtures/developers.yml +21 -21
- data/test/fixtures/developers_projects.yml +16 -16
- data/test/fixtures/dog_lovers.yml +7 -7
- data/test/fixtures/dogs.yml +4 -4
- data/test/fixtures/doubloons.yml +3 -3
- data/test/fixtures/edges.yml +5 -5
- data/test/fixtures/entrants.yml +14 -14
- data/test/fixtures/essays.yml +6 -6
- data/test/fixtures/faces.yml +11 -11
- data/test/fixtures/fk_test_has_fk.yml +3 -3
- data/test/fixtures/fk_test_has_pk.yml +1 -1
- data/test/fixtures/friendships.yml +4 -4
- data/test/fixtures/funny_jokes.yml +10 -10
- data/test/fixtures/interests.yml +33 -33
- data/test/fixtures/items.yml +3 -3
- data/test/fixtures/jobs.yml +7 -7
- data/test/fixtures/legacy_things.yml +3 -3
- data/test/fixtures/mateys.yml +4 -4
- data/test/fixtures/member_details.yml +8 -8
- data/test/fixtures/member_types.yml +6 -6
- data/test/fixtures/members.yml +11 -11
- data/test/fixtures/memberships.yml +34 -34
- data/test/fixtures/men.yml +5 -5
- data/test/fixtures/minimalistics.yml +2 -2
- data/test/fixtures/minivans.yml +5 -5
- data/test/fixtures/mixed_case_monkeys.yml +6 -6
- data/test/fixtures/mixins.yml +29 -29
- data/test/fixtures/movies.yml +7 -7
- data/test/fixtures/naked/csv/accounts.csv +1 -1
- data/test/fixtures/naked/yml/accounts.yml +1 -1
- data/test/fixtures/naked/yml/companies.yml +1 -1
- data/test/fixtures/naked/yml/courses.yml +1 -1
- data/test/fixtures/organizations.yml +5 -5
- data/test/fixtures/other_topics.yml +42 -42
- data/test/fixtures/owners.yml +9 -9
- data/test/fixtures/parrots.yml +27 -27
- data/test/fixtures/parrots_pirates.yml +7 -7
- data/test/fixtures/people.yml +24 -24
- data/test/fixtures/peoples_treasures.yml +3 -3
- data/test/fixtures/pets.yml +19 -19
- data/test/fixtures/pirates.yml +12 -12
- data/test/fixtures/posts.yml +80 -80
- data/test/fixtures/price_estimates.yml +7 -7
- data/test/fixtures/products.yml +4 -4
- data/test/fixtures/projects.yml +7 -7
- data/test/fixtures/randomly_named_a9.yml +7 -7
- data/test/fixtures/ratings.yml +14 -14
- data/test/fixtures/readers.yml +11 -11
- data/test/fixtures/references.yml +17 -17
- data/test/fixtures/reserved_words/distinct.yml +5 -5
- data/test/fixtures/reserved_words/distinct_select.yml +11 -11
- data/test/fixtures/reserved_words/group.yml +14 -14
- data/test/fixtures/reserved_words/select.yml +8 -8
- data/test/fixtures/reserved_words/values.yml +7 -7
- data/test/fixtures/ships.yml +6 -6
- data/test/fixtures/speedometers.yml +8 -8
- data/test/fixtures/sponsors.yml +12 -12
- data/test/fixtures/string_key_objects.yml +7 -7
- data/test/fixtures/subscribers.yml +10 -10
- data/test/fixtures/subscriptions.yml +12 -12
- data/test/fixtures/taggings.yml +78 -78
- data/test/fixtures/tags.yml +11 -11
- data/test/fixtures/tasks.yml +7 -7
- data/test/fixtures/teapots.yml +3 -3
- data/test/fixtures/to_be_linked/accounts.yml +2 -2
- data/test/fixtures/to_be_linked/users.yml +10 -10
- data/test/fixtures/topics.yml +49 -49
- data/test/fixtures/toys.yml +14 -14
- data/test/fixtures/traffic_lights.yml +9 -9
- data/test/fixtures/treasures.yml +10 -10
- data/test/fixtures/uuid_children.yml +3 -3
- data/test/fixtures/uuid_parents.yml +2 -2
- data/test/fixtures/variants.yml +4 -4
- data/test/fixtures/vegetables.yml +19 -19
- data/test/fixtures/vertices.yml +3 -3
- data/test/fixtures/warehouse_things.yml +2 -2
- data/test/fixtures/zines.yml +5 -5
- data/test/ibm_db_test.rb +24 -24
- data/test/migrations/10_urban/9_add_expressions.rb +11 -11
- data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
- data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
- data/test/migrations/missing/1000_people_have_middle_names.rb +8 -8
- data/test/migrations/missing/1_people_have_last_names.rb +8 -8
- data/test/migrations/missing/3_we_need_reminders.rb +11 -11
- data/test/migrations/missing/4_innocent_jointable.rb +11 -11
- data/test/migrations/rename/1_we_need_things.rb +10 -10
- data/test/migrations/rename/2_rename_things.rb +8 -8
- data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
- data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
- data/test/migrations/to_copy2/1_create_articles.rb +7 -7
- data/test/migrations/to_copy2/2_create_comments.rb +7 -7
- data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
- data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
- data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
- data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
- data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
- data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
- data/test/migrations/valid/2_we_need_reminders.rb +11 -11
- data/test/migrations/valid/3_innocent_jointable.rb +11 -11
- data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
- data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +11 -11
- data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +11 -11
- data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
- data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
- data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
- data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
- data/test/models/admin.rb +4 -4
- data/test/models/admin/account.rb +2 -2
- data/test/models/admin/randomly_named_c1.rb +3 -3
- data/test/models/admin/user.rb +40 -40
- data/test/models/aircraft.rb +4 -4
- data/test/models/arunit2_model.rb +3 -3
- data/test/models/author.rb +212 -212
- data/test/models/auto_id.rb +4 -4
- data/test/models/autoloadable/extra_firm.rb +2 -2
- data/test/models/binary.rb +1 -1
- data/test/models/bird.rb +12 -12
- data/test/models/book.rb +18 -18
- data/test/models/boolean.rb +2 -2
- data/test/models/bulb.rb +51 -51
- data/test/models/cake_designer.rb +3 -3
- data/test/models/car.rb +26 -26
- data/test/models/carrier.rb +2 -2
- data/test/models/categorization.rb +19 -19
- data/test/models/category.rb +35 -35
- data/test/models/chef.rb +7 -3
- data/test/models/citation.rb +3 -3
- data/test/models/club.rb +23 -23
- data/test/models/college.rb +10 -10
- data/test/models/column.rb +3 -3
- data/test/models/column_name.rb +3 -3
- data/test/models/comment.rb +64 -64
- data/test/models/company.rb +228 -225
- data/test/models/company_in_module.rb +98 -98
- data/test/models/computer.rb +3 -3
- data/test/models/contact.rb +41 -41
- data/test/models/contract.rb +20 -20
- data/test/models/country.rb +7 -7
- data/test/models/course.rb +6 -6
- data/test/models/customer.rb +77 -77
- data/test/models/customer_carrier.rb +14 -14
- data/test/models/dashboard.rb +3 -3
- data/test/models/default.rb +2 -2
- data/test/models/department.rb +4 -4
- data/test/models/developer.rb +255 -252
- data/test/models/dog.rb +5 -5
- data/test/models/dog_lover.rb +5 -5
- data/test/models/doubloon.rb +12 -12
- data/test/models/drink_designer.rb +3 -3
- data/test/models/edge.rb +5 -5
- data/test/models/electron.rb +5 -5
- data/test/models/engine.rb +4 -4
- data/test/models/entrant.rb +3 -3
- data/test/models/essay.rb +5 -5
- data/test/models/event.rb +2 -2
- data/test/models/eye.rb +37 -37
- data/test/models/face.rb +9 -9
- data/test/models/friendship.rb +6 -6
- data/test/models/guid.rb +1 -1
- data/test/models/hotel.rb +9 -6
- data/test/models/image.rb +3 -3
- data/test/models/interest.rb +5 -5
- data/test/models/invoice.rb +4 -4
- data/test/models/item.rb +7 -7
- data/test/models/job.rb +7 -7
- data/test/models/joke.rb +7 -7
- data/test/models/keyboard.rb +3 -3
- data/test/models/legacy_thing.rb +3 -3
- data/test/models/lesson.rb +11 -11
- data/test/models/line_item.rb +3 -3
- data/test/models/liquid.rb +4 -4
- data/test/models/man.rb +11 -11
- data/test/models/matey.rb +4 -4
- data/test/models/member.rb +41 -41
- data/test/models/member_detail.rb +7 -7
- data/test/models/member_type.rb +3 -3
- data/test/models/membership.rb +35 -35
- data/test/models/minimalistic.rb +2 -2
- data/test/models/minivan.rb +9 -9
- data/test/models/mixed_case_monkey.rb +3 -3
- data/test/models/molecule.rb +6 -6
- data/test/models/movie.rb +5 -5
- data/test/models/order.rb +4 -4
- data/test/models/organization.rb +14 -14
- data/test/models/owner.rb +34 -34
- data/test/models/parrot.rb +29 -29
- data/test/models/person.rb +143 -143
- data/test/models/personal_legacy_thing.rb +4 -4
- data/test/models/pet.rb +15 -15
- data/test/models/pirate.rb +92 -92
- data/test/models/possession.rb +3 -3
- data/test/models/post.rb +264 -264
- data/test/models/price_estimate.rb +4 -4
- data/test/models/professor.rb +5 -5
- data/test/models/project.rb +31 -29
- data/test/models/publisher.rb +2 -2
- data/test/models/publisher/article.rb +4 -4
- data/test/models/publisher/magazine.rb +3 -3
- data/test/models/randomly_named_c1.rb +3 -3
- data/test/models/rating.rb +4 -4
- data/test/models/reader.rb +23 -23
- data/test/models/record.rb +2 -2
- data/test/models/reference.rb +22 -22
- data/test/models/reply.rb +61 -61
- data/test/models/ship.rb +33 -33
- data/test/models/ship_part.rb +7 -7
- data/test/models/shop.rb +17 -17
- data/test/models/shop_account.rb +6 -6
- data/test/models/speedometer.rb +6 -6
- data/test/models/sponsor.rb +7 -7
- data/test/models/string_key_object.rb +3 -3
- data/test/models/student.rb +4 -4
- data/test/models/subject.rb +16 -16
- data/test/models/subscriber.rb +8 -8
- data/test/models/subscription.rb +4 -4
- data/test/models/tag.rb +7 -7
- data/test/models/tagging.rb +13 -13
- data/test/models/task.rb +5 -5
- data/test/models/topic.rb +124 -124
- data/test/models/toy.rb +6 -6
- data/test/models/traffic_light.rb +4 -4
- data/test/models/treasure.rb +14 -14
- data/test/models/treaty.rb +7 -7
- data/test/models/tyre.rb +11 -11
- data/test/models/uuid_child.rb +3 -3
- data/test/models/uuid_parent.rb +3 -3
- data/test/models/vegetables.rb +24 -24
- data/test/models/vehicle.rb +6 -6
- data/test/models/vertex.rb +9 -9
- data/test/models/warehouse_thing.rb +5 -5
- data/test/models/wheel.rb +3 -3
- data/test/models/without_table.rb +3 -3
- data/test/models/zine.rb +3 -3
- data/test/schema/mysql2_specific_schema.rb +58 -58
- data/test/schema/mysql_specific_schema.rb +70 -70
- data/test/schema/oracle_specific_schema.rb +43 -43
- data/test/schema/postgresql_specific_schema.rb +202 -202
- data/test/schema/schema.rb +952 -938
- data/test/schema/sqlite_specific_schema.rb +21 -21
- data/test/support/config.rb +43 -43
- data/test/support/connection.rb +22 -22
- data/test/support/connection_helper.rb +14 -14
- data/test/support/ddl_helper.rb +8 -8
- data/test/support/schema_dumping_helper.rb +20 -20
- metadata +2 -2
@@ -1,101 +1,101 @@
|
|
1
|
-
require 'cases/helper'
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
class Migration
|
5
|
-
class ReferencesIndexTest < ActiveRecord::TestCase
|
6
|
-
attr_reader :connection, :table_name
|
7
|
-
|
8
|
-
def setup
|
9
|
-
super
|
10
|
-
@connection = ActiveRecord::Base.connection
|
11
|
-
@table_name = :testings
|
12
|
-
end
|
13
|
-
|
14
|
-
teardown do
|
15
|
-
connection.drop_table :testings rescue nil
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_creates_index
|
19
|
-
connection.create_table table_name do |t|
|
20
|
-
t.references :foo, :index => true
|
21
|
-
end
|
22
|
-
|
23
|
-
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_does_not_create_index
|
27
|
-
connection.create_table table_name do |t|
|
28
|
-
t.references :foo
|
29
|
-
end
|
30
|
-
|
31
|
-
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_does_not_create_index_explicit
|
35
|
-
connection.create_table table_name do |t|
|
36
|
-
t.references :foo, :index => false
|
37
|
-
end
|
38
|
-
|
39
|
-
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_creates_index_with_options
|
43
|
-
connection.create_table table_name do |t|
|
44
|
-
t.references :foo, :index => {:name => :index_testings_on_yo_momma}
|
45
|
-
t.references :bar, :index => {:unique => true}
|
46
|
-
end
|
47
|
-
|
48
|
-
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_yo_momma)
|
49
|
-
assert connection.index_exists?(table_name, :bar_id, :name => :index_testings_on_bar_id, :unique => true)
|
50
|
-
end
|
51
|
-
|
52
|
-
unless current_adapter? :OracleAdapter
|
53
|
-
def test_creates_polymorphic_index
|
54
|
-
connection.create_table table_name do |t|
|
55
|
-
t.references :foo, :polymorphic => true, :index => true
|
56
|
-
end
|
57
|
-
|
58
|
-
assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_creates_index_for_existing_table
|
63
|
-
connection.create_table table_name
|
64
|
-
connection.change_table table_name do |t|
|
65
|
-
t.references :foo, :index => true
|
66
|
-
end
|
67
|
-
|
68
|
-
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_does_not_create_index_for_existing_table
|
72
|
-
connection.create_table table_name
|
73
|
-
connection.change_table table_name do |t|
|
74
|
-
t.references :foo
|
75
|
-
end
|
76
|
-
|
77
|
-
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_does_not_create_index_for_existing_table_explicit
|
81
|
-
connection.create_table table_name
|
82
|
-
connection.change_table table_name do |t|
|
83
|
-
t.references :foo, :index => false
|
84
|
-
end
|
85
|
-
|
86
|
-
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
87
|
-
end
|
88
|
-
|
89
|
-
unless current_adapter? :OracleAdapter
|
90
|
-
def test_creates_polymorphic_index_for_existing_table
|
91
|
-
connection.create_table table_name
|
92
|
-
connection.change_table table_name do |t|
|
93
|
-
t.references :foo, :polymorphic => true, :index => true
|
94
|
-
end
|
95
|
-
|
96
|
-
assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
1
|
+
require 'cases/helper'
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Migration
|
5
|
+
class ReferencesIndexTest < ActiveRecord::TestCase
|
6
|
+
attr_reader :connection, :table_name
|
7
|
+
|
8
|
+
def setup
|
9
|
+
super
|
10
|
+
@connection = ActiveRecord::Base.connection
|
11
|
+
@table_name = :testings
|
12
|
+
end
|
13
|
+
|
14
|
+
teardown do
|
15
|
+
connection.drop_table :testings rescue nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_creates_index
|
19
|
+
connection.create_table table_name do |t|
|
20
|
+
t.references :foo, :index => true
|
21
|
+
end
|
22
|
+
|
23
|
+
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_does_not_create_index
|
27
|
+
connection.create_table table_name do |t|
|
28
|
+
t.references :foo
|
29
|
+
end
|
30
|
+
|
31
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_does_not_create_index_explicit
|
35
|
+
connection.create_table table_name do |t|
|
36
|
+
t.references :foo, :index => false
|
37
|
+
end
|
38
|
+
|
39
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_creates_index_with_options
|
43
|
+
connection.create_table table_name do |t|
|
44
|
+
t.references :foo, :index => {:name => :index_testings_on_yo_momma}
|
45
|
+
t.references :bar, :index => {:unique => true}
|
46
|
+
end
|
47
|
+
|
48
|
+
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_yo_momma)
|
49
|
+
assert connection.index_exists?(table_name, :bar_id, :name => :index_testings_on_bar_id, :unique => true)
|
50
|
+
end
|
51
|
+
|
52
|
+
unless current_adapter? :OracleAdapter
|
53
|
+
def test_creates_polymorphic_index
|
54
|
+
connection.create_table table_name do |t|
|
55
|
+
t.references :foo, :polymorphic => true, :index => true
|
56
|
+
end
|
57
|
+
|
58
|
+
assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_creates_index_for_existing_table
|
63
|
+
connection.create_table table_name
|
64
|
+
connection.change_table table_name do |t|
|
65
|
+
t.references :foo, :index => true
|
66
|
+
end
|
67
|
+
|
68
|
+
assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_does_not_create_index_for_existing_table
|
72
|
+
connection.create_table table_name
|
73
|
+
connection.change_table table_name do |t|
|
74
|
+
t.references :foo
|
75
|
+
end
|
76
|
+
|
77
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_does_not_create_index_for_existing_table_explicit
|
81
|
+
connection.create_table table_name
|
82
|
+
connection.change_table table_name do |t|
|
83
|
+
t.references :foo, :index => false
|
84
|
+
end
|
85
|
+
|
86
|
+
assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
|
87
|
+
end
|
88
|
+
|
89
|
+
unless current_adapter? :OracleAdapter
|
90
|
+
def test_creates_polymorphic_index_for_existing_table
|
91
|
+
connection.create_table table_name
|
92
|
+
connection.change_table table_name do |t|
|
93
|
+
t.references :foo, :polymorphic => true, :index => true
|
94
|
+
end
|
95
|
+
|
96
|
+
assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
@@ -1,116 +1,116 @@
|
|
1
|
-
require "cases/migration/helper"
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
class Migration
|
5
|
-
class ReferencesStatementsTest < ActiveRecord::TestCase
|
6
|
-
include ActiveRecord::Migration::TestHelper
|
7
|
-
|
8
|
-
self.use_transactional_fixtures = false
|
9
|
-
|
10
|
-
def setup
|
11
|
-
super
|
12
|
-
@table_name = :test_models
|
13
|
-
|
14
|
-
add_column table_name, :supplier_id, :integer
|
15
|
-
add_index table_name, :supplier_id
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_creates_reference_id_column
|
19
|
-
add_reference table_name, :user
|
20
|
-
assert column_exists?(table_name, :user_id, :integer)
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_does_not_create_reference_type_column
|
24
|
-
add_reference table_name, :taggable
|
25
|
-
assert_not column_exists?(table_name, :taggable_type, :string)
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_creates_reference_type_column
|
29
|
-
add_reference table_name, :taggable, polymorphic: true
|
30
|
-
assert column_exists?(table_name, :taggable_type, :string)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_creates_reference_id_index
|
34
|
-
add_reference table_name, :user, index: true
|
35
|
-
assert index_exists?(table_name, :user_id)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_does_not_create_reference_id_index
|
39
|
-
add_reference table_name, :user
|
40
|
-
assert_not index_exists?(table_name, :user_id)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_creates_polymorphic_index
|
44
|
-
add_reference table_name, :taggable, polymorphic: true, index: true
|
45
|
-
assert index_exists?(table_name, [:taggable_type, :taggable_id])
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_creates_reference_type_column_with_default
|
49
|
-
add_reference table_name, :taggable, polymorphic: { default: 'Photo' }, index: true
|
50
|
-
assert column_exists?(table_name, :taggable_type, :string, default: 'Photo')
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_creates_named_index
|
54
|
-
add_reference table_name, :tag, index: { name: 'index_taggings_on_tag_id' }
|
55
|
-
assert index_exists?(table_name, :tag_id, name: 'index_taggings_on_tag_id')
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_creates_reference_id_with_specified_type
|
59
|
-
add_reference table_name, :user, type: :string
|
60
|
-
assert column_exists?(table_name, :user_id, :string)
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_deletes_reference_id_column
|
64
|
-
remove_reference table_name, :supplier
|
65
|
-
assert_not column_exists?(table_name, :supplier_id, :integer)
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_deletes_reference_id_index
|
69
|
-
remove_reference table_name, :supplier
|
70
|
-
assert_not index_exists?(table_name, :supplier_id)
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_does_not_delete_reference_type_column
|
74
|
-
with_polymorphic_column do
|
75
|
-
remove_reference table_name, :supplier
|
76
|
-
|
77
|
-
assert_not column_exists?(table_name, :supplier_id, :integer)
|
78
|
-
assert column_exists?(table_name, :supplier_type, :string)
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_deletes_reference_type_column
|
83
|
-
with_polymorphic_column do
|
84
|
-
remove_reference table_name, :supplier, polymorphic: true
|
85
|
-
assert_not column_exists?(table_name, :supplier_type, :string)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_deletes_polymorphic_index
|
90
|
-
with_polymorphic_column do
|
91
|
-
remove_reference table_name, :supplier, polymorphic: true
|
92
|
-
assert_not index_exists?(table_name, [:supplier_id, :supplier_type])
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_add_belongs_to_alias
|
97
|
-
add_belongs_to table_name, :user
|
98
|
-
assert column_exists?(table_name, :user_id, :integer)
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_remove_belongs_to_alias
|
102
|
-
remove_belongs_to table_name, :supplier
|
103
|
-
assert_not column_exists?(table_name, :supplier_id, :integer)
|
104
|
-
end
|
105
|
-
|
106
|
-
private
|
107
|
-
|
108
|
-
def with_polymorphic_column
|
109
|
-
add_column table_name, :supplier_type, :string
|
110
|
-
add_index table_name, [:supplier_id, :supplier_type]
|
111
|
-
|
112
|
-
yield
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|
1
|
+
require "cases/migration/helper"
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Migration
|
5
|
+
class ReferencesStatementsTest < ActiveRecord::TestCase
|
6
|
+
include ActiveRecord::Migration::TestHelper
|
7
|
+
|
8
|
+
self.use_transactional_fixtures = false
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
@table_name = :test_models
|
13
|
+
|
14
|
+
add_column table_name, :supplier_id, :integer
|
15
|
+
add_index table_name, :supplier_id
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_creates_reference_id_column
|
19
|
+
add_reference table_name, :user
|
20
|
+
assert column_exists?(table_name, :user_id, :integer)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_does_not_create_reference_type_column
|
24
|
+
add_reference table_name, :taggable
|
25
|
+
assert_not column_exists?(table_name, :taggable_type, :string)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_creates_reference_type_column
|
29
|
+
add_reference table_name, :taggable, polymorphic: true
|
30
|
+
assert column_exists?(table_name, :taggable_type, :string)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_creates_reference_id_index
|
34
|
+
add_reference table_name, :user, index: true
|
35
|
+
assert index_exists?(table_name, :user_id)
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_does_not_create_reference_id_index
|
39
|
+
add_reference table_name, :user
|
40
|
+
assert_not index_exists?(table_name, :user_id)
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_creates_polymorphic_index
|
44
|
+
add_reference table_name, :taggable, polymorphic: true, index: true
|
45
|
+
assert index_exists?(table_name, [:taggable_type, :taggable_id])
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_creates_reference_type_column_with_default
|
49
|
+
add_reference table_name, :taggable, polymorphic: { default: 'Photo' }, index: true
|
50
|
+
assert column_exists?(table_name, :taggable_type, :string, default: 'Photo')
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_creates_named_index
|
54
|
+
add_reference table_name, :tag, index: { name: 'index_taggings_on_tag_id' }
|
55
|
+
assert index_exists?(table_name, :tag_id, name: 'index_taggings_on_tag_id')
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_creates_reference_id_with_specified_type
|
59
|
+
add_reference table_name, :user, type: :string
|
60
|
+
assert column_exists?(table_name, :user_id, :string)
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_deletes_reference_id_column
|
64
|
+
remove_reference table_name, :supplier
|
65
|
+
assert_not column_exists?(table_name, :supplier_id, :integer)
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_deletes_reference_id_index
|
69
|
+
remove_reference table_name, :supplier
|
70
|
+
assert_not index_exists?(table_name, :supplier_id)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_does_not_delete_reference_type_column
|
74
|
+
with_polymorphic_column do
|
75
|
+
remove_reference table_name, :supplier
|
76
|
+
|
77
|
+
assert_not column_exists?(table_name, :supplier_id, :integer)
|
78
|
+
assert column_exists?(table_name, :supplier_type, :string)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_deletes_reference_type_column
|
83
|
+
with_polymorphic_column do
|
84
|
+
remove_reference table_name, :supplier, polymorphic: true
|
85
|
+
assert_not column_exists?(table_name, :supplier_type, :string)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_deletes_polymorphic_index
|
90
|
+
with_polymorphic_column do
|
91
|
+
remove_reference table_name, :supplier, polymorphic: true
|
92
|
+
assert_not index_exists?(table_name, [:supplier_id, :supplier_type])
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_add_belongs_to_alias
|
97
|
+
add_belongs_to table_name, :user
|
98
|
+
assert column_exists?(table_name, :user_id, :integer)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_remove_belongs_to_alias
|
102
|
+
remove_belongs_to table_name, :supplier
|
103
|
+
assert_not column_exists?(table_name, :supplier_id, :integer)
|
104
|
+
end
|
105
|
+
|
106
|
+
private
|
107
|
+
|
108
|
+
def with_polymorphic_column
|
109
|
+
add_column table_name, :supplier_type, :string
|
110
|
+
add_index table_name, [:supplier_id, :supplier_type]
|
111
|
+
|
112
|
+
yield
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
@@ -1,93 +1,93 @@
|
|
1
|
-
require "cases/migration/helper"
|
2
|
-
|
3
|
-
module ActiveRecord
|
4
|
-
class Migration
|
5
|
-
class RenameTableTest < ActiveRecord::TestCase
|
6
|
-
include ActiveRecord::Migration::TestHelper
|
7
|
-
|
8
|
-
self.use_transactional_fixtures = false
|
9
|
-
|
10
|
-
def setup
|
11
|
-
super
|
12
|
-
add_column 'test_models', :url, :string
|
13
|
-
remove_column 'test_models', :created_at
|
14
|
-
remove_column 'test_models', :updated_at
|
15
|
-
end
|
16
|
-
|
17
|
-
def teardown
|
18
|
-
rename_table :octopi, :test_models if connection.table_exists? :octopi
|
19
|
-
super
|
20
|
-
end
|
21
|
-
|
22
|
-
if current_adapter?(:SQLite3Adapter)
|
23
|
-
def test_rename_table_for_sqlite_should_work_with_reserved_words
|
24
|
-
renamed = false
|
25
|
-
|
26
|
-
add_column :test_models, :url, :string
|
27
|
-
connection.rename_table :references, :old_references
|
28
|
-
connection.rename_table :test_models, :references
|
29
|
-
|
30
|
-
renamed = true
|
31
|
-
|
32
|
-
# Using explicit id in insert for compatibility across all databases
|
33
|
-
connection.execute "INSERT INTO 'references' (url, created_at, updated_at) VALUES ('http://rubyonrails.com', 0, 0)"
|
34
|
-
assert_equal 'http://rubyonrails.com', connection.select_value("SELECT url FROM 'references' WHERE id=1")
|
35
|
-
ensure
|
36
|
-
return unless renamed
|
37
|
-
connection.rename_table :references, :test_models
|
38
|
-
connection.rename_table :old_references, :references
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_rename_table
|
43
|
-
rename_table :test_models, :octopi
|
44
|
-
|
45
|
-
connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
|
46
|
-
|
47
|
-
assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_rename_table_with_an_index
|
51
|
-
add_index :test_models, :url
|
52
|
-
|
53
|
-
rename_table :test_models, :octopi
|
54
|
-
|
55
|
-
connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
|
56
|
-
|
57
|
-
assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
|
58
|
-
index = connection.indexes(:octopi).first
|
59
|
-
assert index.columns.include?("url")
|
60
|
-
assert_equal 'index_octopi_on_url', index.name
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_rename_table_does_not_rename_custom_named_index
|
64
|
-
add_index :test_models, :url, name: 'special_url_idx'
|
65
|
-
|
66
|
-
rename_table :test_models, :octopi
|
67
|
-
|
68
|
-
assert_equal ['special_url_idx'], connection.indexes(:octopi).map(&:name)
|
69
|
-
end
|
70
|
-
|
71
|
-
if current_adapter?(:PostgreSQLAdapter)
|
72
|
-
def test_rename_table_for_postgresql_should_also_rename_default_sequence
|
73
|
-
rename_table :test_models, :octopi
|
74
|
-
|
75
|
-
pk, seq = connection.pk_and_sequence_for('octopi')
|
76
|
-
|
77
|
-
assert_equal ConnectionAdapters::PostgreSQL::Name.new("public", "octopi_#{pk}_seq"), seq
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_renaming_table_doesnt_attempt_to_rename_non_existent_sequences
|
81
|
-
enable_extension!('uuid-ossp', connection)
|
82
|
-
connection.create_table :cats, id: :uuid
|
83
|
-
assert_nothing_raised { rename_table :cats, :felines }
|
84
|
-
assert connection.table_exists? :felines
|
85
|
-
ensure
|
86
|
-
disable_extension!('uuid-ossp', connection)
|
87
|
-
connection.drop_table :cats if connection.table_exists? :cats
|
88
|
-
connection.drop_table :felines if connection.table_exists? :felines
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
1
|
+
require "cases/migration/helper"
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Migration
|
5
|
+
class RenameTableTest < ActiveRecord::TestCase
|
6
|
+
include ActiveRecord::Migration::TestHelper
|
7
|
+
|
8
|
+
self.use_transactional_fixtures = false
|
9
|
+
|
10
|
+
def setup
|
11
|
+
super
|
12
|
+
add_column 'test_models', :url, :string
|
13
|
+
remove_column 'test_models', :created_at
|
14
|
+
remove_column 'test_models', :updated_at
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
rename_table :octopi, :test_models if connection.table_exists? :octopi
|
19
|
+
super
|
20
|
+
end
|
21
|
+
|
22
|
+
if current_adapter?(:SQLite3Adapter)
|
23
|
+
def test_rename_table_for_sqlite_should_work_with_reserved_words
|
24
|
+
renamed = false
|
25
|
+
|
26
|
+
add_column :test_models, :url, :string
|
27
|
+
connection.rename_table :references, :old_references
|
28
|
+
connection.rename_table :test_models, :references
|
29
|
+
|
30
|
+
renamed = true
|
31
|
+
|
32
|
+
# Using explicit id in insert for compatibility across all databases
|
33
|
+
connection.execute "INSERT INTO 'references' (url, created_at, updated_at) VALUES ('http://rubyonrails.com', 0, 0)"
|
34
|
+
assert_equal 'http://rubyonrails.com', connection.select_value("SELECT url FROM 'references' WHERE id=1")
|
35
|
+
ensure
|
36
|
+
return unless renamed
|
37
|
+
connection.rename_table :references, :test_models
|
38
|
+
connection.rename_table :old_references, :references
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_rename_table
|
43
|
+
rename_table :test_models, :octopi
|
44
|
+
|
45
|
+
connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
|
46
|
+
|
47
|
+
assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_rename_table_with_an_index
|
51
|
+
add_index :test_models, :url
|
52
|
+
|
53
|
+
rename_table :test_models, :octopi
|
54
|
+
|
55
|
+
connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
|
56
|
+
|
57
|
+
assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
|
58
|
+
index = connection.indexes(:octopi).first
|
59
|
+
assert index.columns.include?("url")
|
60
|
+
assert_equal 'index_octopi_on_url', index.name
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_rename_table_does_not_rename_custom_named_index
|
64
|
+
add_index :test_models, :url, name: 'special_url_idx'
|
65
|
+
|
66
|
+
rename_table :test_models, :octopi
|
67
|
+
|
68
|
+
assert_equal ['special_url_idx'], connection.indexes(:octopi).map(&:name)
|
69
|
+
end
|
70
|
+
|
71
|
+
if current_adapter?(:PostgreSQLAdapter)
|
72
|
+
def test_rename_table_for_postgresql_should_also_rename_default_sequence
|
73
|
+
rename_table :test_models, :octopi
|
74
|
+
|
75
|
+
pk, seq = connection.pk_and_sequence_for('octopi')
|
76
|
+
|
77
|
+
assert_equal ConnectionAdapters::PostgreSQL::Name.new("public", "octopi_#{pk}_seq"), seq
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_renaming_table_doesnt_attempt_to_rename_non_existent_sequences
|
81
|
+
enable_extension!('uuid-ossp', connection)
|
82
|
+
connection.create_table :cats, id: :uuid
|
83
|
+
assert_nothing_raised { rename_table :cats, :felines }
|
84
|
+
assert connection.table_exists? :felines
|
85
|
+
ensure
|
86
|
+
disable_extension!('uuid-ossp', connection)
|
87
|
+
connection.drop_table :cats if connection.table_exists? :cats
|
88
|
+
connection.drop_table :felines if connection.table_exists? :felines
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|