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.
Files changed (570) hide show
  1. checksums.yaml +5 -5
  2. data/MANIFEST +14 -14
  3. data/README +208 -208
  4. data/ext/Makefile +269 -0
  5. data/ext/Makefile.nt32 +181 -181
  6. data/ext/Makefile.nt32.191 +212 -212
  7. data/ext/extconf.rb +322 -291
  8. data/ext/gil_release_version +3 -0
  9. data/ext/ibm_db.c +11879 -11887
  10. data/ext/mkmf.log +110 -0
  11. data/ext/ruby_ibm_db.h +241 -241
  12. data/ext/ruby_ibm_db_cli.c +866 -866
  13. data/ext/ruby_ibm_db_cli.h +500 -500
  14. data/ext/unicode_support_version +3 -0
  15. data/init.rb +41 -41
  16. data/lib/IBM_DB.rb +27 -27
  17. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3533 -3452
  18. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +5 -5
  19. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
  20. data/lib/mswin32/ibm_db.rb +90 -90
  21. data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
  22. data/test/active_record/connection_adapters/fake_adapter.rb +49 -49
  23. data/test/assets/example.log +1 -1
  24. data/test/assets/test.txt +1 -1
  25. data/test/cases/adapter_test.rb +351 -351
  26. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -193
  27. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -50
  28. data/test/cases/adapters/mysql2/boolean_test.rb +100 -100
  29. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -63
  30. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -54
  31. data/test/cases/adapters/mysql2/connection_test.rb +210 -210
  32. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -45
  33. data/test/cases/adapters/mysql2/enum_test.rb +26 -26
  34. data/test/cases/adapters/mysql2/explain_test.rb +21 -21
  35. data/test/cases/adapters/mysql2/json_test.rb +195 -195
  36. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -83
  37. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -152
  38. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -59
  39. data/test/cases/adapters/mysql2/schema_test.rb +126 -126
  40. data/test/cases/adapters/mysql2/sp_test.rb +36 -36
  41. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -14
  42. data/test/cases/adapters/mysql2/table_options_test.rb +42 -42
  43. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -66
  44. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -98
  45. data/test/cases/adapters/postgresql/array_test.rb +339 -339
  46. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -82
  47. data/test/cases/adapters/postgresql/bytea_test.rb +134 -134
  48. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -26
  49. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -38
  50. data/test/cases/adapters/postgresql/cidr_test.rb +25 -25
  51. data/test/cases/adapters/postgresql/citext_test.rb +78 -78
  52. data/test/cases/adapters/postgresql/collation_test.rb +53 -53
  53. data/test/cases/adapters/postgresql/composite_test.rb +132 -132
  54. data/test/cases/adapters/postgresql/connection_test.rb +257 -257
  55. data/test/cases/adapters/postgresql/datatype_test.rb +92 -92
  56. data/test/cases/adapters/postgresql/domain_test.rb +47 -47
  57. data/test/cases/adapters/postgresql/enum_test.rb +91 -91
  58. data/test/cases/adapters/postgresql/explain_test.rb +20 -20
  59. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -63
  60. data/test/cases/adapters/postgresql/full_text_test.rb +44 -44
  61. data/test/cases/adapters/postgresql/geometric_test.rb +378 -378
  62. data/test/cases/adapters/postgresql/hstore_test.rb +382 -382
  63. data/test/cases/adapters/postgresql/infinity_test.rb +69 -69
  64. data/test/cases/adapters/postgresql/integer_test.rb +25 -25
  65. data/test/cases/adapters/postgresql/json_test.rb +237 -237
  66. data/test/cases/adapters/postgresql/ltree_test.rb +53 -53
  67. data/test/cases/adapters/postgresql/money_test.rb +96 -96
  68. data/test/cases/adapters/postgresql/network_test.rb +94 -94
  69. data/test/cases/adapters/postgresql/numbers_test.rb +49 -49
  70. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -405
  71. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -22
  72. data/test/cases/adapters/postgresql/quoting_test.rb +44 -44
  73. data/test/cases/adapters/postgresql/range_test.rb +343 -343
  74. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -111
  75. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -34
  76. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -119
  77. data/test/cases/adapters/postgresql/schema_test.rb +597 -597
  78. data/test/cases/adapters/postgresql/serial_test.rb +154 -154
  79. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -41
  80. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -90
  81. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -33
  82. data/test/cases/adapters/postgresql/utils_test.rb +62 -62
  83. data/test/cases/adapters/postgresql/uuid_test.rb +294 -294
  84. data/test/cases/adapters/postgresql/xml_test.rb +54 -54
  85. data/test/cases/adapters/sqlite3/collation_test.rb +53 -53
  86. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -98
  87. data/test/cases/adapters/sqlite3/explain_test.rb +21 -21
  88. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -101
  89. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -441
  90. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -24
  91. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -20
  92. data/test/cases/aggregations_test.rb +168 -168
  93. data/test/cases/ar_schema_test.rb +146 -146
  94. data/test/cases/associations/association_scope_test.rb +16 -16
  95. data/test/cases/associations/belongs_to_associations_test.rb +1141 -1141
  96. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -41
  97. data/test/cases/associations/callbacks_test.rb +190 -190
  98. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  99. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  100. data/test/cases/associations/eager_load_nested_include_test.rb +126 -126
  101. data/test/cases/associations/eager_singularization_test.rb +148 -148
  102. data/test/cases/associations/eager_test.rb +1514 -1514
  103. data/test/cases/associations/extension_test.rb +87 -87
  104. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +1004 -1004
  105. data/test/cases/associations/has_many_associations_test.rb +2501 -2501
  106. data/test/cases/associations/has_many_through_associations_test.rb +1271 -1271
  107. data/test/cases/associations/has_one_associations_test.rb +707 -707
  108. data/test/cases/associations/has_one_through_associations_test.rb +383 -383
  109. data/test/cases/associations/inner_join_association_test.rb +139 -139
  110. data/test/cases/associations/inverse_associations_test.rb +733 -733
  111. data/test/cases/associations/join_model_test.rb +777 -777
  112. data/test/cases/associations/left_outer_join_association_test.rb +88 -88
  113. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  114. data/test/cases/associations/required_test.rb +102 -102
  115. data/test/cases/associations_test.rb +385 -385
  116. data/test/cases/attribute_decorators_test.rb +126 -125
  117. data/test/cases/attribute_methods/read_test.rb +60 -60
  118. data/test/cases/attribute_methods_test.rb +1009 -1009
  119. data/test/cases/attribute_set_test.rb +270 -270
  120. data/test/cases/attribute_test.rb +246 -246
  121. data/test/cases/attributes_test.rb +253 -253
  122. data/test/cases/autosave_association_test.rb +1708 -1708
  123. data/test/cases/base_test.rb +1713 -1713
  124. data/test/cases/batches_test.rb +489 -489
  125. data/test/cases/binary_test.rb +44 -44
  126. data/test/cases/bind_parameter_test.rb +110 -110
  127. data/test/cases/cache_key_test.rb +26 -25
  128. data/test/cases/calculations_test.rb +798 -798
  129. data/test/cases/callbacks_test.rb +636 -636
  130. data/test/cases/clone_test.rb +40 -40
  131. data/test/cases/coders/json_test.rb +15 -15
  132. data/test/cases/coders/yaml_column_test.rb +63 -63
  133. data/test/cases/collection_cache_key_test.rb +115 -115
  134. data/test/cases/column_alias_test.rb +17 -17
  135. data/test/cases/column_definition_test.rb +92 -92
  136. data/test/cases/comment_test.rb +145 -143
  137. data/test/cases/connection_adapters/adapter_leasing_test.rb +56 -56
  138. data/test/cases/connection_adapters/connection_handler_test.rb +160 -160
  139. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  140. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +255 -255
  141. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +69 -69
  142. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  143. data/test/cases/connection_adapters/schema_cache_test.rb +61 -61
  144. data/test/cases/connection_adapters/type_lookup_test.rb +118 -118
  145. data/test/cases/connection_management_test.rb +112 -112
  146. data/test/cases/connection_pool_test.rb +521 -521
  147. data/test/cases/connection_specification/resolver_test.rb +131 -131
  148. data/test/cases/core_test.rb +112 -112
  149. data/test/cases/counter_cache_test.rb +214 -214
  150. data/test/cases/custom_locking_test.rb +17 -17
  151. data/test/cases/database_statements_test.rb +34 -34
  152. data/test/cases/date_test.rb +44 -44
  153. data/test/cases/date_time_precision_test.rb +107 -106
  154. data/test/cases/date_time_test.rb +61 -61
  155. data/test/cases/defaults_test.rb +219 -218
  156. data/test/cases/dirty_test.rb +763 -763
  157. data/test/cases/disconnected_test.rb +30 -30
  158. data/test/cases/dup_test.rb +157 -157
  159. data/test/cases/enum_test.rb +444 -444
  160. data/test/cases/errors_test.rb +16 -16
  161. data/test/cases/explain_subscriber_test.rb +64 -64
  162. data/test/cases/explain_test.rb +87 -87
  163. data/test/cases/finder_respond_to_test.rb +60 -60
  164. data/test/cases/finder_test.rb +1294 -1294
  165. data/test/cases/fixture_set/file_test.rb +156 -156
  166. data/test/cases/fixtures_test.rb +988 -988
  167. data/test/cases/forbidden_attributes_protection_test.rb +165 -165
  168. data/test/cases/habtm_destroy_order_test.rb +61 -61
  169. data/test/cases/helper.rb +204 -204
  170. data/test/cases/hot_compatibility_test.rb +142 -142
  171. data/test/cases/i18n_test.rb +45 -45
  172. data/test/cases/inheritance_test.rb +606 -606
  173. data/test/cases/integration_test.rb +155 -155
  174. data/test/cases/invalid_connection_test.rb +24 -24
  175. data/test/cases/invertible_migration_test.rb +387 -387
  176. data/test/cases/json_serialization_test.rb +311 -311
  177. data/test/cases/locking_test.rb +493 -493
  178. data/test/cases/log_subscriber_test.rb +225 -225
  179. data/test/cases/migration/change_schema_test.rb +458 -458
  180. data/test/cases/migration/change_table_test.rb +256 -256
  181. data/test/cases/migration/column_attributes_test.rb +176 -176
  182. data/test/cases/migration/column_positioning_test.rb +56 -56
  183. data/test/cases/migration/columns_test.rb +310 -310
  184. data/test/cases/migration/command_recorder_test.rb +350 -350
  185. data/test/cases/migration/compatibility_test.rb +118 -118
  186. data/test/cases/migration/create_join_table_test.rb +157 -157
  187. data/test/cases/migration/foreign_key_test.rb +362 -360
  188. data/test/cases/migration/helper.rb +39 -39
  189. data/test/cases/migration/index_test.rb +218 -218
  190. data/test/cases/migration/logger_test.rb +36 -36
  191. data/test/cases/migration/pending_migrations_test.rb +52 -52
  192. data/test/cases/migration/references_foreign_key_test.rb +221 -216
  193. data/test/cases/migration/references_index_test.rb +101 -101
  194. data/test/cases/migration/references_statements_test.rb +136 -136
  195. data/test/cases/migration/rename_table_test.rb +93 -93
  196. data/test/cases/migration_test.rb +1157 -1157
  197. data/test/cases/migrator_test.rb +471 -470
  198. data/test/cases/mixin_test.rb +68 -68
  199. data/test/cases/modules_test.rb +172 -172
  200. data/test/cases/multiparameter_attributes_test.rb +372 -372
  201. data/test/cases/multiple_db_test.rb +122 -122
  202. data/test/cases/nested_attributes_test.rb +1098 -1098
  203. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  204. data/test/cases/persistence_test.rb +1001 -1001
  205. data/test/cases/pooled_connections_test.rb +81 -81
  206. data/test/cases/primary_keys_test.rb +376 -376
  207. data/test/cases/query_cache_test.rb +446 -446
  208. data/test/cases/quoting_test.rb +202 -202
  209. data/test/cases/readonly_test.rb +119 -119
  210. data/test/cases/reaper_test.rb +85 -85
  211. data/test/cases/reflection_test.rb +509 -509
  212. data/test/cases/relation/delegation_test.rb +63 -63
  213. data/test/cases/relation/merging_test.rb +157 -157
  214. data/test/cases/relation/mutation_test.rb +183 -183
  215. data/test/cases/relation/or_test.rb +92 -92
  216. data/test/cases/relation/predicate_builder_test.rb +16 -16
  217. data/test/cases/relation/record_fetch_warning_test.rb +40 -40
  218. data/test/cases/relation/where_chain_test.rb +105 -105
  219. data/test/cases/relation/where_clause_test.rb +182 -182
  220. data/test/cases/relation/where_test.rb +322 -322
  221. data/test/cases/relation_test.rb +328 -328
  222. data/test/cases/relations_test.rb +2026 -2026
  223. data/test/cases/reload_models_test.rb +22 -22
  224. data/test/cases/result_test.rb +90 -90
  225. data/test/cases/sanitize_test.rb +176 -176
  226. data/test/cases/schema_dumper_test.rb +457 -457
  227. data/test/cases/schema_loading_test.rb +52 -52
  228. data/test/cases/scoping/default_scoping_test.rb +528 -528
  229. data/test/cases/scoping/named_scoping_test.rb +561 -561
  230. data/test/cases/scoping/relation_scoping_test.rb +400 -400
  231. data/test/cases/secure_token_test.rb +32 -32
  232. data/test/cases/serialization_test.rb +104 -104
  233. data/test/cases/serialized_attribute_test.rb +364 -364
  234. data/test/cases/statement_cache_test.rb +136 -136
  235. data/test/cases/store_test.rb +195 -195
  236. data/test/cases/suppressor_test.rb +63 -63
  237. data/test/cases/tasks/database_tasks_test.rb +462 -462
  238. data/test/cases/tasks/mysql_rake_test.rb +345 -345
  239. data/test/cases/tasks/postgresql_rake_test.rb +304 -304
  240. data/test/cases/tasks/sqlite_rake_test.rb +220 -220
  241. data/test/cases/test_case.rb +131 -131
  242. data/test/cases/test_fixtures_test.rb +36 -36
  243. data/test/cases/time_precision_test.rb +103 -102
  244. data/test/cases/timestamp_test.rb +501 -501
  245. data/test/cases/touch_later_test.rb +121 -121
  246. data/test/cases/transaction_callbacks_test.rb +518 -518
  247. data/test/cases/transaction_isolation_test.rb +106 -106
  248. data/test/cases/transactions_test.rb +835 -834
  249. data/test/cases/type/adapter_specific_registry_test.rb +133 -133
  250. data/test/cases/type/date_time_test.rb +14 -14
  251. data/test/cases/type/integer_test.rb +27 -27
  252. data/test/cases/type/string_test.rb +22 -22
  253. data/test/cases/type/type_map_test.rb +177 -177
  254. data/test/cases/type_test.rb +39 -39
  255. data/test/cases/types_test.rb +24 -24
  256. data/test/cases/unconnected_test.rb +33 -33
  257. data/test/cases/validations/absence_validation_test.rb +73 -73
  258. data/test/cases/validations/association_validation_test.rb +97 -97
  259. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  260. data/test/cases/validations/i18n_validation_test.rb +86 -86
  261. data/test/cases/validations/length_validation_test.rb +79 -79
  262. data/test/cases/validations/presence_validation_test.rb +103 -103
  263. data/test/cases/validations/uniqueness_validation_test.rb +548 -548
  264. data/test/cases/validations_repair_helper.rb +19 -19
  265. data/test/cases/validations_test.rb +194 -194
  266. data/test/cases/view_test.rb +216 -216
  267. data/test/cases/yaml_serialization_test.rb +121 -121
  268. data/test/config.example.yml +97 -97
  269. data/test/config.rb +5 -5
  270. data/test/connections/native_ibm_db/connection.rb +44 -0
  271. data/test/fixtures/accounts.yml +29 -29
  272. data/test/fixtures/admin/accounts.yml +2 -2
  273. data/test/fixtures/admin/users.yml +10 -10
  274. data/test/fixtures/author_addresses.yml +17 -17
  275. data/test/fixtures/author_favorites.yml +3 -3
  276. data/test/fixtures/authors.yml +23 -23
  277. data/test/fixtures/bad_posts.yml +9 -9
  278. data/test/fixtures/binaries.yml +133 -133
  279. data/test/fixtures/books.yml +31 -31
  280. data/test/fixtures/bulbs.yml +5 -5
  281. data/test/fixtures/cars.yml +9 -9
  282. data/test/fixtures/categories.yml +19 -19
  283. data/test/fixtures/categories/special_categories.yml +9 -9
  284. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  285. data/test/fixtures/categories_ordered.yml +7 -7
  286. data/test/fixtures/categories_posts.yml +31 -31
  287. data/test/fixtures/categorizations.yml +23 -23
  288. data/test/fixtures/clubs.yml +8 -8
  289. data/test/fixtures/collections.yml +3 -3
  290. data/test/fixtures/colleges.yml +3 -3
  291. data/test/fixtures/comments.yml +65 -65
  292. data/test/fixtures/companies.yml +67 -67
  293. data/test/fixtures/computers.yml +10 -10
  294. data/test/fixtures/content.yml +3 -3
  295. data/test/fixtures/content_positions.yml +3 -3
  296. data/test/fixtures/courses.yml +8 -8
  297. data/test/fixtures/customers.yml +25 -25
  298. data/test/fixtures/dashboards.yml +6 -6
  299. data/test/fixtures/dead_parrots.yml +5 -5
  300. data/test/fixtures/developers.yml +22 -22
  301. data/test/fixtures/developers_projects.yml +16 -16
  302. data/test/fixtures/dog_lovers.yml +7 -7
  303. data/test/fixtures/dogs.yml +4 -4
  304. data/test/fixtures/doubloons.yml +3 -3
  305. data/test/fixtures/edges.yml +5 -5
  306. data/test/fixtures/entrants.yml +14 -14
  307. data/test/fixtures/essays.yml +6 -6
  308. data/test/fixtures/faces.yml +11 -11
  309. data/test/fixtures/fk_test_has_fk.yml +3 -3
  310. data/test/fixtures/fk_test_has_pk.yml +1 -1
  311. data/test/fixtures/friendships.yml +4 -4
  312. data/test/fixtures/funny_jokes.yml +10 -10
  313. data/test/fixtures/interests.yml +33 -33
  314. data/test/fixtures/items.yml +3 -3
  315. data/test/fixtures/jobs.yml +7 -7
  316. data/test/fixtures/legacy_things.yml +3 -3
  317. data/test/fixtures/live_parrots.yml +4 -4
  318. data/test/fixtures/mateys.yml +4 -4
  319. data/test/fixtures/member_details.yml +8 -8
  320. data/test/fixtures/member_types.yml +6 -6
  321. data/test/fixtures/members.yml +11 -11
  322. data/test/fixtures/memberships.yml +34 -34
  323. data/test/fixtures/men.yml +5 -5
  324. data/test/fixtures/minimalistics.yml +2 -2
  325. data/test/fixtures/minivans.yml +5 -5
  326. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  327. data/test/fixtures/mixins.yml +29 -29
  328. data/test/fixtures/movies.yml +7 -7
  329. data/test/fixtures/naked/yml/accounts.yml +1 -1
  330. data/test/fixtures/naked/yml/companies.yml +1 -1
  331. data/test/fixtures/naked/yml/courses.yml +1 -1
  332. data/test/fixtures/naked/yml/parrots.yml +2 -2
  333. data/test/fixtures/naked/yml/trees.yml +3 -3
  334. data/test/fixtures/nodes.yml +29 -29
  335. data/test/fixtures/organizations.yml +5 -5
  336. data/test/fixtures/other_comments.yml +6 -6
  337. data/test/fixtures/other_dogs.yml +2 -2
  338. data/test/fixtures/other_posts.yml +7 -7
  339. data/test/fixtures/other_topics.yml +42 -42
  340. data/test/fixtures/owners.yml +9 -9
  341. data/test/fixtures/parrots.yml +27 -27
  342. data/test/fixtures/parrots_pirates.yml +7 -7
  343. data/test/fixtures/people.yml +24 -24
  344. data/test/fixtures/peoples_treasures.yml +3 -3
  345. data/test/fixtures/pets.yml +19 -19
  346. data/test/fixtures/pirates.yml +12 -15
  347. data/test/fixtures/posts.yml +80 -80
  348. data/test/fixtures/price_estimates.yml +16 -16
  349. data/test/fixtures/products.yml +4 -4
  350. data/test/fixtures/projects.yml +7 -7
  351. data/test/fixtures/ratings.yml +14 -14
  352. data/test/fixtures/readers.yml +11 -11
  353. data/test/fixtures/references.yml +17 -17
  354. data/test/fixtures/reserved_words/distinct.yml +5 -5
  355. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  356. data/test/fixtures/reserved_words/group.yml +14 -14
  357. data/test/fixtures/reserved_words/select.yml +8 -8
  358. data/test/fixtures/reserved_words/values.yml +7 -7
  359. data/test/fixtures/ships.yml +6 -6
  360. data/test/fixtures/speedometers.yml +8 -8
  361. data/test/fixtures/sponsors.yml +12 -12
  362. data/test/fixtures/string_key_objects.yml +7 -7
  363. data/test/fixtures/subscribers.yml +10 -10
  364. data/test/fixtures/subscriptions.yml +12 -12
  365. data/test/fixtures/taggings.yml +78 -78
  366. data/test/fixtures/tags.yml +11 -11
  367. data/test/fixtures/tasks.yml +7 -7
  368. data/test/fixtures/teapots.yml +3 -3
  369. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  370. data/test/fixtures/to_be_linked/users.yml +10 -10
  371. data/test/fixtures/topics.yml +49 -49
  372. data/test/fixtures/toys.yml +14 -14
  373. data/test/fixtures/traffic_lights.yml +9 -9
  374. data/test/fixtures/treasures.yml +10 -10
  375. data/test/fixtures/trees.yml +3 -3
  376. data/test/fixtures/uuid_children.yml +3 -3
  377. data/test/fixtures/uuid_parents.yml +2 -2
  378. data/test/fixtures/variants.yml +4 -4
  379. data/test/fixtures/vegetables.yml +19 -19
  380. data/test/fixtures/vertices.yml +3 -3
  381. data/test/fixtures/warehouse_things.yml +2 -2
  382. data/test/fixtures/zines.yml +5 -5
  383. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  384. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  385. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  386. data/test/migrations/missing/1000_people_have_middle_names.rb +9 -9
  387. data/test/migrations/missing/1_people_have_last_names.rb +9 -9
  388. data/test/migrations/missing/3_we_need_reminders.rb +12 -12
  389. data/test/migrations/missing/4_innocent_jointable.rb +12 -12
  390. data/test/migrations/rename/1_we_need_things.rb +11 -11
  391. data/test/migrations/rename/2_rename_things.rb +9 -9
  392. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  393. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  394. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  395. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  396. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  397. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  398. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  399. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  400. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  401. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  402. data/test/migrations/valid/2_we_need_reminders.rb +12 -12
  403. data/test/migrations/valid/3_innocent_jointable.rb +12 -12
  404. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  405. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +12 -12
  406. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +12 -12
  407. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  408. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  409. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  410. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  411. data/test/models/admin.rb +5 -5
  412. data/test/models/admin/account.rb +3 -3
  413. data/test/models/admin/user.rb +40 -40
  414. data/test/models/aircraft.rb +5 -5
  415. data/test/models/arunit2_model.rb +3 -3
  416. data/test/models/author.rb +209 -209
  417. data/test/models/auto_id.rb +4 -4
  418. data/test/models/autoloadable/extra_firm.rb +2 -2
  419. data/test/models/binary.rb +2 -2
  420. data/test/models/bird.rb +12 -12
  421. data/test/models/book.rb +23 -23
  422. data/test/models/boolean.rb +2 -2
  423. data/test/models/bulb.rb +52 -52
  424. data/test/models/cake_designer.rb +3 -3
  425. data/test/models/car.rb +29 -29
  426. data/test/models/carrier.rb +2 -2
  427. data/test/models/cat.rb +10 -10
  428. data/test/models/categorization.rb +19 -19
  429. data/test/models/category.rb +35 -35
  430. data/test/models/chef.rb +8 -8
  431. data/test/models/citation.rb +3 -3
  432. data/test/models/club.rb +25 -25
  433. data/test/models/college.rb +10 -10
  434. data/test/models/column.rb +3 -3
  435. data/test/models/column_name.rb +3 -3
  436. data/test/models/comment.rb +76 -76
  437. data/test/models/company.rb +230 -230
  438. data/test/models/company_in_module.rb +98 -98
  439. data/test/models/computer.rb +3 -3
  440. data/test/models/contact.rb +41 -41
  441. data/test/models/content.rb +40 -40
  442. data/test/models/contract.rb +20 -20
  443. data/test/models/country.rb +7 -7
  444. data/test/models/course.rb +6 -6
  445. data/test/models/customer.rb +83 -83
  446. data/test/models/customer_carrier.rb +14 -14
  447. data/test/models/dashboard.rb +3 -3
  448. data/test/models/default.rb +2 -2
  449. data/test/models/department.rb +4 -4
  450. data/test/models/developer.rb +274 -274
  451. data/test/models/dog.rb +5 -5
  452. data/test/models/dog_lover.rb +5 -5
  453. data/test/models/doubloon.rb +12 -12
  454. data/test/models/drink_designer.rb +3 -3
  455. data/test/models/edge.rb +5 -5
  456. data/test/models/electron.rb +5 -5
  457. data/test/models/engine.rb +4 -4
  458. data/test/models/entrant.rb +3 -3
  459. data/test/models/essay.rb +5 -5
  460. data/test/models/event.rb +3 -3
  461. data/test/models/eye.rb +37 -37
  462. data/test/models/face.rb +9 -9
  463. data/test/models/friendship.rb +6 -6
  464. data/test/models/guid.rb +2 -2
  465. data/test/models/guitar.rb +4 -4
  466. data/test/models/hotel.rb +11 -11
  467. data/test/models/image.rb +3 -3
  468. data/test/models/interest.rb +5 -5
  469. data/test/models/invoice.rb +4 -4
  470. data/test/models/item.rb +7 -7
  471. data/test/models/job.rb +7 -7
  472. data/test/models/joke.rb +7 -7
  473. data/test/models/keyboard.rb +3 -3
  474. data/test/models/legacy_thing.rb +3 -3
  475. data/test/models/lesson.rb +11 -11
  476. data/test/models/line_item.rb +3 -3
  477. data/test/models/liquid.rb +4 -4
  478. data/test/models/man.rb +11 -11
  479. data/test/models/matey.rb +4 -4
  480. data/test/models/member.rb +42 -42
  481. data/test/models/member_detail.rb +8 -8
  482. data/test/models/member_type.rb +3 -3
  483. data/test/models/membership.rb +35 -35
  484. data/test/models/mentor.rb +2 -2
  485. data/test/models/minimalistic.rb +2 -2
  486. data/test/models/minivan.rb +9 -9
  487. data/test/models/mixed_case_monkey.rb +3 -3
  488. data/test/models/mocktail_designer.rb +2 -2
  489. data/test/models/molecule.rb +6 -6
  490. data/test/models/movie.rb +5 -5
  491. data/test/models/node.rb +5 -5
  492. data/test/models/non_primary_key.rb +2 -2
  493. data/test/models/notification.rb +3 -3
  494. data/test/models/order.rb +4 -4
  495. data/test/models/organization.rb +14 -14
  496. data/test/models/other_dog.rb +5 -5
  497. data/test/models/owner.rb +37 -37
  498. data/test/models/parrot.rb +28 -28
  499. data/test/models/person.rb +142 -142
  500. data/test/models/personal_legacy_thing.rb +4 -4
  501. data/test/models/pet.rb +18 -18
  502. data/test/models/pet_treasure.rb +6 -6
  503. data/test/models/pirate.rb +92 -92
  504. data/test/models/possession.rb +3 -3
  505. data/test/models/post.rb +273 -273
  506. data/test/models/price_estimate.rb +4 -4
  507. data/test/models/professor.rb +5 -5
  508. data/test/models/project.rb +40 -40
  509. data/test/models/publisher.rb +2 -2
  510. data/test/models/publisher/article.rb +4 -4
  511. data/test/models/publisher/magazine.rb +3 -3
  512. data/test/models/rating.rb +4 -4
  513. data/test/models/reader.rb +23 -23
  514. data/test/models/recipe.rb +3 -3
  515. data/test/models/record.rb +2 -2
  516. data/test/models/reference.rb +22 -22
  517. data/test/models/reply.rb +61 -61
  518. data/test/models/ship.rb +39 -39
  519. data/test/models/ship_part.rb +8 -8
  520. data/test/models/shop.rb +17 -17
  521. data/test/models/shop_account.rb +6 -6
  522. data/test/models/speedometer.rb +6 -6
  523. data/test/models/sponsor.rb +7 -7
  524. data/test/models/string_key_object.rb +3 -3
  525. data/test/models/student.rb +4 -4
  526. data/test/models/subject.rb +16 -16
  527. data/test/models/subscriber.rb +8 -8
  528. data/test/models/subscription.rb +4 -4
  529. data/test/models/tag.rb +13 -13
  530. data/test/models/tagging.rb +13 -13
  531. data/test/models/task.rb +5 -5
  532. data/test/models/topic.rb +118 -118
  533. data/test/models/toy.rb +6 -6
  534. data/test/models/traffic_light.rb +4 -4
  535. data/test/models/treasure.rb +14 -14
  536. data/test/models/treaty.rb +7 -7
  537. data/test/models/tree.rb +3 -3
  538. data/test/models/tuning_peg.rb +4 -4
  539. data/test/models/tyre.rb +11 -11
  540. data/test/models/user.rb +14 -14
  541. data/test/models/uuid_child.rb +3 -3
  542. data/test/models/uuid_item.rb +6 -6
  543. data/test/models/uuid_parent.rb +3 -3
  544. data/test/models/vegetables.rb +24 -24
  545. data/test/models/vehicle.rb +6 -6
  546. data/test/models/vertex.rb +9 -9
  547. data/test/models/warehouse_thing.rb +5 -5
  548. data/test/models/wheel.rb +3 -3
  549. data/test/models/without_table.rb +3 -3
  550. data/test/models/zine.rb +3 -3
  551. data/test/schema/i5/ibm_db_specific_schema.rb +137 -0
  552. data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
  553. data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
  554. data/test/schema/mysql2_specific_schema.rb +68 -68
  555. data/test/schema/oracle_specific_schema.rb +40 -40
  556. data/test/schema/postgresql_specific_schema.rb +114 -114
  557. data/test/schema/schema.rb +1057 -1057
  558. data/test/schema/schema.rb.original +1057 -1057
  559. data/test/schema/sqlite_specific_schema.rb +18 -18
  560. data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
  561. data/test/support/config.rb +43 -43
  562. data/test/support/connection.rb +23 -23
  563. data/test/support/connection_helper.rb +14 -14
  564. data/test/support/ddl_helper.rb +8 -8
  565. data/test/support/schema_dumping_helper.rb +20 -20
  566. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -22
  567. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -182
  568. metadata +24 -13
  569. data/test/fixtures/author_addresses.original +0 -11
  570. 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