ibm_db 3.0.4 → 3.0.5

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 (459) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +4 -1
  3. data/LICENSE +1 -1
  4. data/MANIFEST +14 -14
  5. data/README +225 -225
  6. data/ext/Makefile.nt32 +181 -181
  7. data/ext/Makefile.nt32.191 +212 -212
  8. data/ext/extconf.rb +291 -291
  9. data/ext/ibm_db.c +11887 -11884
  10. data/ext/ruby_ibm_db.h +241 -241
  11. data/ext/ruby_ibm_db_cli.c +866 -866
  12. data/ext/ruby_ibm_db_cli.h +500 -500
  13. data/init.rb +41 -41
  14. data/lib/IBM_DB.rb +27 -27
  15. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3177 -3177
  16. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +1 -1
  17. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
  18. data/test/active_record/connection_adapters/fake_adapter.rb +46 -46
  19. data/test/assets/example.log +1 -1
  20. data/test/assets/test.txt +1 -1
  21. data/test/cases/adapter_test.rb +276 -261
  22. data/test/cases/aggregations_test.rb +158 -158
  23. data/test/cases/ar_schema_test.rb +161 -161
  24. data/test/cases/associations/association_scope_test.rb +21 -21
  25. data/test/cases/associations/belongs_to_associations_test.rb +1029 -1029
  26. data/test/cases/associations/callbacks_test.rb +192 -192
  27. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  28. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +26 -26
  29. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  30. data/test/cases/associations/eager_load_nested_include_test.rb +128 -128
  31. data/test/cases/associations/eager_singularization_test.rb +148 -148
  32. data/test/cases/associations/eager_test.rb +1429 -1411
  33. data/test/cases/associations/extension_test.rb +82 -82
  34. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +972 -932
  35. data/test/cases/associations/has_many_associations_test.rb +2182 -2162
  36. data/test/cases/associations/has_many_through_associations_test.rb +1204 -1204
  37. data/test/cases/associations/has_one_associations_test.rb +610 -610
  38. data/test/cases/associations/has_one_through_associations_test.rb +380 -380
  39. data/test/cases/associations/inner_join_association_test.rb +139 -139
  40. data/test/cases/associations/inverse_associations_test.rb +706 -693
  41. data/test/cases/associations/join_model_test.rb +754 -754
  42. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  43. data/test/cases/associations/required_test.rb +82 -82
  44. data/test/cases/associations_test.rb +380 -380
  45. data/test/cases/attribute_decorators_test.rb +125 -125
  46. data/test/cases/attribute_methods/read_test.rb +60 -60
  47. data/test/cases/attribute_methods/serialization_test.rb +29 -29
  48. data/test/cases/attribute_methods_test.rb +952 -952
  49. data/test/cases/attribute_set_test.rb +210 -200
  50. data/test/cases/attribute_test.rb +180 -180
  51. data/test/cases/attributes_test.rb +136 -136
  52. data/test/cases/autosave_association_test.rb +1595 -1595
  53. data/test/cases/base_test.rb +1664 -1638
  54. data/test/cases/batches_test.rb +212 -212
  55. data/test/cases/binary_test.rb +52 -52
  56. data/test/cases/bind_parameter_test.rb +100 -100
  57. data/test/cases/calculations_test.rb +646 -646
  58. data/test/cases/callbacks_test.rb +543 -543
  59. data/test/cases/clone_test.rb +40 -40
  60. data/test/cases/coders/yaml_column_test.rb +63 -63
  61. data/test/cases/column_alias_test.rb +17 -17
  62. data/test/cases/column_definition_test.rb +123 -123
  63. data/test/cases/connection_adapters/adapter_leasing_test.rb +54 -54
  64. data/test/cases/connection_adapters/connection_handler_test.rb +53 -53
  65. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  66. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +293 -293
  67. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +65 -65
  68. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  69. data/test/cases/connection_adapters/schema_cache_test.rb +56 -56
  70. data/test/cases/connection_adapters/type_lookup_test.rb +110 -110
  71. data/test/cases/connection_management_test.rb +122 -122
  72. data/test/cases/connection_pool_test.rb +346 -346
  73. data/test/cases/connection_specification/resolver_test.rb +116 -116
  74. data/test/cases/core_test.rb +112 -112
  75. data/test/cases/counter_cache_test.rb +209 -209
  76. data/test/cases/custom_locking_test.rb +17 -17
  77. data/test/cases/database_statements_test.rb +19 -19
  78. data/test/cases/date_time_test.rb +61 -61
  79. data/test/cases/defaults_test.rb +223 -223
  80. data/test/cases/dirty_test.rb +785 -775
  81. data/test/cases/disconnected_test.rb +28 -28
  82. data/test/cases/dup_test.rb +157 -157
  83. data/test/cases/enum_test.rb +290 -290
  84. data/test/cases/explain_subscriber_test.rb +64 -64
  85. data/test/cases/explain_test.rb +76 -76
  86. data/test/cases/finder_respond_to_test.rb +60 -60
  87. data/test/cases/finder_test.rb +1169 -1166
  88. data/test/cases/fixture_set/file_test.rb +138 -138
  89. data/test/cases/fixtures_test.rb +908 -897
  90. data/test/cases/forbidden_attributes_protection_test.rb +99 -99
  91. data/test/cases/habtm_destroy_order_test.rb +61 -61
  92. data/test/cases/helper.rb +210 -210
  93. data/test/cases/hot_compatibility_test.rb +54 -54
  94. data/test/cases/i18n_test.rb +45 -45
  95. data/test/cases/inheritance_test.rb +375 -375
  96. data/test/cases/integration_test.rb +139 -139
  97. data/test/cases/invalid_connection_test.rb +22 -22
  98. data/test/cases/invalid_date_test.rb +32 -32
  99. data/test/cases/invertible_migration_test.rb +295 -295
  100. data/test/cases/json_serialization_test.rb +302 -302
  101. data/test/cases/locking_test.rb +477 -477
  102. data/test/cases/log_subscriber_test.rb +136 -136
  103. data/test/cases/migration/change_schema_test - Copy.rb +448 -448
  104. data/test/cases/migration/change_schema_test.rb +512 -472
  105. data/test/cases/migration/change_table_test.rb +224 -224
  106. data/test/cases/migration/column_attributes_test.rb +192 -192
  107. data/test/cases/migration/column_positioning_test.rb +56 -56
  108. data/test/cases/migration/columns_test.rb +304 -304
  109. data/test/cases/migration/command_recorder_test.rb +305 -305
  110. data/test/cases/migration/create_join_table_test.rb +148 -148
  111. data/test/cases/migration/foreign_key_test - Changed.rb +325 -325
  112. data/test/cases/migration/foreign_key_test.rb +328 -360
  113. data/test/cases/migration/helper.rb +39 -39
  114. data/test/cases/migration/index_test.rb +216 -216
  115. data/test/cases/migration/logger_test.rb +36 -36
  116. data/test/cases/migration/pending_migrations_test.rb +53 -53
  117. data/test/cases/migration/references_foreign_key_test.rb +169 -214
  118. data/test/cases/migration/references_index_test.rb +101 -101
  119. data/test/cases/migration/references_statements_test.rb +116 -116
  120. data/test/cases/migration/rename_table_test.rb +93 -93
  121. data/test/cases/migration/table_and_index_test.rb +24 -24
  122. data/test/cases/migration_test.rb +959 -959
  123. data/test/cases/migrator_test.rb +388 -388
  124. data/test/cases/mixin_test.rb +70 -70
  125. data/test/cases/modules_test.rb +173 -173
  126. data/test/cases/multiparameter_attributes_test.rb +350 -350
  127. data/test/cases/multiple_db_test.rb +115 -115
  128. data/test/cases/nested_attributes_test.rb +1070 -1057
  129. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  130. data/test/cases/persistence_test.rb +909 -909
  131. data/test/cases/pooled_connections_test.rb +81 -81
  132. data/test/cases/primary_keys_test.rb +237 -237
  133. data/test/cases/query_cache_test.rb +326 -326
  134. data/test/cases/quoting_test.rb +156 -156
  135. data/test/cases/readonly_test.rb +118 -118
  136. data/test/cases/reaper_test.rb +85 -85
  137. data/test/cases/reflection_test.rb +463 -454
  138. data/test/cases/relation/delegation_test.rb +68 -68
  139. data/test/cases/relation/merging_test.rb +161 -161
  140. data/test/cases/relation/mutation_test.rb +165 -165
  141. data/test/cases/relation/predicate_builder_test.rb +14 -14
  142. data/test/cases/relation/where_chain_test.rb +181 -181
  143. data/test/cases/relation/where_test.rb +300 -300
  144. data/test/cases/relation/where_test2.rb +36 -36
  145. data/test/cases/relation_test.rb +319 -297
  146. data/test/cases/relations_test.rb +1815 -1815
  147. data/test/cases/reload_models_test.rb +22 -22
  148. data/test/cases/result_test.rb +80 -80
  149. data/test/cases/sanitize_test.rb +83 -83
  150. data/test/cases/schema_dumper_test.rb +463 -463
  151. data/test/cases/scoping/default_scoping_test.rb +454 -454
  152. data/test/cases/scoping/named_scoping_test.rb +524 -524
  153. data/test/cases/scoping/relation_scoping_test.rb +357 -357
  154. data/test/cases/serialization_test.rb +104 -104
  155. data/test/cases/serialized_attribute_test.rb +277 -277
  156. data/test/cases/statement_cache_test.rb +98 -98
  157. data/test/cases/store_test.rb +194 -194
  158. data/test/cases/tasks/database_tasks_test.rb +398 -396
  159. data/test/cases/tasks/mysql_rake_test.rb +324 -311
  160. data/test/cases/tasks/postgresql_rake_test.rb +250 -245
  161. data/test/cases/tasks/sqlite_rake_test.rb +193 -193
  162. data/test/cases/test_case.rb +123 -123
  163. data/test/cases/timestamp_test.rb +467 -468
  164. data/test/cases/transaction_callbacks_test.rb +452 -452
  165. data/test/cases/transaction_isolation_test.rb +106 -106
  166. data/test/cases/transactions_test.rb +817 -817
  167. data/test/cases/type/decimal_test.rb +56 -51
  168. data/test/cases/type/integer_test.rb +121 -121
  169. data/test/cases/type/string_test.rb +36 -36
  170. data/test/cases/type/type_map_test.rb +177 -177
  171. data/test/cases/type/unsigned_integer_test.rb +18 -18
  172. data/test/cases/types_test.rb +141 -141
  173. data/test/cases/unconnected_test.rb +33 -33
  174. data/test/cases/validations/association_validation_test.rb +86 -86
  175. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  176. data/test/cases/validations/i18n_validation_test.rb +90 -90
  177. data/test/cases/validations/length_validation_test.rb +47 -47
  178. data/test/cases/validations/presence_validation_test.rb +68 -68
  179. data/test/cases/validations/uniqueness_validation_test.rb +457 -434
  180. data/test/cases/validations_repair_helper.rb +23 -23
  181. data/test/cases/validations_test.rb +165 -165
  182. data/test/cases/view_test.rb +119 -113
  183. data/test/cases/xml_serialization_test.rb +457 -457
  184. data/test/cases/yaml_serialization_test.rb +126 -86
  185. data/test/config.rb +5 -5
  186. data/test/config.yml +154 -154
  187. data/test/connections/native_ibm_db/connection.rb +43 -43
  188. data/test/fixtures/accounts.yml +29 -29
  189. data/test/fixtures/admin/accounts.yml +2 -2
  190. data/test/fixtures/admin/randomly_named_a9.yml +7 -7
  191. data/test/fixtures/admin/randomly_named_b0.yml +7 -7
  192. data/test/fixtures/admin/users.yml +10 -10
  193. data/test/fixtures/author_addresses.yml +17 -17
  194. data/test/fixtures/author_favorites.yml +3 -3
  195. data/test/fixtures/authors.yml +23 -23
  196. data/test/fixtures/binaries.yml +133 -133
  197. data/test/fixtures/books.yml +11 -11
  198. data/test/fixtures/bulbs.yml +5 -5
  199. data/test/fixtures/cars.yml +9 -9
  200. data/test/fixtures/categories.yml +19 -19
  201. data/test/fixtures/categories/special_categories.yml +9 -9
  202. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  203. data/test/fixtures/categories_ordered.yml +7 -7
  204. data/test/fixtures/categories_posts.yml +31 -31
  205. data/test/fixtures/categorizations.yml +23 -23
  206. data/test/fixtures/clubs.yml +8 -8
  207. data/test/fixtures/collections.yml +3 -3
  208. data/test/fixtures/colleges.yml +3 -3
  209. data/test/fixtures/comments.yml +65 -65
  210. data/test/fixtures/companies.yml +67 -67
  211. data/test/fixtures/computers.yml +10 -10
  212. data/test/fixtures/courses.yml +8 -8
  213. data/test/fixtures/customers.yml +25 -25
  214. data/test/fixtures/dashboards.yml +6 -6
  215. data/test/fixtures/developers.yml +21 -21
  216. data/test/fixtures/developers_projects.yml +16 -16
  217. data/test/fixtures/dog_lovers.yml +7 -7
  218. data/test/fixtures/dogs.yml +4 -4
  219. data/test/fixtures/doubloons.yml +3 -3
  220. data/test/fixtures/edges.yml +5 -5
  221. data/test/fixtures/entrants.yml +14 -14
  222. data/test/fixtures/essays.yml +6 -6
  223. data/test/fixtures/faces.yml +11 -11
  224. data/test/fixtures/fk_test_has_fk.yml +3 -3
  225. data/test/fixtures/fk_test_has_pk.yml +1 -1
  226. data/test/fixtures/friendships.yml +4 -4
  227. data/test/fixtures/funny_jokes.yml +10 -10
  228. data/test/fixtures/interests.yml +33 -33
  229. data/test/fixtures/items.yml +3 -3
  230. data/test/fixtures/jobs.yml +7 -7
  231. data/test/fixtures/legacy_things.yml +3 -3
  232. data/test/fixtures/mateys.yml +4 -4
  233. data/test/fixtures/member_details.yml +8 -8
  234. data/test/fixtures/member_types.yml +6 -6
  235. data/test/fixtures/members.yml +11 -11
  236. data/test/fixtures/memberships.yml +34 -34
  237. data/test/fixtures/men.yml +5 -5
  238. data/test/fixtures/minimalistics.yml +2 -2
  239. data/test/fixtures/minivans.yml +5 -5
  240. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  241. data/test/fixtures/mixins.yml +29 -29
  242. data/test/fixtures/movies.yml +7 -7
  243. data/test/fixtures/naked/csv/accounts.csv +1 -1
  244. data/test/fixtures/naked/yml/accounts.yml +1 -1
  245. data/test/fixtures/naked/yml/companies.yml +1 -1
  246. data/test/fixtures/naked/yml/courses.yml +1 -1
  247. data/test/fixtures/organizations.yml +5 -5
  248. data/test/fixtures/other_topics.yml +42 -42
  249. data/test/fixtures/owners.yml +9 -9
  250. data/test/fixtures/parrots.yml +27 -27
  251. data/test/fixtures/parrots_pirates.yml +7 -7
  252. data/test/fixtures/people.yml +24 -24
  253. data/test/fixtures/peoples_treasures.yml +3 -3
  254. data/test/fixtures/pets.yml +19 -19
  255. data/test/fixtures/pirates.yml +12 -12
  256. data/test/fixtures/posts.yml +80 -80
  257. data/test/fixtures/price_estimates.yml +7 -7
  258. data/test/fixtures/products.yml +4 -4
  259. data/test/fixtures/projects.yml +7 -7
  260. data/test/fixtures/randomly_named_a9.yml +7 -7
  261. data/test/fixtures/ratings.yml +14 -14
  262. data/test/fixtures/readers.yml +11 -11
  263. data/test/fixtures/references.yml +17 -17
  264. data/test/fixtures/reserved_words/distinct.yml +5 -5
  265. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  266. data/test/fixtures/reserved_words/group.yml +14 -14
  267. data/test/fixtures/reserved_words/select.yml +8 -8
  268. data/test/fixtures/reserved_words/values.yml +7 -7
  269. data/test/fixtures/ships.yml +6 -6
  270. data/test/fixtures/speedometers.yml +8 -8
  271. data/test/fixtures/sponsors.yml +12 -12
  272. data/test/fixtures/string_key_objects.yml +7 -7
  273. data/test/fixtures/subscribers.yml +10 -10
  274. data/test/fixtures/subscriptions.yml +12 -12
  275. data/test/fixtures/taggings.yml +78 -78
  276. data/test/fixtures/tags.yml +11 -11
  277. data/test/fixtures/tasks.yml +7 -7
  278. data/test/fixtures/teapots.yml +3 -3
  279. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  280. data/test/fixtures/to_be_linked/users.yml +10 -10
  281. data/test/fixtures/topics.yml +49 -49
  282. data/test/fixtures/toys.yml +14 -14
  283. data/test/fixtures/traffic_lights.yml +9 -9
  284. data/test/fixtures/treasures.yml +10 -10
  285. data/test/fixtures/uuid_children.yml +3 -3
  286. data/test/fixtures/uuid_parents.yml +2 -2
  287. data/test/fixtures/variants.yml +4 -4
  288. data/test/fixtures/vegetables.yml +19 -19
  289. data/test/fixtures/vertices.yml +3 -3
  290. data/test/fixtures/warehouse_things.yml +2 -2
  291. data/test/fixtures/zines.yml +5 -5
  292. data/test/ibm_db_test.rb +24 -24
  293. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  294. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  295. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  296. data/test/migrations/missing/1000_people_have_middle_names.rb +8 -8
  297. data/test/migrations/missing/1_people_have_last_names.rb +8 -8
  298. data/test/migrations/missing/3_we_need_reminders.rb +11 -11
  299. data/test/migrations/missing/4_innocent_jointable.rb +11 -11
  300. data/test/migrations/rename/1_we_need_things.rb +10 -10
  301. data/test/migrations/rename/2_rename_things.rb +8 -8
  302. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  303. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  304. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  305. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  306. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  307. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  308. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  309. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  310. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  311. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  312. data/test/migrations/valid/2_we_need_reminders.rb +11 -11
  313. data/test/migrations/valid/3_innocent_jointable.rb +11 -11
  314. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  315. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +11 -11
  316. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +11 -11
  317. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  318. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  319. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  320. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  321. data/test/models/admin.rb +4 -4
  322. data/test/models/admin/account.rb +2 -2
  323. data/test/models/admin/randomly_named_c1.rb +3 -3
  324. data/test/models/admin/user.rb +40 -40
  325. data/test/models/aircraft.rb +4 -4
  326. data/test/models/arunit2_model.rb +3 -3
  327. data/test/models/author.rb +212 -212
  328. data/test/models/auto_id.rb +4 -4
  329. data/test/models/autoloadable/extra_firm.rb +2 -2
  330. data/test/models/binary.rb +1 -1
  331. data/test/models/bird.rb +12 -12
  332. data/test/models/book.rb +18 -18
  333. data/test/models/boolean.rb +2 -2
  334. data/test/models/bulb.rb +51 -51
  335. data/test/models/cake_designer.rb +3 -3
  336. data/test/models/car.rb +26 -26
  337. data/test/models/carrier.rb +2 -2
  338. data/test/models/categorization.rb +19 -19
  339. data/test/models/category.rb +35 -35
  340. data/test/models/chef.rb +7 -3
  341. data/test/models/citation.rb +3 -3
  342. data/test/models/club.rb +23 -23
  343. data/test/models/college.rb +10 -10
  344. data/test/models/column.rb +3 -3
  345. data/test/models/column_name.rb +3 -3
  346. data/test/models/comment.rb +64 -64
  347. data/test/models/company.rb +228 -225
  348. data/test/models/company_in_module.rb +98 -98
  349. data/test/models/computer.rb +3 -3
  350. data/test/models/contact.rb +41 -41
  351. data/test/models/contract.rb +20 -20
  352. data/test/models/country.rb +7 -7
  353. data/test/models/course.rb +6 -6
  354. data/test/models/customer.rb +77 -77
  355. data/test/models/customer_carrier.rb +14 -14
  356. data/test/models/dashboard.rb +3 -3
  357. data/test/models/default.rb +2 -2
  358. data/test/models/department.rb +4 -4
  359. data/test/models/developer.rb +255 -252
  360. data/test/models/dog.rb +5 -5
  361. data/test/models/dog_lover.rb +5 -5
  362. data/test/models/doubloon.rb +12 -12
  363. data/test/models/drink_designer.rb +3 -3
  364. data/test/models/edge.rb +5 -5
  365. data/test/models/electron.rb +5 -5
  366. data/test/models/engine.rb +4 -4
  367. data/test/models/entrant.rb +3 -3
  368. data/test/models/essay.rb +5 -5
  369. data/test/models/event.rb +2 -2
  370. data/test/models/eye.rb +37 -37
  371. data/test/models/face.rb +9 -9
  372. data/test/models/friendship.rb +6 -6
  373. data/test/models/guid.rb +1 -1
  374. data/test/models/hotel.rb +9 -6
  375. data/test/models/image.rb +3 -3
  376. data/test/models/interest.rb +5 -5
  377. data/test/models/invoice.rb +4 -4
  378. data/test/models/item.rb +7 -7
  379. data/test/models/job.rb +7 -7
  380. data/test/models/joke.rb +7 -7
  381. data/test/models/keyboard.rb +3 -3
  382. data/test/models/legacy_thing.rb +3 -3
  383. data/test/models/lesson.rb +11 -11
  384. data/test/models/line_item.rb +3 -3
  385. data/test/models/liquid.rb +4 -4
  386. data/test/models/man.rb +11 -11
  387. data/test/models/matey.rb +4 -4
  388. data/test/models/member.rb +41 -41
  389. data/test/models/member_detail.rb +7 -7
  390. data/test/models/member_type.rb +3 -3
  391. data/test/models/membership.rb +35 -35
  392. data/test/models/minimalistic.rb +2 -2
  393. data/test/models/minivan.rb +9 -9
  394. data/test/models/mixed_case_monkey.rb +3 -3
  395. data/test/models/molecule.rb +6 -6
  396. data/test/models/movie.rb +5 -5
  397. data/test/models/order.rb +4 -4
  398. data/test/models/organization.rb +14 -14
  399. data/test/models/owner.rb +34 -34
  400. data/test/models/parrot.rb +29 -29
  401. data/test/models/person.rb +143 -143
  402. data/test/models/personal_legacy_thing.rb +4 -4
  403. data/test/models/pet.rb +15 -15
  404. data/test/models/pirate.rb +92 -92
  405. data/test/models/possession.rb +3 -3
  406. data/test/models/post.rb +264 -264
  407. data/test/models/price_estimate.rb +4 -4
  408. data/test/models/professor.rb +5 -5
  409. data/test/models/project.rb +31 -29
  410. data/test/models/publisher.rb +2 -2
  411. data/test/models/publisher/article.rb +4 -4
  412. data/test/models/publisher/magazine.rb +3 -3
  413. data/test/models/randomly_named_c1.rb +3 -3
  414. data/test/models/rating.rb +4 -4
  415. data/test/models/reader.rb +23 -23
  416. data/test/models/record.rb +2 -2
  417. data/test/models/reference.rb +22 -22
  418. data/test/models/reply.rb +61 -61
  419. data/test/models/ship.rb +33 -33
  420. data/test/models/ship_part.rb +7 -7
  421. data/test/models/shop.rb +17 -17
  422. data/test/models/shop_account.rb +6 -6
  423. data/test/models/speedometer.rb +6 -6
  424. data/test/models/sponsor.rb +7 -7
  425. data/test/models/string_key_object.rb +3 -3
  426. data/test/models/student.rb +4 -4
  427. data/test/models/subject.rb +16 -16
  428. data/test/models/subscriber.rb +8 -8
  429. data/test/models/subscription.rb +4 -4
  430. data/test/models/tag.rb +7 -7
  431. data/test/models/tagging.rb +13 -13
  432. data/test/models/task.rb +5 -5
  433. data/test/models/topic.rb +124 -124
  434. data/test/models/toy.rb +6 -6
  435. data/test/models/traffic_light.rb +4 -4
  436. data/test/models/treasure.rb +14 -14
  437. data/test/models/treaty.rb +7 -7
  438. data/test/models/tyre.rb +11 -11
  439. data/test/models/uuid_child.rb +3 -3
  440. data/test/models/uuid_parent.rb +3 -3
  441. data/test/models/vegetables.rb +24 -24
  442. data/test/models/vehicle.rb +6 -6
  443. data/test/models/vertex.rb +9 -9
  444. data/test/models/warehouse_thing.rb +5 -5
  445. data/test/models/wheel.rb +3 -3
  446. data/test/models/without_table.rb +3 -3
  447. data/test/models/zine.rb +3 -3
  448. data/test/schema/mysql2_specific_schema.rb +58 -58
  449. data/test/schema/mysql_specific_schema.rb +70 -70
  450. data/test/schema/oracle_specific_schema.rb +43 -43
  451. data/test/schema/postgresql_specific_schema.rb +202 -202
  452. data/test/schema/schema.rb +952 -938
  453. data/test/schema/sqlite_specific_schema.rb +21 -21
  454. data/test/support/config.rb +43 -43
  455. data/test/support/connection.rb +22 -22
  456. data/test/support/connection_helper.rb +14 -14
  457. data/test/support/ddl_helper.rb +8 -8
  458. data/test/support/schema_dumping_helper.rb +20 -20
  459. metadata +3 -3
@@ -1,65 +1,65 @@
1
- require "cases/helper"
2
-
3
- if current_adapter?(:MysqlAdapter, :Mysql2Adapter)
4
- module ActiveRecord
5
- module ConnectionAdapters
6
- class MysqlTypeLookupTest < ActiveRecord::TestCase
7
- setup do
8
- @connection = ActiveRecord::Base.connection
9
- end
10
-
11
- def test_boolean_types
12
- emulate_booleans(true) do
13
- assert_lookup_type :boolean, 'tinyint(1)'
14
- assert_lookup_type :boolean, 'TINYINT(1)'
15
- end
16
- end
17
-
18
- def test_string_types
19
- assert_lookup_type :string, "enum('one', 'two', 'three')"
20
- assert_lookup_type :string, "ENUM('one', 'two', 'three')"
21
- assert_lookup_type :string, "set('one', 'two', 'three')"
22
- assert_lookup_type :string, "SET('one', 'two', 'three')"
23
- end
24
-
25
- def test_enum_type_with_value_matching_other_type
26
- assert_lookup_type :string, "ENUM('unicode', '8bit', 'none')"
27
- end
28
-
29
- def test_binary_types
30
- assert_lookup_type :binary, 'bit'
31
- assert_lookup_type :binary, 'BIT'
32
- end
33
-
34
- def test_integer_types
35
- emulate_booleans(false) do
36
- assert_lookup_type :integer, 'tinyint(1)'
37
- assert_lookup_type :integer, 'TINYINT(1)'
38
- assert_lookup_type :integer, 'year'
39
- assert_lookup_type :integer, 'YEAR'
40
- end
41
- end
42
-
43
- private
44
-
45
- def assert_lookup_type(type, lookup)
46
- cast_type = @connection.type_map.lookup(lookup)
47
- assert_equal type, cast_type.type
48
- end
49
-
50
- def emulate_booleans(value)
51
- old_emulate_booleans = @connection.emulate_booleans
52
- change_emulate_booleans(value)
53
- yield
54
- ensure
55
- change_emulate_booleans(old_emulate_booleans)
56
- end
57
-
58
- def change_emulate_booleans(value)
59
- @connection.emulate_booleans = value
60
- @connection.clear_cache!
61
- end
62
- end
63
- end
64
- end
65
- end
1
+ require "cases/helper"
2
+
3
+ if current_adapter?(:MysqlAdapter, :Mysql2Adapter)
4
+ module ActiveRecord
5
+ module ConnectionAdapters
6
+ class MysqlTypeLookupTest < ActiveRecord::TestCase
7
+ setup do
8
+ @connection = ActiveRecord::Base.connection
9
+ end
10
+
11
+ def test_boolean_types
12
+ emulate_booleans(true) do
13
+ assert_lookup_type :boolean, 'tinyint(1)'
14
+ assert_lookup_type :boolean, 'TINYINT(1)'
15
+ end
16
+ end
17
+
18
+ def test_string_types
19
+ assert_lookup_type :string, "enum('one', 'two', 'three')"
20
+ assert_lookup_type :string, "ENUM('one', 'two', 'three')"
21
+ assert_lookup_type :string, "set('one', 'two', 'three')"
22
+ assert_lookup_type :string, "SET('one', 'two', 'three')"
23
+ end
24
+
25
+ def test_enum_type_with_value_matching_other_type
26
+ assert_lookup_type :string, "ENUM('unicode', '8bit', 'none')"
27
+ end
28
+
29
+ def test_binary_types
30
+ assert_lookup_type :binary, 'bit'
31
+ assert_lookup_type :binary, 'BIT'
32
+ end
33
+
34
+ def test_integer_types
35
+ emulate_booleans(false) do
36
+ assert_lookup_type :integer, 'tinyint(1)'
37
+ assert_lookup_type :integer, 'TINYINT(1)'
38
+ assert_lookup_type :integer, 'year'
39
+ assert_lookup_type :integer, 'YEAR'
40
+ end
41
+ end
42
+
43
+ private
44
+
45
+ def assert_lookup_type(type, lookup)
46
+ cast_type = @connection.type_map.lookup(lookup)
47
+ assert_equal type, cast_type.type
48
+ end
49
+
50
+ def emulate_booleans(value)
51
+ old_emulate_booleans = @connection.emulate_booleans
52
+ change_emulate_booleans(value)
53
+ yield
54
+ ensure
55
+ change_emulate_booleans(old_emulate_booleans)
56
+ end
57
+
58
+ def change_emulate_booleans(value)
59
+ @connection.emulate_booleans = value
60
+ @connection.clear_cache!
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,13 +1,13 @@
1
- require "cases/helper"
2
-
3
- module ActiveRecord
4
- module ConnectionAdapters
5
- module Quoting
6
- class QuotingTest < ActiveRecord::TestCase
7
- def test_quoting_classes
8
- assert_equal "'Object'", AbstractAdapter.new(nil).quote(Object)
9
- end
10
- end
11
- end
12
- end
13
- end
1
+ require "cases/helper"
2
+
3
+ module ActiveRecord
4
+ module ConnectionAdapters
5
+ module Quoting
6
+ class QuotingTest < ActiveRecord::TestCase
7
+ def test_quoting_classes
8
+ assert_equal "'Object'", AbstractAdapter.new(nil).quote(Object)
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,56 +1,56 @@
1
- require "cases/helper"
2
-
3
- module ActiveRecord
4
- module ConnectionAdapters
5
- class SchemaCacheTest < ActiveRecord::TestCase
6
- def setup
7
- connection = ActiveRecord::Base.connection
8
- @cache = SchemaCache.new connection
9
- end
10
-
11
- def test_primary_key
12
- assert_equal 'id', @cache.primary_keys('posts')
13
- end
14
-
15
- def test_primary_key_for_non_existent_table
16
- assert_nil @cache.primary_keys('omgponies')
17
- end
18
-
19
- def test_caches_columns
20
- columns = @cache.columns('posts')
21
- assert_equal columns, @cache.columns('posts')
22
- end
23
-
24
- def test_caches_columns_hash
25
- columns_hash = @cache.columns_hash('posts')
26
- assert_equal columns_hash, @cache.columns_hash('posts')
27
- end
28
-
29
- def test_clearing
30
- @cache.columns('posts')
31
- @cache.columns_hash('posts')
32
- @cache.tables('posts')
33
- @cache.primary_keys('posts')
34
-
35
- @cache.clear!
36
-
37
- assert_equal 0, @cache.size
38
- end
39
-
40
- def test_dump_and_load
41
- @cache.columns('posts')
42
- @cache.columns_hash('posts')
43
- @cache.tables('posts')
44
- @cache.primary_keys('posts')
45
-
46
- @cache = Marshal.load(Marshal.dump(@cache))
47
-
48
- assert_equal 11, @cache.columns('posts').size
49
- assert_equal 11, @cache.columns_hash('posts').size
50
- assert @cache.tables('posts')
51
- assert_equal 'id', @cache.primary_keys('posts')
52
- end
53
-
54
- end
55
- end
56
- end
1
+ require "cases/helper"
2
+
3
+ module ActiveRecord
4
+ module ConnectionAdapters
5
+ class SchemaCacheTest < ActiveRecord::TestCase
6
+ def setup
7
+ connection = ActiveRecord::Base.connection
8
+ @cache = SchemaCache.new connection
9
+ end
10
+
11
+ def test_primary_key
12
+ assert_equal 'id', @cache.primary_keys('posts')
13
+ end
14
+
15
+ def test_primary_key_for_non_existent_table
16
+ assert_nil @cache.primary_keys('omgponies')
17
+ end
18
+
19
+ def test_caches_columns
20
+ columns = @cache.columns('posts')
21
+ assert_equal columns, @cache.columns('posts')
22
+ end
23
+
24
+ def test_caches_columns_hash
25
+ columns_hash = @cache.columns_hash('posts')
26
+ assert_equal columns_hash, @cache.columns_hash('posts')
27
+ end
28
+
29
+ def test_clearing
30
+ @cache.columns('posts')
31
+ @cache.columns_hash('posts')
32
+ @cache.tables('posts')
33
+ @cache.primary_keys('posts')
34
+
35
+ @cache.clear!
36
+
37
+ assert_equal 0, @cache.size
38
+ end
39
+
40
+ def test_dump_and_load
41
+ @cache.columns('posts')
42
+ @cache.columns_hash('posts')
43
+ @cache.tables('posts')
44
+ @cache.primary_keys('posts')
45
+
46
+ @cache = Marshal.load(Marshal.dump(@cache))
47
+
48
+ assert_equal 11, @cache.columns('posts').size
49
+ assert_equal 11, @cache.columns_hash('posts').size
50
+ assert @cache.tables('posts')
51
+ assert_equal 'id', @cache.primary_keys('posts')
52
+ end
53
+
54
+ end
55
+ end
56
+ end
@@ -1,110 +1,110 @@
1
- require "cases/helper"
2
-
3
- unless current_adapter?(:PostgreSQLAdapter) # PostgreSQL does not use type strigns for lookup
4
- module ActiveRecord
5
- module ConnectionAdapters
6
- class TypeLookupTest < ActiveRecord::TestCase
7
- setup do
8
- @connection = ActiveRecord::Base.connection
9
- end
10
-
11
- def test_boolean_types
12
- assert_lookup_type :boolean, 'boolean'
13
- assert_lookup_type :boolean, 'BOOLEAN'
14
- end
15
-
16
- def test_string_types
17
- assert_lookup_type :string, 'char'
18
- assert_lookup_type :string, 'varchar'
19
- assert_lookup_type :string, 'VARCHAR'
20
- assert_lookup_type :string, 'varchar(255)'
21
- assert_lookup_type :string, 'character varying'
22
- end
23
-
24
- def test_binary_types
25
- assert_lookup_type :binary, 'binary'
26
- assert_lookup_type :binary, 'BINARY'
27
- assert_lookup_type :binary, 'blob'
28
- assert_lookup_type :binary, 'BLOB'
29
- end
30
-
31
- def test_text_types
32
- assert_lookup_type :text, 'text'
33
- assert_lookup_type :text, 'TEXT'
34
- assert_lookup_type :text, 'clob'
35
- assert_lookup_type :text, 'CLOB'
36
- end
37
-
38
- def test_date_types
39
- assert_lookup_type :date, 'date'
40
- assert_lookup_type :date, 'DATE'
41
- end
42
-
43
- def test_time_types
44
- assert_lookup_type :time, 'time'
45
- assert_lookup_type :time, 'TIME'
46
- end
47
-
48
- def test_datetime_types
49
- assert_lookup_type :datetime, 'datetime'
50
- assert_lookup_type :datetime, 'DATETIME'
51
- assert_lookup_type :datetime, 'timestamp'
52
- assert_lookup_type :datetime, 'TIMESTAMP'
53
- end
54
-
55
- def test_decimal_types
56
- assert_lookup_type :decimal, 'decimal'
57
- assert_lookup_type :decimal, 'decimal(2,8)'
58
- assert_lookup_type :decimal, 'DECIMAL'
59
- assert_lookup_type :decimal, 'numeric'
60
- assert_lookup_type :decimal, 'numeric(2,8)'
61
- assert_lookup_type :decimal, 'NUMERIC'
62
- assert_lookup_type :decimal, 'number'
63
- assert_lookup_type :decimal, 'number(2,8)'
64
- assert_lookup_type :decimal, 'NUMBER'
65
- end
66
-
67
- def test_float_types
68
- assert_lookup_type :float, 'float'
69
- assert_lookup_type :float, 'FLOAT'
70
- assert_lookup_type :float, 'double'
71
- assert_lookup_type :float, 'DOUBLE'
72
- end
73
-
74
- def test_integer_types
75
- assert_lookup_type :integer, 'integer'
76
- assert_lookup_type :integer, 'INTEGER'
77
- assert_lookup_type :integer, 'tinyint'
78
- assert_lookup_type :integer, 'smallint'
79
- assert_lookup_type :integer, 'bigint'
80
- end
81
-
82
- def test_bigint_limit
83
- cast_type = @connection.type_map.lookup("bigint")
84
- if current_adapter?(:OracleAdapter)
85
- assert_equal 19, cast_type.limit
86
- else
87
- assert_equal 8, cast_type.limit
88
- end
89
- end
90
-
91
- def test_decimal_without_scale
92
- types = %w{decimal(2) decimal(2,0) numeric(2) numeric(2,0) number(2) number(2,0)}
93
- types.each do |type|
94
- cast_type = @connection.type_map.lookup(type)
95
-
96
- assert_equal :decimal, cast_type.type
97
- assert_equal 2, cast_type.type_cast_from_user(2.1)
98
- end
99
- end
100
-
101
- private
102
-
103
- def assert_lookup_type(type, lookup)
104
- cast_type = @connection.type_map.lookup(lookup)
105
- assert_equal type, cast_type.type
106
- end
107
- end
108
- end
109
- end
110
- end
1
+ require "cases/helper"
2
+
3
+ unless current_adapter?(:PostgreSQLAdapter) # PostgreSQL does not use type strigns for lookup
4
+ module ActiveRecord
5
+ module ConnectionAdapters
6
+ class TypeLookupTest < ActiveRecord::TestCase
7
+ setup do
8
+ @connection = ActiveRecord::Base.connection
9
+ end
10
+
11
+ def test_boolean_types
12
+ assert_lookup_type :boolean, 'boolean'
13
+ assert_lookup_type :boolean, 'BOOLEAN'
14
+ end
15
+
16
+ def test_string_types
17
+ assert_lookup_type :string, 'char'
18
+ assert_lookup_type :string, 'varchar'
19
+ assert_lookup_type :string, 'VARCHAR'
20
+ assert_lookup_type :string, 'varchar(255)'
21
+ assert_lookup_type :string, 'character varying'
22
+ end
23
+
24
+ def test_binary_types
25
+ assert_lookup_type :binary, 'binary'
26
+ assert_lookup_type :binary, 'BINARY'
27
+ assert_lookup_type :binary, 'blob'
28
+ assert_lookup_type :binary, 'BLOB'
29
+ end
30
+
31
+ def test_text_types
32
+ assert_lookup_type :text, 'text'
33
+ assert_lookup_type :text, 'TEXT'
34
+ assert_lookup_type :text, 'clob'
35
+ assert_lookup_type :text, 'CLOB'
36
+ end
37
+
38
+ def test_date_types
39
+ assert_lookup_type :date, 'date'
40
+ assert_lookup_type :date, 'DATE'
41
+ end
42
+
43
+ def test_time_types
44
+ assert_lookup_type :time, 'time'
45
+ assert_lookup_type :time, 'TIME'
46
+ end
47
+
48
+ def test_datetime_types
49
+ assert_lookup_type :datetime, 'datetime'
50
+ assert_lookup_type :datetime, 'DATETIME'
51
+ assert_lookup_type :datetime, 'timestamp'
52
+ assert_lookup_type :datetime, 'TIMESTAMP'
53
+ end
54
+
55
+ def test_decimal_types
56
+ assert_lookup_type :decimal, 'decimal'
57
+ assert_lookup_type :decimal, 'decimal(2,8)'
58
+ assert_lookup_type :decimal, 'DECIMAL'
59
+ assert_lookup_type :decimal, 'numeric'
60
+ assert_lookup_type :decimal, 'numeric(2,8)'
61
+ assert_lookup_type :decimal, 'NUMERIC'
62
+ assert_lookup_type :decimal, 'number'
63
+ assert_lookup_type :decimal, 'number(2,8)'
64
+ assert_lookup_type :decimal, 'NUMBER'
65
+ end
66
+
67
+ def test_float_types
68
+ assert_lookup_type :float, 'float'
69
+ assert_lookup_type :float, 'FLOAT'
70
+ assert_lookup_type :float, 'double'
71
+ assert_lookup_type :float, 'DOUBLE'
72
+ end
73
+
74
+ def test_integer_types
75
+ assert_lookup_type :integer, 'integer'
76
+ assert_lookup_type :integer, 'INTEGER'
77
+ assert_lookup_type :integer, 'tinyint'
78
+ assert_lookup_type :integer, 'smallint'
79
+ assert_lookup_type :integer, 'bigint'
80
+ end
81
+
82
+ def test_bigint_limit
83
+ cast_type = @connection.type_map.lookup("bigint")
84
+ if current_adapter?(:OracleAdapter)
85
+ assert_equal 19, cast_type.limit
86
+ else
87
+ assert_equal 8, cast_type.limit
88
+ end
89
+ end
90
+
91
+ def test_decimal_without_scale
92
+ types = %w{decimal(2) decimal(2,0) numeric(2) numeric(2,0) number(2) number(2,0)}
93
+ types.each do |type|
94
+ cast_type = @connection.type_map.lookup(type)
95
+
96
+ assert_equal :decimal, cast_type.type
97
+ assert_equal 2, cast_type.type_cast_from_user(2.1)
98
+ end
99
+ end
100
+
101
+ private
102
+
103
+ def assert_lookup_type(type, lookup)
104
+ cast_type = @connection.type_map.lookup(lookup)
105
+ assert_equal type, cast_type.type
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end