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,245 +1,250 @@
1
- require 'cases/helper'
2
-
3
- if current_adapter?(:PostgreSQLAdapter)
4
- module ActiveRecord
5
- class PostgreSQLDBCreateTest < ActiveRecord::TestCase
6
- def setup
7
- @connection = stub(:create_database => true)
8
- @configuration = {
9
- 'adapter' => 'postgresql',
10
- 'database' => 'my-app-db'
11
- }
12
-
13
- ActiveRecord::Base.stubs(:connection).returns(@connection)
14
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
15
- end
16
-
17
- def test_establishes_connection_to_postgresql_database
18
- ActiveRecord::Base.expects(:establish_connection).with(
19
- 'adapter' => 'postgresql',
20
- 'database' => 'postgres',
21
- 'schema_search_path' => 'public'
22
- )
23
-
24
- ActiveRecord::Tasks::DatabaseTasks.create @configuration
25
- end
26
-
27
- def test_creates_database_with_default_encoding
28
- @connection.expects(:create_database).
29
- with('my-app-db', @configuration.merge('encoding' => 'utf8'))
30
-
31
- ActiveRecord::Tasks::DatabaseTasks.create @configuration
32
- end
33
-
34
- def test_creates_database_with_given_encoding
35
- @connection.expects(:create_database).
36
- with('my-app-db', @configuration.merge('encoding' => 'latin'))
37
-
38
- ActiveRecord::Tasks::DatabaseTasks.create @configuration.
39
- merge('encoding' => 'latin')
40
- end
41
-
42
- def test_creates_database_with_given_collation_and_ctype
43
- @connection.expects(:create_database).
44
- with('my-app-db', @configuration.merge('encoding' => 'utf8', 'collation' => 'ja_JP.UTF8', 'ctype' => 'ja_JP.UTF8'))
45
-
46
- ActiveRecord::Tasks::DatabaseTasks.create @configuration.
47
- merge('collation' => 'ja_JP.UTF8', 'ctype' => 'ja_JP.UTF8')
48
- end
49
-
50
- def test_establishes_connection_to_new_database
51
- ActiveRecord::Base.expects(:establish_connection).with(@configuration)
52
-
53
- ActiveRecord::Tasks::DatabaseTasks.create @configuration
54
- end
55
-
56
- def test_db_create_with_error_prints_message
57
- ActiveRecord::Base.stubs(:establish_connection).raises(Exception)
58
-
59
- $stderr.stubs(:puts).returns(true)
60
- $stderr.expects(:puts).
61
- with("Couldn't create database for #{@configuration.inspect}")
62
-
63
- ActiveRecord::Tasks::DatabaseTasks.create @configuration
64
- end
65
-
66
- def test_create_when_database_exists_outputs_info_to_stderr
67
- $stderr.expects(:puts).with("my-app-db already exists").once
68
-
69
- ActiveRecord::Base.connection.stubs(:create_database).raises(
70
- ActiveRecord::StatementInvalid.new('database "my-app-db" already exists')
71
- )
72
-
73
- ActiveRecord::Tasks::DatabaseTasks.create @configuration
74
- end
75
- end
76
-
77
- class PostgreSQLDBDropTest < ActiveRecord::TestCase
78
- def setup
79
- @connection = stub(:drop_database => true)
80
- @configuration = {
81
- 'adapter' => 'postgresql',
82
- 'database' => 'my-app-db'
83
- }
84
-
85
- ActiveRecord::Base.stubs(:connection).returns(@connection)
86
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
87
- end
88
-
89
- def test_establishes_connection_to_postgresql_database
90
- ActiveRecord::Base.expects(:establish_connection).with(
91
- 'adapter' => 'postgresql',
92
- 'database' => 'postgres',
93
- 'schema_search_path' => 'public'
94
- )
95
-
96
- ActiveRecord::Tasks::DatabaseTasks.drop @configuration
97
- end
98
-
99
- def test_drops_database
100
- @connection.expects(:drop_database).with('my-app-db')
101
-
102
- ActiveRecord::Tasks::DatabaseTasks.drop @configuration
103
- end
104
- end
105
-
106
- class PostgreSQLPurgeTest < ActiveRecord::TestCase
107
- def setup
108
- @connection = stub(:create_database => true, :drop_database => true)
109
- @configuration = {
110
- 'adapter' => 'postgresql',
111
- 'database' => 'my-app-db'
112
- }
113
-
114
- ActiveRecord::Base.stubs(:connection).returns(@connection)
115
- ActiveRecord::Base.stubs(:clear_active_connections!).returns(true)
116
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
117
- end
118
-
119
- def test_clears_active_connections
120
- ActiveRecord::Base.expects(:clear_active_connections!)
121
-
122
- ActiveRecord::Tasks::DatabaseTasks.purge @configuration
123
- end
124
-
125
- def test_establishes_connection_to_postgresql_database
126
- ActiveRecord::Base.expects(:establish_connection).with(
127
- 'adapter' => 'postgresql',
128
- 'database' => 'postgres',
129
- 'schema_search_path' => 'public'
130
- )
131
-
132
- ActiveRecord::Tasks::DatabaseTasks.purge @configuration
133
- end
134
-
135
- def test_drops_database
136
- @connection.expects(:drop_database).with('my-app-db')
137
-
138
- ActiveRecord::Tasks::DatabaseTasks.purge @configuration
139
- end
140
-
141
- def test_creates_database
142
- @connection.expects(:create_database).
143
- with('my-app-db', @configuration.merge('encoding' => 'utf8'))
144
-
145
- ActiveRecord::Tasks::DatabaseTasks.purge @configuration
146
- end
147
-
148
- def test_establishes_connection
149
- ActiveRecord::Base.expects(:establish_connection).with(@configuration)
150
-
151
- ActiveRecord::Tasks::DatabaseTasks.purge @configuration
152
- end
153
- end
154
-
155
- class PostgreSQLDBCharsetTest < ActiveRecord::TestCase
156
- def setup
157
- @connection = stub(:create_database => true)
158
- @configuration = {
159
- 'adapter' => 'postgresql',
160
- 'database' => 'my-app-db'
161
- }
162
-
163
- ActiveRecord::Base.stubs(:connection).returns(@connection)
164
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
165
- end
166
-
167
- def test_db_retrieves_charset
168
- @connection.expects(:encoding)
169
- ActiveRecord::Tasks::DatabaseTasks.charset @configuration
170
- end
171
- end
172
-
173
- class PostgreSQLDBCollationTest < ActiveRecord::TestCase
174
- def setup
175
- @connection = stub(:create_database => true)
176
- @configuration = {
177
- 'adapter' => 'postgresql',
178
- 'database' => 'my-app-db'
179
- }
180
-
181
- ActiveRecord::Base.stubs(:connection).returns(@connection)
182
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
183
- end
184
-
185
- def test_db_retrieves_collation
186
- @connection.expects(:collation)
187
- ActiveRecord::Tasks::DatabaseTasks.collation @configuration
188
- end
189
- end
190
-
191
- class PostgreSQLStructureDumpTest < ActiveRecord::TestCase
192
- def setup
193
- @connection = stub(:structure_dump => true)
194
- @configuration = {
195
- 'adapter' => 'postgresql',
196
- 'database' => 'my-app-db'
197
- }
198
-
199
- ActiveRecord::Base.stubs(:connection).returns(@connection)
200
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
201
- Kernel.stubs(:system)
202
- end
203
-
204
- def test_structure_dump
205
- filename = "awesome-file.sql"
206
- Kernel.expects(:system).with("pg_dump -i -s -x -O -f #{filename} my-app-db").returns(true)
207
- @connection.expects(:schema_search_path).returns("foo")
208
-
209
- ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, filename)
210
- assert File.exist?(filename)
211
- ensure
212
- FileUtils.rm(filename)
213
- end
214
- end
215
-
216
- class PostgreSQLStructureLoadTest < ActiveRecord::TestCase
217
- def setup
218
- @connection = stub
219
- @configuration = {
220
- 'adapter' => 'postgresql',
221
- 'database' => 'my-app-db'
222
- }
223
-
224
- ActiveRecord::Base.stubs(:connection).returns(@connection)
225
- ActiveRecord::Base.stubs(:establish_connection).returns(true)
226
- Kernel.stubs(:system)
227
- end
228
-
229
- def test_structure_load
230
- filename = "awesome-file.sql"
231
- Kernel.expects(:system).with("psql -q -f #{filename} my-app-db")
232
-
233
- ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename)
234
- end
235
-
236
- def test_structure_load_accepts_path_with_spaces
237
- filename = "awesome file.sql"
238
- Kernel.expects(:system).with("psql -q -f awesome\\ file.sql my-app-db")
239
-
240
- ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename)
241
- end
242
- end
243
-
244
- end
245
- end
1
+ require 'cases/helper'
2
+
3
+ if current_adapter?(:PostgreSQLAdapter)
4
+ module ActiveRecord
5
+ class PostgreSQLDBCreateTest < ActiveRecord::TestCase
6
+ def setup
7
+ @connection = stub(:create_database => true)
8
+ @configuration = {
9
+ 'adapter' => 'postgresql',
10
+ 'database' => 'my-app-db'
11
+ }
12
+
13
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
14
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
15
+ end
16
+
17
+ def test_establishes_connection_to_postgresql_database
18
+ ActiveRecord::Base.expects(:establish_connection).with(
19
+ 'adapter' => 'postgresql',
20
+ 'database' => 'postgres',
21
+ 'schema_search_path' => 'public'
22
+ )
23
+
24
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration
25
+ end
26
+
27
+ def test_creates_database_with_default_encoding
28
+ @connection.expects(:create_database).
29
+ with('my-app-db', @configuration.merge('encoding' => 'utf8'))
30
+
31
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration
32
+ end
33
+
34
+ def test_creates_database_with_given_encoding
35
+ @connection.expects(:create_database).
36
+ with('my-app-db', @configuration.merge('encoding' => 'latin'))
37
+
38
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration.
39
+ merge('encoding' => 'latin')
40
+ end
41
+
42
+ def test_creates_database_with_given_collation_and_ctype
43
+ @connection.expects(:create_database).
44
+ with('my-app-db', @configuration.merge('encoding' => 'utf8', 'collation' => 'ja_JP.UTF8', 'ctype' => 'ja_JP.UTF8'))
45
+
46
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration.
47
+ merge('collation' => 'ja_JP.UTF8', 'ctype' => 'ja_JP.UTF8')
48
+ end
49
+
50
+ def test_establishes_connection_to_new_database
51
+ ActiveRecord::Base.expects(:establish_connection).with(@configuration)
52
+
53
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration
54
+ end
55
+
56
+ def test_db_create_with_error_prints_message
57
+ ActiveRecord::Base.stubs(:establish_connection).raises(Exception)
58
+
59
+ $stderr.stubs(:puts).returns(true)
60
+ $stderr.expects(:puts).
61
+ with("Couldn't create database for #{@configuration.inspect}")
62
+
63
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration
64
+ end
65
+
66
+ def test_create_when_database_exists_outputs_info_to_stderr
67
+ $stderr.expects(:puts).with("my-app-db already exists").once
68
+
69
+ ActiveRecord::Base.connection.stubs(:create_database).raises(
70
+ ActiveRecord::StatementInvalid.new('database "my-app-db" already exists')
71
+ )
72
+
73
+ ActiveRecord::Tasks::DatabaseTasks.create @configuration
74
+ end
75
+ end
76
+
77
+ class PostgreSQLDBDropTest < ActiveRecord::TestCase
78
+ def setup
79
+ @connection = stub(:drop_database => true)
80
+ @configuration = {
81
+ 'adapter' => 'postgresql',
82
+ 'database' => 'my-app-db'
83
+ }
84
+
85
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
86
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
87
+ end
88
+
89
+ def test_establishes_connection_to_postgresql_database
90
+ ActiveRecord::Base.expects(:establish_connection).with(
91
+ 'adapter' => 'postgresql',
92
+ 'database' => 'postgres',
93
+ 'schema_search_path' => 'public'
94
+ )
95
+
96
+ ActiveRecord::Tasks::DatabaseTasks.drop @configuration
97
+ end
98
+
99
+ def test_drops_database
100
+ @connection.expects(:drop_database).with('my-app-db')
101
+
102
+ ActiveRecord::Tasks::DatabaseTasks.drop @configuration
103
+ end
104
+ end
105
+
106
+ class PostgreSQLPurgeTest < ActiveRecord::TestCase
107
+ def setup
108
+ @connection = stub(:create_database => true, :drop_database => true)
109
+ @configuration = {
110
+ 'adapter' => 'postgresql',
111
+ 'database' => 'my-app-db'
112
+ }
113
+
114
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
115
+ ActiveRecord::Base.stubs(:clear_active_connections!).returns(true)
116
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
117
+ end
118
+
119
+ def test_clears_active_connections
120
+ ActiveRecord::Base.expects(:clear_active_connections!)
121
+
122
+ ActiveRecord::Tasks::DatabaseTasks.purge @configuration
123
+ end
124
+
125
+ def test_establishes_connection_to_postgresql_database
126
+ ActiveRecord::Base.expects(:establish_connection).with(
127
+ 'adapter' => 'postgresql',
128
+ 'database' => 'postgres',
129
+ 'schema_search_path' => 'public'
130
+ )
131
+
132
+ ActiveRecord::Tasks::DatabaseTasks.purge @configuration
133
+ end
134
+
135
+ def test_drops_database
136
+ @connection.expects(:drop_database).with('my-app-db')
137
+
138
+ ActiveRecord::Tasks::DatabaseTasks.purge @configuration
139
+ end
140
+
141
+ def test_creates_database
142
+ @connection.expects(:create_database).
143
+ with('my-app-db', @configuration.merge('encoding' => 'utf8'))
144
+
145
+ ActiveRecord::Tasks::DatabaseTasks.purge @configuration
146
+ end
147
+
148
+ def test_establishes_connection
149
+ ActiveRecord::Base.expects(:establish_connection).with(@configuration)
150
+
151
+ ActiveRecord::Tasks::DatabaseTasks.purge @configuration
152
+ end
153
+ end
154
+
155
+ class PostgreSQLDBCharsetTest < ActiveRecord::TestCase
156
+ def setup
157
+ @connection = stub(:create_database => true)
158
+ @configuration = {
159
+ 'adapter' => 'postgresql',
160
+ 'database' => 'my-app-db'
161
+ }
162
+
163
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
164
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
165
+ end
166
+
167
+ def test_db_retrieves_charset
168
+ @connection.expects(:encoding)
169
+ ActiveRecord::Tasks::DatabaseTasks.charset @configuration
170
+ end
171
+ end
172
+
173
+ class PostgreSQLDBCollationTest < ActiveRecord::TestCase
174
+ def setup
175
+ @connection = stub(:create_database => true)
176
+ @configuration = {
177
+ 'adapter' => 'postgresql',
178
+ 'database' => 'my-app-db'
179
+ }
180
+
181
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
182
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
183
+ end
184
+
185
+ def test_db_retrieves_collation
186
+ @connection.expects(:collation)
187
+ ActiveRecord::Tasks::DatabaseTasks.collation @configuration
188
+ end
189
+ end
190
+
191
+ class PostgreSQLStructureDumpTest < ActiveRecord::TestCase
192
+ def setup
193
+ @connection = stub(:structure_dump => true)
194
+ @configuration = {
195
+ 'adapter' => 'postgresql',
196
+ 'database' => 'my-app-db'
197
+ }
198
+ @filename = "awesome-file.sql"
199
+
200
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
201
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
202
+ Kernel.stubs(:system)
203
+ File.stubs(:open)
204
+ end
205
+
206
+ def test_structure_dump
207
+ Kernel.expects(:system).with('pg_dump', '-s', '-x', '-O', '-f', @filename, 'my-app-db').returns(true)
208
+
209
+ ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, @filename)
210
+ end
211
+
212
+ def test_structure_dump_with_schema_search_path
213
+ @configuration['schema_search_path'] = 'foo,bar'
214
+
215
+ Kernel.expects(:system).with('pg_dump', '-s', '-x', '-O', '-f', @filename, '--schema=foo', '--schema=bar', 'my-app-db').returns(true)
216
+
217
+ ActiveRecord::Tasks::DatabaseTasks.structure_dump(@configuration, @filename)
218
+ end
219
+ end
220
+
221
+ class PostgreSQLStructureLoadTest < ActiveRecord::TestCase
222
+ def setup
223
+ @connection = stub
224
+ @configuration = {
225
+ 'adapter' => 'postgresql',
226
+ 'database' => 'my-app-db'
227
+ }
228
+
229
+ ActiveRecord::Base.stubs(:connection).returns(@connection)
230
+ ActiveRecord::Base.stubs(:establish_connection).returns(true)
231
+ Kernel.stubs(:system)
232
+ end
233
+
234
+ def test_structure_load
235
+ filename = "awesome-file.sql"
236
+ Kernel.expects(:system).with('psql', '-q', '-f', filename, 'my-app-db').returns(true)
237
+
238
+ ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename)
239
+ end
240
+
241
+ def test_structure_load_accepts_path_with_spaces
242
+ filename = "awesome file.sql"
243
+ Kernel.expects(:system).with('psql', '-q', '-f', 'awesome file.sql', 'my-app-db').returns(true)
244
+
245
+ ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename)
246
+ end
247
+ end
248
+
249
+ end
250
+ end