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,14 +1,14 @@
1
- class CustomerCarrier < ActiveRecord::Base
2
- cattr_accessor :current_customer
3
-
4
- belongs_to :customer
5
- belongs_to :carrier
6
-
7
- default_scope -> {
8
- if current_customer
9
- where(customer: current_customer)
10
- else
11
- all
12
- end
13
- }
14
- end
1
+ class CustomerCarrier < ActiveRecord::Base
2
+ cattr_accessor :current_customer
3
+
4
+ belongs_to :customer
5
+ belongs_to :carrier
6
+
7
+ default_scope -> {
8
+ if current_customer
9
+ where(customer: current_customer)
10
+ else
11
+ all
12
+ end
13
+ }
14
+ end
@@ -1,3 +1,3 @@
1
- class Dashboard < ActiveRecord::Base
2
- self.primary_key = :dashboard_id
3
- end
1
+ class Dashboard < ActiveRecord::Base
2
+ self.primary_key = :dashboard_id
3
+ end
@@ -1,2 +1,2 @@
1
- class Default < ActiveRecord::Base
2
- end
1
+ class Default < ActiveRecord::Base
2
+ end
@@ -1,4 +1,4 @@
1
- class Department < ActiveRecord::Base
2
- has_many :chefs
3
- belongs_to :hotel
4
- end
1
+ class Department < ActiveRecord::Base
2
+ has_many :chefs
3
+ belongs_to :hotel
4
+ end
@@ -1,252 +1,255 @@
1
- require 'ostruct'
2
-
3
- module DeveloperProjectsAssociationExtension2
4
- def find_least_recent
5
- order("id ASC").first
6
- end
7
- end
8
-
9
- class Developer < ActiveRecord::Base
10
- has_and_belongs_to_many :projects do
11
- def find_most_recent
12
- order("id DESC").first
13
- end
14
- end
15
-
16
- accepts_nested_attributes_for :projects
17
-
18
- has_and_belongs_to_many :shared_computers, class_name: "Computer"
19
-
20
- has_and_belongs_to_many :projects_extended_by_name,
21
- -> { extending(DeveloperProjectsAssociationExtension) },
22
- :class_name => "Project",
23
- :join_table => "developers_projects",
24
- :association_foreign_key => "project_id"
25
-
26
- has_and_belongs_to_many :projects_extended_by_name_twice,
27
- -> { extending(DeveloperProjectsAssociationExtension, DeveloperProjectsAssociationExtension2) },
28
- :class_name => "Project",
29
- :join_table => "developers_projects",
30
- :association_foreign_key => "project_id"
31
-
32
- has_and_belongs_to_many :projects_extended_by_name_and_block,
33
- -> { extending(DeveloperProjectsAssociationExtension) },
34
- :class_name => "Project",
35
- :join_table => "developers_projects",
36
- :association_foreign_key => "project_id" do
37
- def find_least_recent
38
- order("id ASC").first
39
- end
40
- end
41
-
42
- has_and_belongs_to_many :special_projects, :join_table => 'developers_projects', :association_foreign_key => 'project_id'
43
- has_and_belongs_to_many :sym_special_projects,
44
- :join_table => :developers_projects,
45
- :association_foreign_key => 'project_id',
46
- :class_name => 'SpecialProject'
47
-
48
- has_many :audit_logs
49
- has_many :contracts
50
- has_many :firms, :through => :contracts, :source => :firm
51
- has_many :comments, ->(developer) { where(body: "I'm #{developer.name}") }
52
- has_many :ratings, through: :comments
53
-
54
- scope :jamises, -> { where(:name => 'Jamis') }
55
-
56
- validates_inclusion_of :salary, :in => 50000..200000
57
- validates_length_of :name, :within => 3..20
58
-
59
- before_create do |developer|
60
- developer.audit_logs.build :message => "Computer created"
61
- end
62
-
63
- def log=(message)
64
- audit_logs.build :message => message
65
- end
66
-
67
- after_find :track_instance_count
68
- cattr_accessor :instance_count
69
-
70
- def track_instance_count
71
- self.class.instance_count ||= 0
72
- self.class.instance_count += 1
73
- end
74
- private :track_instance_count
75
-
76
- end
77
-
78
- class AuditLog < ActiveRecord::Base
79
- belongs_to :developer, :validate => true
80
- belongs_to :unvalidated_developer, :class_name => 'Developer'
81
- end
82
-
83
- class DeveloperWithBeforeDestroyRaise < ActiveRecord::Base
84
- self.table_name = 'developers'
85
- has_and_belongs_to_many :projects, :join_table => 'developers_projects', :foreign_key => 'developer_id'
86
- before_destroy :raise_if_projects_empty!
87
-
88
- def raise_if_projects_empty!
89
- raise if projects.empty?
90
- end
91
- end
92
-
93
- class DeveloperWithSelect < ActiveRecord::Base
94
- self.table_name = 'developers'
95
- default_scope { select('name') }
96
- end
97
-
98
- class DeveloperWithIncludes < ActiveRecord::Base
99
- self.table_name = 'developers'
100
- has_many :audit_logs, :foreign_key => :developer_id
101
- default_scope { includes(:audit_logs) }
102
- end
103
-
104
- class DeveloperFilteredOnJoins < ActiveRecord::Base
105
- self.table_name = 'developers'
106
- has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
107
-
108
- def self.default_scope
109
- joins(:projects).where(:projects => { :name => 'Active Controller' })
110
- end
111
- end
112
-
113
- class DeveloperOrderedBySalary < ActiveRecord::Base
114
- self.table_name = 'developers'
115
- default_scope { order('salary DESC') }
116
-
117
- scope :by_name, -> { order('name DESC') }
118
- end
119
-
120
- class DeveloperCalledDavid < ActiveRecord::Base
121
- self.table_name = 'developers'
122
- default_scope { where("name = 'David'") }
123
- end
124
-
125
- class LazyLambdaDeveloperCalledDavid < ActiveRecord::Base
126
- self.table_name = 'developers'
127
- default_scope lambda { where(:name => 'David') }
128
- end
129
-
130
- class LazyBlockDeveloperCalledDavid < ActiveRecord::Base
131
- self.table_name = 'developers'
132
- default_scope { where(:name => 'David') }
133
- end
134
-
135
- class CallableDeveloperCalledDavid < ActiveRecord::Base
136
- self.table_name = 'developers'
137
- default_scope OpenStruct.new(:call => where(:name => 'David'))
138
- end
139
-
140
- class ClassMethodDeveloperCalledDavid < ActiveRecord::Base
141
- self.table_name = 'developers'
142
-
143
- def self.default_scope
144
- where(:name => 'David')
145
- end
146
- end
147
-
148
- class ClassMethodReferencingScopeDeveloperCalledDavid < ActiveRecord::Base
149
- self.table_name = 'developers'
150
- scope :david, -> { where(:name => 'David') }
151
-
152
- def self.default_scope
153
- david
154
- end
155
- end
156
-
157
- class LazyBlockReferencingScopeDeveloperCalledDavid < ActiveRecord::Base
158
- self.table_name = 'developers'
159
- scope :david, -> { where(:name => 'David') }
160
- default_scope { david }
161
- end
162
-
163
- class DeveloperCalledJamis < ActiveRecord::Base
164
- self.table_name = 'developers'
165
-
166
- default_scope { where(:name => 'Jamis') }
167
- scope :poor, -> { where('salary < 150000') }
168
- scope :david, -> { where name: "David" }
169
- scope :david2, -> { unscoped.where name: "David" }
170
- end
171
-
172
- class PoorDeveloperCalledJamis < ActiveRecord::Base
173
- self.table_name = 'developers'
174
-
175
- default_scope -> { where(:name => 'Jamis', :salary => 50000) }
176
- end
177
-
178
- class InheritedPoorDeveloperCalledJamis < DeveloperCalledJamis
179
- self.table_name = 'developers'
180
-
181
- default_scope -> { where(:salary => 50000) }
182
- end
183
-
184
- class MultiplePoorDeveloperCalledJamis < ActiveRecord::Base
185
- self.table_name = 'developers'
186
-
187
- default_scope -> { where(:name => 'Jamis') }
188
- default_scope -> { where(:salary => 50000) }
189
- end
190
-
191
- module SalaryDefaultScope
192
- extend ActiveSupport::Concern
193
-
194
- included { default_scope { where(:salary => 50000) } }
195
- end
196
-
197
- class ModuleIncludedPoorDeveloperCalledJamis < DeveloperCalledJamis
198
- self.table_name = 'developers'
199
-
200
- include SalaryDefaultScope
201
- end
202
-
203
- class EagerDeveloperWithDefaultScope < ActiveRecord::Base
204
- self.table_name = 'developers'
205
- has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
206
-
207
- default_scope { includes(:projects) }
208
- end
209
-
210
- class EagerDeveloperWithClassMethodDefaultScope < ActiveRecord::Base
211
- self.table_name = 'developers'
212
- has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
213
-
214
- def self.default_scope
215
- includes(:projects)
216
- end
217
- end
218
-
219
- class EagerDeveloperWithLambdaDefaultScope < ActiveRecord::Base
220
- self.table_name = 'developers'
221
- has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
222
-
223
- default_scope lambda { includes(:projects) }
224
- end
225
-
226
- class EagerDeveloperWithBlockDefaultScope < ActiveRecord::Base
227
- self.table_name = 'developers'
228
- has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
229
-
230
- default_scope { includes(:projects) }
231
- end
232
-
233
- class EagerDeveloperWithCallableDefaultScope < ActiveRecord::Base
234
- self.table_name = 'developers'
235
- has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
236
-
237
- default_scope OpenStruct.new(:call => includes(:projects))
238
- end
239
-
240
- class ThreadsafeDeveloper < ActiveRecord::Base
241
- self.table_name = 'developers'
242
-
243
- def self.default_scope
244
- sleep 0.05 if Thread.current[:long_default_scope]
245
- limit(1)
246
- end
247
- end
248
-
249
- class CachedDeveloper < ActiveRecord::Base
250
- self.table_name = "developers"
251
- self.cache_timestamp_format = :number
252
- end
1
+ require 'ostruct'
2
+
3
+ module DeveloperProjectsAssociationExtension2
4
+ def find_least_recent
5
+ order("id ASC").first
6
+ end
7
+ end
8
+
9
+ class Developer < ActiveRecord::Base
10
+ has_and_belongs_to_many :projects do
11
+ def find_most_recent
12
+ order("id DESC").first
13
+ end
14
+ end
15
+
16
+ accepts_nested_attributes_for :projects
17
+
18
+ has_and_belongs_to_many :shared_computers, class_name: "Computer"
19
+
20
+ has_and_belongs_to_many :projects_extended_by_name,
21
+ -> { extending(DeveloperProjectsAssociationExtension) },
22
+ :class_name => "Project",
23
+ :join_table => "developers_projects",
24
+ :association_foreign_key => "project_id"
25
+
26
+ has_and_belongs_to_many :projects_extended_by_name_twice,
27
+ -> { extending(DeveloperProjectsAssociationExtension, DeveloperProjectsAssociationExtension2) },
28
+ :class_name => "Project",
29
+ :join_table => "developers_projects",
30
+ :association_foreign_key => "project_id"
31
+
32
+ has_and_belongs_to_many :projects_extended_by_name_and_block,
33
+ -> { extending(DeveloperProjectsAssociationExtension) },
34
+ :class_name => "Project",
35
+ :join_table => "developers_projects",
36
+ :association_foreign_key => "project_id" do
37
+ def find_least_recent
38
+ order("id ASC").first
39
+ end
40
+ end
41
+
42
+ has_and_belongs_to_many :special_projects, :join_table => 'developers_projects', :association_foreign_key => 'project_id'
43
+ has_and_belongs_to_many :sym_special_projects,
44
+ :join_table => :developers_projects,
45
+ :association_foreign_key => 'project_id',
46
+ :class_name => 'SpecialProject'
47
+
48
+ has_many :audit_logs
49
+ has_many :contracts
50
+ has_many :firms, :through => :contracts, :source => :firm
51
+ has_many :comments, ->(developer) { where(body: "I'm #{developer.name}") }
52
+ has_many :ratings, through: :comments
53
+
54
+ belongs_to :firm
55
+ has_many :contracted_projects, class_name: "Project"
56
+
57
+ scope :jamises, -> { where(:name => 'Jamis') }
58
+
59
+ validates_inclusion_of :salary, :in => 50000..200000
60
+ validates_length_of :name, :within => 3..20
61
+
62
+ before_create do |developer|
63
+ developer.audit_logs.build :message => "Computer created"
64
+ end
65
+
66
+ def log=(message)
67
+ audit_logs.build :message => message
68
+ end
69
+
70
+ after_find :track_instance_count
71
+ cattr_accessor :instance_count
72
+
73
+ def track_instance_count
74
+ self.class.instance_count ||= 0
75
+ self.class.instance_count += 1
76
+ end
77
+ private :track_instance_count
78
+
79
+ end
80
+
81
+ class AuditLog < ActiveRecord::Base
82
+ belongs_to :developer, :validate => true
83
+ belongs_to :unvalidated_developer, :class_name => 'Developer'
84
+ end
85
+
86
+ class DeveloperWithBeforeDestroyRaise < ActiveRecord::Base
87
+ self.table_name = 'developers'
88
+ has_and_belongs_to_many :projects, :join_table => 'developers_projects', :foreign_key => 'developer_id'
89
+ before_destroy :raise_if_projects_empty!
90
+
91
+ def raise_if_projects_empty!
92
+ raise if projects.empty?
93
+ end
94
+ end
95
+
96
+ class DeveloperWithSelect < ActiveRecord::Base
97
+ self.table_name = 'developers'
98
+ default_scope { select('name') }
99
+ end
100
+
101
+ class DeveloperWithIncludes < ActiveRecord::Base
102
+ self.table_name = 'developers'
103
+ has_many :audit_logs, :foreign_key => :developer_id
104
+ default_scope { includes(:audit_logs) }
105
+ end
106
+
107
+ class DeveloperFilteredOnJoins < ActiveRecord::Base
108
+ self.table_name = 'developers'
109
+ has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
110
+
111
+ def self.default_scope
112
+ joins(:projects).where(:projects => { :name => 'Active Controller' })
113
+ end
114
+ end
115
+
116
+ class DeveloperOrderedBySalary < ActiveRecord::Base
117
+ self.table_name = 'developers'
118
+ default_scope { order('salary DESC') }
119
+
120
+ scope :by_name, -> { order('name DESC') }
121
+ end
122
+
123
+ class DeveloperCalledDavid < ActiveRecord::Base
124
+ self.table_name = 'developers'
125
+ default_scope { where("name = 'David'") }
126
+ end
127
+
128
+ class LazyLambdaDeveloperCalledDavid < ActiveRecord::Base
129
+ self.table_name = 'developers'
130
+ default_scope lambda { where(:name => 'David') }
131
+ end
132
+
133
+ class LazyBlockDeveloperCalledDavid < ActiveRecord::Base
134
+ self.table_name = 'developers'
135
+ default_scope { where(:name => 'David') }
136
+ end
137
+
138
+ class CallableDeveloperCalledDavid < ActiveRecord::Base
139
+ self.table_name = 'developers'
140
+ default_scope OpenStruct.new(:call => where(:name => 'David'))
141
+ end
142
+
143
+ class ClassMethodDeveloperCalledDavid < ActiveRecord::Base
144
+ self.table_name = 'developers'
145
+
146
+ def self.default_scope
147
+ where(:name => 'David')
148
+ end
149
+ end
150
+
151
+ class ClassMethodReferencingScopeDeveloperCalledDavid < ActiveRecord::Base
152
+ self.table_name = 'developers'
153
+ scope :david, -> { where(:name => 'David') }
154
+
155
+ def self.default_scope
156
+ david
157
+ end
158
+ end
159
+
160
+ class LazyBlockReferencingScopeDeveloperCalledDavid < ActiveRecord::Base
161
+ self.table_name = 'developers'
162
+ scope :david, -> { where(:name => 'David') }
163
+ default_scope { david }
164
+ end
165
+
166
+ class DeveloperCalledJamis < ActiveRecord::Base
167
+ self.table_name = 'developers'
168
+
169
+ default_scope { where(:name => 'Jamis') }
170
+ scope :poor, -> { where('salary < 150000') }
171
+ scope :david, -> { where name: "David" }
172
+ scope :david2, -> { unscoped.where name: "David" }
173
+ end
174
+
175
+ class PoorDeveloperCalledJamis < ActiveRecord::Base
176
+ self.table_name = 'developers'
177
+
178
+ default_scope -> { where(:name => 'Jamis', :salary => 50000) }
179
+ end
180
+
181
+ class InheritedPoorDeveloperCalledJamis < DeveloperCalledJamis
182
+ self.table_name = 'developers'
183
+
184
+ default_scope -> { where(:salary => 50000) }
185
+ end
186
+
187
+ class MultiplePoorDeveloperCalledJamis < ActiveRecord::Base
188
+ self.table_name = 'developers'
189
+
190
+ default_scope -> { where(:name => 'Jamis') }
191
+ default_scope -> { where(:salary => 50000) }
192
+ end
193
+
194
+ module SalaryDefaultScope
195
+ extend ActiveSupport::Concern
196
+
197
+ included { default_scope { where(:salary => 50000) } }
198
+ end
199
+
200
+ class ModuleIncludedPoorDeveloperCalledJamis < DeveloperCalledJamis
201
+ self.table_name = 'developers'
202
+
203
+ include SalaryDefaultScope
204
+ end
205
+
206
+ class EagerDeveloperWithDefaultScope < ActiveRecord::Base
207
+ self.table_name = 'developers'
208
+ has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
209
+
210
+ default_scope { includes(:projects) }
211
+ end
212
+
213
+ class EagerDeveloperWithClassMethodDefaultScope < ActiveRecord::Base
214
+ self.table_name = 'developers'
215
+ has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
216
+
217
+ def self.default_scope
218
+ includes(:projects)
219
+ end
220
+ end
221
+
222
+ class EagerDeveloperWithLambdaDefaultScope < ActiveRecord::Base
223
+ self.table_name = 'developers'
224
+ has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
225
+
226
+ default_scope lambda { includes(:projects) }
227
+ end
228
+
229
+ class EagerDeveloperWithBlockDefaultScope < ActiveRecord::Base
230
+ self.table_name = 'developers'
231
+ has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
232
+
233
+ default_scope { includes(:projects) }
234
+ end
235
+
236
+ class EagerDeveloperWithCallableDefaultScope < ActiveRecord::Base
237
+ self.table_name = 'developers'
238
+ has_and_belongs_to_many :projects, -> { order('projects.id') }, :foreign_key => 'developer_id', :join_table => 'developers_projects'
239
+
240
+ default_scope OpenStruct.new(:call => includes(:projects))
241
+ end
242
+
243
+ class ThreadsafeDeveloper < ActiveRecord::Base
244
+ self.table_name = 'developers'
245
+
246
+ def self.default_scope
247
+ sleep 0.05 if Thread.current[:long_default_scope]
248
+ limit(1)
249
+ end
250
+ end
251
+
252
+ class CachedDeveloper < ActiveRecord::Base
253
+ self.table_name = "developers"
254
+ self.cache_timestamp_format = :number
255
+ end