ibm_db 3.0.4-x86-mingw32 → 3.0.5-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (463) 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/lib/mswin32/ibm_db.rb +122 -122
  19. data/lib/mswin32/rb21x/i386/ibm_db.so +0 -0
  20. data/lib/mswin32/rb22x/i386/ibm_db.so +0 -0
  21. data/lib/mswin32/rb23x/i386/ibm_db.so +0 -0
  22. data/test/active_record/connection_adapters/fake_adapter.rb +46 -46
  23. data/test/assets/example.log +1 -1
  24. data/test/assets/test.txt +1 -1
  25. data/test/cases/adapter_test.rb +276 -261
  26. data/test/cases/aggregations_test.rb +158 -158
  27. data/test/cases/ar_schema_test.rb +161 -161
  28. data/test/cases/associations/association_scope_test.rb +21 -21
  29. data/test/cases/associations/belongs_to_associations_test.rb +1029 -1029
  30. data/test/cases/associations/callbacks_test.rb +192 -192
  31. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  32. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +26 -26
  33. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  34. data/test/cases/associations/eager_load_nested_include_test.rb +128 -128
  35. data/test/cases/associations/eager_singularization_test.rb +148 -148
  36. data/test/cases/associations/eager_test.rb +1429 -1411
  37. data/test/cases/associations/extension_test.rb +82 -82
  38. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +972 -932
  39. data/test/cases/associations/has_many_associations_test.rb +2182 -2162
  40. data/test/cases/associations/has_many_through_associations_test.rb +1204 -1204
  41. data/test/cases/associations/has_one_associations_test.rb +610 -610
  42. data/test/cases/associations/has_one_through_associations_test.rb +380 -380
  43. data/test/cases/associations/inner_join_association_test.rb +139 -139
  44. data/test/cases/associations/inverse_associations_test.rb +706 -693
  45. data/test/cases/associations/join_model_test.rb +754 -754
  46. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  47. data/test/cases/associations/required_test.rb +82 -82
  48. data/test/cases/associations_test.rb +380 -380
  49. data/test/cases/attribute_decorators_test.rb +125 -125
  50. data/test/cases/attribute_methods/read_test.rb +60 -60
  51. data/test/cases/attribute_methods/serialization_test.rb +29 -29
  52. data/test/cases/attribute_methods_test.rb +952 -952
  53. data/test/cases/attribute_set_test.rb +210 -200
  54. data/test/cases/attribute_test.rb +180 -180
  55. data/test/cases/attributes_test.rb +136 -136
  56. data/test/cases/autosave_association_test.rb +1595 -1595
  57. data/test/cases/base_test.rb +1664 -1638
  58. data/test/cases/batches_test.rb +212 -212
  59. data/test/cases/binary_test.rb +52 -52
  60. data/test/cases/bind_parameter_test.rb +100 -100
  61. data/test/cases/calculations_test.rb +646 -646
  62. data/test/cases/callbacks_test.rb +543 -543
  63. data/test/cases/clone_test.rb +40 -40
  64. data/test/cases/coders/yaml_column_test.rb +63 -63
  65. data/test/cases/column_alias_test.rb +17 -17
  66. data/test/cases/column_definition_test.rb +123 -123
  67. data/test/cases/connection_adapters/adapter_leasing_test.rb +54 -54
  68. data/test/cases/connection_adapters/connection_handler_test.rb +53 -53
  69. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  70. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +293 -293
  71. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +65 -65
  72. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  73. data/test/cases/connection_adapters/schema_cache_test.rb +56 -56
  74. data/test/cases/connection_adapters/type_lookup_test.rb +110 -110
  75. data/test/cases/connection_management_test.rb +122 -122
  76. data/test/cases/connection_pool_test.rb +346 -346
  77. data/test/cases/connection_specification/resolver_test.rb +116 -116
  78. data/test/cases/core_test.rb +112 -112
  79. data/test/cases/counter_cache_test.rb +209 -209
  80. data/test/cases/custom_locking_test.rb +17 -17
  81. data/test/cases/database_statements_test.rb +19 -19
  82. data/test/cases/date_time_test.rb +61 -61
  83. data/test/cases/defaults_test.rb +223 -223
  84. data/test/cases/dirty_test.rb +785 -775
  85. data/test/cases/disconnected_test.rb +28 -28
  86. data/test/cases/dup_test.rb +157 -157
  87. data/test/cases/enum_test.rb +290 -290
  88. data/test/cases/explain_subscriber_test.rb +64 -64
  89. data/test/cases/explain_test.rb +76 -76
  90. data/test/cases/finder_respond_to_test.rb +60 -60
  91. data/test/cases/finder_test.rb +1169 -1166
  92. data/test/cases/fixture_set/file_test.rb +138 -138
  93. data/test/cases/fixtures_test.rb +908 -897
  94. data/test/cases/forbidden_attributes_protection_test.rb +99 -99
  95. data/test/cases/habtm_destroy_order_test.rb +61 -61
  96. data/test/cases/helper.rb +210 -210
  97. data/test/cases/hot_compatibility_test.rb +54 -54
  98. data/test/cases/i18n_test.rb +45 -45
  99. data/test/cases/inheritance_test.rb +375 -375
  100. data/test/cases/integration_test.rb +139 -139
  101. data/test/cases/invalid_connection_test.rb +22 -22
  102. data/test/cases/invalid_date_test.rb +32 -32
  103. data/test/cases/invertible_migration_test.rb +295 -295
  104. data/test/cases/json_serialization_test.rb +302 -302
  105. data/test/cases/locking_test.rb +477 -477
  106. data/test/cases/log_subscriber_test.rb +136 -136
  107. data/test/cases/migration/change_schema_test - Copy.rb +448 -448
  108. data/test/cases/migration/change_schema_test.rb +512 -472
  109. data/test/cases/migration/change_table_test.rb +224 -224
  110. data/test/cases/migration/column_attributes_test.rb +192 -192
  111. data/test/cases/migration/column_positioning_test.rb +56 -56
  112. data/test/cases/migration/columns_test.rb +304 -304
  113. data/test/cases/migration/command_recorder_test.rb +305 -305
  114. data/test/cases/migration/create_join_table_test.rb +148 -148
  115. data/test/cases/migration/foreign_key_test - Changed.rb +325 -325
  116. data/test/cases/migration/foreign_key_test.rb +328 -360
  117. data/test/cases/migration/helper.rb +39 -39
  118. data/test/cases/migration/index_test.rb +216 -216
  119. data/test/cases/migration/logger_test.rb +36 -36
  120. data/test/cases/migration/pending_migrations_test.rb +53 -53
  121. data/test/cases/migration/references_foreign_key_test.rb +169 -214
  122. data/test/cases/migration/references_index_test.rb +101 -101
  123. data/test/cases/migration/references_statements_test.rb +116 -116
  124. data/test/cases/migration/rename_table_test.rb +93 -93
  125. data/test/cases/migration/table_and_index_test.rb +24 -24
  126. data/test/cases/migration_test.rb +959 -959
  127. data/test/cases/migrator_test.rb +388 -388
  128. data/test/cases/mixin_test.rb +70 -70
  129. data/test/cases/modules_test.rb +173 -173
  130. data/test/cases/multiparameter_attributes_test.rb +350 -350
  131. data/test/cases/multiple_db_test.rb +115 -115
  132. data/test/cases/nested_attributes_test.rb +1070 -1057
  133. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  134. data/test/cases/persistence_test.rb +909 -909
  135. data/test/cases/pooled_connections_test.rb +81 -81
  136. data/test/cases/primary_keys_test.rb +237 -237
  137. data/test/cases/query_cache_test.rb +326 -326
  138. data/test/cases/quoting_test.rb +156 -156
  139. data/test/cases/readonly_test.rb +118 -118
  140. data/test/cases/reaper_test.rb +85 -85
  141. data/test/cases/reflection_test.rb +463 -454
  142. data/test/cases/relation/delegation_test.rb +68 -68
  143. data/test/cases/relation/merging_test.rb +161 -161
  144. data/test/cases/relation/mutation_test.rb +165 -165
  145. data/test/cases/relation/predicate_builder_test.rb +14 -14
  146. data/test/cases/relation/where_chain_test.rb +181 -181
  147. data/test/cases/relation/where_test.rb +300 -300
  148. data/test/cases/relation/where_test2.rb +36 -36
  149. data/test/cases/relation_test.rb +319 -297
  150. data/test/cases/relations_test.rb +1815 -1815
  151. data/test/cases/reload_models_test.rb +22 -22
  152. data/test/cases/result_test.rb +80 -80
  153. data/test/cases/sanitize_test.rb +83 -83
  154. data/test/cases/schema_dumper_test.rb +463 -463
  155. data/test/cases/scoping/default_scoping_test.rb +454 -454
  156. data/test/cases/scoping/named_scoping_test.rb +524 -524
  157. data/test/cases/scoping/relation_scoping_test.rb +357 -357
  158. data/test/cases/serialization_test.rb +104 -104
  159. data/test/cases/serialized_attribute_test.rb +277 -277
  160. data/test/cases/statement_cache_test.rb +98 -98
  161. data/test/cases/store_test.rb +194 -194
  162. data/test/cases/tasks/database_tasks_test.rb +398 -396
  163. data/test/cases/tasks/mysql_rake_test.rb +324 -311
  164. data/test/cases/tasks/postgresql_rake_test.rb +250 -245
  165. data/test/cases/tasks/sqlite_rake_test.rb +193 -193
  166. data/test/cases/test_case.rb +123 -123
  167. data/test/cases/timestamp_test.rb +467 -468
  168. data/test/cases/transaction_callbacks_test.rb +452 -452
  169. data/test/cases/transaction_isolation_test.rb +106 -106
  170. data/test/cases/transactions_test.rb +817 -817
  171. data/test/cases/type/decimal_test.rb +56 -51
  172. data/test/cases/type/integer_test.rb +121 -121
  173. data/test/cases/type/string_test.rb +36 -36
  174. data/test/cases/type/type_map_test.rb +177 -177
  175. data/test/cases/type/unsigned_integer_test.rb +18 -18
  176. data/test/cases/types_test.rb +141 -141
  177. data/test/cases/unconnected_test.rb +33 -33
  178. data/test/cases/validations/association_validation_test.rb +86 -86
  179. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  180. data/test/cases/validations/i18n_validation_test.rb +90 -90
  181. data/test/cases/validations/length_validation_test.rb +47 -47
  182. data/test/cases/validations/presence_validation_test.rb +68 -68
  183. data/test/cases/validations/uniqueness_validation_test.rb +457 -434
  184. data/test/cases/validations_repair_helper.rb +23 -23
  185. data/test/cases/validations_test.rb +165 -165
  186. data/test/cases/view_test.rb +119 -113
  187. data/test/cases/xml_serialization_test.rb +457 -457
  188. data/test/cases/yaml_serialization_test.rb +126 -86
  189. data/test/config.rb +5 -5
  190. data/test/config.yml +154 -154
  191. data/test/connections/native_ibm_db/connection.rb +43 -43
  192. data/test/fixtures/accounts.yml +29 -29
  193. data/test/fixtures/admin/accounts.yml +2 -2
  194. data/test/fixtures/admin/randomly_named_a9.yml +7 -7
  195. data/test/fixtures/admin/randomly_named_b0.yml +7 -7
  196. data/test/fixtures/admin/users.yml +10 -10
  197. data/test/fixtures/author_addresses.yml +17 -17
  198. data/test/fixtures/author_favorites.yml +3 -3
  199. data/test/fixtures/authors.yml +23 -23
  200. data/test/fixtures/binaries.yml +133 -133
  201. data/test/fixtures/books.yml +11 -11
  202. data/test/fixtures/bulbs.yml +5 -5
  203. data/test/fixtures/cars.yml +9 -9
  204. data/test/fixtures/categories.yml +19 -19
  205. data/test/fixtures/categories/special_categories.yml +9 -9
  206. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  207. data/test/fixtures/categories_ordered.yml +7 -7
  208. data/test/fixtures/categories_posts.yml +31 -31
  209. data/test/fixtures/categorizations.yml +23 -23
  210. data/test/fixtures/clubs.yml +8 -8
  211. data/test/fixtures/collections.yml +3 -3
  212. data/test/fixtures/colleges.yml +3 -3
  213. data/test/fixtures/comments.yml +65 -65
  214. data/test/fixtures/companies.yml +67 -67
  215. data/test/fixtures/computers.yml +10 -10
  216. data/test/fixtures/courses.yml +8 -8
  217. data/test/fixtures/customers.yml +25 -25
  218. data/test/fixtures/dashboards.yml +6 -6
  219. data/test/fixtures/developers.yml +21 -21
  220. data/test/fixtures/developers_projects.yml +16 -16
  221. data/test/fixtures/dog_lovers.yml +7 -7
  222. data/test/fixtures/dogs.yml +4 -4
  223. data/test/fixtures/doubloons.yml +3 -3
  224. data/test/fixtures/edges.yml +5 -5
  225. data/test/fixtures/entrants.yml +14 -14
  226. data/test/fixtures/essays.yml +6 -6
  227. data/test/fixtures/faces.yml +11 -11
  228. data/test/fixtures/fk_test_has_fk.yml +3 -3
  229. data/test/fixtures/fk_test_has_pk.yml +1 -1
  230. data/test/fixtures/friendships.yml +4 -4
  231. data/test/fixtures/funny_jokes.yml +10 -10
  232. data/test/fixtures/interests.yml +33 -33
  233. data/test/fixtures/items.yml +3 -3
  234. data/test/fixtures/jobs.yml +7 -7
  235. data/test/fixtures/legacy_things.yml +3 -3
  236. data/test/fixtures/mateys.yml +4 -4
  237. data/test/fixtures/member_details.yml +8 -8
  238. data/test/fixtures/member_types.yml +6 -6
  239. data/test/fixtures/members.yml +11 -11
  240. data/test/fixtures/memberships.yml +34 -34
  241. data/test/fixtures/men.yml +5 -5
  242. data/test/fixtures/minimalistics.yml +2 -2
  243. data/test/fixtures/minivans.yml +5 -5
  244. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  245. data/test/fixtures/mixins.yml +29 -29
  246. data/test/fixtures/movies.yml +7 -7
  247. data/test/fixtures/naked/csv/accounts.csv +1 -1
  248. data/test/fixtures/naked/yml/accounts.yml +1 -1
  249. data/test/fixtures/naked/yml/companies.yml +1 -1
  250. data/test/fixtures/naked/yml/courses.yml +1 -1
  251. data/test/fixtures/organizations.yml +5 -5
  252. data/test/fixtures/other_topics.yml +42 -42
  253. data/test/fixtures/owners.yml +9 -9
  254. data/test/fixtures/parrots.yml +27 -27
  255. data/test/fixtures/parrots_pirates.yml +7 -7
  256. data/test/fixtures/people.yml +24 -24
  257. data/test/fixtures/peoples_treasures.yml +3 -3
  258. data/test/fixtures/pets.yml +19 -19
  259. data/test/fixtures/pirates.yml +12 -12
  260. data/test/fixtures/posts.yml +80 -80
  261. data/test/fixtures/price_estimates.yml +7 -7
  262. data/test/fixtures/products.yml +4 -4
  263. data/test/fixtures/projects.yml +7 -7
  264. data/test/fixtures/randomly_named_a9.yml +7 -7
  265. data/test/fixtures/ratings.yml +14 -14
  266. data/test/fixtures/readers.yml +11 -11
  267. data/test/fixtures/references.yml +17 -17
  268. data/test/fixtures/reserved_words/distinct.yml +5 -5
  269. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  270. data/test/fixtures/reserved_words/group.yml +14 -14
  271. data/test/fixtures/reserved_words/select.yml +8 -8
  272. data/test/fixtures/reserved_words/values.yml +7 -7
  273. data/test/fixtures/ships.yml +6 -6
  274. data/test/fixtures/speedometers.yml +8 -8
  275. data/test/fixtures/sponsors.yml +12 -12
  276. data/test/fixtures/string_key_objects.yml +7 -7
  277. data/test/fixtures/subscribers.yml +10 -10
  278. data/test/fixtures/subscriptions.yml +12 -12
  279. data/test/fixtures/taggings.yml +78 -78
  280. data/test/fixtures/tags.yml +11 -11
  281. data/test/fixtures/tasks.yml +7 -7
  282. data/test/fixtures/teapots.yml +3 -3
  283. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  284. data/test/fixtures/to_be_linked/users.yml +10 -10
  285. data/test/fixtures/topics.yml +49 -49
  286. data/test/fixtures/toys.yml +14 -14
  287. data/test/fixtures/traffic_lights.yml +9 -9
  288. data/test/fixtures/treasures.yml +10 -10
  289. data/test/fixtures/uuid_children.yml +3 -3
  290. data/test/fixtures/uuid_parents.yml +2 -2
  291. data/test/fixtures/variants.yml +4 -4
  292. data/test/fixtures/vegetables.yml +19 -19
  293. data/test/fixtures/vertices.yml +3 -3
  294. data/test/fixtures/warehouse_things.yml +2 -2
  295. data/test/fixtures/zines.yml +5 -5
  296. data/test/ibm_db_test.rb +24 -24
  297. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  298. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  299. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  300. data/test/migrations/missing/1000_people_have_middle_names.rb +8 -8
  301. data/test/migrations/missing/1_people_have_last_names.rb +8 -8
  302. data/test/migrations/missing/3_we_need_reminders.rb +11 -11
  303. data/test/migrations/missing/4_innocent_jointable.rb +11 -11
  304. data/test/migrations/rename/1_we_need_things.rb +10 -10
  305. data/test/migrations/rename/2_rename_things.rb +8 -8
  306. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  307. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  308. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  309. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  310. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  311. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  312. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  313. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  314. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  315. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  316. data/test/migrations/valid/2_we_need_reminders.rb +11 -11
  317. data/test/migrations/valid/3_innocent_jointable.rb +11 -11
  318. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  319. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +11 -11
  320. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +11 -11
  321. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  322. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  323. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  324. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  325. data/test/models/admin.rb +4 -4
  326. data/test/models/admin/account.rb +2 -2
  327. data/test/models/admin/randomly_named_c1.rb +3 -3
  328. data/test/models/admin/user.rb +40 -40
  329. data/test/models/aircraft.rb +4 -4
  330. data/test/models/arunit2_model.rb +3 -3
  331. data/test/models/author.rb +212 -212
  332. data/test/models/auto_id.rb +4 -4
  333. data/test/models/autoloadable/extra_firm.rb +2 -2
  334. data/test/models/binary.rb +1 -1
  335. data/test/models/bird.rb +12 -12
  336. data/test/models/book.rb +18 -18
  337. data/test/models/boolean.rb +2 -2
  338. data/test/models/bulb.rb +51 -51
  339. data/test/models/cake_designer.rb +3 -3
  340. data/test/models/car.rb +26 -26
  341. data/test/models/carrier.rb +2 -2
  342. data/test/models/categorization.rb +19 -19
  343. data/test/models/category.rb +35 -35
  344. data/test/models/chef.rb +7 -3
  345. data/test/models/citation.rb +3 -3
  346. data/test/models/club.rb +23 -23
  347. data/test/models/college.rb +10 -10
  348. data/test/models/column.rb +3 -3
  349. data/test/models/column_name.rb +3 -3
  350. data/test/models/comment.rb +64 -64
  351. data/test/models/company.rb +228 -225
  352. data/test/models/company_in_module.rb +98 -98
  353. data/test/models/computer.rb +3 -3
  354. data/test/models/contact.rb +41 -41
  355. data/test/models/contract.rb +20 -20
  356. data/test/models/country.rb +7 -7
  357. data/test/models/course.rb +6 -6
  358. data/test/models/customer.rb +77 -77
  359. data/test/models/customer_carrier.rb +14 -14
  360. data/test/models/dashboard.rb +3 -3
  361. data/test/models/default.rb +2 -2
  362. data/test/models/department.rb +4 -4
  363. data/test/models/developer.rb +255 -252
  364. data/test/models/dog.rb +5 -5
  365. data/test/models/dog_lover.rb +5 -5
  366. data/test/models/doubloon.rb +12 -12
  367. data/test/models/drink_designer.rb +3 -3
  368. data/test/models/edge.rb +5 -5
  369. data/test/models/electron.rb +5 -5
  370. data/test/models/engine.rb +4 -4
  371. data/test/models/entrant.rb +3 -3
  372. data/test/models/essay.rb +5 -5
  373. data/test/models/event.rb +2 -2
  374. data/test/models/eye.rb +37 -37
  375. data/test/models/face.rb +9 -9
  376. data/test/models/friendship.rb +6 -6
  377. data/test/models/guid.rb +1 -1
  378. data/test/models/hotel.rb +9 -6
  379. data/test/models/image.rb +3 -3
  380. data/test/models/interest.rb +5 -5
  381. data/test/models/invoice.rb +4 -4
  382. data/test/models/item.rb +7 -7
  383. data/test/models/job.rb +7 -7
  384. data/test/models/joke.rb +7 -7
  385. data/test/models/keyboard.rb +3 -3
  386. data/test/models/legacy_thing.rb +3 -3
  387. data/test/models/lesson.rb +11 -11
  388. data/test/models/line_item.rb +3 -3
  389. data/test/models/liquid.rb +4 -4
  390. data/test/models/man.rb +11 -11
  391. data/test/models/matey.rb +4 -4
  392. data/test/models/member.rb +41 -41
  393. data/test/models/member_detail.rb +7 -7
  394. data/test/models/member_type.rb +3 -3
  395. data/test/models/membership.rb +35 -35
  396. data/test/models/minimalistic.rb +2 -2
  397. data/test/models/minivan.rb +9 -9
  398. data/test/models/mixed_case_monkey.rb +3 -3
  399. data/test/models/molecule.rb +6 -6
  400. data/test/models/movie.rb +5 -5
  401. data/test/models/order.rb +4 -4
  402. data/test/models/organization.rb +14 -14
  403. data/test/models/owner.rb +34 -34
  404. data/test/models/parrot.rb +29 -29
  405. data/test/models/person.rb +143 -143
  406. data/test/models/personal_legacy_thing.rb +4 -4
  407. data/test/models/pet.rb +15 -15
  408. data/test/models/pirate.rb +92 -92
  409. data/test/models/possession.rb +3 -3
  410. data/test/models/post.rb +264 -264
  411. data/test/models/price_estimate.rb +4 -4
  412. data/test/models/professor.rb +5 -5
  413. data/test/models/project.rb +31 -29
  414. data/test/models/publisher.rb +2 -2
  415. data/test/models/publisher/article.rb +4 -4
  416. data/test/models/publisher/magazine.rb +3 -3
  417. data/test/models/randomly_named_c1.rb +3 -3
  418. data/test/models/rating.rb +4 -4
  419. data/test/models/reader.rb +23 -23
  420. data/test/models/record.rb +2 -2
  421. data/test/models/reference.rb +22 -22
  422. data/test/models/reply.rb +61 -61
  423. data/test/models/ship.rb +33 -33
  424. data/test/models/ship_part.rb +7 -7
  425. data/test/models/shop.rb +17 -17
  426. data/test/models/shop_account.rb +6 -6
  427. data/test/models/speedometer.rb +6 -6
  428. data/test/models/sponsor.rb +7 -7
  429. data/test/models/string_key_object.rb +3 -3
  430. data/test/models/student.rb +4 -4
  431. data/test/models/subject.rb +16 -16
  432. data/test/models/subscriber.rb +8 -8
  433. data/test/models/subscription.rb +4 -4
  434. data/test/models/tag.rb +7 -7
  435. data/test/models/tagging.rb +13 -13
  436. data/test/models/task.rb +5 -5
  437. data/test/models/topic.rb +124 -124
  438. data/test/models/toy.rb +6 -6
  439. data/test/models/traffic_light.rb +4 -4
  440. data/test/models/treasure.rb +14 -14
  441. data/test/models/treaty.rb +7 -7
  442. data/test/models/tyre.rb +11 -11
  443. data/test/models/uuid_child.rb +3 -3
  444. data/test/models/uuid_parent.rb +3 -3
  445. data/test/models/vegetables.rb +24 -24
  446. data/test/models/vehicle.rb +6 -6
  447. data/test/models/vertex.rb +9 -9
  448. data/test/models/warehouse_thing.rb +5 -5
  449. data/test/models/wheel.rb +3 -3
  450. data/test/models/without_table.rb +3 -3
  451. data/test/models/zine.rb +3 -3
  452. data/test/schema/mysql2_specific_schema.rb +58 -58
  453. data/test/schema/mysql_specific_schema.rb +70 -70
  454. data/test/schema/oracle_specific_schema.rb +43 -43
  455. data/test/schema/postgresql_specific_schema.rb +202 -202
  456. data/test/schema/schema.rb +952 -938
  457. data/test/schema/sqlite_specific_schema.rb +21 -21
  458. data/test/support/config.rb +43 -43
  459. data/test/support/connection.rb +22 -22
  460. data/test/support/connection_helper.rb +14 -14
  461. data/test/support/ddl_helper.rb +8 -8
  462. data/test/support/schema_dumping_helper.rb +20 -20
  463. metadata +2 -2
@@ -1,212 +1,212 @@
1
- require 'cases/helper'
2
- require 'models/post'
3
- require 'models/subscriber'
4
-
5
- class EachTest < ActiveRecord::TestCase
6
- fixtures :posts, :subscribers
7
-
8
- def setup
9
- @posts = Post.order("id asc")
10
- @total = Post.count
11
- Post.count('id') # preheat arel's table cache
12
- end
13
-
14
- def test_each_should_execute_one_query_per_batch
15
- assert_queries(@total + 1) do
16
- Post.find_each(:batch_size => 1) do |post|
17
- assert_kind_of Post, post
18
- end
19
- end
20
- end
21
-
22
- def test_each_should_not_return_query_chain_and_execute_only_one_query
23
- assert_queries(1) do
24
- result = Post.find_each(:batch_size => 100000){ }
25
- assert_nil result
26
- end
27
- end
28
-
29
- def test_each_should_return_an_enumerator_if_no_block_is_present
30
- assert_queries(1) do
31
- Post.find_each(:batch_size => 100000).with_index do |post, index|
32
- assert_kind_of Post, post
33
- assert_kind_of Integer, index
34
- end
35
- end
36
- end
37
-
38
- if Enumerator.method_defined? :size
39
- def test_each_should_return_a_sized_enumerator
40
- assert_equal 11, Post.find_each(:batch_size => 1).size
41
- assert_equal 5, Post.find_each(:batch_size => 2, :start => 7).size
42
- assert_equal 11, Post.find_each(:batch_size => 10_000).size
43
- end
44
- end
45
-
46
- def test_each_enumerator_should_execute_one_query_per_batch
47
- assert_queries(@total + 1) do
48
- Post.find_each(:batch_size => 1).with_index do |post, index|
49
- assert_kind_of Post, post
50
- assert_kind_of Integer, index
51
- end
52
- end
53
- end
54
-
55
- def test_each_should_raise_if_select_is_set_without_id
56
- assert_raise(RuntimeError) do
57
- Post.select(:title).find_each(batch_size: 1) { |post|
58
- flunk "should not call this block"
59
- }
60
- end
61
- end
62
-
63
- def test_each_should_execute_if_id_is_in_select
64
- assert_queries(6) do
65
- Post.select("id, title, type").find_each(:batch_size => 2) do |post|
66
- assert_kind_of Post, post
67
- end
68
- end
69
- end
70
-
71
- def test_warn_if_limit_scope_is_set
72
- ActiveRecord::Base.logger.expects(:warn)
73
- Post.limit(1).find_each { |post| post }
74
- end
75
-
76
- def test_warn_if_order_scope_is_set
77
- ActiveRecord::Base.logger.expects(:warn)
78
- Post.order("title").find_each { |post| post }
79
- end
80
-
81
- def test_logger_not_required
82
- previous_logger = ActiveRecord::Base.logger
83
- ActiveRecord::Base.logger = nil
84
- assert_nothing_raised do
85
- Post.limit(1).find_each { |post| post }
86
- end
87
- ensure
88
- ActiveRecord::Base.logger = previous_logger
89
- end
90
-
91
- def test_find_in_batches_should_return_batches
92
- assert_queries(@total + 1) do
93
- Post.find_in_batches(:batch_size => 1) do |batch|
94
- assert_kind_of Array, batch
95
- assert_kind_of Post, batch.first
96
- end
97
- end
98
- end
99
-
100
- def test_find_in_batches_should_start_from_the_start_option
101
- assert_queries(@total) do
102
- Post.find_in_batches(:batch_size => 1, :start => 2) do |batch|
103
- assert_kind_of Array, batch
104
- assert_kind_of Post, batch.first
105
- end
106
- end
107
- end
108
-
109
- def test_find_in_batches_shouldnt_execute_query_unless_needed
110
- assert_queries(2) do
111
- Post.find_in_batches(:batch_size => @total) {|batch| assert_kind_of Array, batch }
112
- end
113
-
114
- assert_queries(1) do
115
- Post.find_in_batches(:batch_size => @total + 1) {|batch| assert_kind_of Array, batch }
116
- end
117
- end
118
-
119
- def test_find_in_batches_should_quote_batch_order
120
- c = Post.connection
121
- assert_sql(/ORDER BY #{c.quote_table_name('posts')}.#{c.quote_column_name('id')}/) do
122
- Post.find_in_batches(:batch_size => 1) do |batch|
123
- assert_kind_of Array, batch
124
- assert_kind_of Post, batch.first
125
- end
126
- end
127
- end
128
-
129
- def test_find_in_batches_should_not_use_records_after_yielding_them_in_case_original_array_is_modified
130
- not_a_post = "not a post"
131
- not_a_post.stubs(:id).raises(StandardError, "not_a_post had #id called on it")
132
-
133
- assert_nothing_raised do
134
- Post.find_in_batches(:batch_size => 1) do |batch|
135
- assert_kind_of Array, batch
136
- assert_kind_of Post, batch.first
137
-
138
- batch.map! { not_a_post }
139
- end
140
- end
141
- end
142
-
143
- def test_find_in_batches_should_ignore_the_order_default_scope
144
- # First post is with title scope
145
- first_post = PostWithDefaultScope.first
146
- posts = []
147
- PostWithDefaultScope.find_in_batches do |batch|
148
- posts.concat(batch)
149
- end
150
- # posts.first will be ordered using id only. Title order scope should not apply here
151
- assert_not_equal first_post, posts.first
152
- assert_equal posts(:welcome), posts.first
153
- end
154
-
155
- def test_find_in_batches_should_not_ignore_the_default_scope_if_it_is_other_then_order
156
- special_posts_ids = SpecialPostWithDefaultScope.all.map(&:id).sort
157
- posts = []
158
- SpecialPostWithDefaultScope.find_in_batches do |batch|
159
- posts.concat(batch)
160
- end
161
- assert_equal special_posts_ids, posts.map(&:id)
162
- end
163
-
164
- def test_find_in_batches_should_not_modify_passed_options
165
- assert_nothing_raised do
166
- Post.find_in_batches({ batch_size: 42, start: 1 }.freeze){}
167
- end
168
- end
169
-
170
- def test_find_in_batches_should_use_any_column_as_primary_key
171
- nick_order_subscribers = Subscriber.order('nick asc')
172
- start_nick = nick_order_subscribers.second.nick
173
-
174
- subscribers = []
175
- Subscriber.find_in_batches(:batch_size => 1, :start => start_nick) do |batch|
176
- subscribers.concat(batch)
177
- end
178
-
179
- assert_equal nick_order_subscribers[1..-1].map(&:id), subscribers.map(&:id)
180
- end
181
-
182
- def test_find_in_batches_should_use_any_column_as_primary_key_when_start_is_not_specified
183
- assert_queries(Subscriber.count + 1) do
184
- Subscriber.find_each(:batch_size => 1) do |subscriber|
185
- assert_kind_of Subscriber, subscriber
186
- end
187
- end
188
- end
189
-
190
- def test_find_in_batches_should_return_an_enumerator
191
- enum = nil
192
- assert_queries(0) do
193
- enum = Post.find_in_batches(:batch_size => 1)
194
- end
195
- assert_queries(4) do
196
- enum.first(4) do |batch|
197
- assert_kind_of Array, batch
198
- assert_kind_of Post, batch.first
199
- end
200
- end
201
- end
202
-
203
- if Enumerator.method_defined? :size
204
- def test_find_in_batches_should_return_a_sized_enumerator
205
- assert_equal 11, Post.find_in_batches(:batch_size => 1).size
206
- assert_equal 6, Post.find_in_batches(:batch_size => 2).size
207
- assert_equal 4, Post.find_in_batches(:batch_size => 2, :start => 4).size
208
- assert_equal 4, Post.find_in_batches(:batch_size => 3).size
209
- assert_equal 1, Post.find_in_batches(:batch_size => 10_000).size
210
- end
211
- end
212
- end
1
+ require 'cases/helper'
2
+ require 'models/post'
3
+ require 'models/subscriber'
4
+
5
+ class EachTest < ActiveRecord::TestCase
6
+ fixtures :posts, :subscribers
7
+
8
+ def setup
9
+ @posts = Post.order("id asc")
10
+ @total = Post.count
11
+ Post.count('id') # preheat arel's table cache
12
+ end
13
+
14
+ def test_each_should_execute_one_query_per_batch
15
+ assert_queries(@total + 1) do
16
+ Post.find_each(:batch_size => 1) do |post|
17
+ assert_kind_of Post, post
18
+ end
19
+ end
20
+ end
21
+
22
+ def test_each_should_not_return_query_chain_and_execute_only_one_query
23
+ assert_queries(1) do
24
+ result = Post.find_each(:batch_size => 100000){ }
25
+ assert_nil result
26
+ end
27
+ end
28
+
29
+ def test_each_should_return_an_enumerator_if_no_block_is_present
30
+ assert_queries(1) do
31
+ Post.find_each(:batch_size => 100000).with_index do |post, index|
32
+ assert_kind_of Post, post
33
+ assert_kind_of Integer, index
34
+ end
35
+ end
36
+ end
37
+
38
+ if Enumerator.method_defined? :size
39
+ def test_each_should_return_a_sized_enumerator
40
+ assert_equal 11, Post.find_each(:batch_size => 1).size
41
+ assert_equal 5, Post.find_each(:batch_size => 2, :start => 7).size
42
+ assert_equal 11, Post.find_each(:batch_size => 10_000).size
43
+ end
44
+ end
45
+
46
+ def test_each_enumerator_should_execute_one_query_per_batch
47
+ assert_queries(@total + 1) do
48
+ Post.find_each(:batch_size => 1).with_index do |post, index|
49
+ assert_kind_of Post, post
50
+ assert_kind_of Integer, index
51
+ end
52
+ end
53
+ end
54
+
55
+ def test_each_should_raise_if_select_is_set_without_id
56
+ assert_raise(RuntimeError) do
57
+ Post.select(:title).find_each(batch_size: 1) { |post|
58
+ flunk "should not call this block"
59
+ }
60
+ end
61
+ end
62
+
63
+ def test_each_should_execute_if_id_is_in_select
64
+ assert_queries(6) do
65
+ Post.select("id, title, type").find_each(:batch_size => 2) do |post|
66
+ assert_kind_of Post, post
67
+ end
68
+ end
69
+ end
70
+
71
+ def test_warn_if_limit_scope_is_set
72
+ ActiveRecord::Base.logger.expects(:warn)
73
+ Post.limit(1).find_each { |post| post }
74
+ end
75
+
76
+ def test_warn_if_order_scope_is_set
77
+ ActiveRecord::Base.logger.expects(:warn)
78
+ Post.order("title").find_each { |post| post }
79
+ end
80
+
81
+ def test_logger_not_required
82
+ previous_logger = ActiveRecord::Base.logger
83
+ ActiveRecord::Base.logger = nil
84
+ assert_nothing_raised do
85
+ Post.limit(1).find_each { |post| post }
86
+ end
87
+ ensure
88
+ ActiveRecord::Base.logger = previous_logger
89
+ end
90
+
91
+ def test_find_in_batches_should_return_batches
92
+ assert_queries(@total + 1) do
93
+ Post.find_in_batches(:batch_size => 1) do |batch|
94
+ assert_kind_of Array, batch
95
+ assert_kind_of Post, batch.first
96
+ end
97
+ end
98
+ end
99
+
100
+ def test_find_in_batches_should_start_from_the_start_option
101
+ assert_queries(@total) do
102
+ Post.find_in_batches(:batch_size => 1, :start => 2) do |batch|
103
+ assert_kind_of Array, batch
104
+ assert_kind_of Post, batch.first
105
+ end
106
+ end
107
+ end
108
+
109
+ def test_find_in_batches_shouldnt_execute_query_unless_needed
110
+ assert_queries(2) do
111
+ Post.find_in_batches(:batch_size => @total) {|batch| assert_kind_of Array, batch }
112
+ end
113
+
114
+ assert_queries(1) do
115
+ Post.find_in_batches(:batch_size => @total + 1) {|batch| assert_kind_of Array, batch }
116
+ end
117
+ end
118
+
119
+ def test_find_in_batches_should_quote_batch_order
120
+ c = Post.connection
121
+ assert_sql(/ORDER BY #{c.quote_table_name('posts')}.#{c.quote_column_name('id')}/) do
122
+ Post.find_in_batches(:batch_size => 1) do |batch|
123
+ assert_kind_of Array, batch
124
+ assert_kind_of Post, batch.first
125
+ end
126
+ end
127
+ end
128
+
129
+ def test_find_in_batches_should_not_use_records_after_yielding_them_in_case_original_array_is_modified
130
+ not_a_post = "not a post"
131
+ not_a_post.stubs(:id).raises(StandardError, "not_a_post had #id called on it")
132
+
133
+ assert_nothing_raised do
134
+ Post.find_in_batches(:batch_size => 1) do |batch|
135
+ assert_kind_of Array, batch
136
+ assert_kind_of Post, batch.first
137
+
138
+ batch.map! { not_a_post }
139
+ end
140
+ end
141
+ end
142
+
143
+ def test_find_in_batches_should_ignore_the_order_default_scope
144
+ # First post is with title scope
145
+ first_post = PostWithDefaultScope.first
146
+ posts = []
147
+ PostWithDefaultScope.find_in_batches do |batch|
148
+ posts.concat(batch)
149
+ end
150
+ # posts.first will be ordered using id only. Title order scope should not apply here
151
+ assert_not_equal first_post, posts.first
152
+ assert_equal posts(:welcome), posts.first
153
+ end
154
+
155
+ def test_find_in_batches_should_not_ignore_the_default_scope_if_it_is_other_then_order
156
+ special_posts_ids = SpecialPostWithDefaultScope.all.map(&:id).sort
157
+ posts = []
158
+ SpecialPostWithDefaultScope.find_in_batches do |batch|
159
+ posts.concat(batch)
160
+ end
161
+ assert_equal special_posts_ids, posts.map(&:id)
162
+ end
163
+
164
+ def test_find_in_batches_should_not_modify_passed_options
165
+ assert_nothing_raised do
166
+ Post.find_in_batches({ batch_size: 42, start: 1 }.freeze){}
167
+ end
168
+ end
169
+
170
+ def test_find_in_batches_should_use_any_column_as_primary_key
171
+ nick_order_subscribers = Subscriber.order('nick asc')
172
+ start_nick = nick_order_subscribers.second.nick
173
+
174
+ subscribers = []
175
+ Subscriber.find_in_batches(:batch_size => 1, :start => start_nick) do |batch|
176
+ subscribers.concat(batch)
177
+ end
178
+
179
+ assert_equal nick_order_subscribers[1..-1].map(&:id), subscribers.map(&:id)
180
+ end
181
+
182
+ def test_find_in_batches_should_use_any_column_as_primary_key_when_start_is_not_specified
183
+ assert_queries(Subscriber.count + 1) do
184
+ Subscriber.find_each(:batch_size => 1) do |subscriber|
185
+ assert_kind_of Subscriber, subscriber
186
+ end
187
+ end
188
+ end
189
+
190
+ def test_find_in_batches_should_return_an_enumerator
191
+ enum = nil
192
+ assert_queries(0) do
193
+ enum = Post.find_in_batches(:batch_size => 1)
194
+ end
195
+ assert_queries(4) do
196
+ enum.first(4) do |batch|
197
+ assert_kind_of Array, batch
198
+ assert_kind_of Post, batch.first
199
+ end
200
+ end
201
+ end
202
+
203
+ if Enumerator.method_defined? :size
204
+ def test_find_in_batches_should_return_a_sized_enumerator
205
+ assert_equal 11, Post.find_in_batches(:batch_size => 1).size
206
+ assert_equal 6, Post.find_in_batches(:batch_size => 2).size
207
+ assert_equal 4, Post.find_in_batches(:batch_size => 2, :start => 4).size
208
+ assert_equal 4, Post.find_in_batches(:batch_size => 3).size
209
+ assert_equal 1, Post.find_in_batches(:batch_size => 10_000).size
210
+ end
211
+ end
212
+ end
@@ -1,52 +1,52 @@
1
- # encoding: utf-8
2
- require "cases/helper"
3
-
4
- # Without using prepared statements, it makes no sense to test
5
- # BLOB data with DB2, because the length of a statement
6
- # is limited to 32KB.
7
- unless current_adapter?(:DB2Adapter)
8
- require 'models/binary'
9
-
10
- class BinaryTest < ActiveRecord::TestCase
11
- FIXTURES = %w(flowers.jpg example.log test.txt)
12
-
13
- def test_mixed_encoding
14
- str = "\x80"
15
- str.force_encoding('ASCII-8BIT')
16
-
17
- binary = Binary.new :name => 'いただきます!', :data => str
18
- binary.save!
19
- binary.reload
20
- assert_equal str, binary.data
21
-
22
- name = binary.name
23
-
24
- # MySQL adapter doesn't properly encode things, so we have to do it
25
- if current_adapter?(:MysqlAdapter, :DB2Adapter)
26
- name.force_encoding(Encoding::UTF_8)
27
- end
28
- assert_equal 'いただきます!', name
29
- end
30
-
31
- def test_load_save
32
- Binary.delete_all
33
-
34
- FIXTURES.each do |filename|
35
- data = File.read(ASSETS_ROOT + "/#{filename}")
36
- data.force_encoding('ASCII-8BIT')
37
- if current_adapter?(:DB2Adapter)
38
- data.force_encoding(Encoding::UTF_8)
39
- end
40
- data.freeze
41
-
42
- bin = Binary.new(:data => data)
43
- assert_equal data, bin.data, 'Newly assigned data differs from original'
44
-
45
- bin.save!
46
- assert_equal data, bin.data, 'Data differs from original after save'
47
-
48
- assert_equal data, bin.reload.data, 'Reloaded data differs from original'
49
- end
50
- end
51
- end
52
- end
1
+ # encoding: utf-8
2
+ require "cases/helper"
3
+
4
+ # Without using prepared statements, it makes no sense to test
5
+ # BLOB data with DB2, because the length of a statement
6
+ # is limited to 32KB.
7
+ unless current_adapter?(:DB2Adapter)
8
+ require 'models/binary'
9
+
10
+ class BinaryTest < ActiveRecord::TestCase
11
+ FIXTURES = %w(flowers.jpg example.log test.txt)
12
+
13
+ def test_mixed_encoding
14
+ str = "\x80"
15
+ str.force_encoding('ASCII-8BIT')
16
+
17
+ binary = Binary.new :name => 'いただきます!', :data => str
18
+ binary.save!
19
+ binary.reload
20
+ assert_equal str, binary.data
21
+
22
+ name = binary.name
23
+
24
+ # MySQL adapter doesn't properly encode things, so we have to do it
25
+ if current_adapter?(:MysqlAdapter, :DB2Adapter)
26
+ name.force_encoding(Encoding::UTF_8)
27
+ end
28
+ assert_equal 'いただきます!', name
29
+ end
30
+
31
+ def test_load_save
32
+ Binary.delete_all
33
+
34
+ FIXTURES.each do |filename|
35
+ data = File.read(ASSETS_ROOT + "/#{filename}")
36
+ data.force_encoding('ASCII-8BIT')
37
+ if current_adapter?(:DB2Adapter)
38
+ data.force_encoding(Encoding::UTF_8)
39
+ end
40
+ data.freeze
41
+
42
+ bin = Binary.new(:data => data)
43
+ assert_equal data, bin.data, 'Newly assigned data differs from original'
44
+
45
+ bin.save!
46
+ assert_equal data, bin.data, 'Data differs from original after save'
47
+
48
+ assert_equal data, bin.reload.data, 'Reloaded data differs from original'
49
+ end
50
+ end
51
+ end
52
+ end