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,101 +1,101 @@
1
- require 'cases/helper'
2
-
3
- module ActiveRecord
4
- class Migration
5
- class ReferencesIndexTest < ActiveRecord::TestCase
6
- attr_reader :connection, :table_name
7
-
8
- def setup
9
- super
10
- @connection = ActiveRecord::Base.connection
11
- @table_name = :testings
12
- end
13
-
14
- teardown do
15
- connection.drop_table :testings rescue nil
16
- end
17
-
18
- def test_creates_index
19
- connection.create_table table_name do |t|
20
- t.references :foo, :index => true
21
- end
22
-
23
- assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
24
- end
25
-
26
- def test_does_not_create_index
27
- connection.create_table table_name do |t|
28
- t.references :foo
29
- end
30
-
31
- assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
32
- end
33
-
34
- def test_does_not_create_index_explicit
35
- connection.create_table table_name do |t|
36
- t.references :foo, :index => false
37
- end
38
-
39
- assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
40
- end
41
-
42
- def test_creates_index_with_options
43
- connection.create_table table_name do |t|
44
- t.references :foo, :index => {:name => :index_testings_on_yo_momma}
45
- t.references :bar, :index => {:unique => true}
46
- end
47
-
48
- assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_yo_momma)
49
- assert connection.index_exists?(table_name, :bar_id, :name => :index_testings_on_bar_id, :unique => true)
50
- end
51
-
52
- unless current_adapter? :OracleAdapter
53
- def test_creates_polymorphic_index
54
- connection.create_table table_name do |t|
55
- t.references :foo, :polymorphic => true, :index => true
56
- end
57
-
58
- assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
59
- end
60
- end
61
-
62
- def test_creates_index_for_existing_table
63
- connection.create_table table_name
64
- connection.change_table table_name do |t|
65
- t.references :foo, :index => true
66
- end
67
-
68
- assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
69
- end
70
-
71
- def test_does_not_create_index_for_existing_table
72
- connection.create_table table_name
73
- connection.change_table table_name do |t|
74
- t.references :foo
75
- end
76
-
77
- assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
78
- end
79
-
80
- def test_does_not_create_index_for_existing_table_explicit
81
- connection.create_table table_name
82
- connection.change_table table_name do |t|
83
- t.references :foo, :index => false
84
- end
85
-
86
- assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
87
- end
88
-
89
- unless current_adapter? :OracleAdapter
90
- def test_creates_polymorphic_index_for_existing_table
91
- connection.create_table table_name
92
- connection.change_table table_name do |t|
93
- t.references :foo, :polymorphic => true, :index => true
94
- end
95
-
96
- assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
97
- end
98
- end
99
- end
100
- end
101
- end
1
+ require 'cases/helper'
2
+
3
+ module ActiveRecord
4
+ class Migration
5
+ class ReferencesIndexTest < ActiveRecord::TestCase
6
+ attr_reader :connection, :table_name
7
+
8
+ def setup
9
+ super
10
+ @connection = ActiveRecord::Base.connection
11
+ @table_name = :testings
12
+ end
13
+
14
+ teardown do
15
+ connection.drop_table :testings rescue nil
16
+ end
17
+
18
+ def test_creates_index
19
+ connection.create_table table_name do |t|
20
+ t.references :foo, :index => true
21
+ end
22
+
23
+ assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
24
+ end
25
+
26
+ def test_does_not_create_index
27
+ connection.create_table table_name do |t|
28
+ t.references :foo
29
+ end
30
+
31
+ assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
32
+ end
33
+
34
+ def test_does_not_create_index_explicit
35
+ connection.create_table table_name do |t|
36
+ t.references :foo, :index => false
37
+ end
38
+
39
+ assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
40
+ end
41
+
42
+ def test_creates_index_with_options
43
+ connection.create_table table_name do |t|
44
+ t.references :foo, :index => {:name => :index_testings_on_yo_momma}
45
+ t.references :bar, :index => {:unique => true}
46
+ end
47
+
48
+ assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_yo_momma)
49
+ assert connection.index_exists?(table_name, :bar_id, :name => :index_testings_on_bar_id, :unique => true)
50
+ end
51
+
52
+ unless current_adapter? :OracleAdapter
53
+ def test_creates_polymorphic_index
54
+ connection.create_table table_name do |t|
55
+ t.references :foo, :polymorphic => true, :index => true
56
+ end
57
+
58
+ assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
59
+ end
60
+ end
61
+
62
+ def test_creates_index_for_existing_table
63
+ connection.create_table table_name
64
+ connection.change_table table_name do |t|
65
+ t.references :foo, :index => true
66
+ end
67
+
68
+ assert connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
69
+ end
70
+
71
+ def test_does_not_create_index_for_existing_table
72
+ connection.create_table table_name
73
+ connection.change_table table_name do |t|
74
+ t.references :foo
75
+ end
76
+
77
+ assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
78
+ end
79
+
80
+ def test_does_not_create_index_for_existing_table_explicit
81
+ connection.create_table table_name
82
+ connection.change_table table_name do |t|
83
+ t.references :foo, :index => false
84
+ end
85
+
86
+ assert_not connection.index_exists?(table_name, :foo_id, :name => :index_testings_on_foo_id)
87
+ end
88
+
89
+ unless current_adapter? :OracleAdapter
90
+ def test_creates_polymorphic_index_for_existing_table
91
+ connection.create_table table_name
92
+ connection.change_table table_name do |t|
93
+ t.references :foo, :polymorphic => true, :index => true
94
+ end
95
+
96
+ assert connection.index_exists?(table_name, [:foo_type, :foo_id], name: :index_testings_on_foo_type_and_foo_id)
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -1,116 +1,116 @@
1
- require "cases/migration/helper"
2
-
3
- module ActiveRecord
4
- class Migration
5
- class ReferencesStatementsTest < ActiveRecord::TestCase
6
- include ActiveRecord::Migration::TestHelper
7
-
8
- self.use_transactional_fixtures = false
9
-
10
- def setup
11
- super
12
- @table_name = :test_models
13
-
14
- add_column table_name, :supplier_id, :integer
15
- add_index table_name, :supplier_id
16
- end
17
-
18
- def test_creates_reference_id_column
19
- add_reference table_name, :user
20
- assert column_exists?(table_name, :user_id, :integer)
21
- end
22
-
23
- def test_does_not_create_reference_type_column
24
- add_reference table_name, :taggable
25
- assert_not column_exists?(table_name, :taggable_type, :string)
26
- end
27
-
28
- def test_creates_reference_type_column
29
- add_reference table_name, :taggable, polymorphic: true
30
- assert column_exists?(table_name, :taggable_type, :string)
31
- end
32
-
33
- def test_creates_reference_id_index
34
- add_reference table_name, :user, index: true
35
- assert index_exists?(table_name, :user_id)
36
- end
37
-
38
- def test_does_not_create_reference_id_index
39
- add_reference table_name, :user
40
- assert_not index_exists?(table_name, :user_id)
41
- end
42
-
43
- def test_creates_polymorphic_index
44
- add_reference table_name, :taggable, polymorphic: true, index: true
45
- assert index_exists?(table_name, [:taggable_type, :taggable_id])
46
- end
47
-
48
- def test_creates_reference_type_column_with_default
49
- add_reference table_name, :taggable, polymorphic: { default: 'Photo' }, index: true
50
- assert column_exists?(table_name, :taggable_type, :string, default: 'Photo')
51
- end
52
-
53
- def test_creates_named_index
54
- add_reference table_name, :tag, index: { name: 'index_taggings_on_tag_id' }
55
- assert index_exists?(table_name, :tag_id, name: 'index_taggings_on_tag_id')
56
- end
57
-
58
- def test_creates_reference_id_with_specified_type
59
- add_reference table_name, :user, type: :string
60
- assert column_exists?(table_name, :user_id, :string)
61
- end
62
-
63
- def test_deletes_reference_id_column
64
- remove_reference table_name, :supplier
65
- assert_not column_exists?(table_name, :supplier_id, :integer)
66
- end
67
-
68
- def test_deletes_reference_id_index
69
- remove_reference table_name, :supplier
70
- assert_not index_exists?(table_name, :supplier_id)
71
- end
72
-
73
- def test_does_not_delete_reference_type_column
74
- with_polymorphic_column do
75
- remove_reference table_name, :supplier
76
-
77
- assert_not column_exists?(table_name, :supplier_id, :integer)
78
- assert column_exists?(table_name, :supplier_type, :string)
79
- end
80
- end
81
-
82
- def test_deletes_reference_type_column
83
- with_polymorphic_column do
84
- remove_reference table_name, :supplier, polymorphic: true
85
- assert_not column_exists?(table_name, :supplier_type, :string)
86
- end
87
- end
88
-
89
- def test_deletes_polymorphic_index
90
- with_polymorphic_column do
91
- remove_reference table_name, :supplier, polymorphic: true
92
- assert_not index_exists?(table_name, [:supplier_id, :supplier_type])
93
- end
94
- end
95
-
96
- def test_add_belongs_to_alias
97
- add_belongs_to table_name, :user
98
- assert column_exists?(table_name, :user_id, :integer)
99
- end
100
-
101
- def test_remove_belongs_to_alias
102
- remove_belongs_to table_name, :supplier
103
- assert_not column_exists?(table_name, :supplier_id, :integer)
104
- end
105
-
106
- private
107
-
108
- def with_polymorphic_column
109
- add_column table_name, :supplier_type, :string
110
- add_index table_name, [:supplier_id, :supplier_type]
111
-
112
- yield
113
- end
114
- end
115
- end
116
- end
1
+ require "cases/migration/helper"
2
+
3
+ module ActiveRecord
4
+ class Migration
5
+ class ReferencesStatementsTest < ActiveRecord::TestCase
6
+ include ActiveRecord::Migration::TestHelper
7
+
8
+ self.use_transactional_fixtures = false
9
+
10
+ def setup
11
+ super
12
+ @table_name = :test_models
13
+
14
+ add_column table_name, :supplier_id, :integer
15
+ add_index table_name, :supplier_id
16
+ end
17
+
18
+ def test_creates_reference_id_column
19
+ add_reference table_name, :user
20
+ assert column_exists?(table_name, :user_id, :integer)
21
+ end
22
+
23
+ def test_does_not_create_reference_type_column
24
+ add_reference table_name, :taggable
25
+ assert_not column_exists?(table_name, :taggable_type, :string)
26
+ end
27
+
28
+ def test_creates_reference_type_column
29
+ add_reference table_name, :taggable, polymorphic: true
30
+ assert column_exists?(table_name, :taggable_type, :string)
31
+ end
32
+
33
+ def test_creates_reference_id_index
34
+ add_reference table_name, :user, index: true
35
+ assert index_exists?(table_name, :user_id)
36
+ end
37
+
38
+ def test_does_not_create_reference_id_index
39
+ add_reference table_name, :user
40
+ assert_not index_exists?(table_name, :user_id)
41
+ end
42
+
43
+ def test_creates_polymorphic_index
44
+ add_reference table_name, :taggable, polymorphic: true, index: true
45
+ assert index_exists?(table_name, [:taggable_type, :taggable_id])
46
+ end
47
+
48
+ def test_creates_reference_type_column_with_default
49
+ add_reference table_name, :taggable, polymorphic: { default: 'Photo' }, index: true
50
+ assert column_exists?(table_name, :taggable_type, :string, default: 'Photo')
51
+ end
52
+
53
+ def test_creates_named_index
54
+ add_reference table_name, :tag, index: { name: 'index_taggings_on_tag_id' }
55
+ assert index_exists?(table_name, :tag_id, name: 'index_taggings_on_tag_id')
56
+ end
57
+
58
+ def test_creates_reference_id_with_specified_type
59
+ add_reference table_name, :user, type: :string
60
+ assert column_exists?(table_name, :user_id, :string)
61
+ end
62
+
63
+ def test_deletes_reference_id_column
64
+ remove_reference table_name, :supplier
65
+ assert_not column_exists?(table_name, :supplier_id, :integer)
66
+ end
67
+
68
+ def test_deletes_reference_id_index
69
+ remove_reference table_name, :supplier
70
+ assert_not index_exists?(table_name, :supplier_id)
71
+ end
72
+
73
+ def test_does_not_delete_reference_type_column
74
+ with_polymorphic_column do
75
+ remove_reference table_name, :supplier
76
+
77
+ assert_not column_exists?(table_name, :supplier_id, :integer)
78
+ assert column_exists?(table_name, :supplier_type, :string)
79
+ end
80
+ end
81
+
82
+ def test_deletes_reference_type_column
83
+ with_polymorphic_column do
84
+ remove_reference table_name, :supplier, polymorphic: true
85
+ assert_not column_exists?(table_name, :supplier_type, :string)
86
+ end
87
+ end
88
+
89
+ def test_deletes_polymorphic_index
90
+ with_polymorphic_column do
91
+ remove_reference table_name, :supplier, polymorphic: true
92
+ assert_not index_exists?(table_name, [:supplier_id, :supplier_type])
93
+ end
94
+ end
95
+
96
+ def test_add_belongs_to_alias
97
+ add_belongs_to table_name, :user
98
+ assert column_exists?(table_name, :user_id, :integer)
99
+ end
100
+
101
+ def test_remove_belongs_to_alias
102
+ remove_belongs_to table_name, :supplier
103
+ assert_not column_exists?(table_name, :supplier_id, :integer)
104
+ end
105
+
106
+ private
107
+
108
+ def with_polymorphic_column
109
+ add_column table_name, :supplier_type, :string
110
+ add_index table_name, [:supplier_id, :supplier_type]
111
+
112
+ yield
113
+ end
114
+ end
115
+ end
116
+ end
@@ -1,93 +1,93 @@
1
- require "cases/migration/helper"
2
-
3
- module ActiveRecord
4
- class Migration
5
- class RenameTableTest < ActiveRecord::TestCase
6
- include ActiveRecord::Migration::TestHelper
7
-
8
- self.use_transactional_fixtures = false
9
-
10
- def setup
11
- super
12
- add_column 'test_models', :url, :string
13
- remove_column 'test_models', :created_at
14
- remove_column 'test_models', :updated_at
15
- end
16
-
17
- def teardown
18
- rename_table :octopi, :test_models if connection.table_exists? :octopi
19
- super
20
- end
21
-
22
- if current_adapter?(:SQLite3Adapter)
23
- def test_rename_table_for_sqlite_should_work_with_reserved_words
24
- renamed = false
25
-
26
- add_column :test_models, :url, :string
27
- connection.rename_table :references, :old_references
28
- connection.rename_table :test_models, :references
29
-
30
- renamed = true
31
-
32
- # Using explicit id in insert for compatibility across all databases
33
- connection.execute "INSERT INTO 'references' (url, created_at, updated_at) VALUES ('http://rubyonrails.com', 0, 0)"
34
- assert_equal 'http://rubyonrails.com', connection.select_value("SELECT url FROM 'references' WHERE id=1")
35
- ensure
36
- return unless renamed
37
- connection.rename_table :references, :test_models
38
- connection.rename_table :old_references, :references
39
- end
40
- end
41
-
42
- def test_rename_table
43
- rename_table :test_models, :octopi
44
-
45
- connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
46
-
47
- assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
48
- end
49
-
50
- def test_rename_table_with_an_index
51
- add_index :test_models, :url
52
-
53
- rename_table :test_models, :octopi
54
-
55
- connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
56
-
57
- assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
58
- index = connection.indexes(:octopi).first
59
- assert index.columns.include?("url")
60
- assert_equal 'index_octopi_on_url', index.name
61
- end
62
-
63
- def test_rename_table_does_not_rename_custom_named_index
64
- add_index :test_models, :url, name: 'special_url_idx'
65
-
66
- rename_table :test_models, :octopi
67
-
68
- assert_equal ['special_url_idx'], connection.indexes(:octopi).map(&:name)
69
- end
70
-
71
- if current_adapter?(:PostgreSQLAdapter)
72
- def test_rename_table_for_postgresql_should_also_rename_default_sequence
73
- rename_table :test_models, :octopi
74
-
75
- pk, seq = connection.pk_and_sequence_for('octopi')
76
-
77
- assert_equal ConnectionAdapters::PostgreSQL::Name.new("public", "octopi_#{pk}_seq"), seq
78
- end
79
-
80
- def test_renaming_table_doesnt_attempt_to_rename_non_existent_sequences
81
- enable_extension!('uuid-ossp', connection)
82
- connection.create_table :cats, id: :uuid
83
- assert_nothing_raised { rename_table :cats, :felines }
84
- assert connection.table_exists? :felines
85
- ensure
86
- disable_extension!('uuid-ossp', connection)
87
- connection.drop_table :cats if connection.table_exists? :cats
88
- connection.drop_table :felines if connection.table_exists? :felines
89
- end
90
- end
91
- end
92
- end
93
- end
1
+ require "cases/migration/helper"
2
+
3
+ module ActiveRecord
4
+ class Migration
5
+ class RenameTableTest < ActiveRecord::TestCase
6
+ include ActiveRecord::Migration::TestHelper
7
+
8
+ self.use_transactional_fixtures = false
9
+
10
+ def setup
11
+ super
12
+ add_column 'test_models', :url, :string
13
+ remove_column 'test_models', :created_at
14
+ remove_column 'test_models', :updated_at
15
+ end
16
+
17
+ def teardown
18
+ rename_table :octopi, :test_models if connection.table_exists? :octopi
19
+ super
20
+ end
21
+
22
+ if current_adapter?(:SQLite3Adapter)
23
+ def test_rename_table_for_sqlite_should_work_with_reserved_words
24
+ renamed = false
25
+
26
+ add_column :test_models, :url, :string
27
+ connection.rename_table :references, :old_references
28
+ connection.rename_table :test_models, :references
29
+
30
+ renamed = true
31
+
32
+ # Using explicit id in insert for compatibility across all databases
33
+ connection.execute "INSERT INTO 'references' (url, created_at, updated_at) VALUES ('http://rubyonrails.com', 0, 0)"
34
+ assert_equal 'http://rubyonrails.com', connection.select_value("SELECT url FROM 'references' WHERE id=1")
35
+ ensure
36
+ return unless renamed
37
+ connection.rename_table :references, :test_models
38
+ connection.rename_table :old_references, :references
39
+ end
40
+ end
41
+
42
+ def test_rename_table
43
+ rename_table :test_models, :octopi
44
+
45
+ connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
46
+
47
+ assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
48
+ end
49
+
50
+ def test_rename_table_with_an_index
51
+ add_index :test_models, :url
52
+
53
+ rename_table :test_models, :octopi
54
+
55
+ connection.execute "INSERT INTO octopi (#{connection.quote_column_name('id')}, #{connection.quote_column_name('url')}) VALUES (1, 'http://www.foreverflying.com/octopus-black7.jpg')"
56
+
57
+ assert_equal 'http://www.foreverflying.com/octopus-black7.jpg', connection.select_value("SELECT url FROM octopi WHERE id=1")
58
+ index = connection.indexes(:octopi).first
59
+ assert index.columns.include?("url")
60
+ assert_equal 'index_octopi_on_url', index.name
61
+ end
62
+
63
+ def test_rename_table_does_not_rename_custom_named_index
64
+ add_index :test_models, :url, name: 'special_url_idx'
65
+
66
+ rename_table :test_models, :octopi
67
+
68
+ assert_equal ['special_url_idx'], connection.indexes(:octopi).map(&:name)
69
+ end
70
+
71
+ if current_adapter?(:PostgreSQLAdapter)
72
+ def test_rename_table_for_postgresql_should_also_rename_default_sequence
73
+ rename_table :test_models, :octopi
74
+
75
+ pk, seq = connection.pk_and_sequence_for('octopi')
76
+
77
+ assert_equal ConnectionAdapters::PostgreSQL::Name.new("public", "octopi_#{pk}_seq"), seq
78
+ end
79
+
80
+ def test_renaming_table_doesnt_attempt_to_rename_non_existent_sequences
81
+ enable_extension!('uuid-ossp', connection)
82
+ connection.create_table :cats, id: :uuid
83
+ assert_nothing_raised { rename_table :cats, :felines }
84
+ assert connection.table_exists? :felines
85
+ ensure
86
+ disable_extension!('uuid-ossp', connection)
87
+ connection.drop_table :cats if connection.table_exists? :cats
88
+ connection.drop_table :felines if connection.table_exists? :felines
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end