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