ibm_db 4.0.0-x86-mingw32 → 5.0.2-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 +5 -5
- data/MANIFEST +14 -14
- data/README +208 -208
- data/ext/Makefile +269 -0
- data/ext/Makefile.nt32 +181 -181
- data/ext/Makefile.nt32.191 +212 -212
- data/ext/extconf.rb +322 -291
- data/ext/gil_release_version +3 -0
- data/ext/ibm_db.c +11879 -11887
- data/ext/mkmf.log +110 -0
- 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/ext/unicode_support_version +3 -0
- data/init.rb +41 -41
- data/lib/IBM_DB.rb +27 -27
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3533 -3452
- data/lib/active_record/connection_adapters/ibmdb_adapter.rb +5 -5
- data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
- data/lib/mswin32/ibm_db.rb +90 -90
- data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
- data/test/active_record/connection_adapters/fake_adapter.rb +49 -49
- data/test/assets/example.log +1 -1
- data/test/assets/test.txt +1 -1
- data/test/cases/adapter_test.rb +351 -351
- data/test/cases/adapters/mysql2/active_schema_test.rb +193 -193
- data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -50
- data/test/cases/adapters/mysql2/boolean_test.rb +100 -100
- data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -63
- data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -54
- data/test/cases/adapters/mysql2/connection_test.rb +210 -210
- data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -45
- data/test/cases/adapters/mysql2/enum_test.rb +26 -26
- data/test/cases/adapters/mysql2/explain_test.rb +21 -21
- data/test/cases/adapters/mysql2/json_test.rb +195 -195
- data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -83
- data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -152
- data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -59
- data/test/cases/adapters/mysql2/schema_test.rb +126 -126
- data/test/cases/adapters/mysql2/sp_test.rb +36 -36
- data/test/cases/adapters/mysql2/sql_types_test.rb +14 -14
- data/test/cases/adapters/mysql2/table_options_test.rb +42 -42
- data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -66
- data/test/cases/adapters/postgresql/active_schema_test.rb +98 -98
- data/test/cases/adapters/postgresql/array_test.rb +339 -339
- data/test/cases/adapters/postgresql/bit_string_test.rb +82 -82
- data/test/cases/adapters/postgresql/bytea_test.rb +134 -134
- data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -26
- data/test/cases/adapters/postgresql/change_schema_test.rb +38 -38
- data/test/cases/adapters/postgresql/cidr_test.rb +25 -25
- data/test/cases/adapters/postgresql/citext_test.rb +78 -78
- data/test/cases/adapters/postgresql/collation_test.rb +53 -53
- data/test/cases/adapters/postgresql/composite_test.rb +132 -132
- data/test/cases/adapters/postgresql/connection_test.rb +257 -257
- data/test/cases/adapters/postgresql/datatype_test.rb +92 -92
- data/test/cases/adapters/postgresql/domain_test.rb +47 -47
- data/test/cases/adapters/postgresql/enum_test.rb +91 -91
- data/test/cases/adapters/postgresql/explain_test.rb +20 -20
- data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -63
- data/test/cases/adapters/postgresql/full_text_test.rb +44 -44
- data/test/cases/adapters/postgresql/geometric_test.rb +378 -378
- data/test/cases/adapters/postgresql/hstore_test.rb +382 -382
- data/test/cases/adapters/postgresql/infinity_test.rb +69 -69
- data/test/cases/adapters/postgresql/integer_test.rb +25 -25
- data/test/cases/adapters/postgresql/json_test.rb +237 -237
- data/test/cases/adapters/postgresql/ltree_test.rb +53 -53
- data/test/cases/adapters/postgresql/money_test.rb +96 -96
- data/test/cases/adapters/postgresql/network_test.rb +94 -94
- data/test/cases/adapters/postgresql/numbers_test.rb +49 -49
- data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -405
- data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -22
- data/test/cases/adapters/postgresql/quoting_test.rb +44 -44
- data/test/cases/adapters/postgresql/range_test.rb +343 -343
- data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -111
- data/test/cases/adapters/postgresql/rename_table_test.rb +34 -34
- data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -119
- data/test/cases/adapters/postgresql/schema_test.rb +597 -597
- data/test/cases/adapters/postgresql/serial_test.rb +154 -154
- data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -41
- data/test/cases/adapters/postgresql/timestamp_test.rb +90 -90
- data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -33
- data/test/cases/adapters/postgresql/utils_test.rb +62 -62
- data/test/cases/adapters/postgresql/uuid_test.rb +294 -294
- data/test/cases/adapters/postgresql/xml_test.rb +54 -54
- data/test/cases/adapters/sqlite3/collation_test.rb +53 -53
- data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -98
- data/test/cases/adapters/sqlite3/explain_test.rb +21 -21
- data/test/cases/adapters/sqlite3/quoting_test.rb +101 -101
- data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -441
- data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -24
- data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -20
- data/test/cases/aggregations_test.rb +168 -168
- data/test/cases/ar_schema_test.rb +146 -146
- data/test/cases/associations/association_scope_test.rb +16 -16
- data/test/cases/associations/belongs_to_associations_test.rb +1141 -1141
- data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -41
- data/test/cases/associations/callbacks_test.rb +190 -190
- data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
- data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
- data/test/cases/associations/eager_load_nested_include_test.rb +126 -126
- data/test/cases/associations/eager_singularization_test.rb +148 -148
- data/test/cases/associations/eager_test.rb +1514 -1514
- data/test/cases/associations/extension_test.rb +87 -87
- data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +1004 -1004
- data/test/cases/associations/has_many_associations_test.rb +2501 -2501
- data/test/cases/associations/has_many_through_associations_test.rb +1271 -1271
- data/test/cases/associations/has_one_associations_test.rb +707 -707
- data/test/cases/associations/has_one_through_associations_test.rb +383 -383
- data/test/cases/associations/inner_join_association_test.rb +139 -139
- data/test/cases/associations/inverse_associations_test.rb +733 -733
- data/test/cases/associations/join_model_test.rb +777 -777
- data/test/cases/associations/left_outer_join_association_test.rb +88 -88
- data/test/cases/associations/nested_through_associations_test.rb +579 -579
- data/test/cases/associations/required_test.rb +102 -102
- data/test/cases/associations_test.rb +385 -385
- data/test/cases/attribute_decorators_test.rb +126 -125
- data/test/cases/attribute_methods/read_test.rb +60 -60
- data/test/cases/attribute_methods_test.rb +1009 -1009
- data/test/cases/attribute_set_test.rb +270 -270
- data/test/cases/attribute_test.rb +246 -246
- data/test/cases/attributes_test.rb +253 -253
- data/test/cases/autosave_association_test.rb +1708 -1708
- data/test/cases/base_test.rb +1713 -1713
- data/test/cases/batches_test.rb +489 -489
- data/test/cases/binary_test.rb +44 -44
- data/test/cases/bind_parameter_test.rb +110 -110
- data/test/cases/cache_key_test.rb +26 -25
- data/test/cases/calculations_test.rb +798 -798
- data/test/cases/callbacks_test.rb +636 -636
- data/test/cases/clone_test.rb +40 -40
- data/test/cases/coders/json_test.rb +15 -15
- data/test/cases/coders/yaml_column_test.rb +63 -63
- data/test/cases/collection_cache_key_test.rb +115 -115
- data/test/cases/column_alias_test.rb +17 -17
- data/test/cases/column_definition_test.rb +92 -92
- data/test/cases/comment_test.rb +145 -143
- data/test/cases/connection_adapters/adapter_leasing_test.rb +56 -56
- data/test/cases/connection_adapters/connection_handler_test.rb +160 -160
- data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
- data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +255 -255
- data/test/cases/connection_adapters/mysql_type_lookup_test.rb +69 -69
- data/test/cases/connection_adapters/quoting_test.rb +13 -13
- data/test/cases/connection_adapters/schema_cache_test.rb +61 -61
- data/test/cases/connection_adapters/type_lookup_test.rb +118 -118
- data/test/cases/connection_management_test.rb +112 -112
- data/test/cases/connection_pool_test.rb +521 -521
- data/test/cases/connection_specification/resolver_test.rb +131 -131
- data/test/cases/core_test.rb +112 -112
- data/test/cases/counter_cache_test.rb +214 -214
- data/test/cases/custom_locking_test.rb +17 -17
- data/test/cases/database_statements_test.rb +34 -34
- data/test/cases/date_test.rb +44 -44
- data/test/cases/date_time_precision_test.rb +107 -106
- data/test/cases/date_time_test.rb +61 -61
- data/test/cases/defaults_test.rb +219 -218
- data/test/cases/dirty_test.rb +763 -763
- data/test/cases/disconnected_test.rb +30 -30
- data/test/cases/dup_test.rb +157 -157
- data/test/cases/enum_test.rb +444 -444
- data/test/cases/errors_test.rb +16 -16
- data/test/cases/explain_subscriber_test.rb +64 -64
- data/test/cases/explain_test.rb +87 -87
- data/test/cases/finder_respond_to_test.rb +60 -60
- data/test/cases/finder_test.rb +1294 -1294
- data/test/cases/fixture_set/file_test.rb +156 -156
- data/test/cases/fixtures_test.rb +988 -988
- data/test/cases/forbidden_attributes_protection_test.rb +165 -165
- data/test/cases/habtm_destroy_order_test.rb +61 -61
- data/test/cases/helper.rb +204 -204
- data/test/cases/hot_compatibility_test.rb +142 -142
- data/test/cases/i18n_test.rb +45 -45
- data/test/cases/inheritance_test.rb +606 -606
- data/test/cases/integration_test.rb +155 -155
- data/test/cases/invalid_connection_test.rb +24 -24
- data/test/cases/invertible_migration_test.rb +387 -387
- data/test/cases/json_serialization_test.rb +311 -311
- data/test/cases/locking_test.rb +493 -493
- data/test/cases/log_subscriber_test.rb +225 -225
- data/test/cases/migration/change_schema_test.rb +458 -458
- data/test/cases/migration/change_table_test.rb +256 -256
- data/test/cases/migration/column_attributes_test.rb +176 -176
- data/test/cases/migration/column_positioning_test.rb +56 -56
- data/test/cases/migration/columns_test.rb +310 -310
- data/test/cases/migration/command_recorder_test.rb +350 -350
- data/test/cases/migration/compatibility_test.rb +118 -118
- data/test/cases/migration/create_join_table_test.rb +157 -157
- data/test/cases/migration/foreign_key_test.rb +362 -360
- data/test/cases/migration/helper.rb +39 -39
- data/test/cases/migration/index_test.rb +218 -218
- data/test/cases/migration/logger_test.rb +36 -36
- data/test/cases/migration/pending_migrations_test.rb +52 -52
- data/test/cases/migration/references_foreign_key_test.rb +221 -216
- data/test/cases/migration/references_index_test.rb +101 -101
- data/test/cases/migration/references_statements_test.rb +136 -136
- data/test/cases/migration/rename_table_test.rb +93 -93
- data/test/cases/migration_test.rb +1157 -1157
- data/test/cases/migrator_test.rb +471 -470
- data/test/cases/mixin_test.rb +68 -68
- data/test/cases/modules_test.rb +172 -172
- data/test/cases/multiparameter_attributes_test.rb +372 -372
- data/test/cases/multiple_db_test.rb +122 -122
- data/test/cases/nested_attributes_test.rb +1098 -1098
- data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
- data/test/cases/persistence_test.rb +1001 -1001
- data/test/cases/pooled_connections_test.rb +81 -81
- data/test/cases/primary_keys_test.rb +376 -376
- data/test/cases/query_cache_test.rb +446 -446
- data/test/cases/quoting_test.rb +202 -202
- data/test/cases/readonly_test.rb +119 -119
- data/test/cases/reaper_test.rb +85 -85
- data/test/cases/reflection_test.rb +509 -509
- data/test/cases/relation/delegation_test.rb +63 -63
- data/test/cases/relation/merging_test.rb +157 -157
- data/test/cases/relation/mutation_test.rb +183 -183
- data/test/cases/relation/or_test.rb +92 -92
- data/test/cases/relation/predicate_builder_test.rb +16 -16
- data/test/cases/relation/record_fetch_warning_test.rb +40 -40
- data/test/cases/relation/where_chain_test.rb +105 -105
- data/test/cases/relation/where_clause_test.rb +182 -182
- data/test/cases/relation/where_test.rb +322 -322
- data/test/cases/relation_test.rb +328 -328
- data/test/cases/relations_test.rb +2026 -2026
- data/test/cases/reload_models_test.rb +22 -22
- data/test/cases/result_test.rb +90 -90
- data/test/cases/sanitize_test.rb +176 -176
- data/test/cases/schema_dumper_test.rb +457 -457
- data/test/cases/schema_loading_test.rb +52 -52
- data/test/cases/scoping/default_scoping_test.rb +528 -528
- data/test/cases/scoping/named_scoping_test.rb +561 -561
- data/test/cases/scoping/relation_scoping_test.rb +400 -400
- data/test/cases/secure_token_test.rb +32 -32
- data/test/cases/serialization_test.rb +104 -104
- data/test/cases/serialized_attribute_test.rb +364 -364
- data/test/cases/statement_cache_test.rb +136 -136
- data/test/cases/store_test.rb +195 -195
- data/test/cases/suppressor_test.rb +63 -63
- data/test/cases/tasks/database_tasks_test.rb +462 -462
- data/test/cases/tasks/mysql_rake_test.rb +345 -345
- data/test/cases/tasks/postgresql_rake_test.rb +304 -304
- data/test/cases/tasks/sqlite_rake_test.rb +220 -220
- data/test/cases/test_case.rb +131 -131
- data/test/cases/test_fixtures_test.rb +36 -36
- data/test/cases/time_precision_test.rb +103 -102
- data/test/cases/timestamp_test.rb +501 -501
- data/test/cases/touch_later_test.rb +121 -121
- data/test/cases/transaction_callbacks_test.rb +518 -518
- data/test/cases/transaction_isolation_test.rb +106 -106
- data/test/cases/transactions_test.rb +835 -834
- data/test/cases/type/adapter_specific_registry_test.rb +133 -133
- data/test/cases/type/date_time_test.rb +14 -14
- data/test/cases/type/integer_test.rb +27 -27
- data/test/cases/type/string_test.rb +22 -22
- data/test/cases/type/type_map_test.rb +177 -177
- data/test/cases/type_test.rb +39 -39
- data/test/cases/types_test.rb +24 -24
- data/test/cases/unconnected_test.rb +33 -33
- data/test/cases/validations/absence_validation_test.rb +73 -73
- data/test/cases/validations/association_validation_test.rb +97 -97
- data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
- data/test/cases/validations/i18n_validation_test.rb +86 -86
- data/test/cases/validations/length_validation_test.rb +79 -79
- data/test/cases/validations/presence_validation_test.rb +103 -103
- data/test/cases/validations/uniqueness_validation_test.rb +548 -548
- data/test/cases/validations_repair_helper.rb +19 -19
- data/test/cases/validations_test.rb +194 -194
- data/test/cases/view_test.rb +216 -216
- data/test/cases/yaml_serialization_test.rb +121 -121
- data/test/config.example.yml +97 -97
- data/test/config.rb +5 -5
- data/test/connections/native_ibm_db/connection.rb +44 -0
- data/test/fixtures/accounts.yml +29 -29
- data/test/fixtures/admin/accounts.yml +2 -2
- 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/bad_posts.yml +9 -9
- data/test/fixtures/binaries.yml +133 -133
- data/test/fixtures/books.yml +31 -31
- 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/content.yml +3 -3
- data/test/fixtures/content_positions.yml +3 -3
- data/test/fixtures/courses.yml +8 -8
- data/test/fixtures/customers.yml +25 -25
- data/test/fixtures/dashboards.yml +6 -6
- data/test/fixtures/dead_parrots.yml +5 -5
- data/test/fixtures/developers.yml +22 -22
- 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/live_parrots.yml +4 -4
- 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/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/naked/yml/parrots.yml +2 -2
- data/test/fixtures/naked/yml/trees.yml +3 -3
- data/test/fixtures/nodes.yml +29 -29
- data/test/fixtures/organizations.yml +5 -5
- data/test/fixtures/other_comments.yml +6 -6
- data/test/fixtures/other_dogs.yml +2 -2
- data/test/fixtures/other_posts.yml +7 -7
- 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 -15
- data/test/fixtures/posts.yml +80 -80
- data/test/fixtures/price_estimates.yml +16 -16
- data/test/fixtures/products.yml +4 -4
- data/test/fixtures/projects.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/trees.yml +3 -3
- 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/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 +9 -9
- data/test/migrations/missing/1_people_have_last_names.rb +9 -9
- data/test/migrations/missing/3_we_need_reminders.rb +12 -12
- data/test/migrations/missing/4_innocent_jointable.rb +12 -12
- data/test/migrations/rename/1_we_need_things.rb +11 -11
- data/test/migrations/rename/2_rename_things.rb +9 -9
- 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 +12 -12
- data/test/migrations/valid/3_innocent_jointable.rb +12 -12
- 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 +12 -12
- data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +12 -12
- 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 +5 -5
- data/test/models/admin/account.rb +3 -3
- data/test/models/admin/user.rb +40 -40
- data/test/models/aircraft.rb +5 -5
- data/test/models/arunit2_model.rb +3 -3
- data/test/models/author.rb +209 -209
- data/test/models/auto_id.rb +4 -4
- data/test/models/autoloadable/extra_firm.rb +2 -2
- data/test/models/binary.rb +2 -2
- data/test/models/bird.rb +12 -12
- data/test/models/book.rb +23 -23
- data/test/models/boolean.rb +2 -2
- data/test/models/bulb.rb +52 -52
- data/test/models/cake_designer.rb +3 -3
- data/test/models/car.rb +29 -29
- data/test/models/carrier.rb +2 -2
- data/test/models/cat.rb +10 -10
- data/test/models/categorization.rb +19 -19
- data/test/models/category.rb +35 -35
- data/test/models/chef.rb +8 -8
- data/test/models/citation.rb +3 -3
- data/test/models/club.rb +25 -25
- 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 +76 -76
- data/test/models/company.rb +230 -230
- 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/content.rb +40 -40
- 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 +83 -83
- 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 +274 -274
- 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 +3 -3
- 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 +2 -2
- data/test/models/guitar.rb +4 -4
- data/test/models/hotel.rb +11 -11
- 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 +42 -42
- data/test/models/member_detail.rb +8 -8
- data/test/models/member_type.rb +3 -3
- data/test/models/membership.rb +35 -35
- data/test/models/mentor.rb +2 -2
- 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/mocktail_designer.rb +2 -2
- data/test/models/molecule.rb +6 -6
- data/test/models/movie.rb +5 -5
- data/test/models/node.rb +5 -5
- data/test/models/non_primary_key.rb +2 -2
- data/test/models/notification.rb +3 -3
- data/test/models/order.rb +4 -4
- data/test/models/organization.rb +14 -14
- data/test/models/other_dog.rb +5 -5
- data/test/models/owner.rb +37 -37
- data/test/models/parrot.rb +28 -28
- data/test/models/person.rb +142 -142
- data/test/models/personal_legacy_thing.rb +4 -4
- data/test/models/pet.rb +18 -18
- data/test/models/pet_treasure.rb +6 -6
- data/test/models/pirate.rb +92 -92
- data/test/models/possession.rb +3 -3
- data/test/models/post.rb +273 -273
- data/test/models/price_estimate.rb +4 -4
- data/test/models/professor.rb +5 -5
- data/test/models/project.rb +40 -40
- 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/rating.rb +4 -4
- data/test/models/reader.rb +23 -23
- data/test/models/recipe.rb +3 -3
- 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 +39 -39
- data/test/models/ship_part.rb +8 -8
- 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 +13 -13
- data/test/models/tagging.rb +13 -13
- data/test/models/task.rb +5 -5
- data/test/models/topic.rb +118 -118
- 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/tree.rb +3 -3
- data/test/models/tuning_peg.rb +4 -4
- data/test/models/tyre.rb +11 -11
- data/test/models/user.rb +14 -14
- data/test/models/uuid_child.rb +3 -3
- data/test/models/uuid_item.rb +6 -6
- 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/i5/ibm_db_specific_schema.rb +137 -0
- data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
- data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
- data/test/schema/mysql2_specific_schema.rb +68 -68
- data/test/schema/oracle_specific_schema.rb +40 -40
- data/test/schema/postgresql_specific_schema.rb +114 -114
- data/test/schema/schema.rb +1057 -1057
- data/test/schema/schema.rb.original +1057 -1057
- data/test/schema/sqlite_specific_schema.rb +18 -18
- data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
- data/test/support/config.rb +43 -43
- data/test/support/connection.rb +23 -23
- 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
- data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -22
- data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -182
- metadata +24 -13
- data/test/fixtures/author_addresses.original +0 -11
- data/test/fixtures/authors.original +0 -17
@@ -0,0 +1,137 @@
|
|
1
|
+
=begin
|
2
|
+
ActiveRecord::Schema.define do
|
3
|
+
|
4
|
+
execute "DROP TABLE COMMENTS" rescue nil
|
5
|
+
execute "DROP TABLE POSTS" rescue nil
|
6
|
+
execute "DROP TABLE ITEMS" rescue nil
|
7
|
+
execute "DROP TABLE TOPICS" rescue nil
|
8
|
+
execute "DROP TABLE fk_test_has_fk" rescue nil
|
9
|
+
execute "DROP TABLE fk_test_has_pk" rescue nil
|
10
|
+
execute "DROP TABLE CIRCLES" rescue nil
|
11
|
+
execute "DROP TABLE SQUARES" rescue nil
|
12
|
+
execute "DROP TABLE TRIANGLES" rescue nil
|
13
|
+
execute "DROP TABLE NON_POLY_ONES" rescue nil
|
14
|
+
execute "DROP TABLE NON_POLY_TWOS" rescue nil
|
15
|
+
execute "DROP TABLE PAINT_COLORS" rescue nil
|
16
|
+
execute "DROP TABLE PAINT_TEXTURES" rescue nil
|
17
|
+
|
18
|
+
execute <<_SQL
|
19
|
+
CREATE TABLE comments (
|
20
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
21
|
+
post_id INT NOT NULL,
|
22
|
+
type VARCHAR(255) DEFAULT NULL,
|
23
|
+
body VARCHAR(3000)NOT NULL,
|
24
|
+
PRIMARY KEY (id)
|
25
|
+
);
|
26
|
+
_SQL
|
27
|
+
|
28
|
+
execute <<_SQL
|
29
|
+
CREATE TABLE posts (
|
30
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
31
|
+
author_id INT DEFAULT NULL,
|
32
|
+
title VARCHAR(255) NOT NULL,
|
33
|
+
type VARCHAR(255) DEFAULT NULL,
|
34
|
+
body VARCHAR(3000) NOT NULL,
|
35
|
+
comments_count integer DEFAULT 0,
|
36
|
+
taggings_count integer DEFAULT 0,
|
37
|
+
PRIMARY KEY (id)
|
38
|
+
);
|
39
|
+
_SQL
|
40
|
+
|
41
|
+
execute <<_SQL
|
42
|
+
CREATE TABLE fk_test_has_pk (
|
43
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
44
|
+
PRIMARY KEY (id)
|
45
|
+
);
|
46
|
+
_SQL
|
47
|
+
|
48
|
+
execute <<_SQL
|
49
|
+
CREATE TABLE fk_test_has_fk (
|
50
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
51
|
+
fk_id integer NOT NULL,
|
52
|
+
PRIMARY KEY (id),
|
53
|
+
FOREIGN KEY (fk_id) REFERENCES fk_test_has_pk(id)
|
54
|
+
);
|
55
|
+
_SQL
|
56
|
+
|
57
|
+
execute <<_SQL
|
58
|
+
CREATE TABLE items (
|
59
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
60
|
+
name VARCHAR(255) DEFAULT NULL,
|
61
|
+
PRIMARY KEY (id)
|
62
|
+
);
|
63
|
+
_SQL
|
64
|
+
|
65
|
+
execute <<_SQL
|
66
|
+
CREATE TABLE circles (
|
67
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
68
|
+
PRIMARY KEY (id)
|
69
|
+
);
|
70
|
+
_SQL
|
71
|
+
|
72
|
+
execute <<_SQL
|
73
|
+
CREATE TABLE squares(
|
74
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
75
|
+
PRIMARY KEY (id)
|
76
|
+
);
|
77
|
+
_SQL
|
78
|
+
|
79
|
+
execute <<_SQL
|
80
|
+
CREATE TABLE triangles(
|
81
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
82
|
+
PRIMARY KEY (id)
|
83
|
+
);
|
84
|
+
_SQL
|
85
|
+
|
86
|
+
execute <<_SQL
|
87
|
+
CREATE TABLE non_poly_ones(
|
88
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
89
|
+
PRIMARY KEY (id)
|
90
|
+
);
|
91
|
+
_SQL
|
92
|
+
|
93
|
+
execute <<_SQL
|
94
|
+
CREATE TABLE non_poly_twos(
|
95
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
96
|
+
PRIMARY KEY (id)
|
97
|
+
);
|
98
|
+
_SQL
|
99
|
+
|
100
|
+
execute <<_SQL
|
101
|
+
CREATE TABLE paint_colors(
|
102
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
103
|
+
non_poly_one_id INT,
|
104
|
+
PRIMARY KEY (id)
|
105
|
+
);
|
106
|
+
_SQL
|
107
|
+
|
108
|
+
execute <<_SQL
|
109
|
+
CREATE TABLE paint_textures(
|
110
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1),
|
111
|
+
non_poly_two_id INT,
|
112
|
+
PRIMARY KEY (id)
|
113
|
+
);
|
114
|
+
_SQL
|
115
|
+
|
116
|
+
execute <<_SQL
|
117
|
+
CREATE TABLE topics (
|
118
|
+
id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 100),
|
119
|
+
title VARCHAR(255) DEFAULT NULL,
|
120
|
+
author_name VARCHAR(255) DEFAULT NULL,
|
121
|
+
author_email_address VARCHAR(255) DEFAULT NULL,
|
122
|
+
written_on TIMESTAMP DEFAULT NULL,
|
123
|
+
bonus_time TIME DEFAULT NULL,
|
124
|
+
last_read DATE DEFAULT NULL,
|
125
|
+
content VARCHAR(3000),
|
126
|
+
approved SMALLINT DEFAULT 1,
|
127
|
+
replies_count INT DEFAULT 0,
|
128
|
+
parent_id INT DEFAULT NULL,
|
129
|
+
parent_title VARCHAR(255) DEFAULT NULL,
|
130
|
+
type VARCHAR(255) DEFAULT NULL,
|
131
|
+
group VARCHAR(255) DEFAULT NULL,
|
132
|
+
PRIMARY KEY (id)
|
133
|
+
);
|
134
|
+
_SQL
|
135
|
+
|
136
|
+
end
|
137
|
+
=end
|
@@ -1,68 +1,68 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
|
3
|
-
if ActiveRecord::Base.connection.version >= '5.6.0'
|
4
|
-
create_table :datetime_defaults, force: true do |t|
|
5
|
-
t.datetime :modified_datetime, default: -> { 'CURRENT_TIMESTAMP' }
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
create_table :binary_fields, force: true do |t|
|
10
|
-
t.binary :var_binary, limit: 255
|
11
|
-
t.binary :var_binary_large, limit: 4095
|
12
|
-
t.tinyblob :tiny_blob
|
13
|
-
t.blob :normal_blob
|
14
|
-
t.mediumblob :medium_blob
|
15
|
-
t.longblob :long_blob
|
16
|
-
t.tinytext :tiny_text
|
17
|
-
t.text :normal_text
|
18
|
-
t.mediumtext :medium_text
|
19
|
-
t.longtext :long_text
|
20
|
-
|
21
|
-
t.index :var_binary
|
22
|
-
end
|
23
|
-
|
24
|
-
create_table :key_tests, force: true, options: 'ENGINE=MyISAM' do |t|
|
25
|
-
t.string :awesome
|
26
|
-
t.string :pizza
|
27
|
-
t.string :snacks
|
28
|
-
t.index :awesome, type: :fulltext, name: 'index_key_tests_on_awesome'
|
29
|
-
t.index :pizza, using: :btree, name: 'index_key_tests_on_pizza'
|
30
|
-
t.index :snacks, name: 'index_key_tests_on_snack'
|
31
|
-
end
|
32
|
-
|
33
|
-
create_table :collation_tests, id: false, force: true do |t|
|
34
|
-
t.string :string_cs_column, limit: 1, collation: 'utf8_bin'
|
35
|
-
t.string :string_ci_column, limit: 1, collation: 'utf8_general_ci'
|
36
|
-
t.binary :binary_column, limit: 1
|
37
|
-
end
|
38
|
-
|
39
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
40
|
-
DROP PROCEDURE IF EXISTS ten;
|
41
|
-
SQL
|
42
|
-
|
43
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
44
|
-
CREATE PROCEDURE ten() SQL SECURITY INVOKER
|
45
|
-
BEGIN
|
46
|
-
select 10;
|
47
|
-
END
|
48
|
-
SQL
|
49
|
-
|
50
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
51
|
-
DROP PROCEDURE IF EXISTS topics;
|
52
|
-
SQL
|
53
|
-
|
54
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
55
|
-
CREATE PROCEDURE topics(IN num INT) SQL SECURITY INVOKER
|
56
|
-
BEGIN
|
57
|
-
select * from topics limit num;
|
58
|
-
END
|
59
|
-
SQL
|
60
|
-
|
61
|
-
ActiveRecord::Base.connection.drop_table "enum_tests", if_exists: true
|
62
|
-
|
63
|
-
ActiveRecord::Base.connection.execute <<-SQL
|
64
|
-
CREATE TABLE enum_tests (
|
65
|
-
enum_column ENUM('text','blob','tiny','medium','long','unsigned','bigint')
|
66
|
-
)
|
67
|
-
SQL
|
68
|
-
end
|
1
|
+
ActiveRecord::Schema.define do
|
2
|
+
|
3
|
+
if ActiveRecord::Base.connection.version >= '5.6.0'
|
4
|
+
create_table :datetime_defaults, force: true do |t|
|
5
|
+
t.datetime :modified_datetime, default: -> { 'CURRENT_TIMESTAMP' }
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
create_table :binary_fields, force: true do |t|
|
10
|
+
t.binary :var_binary, limit: 255
|
11
|
+
t.binary :var_binary_large, limit: 4095
|
12
|
+
t.tinyblob :tiny_blob
|
13
|
+
t.blob :normal_blob
|
14
|
+
t.mediumblob :medium_blob
|
15
|
+
t.longblob :long_blob
|
16
|
+
t.tinytext :tiny_text
|
17
|
+
t.text :normal_text
|
18
|
+
t.mediumtext :medium_text
|
19
|
+
t.longtext :long_text
|
20
|
+
|
21
|
+
t.index :var_binary
|
22
|
+
end
|
23
|
+
|
24
|
+
create_table :key_tests, force: true, options: 'ENGINE=MyISAM' do |t|
|
25
|
+
t.string :awesome
|
26
|
+
t.string :pizza
|
27
|
+
t.string :snacks
|
28
|
+
t.index :awesome, type: :fulltext, name: 'index_key_tests_on_awesome'
|
29
|
+
t.index :pizza, using: :btree, name: 'index_key_tests_on_pizza'
|
30
|
+
t.index :snacks, name: 'index_key_tests_on_snack'
|
31
|
+
end
|
32
|
+
|
33
|
+
create_table :collation_tests, id: false, force: true do |t|
|
34
|
+
t.string :string_cs_column, limit: 1, collation: 'utf8_bin'
|
35
|
+
t.string :string_ci_column, limit: 1, collation: 'utf8_general_ci'
|
36
|
+
t.binary :binary_column, limit: 1
|
37
|
+
end
|
38
|
+
|
39
|
+
ActiveRecord::Base.connection.execute <<-SQL
|
40
|
+
DROP PROCEDURE IF EXISTS ten;
|
41
|
+
SQL
|
42
|
+
|
43
|
+
ActiveRecord::Base.connection.execute <<-SQL
|
44
|
+
CREATE PROCEDURE ten() SQL SECURITY INVOKER
|
45
|
+
BEGIN
|
46
|
+
select 10;
|
47
|
+
END
|
48
|
+
SQL
|
49
|
+
|
50
|
+
ActiveRecord::Base.connection.execute <<-SQL
|
51
|
+
DROP PROCEDURE IF EXISTS topics;
|
52
|
+
SQL
|
53
|
+
|
54
|
+
ActiveRecord::Base.connection.execute <<-SQL
|
55
|
+
CREATE PROCEDURE topics(IN num INT) SQL SECURITY INVOKER
|
56
|
+
BEGIN
|
57
|
+
select * from topics limit num;
|
58
|
+
END
|
59
|
+
SQL
|
60
|
+
|
61
|
+
ActiveRecord::Base.connection.drop_table "enum_tests", if_exists: true
|
62
|
+
|
63
|
+
ActiveRecord::Base.connection.execute <<-SQL
|
64
|
+
CREATE TABLE enum_tests (
|
65
|
+
enum_column ENUM('text','blob','tiny','medium','long','unsigned','bigint')
|
66
|
+
)
|
67
|
+
SQL
|
68
|
+
end
|
@@ -1,40 +1,40 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
|
3
|
-
execute "drop table test_oracle_defaults" rescue nil
|
4
|
-
execute "drop sequence test_oracle_defaults_seq" rescue nil
|
5
|
-
execute "drop sequence companies_nonstd_seq" rescue nil
|
6
|
-
execute "drop table defaults" rescue nil
|
7
|
-
execute "drop sequence defaults_seq" rescue nil
|
8
|
-
|
9
|
-
execute <<-SQL
|
10
|
-
create table test_oracle_defaults (
|
11
|
-
id integer not null primary key,
|
12
|
-
test_char char(1) default 'X' not null,
|
13
|
-
test_string varchar2(20) default 'hello' not null,
|
14
|
-
test_int integer default 3 not null
|
15
|
-
)
|
16
|
-
SQL
|
17
|
-
|
18
|
-
execute <<-SQL
|
19
|
-
create sequence test_oracle_defaults_seq minvalue 10000
|
20
|
-
SQL
|
21
|
-
|
22
|
-
execute "create sequence companies_nonstd_seq minvalue 10000"
|
23
|
-
|
24
|
-
execute <<-SQL
|
25
|
-
CREATE TABLE defaults (
|
26
|
-
id integer not null,
|
27
|
-
modified_date date default sysdate,
|
28
|
-
modified_date_function date default sysdate,
|
29
|
-
fixed_date date default to_date('2004-01-01', 'YYYY-MM-DD'),
|
30
|
-
modified_time date default sysdate,
|
31
|
-
modified_time_function date default sysdate,
|
32
|
-
fixed_time date default TO_DATE('2004-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'),
|
33
|
-
char1 varchar2(1) default 'Y',
|
34
|
-
char2 varchar2(50) default 'a varchar field',
|
35
|
-
char3 clob default 'a text field'
|
36
|
-
)
|
37
|
-
SQL
|
38
|
-
execute "create sequence defaults_seq minvalue 10000"
|
39
|
-
|
40
|
-
end
|
1
|
+
ActiveRecord::Schema.define do
|
2
|
+
|
3
|
+
execute "drop table test_oracle_defaults" rescue nil
|
4
|
+
execute "drop sequence test_oracle_defaults_seq" rescue nil
|
5
|
+
execute "drop sequence companies_nonstd_seq" rescue nil
|
6
|
+
execute "drop table defaults" rescue nil
|
7
|
+
execute "drop sequence defaults_seq" rescue nil
|
8
|
+
|
9
|
+
execute <<-SQL
|
10
|
+
create table test_oracle_defaults (
|
11
|
+
id integer not null primary key,
|
12
|
+
test_char char(1) default 'X' not null,
|
13
|
+
test_string varchar2(20) default 'hello' not null,
|
14
|
+
test_int integer default 3 not null
|
15
|
+
)
|
16
|
+
SQL
|
17
|
+
|
18
|
+
execute <<-SQL
|
19
|
+
create sequence test_oracle_defaults_seq minvalue 10000
|
20
|
+
SQL
|
21
|
+
|
22
|
+
execute "create sequence companies_nonstd_seq minvalue 10000"
|
23
|
+
|
24
|
+
execute <<-SQL
|
25
|
+
CREATE TABLE defaults (
|
26
|
+
id integer not null,
|
27
|
+
modified_date date default sysdate,
|
28
|
+
modified_date_function date default sysdate,
|
29
|
+
fixed_date date default to_date('2004-01-01', 'YYYY-MM-DD'),
|
30
|
+
modified_time date default sysdate,
|
31
|
+
modified_time_function date default sysdate,
|
32
|
+
fixed_time date default TO_DATE('2004-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'),
|
33
|
+
char1 varchar2(1) default 'Y',
|
34
|
+
char2 varchar2(50) default 'a varchar field',
|
35
|
+
char3 clob default 'a text field'
|
36
|
+
)
|
37
|
+
SQL
|
38
|
+
execute "create sequence defaults_seq minvalue 10000"
|
39
|
+
|
40
|
+
end
|
@@ -1,114 +1,114 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
|
3
|
-
enable_extension!('uuid-ossp', ActiveRecord::Base.connection)
|
4
|
-
|
5
|
-
create_table :uuid_parents, id: :uuid, force: true do |t|
|
6
|
-
t.string :name
|
7
|
-
end
|
8
|
-
|
9
|
-
create_table :uuid_children, id: :uuid, force: true do |t|
|
10
|
-
t.string :name
|
11
|
-
t.uuid :uuid_parent_id
|
12
|
-
end
|
13
|
-
|
14
|
-
create_table :defaults, force: true do |t|
|
15
|
-
t.date :modified_date, default: -> { 'CURRENT_DATE' }
|
16
|
-
t.date :modified_date_function, default: -> { 'now()' }
|
17
|
-
t.date :fixed_date, default: '2004-01-01'
|
18
|
-
t.datetime :modified_time, default: -> { 'CURRENT_TIMESTAMP' }
|
19
|
-
t.datetime :modified_time_function, default: -> { 'now()' }
|
20
|
-
t.datetime :fixed_time, default: '2004-01-01 00:00:00.000000-00'
|
21
|
-
t.column :char1, 'char(1)', default: 'Y'
|
22
|
-
t.string :char2, limit: 50, default: 'a varchar field'
|
23
|
-
t.text :char3, default: 'a text field'
|
24
|
-
t.bigint :bigint_default, default: -> { '0::bigint' }
|
25
|
-
t.text :multiline_default, default: '--- []
|
26
|
-
|
27
|
-
'
|
28
|
-
end
|
29
|
-
|
30
|
-
%w(postgresql_times postgresql_oids postgresql_timestamp_with_zones
|
31
|
-
postgresql_partitioned_table postgresql_partitioned_table_parent).each do |table_name|
|
32
|
-
drop_table table_name, if_exists: true
|
33
|
-
end
|
34
|
-
|
35
|
-
execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
|
36
|
-
execute 'CREATE SEQUENCE companies_nonstd_seq START 101 OWNED BY companies.id'
|
37
|
-
execute "ALTER TABLE companies ALTER COLUMN id SET DEFAULT nextval('companies_nonstd_seq')"
|
38
|
-
execute 'DROP SEQUENCE IF EXISTS companies_id_seq'
|
39
|
-
|
40
|
-
execute 'DROP FUNCTION IF EXISTS partitioned_insert_trigger()'
|
41
|
-
|
42
|
-
%w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
|
43
|
-
execute "SELECT setval('#{seq_name}', 100)"
|
44
|
-
end
|
45
|
-
|
46
|
-
execute <<_SQL
|
47
|
-
CREATE TABLE postgresql_times (
|
48
|
-
id SERIAL PRIMARY KEY,
|
49
|
-
time_interval INTERVAL,
|
50
|
-
scaled_time_interval INTERVAL(6)
|
51
|
-
);
|
52
|
-
_SQL
|
53
|
-
|
54
|
-
execute <<_SQL
|
55
|
-
CREATE TABLE postgresql_oids (
|
56
|
-
id SERIAL PRIMARY KEY,
|
57
|
-
obj_id OID
|
58
|
-
);
|
59
|
-
_SQL
|
60
|
-
|
61
|
-
execute <<_SQL
|
62
|
-
CREATE TABLE postgresql_timestamp_with_zones (
|
63
|
-
id SERIAL PRIMARY KEY,
|
64
|
-
time TIMESTAMP WITH TIME ZONE
|
65
|
-
);
|
66
|
-
_SQL
|
67
|
-
|
68
|
-
begin
|
69
|
-
execute <<_SQL
|
70
|
-
CREATE TABLE postgresql_partitioned_table_parent (
|
71
|
-
id SERIAL PRIMARY KEY,
|
72
|
-
number integer
|
73
|
-
);
|
74
|
-
CREATE TABLE postgresql_partitioned_table ( )
|
75
|
-
INHERITS (postgresql_partitioned_table_parent);
|
76
|
-
|
77
|
-
CREATE OR REPLACE FUNCTION partitioned_insert_trigger()
|
78
|
-
RETURNS TRIGGER AS $$
|
79
|
-
BEGIN
|
80
|
-
INSERT INTO postgresql_partitioned_table VALUES (NEW.*);
|
81
|
-
RETURN NULL;
|
82
|
-
END;
|
83
|
-
$$
|
84
|
-
LANGUAGE plpgsql;
|
85
|
-
|
86
|
-
CREATE TRIGGER insert_partitioning_trigger
|
87
|
-
BEFORE INSERT ON postgresql_partitioned_table_parent
|
88
|
-
FOR EACH ROW EXECUTE PROCEDURE partitioned_insert_trigger();
|
89
|
-
_SQL
|
90
|
-
rescue ActiveRecord::StatementInvalid => e
|
91
|
-
if e.message =~ /language "plpgsql" does not exist/
|
92
|
-
execute "CREATE LANGUAGE 'plpgsql';"
|
93
|
-
retry
|
94
|
-
else
|
95
|
-
raise e
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
# This table is to verify if the :limit option is being ignored for text and binary columns
|
100
|
-
create_table :limitless_fields, force: true do |t|
|
101
|
-
t.binary :binary, limit: 100_000
|
102
|
-
t.text :text, limit: 100_000
|
103
|
-
end
|
104
|
-
|
105
|
-
create_table :bigint_array, force: true do |t|
|
106
|
-
t.integer :big_int_data_points, limit: 8, array: true
|
107
|
-
t.decimal :decimal_array_default, array: true, default: [1.23, 3.45]
|
108
|
-
end
|
109
|
-
|
110
|
-
create_table :uuid_items, force: true, id: false do |t|
|
111
|
-
t.uuid :uuid, primary_key: true
|
112
|
-
t.string :title
|
113
|
-
end
|
114
|
-
end
|
1
|
+
ActiveRecord::Schema.define do
|
2
|
+
|
3
|
+
enable_extension!('uuid-ossp', ActiveRecord::Base.connection)
|
4
|
+
|
5
|
+
create_table :uuid_parents, id: :uuid, force: true do |t|
|
6
|
+
t.string :name
|
7
|
+
end
|
8
|
+
|
9
|
+
create_table :uuid_children, id: :uuid, force: true do |t|
|
10
|
+
t.string :name
|
11
|
+
t.uuid :uuid_parent_id
|
12
|
+
end
|
13
|
+
|
14
|
+
create_table :defaults, force: true do |t|
|
15
|
+
t.date :modified_date, default: -> { 'CURRENT_DATE' }
|
16
|
+
t.date :modified_date_function, default: -> { 'now()' }
|
17
|
+
t.date :fixed_date, default: '2004-01-01'
|
18
|
+
t.datetime :modified_time, default: -> { 'CURRENT_TIMESTAMP' }
|
19
|
+
t.datetime :modified_time_function, default: -> { 'now()' }
|
20
|
+
t.datetime :fixed_time, default: '2004-01-01 00:00:00.000000-00'
|
21
|
+
t.column :char1, 'char(1)', default: 'Y'
|
22
|
+
t.string :char2, limit: 50, default: 'a varchar field'
|
23
|
+
t.text :char3, default: 'a text field'
|
24
|
+
t.bigint :bigint_default, default: -> { '0::bigint' }
|
25
|
+
t.text :multiline_default, default: '--- []
|
26
|
+
|
27
|
+
'
|
28
|
+
end
|
29
|
+
|
30
|
+
%w(postgresql_times postgresql_oids postgresql_timestamp_with_zones
|
31
|
+
postgresql_partitioned_table postgresql_partitioned_table_parent).each do |table_name|
|
32
|
+
drop_table table_name, if_exists: true
|
33
|
+
end
|
34
|
+
|
35
|
+
execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
|
36
|
+
execute 'CREATE SEQUENCE companies_nonstd_seq START 101 OWNED BY companies.id'
|
37
|
+
execute "ALTER TABLE companies ALTER COLUMN id SET DEFAULT nextval('companies_nonstd_seq')"
|
38
|
+
execute 'DROP SEQUENCE IF EXISTS companies_id_seq'
|
39
|
+
|
40
|
+
execute 'DROP FUNCTION IF EXISTS partitioned_insert_trigger()'
|
41
|
+
|
42
|
+
%w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
|
43
|
+
execute "SELECT setval('#{seq_name}', 100)"
|
44
|
+
end
|
45
|
+
|
46
|
+
execute <<_SQL
|
47
|
+
CREATE TABLE postgresql_times (
|
48
|
+
id SERIAL PRIMARY KEY,
|
49
|
+
time_interval INTERVAL,
|
50
|
+
scaled_time_interval INTERVAL(6)
|
51
|
+
);
|
52
|
+
_SQL
|
53
|
+
|
54
|
+
execute <<_SQL
|
55
|
+
CREATE TABLE postgresql_oids (
|
56
|
+
id SERIAL PRIMARY KEY,
|
57
|
+
obj_id OID
|
58
|
+
);
|
59
|
+
_SQL
|
60
|
+
|
61
|
+
execute <<_SQL
|
62
|
+
CREATE TABLE postgresql_timestamp_with_zones (
|
63
|
+
id SERIAL PRIMARY KEY,
|
64
|
+
time TIMESTAMP WITH TIME ZONE
|
65
|
+
);
|
66
|
+
_SQL
|
67
|
+
|
68
|
+
begin
|
69
|
+
execute <<_SQL
|
70
|
+
CREATE TABLE postgresql_partitioned_table_parent (
|
71
|
+
id SERIAL PRIMARY KEY,
|
72
|
+
number integer
|
73
|
+
);
|
74
|
+
CREATE TABLE postgresql_partitioned_table ( )
|
75
|
+
INHERITS (postgresql_partitioned_table_parent);
|
76
|
+
|
77
|
+
CREATE OR REPLACE FUNCTION partitioned_insert_trigger()
|
78
|
+
RETURNS TRIGGER AS $$
|
79
|
+
BEGIN
|
80
|
+
INSERT INTO postgresql_partitioned_table VALUES (NEW.*);
|
81
|
+
RETURN NULL;
|
82
|
+
END;
|
83
|
+
$$
|
84
|
+
LANGUAGE plpgsql;
|
85
|
+
|
86
|
+
CREATE TRIGGER insert_partitioning_trigger
|
87
|
+
BEFORE INSERT ON postgresql_partitioned_table_parent
|
88
|
+
FOR EACH ROW EXECUTE PROCEDURE partitioned_insert_trigger();
|
89
|
+
_SQL
|
90
|
+
rescue ActiveRecord::StatementInvalid => e
|
91
|
+
if e.message =~ /language "plpgsql" does not exist/
|
92
|
+
execute "CREATE LANGUAGE 'plpgsql';"
|
93
|
+
retry
|
94
|
+
else
|
95
|
+
raise e
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
# This table is to verify if the :limit option is being ignored for text and binary columns
|
100
|
+
create_table :limitless_fields, force: true do |t|
|
101
|
+
t.binary :binary, limit: 100_000
|
102
|
+
t.text :text, limit: 100_000
|
103
|
+
end
|
104
|
+
|
105
|
+
create_table :bigint_array, force: true do |t|
|
106
|
+
t.integer :big_int_data_points, limit: 8, array: true
|
107
|
+
t.decimal :decimal_array_default, array: true, default: [1.23, 3.45]
|
108
|
+
end
|
109
|
+
|
110
|
+
create_table :uuid_items, force: true, id: false do |t|
|
111
|
+
t.uuid :uuid, primary_key: true
|
112
|
+
t.string :title
|
113
|
+
end
|
114
|
+
end
|