ibm_db 3.0.5-x86-mingw32 → 4.0.0-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 (586) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +4 -0
  3. data/LICENSE +1 -1
  4. data/MANIFEST +14 -14
  5. data/ParameterizedQueries README +6 -6
  6. data/README +208 -225
  7. data/ext/Makefile.nt32 +181 -181
  8. data/ext/Makefile.nt32.191 +212 -212
  9. data/ext/extconf.rb +291 -291
  10. data/ext/ibm_db.c +11887 -11887
  11. data/ext/ruby_ibm_db.h +241 -241
  12. data/ext/ruby_ibm_db_cli.c +866 -866
  13. data/ext/ruby_ibm_db_cli.h +500 -500
  14. data/init.rb +41 -41
  15. data/lib/IBM_DB.rb +27 -27
  16. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3452 -3177
  17. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +5 -2
  18. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -328
  19. data/lib/mswin32/ibm_db.rb +91 -123
  20. data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
  21. data/test/active_record/connection_adapters/fake_adapter.rb +49 -46
  22. data/test/assets/example.log +1 -1
  23. data/test/assets/test.txt +1 -1
  24. data/test/cases/adapter_test.rb +351 -276
  25. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
  26. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
  27. data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
  28. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
  29. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
  30. data/test/cases/adapters/mysql2/connection_test.rb +210 -0
  31. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
  32. data/test/cases/adapters/mysql2/enum_test.rb +26 -0
  33. data/test/cases/adapters/mysql2/explain_test.rb +21 -0
  34. data/test/cases/adapters/mysql2/json_test.rb +195 -0
  35. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
  36. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
  37. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
  38. data/test/cases/adapters/mysql2/schema_test.rb +126 -0
  39. data/test/cases/adapters/mysql2/sp_test.rb +36 -0
  40. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
  41. data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
  42. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
  43. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
  44. data/test/cases/adapters/postgresql/array_test.rb +339 -0
  45. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
  46. data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
  47. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
  48. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
  49. data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
  50. data/test/cases/adapters/postgresql/citext_test.rb +78 -0
  51. data/test/cases/adapters/postgresql/collation_test.rb +53 -0
  52. data/test/cases/adapters/postgresql/composite_test.rb +132 -0
  53. data/test/cases/adapters/postgresql/connection_test.rb +257 -0
  54. data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
  55. data/test/cases/adapters/postgresql/domain_test.rb +47 -0
  56. data/test/cases/adapters/postgresql/enum_test.rb +91 -0
  57. data/test/cases/adapters/postgresql/explain_test.rb +20 -0
  58. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
  59. data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
  60. data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
  61. data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
  62. data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
  63. data/test/cases/adapters/postgresql/integer_test.rb +25 -0
  64. data/test/cases/adapters/postgresql/json_test.rb +237 -0
  65. data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
  66. data/test/cases/adapters/postgresql/money_test.rb +96 -0
  67. data/test/cases/adapters/postgresql/network_test.rb +94 -0
  68. data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
  69. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
  70. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
  71. data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
  72. data/test/cases/adapters/postgresql/range_test.rb +343 -0
  73. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
  74. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
  75. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
  76. data/test/cases/adapters/postgresql/schema_test.rb +597 -0
  77. data/test/cases/adapters/postgresql/serial_test.rb +154 -0
  78. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
  79. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
  80. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
  81. data/test/cases/adapters/postgresql/utils_test.rb +62 -0
  82. data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
  83. data/test/cases/adapters/postgresql/xml_test.rb +54 -0
  84. data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
  85. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
  86. data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
  87. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
  88. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
  89. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
  90. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
  91. data/test/cases/aggregations_test.rb +168 -158
  92. data/test/cases/ar_schema_test.rb +146 -161
  93. data/test/cases/associations/association_scope_test.rb +16 -21
  94. data/test/cases/associations/belongs_to_associations_test.rb +1141 -1029
  95. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
  96. data/test/cases/associations/callbacks_test.rb +190 -192
  97. data/test/cases/associations/cascaded_eager_loading_test.rb +188 -188
  98. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +36 -36
  99. data/test/cases/associations/eager_load_nested_include_test.rb +126 -128
  100. data/test/cases/associations/eager_singularization_test.rb +148 -148
  101. data/test/cases/associations/eager_test.rb +1514 -1429
  102. data/test/cases/associations/extension_test.rb +87 -82
  103. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +1004 -972
  104. data/test/cases/associations/has_many_associations_test.rb +2501 -2182
  105. data/test/cases/associations/has_many_through_associations_test.rb +1271 -1204
  106. data/test/cases/associations/has_one_associations_test.rb +707 -610
  107. data/test/cases/associations/has_one_through_associations_test.rb +383 -380
  108. data/test/cases/associations/inner_join_association_test.rb +139 -139
  109. data/test/cases/associations/inverse_associations_test.rb +733 -706
  110. data/test/cases/associations/join_model_test.rb +777 -754
  111. data/test/cases/associations/left_outer_join_association_test.rb +88 -0
  112. data/test/cases/associations/nested_through_associations_test.rb +579 -579
  113. data/test/cases/associations/required_test.rb +102 -82
  114. data/test/cases/associations_test.rb +385 -380
  115. data/test/cases/attribute_decorators_test.rb +125 -125
  116. data/test/cases/attribute_methods/read_test.rb +60 -60
  117. data/test/cases/attribute_methods_test.rb +1009 -952
  118. data/test/cases/attribute_set_test.rb +270 -210
  119. data/test/cases/attribute_test.rb +246 -180
  120. data/test/cases/attributes_test.rb +253 -136
  121. data/test/cases/autosave_association_test.rb +1708 -1595
  122. data/test/cases/base_test.rb +1713 -1664
  123. data/test/cases/batches_test.rb +489 -212
  124. data/test/cases/binary_test.rb +44 -52
  125. data/test/cases/bind_parameter_test.rb +110 -100
  126. data/test/cases/cache_key_test.rb +25 -0
  127. data/test/cases/calculations_test.rb +798 -646
  128. data/test/cases/callbacks_test.rb +636 -543
  129. data/test/cases/clone_test.rb +40 -40
  130. data/test/cases/coders/json_test.rb +15 -0
  131. data/test/cases/coders/yaml_column_test.rb +63 -63
  132. data/test/cases/collection_cache_key_test.rb +115 -0
  133. data/test/cases/column_alias_test.rb +17 -17
  134. data/test/cases/column_definition_test.rb +92 -123
  135. data/test/cases/comment_test.rb +143 -0
  136. data/test/cases/connection_adapters/adapter_leasing_test.rb +56 -54
  137. data/test/cases/connection_adapters/connection_handler_test.rb +160 -53
  138. data/test/cases/connection_adapters/connection_specification_test.rb +12 -12
  139. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +255 -293
  140. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +69 -65
  141. data/test/cases/connection_adapters/quoting_test.rb +13 -13
  142. data/test/cases/connection_adapters/schema_cache_test.rb +61 -56
  143. data/test/cases/connection_adapters/type_lookup_test.rb +118 -110
  144. data/test/cases/connection_management_test.rb +112 -122
  145. data/test/cases/connection_pool_test.rb +521 -346
  146. data/test/cases/connection_specification/resolver_test.rb +131 -116
  147. data/test/cases/core_test.rb +112 -112
  148. data/test/cases/counter_cache_test.rb +214 -209
  149. data/test/cases/custom_locking_test.rb +17 -17
  150. data/test/cases/database_statements_test.rb +34 -19
  151. data/test/cases/{invalid_date_test.rb → date_test.rb} +44 -32
  152. data/test/cases/date_time_precision_test.rb +106 -0
  153. data/test/cases/date_time_test.rb +61 -61
  154. data/test/cases/defaults_test.rb +218 -223
  155. data/test/cases/dirty_test.rb +763 -785
  156. data/test/cases/disconnected_test.rb +30 -28
  157. data/test/cases/dup_test.rb +157 -157
  158. data/test/cases/enum_test.rb +444 -290
  159. data/test/cases/errors_test.rb +16 -0
  160. data/test/cases/explain_subscriber_test.rb +64 -64
  161. data/test/cases/explain_test.rb +87 -76
  162. data/test/cases/finder_respond_to_test.rb +60 -60
  163. data/test/cases/finder_test.rb +1294 -1169
  164. data/test/cases/fixture_set/file_test.rb +156 -138
  165. data/test/cases/fixtures_test.rb +988 -908
  166. data/test/cases/forbidden_attributes_protection_test.rb +165 -99
  167. data/test/cases/habtm_destroy_order_test.rb +61 -61
  168. data/test/cases/helper.rb +204 -210
  169. data/test/cases/hot_compatibility_test.rb +142 -54
  170. data/test/cases/i18n_test.rb +45 -45
  171. data/test/cases/inheritance_test.rb +606 -375
  172. data/test/cases/integration_test.rb +155 -139
  173. data/test/cases/invalid_connection_test.rb +24 -22
  174. data/test/cases/invertible_migration_test.rb +387 -295
  175. data/test/cases/json_serialization_test.rb +311 -302
  176. data/test/cases/locking_test.rb +493 -477
  177. data/test/cases/log_subscriber_test.rb +225 -136
  178. data/test/cases/migration/change_schema_test.rb +458 -512
  179. data/test/cases/migration/change_table_test.rb +256 -224
  180. data/test/cases/migration/column_attributes_test.rb +176 -192
  181. data/test/cases/migration/column_positioning_test.rb +56 -56
  182. data/test/cases/migration/columns_test.rb +310 -304
  183. data/test/cases/migration/command_recorder_test.rb +350 -305
  184. data/test/cases/migration/compatibility_test.rb +118 -0
  185. data/test/cases/migration/create_join_table_test.rb +157 -148
  186. data/test/cases/migration/foreign_key_test.rb +360 -328
  187. data/test/cases/migration/helper.rb +39 -39
  188. data/test/cases/migration/index_test.rb +218 -216
  189. data/test/cases/migration/logger_test.rb +36 -36
  190. data/test/cases/migration/pending_migrations_test.rb +52 -53
  191. data/test/cases/migration/references_foreign_key_test.rb +216 -169
  192. data/test/cases/migration/references_index_test.rb +101 -101
  193. data/test/cases/migration/references_statements_test.rb +136 -116
  194. data/test/cases/migration/rename_table_test.rb +93 -93
  195. data/test/cases/migration_test.rb +1157 -959
  196. data/test/cases/migrator_test.rb +470 -388
  197. data/test/cases/mixin_test.rb +68 -70
  198. data/test/cases/modules_test.rb +172 -173
  199. data/test/cases/multiparameter_attributes_test.rb +372 -350
  200. data/test/cases/multiple_db_test.rb +122 -115
  201. data/test/cases/nested_attributes_test.rb +1098 -1070
  202. data/test/cases/nested_attributes_with_callbacks_test.rb +144 -144
  203. data/test/cases/persistence_test.rb +1001 -909
  204. data/test/cases/pooled_connections_test.rb +81 -81
  205. data/test/cases/primary_keys_test.rb +376 -237
  206. data/test/cases/query_cache_test.rb +446 -326
  207. data/test/cases/quoting_test.rb +202 -156
  208. data/test/cases/readonly_test.rb +119 -118
  209. data/test/cases/reaper_test.rb +85 -85
  210. data/test/cases/reflection_test.rb +509 -463
  211. data/test/cases/relation/delegation_test.rb +63 -68
  212. data/test/cases/relation/merging_test.rb +157 -161
  213. data/test/cases/relation/mutation_test.rb +183 -165
  214. data/test/cases/relation/or_test.rb +92 -0
  215. data/test/cases/relation/predicate_builder_test.rb +16 -14
  216. data/test/cases/relation/record_fetch_warning_test.rb +40 -0
  217. data/test/cases/relation/where_chain_test.rb +105 -181
  218. data/test/cases/relation/where_clause_test.rb +182 -0
  219. data/test/cases/relation/where_test.rb +322 -300
  220. data/test/cases/relation_test.rb +328 -319
  221. data/test/cases/relations_test.rb +2026 -1815
  222. data/test/cases/reload_models_test.rb +22 -22
  223. data/test/cases/result_test.rb +90 -80
  224. data/test/cases/sanitize_test.rb +176 -83
  225. data/test/cases/schema_dumper_test.rb +457 -463
  226. data/test/cases/schema_loading_test.rb +52 -0
  227. data/test/cases/scoping/default_scoping_test.rb +528 -454
  228. data/test/cases/scoping/named_scoping_test.rb +561 -524
  229. data/test/cases/scoping/relation_scoping_test.rb +400 -357
  230. data/test/cases/secure_token_test.rb +32 -0
  231. data/test/cases/serialization_test.rb +104 -104
  232. data/test/cases/serialized_attribute_test.rb +364 -277
  233. data/test/cases/statement_cache_test.rb +136 -98
  234. data/test/cases/store_test.rb +195 -194
  235. data/test/cases/suppressor_test.rb +63 -0
  236. data/test/cases/tasks/database_tasks_test.rb +462 -398
  237. data/test/cases/tasks/mysql_rake_test.rb +345 -324
  238. data/test/cases/tasks/postgresql_rake_test.rb +304 -250
  239. data/test/cases/tasks/sqlite_rake_test.rb +220 -193
  240. data/test/cases/test_case.rb +131 -123
  241. data/test/cases/test_fixtures_test.rb +36 -0
  242. data/test/cases/time_precision_test.rb +102 -0
  243. data/test/cases/timestamp_test.rb +501 -467
  244. data/test/cases/touch_later_test.rb +121 -0
  245. data/test/cases/transaction_callbacks_test.rb +518 -452
  246. data/test/cases/transaction_isolation_test.rb +106 -106
  247. data/test/cases/transactions_test.rb +834 -817
  248. data/test/cases/type/adapter_specific_registry_test.rb +133 -0
  249. data/test/cases/type/date_time_test.rb +14 -0
  250. data/test/cases/type/integer_test.rb +27 -121
  251. data/test/cases/type/string_test.rb +22 -36
  252. data/test/cases/type/type_map_test.rb +177 -177
  253. data/test/cases/type_test.rb +39 -0
  254. data/test/cases/types_test.rb +24 -141
  255. data/test/cases/unconnected_test.rb +33 -33
  256. data/test/cases/validations/absence_validation_test.rb +73 -0
  257. data/test/cases/validations/association_validation_test.rb +97 -86
  258. data/test/cases/validations/i18n_generate_message_validation_test.rb +84 -84
  259. data/test/cases/validations/i18n_validation_test.rb +86 -90
  260. data/test/cases/validations/length_validation_test.rb +79 -47
  261. data/test/cases/validations/presence_validation_test.rb +103 -68
  262. data/test/cases/validations/uniqueness_validation_test.rb +548 -457
  263. data/test/cases/validations_repair_helper.rb +19 -23
  264. data/test/cases/validations_test.rb +194 -165
  265. data/test/cases/view_test.rb +216 -119
  266. data/test/cases/yaml_serialization_test.rb +121 -126
  267. data/test/config.example.yml +97 -0
  268. data/test/config.rb +5 -5
  269. data/test/fixtures/accounts.yml +29 -29
  270. data/test/fixtures/admin/accounts.yml +2 -2
  271. data/test/fixtures/admin/users.yml +10 -10
  272. data/test/fixtures/author_addresses.original +11 -0
  273. data/test/fixtures/author_addresses.yml +17 -17
  274. data/test/fixtures/author_favorites.yml +3 -3
  275. data/test/fixtures/authors.original +17 -0
  276. data/test/fixtures/authors.yml +23 -23
  277. data/test/fixtures/bad_posts.yml +9 -0
  278. data/test/fixtures/binaries.yml +133 -133
  279. data/test/fixtures/books.yml +31 -11
  280. data/test/fixtures/bulbs.yml +5 -5
  281. data/test/fixtures/cars.yml +9 -9
  282. data/test/fixtures/categories.yml +19 -19
  283. data/test/fixtures/categories/special_categories.yml +9 -9
  284. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -4
  285. data/test/fixtures/categories_ordered.yml +7 -7
  286. data/test/fixtures/categories_posts.yml +31 -31
  287. data/test/fixtures/categorizations.yml +23 -23
  288. data/test/fixtures/clubs.yml +8 -8
  289. data/test/fixtures/collections.yml +3 -3
  290. data/test/fixtures/colleges.yml +3 -3
  291. data/test/fixtures/comments.yml +65 -65
  292. data/test/fixtures/companies.yml +67 -67
  293. data/test/fixtures/computers.yml +10 -10
  294. data/test/fixtures/content.yml +3 -0
  295. data/test/fixtures/content_positions.yml +3 -0
  296. data/test/fixtures/courses.yml +8 -8
  297. data/test/fixtures/customers.yml +25 -25
  298. data/test/fixtures/dashboards.yml +6 -6
  299. data/test/fixtures/dead_parrots.yml +5 -0
  300. data/test/fixtures/developers.yml +22 -22
  301. data/test/fixtures/developers_projects.yml +16 -16
  302. data/test/fixtures/dog_lovers.yml +7 -7
  303. data/test/fixtures/dogs.yml +4 -4
  304. data/test/fixtures/doubloons.yml +3 -3
  305. data/test/fixtures/edges.yml +5 -5
  306. data/test/fixtures/entrants.yml +14 -14
  307. data/test/fixtures/essays.yml +6 -6
  308. data/test/fixtures/faces.yml +11 -11
  309. data/test/fixtures/fk_test_has_fk.yml +3 -3
  310. data/test/fixtures/fk_test_has_pk.yml +1 -1
  311. data/test/fixtures/friendships.yml +4 -4
  312. data/test/fixtures/funny_jokes.yml +10 -10
  313. data/test/fixtures/interests.yml +33 -33
  314. data/test/fixtures/items.yml +3 -3
  315. data/test/fixtures/jobs.yml +7 -7
  316. data/test/fixtures/legacy_things.yml +3 -3
  317. data/test/fixtures/live_parrots.yml +4 -0
  318. data/test/fixtures/mateys.yml +4 -4
  319. data/test/fixtures/member_details.yml +8 -8
  320. data/test/fixtures/member_types.yml +6 -6
  321. data/test/fixtures/members.yml +11 -11
  322. data/test/fixtures/memberships.yml +34 -34
  323. data/test/fixtures/men.yml +5 -5
  324. data/test/fixtures/minimalistics.yml +2 -2
  325. data/test/fixtures/minivans.yml +5 -5
  326. data/test/fixtures/mixed_case_monkeys.yml +6 -6
  327. data/test/fixtures/mixins.yml +29 -29
  328. data/test/fixtures/movies.yml +7 -7
  329. data/test/fixtures/naked/yml/accounts.yml +1 -1
  330. data/test/fixtures/naked/yml/companies.yml +1 -1
  331. data/test/fixtures/naked/yml/courses.yml +1 -1
  332. data/test/fixtures/naked/yml/parrots.yml +2 -0
  333. data/test/fixtures/naked/yml/trees.yml +3 -0
  334. data/test/fixtures/nodes.yml +29 -0
  335. data/test/fixtures/organizations.yml +5 -5
  336. data/test/fixtures/other_comments.yml +6 -0
  337. data/test/fixtures/other_dogs.yml +2 -0
  338. data/test/fixtures/other_posts.yml +7 -0
  339. data/test/fixtures/other_topics.yml +42 -42
  340. data/test/fixtures/owners.yml +9 -9
  341. data/test/fixtures/parrots.yml +27 -27
  342. data/test/fixtures/parrots_pirates.yml +7 -7
  343. data/test/fixtures/people.yml +24 -24
  344. data/test/fixtures/peoples_treasures.yml +3 -3
  345. data/test/fixtures/pets.yml +19 -19
  346. data/test/fixtures/pirates.yml +15 -12
  347. data/test/fixtures/posts.yml +80 -80
  348. data/test/fixtures/price_estimates.yml +16 -7
  349. data/test/fixtures/products.yml +4 -4
  350. data/test/fixtures/projects.yml +7 -7
  351. data/test/fixtures/ratings.yml +14 -14
  352. data/test/fixtures/readers.yml +11 -11
  353. data/test/fixtures/references.yml +17 -17
  354. data/test/fixtures/reserved_words/distinct.yml +5 -5
  355. data/test/fixtures/reserved_words/distinct_select.yml +11 -11
  356. data/test/fixtures/reserved_words/group.yml +14 -14
  357. data/test/fixtures/reserved_words/select.yml +8 -8
  358. data/test/fixtures/reserved_words/values.yml +7 -7
  359. data/test/fixtures/ships.yml +6 -6
  360. data/test/fixtures/speedometers.yml +8 -8
  361. data/test/fixtures/sponsors.yml +12 -12
  362. data/test/fixtures/string_key_objects.yml +7 -7
  363. data/test/fixtures/subscribers.yml +10 -10
  364. data/test/fixtures/subscriptions.yml +12 -12
  365. data/test/fixtures/taggings.yml +78 -78
  366. data/test/fixtures/tags.yml +11 -11
  367. data/test/fixtures/tasks.yml +7 -7
  368. data/test/fixtures/teapots.yml +3 -3
  369. data/test/fixtures/to_be_linked/accounts.yml +2 -2
  370. data/test/fixtures/to_be_linked/users.yml +10 -10
  371. data/test/fixtures/topics.yml +49 -49
  372. data/test/fixtures/toys.yml +14 -14
  373. data/test/fixtures/traffic_lights.yml +9 -9
  374. data/test/fixtures/treasures.yml +10 -10
  375. data/test/fixtures/trees.yml +3 -0
  376. data/test/fixtures/uuid_children.yml +3 -3
  377. data/test/fixtures/uuid_parents.yml +2 -2
  378. data/test/fixtures/variants.yml +4 -4
  379. data/test/fixtures/vegetables.yml +19 -19
  380. data/test/fixtures/vertices.yml +3 -3
  381. data/test/fixtures/warehouse_things.yml +2 -2
  382. data/test/fixtures/zines.yml +5 -5
  383. data/test/migrations/10_urban/9_add_expressions.rb +11 -11
  384. data/test/migrations/decimal/1_give_me_big_numbers.rb +15 -15
  385. data/test/migrations/magic/1_currencies_have_symbols.rb +12 -12
  386. data/test/migrations/missing/1000_people_have_middle_names.rb +9 -9
  387. data/test/migrations/missing/1_people_have_last_names.rb +9 -9
  388. data/test/migrations/missing/3_we_need_reminders.rb +12 -12
  389. data/test/migrations/missing/4_innocent_jointable.rb +12 -12
  390. data/test/migrations/rename/1_we_need_things.rb +11 -11
  391. data/test/migrations/rename/2_rename_things.rb +9 -9
  392. data/test/migrations/to_copy/1_people_have_hobbies.rb +9 -9
  393. data/test/migrations/to_copy/2_people_have_descriptions.rb +9 -9
  394. data/test/migrations/to_copy2/1_create_articles.rb +7 -7
  395. data/test/migrations/to_copy2/2_create_comments.rb +7 -7
  396. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +9 -9
  397. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +9 -9
  398. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +9 -9
  399. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +7 -7
  400. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +7 -7
  401. data/test/migrations/valid/1_valid_people_have_last_names.rb +9 -9
  402. data/test/migrations/valid/2_we_need_reminders.rb +12 -12
  403. data/test/migrations/valid/3_innocent_jointable.rb +12 -12
  404. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +9 -9
  405. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +12 -12
  406. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +12 -12
  407. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +9 -9
  408. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +12 -12
  409. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +12 -12
  410. data/test/migrations/version_check/20131219224947_migration_version_check.rb +8 -8
  411. data/test/models/admin.rb +5 -5
  412. data/test/models/admin/account.rb +3 -3
  413. data/test/models/admin/randomly_named_c1.rb +6 -2
  414. data/test/models/admin/user.rb +40 -40
  415. data/test/models/aircraft.rb +5 -4
  416. data/test/models/arunit2_model.rb +3 -3
  417. data/test/models/author.rb +209 -212
  418. data/test/models/auto_id.rb +4 -4
  419. data/test/models/autoloadable/extra_firm.rb +2 -2
  420. data/test/models/binary.rb +2 -2
  421. data/test/models/bird.rb +12 -12
  422. data/test/models/book.rb +23 -18
  423. data/test/models/boolean.rb +2 -2
  424. data/test/models/bulb.rb +52 -51
  425. data/test/models/cake_designer.rb +3 -3
  426. data/test/models/car.rb +29 -26
  427. data/test/models/carrier.rb +2 -2
  428. data/test/models/cat.rb +10 -0
  429. data/test/models/categorization.rb +19 -19
  430. data/test/models/category.rb +35 -35
  431. data/test/models/chef.rb +8 -7
  432. data/test/models/citation.rb +3 -3
  433. data/test/models/club.rb +25 -23
  434. data/test/models/college.rb +10 -10
  435. data/test/models/column.rb +3 -3
  436. data/test/models/column_name.rb +3 -3
  437. data/test/models/comment.rb +76 -64
  438. data/test/models/company.rb +230 -228
  439. data/test/models/company_in_module.rb +98 -98
  440. data/test/models/computer.rb +3 -3
  441. data/test/models/contact.rb +41 -41
  442. data/test/models/content.rb +40 -0
  443. data/test/models/contract.rb +20 -20
  444. data/test/models/country.rb +7 -7
  445. data/test/models/course.rb +6 -6
  446. data/test/models/customer.rb +83 -77
  447. data/test/models/customer_carrier.rb +14 -14
  448. data/test/models/dashboard.rb +3 -3
  449. data/test/models/default.rb +2 -2
  450. data/test/models/department.rb +4 -4
  451. data/test/models/developer.rb +274 -255
  452. data/test/models/dog.rb +5 -5
  453. data/test/models/dog_lover.rb +5 -5
  454. data/test/models/doubloon.rb +12 -12
  455. data/test/models/drink_designer.rb +3 -3
  456. data/test/models/edge.rb +5 -5
  457. data/test/models/electron.rb +5 -5
  458. data/test/models/engine.rb +4 -4
  459. data/test/models/entrant.rb +3 -3
  460. data/test/models/essay.rb +5 -5
  461. data/test/models/event.rb +3 -3
  462. data/test/models/eye.rb +37 -37
  463. data/test/models/face.rb +9 -9
  464. data/test/models/friendship.rb +6 -6
  465. data/test/models/guid.rb +2 -2
  466. data/test/models/guitar.rb +4 -0
  467. data/test/models/hotel.rb +11 -9
  468. data/test/models/image.rb +3 -3
  469. data/test/models/interest.rb +5 -5
  470. data/test/models/invoice.rb +4 -4
  471. data/test/models/item.rb +7 -7
  472. data/test/models/job.rb +7 -7
  473. data/test/models/joke.rb +7 -7
  474. data/test/models/keyboard.rb +3 -3
  475. data/test/models/legacy_thing.rb +3 -3
  476. data/test/models/lesson.rb +11 -11
  477. data/test/models/line_item.rb +3 -3
  478. data/test/models/liquid.rb +4 -4
  479. data/test/models/man.rb +11 -11
  480. data/test/models/matey.rb +4 -4
  481. data/test/models/member.rb +42 -41
  482. data/test/models/member_detail.rb +8 -7
  483. data/test/models/member_type.rb +3 -3
  484. data/test/models/membership.rb +35 -35
  485. data/test/models/mentor.rb +3 -0
  486. data/test/models/minimalistic.rb +2 -2
  487. data/test/models/minivan.rb +9 -9
  488. data/test/models/mixed_case_monkey.rb +3 -3
  489. data/test/models/mocktail_designer.rb +2 -0
  490. data/test/models/molecule.rb +6 -6
  491. data/test/models/movie.rb +5 -5
  492. data/test/models/node.rb +5 -0
  493. data/test/models/non_primary_key.rb +2 -0
  494. data/test/models/notification.rb +3 -0
  495. data/test/models/order.rb +4 -4
  496. data/test/models/organization.rb +14 -14
  497. data/test/models/other_dog.rb +5 -0
  498. data/test/models/owner.rb +37 -34
  499. data/test/models/parrot.rb +28 -29
  500. data/test/models/person.rb +142 -143
  501. data/test/models/personal_legacy_thing.rb +4 -4
  502. data/test/models/pet.rb +18 -15
  503. data/test/models/pet_treasure.rb +6 -0
  504. data/test/models/pirate.rb +92 -92
  505. data/test/models/possession.rb +3 -3
  506. data/test/models/post.rb +273 -264
  507. data/test/models/price_estimate.rb +4 -4
  508. data/test/models/professor.rb +5 -5
  509. data/test/models/project.rb +40 -31
  510. data/test/models/publisher.rb +2 -2
  511. data/test/models/publisher/article.rb +4 -4
  512. data/test/models/publisher/magazine.rb +3 -3
  513. data/test/models/randomly_named_c1.rb +1 -1
  514. data/test/models/rating.rb +4 -4
  515. data/test/models/reader.rb +23 -23
  516. data/test/models/recipe.rb +3 -0
  517. data/test/models/record.rb +2 -2
  518. data/test/models/reference.rb +22 -22
  519. data/test/models/reply.rb +61 -61
  520. data/test/models/ship.rb +39 -33
  521. data/test/models/ship_part.rb +8 -8
  522. data/test/models/shop.rb +17 -17
  523. data/test/models/shop_account.rb +6 -6
  524. data/test/models/speedometer.rb +6 -6
  525. data/test/models/sponsor.rb +7 -7
  526. data/test/models/string_key_object.rb +3 -3
  527. data/test/models/student.rb +4 -4
  528. data/test/models/subject.rb +16 -16
  529. data/test/models/subscriber.rb +8 -8
  530. data/test/models/subscription.rb +4 -4
  531. data/test/models/tag.rb +13 -7
  532. data/test/models/tagging.rb +13 -13
  533. data/test/models/task.rb +5 -5
  534. data/test/models/topic.rb +118 -124
  535. data/test/models/toy.rb +6 -6
  536. data/test/models/traffic_light.rb +4 -4
  537. data/test/models/treasure.rb +14 -14
  538. data/test/models/treaty.rb +7 -7
  539. data/test/models/tree.rb +3 -0
  540. data/test/models/tuning_peg.rb +4 -0
  541. data/test/models/tyre.rb +11 -11
  542. data/test/models/user.rb +14 -0
  543. data/test/models/uuid_child.rb +3 -3
  544. data/test/models/uuid_item.rb +6 -0
  545. data/test/models/uuid_parent.rb +3 -3
  546. data/test/models/vegetables.rb +24 -24
  547. data/test/models/vehicle.rb +6 -6
  548. data/test/models/vertex.rb +9 -9
  549. data/test/models/warehouse_thing.rb +5 -5
  550. data/test/models/wheel.rb +3 -3
  551. data/test/models/without_table.rb +3 -3
  552. data/test/models/zine.rb +3 -3
  553. data/test/schema/mysql2_specific_schema.rb +68 -58
  554. data/test/schema/oracle_specific_schema.rb +40 -43
  555. data/test/schema/postgresql_specific_schema.rb +114 -202
  556. data/test/schema/schema.rb +1057 -952
  557. data/test/schema/schema.rb.original +1057 -0
  558. data/test/schema/sqlite_specific_schema.rb +18 -22
  559. data/test/support/config.rb +43 -43
  560. data/test/support/connection.rb +23 -22
  561. data/test/support/connection_helper.rb +14 -14
  562. data/test/support/ddl_helper.rb +8 -8
  563. data/test/support/schema_dumping_helper.rb +20 -20
  564. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
  565. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
  566. metadata +129 -28
  567. data/lib/mswin32/rb19x/ibm_db.so +0 -0
  568. data/lib/mswin32/rb21x/i386/ibm_db.so +0 -0
  569. data/lib/mswin32/rb22x/i386/ibm_db.so +0 -0
  570. data/lib/mswin32/rb23x/i386/ibm_db.so +0 -0
  571. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
  572. data/test/cases/attribute_methods/serialization_test.rb +0 -29
  573. data/test/cases/migration/change_schema_test - Copy.rb +0 -448
  574. data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
  575. data/test/cases/migration/table_and_index_test.rb +0 -24
  576. data/test/cases/relation/where_test2.rb +0 -36
  577. data/test/cases/type/decimal_test.rb +0 -56
  578. data/test/cases/type/unsigned_integer_test.rb +0 -18
  579. data/test/cases/xml_serialization_test.rb +0 -457
  580. data/test/connections/native_ibm_db/connection.rb +0 -44
  581. data/test/fixtures/naked/csv/accounts.csv +0 -1
  582. data/test/schema/i5/ibm_db_specific_schema.rb +0 -137
  583. data/test/schema/ids/ibm_db_specific_schema.rb +0 -140
  584. data/test/schema/luw/ibm_db_specific_schema.rb +0 -137
  585. data/test/schema/mysql_specific_schema.rb +0 -70
  586. data/test/schema/zOS/ibm_db_specific_schema.rb +0 -208
@@ -0,0 +1,1057 @@
1
+ ActiveRecord::Schema.define do
2
+ # ------------------------------------------------------------------- #
3
+ # #
4
+ # Please keep these create table statements in alphabetical order #
5
+ # unless the ordering matters. In which case, define them below. #
6
+ # #
7
+ # ------------------------------------------------------------------- #
8
+
9
+ create_table :accounts, force: true do |t|
10
+ t.integer :firm_id
11
+ t.string :firm_name
12
+ t.integer :credit_limit
13
+ end
14
+
15
+ create_table :admin_accounts, force: true do |t|
16
+ t.string :name
17
+ end
18
+
19
+ create_table :admin_users, force: true do |t|
20
+ t.string :name
21
+ t.string :settings, null: true, limit: 1024
22
+ # MySQL does not allow default values for blobs. Fake it out with a
23
+ # big varchar below.
24
+ t.string :preferences, null: true, default: '', limit: 1024
25
+ t.string :json_data, null: true, limit: 1024
26
+ t.string :json_data_empty, null: true, default: "", limit: 1024
27
+ t.text :params
28
+ t.references :account
29
+ end
30
+
31
+ create_table :aircraft, force: true do |t|
32
+ t.string :name
33
+ t.integer :wheels_count, default: 0, null: false
34
+ end
35
+
36
+ create_table :articles, force: true do |t|
37
+ end
38
+
39
+ create_table :articles_magazines, force: true do |t|
40
+ t.references :article
41
+ t.references :magazine
42
+ end
43
+
44
+ create_table :articles_tags, force: true do |t|
45
+ t.references :article
46
+ t.references :tag
47
+ end
48
+
49
+ create_table :audit_logs, force: true do |t|
50
+ t.column :message, :string, null: false
51
+ t.column :developer_id, :integer, null: false
52
+ t.integer :unvalidated_developer_id
53
+ end
54
+
55
+ create_table :authors, force: true do |t|
56
+ t.string :name, null: false
57
+ t.integer :author_address_id
58
+ t.integer :author_address_extra_id
59
+ t.string :organization_id
60
+ t.string :owned_essay_id
61
+ end
62
+
63
+ create_table :author_addresses, force: true do |t|
64
+ end
65
+
66
+ add_foreign_key :authors, :author_addresses
67
+
68
+ create_table :author_favorites, force: true do |t|
69
+ t.column :author_id, :integer
70
+ t.column :favorite_author_id, :integer
71
+ end
72
+
73
+ create_table :auto_id_tests, force: true, id: false do |t|
74
+ t.primary_key :auto_id
75
+ t.integer :value
76
+ end
77
+
78
+ create_table :binaries, force: true do |t|
79
+ t.string :name
80
+ t.binary :data
81
+ t.binary :short_data, limit: 2048
82
+ end
83
+
84
+ create_table :birds, force: true do |t|
85
+ t.string :name
86
+ t.string :color
87
+ t.integer :pirate_id
88
+ end
89
+
90
+ create_table :books, force: true do |t|
91
+ t.integer :author_id
92
+ t.string :format
93
+ t.column :name, :string
94
+ t.column :status, :integer, default: 0
95
+ t.column :read_status, :integer, default: 0
96
+ t.column :nullable_status, :integer
97
+ t.column :language, :integer, default: 0
98
+ t.column :author_visibility, :integer, default: 0
99
+ t.column :illustrator_visibility, :integer, default: 0
100
+ t.column :font_size, :integer, default: 0
101
+ t.column :cover, :string, default: 'hard'
102
+ end
103
+
104
+ create_table :booleans, force: true do |t|
105
+ t.boolean :value
106
+ t.boolean :has_fun, null: false, default: false
107
+ end
108
+
109
+ create_table :bulbs, force: true do |t|
110
+ t.integer :car_id
111
+ t.string :name
112
+ t.boolean :frickinawesome, default: false
113
+ t.string :color
114
+ end
115
+
116
+ create_table "CamelCase", force: true do |t|
117
+ t.string :name
118
+ end
119
+
120
+ create_table :cars, force: true do |t|
121
+ t.string :name
122
+ t.integer :engines_count
123
+ t.integer :wheels_count
124
+ t.column :lock_version, :integer, null: false, default: 0
125
+ t.timestamps null: false
126
+ end
127
+
128
+ create_table :carriers, force: true
129
+
130
+ create_table :categories, force: true do |t|
131
+ t.string :name, null: false
132
+ t.string :type
133
+ t.integer :categorizations_count
134
+ end
135
+
136
+ create_table :categories_posts, force: true, id: false do |t|
137
+ t.integer :category_id, null: false
138
+ t.integer :post_id, null: false
139
+ end
140
+
141
+ create_table :categorizations, force: true do |t|
142
+ t.column :category_id, :integer
143
+ t.string :named_category_name
144
+ t.column :post_id, :integer
145
+ t.column :author_id, :integer
146
+ t.column :special, :boolean
147
+ end
148
+
149
+ create_table :citations, force: true do |t|
150
+ t.column :book1_id, :integer
151
+ t.column :book2_id, :integer
152
+ end
153
+
154
+ create_table :clubs, force: true do |t|
155
+ t.string :name
156
+ t.integer :category_id
157
+ end
158
+
159
+ create_table :collections, force: true do |t|
160
+ t.string :name
161
+ end
162
+
163
+ create_table :colnametests, force: true do |t|
164
+ t.integer :references, null: false
165
+ end
166
+
167
+ create_table :columns, force: true do |t|
168
+ t.references :record
169
+ end
170
+
171
+ create_table :comments, force: true do |t|
172
+ t.integer :post_id, null: false
173
+ # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
174
+ # Oracle SELECT WHERE clause which causes many unit test failures
175
+ if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
176
+ t.string :body, null: false, limit: 4000
177
+ else
178
+ t.text :body, null: false
179
+ end
180
+ t.string :type
181
+ t.integer :tags_count, default: 0
182
+ t.integer :children_count, default: 0
183
+ t.integer :parent_id
184
+ t.references :author, polymorphic: true
185
+ t.string :resource_id
186
+ t.string :resource_type
187
+ t.integer :developer_id
188
+ t.datetime :deleted_at
189
+ end
190
+
191
+ create_table :companies, force: true do |t|
192
+ t.string :type
193
+ t.integer :firm_id
194
+ t.string :firm_name
195
+ t.string :name
196
+ t.integer :client_of
197
+ t.integer :rating, default: 1
198
+ t.integer :account_id
199
+ t.string :description, default: ""
200
+ t.index [:firm_id, :type, :rating], name: "company_index", length: { type: 10 }, order: { rating: :desc }
201
+ t.index [:firm_id, :type], name: "company_partial_index", where: "rating > 10"
202
+ t.index :name, name: 'company_name_index', using: :btree
203
+ t.index 'lower(name)', name: "company_expression_index" if supports_expression_index?
204
+ end
205
+
206
+ create_table :content, force: true do |t|
207
+ t.string :title
208
+ end
209
+
210
+ create_table :content_positions, force: true do |t|
211
+ t.integer :content_id
212
+ end
213
+
214
+ create_table :vegetables, force: true do |t|
215
+ t.string :name
216
+ t.integer :seller_id
217
+ t.string :custom_type
218
+ end
219
+
220
+ create_table :computers, force: true do |t|
221
+ t.string :system
222
+ t.integer :developer, null: false
223
+ t.integer :extendedWarranty, null: false
224
+ end
225
+
226
+ create_table :computers_developers, id: false, force: true do |t|
227
+ t.references :computer
228
+ t.references :developer
229
+ end
230
+
231
+ create_table :contracts, force: true do |t|
232
+ t.integer :developer_id
233
+ t.integer :company_id
234
+ end
235
+
236
+ create_table :customers, force: true do |t|
237
+ t.string :name
238
+ t.integer :balance, default: 0
239
+ t.string :address_street
240
+ t.string :address_city
241
+ t.string :address_country
242
+ t.string :gps_location
243
+ end
244
+
245
+ create_table :customer_carriers, force: true do |t|
246
+ t.references :customer
247
+ t.references :carrier
248
+ end
249
+
250
+ create_table :dashboards, force: true, id: false do |t|
251
+ t.string :dashboard_id
252
+ t.string :name
253
+ end
254
+
255
+ create_table :developers, force: true do |t|
256
+ t.string :name
257
+ t.string :first_name
258
+ t.integer :salary, default: 70000
259
+ t.integer :firm_id
260
+ t.integer :mentor_id
261
+ if subsecond_precision_supported?
262
+ t.datetime :created_at, precision: 6
263
+ t.datetime :updated_at, precision: 6
264
+ t.datetime :created_on, precision: 6
265
+ t.datetime :updated_on, precision: 6
266
+ else
267
+ t.datetime :created_at
268
+ t.datetime :updated_at
269
+ t.datetime :created_on
270
+ t.datetime :updated_on
271
+ end
272
+ end
273
+
274
+ create_table :developers_projects, force: true, id: false do |t|
275
+ t.integer :developer_id, null: false
276
+ t.integer :project_id, null: false
277
+ t.date :joined_on
278
+ t.integer :access_level, default: 1
279
+ end
280
+
281
+ create_table :dog_lovers, force: true do |t|
282
+ t.integer :trained_dogs_count, default: 0
283
+ t.integer :bred_dogs_count, default: 0
284
+ t.integer :dogs_count, default: 0
285
+ end
286
+
287
+ create_table :dogs, force: true do |t|
288
+ t.integer :trainer_id
289
+ t.integer :breeder_id
290
+ t.integer :dog_lover_id
291
+ t.string :alias
292
+ end
293
+
294
+ create_table :doubloons, force: true do |t|
295
+ t.integer :pirate_id
296
+ t.integer :weight
297
+ end
298
+
299
+ create_table :edges, force: true, id: false do |t|
300
+ t.column :source_id, :integer, null: false
301
+ t.column :sink_id, :integer, null: false
302
+ t.index [:source_id, :sink_id], unique: true, name: 'unique_edge_index'
303
+ end
304
+
305
+ create_table :engines, force: true do |t|
306
+ t.integer :car_id
307
+ end
308
+
309
+ create_table :entrants, force: true do |t|
310
+ t.string :name, null: false
311
+ t.integer :course_id, null: false
312
+ end
313
+
314
+ create_table :essays, force: true do |t|
315
+ t.string :name
316
+ t.string :writer_id
317
+ t.string :writer_type
318
+ t.string :category_id
319
+ t.string :author_id
320
+ end
321
+
322
+ create_table :events, force: true do |t|
323
+ t.string :title, limit: 5
324
+ end
325
+
326
+ create_table :eyes, force: true do |t|
327
+ end
328
+
329
+ create_table :funny_jokes, force: true do |t|
330
+ t.string :name
331
+ end
332
+
333
+ create_table :cold_jokes, force: true do |t|
334
+ t.string :cold_name
335
+ end
336
+
337
+ create_table :friendships, force: true do |t|
338
+ t.integer :friend_id
339
+ t.integer :follower_id
340
+ end
341
+
342
+ create_table :goofy_string_id, force: true, id: false do |t|
343
+ t.string :id, null: false
344
+ t.string :info
345
+ end
346
+
347
+ create_table :having, force: true do |t|
348
+ t.string :where
349
+ end
350
+
351
+ create_table :guids, force: true do |t|
352
+ t.column :key, :string
353
+ end
354
+
355
+ create_table :guitars, force: true do |t|
356
+ t.string :color
357
+ end
358
+
359
+ create_table :inept_wizards, force: true do |t|
360
+ t.column :name, :string, null: false
361
+ t.column :city, :string, null: false
362
+ t.column :type, :string
363
+ end
364
+
365
+ create_table :integer_limits, force: true do |t|
366
+ t.integer :"c_int_without_limit"
367
+ (1..8).each do |i|
368
+ t.integer :"c_int_#{i}", limit: i
369
+ end
370
+ end
371
+
372
+ create_table :invoices, force: true do |t|
373
+ t.integer :balance
374
+ if subsecond_precision_supported?
375
+ t.datetime :updated_at, precision: 6
376
+ else
377
+ t.datetime :updated_at
378
+ end
379
+ end
380
+
381
+ create_table :iris, force: true do |t|
382
+ t.references :eye
383
+ t.string :color
384
+ end
385
+
386
+ create_table :items, force: true do |t|
387
+ t.column :name, :string
388
+ end
389
+
390
+ create_table :jobs, force: true do |t|
391
+ t.integer :ideal_reference_id
392
+ end
393
+
394
+ create_table :jobs_pool, force: true, id: false do |t|
395
+ t.references :job, null: false, index: true
396
+ t.references :user, null: false, index: true
397
+ end
398
+
399
+ create_table :keyboards, force: true, id: false do |t|
400
+ t.primary_key :key_number
401
+ t.string :name
402
+ end
403
+
404
+ create_table :legacy_things, force: true do |t|
405
+ t.integer :tps_report_number
406
+ t.integer :version, null: false, default: 0
407
+ end
408
+
409
+ create_table :lessons, force: true do |t|
410
+ t.string :name
411
+ end
412
+
413
+ create_table :lessons_students, id: false, force: true do |t|
414
+ t.references :lesson
415
+ t.references :student
416
+ end
417
+
418
+ create_table :students, force: true do |t|
419
+ t.string :name
420
+ t.boolean :active
421
+ t.integer :college_id
422
+ end
423
+
424
+ add_foreign_key :lessons_students, :students, on_delete: :cascade
425
+
426
+ create_table :lint_models, force: true
427
+
428
+ create_table :line_items, force: true do |t|
429
+ t.integer :invoice_id
430
+ t.integer :amount
431
+ end
432
+
433
+ create_table :lions, force: true do |t|
434
+ t.integer :gender
435
+ t.boolean :is_vegetarian, default: false
436
+ end
437
+
438
+ create_table :lock_without_defaults, force: true do |t|
439
+ t.column :lock_version, :integer
440
+ end
441
+
442
+ create_table :lock_without_defaults_cust, force: true do |t|
443
+ t.column :custom_lock_version, :integer
444
+ end
445
+
446
+ create_table :magazines, force: true do |t|
447
+ end
448
+
449
+ create_table :mateys, id: false, force: true do |t|
450
+ t.column :pirate_id, :integer
451
+ t.column :target_id, :integer
452
+ t.column :weight, :integer
453
+ end
454
+
455
+ create_table :members, force: true do |t|
456
+ t.string :name
457
+ t.integer :member_type_id
458
+ end
459
+
460
+ create_table :member_details, force: true do |t|
461
+ t.integer :member_id
462
+ t.integer :organization_id
463
+ t.string :extra_data
464
+ end
465
+
466
+ create_table :member_friends, force: true, id: false do |t|
467
+ t.integer :member_id
468
+ t.integer :friend_id
469
+ end
470
+
471
+ create_table :memberships, force: true do |t|
472
+ t.datetime :joined_on
473
+ t.integer :club_id, :member_id
474
+ t.boolean :favourite, default: false
475
+ t.string :type
476
+ end
477
+
478
+ create_table :member_types, force: true do |t|
479
+ t.string :name
480
+ end
481
+
482
+ create_table :mentors, force: true do |t|
483
+ t.string :name
484
+ end
485
+
486
+ create_table :minivans, force: true, id: false do |t|
487
+ t.string :minivan_id
488
+ t.string :name
489
+ t.string :speedometer_id
490
+ t.string :color
491
+ end
492
+
493
+ create_table :minimalistics, force: true do |t|
494
+ end
495
+
496
+ create_table :mixed_case_monkeys, force: true, id: false do |t|
497
+ t.primary_key :monkeyID
498
+ t.integer :fleaCount
499
+ end
500
+
501
+ create_table :mixins, force: true do |t|
502
+ t.integer :parent_id
503
+ t.integer :pos
504
+ t.datetime :created_at
505
+ t.datetime :updated_at
506
+ t.integer :lft
507
+ t.integer :rgt
508
+ t.integer :root_id
509
+ t.string :type
510
+ end
511
+
512
+ create_table :movies, force: true, id: false do |t|
513
+ t.primary_key :movieid
514
+ t.string :name
515
+ end
516
+
517
+ create_table :notifications, force: true do |t|
518
+ t.string :message
519
+ end
520
+
521
+ create_table :numeric_data, force: true do |t|
522
+ t.decimal :bank_balance, precision: 10, scale: 2
523
+ t.decimal :big_bank_balance, precision: 15, scale: 2
524
+ t.decimal :world_population, precision: 10, scale: 0
525
+ t.decimal :my_house_population, precision: 2, scale: 0
526
+ t.decimal :decimal_number_with_default, precision: 3, scale: 2, default: 2.78
527
+ t.float :temperature
528
+ # Oracle/SQLServer supports precision up to 38
529
+ if current_adapter?(:OracleAdapter, :SQLServerAdapter)
530
+ t.decimal :atoms_in_universe, precision: 38, scale: 0
531
+ elsif current_adapter?(:IBM_DBAdapter)
532
+ t.decimal :atoms_in_universe, precision: 31, scale: 0
533
+ elsif current_adapter?(:FbAdapter)
534
+ t.decimal :atoms_in_universe, precision: 18, scale: 0
535
+ else
536
+ t.decimal :atoms_in_universe, precision: 55, scale: 0
537
+ end
538
+ end
539
+
540
+ create_table :orders, force: true do |t|
541
+ t.string :name
542
+ t.integer :billing_customer_id
543
+ t.integer :shipping_customer_id
544
+ end
545
+
546
+ create_table :organizations, force: true do |t|
547
+ t.string :name
548
+ end
549
+
550
+ create_table :owners, primary_key: :owner_id, force: true do |t|
551
+ t.string :name
552
+ if subsecond_precision_supported?
553
+ t.column :updated_at, :datetime, precision: 6
554
+ else
555
+ t.column :updated_at, :datetime
556
+ end
557
+ t.column :happy_at, :datetime
558
+ t.string :essay_id
559
+ end
560
+
561
+ create_table :paint_colors, force: true do |t|
562
+ t.integer :non_poly_one_id
563
+ end
564
+
565
+ create_table :paint_textures, force: true do |t|
566
+ t.integer :non_poly_two_id
567
+ end
568
+
569
+ create_table :parrots, force: true do |t|
570
+ t.column :name, :string
571
+ t.column :color, :string
572
+ t.column :parrot_sti_class, :string
573
+ t.column :killer_id, :integer
574
+ t.column :updated_count, :integer, default: 0
575
+ if subsecond_precision_supported?
576
+ t.column :created_at, :datetime, precision: 0
577
+ t.column :created_on, :datetime, precision: 0
578
+ t.column :updated_at, :datetime, precision: 0
579
+ t.column :updated_on, :datetime, precision: 0
580
+ else
581
+ t.column :created_at, :datetime
582
+ t.column :created_on, :datetime
583
+ t.column :updated_at, :datetime
584
+ t.column :updated_on, :datetime
585
+ end
586
+ end
587
+
588
+ create_table :parrots_pirates, id: false, force: true do |t|
589
+ t.column :parrot_id, :integer
590
+ t.column :pirate_id, :integer
591
+ end
592
+
593
+ create_table :parrots_treasures, id: false, force: true do |t|
594
+ t.column :parrot_id, :integer
595
+ t.column :treasure_id, :integer
596
+ end
597
+
598
+ create_table :people, force: true do |t|
599
+ t.string :first_name, null: false
600
+ t.references :primary_contact
601
+ t.string :gender, limit: 1
602
+ t.references :number1_fan
603
+ t.integer :lock_version, null: false, default: 0
604
+ t.string :comments
605
+ t.integer :followers_count, default: 0
606
+ t.integer :friends_too_count, default: 0
607
+ t.references :best_friend
608
+ t.references :best_friend_of
609
+ t.integer :insures, null: false, default: 0
610
+ t.timestamp :born_at
611
+ t.timestamps null: false
612
+ end
613
+
614
+ create_table :peoples_treasures, id: false, force: true do |t|
615
+ t.column :rich_person_id, :integer
616
+ t.column :treasure_id, :integer
617
+ end
618
+
619
+ create_table :personal_legacy_things, force: true do |t|
620
+ t.integer :tps_report_number
621
+ t.integer :person_id
622
+ t.integer :version, null: false, default: 0
623
+ end
624
+
625
+ create_table :pets, primary_key: :pet_id, force: true do |t|
626
+ t.string :name
627
+ t.integer :owner_id, :integer
628
+ if subsecond_precision_supported?
629
+ t.timestamps null: false, precision: 6
630
+ else
631
+ t.timestamps null: false
632
+ end
633
+ end
634
+
635
+ create_table :pets_treasures, force: true do |t|
636
+ t.column :treasure_id, :integer
637
+ t.column :pet_id, :integer
638
+ t.column :rainbow_color, :string
639
+ end
640
+
641
+ create_table :pirates, force: true do |t|
642
+ t.column :catchphrase, :string
643
+ t.column :parrot_id, :integer
644
+ t.integer :non_validated_parrot_id
645
+ if subsecond_precision_supported?
646
+ t.column :created_on, :datetime, precision: 6
647
+ t.column :updated_on, :datetime, precision: 6
648
+ else
649
+ t.column :created_on, :datetime
650
+ t.column :updated_on, :datetime
651
+ end
652
+ end
653
+
654
+ create_table :posts, force: true do |t|
655
+ t.integer :author_id
656
+ t.string :title, null: false
657
+ # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
658
+ # Oracle SELECT WHERE clause which causes many unit test failures
659
+ if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
660
+ t.string :body, null: false, limit: 4000
661
+ else
662
+ t.text :body, null: false
663
+ end
664
+ t.string :type
665
+ t.integer :comments_count, default: 0
666
+ t.integer :taggings_with_delete_all_count, default: 0
667
+ t.integer :taggings_with_destroy_count, default: 0
668
+ t.integer :tags_count, default: 0
669
+ t.integer :tags_with_destroy_count, default: 0
670
+ t.integer :tags_with_nullify_count, default: 0
671
+ end
672
+
673
+ create_table :serialized_posts, force: true do |t|
674
+ t.integer :author_id
675
+ t.string :title, null: false
676
+ end
677
+
678
+ create_table :images, force: true do |t|
679
+ t.integer :imageable_identifier
680
+ t.string :imageable_class
681
+ end
682
+
683
+ create_table :price_estimates, force: true do |t|
684
+ t.string :estimate_of_type
685
+ t.integer :estimate_of_id
686
+ t.integer :price
687
+ end
688
+
689
+ create_table :products, force: true do |t|
690
+ t.references :collection
691
+ t.references :type
692
+ t.string :name
693
+ end
694
+
695
+ create_table :product_types, force: true do |t|
696
+ t.string :name
697
+ end
698
+
699
+ create_table :projects, force: true do |t|
700
+ t.string :name
701
+ t.string :type
702
+ t.integer :firm_id
703
+ t.integer :mentor_id
704
+ end
705
+
706
+ create_table :randomly_named_table1, force: true do |t|
707
+ t.string :some_attribute
708
+ t.integer :another_attribute
709
+ end
710
+
711
+ create_table :randomly_named_table2, force: true do |t|
712
+ t.string :some_attribute
713
+ t.integer :another_attribute
714
+ end
715
+
716
+ create_table :randomly_named_table3, force: true do |t|
717
+ t.string :some_attribute
718
+ t.integer :another_attribute
719
+ end
720
+
721
+ create_table :ratings, force: true do |t|
722
+ t.integer :comment_id
723
+ t.integer :value
724
+ end
725
+
726
+ create_table :readers, force: true do |t|
727
+ t.integer :post_id, null: false
728
+ t.integer :person_id, null: false
729
+ t.boolean :skimmer, default: false
730
+ t.integer :first_post_id
731
+ end
732
+
733
+ create_table :references, force: true do |t|
734
+ t.integer :person_id
735
+ t.integer :job_id
736
+ t.boolean :favourite
737
+ t.integer :lock_version, default: 0
738
+ end
739
+
740
+ create_table :shape_expressions, force: true do |t|
741
+ t.string :paint_type
742
+ t.integer :paint_id
743
+ t.string :shape_type
744
+ t.integer :shape_id
745
+ end
746
+
747
+ create_table :ships, force: true do |t|
748
+ t.string :name
749
+ t.integer :pirate_id
750
+ t.belongs_to :developer
751
+ t.integer :update_only_pirate_id
752
+ # Conventionally named column for counter_cache
753
+ t.integer :treasures_count, default: 0
754
+ t.datetime :created_at
755
+ t.datetime :created_on
756
+ t.datetime :updated_at
757
+ t.datetime :updated_on
758
+ end
759
+
760
+ create_table :ship_parts, force: true do |t|
761
+ t.string :name
762
+ t.integer :ship_id
763
+ if subsecond_precision_supported?
764
+ t.datetime :updated_at, precision: 6
765
+ else
766
+ t.datetime :updated_at
767
+ end
768
+ end
769
+
770
+ create_table :prisoners, force: true do |t|
771
+ t.belongs_to :ship
772
+ end
773
+
774
+ create_table :shop_accounts, force: true do |t|
775
+ t.references :customer
776
+ t.references :customer_carrier
777
+ end
778
+
779
+ create_table :speedometers, force: true, id: false do |t|
780
+ t.string :speedometer_id
781
+ t.string :name
782
+ t.string :dashboard_id
783
+ end
784
+
785
+ create_table :sponsors, force: true do |t|
786
+ t.integer :club_id
787
+ t.integer :sponsorable_id
788
+ t.string :sponsorable_type
789
+ end
790
+
791
+ create_table :string_key_objects, id: false, primary_key: :id, force: true do |t|
792
+ t.string :id
793
+ t.string :name
794
+ t.integer :lock_version, null: false, default: 0
795
+ end
796
+
797
+ create_table :subscribers, force: true, id: false do |t|
798
+ t.string :nick, null: false
799
+ t.string :name
800
+ t.column :books_count, :integer, null: false, default: 0
801
+ t.index :nick, unique: true
802
+ end
803
+
804
+ create_table :subscriptions, force: true do |t|
805
+ t.string :subscriber_id
806
+ t.integer :book_id
807
+ end
808
+
809
+ create_table :tags, force: true do |t|
810
+ t.column :name, :string
811
+ t.column :taggings_count, :integer, default: 0
812
+ end
813
+
814
+ create_table :taggings, force: true do |t|
815
+ t.column :tag_id, :integer
816
+ t.column :super_tag_id, :integer
817
+ t.column :taggable_type, :string
818
+ t.column :taggable_id, :integer
819
+ t.string :comment
820
+ end
821
+
822
+ create_table :tasks, force: true do |t|
823
+ t.datetime :starting
824
+ t.datetime :ending
825
+ end
826
+
827
+ create_table :topics, force: true do |t|
828
+ t.string :title, limit: 250
829
+ t.string :author_name
830
+ t.string :author_email_address
831
+ if subsecond_precision_supported?
832
+ t.datetime :written_on, precision: 6
833
+ else
834
+ t.datetime :written_on
835
+ end
836
+ t.time :bonus_time
837
+ t.date :last_read
838
+ # use VARCHAR2(4000) instead of CLOB datatype as CLOB data type has many limitations in
839
+ # Oracle SELECT WHERE clause which causes many unit test failures
840
+ if current_adapter?(:OracleAdapter) || current_adapter?(:IBM_DBAdapter)
841
+ t.string :content, limit: 4000
842
+ t.string :important, limit: 4000
843
+ else
844
+ t.text :content
845
+ t.text :important
846
+ end
847
+ t.boolean :approved, default: true
848
+ t.integer :replies_count, default: 0
849
+ t.integer :unique_replies_count, default: 0
850
+ t.integer :parent_id
851
+ t.string :parent_title
852
+ t.string :type
853
+ t.string :group
854
+ if subsecond_precision_supported?
855
+ t.timestamps null: true, precision: 6
856
+ else
857
+ t.timestamps null: true
858
+ end
859
+ end
860
+
861
+ create_table :toys, primary_key: :toy_id, force: true do |t|
862
+ t.string :name
863
+ t.integer :pet_id, :integer
864
+ t.timestamps null: false
865
+ end
866
+
867
+ create_table :traffic_lights, force: true do |t|
868
+ t.string :location
869
+ t.string :state
870
+ t.text :long_state, null: false
871
+ t.datetime :created_at
872
+ t.datetime :updated_at
873
+ end
874
+
875
+ create_table :treasures, force: true do |t|
876
+ t.column :name, :string
877
+ t.column :type, :string
878
+ t.column :looter_id, :integer
879
+ t.column :looter_type, :string
880
+ t.belongs_to :ship
881
+ end
882
+
883
+ create_table :tuning_pegs, force: true do |t|
884
+ t.integer :guitar_id
885
+ t.float :pitch
886
+ end
887
+
888
+ create_table :tyres, force: true do |t|
889
+ t.integer :car_id
890
+ end
891
+
892
+ create_table :variants, force: true do |t|
893
+ t.references :product
894
+ t.string :name
895
+ end
896
+
897
+ create_table :vertices, force: true do |t|
898
+ t.column :label, :string
899
+ end
900
+
901
+ create_table 'warehouse_things', force: true do |t|
902
+ t.integer :value
903
+ end
904
+
905
+ [:circles, :squares, :triangles, :non_poly_ones, :non_poly_twos].each do |t|
906
+ create_table(t, force: true) { }
907
+ end
908
+
909
+ # NOTE - the following 4 tables are used by models that have :inverse_of options on the associations
910
+ create_table :men, force: true do |t|
911
+ t.string :name
912
+ end
913
+
914
+ create_table :faces, force: true do |t|
915
+ t.string :description
916
+ t.integer :man_id
917
+ t.integer :polymorphic_man_id
918
+ t.string :polymorphic_man_type
919
+ t.integer :poly_man_without_inverse_id
920
+ t.string :poly_man_without_inverse_type
921
+ t.integer :horrible_polymorphic_man_id
922
+ t.string :horrible_polymorphic_man_type
923
+ end
924
+
925
+ create_table :interests, force: true do |t|
926
+ t.string :topic
927
+ t.integer :man_id
928
+ t.integer :polymorphic_man_id
929
+ t.string :polymorphic_man_type
930
+ t.integer :zine_id
931
+ end
932
+
933
+ create_table :wheels, force: true do |t|
934
+ t.references :wheelable, polymorphic: true
935
+ end
936
+
937
+ create_table :zines, force: true do |t|
938
+ t.string :title
939
+ end
940
+
941
+ create_table :countries, force: true, id: false, primary_key: 'country_id' do |t|
942
+ t.string :country_id
943
+ t.string :name
944
+ end
945
+ create_table :treaties, force: true, id: false, primary_key: 'treaty_id' do |t|
946
+ t.string :treaty_id
947
+ t.string :name
948
+ end
949
+ create_table :countries_treaties, force: true, primary_key: [:country_id, :treaty_id] do |t|
950
+ t.string :country_id, null: false
951
+ t.string :treaty_id, null: false
952
+ end
953
+
954
+ create_table :liquid, force: true do |t|
955
+ t.string :name
956
+ end
957
+ create_table :molecules, force: true do |t|
958
+ t.integer :liquid_id
959
+ t.string :name
960
+ end
961
+ create_table :electrons, force: true do |t|
962
+ t.integer :molecule_id
963
+ t.string :name
964
+ end
965
+ create_table :weirds, force: true do |t|
966
+ t.string 'a$b'
967
+ t.string 'なまえ'
968
+ t.string 'from'
969
+ end
970
+
971
+ create_table :nodes, force: true do |t|
972
+ t.integer :tree_id
973
+ t.integer :parent_id
974
+ t.string :name
975
+ t.datetime :updated_at
976
+ end
977
+ create_table :trees, force: true do |t|
978
+ t.string :name
979
+ t.datetime :updated_at
980
+ end
981
+
982
+ create_table :hotels, force: true do |t|
983
+ end
984
+ create_table :departments, force: true do |t|
985
+ t.integer :hotel_id
986
+ end
987
+ create_table :cake_designers, force: true do |t|
988
+ end
989
+ create_table :drink_designers, force: true do |t|
990
+ end
991
+ create_table :chefs, force: true do |t|
992
+ t.integer :employable_id
993
+ t.string :employable_type
994
+ t.integer :department_id
995
+ t.string :employable_list_type
996
+ t.integer :employable_list_id
997
+ end
998
+ create_table :recipes, force: true do |t|
999
+ t.integer :chef_id
1000
+ t.integer :hotel_id
1001
+ end
1002
+
1003
+ create_table :records, force: true do |t|
1004
+ end
1005
+
1006
+ if supports_foreign_keys?
1007
+ # fk_test_has_fk should be before fk_test_has_pk
1008
+ create_table :fk_test_has_fk, force: true do |t|
1009
+ t.integer :fk_id, null: false
1010
+ end
1011
+
1012
+ create_table :fk_test_has_pk, force: true, primary_key: "pk_id" do |t|
1013
+ end
1014
+
1015
+ add_foreign_key :fk_test_has_fk, :fk_test_has_pk, column: "fk_id", name: "fk_name", primary_key: "pk_id"
1016
+ end
1017
+
1018
+ create_table :overloaded_types, force: true do |t|
1019
+ t.float :overloaded_float, default: 500
1020
+ t.float :unoverloaded_float
1021
+ t.string :overloaded_string_with_limit, limit: 255
1022
+ t.string :string_with_default, default: 'the original default'
1023
+ end
1024
+
1025
+ create_table :users, force: true do |t|
1026
+ t.string :token
1027
+ t.string :auth_token
1028
+ end
1029
+
1030
+ create_table :test_with_keyword_column_name, force: true do |t|
1031
+ t.string :desc
1032
+ end
1033
+
1034
+ create_table :non_primary_keys, force: true, id: false do |t|
1035
+ t.integer :id
1036
+ end
1037
+ end
1038
+
1039
+ Course.connection.create_table :courses, force: true do |t|
1040
+ t.column :name, :string, null: false
1041
+ t.column :college_id, :integer
1042
+ end
1043
+
1044
+ College.connection.create_table :colleges, force: true do |t|
1045
+ t.column :name, :string, null: false
1046
+ end
1047
+
1048
+ Professor.connection.create_table :professors, force: true do |t|
1049
+ t.column :name, :string, null: false
1050
+ end
1051
+
1052
+ Professor.connection.create_table :courses_professors, id: false, force: true do |t|
1053
+ t.references :course
1054
+ t.references :professor
1055
+ end
1056
+
1057
+ OtherDog.connection.create_table :dogs, force: true