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,43 +1,43 @@
1
- ActiveRecord::Schema.define do
2
-
3
- execute "drop table test_oracle_defaults" rescue nil
4
- execute "drop sequence test_oracle_defaults_seq" rescue nil
5
- execute "drop sequence companies_nonstd_seq" rescue nil
6
- execute "drop table defaults" rescue nil
7
- execute "drop sequence defaults_seq" rescue nil
8
-
9
- execute <<-SQL
10
- create table test_oracle_defaults (
11
- id integer not null primary key,
12
- test_char char(1) default 'X' not null,
13
- test_string varchar2(20) default 'hello' not null,
14
- test_int integer default 3 not null
15
- )
16
- SQL
17
-
18
- execute <<-SQL
19
- create sequence test_oracle_defaults_seq minvalue 10000
20
- SQL
21
-
22
- execute "create sequence companies_nonstd_seq minvalue 10000"
23
-
24
- execute <<-SQL
25
- CREATE TABLE defaults (
26
- id integer not null,
27
- modified_date date default sysdate,
28
- modified_date_function date default sysdate,
29
- fixed_date date default to_date('2004-01-01', 'YYYY-MM-DD'),
30
- modified_time date default sysdate,
31
- modified_time_function date default sysdate,
32
- fixed_time date default TO_DATE('2004-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'),
33
- char1 varchar2(1) default 'Y',
34
- char2 varchar2(50) default 'a varchar field',
35
- char3 clob default 'a text field',
36
- positive_integer integer default 1,
37
- negative_integer integer default -1,
38
- decimal_number number(3,2) default 2.78
39
- )
40
- SQL
41
- execute "create sequence defaults_seq minvalue 10000"
42
-
43
- end
1
+ ActiveRecord::Schema.define do
2
+
3
+ execute "drop table test_oracle_defaults" rescue nil
4
+ execute "drop sequence test_oracle_defaults_seq" rescue nil
5
+ execute "drop sequence companies_nonstd_seq" rescue nil
6
+ execute "drop table defaults" rescue nil
7
+ execute "drop sequence defaults_seq" rescue nil
8
+
9
+ execute <<-SQL
10
+ create table test_oracle_defaults (
11
+ id integer not null primary key,
12
+ test_char char(1) default 'X' not null,
13
+ test_string varchar2(20) default 'hello' not null,
14
+ test_int integer default 3 not null
15
+ )
16
+ SQL
17
+
18
+ execute <<-SQL
19
+ create sequence test_oracle_defaults_seq minvalue 10000
20
+ SQL
21
+
22
+ execute "create sequence companies_nonstd_seq minvalue 10000"
23
+
24
+ execute <<-SQL
25
+ CREATE TABLE defaults (
26
+ id integer not null,
27
+ modified_date date default sysdate,
28
+ modified_date_function date default sysdate,
29
+ fixed_date date default to_date('2004-01-01', 'YYYY-MM-DD'),
30
+ modified_time date default sysdate,
31
+ modified_time_function date default sysdate,
32
+ fixed_time date default TO_DATE('2004-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'),
33
+ char1 varchar2(1) default 'Y',
34
+ char2 varchar2(50) default 'a varchar field',
35
+ char3 clob default 'a text field',
36
+ positive_integer integer default 1,
37
+ negative_integer integer default -1,
38
+ decimal_number number(3,2) default 2.78
39
+ )
40
+ SQL
41
+ execute "create sequence defaults_seq minvalue 10000"
42
+
43
+ end
@@ -1,202 +1,202 @@
1
- ActiveRecord::Schema.define do
2
-
3
- %w(postgresql_tsvectors postgresql_hstores postgresql_arrays postgresql_moneys postgresql_numbers postgresql_times
4
- postgresql_network_addresses postgresql_uuids postgresql_ltrees postgresql_oids postgresql_xml_data_type defaults
5
- geometrics postgresql_timestamp_with_zones postgresql_partitioned_table postgresql_partitioned_table_parent
6
- postgresql_citext).each do |table_name|
7
- execute "DROP TABLE IF EXISTS #{quote_table_name table_name}"
8
- end
9
-
10
- execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
11
- execute 'CREATE SEQUENCE companies_nonstd_seq START 101 OWNED BY companies.id'
12
- execute "ALTER TABLE companies ALTER COLUMN id SET DEFAULT nextval('companies_nonstd_seq')"
13
- execute 'DROP SEQUENCE IF EXISTS companies_id_seq'
14
-
15
- execute 'DROP FUNCTION IF EXISTS partitioned_insert_trigger()'
16
-
17
- execute "DROP SCHEMA IF EXISTS schema_1 CASCADE"
18
-
19
- %w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
20
- execute "SELECT setval('#{seq_name}', 100)"
21
- end
22
-
23
- execute <<_SQL
24
- CREATE TABLE defaults (
25
- id serial primary key,
26
- modified_date date default CURRENT_DATE,
27
- modified_date_function date default now(),
28
- fixed_date date default '2004-01-01',
29
- modified_time timestamp default CURRENT_TIMESTAMP,
30
- modified_time_function timestamp default now(),
31
- fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
32
- char1 char(1) default 'Y',
33
- char2 character varying(50) default 'a varchar field',
34
- char3 text default 'a text field',
35
- positive_integer integer default 1,
36
- negative_integer integer default -1,
37
- bigint_default bigint default 0::bigint,
38
- decimal_number decimal(3,2) default 2.78,
39
- multiline_default text DEFAULT '--- []
40
-
41
- '::text
42
- );
43
- _SQL
44
-
45
- execute "CREATE SCHEMA schema_1"
46
- execute "CREATE DOMAIN schema_1.text AS text"
47
- execute "CREATE DOMAIN schema_1.varchar AS varchar"
48
- execute "CREATE DOMAIN schema_1.bpchar AS bpchar"
49
-
50
- execute <<_SQL
51
- CREATE TABLE geometrics (
52
- id serial primary key,
53
- a_point point,
54
- -- a_line line, (the line type is currently not implemented in postgresql)
55
- a_line_segment lseg,
56
- a_box box,
57
- a_path path,
58
- a_polygon polygon,
59
- a_circle circle
60
- );
61
- _SQL
62
-
63
- execute <<_SQL
64
- CREATE TABLE postgresql_arrays (
65
- id SERIAL PRIMARY KEY,
66
- commission_by_quarter INTEGER[],
67
- nicknames TEXT[]
68
- );
69
- _SQL
70
-
71
- execute <<_SQL
72
- CREATE TABLE postgresql_uuids (
73
- id SERIAL PRIMARY KEY,
74
- guid uuid,
75
- compact_guid uuid
76
- );
77
- _SQL
78
-
79
- execute <<_SQL
80
- CREATE TABLE postgresql_tsvectors (
81
- id SERIAL PRIMARY KEY,
82
- text_vector tsvector
83
- );
84
- _SQL
85
-
86
- if 't' == select_value("select 'hstore'=ANY(select typname from pg_type)")
87
- execute <<_SQL
88
- CREATE TABLE postgresql_hstores (
89
- id SERIAL PRIMARY KEY,
90
- hash_store hstore default ''::hstore
91
- );
92
- _SQL
93
- end
94
-
95
- if 't' == select_value("select 'ltree'=ANY(select typname from pg_type)")
96
- execute <<_SQL
97
- CREATE TABLE postgresql_ltrees (
98
- id SERIAL PRIMARY KEY,
99
- path ltree
100
- );
101
- _SQL
102
- end
103
-
104
- if 't' == select_value("select 'citext'=ANY(select typname from pg_type)")
105
- execute <<_SQL
106
- CREATE TABLE postgresql_citext (
107
- id SERIAL PRIMARY KEY,
108
- text_citext citext default ''::citext
109
- );
110
- _SQL
111
- end
112
-
113
- execute <<_SQL
114
- CREATE TABLE postgresql_numbers (
115
- id SERIAL PRIMARY KEY,
116
- single REAL,
117
- double DOUBLE PRECISION
118
- );
119
- _SQL
120
-
121
- execute <<_SQL
122
- CREATE TABLE postgresql_times (
123
- id SERIAL PRIMARY KEY,
124
- time_interval INTERVAL,
125
- scaled_time_interval INTERVAL(6)
126
- );
127
- _SQL
128
-
129
- execute <<_SQL
130
- CREATE TABLE postgresql_network_addresses (
131
- id SERIAL PRIMARY KEY,
132
- cidr_address CIDR default '192.168.1.0/24',
133
- inet_address INET default '192.168.1.1',
134
- mac_address MACADDR default 'ff:ff:ff:ff:ff:ff'
135
- );
136
- _SQL
137
-
138
- execute <<_SQL
139
- CREATE TABLE postgresql_oids (
140
- id SERIAL PRIMARY KEY,
141
- obj_id OID
142
- );
143
- _SQL
144
-
145
- execute <<_SQL
146
- CREATE TABLE postgresql_timestamp_with_zones (
147
- id SERIAL PRIMARY KEY,
148
- time TIMESTAMP WITH TIME ZONE
149
- );
150
- _SQL
151
-
152
- begin
153
- execute <<_SQL
154
- CREATE TABLE postgresql_partitioned_table_parent (
155
- id SERIAL PRIMARY KEY,
156
- number integer
157
- );
158
- CREATE TABLE postgresql_partitioned_table ( )
159
- INHERITS (postgresql_partitioned_table_parent);
160
-
161
- CREATE OR REPLACE FUNCTION partitioned_insert_trigger()
162
- RETURNS TRIGGER AS $$
163
- BEGIN
164
- INSERT INTO postgresql_partitioned_table VALUES (NEW.*);
165
- RETURN NULL;
166
- END;
167
- $$
168
- LANGUAGE plpgsql;
169
-
170
- CREATE TRIGGER insert_partitioning_trigger
171
- BEFORE INSERT ON postgresql_partitioned_table_parent
172
- FOR EACH ROW EXECUTE PROCEDURE partitioned_insert_trigger();
173
- _SQL
174
- rescue ActiveRecord::StatementInvalid => e
175
- if e.message =~ /language "plpgsql" does not exist/
176
- execute "CREATE LANGUAGE 'plpgsql';"
177
- retry
178
- else
179
- raise e
180
- end
181
- end
182
-
183
- begin
184
- execute <<_SQL
185
- CREATE TABLE postgresql_xml_data_type (
186
- id SERIAL PRIMARY KEY,
187
- data xml
188
- );
189
- _SQL
190
- rescue #This version of PostgreSQL either has no XML support or is was not compiled with XML support: skipping table
191
- end
192
-
193
- # This table is to verify if the :limit option is being ignored for text and binary columns
194
- create_table :limitless_fields, force: true do |t|
195
- t.binary :binary, limit: 100_000
196
- t.text :text, limit: 100_000
197
- end
198
-
199
- create_table :bigint_array, force: true do |t|
200
- t.integer :big_int_data_points, limit: 8, array: true
201
- end
202
- end
1
+ ActiveRecord::Schema.define do
2
+
3
+ %w(postgresql_tsvectors postgresql_hstores postgresql_arrays postgresql_moneys postgresql_numbers postgresql_times
4
+ postgresql_network_addresses postgresql_uuids postgresql_ltrees postgresql_oids postgresql_xml_data_type defaults
5
+ geometrics postgresql_timestamp_with_zones postgresql_partitioned_table postgresql_partitioned_table_parent
6
+ postgresql_citext).each do |table_name|
7
+ execute "DROP TABLE IF EXISTS #{quote_table_name table_name}"
8
+ end
9
+
10
+ execute 'DROP SEQUENCE IF EXISTS companies_nonstd_seq CASCADE'
11
+ execute 'CREATE SEQUENCE companies_nonstd_seq START 101 OWNED BY companies.id'
12
+ execute "ALTER TABLE companies ALTER COLUMN id SET DEFAULT nextval('companies_nonstd_seq')"
13
+ execute 'DROP SEQUENCE IF EXISTS companies_id_seq'
14
+
15
+ execute 'DROP FUNCTION IF EXISTS partitioned_insert_trigger()'
16
+
17
+ execute "DROP SCHEMA IF EXISTS schema_1 CASCADE"
18
+
19
+ %w(accounts_id_seq developers_id_seq projects_id_seq topics_id_seq customers_id_seq orders_id_seq).each do |seq_name|
20
+ execute "SELECT setval('#{seq_name}', 100)"
21
+ end
22
+
23
+ execute <<_SQL
24
+ CREATE TABLE defaults (
25
+ id serial primary key,
26
+ modified_date date default CURRENT_DATE,
27
+ modified_date_function date default now(),
28
+ fixed_date date default '2004-01-01',
29
+ modified_time timestamp default CURRENT_TIMESTAMP,
30
+ modified_time_function timestamp default now(),
31
+ fixed_time timestamp default '2004-01-01 00:00:00.000000-00',
32
+ char1 char(1) default 'Y',
33
+ char2 character varying(50) default 'a varchar field',
34
+ char3 text default 'a text field',
35
+ positive_integer integer default 1,
36
+ negative_integer integer default -1,
37
+ bigint_default bigint default 0::bigint,
38
+ decimal_number decimal(3,2) default 2.78,
39
+ multiline_default text DEFAULT '--- []
40
+
41
+ '::text
42
+ );
43
+ _SQL
44
+
45
+ execute "CREATE SCHEMA schema_1"
46
+ execute "CREATE DOMAIN schema_1.text AS text"
47
+ execute "CREATE DOMAIN schema_1.varchar AS varchar"
48
+ execute "CREATE DOMAIN schema_1.bpchar AS bpchar"
49
+
50
+ execute <<_SQL
51
+ CREATE TABLE geometrics (
52
+ id serial primary key,
53
+ a_point point,
54
+ -- a_line line, (the line type is currently not implemented in postgresql)
55
+ a_line_segment lseg,
56
+ a_box box,
57
+ a_path path,
58
+ a_polygon polygon,
59
+ a_circle circle
60
+ );
61
+ _SQL
62
+
63
+ execute <<_SQL
64
+ CREATE TABLE postgresql_arrays (
65
+ id SERIAL PRIMARY KEY,
66
+ commission_by_quarter INTEGER[],
67
+ nicknames TEXT[]
68
+ );
69
+ _SQL
70
+
71
+ execute <<_SQL
72
+ CREATE TABLE postgresql_uuids (
73
+ id SERIAL PRIMARY KEY,
74
+ guid uuid,
75
+ compact_guid uuid
76
+ );
77
+ _SQL
78
+
79
+ execute <<_SQL
80
+ CREATE TABLE postgresql_tsvectors (
81
+ id SERIAL PRIMARY KEY,
82
+ text_vector tsvector
83
+ );
84
+ _SQL
85
+
86
+ if 't' == select_value("select 'hstore'=ANY(select typname from pg_type)")
87
+ execute <<_SQL
88
+ CREATE TABLE postgresql_hstores (
89
+ id SERIAL PRIMARY KEY,
90
+ hash_store hstore default ''::hstore
91
+ );
92
+ _SQL
93
+ end
94
+
95
+ if 't' == select_value("select 'ltree'=ANY(select typname from pg_type)")
96
+ execute <<_SQL
97
+ CREATE TABLE postgresql_ltrees (
98
+ id SERIAL PRIMARY KEY,
99
+ path ltree
100
+ );
101
+ _SQL
102
+ end
103
+
104
+ if 't' == select_value("select 'citext'=ANY(select typname from pg_type)")
105
+ execute <<_SQL
106
+ CREATE TABLE postgresql_citext (
107
+ id SERIAL PRIMARY KEY,
108
+ text_citext citext default ''::citext
109
+ );
110
+ _SQL
111
+ end
112
+
113
+ execute <<_SQL
114
+ CREATE TABLE postgresql_numbers (
115
+ id SERIAL PRIMARY KEY,
116
+ single REAL,
117
+ double DOUBLE PRECISION
118
+ );
119
+ _SQL
120
+
121
+ execute <<_SQL
122
+ CREATE TABLE postgresql_times (
123
+ id SERIAL PRIMARY KEY,
124
+ time_interval INTERVAL,
125
+ scaled_time_interval INTERVAL(6)
126
+ );
127
+ _SQL
128
+
129
+ execute <<_SQL
130
+ CREATE TABLE postgresql_network_addresses (
131
+ id SERIAL PRIMARY KEY,
132
+ cidr_address CIDR default '192.168.1.0/24',
133
+ inet_address INET default '192.168.1.1',
134
+ mac_address MACADDR default 'ff:ff:ff:ff:ff:ff'
135
+ );
136
+ _SQL
137
+
138
+ execute <<_SQL
139
+ CREATE TABLE postgresql_oids (
140
+ id SERIAL PRIMARY KEY,
141
+ obj_id OID
142
+ );
143
+ _SQL
144
+
145
+ execute <<_SQL
146
+ CREATE TABLE postgresql_timestamp_with_zones (
147
+ id SERIAL PRIMARY KEY,
148
+ time TIMESTAMP WITH TIME ZONE
149
+ );
150
+ _SQL
151
+
152
+ begin
153
+ execute <<_SQL
154
+ CREATE TABLE postgresql_partitioned_table_parent (
155
+ id SERIAL PRIMARY KEY,
156
+ number integer
157
+ );
158
+ CREATE TABLE postgresql_partitioned_table ( )
159
+ INHERITS (postgresql_partitioned_table_parent);
160
+
161
+ CREATE OR REPLACE FUNCTION partitioned_insert_trigger()
162
+ RETURNS TRIGGER AS $$
163
+ BEGIN
164
+ INSERT INTO postgresql_partitioned_table VALUES (NEW.*);
165
+ RETURN NULL;
166
+ END;
167
+ $$
168
+ LANGUAGE plpgsql;
169
+
170
+ CREATE TRIGGER insert_partitioning_trigger
171
+ BEFORE INSERT ON postgresql_partitioned_table_parent
172
+ FOR EACH ROW EXECUTE PROCEDURE partitioned_insert_trigger();
173
+ _SQL
174
+ rescue ActiveRecord::StatementInvalid => e
175
+ if e.message =~ /language "plpgsql" does not exist/
176
+ execute "CREATE LANGUAGE 'plpgsql';"
177
+ retry
178
+ else
179
+ raise e
180
+ end
181
+ end
182
+
183
+ begin
184
+ execute <<_SQL
185
+ CREATE TABLE postgresql_xml_data_type (
186
+ id SERIAL PRIMARY KEY,
187
+ data xml
188
+ );
189
+ _SQL
190
+ rescue #This version of PostgreSQL either has no XML support or is was not compiled with XML support: skipping table
191
+ end
192
+
193
+ # This table is to verify if the :limit option is being ignored for text and binary columns
194
+ create_table :limitless_fields, force: true do |t|
195
+ t.binary :binary, limit: 100_000
196
+ t.text :text, limit: 100_000
197
+ end
198
+
199
+ create_table :bigint_array, force: true do |t|
200
+ t.integer :big_int_data_points, limit: 8, array: true
201
+ end
202
+ end