ibm_db 5.6.1-arm64-darwin-24

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 (753) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +299 -0
  3. data/LICENSE +55 -0
  4. data/MANIFEST +14 -0
  5. data/ParameterizedQueries README +39 -0
  6. data/README +210 -0
  7. data/ext/Makefile +270 -0
  8. data/ext/Makefile.nt32 +181 -0
  9. data/ext/Makefile.nt32.191 +212 -0
  10. data/ext/extconf.rb +320 -0
  11. data/ext/gil_release_version.h +3 -0
  12. data/ext/ibm_db.bundle +0 -0
  13. data/ext/ibm_db.c +11865 -0
  14. data/ext/ibm_db.o +0 -0
  15. data/ext/mkmf.log +98 -0
  16. data/ext/ruby_ibm_db.h +241 -0
  17. data/ext/ruby_ibm_db_cli.c +867 -0
  18. data/ext/ruby_ibm_db_cli.h +508 -0
  19. data/ext/ruby_ibm_db_cli.o +0 -0
  20. data/ext/unicode_support_version.h +3 -0
  21. data/init.rb +42 -0
  22. data/lib/IBM_DB.rb +27 -0
  23. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +4407 -0
  24. data/lib/active_record/connection_adapters/ibm_db_pstmt.rb +1965 -0
  25. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +5 -0
  26. data/lib/active_record/vendor/db2-i5-zOS.yaml +328 -0
  27. data/lib/ibm_db.bundle +0 -0
  28. data/test/active_record/connection_adapters/fake_adapter.rb +52 -0
  29. data/test/activejob/destroy_association_async_test.rb +305 -0
  30. data/test/activejob/destroy_async_job_not_present_test.rb +31 -0
  31. data/test/activejob/helper.rb +15 -0
  32. data/test/assets/example.log +1 -0
  33. data/test/assets/flowers.jpg +0 -0
  34. data/test/assets/schema_dump_5_1.yml +345 -0
  35. data/test/assets/test.txt +1 -0
  36. data/test/cases/adapter_prevent_writes_test.rb +334 -0
  37. data/test/cases/adapter_test.rb +565 -0
  38. data/test/cases/adapters/mysql2/active_schema_test.rb +203 -0
  39. data/test/cases/adapters/mysql2/auto_increment_test.rb +34 -0
  40. data/test/cases/adapters/mysql2/bind_parameter_test.rb +52 -0
  41. data/test/cases/adapters/mysql2/boolean_test.rb +102 -0
  42. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +65 -0
  43. data/test/cases/adapters/mysql2/charset_collation_test.rb +57 -0
  44. data/test/cases/adapters/mysql2/connection_test.rb +208 -0
  45. data/test/cases/adapters/mysql2/count_deleted_rows_with_lock_test.rb +28 -0
  46. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +49 -0
  47. data/test/cases/adapters/mysql2/enum_test.rb +47 -0
  48. data/test/cases/adapters/mysql2/explain_test.rb +23 -0
  49. data/test/cases/adapters/mysql2/json_test.rb +24 -0
  50. data/test/cases/adapters/mysql2/mysql2_adapter_prevent_writes_test.rb +208 -0
  51. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +238 -0
  52. data/test/cases/adapters/mysql2/nested_deadlock_test.rb +75 -0
  53. data/test/cases/adapters/mysql2/optimizer_hints_test.rb +69 -0
  54. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
  55. data/test/cases/adapters/mysql2/schema_migrations_test.rb +64 -0
  56. data/test/cases/adapters/mysql2/schema_test.rb +128 -0
  57. data/test/cases/adapters/mysql2/set_test.rb +32 -0
  58. data/test/cases/adapters/mysql2/sp_test.rb +38 -0
  59. data/test/cases/adapters/mysql2/sql_types_test.rb +16 -0
  60. data/test/cases/adapters/mysql2/table_options_test.rb +125 -0
  61. data/test/cases/adapters/mysql2/transaction_test.rb +151 -0
  62. data/test/cases/adapters/mysql2/unsigned_type_test.rb +68 -0
  63. data/test/cases/adapters/mysql2/virtual_column_test.rb +66 -0
  64. data/test/cases/adapters/postgresql/active_schema_test.rb +113 -0
  65. data/test/cases/adapters/postgresql/array_test.rb +394 -0
  66. data/test/cases/adapters/postgresql/bit_string_test.rb +84 -0
  67. data/test/cases/adapters/postgresql/bytea_test.rb +135 -0
  68. data/test/cases/adapters/postgresql/case_insensitive_test.rb +27 -0
  69. data/test/cases/adapters/postgresql/change_schema_test.rb +40 -0
  70. data/test/cases/adapters/postgresql/cidr_test.rb +27 -0
  71. data/test/cases/adapters/postgresql/citext_test.rb +78 -0
  72. data/test/cases/adapters/postgresql/collation_test.rb +55 -0
  73. data/test/cases/adapters/postgresql/composite_test.rb +134 -0
  74. data/test/cases/adapters/postgresql/connection_test.rb +245 -0
  75. data/test/cases/adapters/postgresql/create_unlogged_tables_test.rb +74 -0
  76. data/test/cases/adapters/postgresql/datatype_test.rb +89 -0
  77. data/test/cases/adapters/postgresql/date_test.rb +42 -0
  78. data/test/cases/adapters/postgresql/domain_test.rb +49 -0
  79. data/test/cases/adapters/postgresql/enum_test.rb +93 -0
  80. data/test/cases/adapters/postgresql/explain_test.rb +22 -0
  81. data/test/cases/adapters/postgresql/extension_migration_test.rb +64 -0
  82. data/test/cases/adapters/postgresql/foreign_table_test.rb +109 -0
  83. data/test/cases/adapters/postgresql/full_text_test.rb +46 -0
  84. data/test/cases/adapters/postgresql/geometric_test.rb +372 -0
  85. data/test/cases/adapters/postgresql/hstore_test.rb +390 -0
  86. data/test/cases/adapters/postgresql/infinity_test.rb +108 -0
  87. data/test/cases/adapters/postgresql/integer_test.rb +27 -0
  88. data/test/cases/adapters/postgresql/interval_test.rb +99 -0
  89. data/test/cases/adapters/postgresql/json_test.rb +52 -0
  90. data/test/cases/adapters/postgresql/ltree_test.rb +51 -0
  91. data/test/cases/adapters/postgresql/money_test.rb +127 -0
  92. data/test/cases/adapters/postgresql/network_test.rb +102 -0
  93. data/test/cases/adapters/postgresql/numbers_test.rb +51 -0
  94. data/test/cases/adapters/postgresql/optimizer_hints_test.rb +71 -0
  95. data/test/cases/adapters/postgresql/partitions_test.rb +22 -0
  96. data/test/cases/adapters/postgresql/postgresql_adapter_prevent_writes_test.rb +205 -0
  97. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +447 -0
  98. data/test/cases/adapters/postgresql/prepared_statements_disabled_test.rb +27 -0
  99. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
  100. data/test/cases/adapters/postgresql/quoting_test.rb +50 -0
  101. data/test/cases/adapters/postgresql/range_test.rb +457 -0
  102. data/test/cases/adapters/postgresql/referential_integrity_test.rb +112 -0
  103. data/test/cases/adapters/postgresql/rename_table_test.rb +35 -0
  104. data/test/cases/adapters/postgresql/schema_authorization_test.rb +110 -0
  105. data/test/cases/adapters/postgresql/schema_test.rb +713 -0
  106. data/test/cases/adapters/postgresql/serial_test.rb +156 -0
  107. data/test/cases/adapters/postgresql/statement_pool_test.rb +61 -0
  108. data/test/cases/adapters/postgresql/timestamp_test.rb +92 -0
  109. data/test/cases/adapters/postgresql/transaction_nested_test.rb +114 -0
  110. data/test/cases/adapters/postgresql/transaction_test.rb +189 -0
  111. data/test/cases/adapters/postgresql/type_lookup_test.rb +35 -0
  112. data/test/cases/adapters/postgresql/utils_test.rb +64 -0
  113. data/test/cases/adapters/postgresql/uuid_test.rb +411 -0
  114. data/test/cases/adapters/postgresql/xml_test.rb +50 -0
  115. data/test/cases/adapters/sqlite3/collation_test.rb +64 -0
  116. data/test/cases/adapters/sqlite3/copy_table_test.rb +101 -0
  117. data/test/cases/adapters/sqlite3/explain_test.rb +23 -0
  118. data/test/cases/adapters/sqlite3/json_test.rb +29 -0
  119. data/test/cases/adapters/sqlite3/quoting_test.rb +79 -0
  120. data/test/cases/adapters/sqlite3/sqlite3_adapter_prevent_writes_test.rb +186 -0
  121. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +628 -0
  122. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
  123. data/test/cases/adapters/sqlite3/statement_pool_test.rb +21 -0
  124. data/test/cases/adapters/sqlite3/transaction_test.rb +123 -0
  125. data/test/cases/aggregations_test.rb +170 -0
  126. data/test/cases/annotate_test.rb +46 -0
  127. data/test/cases/ar_schema_test.rb +213 -0
  128. data/test/cases/arel/attributes/attribute_test.rb +1145 -0
  129. data/test/cases/arel/attributes/math_test.rb +83 -0
  130. data/test/cases/arel/attributes_test.rb +27 -0
  131. data/test/cases/arel/collectors/bind_test.rb +40 -0
  132. data/test/cases/arel/collectors/composite_test.rb +47 -0
  133. data/test/cases/arel/collectors/sql_string_test.rb +41 -0
  134. data/test/cases/arel/collectors/substitute_bind_collector_test.rb +48 -0
  135. data/test/cases/arel/crud_test.rb +65 -0
  136. data/test/cases/arel/delete_manager_test.rb +53 -0
  137. data/test/cases/arel/factory_methods_test.rb +46 -0
  138. data/test/cases/arel/helper.rb +45 -0
  139. data/test/cases/arel/insert_manager_test.rb +241 -0
  140. data/test/cases/arel/nodes/and_test.rb +30 -0
  141. data/test/cases/arel/nodes/as_test.rb +36 -0
  142. data/test/cases/arel/nodes/ascending_test.rb +46 -0
  143. data/test/cases/arel/nodes/bin_test.rb +35 -0
  144. data/test/cases/arel/nodes/binary_test.rb +29 -0
  145. data/test/cases/arel/nodes/bind_param_test.rb +22 -0
  146. data/test/cases/arel/nodes/case_test.rb +96 -0
  147. data/test/cases/arel/nodes/casted_test.rb +18 -0
  148. data/test/cases/arel/nodes/comment_test.rb +22 -0
  149. data/test/cases/arel/nodes/count_test.rb +35 -0
  150. data/test/cases/arel/nodes/delete_statement_test.rb +36 -0
  151. data/test/cases/arel/nodes/descending_test.rb +46 -0
  152. data/test/cases/arel/nodes/distinct_test.rb +21 -0
  153. data/test/cases/arel/nodes/equality_test.rb +62 -0
  154. data/test/cases/arel/nodes/extract_test.rb +43 -0
  155. data/test/cases/arel/nodes/false_test.rb +21 -0
  156. data/test/cases/arel/nodes/grouping_test.rb +26 -0
  157. data/test/cases/arel/nodes/infix_operation_test.rb +42 -0
  158. data/test/cases/arel/nodes/insert_statement_test.rb +44 -0
  159. data/test/cases/arel/nodes/named_function_test.rb +48 -0
  160. data/test/cases/arel/nodes/node_test.rb +22 -0
  161. data/test/cases/arel/nodes/not_test.rb +31 -0
  162. data/test/cases/arel/nodes/or_test.rb +36 -0
  163. data/test/cases/arel/nodes/over_test.rb +69 -0
  164. data/test/cases/arel/nodes/select_core_test.rb +79 -0
  165. data/test/cases/arel/nodes/select_statement_test.rb +51 -0
  166. data/test/cases/arel/nodes/sql_literal_test.rb +75 -0
  167. data/test/cases/arel/nodes/sum_test.rb +35 -0
  168. data/test/cases/arel/nodes/table_alias_test.rb +29 -0
  169. data/test/cases/arel/nodes/true_test.rb +21 -0
  170. data/test/cases/arel/nodes/unary_operation_test.rb +41 -0
  171. data/test/cases/arel/nodes/update_statement_test.rb +60 -0
  172. data/test/cases/arel/nodes/window_test.rb +81 -0
  173. data/test/cases/arel/nodes_test.rb +34 -0
  174. data/test/cases/arel/select_manager_test.rb +1238 -0
  175. data/test/cases/arel/support/fake_record.rb +135 -0
  176. data/test/cases/arel/table_test.rb +216 -0
  177. data/test/cases/arel/update_manager_test.rb +126 -0
  178. data/test/cases/arel/visitors/dispatch_contamination_test.rb +78 -0
  179. data/test/cases/arel/visitors/dot_test.rb +90 -0
  180. data/test/cases/arel/visitors/mysql_test.rb +157 -0
  181. data/test/cases/arel/visitors/postgres_test.rb +366 -0
  182. data/test/cases/arel/visitors/sqlite_test.rb +75 -0
  183. data/test/cases/arel/visitors/to_sql_test.rb +750 -0
  184. data/test/cases/associations/association_scope_test.rb +16 -0
  185. data/test/cases/associations/belongs_to_associations_test.rb +1493 -0
  186. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +43 -0
  187. data/test/cases/associations/callbacks_test.rb +208 -0
  188. data/test/cases/associations/cascaded_eager_loading_test.rb +245 -0
  189. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +156 -0
  190. data/test/cases/associations/eager_load_nested_include_test.rb +127 -0
  191. data/test/cases/associations/eager_singularization_test.rb +148 -0
  192. data/test/cases/associations/eager_test.rb +1658 -0
  193. data/test/cases/associations/extension_test.rb +93 -0
  194. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +1025 -0
  195. data/test/cases/associations/has_many_associations_test.rb +3074 -0
  196. data/test/cases/associations/has_many_through_associations_test.rb +1580 -0
  197. data/test/cases/associations/has_one_associations_test.rb +872 -0
  198. data/test/cases/associations/has_one_through_associations_test.rb +429 -0
  199. data/test/cases/associations/inner_join_association_test.rb +215 -0
  200. data/test/cases/associations/inverse_associations_test.rb +941 -0
  201. data/test/cases/associations/join_model_test.rb +787 -0
  202. data/test/cases/associations/left_outer_join_association_test.rb +123 -0
  203. data/test/cases/associations/nested_through_associations_test.rb +636 -0
  204. data/test/cases/associations/required_test.rb +127 -0
  205. data/test/cases/associations_test.rb +516 -0
  206. data/test/cases/attribute_decorators_test.rb +126 -0
  207. data/test/cases/attribute_methods/read_test.rb +60 -0
  208. data/test/cases/attribute_methods_test.rb +1124 -0
  209. data/test/cases/attribute_set_test.rb +270 -0
  210. data/test/cases/attribute_test.rb +246 -0
  211. data/test/cases/attributes_test.rb +371 -0
  212. data/test/cases/autosave_association_test.rb +1953 -0
  213. data/test/cases/base_prevent_writes_test.rb +229 -0
  214. data/test/cases/base_test.rb +1770 -0
  215. data/test/cases/batches_test.rb +695 -0
  216. data/test/cases/binary_test.rb +39 -0
  217. data/test/cases/bind_parameter_test.rb +283 -0
  218. data/test/cases/boolean_test.rb +52 -0
  219. data/test/cases/cache_key_test.rb +131 -0
  220. data/test/cases/calculations_test.rb +1361 -0
  221. data/test/cases/callbacks_test.rb +503 -0
  222. data/test/cases/clone_test.rb +45 -0
  223. data/test/cases/coders/json_test.rb +17 -0
  224. data/test/cases/coders/yaml_column_test.rb +66 -0
  225. data/test/cases/collection_cache_key_test.rb +272 -0
  226. data/test/cases/column_alias_test.rb +19 -0
  227. data/test/cases/column_definition_test.rb +34 -0
  228. data/test/cases/comment_test.rb +204 -0
  229. data/test/cases/connection_adapters/adapter_leasing_test.rb +60 -0
  230. data/test/cases/connection_adapters/connection_handler_test.rb +467 -0
  231. data/test/cases/connection_adapters/connection_handlers_multi_db_test.rb +400 -0
  232. data/test/cases/connection_adapters/connection_handlers_multi_pool_config_test.rb +103 -0
  233. data/test/cases/connection_adapters/connection_handlers_sharding_db_test.rb +499 -0
  234. data/test/cases/connection_adapters/connection_specification_test.rb +12 -0
  235. data/test/cases/connection_adapters/connection_swapping_nested_test.rb +457 -0
  236. data/test/cases/connection_adapters/legacy_connection_handlers_multi_db_test.rb +486 -0
  237. data/test/cases/connection_adapters/legacy_connection_handlers_sharding_db_test.rb +586 -0
  238. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +436 -0
  239. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +81 -0
  240. data/test/cases/connection_adapters/quoting_test.rb +13 -0
  241. data/test/cases/connection_adapters/schema_cache_test.rb +294 -0
  242. data/test/cases/connection_adapters/type_lookup_test.rb +119 -0
  243. data/test/cases/connection_management_test.rb +114 -0
  244. data/test/cases/connection_pool_test.rb +754 -0
  245. data/test/cases/connection_specification/resolver_test.rb +131 -0
  246. data/test/cases/core_test.rb +136 -0
  247. data/test/cases/counter_cache_test.rb +368 -0
  248. data/test/cases/custom_locking_test.rb +19 -0
  249. data/test/cases/database_configurations/hash_config_test.rb +74 -0
  250. data/test/cases/database_configurations/resolver_test.rb +150 -0
  251. data/test/cases/database_configurations_test.rb +145 -0
  252. data/test/cases/database_selector_test.rb +296 -0
  253. data/test/cases/database_statements_test.rb +36 -0
  254. data/test/cases/date_test.rb +36 -0
  255. data/test/cases/date_time_precision_test.rb +129 -0
  256. data/test/cases/date_time_test.rb +76 -0
  257. data/test/cases/defaults_test.rb +254 -0
  258. data/test/cases/delegated_type_test.rb +57 -0
  259. data/test/cases/dirty_test.rb +959 -0
  260. data/test/cases/disconnected_test.rb +30 -0
  261. data/test/cases/dup_test.rb +184 -0
  262. data/test/cases/enum_test.rb +823 -0
  263. data/test/cases/errors_test.rb +16 -0
  264. data/test/cases/explain_subscriber_test.rb +66 -0
  265. data/test/cases/explain_test.rb +79 -0
  266. data/test/cases/filter_attributes_test.rb +153 -0
  267. data/test/cases/finder_respond_to_test.rb +60 -0
  268. data/test/cases/finder_test.rb +1676 -0
  269. data/test/cases/fixture_set/file_test.rb +152 -0
  270. data/test/cases/fixtures_test.rb +1645 -0
  271. data/test/cases/forbidden_attributes_protection_test.rb +130 -0
  272. data/test/cases/habtm_destroy_order_test.rb +61 -0
  273. data/test/cases/helper.rb +233 -0
  274. data/test/cases/hot_compatibility_test.rb +143 -0
  275. data/test/cases/i18n_test.rb +46 -0
  276. data/test/cases/inheritance_test.rb +671 -0
  277. data/test/cases/insert_all_test.rb +489 -0
  278. data/test/cases/instrumentation_test.rb +101 -0
  279. data/test/cases/integration_test.rb +243 -0
  280. data/test/cases/invalid_connection_test.rb +26 -0
  281. data/test/cases/invertible_migration_test.rb +527 -0
  282. data/test/cases/json_attribute_test.rb +35 -0
  283. data/test/cases/json_serialization_test.rb +310 -0
  284. data/test/cases/json_shared_test_cases.rb +290 -0
  285. data/test/cases/locking_test.rb +787 -0
  286. data/test/cases/log_subscriber_test.rb +267 -0
  287. data/test/cases/marshal_serialization_test.rb +39 -0
  288. data/test/cases/migration/change_schema_test.rb +504 -0
  289. data/test/cases/migration/change_table_test.rb +364 -0
  290. data/test/cases/migration/check_constraint_test.rb +162 -0
  291. data/test/cases/migration/column_attributes_test.rb +186 -0
  292. data/test/cases/migration/column_positioning_test.rb +68 -0
  293. data/test/cases/migration/columns_test.rb +326 -0
  294. data/test/cases/migration/command_recorder_test.rb +437 -0
  295. data/test/cases/migration/compatibility_test.rb +673 -0
  296. data/test/cases/migration/create_join_table_test.rb +167 -0
  297. data/test/cases/migration/foreign_key_test.rb +581 -0
  298. data/test/cases/migration/helper.rb +40 -0
  299. data/test/cases/migration/index_test.rb +267 -0
  300. data/test/cases/migration/logger_test.rb +39 -0
  301. data/test/cases/migration/pending_migrations_test.rb +106 -0
  302. data/test/cases/migration/references_foreign_key_test.rb +235 -0
  303. data/test/cases/migration/references_index_test.rb +120 -0
  304. data/test/cases/migration/references_statements_test.rb +137 -0
  305. data/test/cases/migration/rename_table_test.rb +116 -0
  306. data/test/cases/migration_test.rb +1525 -0
  307. data/test/cases/migrator_test.rb +527 -0
  308. data/test/cases/mixin_test.rb +64 -0
  309. data/test/cases/modules_test.rb +174 -0
  310. data/test/cases/multi_db_migrator_test.rb +223 -0
  311. data/test/cases/multiparameter_attributes_test.rb +399 -0
  312. data/test/cases/multiple_db_test.rb +116 -0
  313. data/test/cases/nested_attributes_test.rb +1119 -0
  314. data/test/cases/nested_attributes_with_callbacks_test.rb +146 -0
  315. data/test/cases/null_relation_test.rb +84 -0
  316. data/test/cases/numeric_data_test.rb +93 -0
  317. data/test/cases/persistence_test.rb +1093 -0
  318. data/test/cases/pooled_connections_test.rb +73 -0
  319. data/test/cases/prepared_statement_status_test.rb +48 -0
  320. data/test/cases/primary_keys_test.rb +482 -0
  321. data/test/cases/query_cache_test.rb +915 -0
  322. data/test/cases/quoting_test.rb +303 -0
  323. data/test/cases/readonly_test.rb +120 -0
  324. data/test/cases/reaper_test.rb +199 -0
  325. data/test/cases/reflection_test.rb +520 -0
  326. data/test/cases/relation/delegation_test.rb +76 -0
  327. data/test/cases/relation/delete_all_test.rb +117 -0
  328. data/test/cases/relation/merging_test.rb +434 -0
  329. data/test/cases/relation/mutation_test.rb +145 -0
  330. data/test/cases/relation/or_test.rb +192 -0
  331. data/test/cases/relation/predicate_builder_test.rb +31 -0
  332. data/test/cases/relation/record_fetch_warning_test.rb +42 -0
  333. data/test/cases/relation/select_test.rb +67 -0
  334. data/test/cases/relation/update_all_test.rb +317 -0
  335. data/test/cases/relation/where_chain_test.rb +141 -0
  336. data/test/cases/relation/where_clause_test.rb +257 -0
  337. data/test/cases/relation/where_test.rb +429 -0
  338. data/test/cases/relation_test.rb +482 -0
  339. data/test/cases/relations_test.rb +2251 -0
  340. data/test/cases/reload_models_test.rb +26 -0
  341. data/test/cases/reserved_word_test.rb +141 -0
  342. data/test/cases/result_test.rb +141 -0
  343. data/test/cases/sanitize_test.rb +192 -0
  344. data/test/cases/schema_dumper_test.rb +550 -0
  345. data/test/cases/schema_loading_test.rb +53 -0
  346. data/test/cases/scoping/default_scoping_test.rb +569 -0
  347. data/test/cases/scoping/named_scoping_test.rb +649 -0
  348. data/test/cases/scoping/relation_scoping_test.rb +522 -0
  349. data/test/cases/secure_token_test.rb +47 -0
  350. data/test/cases/serialization_test.rb +106 -0
  351. data/test/cases/serialized_attribute_test.rb +455 -0
  352. data/test/cases/signed_id_test.rb +168 -0
  353. data/test/cases/statement_cache_test.rb +153 -0
  354. data/test/cases/statement_invalid_test.rb +42 -0
  355. data/test/cases/store_test.rb +320 -0
  356. data/test/cases/strict_loading_test.rb +473 -0
  357. data/test/cases/suppressor_test.rb +77 -0
  358. data/test/cases/tasks/database_tasks_test.rb +1526 -0
  359. data/test/cases/tasks/mysql_rake_test.rb +417 -0
  360. data/test/cases/tasks/postgresql_rake_test.rb +534 -0
  361. data/test/cases/tasks/sqlite_rake_test.rb +267 -0
  362. data/test/cases/test_case.rb +142 -0
  363. data/test/cases/test_databases_test.rb +79 -0
  364. data/test/cases/test_fixtures_test.rb +96 -0
  365. data/test/cases/time_precision_test.rb +125 -0
  366. data/test/cases/timestamp_test.rb +504 -0
  367. data/test/cases/touch_later_test.rb +123 -0
  368. data/test/cases/transaction_callbacks_test.rb +772 -0
  369. data/test/cases/transaction_isolation_test.rb +106 -0
  370. data/test/cases/transactions_test.rb +1285 -0
  371. data/test/cases/type/adapter_specific_registry_test.rb +145 -0
  372. data/test/cases/type/date_time_test.rb +16 -0
  373. data/test/cases/type/integer_test.rb +29 -0
  374. data/test/cases/type/string_test.rb +24 -0
  375. data/test/cases/type/time_test.rb +28 -0
  376. data/test/cases/type/type_map_test.rb +178 -0
  377. data/test/cases/type/unsigned_integer_test.rb +19 -0
  378. data/test/cases/type_test.rb +41 -0
  379. data/test/cases/types_test.rb +26 -0
  380. data/test/cases/unconnected_test.rb +46 -0
  381. data/test/cases/unsafe_raw_sql_test.rb +274 -0
  382. data/test/cases/validations/absence_validation_test.rb +75 -0
  383. data/test/cases/validations/association_validation_test.rb +99 -0
  384. data/test/cases/validations/i18n_generate_message_validation_test.rb +102 -0
  385. data/test/cases/validations/i18n_validation_test.rb +87 -0
  386. data/test/cases/validations/length_validation_test.rb +80 -0
  387. data/test/cases/validations/numericality_validation_test.rb +181 -0
  388. data/test/cases/validations/presence_validation_test.rb +105 -0
  389. data/test/cases/validations/uniqueness_validation_test.rb +618 -0
  390. data/test/cases/validations_repair_helper.rb +21 -0
  391. data/test/cases/validations_test.rb +229 -0
  392. data/test/cases/view_test.rb +222 -0
  393. data/test/cases/yaml_serialization_test.rb +166 -0
  394. data/test/config.example.yml +97 -0
  395. data/test/config.rb +7 -0
  396. data/test/config.yml +220 -0
  397. data/test/connections/native_ibm_db/connection.rb +44 -0
  398. data/test/fixtures/accounts.yml +29 -0
  399. data/test/fixtures/admin/accounts.yml +2 -0
  400. data/test/fixtures/admin/randomly_named_a9.yml +7 -0
  401. data/test/fixtures/admin/randomly_named_b0.yml +7 -0
  402. data/test/fixtures/admin/users.yml +10 -0
  403. data/test/fixtures/all/admin +1 -0
  404. data/test/fixtures/all/developers.yml +0 -0
  405. data/test/fixtures/all/namespaced/accounts.yml +2 -0
  406. data/test/fixtures/all/people.yml +0 -0
  407. data/test/fixtures/all/tasks.yml +0 -0
  408. data/test/fixtures/author_addresses.yml +11 -0
  409. data/test/fixtures/author_favorites.yml +4 -0
  410. data/test/fixtures/authors.yml +17 -0
  411. data/test/fixtures/bad_posts.yml +9 -0
  412. data/test/fixtures/binaries.yml +137 -0
  413. data/test/fixtures/books.yml +38 -0
  414. data/test/fixtures/bulbs.yml +5 -0
  415. data/test/fixtures/cars.yml +9 -0
  416. data/test/fixtures/categories/special_categories.yml +9 -0
  417. data/test/fixtures/categories/subsubdir/arbitrary_filename.yml +4 -0
  418. data/test/fixtures/categories.yml +19 -0
  419. data/test/fixtures/categories_ordered.yml +7 -0
  420. data/test/fixtures/categories_posts.yml +34 -0
  421. data/test/fixtures/categorizations.yml +23 -0
  422. data/test/fixtures/citations.yml +5 -0
  423. data/test/fixtures/clubs.yml +8 -0
  424. data/test/fixtures/collections.yml +3 -0
  425. data/test/fixtures/colleges.yml +3 -0
  426. data/test/fixtures/comments.yml +72 -0
  427. data/test/fixtures/companies.yml +72 -0
  428. data/test/fixtures/computers.yml +12 -0
  429. data/test/fixtures/content.yml +3 -0
  430. data/test/fixtures/content_positions.yml +3 -0
  431. data/test/fixtures/courses.yml +8 -0
  432. data/test/fixtures/customers.yml +35 -0
  433. data/test/fixtures/dashboards.yml +6 -0
  434. data/test/fixtures/dead_parrots.yml +5 -0
  435. data/test/fixtures/developers.yml +22 -0
  436. data/test/fixtures/developers_projects.yml +17 -0
  437. data/test/fixtures/dog_lovers.yml +7 -0
  438. data/test/fixtures/dogs.yml +4 -0
  439. data/test/fixtures/doubloons.yml +3 -0
  440. data/test/fixtures/edges.yml +5 -0
  441. data/test/fixtures/entrants.yml +14 -0
  442. data/test/fixtures/essays.yml +16 -0
  443. data/test/fixtures/faces.yml +11 -0
  444. data/test/fixtures/fk_test_has_fk.yml +3 -0
  445. data/test/fixtures/fk_test_has_pk.yml +2 -0
  446. data/test/fixtures/friendships.yml +4 -0
  447. data/test/fixtures/funny_jokes.yml +10 -0
  448. data/test/fixtures/humans.yml +5 -0
  449. data/test/fixtures/interests.yml +33 -0
  450. data/test/fixtures/items.yml +3 -0
  451. data/test/fixtures/jobs.yml +7 -0
  452. data/test/fixtures/legacy_things.yml +3 -0
  453. data/test/fixtures/live_parrots.yml +4 -0
  454. data/test/fixtures/mateys.yml +4 -0
  455. data/test/fixtures/member_details.yml +8 -0
  456. data/test/fixtures/member_types.yml +6 -0
  457. data/test/fixtures/members.yml +11 -0
  458. data/test/fixtures/memberships.yml +41 -0
  459. data/test/fixtures/men.yml +5 -0
  460. data/test/fixtures/minimalistics.yml +5 -0
  461. data/test/fixtures/minivans.yml +5 -0
  462. data/test/fixtures/mixed_case_monkeys.yml +6 -0
  463. data/test/fixtures/mixins.yml +29 -0
  464. data/test/fixtures/movies.yml +7 -0
  465. data/test/fixtures/naked/yml/accounts.yml +1 -0
  466. data/test/fixtures/naked/yml/companies.yml +1 -0
  467. data/test/fixtures/naked/yml/courses.yml +1 -0
  468. data/test/fixtures/naked/yml/courses_with_invalid_key.yml +3 -0
  469. data/test/fixtures/naked/yml/parrots.yml +3 -0
  470. data/test/fixtures/naked/yml/trees.yml +3 -0
  471. data/test/fixtures/nodes.yml +29 -0
  472. data/test/fixtures/organizations.yml +5 -0
  473. data/test/fixtures/other_books.yml +26 -0
  474. data/test/fixtures/other_comments.yml +6 -0
  475. data/test/fixtures/other_dogs.yml +2 -0
  476. data/test/fixtures/other_posts.yml +8 -0
  477. data/test/fixtures/other_topics.yml +42 -0
  478. data/test/fixtures/owners.yml +9 -0
  479. data/test/fixtures/parrots.yml +33 -0
  480. data/test/fixtures/parrots_pirates.yml +7 -0
  481. data/test/fixtures/people.yml +24 -0
  482. data/test/fixtures/peoples_treasures.yml +3 -0
  483. data/test/fixtures/pets.yml +19 -0
  484. data/test/fixtures/pirates.yml +15 -0
  485. data/test/fixtures/posts.yml +88 -0
  486. data/test/fixtures/price_estimates.yml +16 -0
  487. data/test/fixtures/products.yml +4 -0
  488. data/test/fixtures/projects.yml +7 -0
  489. data/test/fixtures/randomly_named_a9.yml +7 -0
  490. data/test/fixtures/ratings.yml +14 -0
  491. data/test/fixtures/readers.yml +17 -0
  492. data/test/fixtures/references.yml +17 -0
  493. data/test/fixtures/reserved_words/distinct.yml +5 -0
  494. data/test/fixtures/reserved_words/distinct_select.yml +11 -0
  495. data/test/fixtures/reserved_words/group.yml +14 -0
  496. data/test/fixtures/reserved_words/select.yml +8 -0
  497. data/test/fixtures/reserved_words/values.yml +7 -0
  498. data/test/fixtures/ships.yml +6 -0
  499. data/test/fixtures/speedometers.yml +8 -0
  500. data/test/fixtures/sponsors.yml +15 -0
  501. data/test/fixtures/strict_zines.yml +2 -0
  502. data/test/fixtures/string_key_objects.yml +7 -0
  503. data/test/fixtures/subscribers.yml +11 -0
  504. data/test/fixtures/subscriptions.yml +12 -0
  505. data/test/fixtures/taggings.yml +78 -0
  506. data/test/fixtures/tags.yml +11 -0
  507. data/test/fixtures/tasks.yml +7 -0
  508. data/test/fixtures/teapots.yml +3 -0
  509. data/test/fixtures/to_be_linked/accounts.yml +2 -0
  510. data/test/fixtures/to_be_linked/users.yml +10 -0
  511. data/test/fixtures/topics.yml +49 -0
  512. data/test/fixtures/toys.yml +14 -0
  513. data/test/fixtures/traffic_lights.yml +10 -0
  514. data/test/fixtures/treasures.yml +10 -0
  515. data/test/fixtures/trees.yml +3 -0
  516. data/test/fixtures/uuid_children.yml +3 -0
  517. data/test/fixtures/uuid_parents.yml +2 -0
  518. data/test/fixtures/variants.yml +4 -0
  519. data/test/fixtures/vegetables.yml +20 -0
  520. data/test/fixtures/vertices.yml +4 -0
  521. data/test/fixtures/warehouse-things.yml +3 -0
  522. data/test/fixtures/warehouse_things.yml +3 -0
  523. data/test/fixtures/zines.yml +5 -0
  524. data/test/ibm_db_test.rb +25 -0
  525. data/test/migrations/10_urban/9_add_expressions.rb +13 -0
  526. data/test/migrations/decimal/1_give_me_big_numbers.rb +17 -0
  527. data/test/migrations/magic/1_currencies_have_symbols.rb +13 -0
  528. data/test/migrations/missing/1000_people_have_middle_names.rb +11 -0
  529. data/test/migrations/missing/1_people_have_last_names.rb +11 -0
  530. data/test/migrations/missing/3_we_need_reminders.rb +14 -0
  531. data/test/migrations/missing/4_innocent_jointable.rb +14 -0
  532. data/test/migrations/rename/1_we_need_things.rb +13 -0
  533. data/test/migrations/rename/2_rename_things.rb +11 -0
  534. data/test/migrations/to_copy/1_people_have_hobbies.rb +11 -0
  535. data/test/migrations/to_copy/2_people_have_descriptions.rb +11 -0
  536. data/test/migrations/to_copy2/1_create_articles.rb +9 -0
  537. data/test/migrations/to_copy2/2_create_comments.rb +9 -0
  538. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +11 -0
  539. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +11 -0
  540. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +11 -0
  541. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +9 -0
  542. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +9 -0
  543. data/test/migrations/valid/1_valid_people_have_last_names.rb +11 -0
  544. data/test/migrations/valid/2_we_need_reminders.rb +14 -0
  545. data/test/migrations/valid/3_innocent_jointable.rb +14 -0
  546. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +11 -0
  547. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +14 -0
  548. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +14 -0
  549. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +11 -0
  550. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +14 -0
  551. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +14 -0
  552. data/test/migrations/version_check/20131219224947_migration_version_check.rb +10 -0
  553. data/test/models/account.rb +46 -0
  554. data/test/models/admin/account.rb +5 -0
  555. data/test/models/admin/randomly_named_c1.rb +9 -0
  556. data/test/models/admin/user.rb +48 -0
  557. data/test/models/admin.rb +7 -0
  558. data/test/models/aircraft.rb +7 -0
  559. data/test/models/arunit2_model.rb +5 -0
  560. data/test/models/author.rb +260 -0
  561. data/test/models/auto_id.rb +6 -0
  562. data/test/models/autoloadable/extra_firm.rb +4 -0
  563. data/test/models/binary.rb +4 -0
  564. data/test/models/binary_field.rb +6 -0
  565. data/test/models/bird.rb +24 -0
  566. data/test/models/book.rb +33 -0
  567. data/test/models/book_destroy_async.rb +24 -0
  568. data/test/models/boolean.rb +7 -0
  569. data/test/models/bulb.rb +61 -0
  570. data/test/models/cake_designer.rb +5 -0
  571. data/test/models/car.rb +36 -0
  572. data/test/models/carrier.rb +4 -0
  573. data/test/models/cart.rb +5 -0
  574. data/test/models/cat.rb +12 -0
  575. data/test/models/categorization.rb +21 -0
  576. data/test/models/category.rb +47 -0
  577. data/test/models/chef.rb +10 -0
  578. data/test/models/citation.rb +7 -0
  579. data/test/models/club.rb +28 -0
  580. data/test/models/college.rb +12 -0
  581. data/test/models/column.rb +5 -0
  582. data/test/models/column_name.rb +5 -0
  583. data/test/models/comment.rb +98 -0
  584. data/test/models/company.rb +226 -0
  585. data/test/models/company_in_module.rb +99 -0
  586. data/test/models/computer.rb +5 -0
  587. data/test/models/contact.rb +43 -0
  588. data/test/models/content.rb +42 -0
  589. data/test/models/contract.rb +38 -0
  590. data/test/models/country.rb +5 -0
  591. data/test/models/course.rb +8 -0
  592. data/test/models/customer.rb +85 -0
  593. data/test/models/customer_carrier.rb +16 -0
  594. data/test/models/dashboard.rb +5 -0
  595. data/test/models/default.rb +4 -0
  596. data/test/models/department.rb +6 -0
  597. data/test/models/destroy_async_parent.rb +15 -0
  598. data/test/models/destroy_async_parent_soft_delete.rb +20 -0
  599. data/test/models/developer.rb +341 -0
  600. data/test/models/dl_keyed_belongs_to.rb +13 -0
  601. data/test/models/dl_keyed_belongs_to_soft_delete.rb +19 -0
  602. data/test/models/dl_keyed_has_many.rb +5 -0
  603. data/test/models/dl_keyed_has_many_through.rb +5 -0
  604. data/test/models/dl_keyed_has_one.rb +5 -0
  605. data/test/models/dl_keyed_join.rb +10 -0
  606. data/test/models/dog.rb +7 -0
  607. data/test/models/dog_lover.rb +7 -0
  608. data/test/models/doubloon.rb +14 -0
  609. data/test/models/drink_designer.rb +20 -0
  610. data/test/models/edge.rb +7 -0
  611. data/test/models/electron.rb +7 -0
  612. data/test/models/engine.rb +5 -0
  613. data/test/models/entrant.rb +5 -0
  614. data/test/models/entry.rb +5 -0
  615. data/test/models/essay.rb +8 -0
  616. data/test/models/essay_destroy_async.rb +12 -0
  617. data/test/models/event.rb +5 -0
  618. data/test/models/eye.rb +39 -0
  619. data/test/models/face.rb +17 -0
  620. data/test/models/family.rb +6 -0
  621. data/test/models/family_tree.rb +6 -0
  622. data/test/models/friendship.rb +8 -0
  623. data/test/models/frog.rb +8 -0
  624. data/test/models/guid.rb +4 -0
  625. data/test/models/guitar.rb +6 -0
  626. data/test/models/hotel.rb +13 -0
  627. data/test/models/human.rb +39 -0
  628. data/test/models/image.rb +5 -0
  629. data/test/models/interest.rb +16 -0
  630. data/test/models/invoice.rb +6 -0
  631. data/test/models/item.rb +9 -0
  632. data/test/models/job.rb +9 -0
  633. data/test/models/joke.rb +9 -0
  634. data/test/models/keyboard.rb +5 -0
  635. data/test/models/legacy_thing.rb +5 -0
  636. data/test/models/lesson.rb +13 -0
  637. data/test/models/line_item.rb +5 -0
  638. data/test/models/liquid.rb +6 -0
  639. data/test/models/man.rb +11 -0
  640. data/test/models/matey.rb +6 -0
  641. data/test/models/measurement.rb +4 -0
  642. data/test/models/member.rb +45 -0
  643. data/test/models/member_detail.rb +11 -0
  644. data/test/models/member_type.rb +5 -0
  645. data/test/models/membership.rb +38 -0
  646. data/test/models/mentor.rb +5 -0
  647. data/test/models/message.rb +5 -0
  648. data/test/models/minimalistic.rb +4 -0
  649. data/test/models/minivan.rb +10 -0
  650. data/test/models/mixed_case_monkey.rb +5 -0
  651. data/test/models/mocktail_designer.rb +2 -0
  652. data/test/models/molecule.rb +8 -0
  653. data/test/models/mouse.rb +6 -0
  654. data/test/models/movie.rb +7 -0
  655. data/test/models/node.rb +7 -0
  656. data/test/models/non_primary_key.rb +4 -0
  657. data/test/models/notification.rb +5 -0
  658. data/test/models/numeric_data.rb +12 -0
  659. data/test/models/order.rb +6 -0
  660. data/test/models/organization.rb +16 -0
  661. data/test/models/other_dog.rb +7 -0
  662. data/test/models/owner.rb +39 -0
  663. data/test/models/parrot.rb +36 -0
  664. data/test/models/person.rb +147 -0
  665. data/test/models/personal_legacy_thing.rb +6 -0
  666. data/test/models/pet.rb +20 -0
  667. data/test/models/pet_treasure.rb +8 -0
  668. data/test/models/pirate.rb +116 -0
  669. data/test/models/possession.rb +5 -0
  670. data/test/models/post.rb +371 -0
  671. data/test/models/price_estimate.rb +14 -0
  672. data/test/models/professor.rb +7 -0
  673. data/test/models/project.rb +42 -0
  674. data/test/models/publisher/article.rb +6 -0
  675. data/test/models/publisher/magazine.rb +5 -0
  676. data/test/models/publisher.rb +4 -0
  677. data/test/models/randomly_named_c1.rb +5 -0
  678. data/test/models/rating.rb +8 -0
  679. data/test/models/reader.rb +25 -0
  680. data/test/models/recipe.rb +5 -0
  681. data/test/models/record.rb +4 -0
  682. data/test/models/reference.rb +25 -0
  683. data/test/models/reply.rb +79 -0
  684. data/test/models/room.rb +6 -0
  685. data/test/models/section.rb +6 -0
  686. data/test/models/seminar.rb +6 -0
  687. data/test/models/session.rb +6 -0
  688. data/test/models/ship.rb +42 -0
  689. data/test/models/ship_part.rb +10 -0
  690. data/test/models/shop.rb +19 -0
  691. data/test/models/shop_account.rb +8 -0
  692. data/test/models/speedometer.rb +8 -0
  693. data/test/models/sponsor.rb +10 -0
  694. data/test/models/squeak.rb +6 -0
  695. data/test/models/strict_zine.rb +7 -0
  696. data/test/models/string_key_object.rb +5 -0
  697. data/test/models/student.rb +6 -0
  698. data/test/models/subject.rb +16 -0
  699. data/test/models/subscriber.rb +10 -0
  700. data/test/models/subscription.rb +8 -0
  701. data/test/models/tag.rb +16 -0
  702. data/test/models/tagging.rb +20 -0
  703. data/test/models/task.rb +7 -0
  704. data/test/models/topic.rb +153 -0
  705. data/test/models/toy.rb +10 -0
  706. data/test/models/traffic_light.rb +6 -0
  707. data/test/models/treasure.rb +16 -0
  708. data/test/models/treaty.rb +5 -0
  709. data/test/models/tree.rb +5 -0
  710. data/test/models/tuning_peg.rb +6 -0
  711. data/test/models/tyre.rb +13 -0
  712. data/test/models/user.rb +22 -0
  713. data/test/models/uuid_child.rb +5 -0
  714. data/test/models/uuid_item.rb +8 -0
  715. data/test/models/uuid_parent.rb +5 -0
  716. data/test/models/vegetables.rb +33 -0
  717. data/test/models/vehicle.rb +7 -0
  718. data/test/models/vertex.rb +11 -0
  719. data/test/models/warehouse_thing.rb +7 -0
  720. data/test/models/wheel.rb +5 -0
  721. data/test/models/without_table.rb +5 -0
  722. data/test/models/zine.rb +5 -0
  723. data/test/schema/i5/ibm_db_specific_schema.rb +137 -0
  724. data/test/schema/ids/ibm_db_specific_schema.rb +140 -0
  725. data/test/schema/luw/ibm_db_specific_schema.rb +137 -0
  726. data/test/schema/mysql2_specific_schema.rb +82 -0
  727. data/test/schema/oracle_specific_schema.rb +38 -0
  728. data/test/schema/postgresql_specific_schema.rb +125 -0
  729. data/test/schema/schema.rb +1237 -0
  730. data/test/schema/schema.rb.original +1057 -0
  731. data/test/schema/sqlite_specific_schema.rb +11 -0
  732. data/test/schema/zOS/ibm_db_specific_schema.rb +208 -0
  733. data/test/support/config.rb +43 -0
  734. data/test/support/connection.rb +29 -0
  735. data/test/support/connection_helper.rb +16 -0
  736. data/test/support/ddl_helper.rb +10 -0
  737. data/test/support/marshal_compatibility_fixtures/IBM_DB/rails_6_0_topic.dump +0 -0
  738. data/test/support/marshal_compatibility_fixtures/IBM_DB/rails_6_0_topic_associations.dump +0 -0
  739. data/test/support/marshal_compatibility_fixtures/Mysql2/rails_6_0_topic.dump +0 -0
  740. data/test/support/marshal_compatibility_fixtures/Mysql2/rails_6_0_topic_associations.dump +0 -0
  741. data/test/support/marshal_compatibility_fixtures/PostgreSQL/rails_6_0_topic.dump +0 -0
  742. data/test/support/marshal_compatibility_fixtures/PostgreSQL/rails_6_0_topic_associations.dump +0 -0
  743. data/test/support/marshal_compatibility_fixtures/SQLite/rails_6_0_topic.dump +0 -0
  744. data/test/support/marshal_compatibility_fixtures/SQLite/rails_6_0_topic_associations.dump +0 -0
  745. data/test/support/marshal_compatibility_fixtures/legacy_6_0_record_mysql.dump +0 -0
  746. data/test/support/marshal_compatibility_fixtures/legacy_relation.dump +0 -0
  747. data/test/support/schema_dumping_helper.rb +22 -0
  748. data/test/support/stubs/strong_parameters.rb +40 -0
  749. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
  750. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
  751. data/test/support/yaml_compatibility_fixtures/rails_v1_mysql.yml +206 -0
  752. data/test/support/yaml_compatibility_fixtures/rails_v2.yml +55 -0
  753. metadata +876 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 454c1910792f12341011ccc6e6b0be68d5702e4fb67fdebcb590ba049996d43c
4
+ data.tar.gz: 143eea87bffbcd043372ce141111f65f829b7191cdac2984470766b2732952b7
5
+ SHA512:
6
+ metadata.gz: 229c504fce0c644b64b0c57613f4982bb581326679a3e63393d36864585fd6a042f37988c56e01403297511647c61a9b7231afeea98ca25309d5c1316af1e85a
7
+ data.tar.gz: 023cb8a646a7a940be6bab664600b82a7041a8bbe6f1e16444f3b94e6478920eee311b7b293c261f272c606e215347bcb55c1b99b0a5d2608c8405371f5b9fb3
data/CHANGES ADDED
@@ -0,0 +1,299 @@
1
+ Change Log
2
+ ==============
3
+ 2025/06/09 (IBM_DB adapter 5.6.1, driver 3.2.0)
4
+ - Rails < 7.2 is not campatible with Adapter 5.6.0 Onwards.
5
+
6
+ 2025/06/03 (IBM_DB adapter 5.6.0, driver 3.2.0)
7
+ - Support for ruby 3.3 and rails 7.2.2.1
8
+
9
+ 2024/12/13 (IBM_DB adapter 5.5.1, driver 3.1.1)
10
+ - Support for MAC ARM64
11
+
12
+ 2024/07/10 (IBM_DB adapter 5.5.0, driver 3.1.0)
13
+ - Support for ruby 3.2 and rails 7.1.3.2
14
+
15
+ 2023/10/11 (IBM_DB adapter 5.4.2, driver 3.1.0)
16
+ - config.yml to have Environment variables to specify credentials.
17
+
18
+ 2023/03/29 (IBM_DB adapter 5.4.1, driver 3.1.0)
19
+ - Download clidriver issue fixed and replaced http links with https.
20
+
21
+ 2023/01/06 (IBM_DB adapter 5.4.0, driver 3.1.0)
22
+ - Support for Ruby 3.1 and Rails 7.0
23
+
24
+ 2022/10/06 (IBM_DB adapter 5.3.2, driver 3.0.6)
25
+ - Allowed all rails versions < 6.2 in gemspec, replaced limit clause with FETCH FIRST n ROWS
26
+
27
+ 2022/09/21 (IBM_DB adapter 5.3.1, driver 3.0.6)
28
+ - Yanked version 5.3.0 as package includes clidriver
29
+
30
+ 2022/09/17 (IBM_DB adapter 5.3.0, driver 3.0.6)
31
+ - Support for Ruby 3.0 and Rails 6.1
32
+
33
+ 2018/05/24 (IBM_DB adapter 4.0.0, driver 3.0.5)
34
+ - Rails 5.0.7 Toleration support. New features of Active Record 5.0.7 are not added also none of the open issue are fixed in this release.
35
+
36
+ 2016/07/08 (IBM_DB adapter 3.0.5, driver 3.0.5)
37
+ - Fixed issue #71 - Query hangs from db2 with no any exception return
38
+
39
+ 2016/07/08 (IBM_DB adapter 3.0.4, driver 3.0.3)
40
+ - Fixed issue #58 - non-string query parameters do not get prepared.
41
+
42
+ 2016/06/17 (IBM_DB adapter 3.0.3, driver 3.0.3)
43
+ - Fixed issue #59 - Can't Update Binary Files Using 3.0.x (with Ruby 2.1.0 and Rails 4.2.6)
44
+
45
+ 2016/05/24 (IBM_DB adapter 3.0.2, driver 3.0.2)
46
+ - Fixed issue #52 - Invalid foreign key ON UPDATE action specified in schema.rb
47
+ - Fixed issue #59 - Can't Upload Binary Files Using 3.0.x (with Ruby 2.1.0 and Rails 4.2.6)
48
+
49
+ 2016/01/06 (IBM_DB adapter 3.0.1, driver 3.0.1)
50
+ - Combined MacOS and Linux installation code in one file under extconf.rb to handle any Mac OS version upgrade.
51
+ - Fixed bug#49 - Regardless of what value you pass in for a clob, update_attributes will set the value to <ibm>@@@IBMTEXT@@@</ibm> in the database
52
+
53
+ 2015/09/30 (IBM_DB adapter 3.0.0, driver 3.0.0)
54
+ - Added minimum dependency for Rails version 4.2.0 and for active record 4.2.0, as some Rails 4.2 APIs are not backward compatible.
55
+ - Fixed Foreign key issues
56
+ - Changed code to remove use of serialized_attributes as it is deprecated.
57
+
58
+ 2015/07/14 (IBM_DB adapter 2.6.1, driver 2.6.1)
59
+ - Foreign key support
60
+
61
+ 2015/06/29 (IBM_DB adapter 2.6.0, driver 2.6.0)
62
+ - Enhanced installation for Windows to pull IBM Data Server Driver automatically on first use if not present
63
+ - Enhanced installation for Mac OS to pull IBM Data Server Driver automatically if not present
64
+ - Removed support for Ruby 1.9.3
65
+
66
+ 2015/06/08 (IBM_DB adapter 2.5.27, driver 2.5.27)
67
+ - Support for Ruby 2.2.x on Windows and Linux platform
68
+ - Fixed bug#28 Create table fails on db:migrate task in ActiveRecord 4.2.1 if database adapter not support foreign_keys.
69
+
70
+ 2015/04/08 (IBM_DB adapter 2.5.26, driver 2.5.26)
71
+ - Fixed bug#22 - Error 'undefined method lookup_cast_type encountered' with rails version lesser than 4.2
72
+
73
+ 2015/03/24 (IBM_DB adapter 2.5.25, driver 2.5.25)
74
+ - Support for Rails 4.2.x
75
+ - Support for Ruby 2.2.x on Windows and Linux platform
76
+
77
+ 2014/08/03 (IBM_DB adapter 2.5.18, driver 2.5.14) :
78
+ - Support for Rails 4.1.x
79
+ - Enhanced installation to pull IBM Data Server Driver automatically if not present
80
+
81
+ 2014/03/03 (IBM_DB adapter 2.5.17, driver 2.5.14) :
82
+ - Shipping binaries compatible with Ruby 2.0 for linux x86_64 systems (#29871)
83
+ - Fixed #29869
84
+ - Support microsecond timestamp.
85
+
86
+ 2014/02/26 (IBM_DB adapter 2.5.16, driver 2.5.14) :
87
+ - Yanked version 2.5.15. Hence using new version number
88
+
89
+ 2014/02/17 (IBM_DB adapter 2.5.15, driver 2.5.14) :
90
+ - Yanked version 2.5.14. Hence using new version number
91
+
92
+ 2014/02/11 (IBM_DB adapter 2.5.14, driver 2.5.14) :
93
+ - Support for Rails 4
94
+ - Support for ruby-2.0
95
+
96
+ 2014/01/28 (IBM_DB adapter 2.5.12, driver 2.5.11) :
97
+ - Supporting usage of name ibmdb as adapter along with current name ibm_db to support requirements of cloud environments
98
+
99
+ 2012/12/07 (IBM_DB adapter 2.5.11, driver 2.5.11) :
100
+ - Fixed bug #29633 - Deletes cause too many handles to be consumed and not freed
101
+ - Support for Mac OS CLI library loading to check create and drop db functionality - #29625
102
+ - Fixed #29657 - @servertype of IBM_DBAdapter could end up being nil on DB2 for Z/OS version 9
103
+
104
+ 2012/05/01 (IBM_DB adapter 2.5.10, driver 2.5.10) :
105
+ - Support for Rails-3.2
106
+ - Changes in installation process. Now user should set only one environment variable IBM_DB_HOME to DB2/IBM_Data_Server_Driver installation directory
107
+ - Fixed bug #29541 - Serialize data when corresponding field maps to CLOB type on Database
108
+ - Fixed bug #29561 - Fixed data truncation error when client and server codepages are different
109
+ - Updated IBM_DB specifics of AR test suite as per Rails-3.2.3
110
+
111
+ 2012/01/03 (IBM_DB adapter 2.5.9, driver 2.5.9) :
112
+ - Support for Create and Drop database on DB2 LUW with DB2 client version V97fp4 and above
113
+ - Fixed bug #29482 - Fixed bigint being returned as string in the adapter
114
+
115
+ 2011/09/18 (IBM_DB adapter 2.5.7, driver 2.5.7) :
116
+ - Support for Rails-3.1.0
117
+ - Fixed bug #29052 -> prepare results in empty error message
118
+ - Support for continuation of method IBM_DB.conn_error and IBM_DB.conn_errormsg - #29324
119
+ - Test suite update as for Rails-3.1.0
120
+
121
+ 2011/02/07 (IBM_DB adapter 2.5.6, driver 2.5.6) :
122
+ - Fixed Bug #28622, #28881
123
+ - Decimal datatypes will now be returned as BigDecimal type from the driver
124
+ - Changes to rollback any active transaction in the connection destructor method if connection is not explicitly closed
125
+ - Changes to have a single gem file for ruby 1.8 and ruby 1.9
126
+ 2010/07/15 (IBM_DB adapter 2.5.5, driver 2.5.5) :
127
+ - Support for datatype Graphic and Vargraphic in driver and adapter [27965]
128
+ - Support for Bigint datatype in adapter.
129
+ - Fixed bug [28295] --> IBM_DB, Unicode Version, fails with encoding error against Informix Server
130
+
131
+ 2010/05/12 (IBM_DB adapter 2.5.0, driver 2.5.0) :
132
+ - Support for Unicode with Ruby 1.9 [Data from the IBM_DB driver is returned in UTF8 format]
133
+ - Fixed bug [27954] --> Fixed Truncation of char for bit data containing a Null Terminator
134
+ - Removed handling of NilClass type data in quote method. Super class will handle appropriately.
135
+
136
+ 2010/01/21 (IBM_DB adapter 2.0.0, driver 2.0.0) :
137
+ - Support for usage of parameterized SQL queries
138
+ - Exposed constant VERSION in the driver [Feature Request: #27231]
139
+
140
+ 2009/08/21 (IBM_DB adapter 1.5.0, driver 1.5.0) :
141
+ - non-block enhancement in the ruby driver made for Ruby version 1.9. [support request #25023]
142
+ - New API's getErrormsg and getErrorstate for retrieving error messages/state added
143
+ - Re-defined raising of exception from driver. [Bug #26544]
144
+ - Made adapter changes as per the new API's exposed in the driver for retrieving error messages
145
+ - API's conn_errormsg and stmt_errormsg is been deprecated.
146
+
147
+ 2009/07/28 (IBM_DB adapter 1.1.1, driver 1.1.0) :
148
+ - Fixed bug [26705] --> Fixed the problem of primary key value starting with 100
149
+ - Support for Activerecord-2.3.3
150
+ - Added method primary_key, which returns the primary key column name of the specified table
151
+ - Test suite updated
152
+
153
+ 2009/06/17 (IBM_DB adapter 1.1.0, driver 1.1.0) :
154
+ - Support for Activerecord's Query Cache Mechanism
155
+ - rename_column support for DB2 on LUW version 9.7, DB2 on zOS 9 and enhanced rename_column support for Informix Dynamic Server
156
+ - Support for parameterized timestamp datatype feature of DB2 on LUW Version 9.7
157
+ - Enhanced support for Bigint datatype along with support for Bigserial datatype (with client version 9.7 and above) of IDS
158
+ - Callback method handle_lobs enhanced by making it to use prepared statements completely
159
+ - Handling of exceptions during fetch operations enabled
160
+
161
+ 2009/03/24 (IBM_DB adapter 1.0.5, driver 1.0.5) :
162
+ - Support for Ruby-1.9.1
163
+ - Support for SQLRowcount in driver
164
+ - Support for Activerecord-2.3.2 [test suite updated]
165
+ - Fixed bug [24663] --> Fixed pre-mature clearing of the sql array in handle_lobs
166
+ - Fixed bug [23115] --> Fixed truncation of a nested query during update
167
+ - Fixed wrong setting of SQLID for schema on zOS 8 dataserver when schema is explicitly specified.
168
+
169
+ 2009/03/06 (IBM_DB adapter 1.0.2, driver 1.0.1) :
170
+ - Support for specifying connection timeout in adapter
171
+ - Fixed Bug [23317] --> Fixed assumption of id as the primary key while updation/insertion of lob fields
172
+ - Fixed Bug [23389] --> Provided proper exception handling.
173
+ - Fixed the insertion of incorrect value for lob objects in case of has_and_belongs_to_many associations.
174
+
175
+ 2008/12/18 (IBM_DB adapter 1.0.1, driver 1.0.1) :
176
+ - Support for datatype decfloat
177
+ - Changes in installation process. Now user should set IBM_DB_INCLUDE env variable instead of IBM_DB_DIR
178
+ - Support for specifying the Authentication type to be used during connection in adapter
179
+ - Corrected the ignorance of a connection, when the connection is successful with a warning
180
+ - ActiveRecord-2.2.2 test suite changes for IBM_DB
181
+ 2008/11/06 (IBM_DB adapter 1.0.0, driver 0.10.0):
182
+ - Support for short-hand migration syntax for datatype char and double in create_table
183
+ - Support for short-hand migration syntax for datatypes xml, char and double in change_table
184
+ - Support for secure connections using SSL (SECURITY=SSL) feature of DB2 in Adapter
185
+ Note: - This is supported from client version V9.5fp2 and onwards
186
+ - Support for altering the nullability constraint of a column.
187
+ - Added correct mapping for datatype :double for DB2 and Informix (double precision)
188
+ - Method support_ddl_transactions? overridden to return true. Feature of Rails2.2
189
+ IBM Dataservers support transactional migrations.
190
+ - Change in the style of accessing driver methods
191
+ Changed from scope resolution operator to dot operator
192
+ IBM_DB::connect '<db_name>','<username>','<pwd>' to IBM_DB.connect '<db_name>','<username>','<pwd>'
193
+ - Fixed Bug [#22430] --> Fixed limit ignorance for type character [char]
194
+ - ActiveRecord-2.1.2 test suite changes for IBM_DB
195
+
196
+ 2008/09/01 (IBM_DB adapter 0.10.0, driver 0.10.0):
197
+ - Added Trusted Context support in Driver
198
+ - Made changes for the correct Mapping of Informix DataTypes to Ruby DataTypes
199
+ - ActiveRecord-2.1.0 test suite changes appropriate for DB2/IDS is been updated
200
+
201
+ 2008/06/24 (IBM_DB adapter 0.9.5, driver 0.9.5):
202
+ - Fixed Bug [#19222] --> Fixed fixture insertion of LOB columns for DB2
203
+ - Fixed Bug [#19970] --> Fixed Table schema dumper also dump views
204
+ - Fixed Bug [#20053] --> Fixed CLOB data with special chars contains null characters upon retrieval
205
+ - Fixed Bug [#20762] --> IBM_DB adapter with Rails 2.1 fails on rake db:migrate
206
+ - Cleaned up fix for Bug [#19223] and [#19224], indexes are now dumped as array without schema qualified name.
207
+ - Support for Rails-2.0.2
208
+ - Support for Rails-2.1.0
209
+ Rails-2.1.0 contains changes that generates Non-standard SQL in 2 noticed cases which won't work with SQL compliant databases like DB2
210
+ a. Handling Nullable columns in Table creation. [http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/398-non-standard-sql-generated-in-column-definition-for-nullable-columns-in-create-table-ddl-rails-2-1#ticket-398-2]
211
+ A workaround for this problem is provided from within ibm_db adapter.
212
+ b. Handling has_and_belongs_to_many association. [http://rails.lighthouseapp.com/projects/8994/tickets/394-patch-fixed-non-standard-sql-generated-by-preloading-has_and_belongs_to_many-associations].
213
+ It is not possible to provide a workaround for this from within the ibm_db adapter.
214
+ To workaround this problem please patch ActiveRecord-2.1.0 with the patch available at [http://rails.lighthouseapp.com/attachments/26975/association_preloading.diff]
215
+
216
+ 2008/04/28 (IBM_DB adapter 0.9.4, driver 0.9.4):
217
+ - Fixed bug [#19679]--> invalid values being returned for blank or null in fetch_assoc
218
+ - Fixed bug [#19223] and [#19224]--> handling of composite and unique indexes incorrect
219
+ - Support for the Rails2.0 type of migrations for columns of type xml [t.xml :xml_col1,:xml_col2]
220
+
221
+ 2008/03/10 (IBM_DB adapter 0.9.3, driver 0.9.3):
222
+ - Resolved the issue of truncation of output when stored procedure was called
223
+
224
+ 2007/11/30 (IBM_DB adapter 0.9.2, driver 0.9.1):
225
+ - Lifted index length limitation (18 chars) and fixed multiple index creation
226
+ - Fixed [#13294] limit/offset breaks subselect in db2 adapter
227
+ - Fixed error handling for metadata retrieval (tables, columns, indexes)
228
+
229
+ 2007/11/07 (IBM_DB adapter 0.9.1, driver 0.9.1):
230
+ - Fixed ibm_db driver VC80 runtime issue on Windows
231
+
232
+ 2007/09/28 (IBM_DB adapter 0.9.0, driver 0.9.0):
233
+ - Fixed ibm_db gem 0.8.5 incompatibility with DB2 CLI 9.1 FP3 and below
234
+
235
+ 2007/09/13 (IBM_DB adapter 0.8.5, driver 0.8.5):
236
+ - Fixed Ruby driver crash on Windows Vista [#13357]
237
+
238
+ 2007/07/05 (IBM_DB adapter 0.8.0, driver 0.7.0):
239
+ - Support for Informix Dynamic Server 11.10
240
+ - New driver method get_last_serial_value to retrieve last inserted serial
241
+ value for Informix Dynamic Server
242
+
243
+ 2007/06/19 (IBM_DB adapter 0.7.5, driver 0.6.0):
244
+ - Driver code (ibm_db.c) remains at the same level: 0.6.0 (no changes)
245
+ - Fixed client attributes initialization on connection setup [11264]
246
+ - Fixed rake db:schema:dump native data types limits incompatible with table create
247
+
248
+ 2007/06/01 (IBM_DB adapter 0.7.0, driver 0.6.0):
249
+ - Driver code (ibm_db.c) remains at the same level: 0.6.0 (no changes)
250
+ - Fixed remaining failure on {:null => true} option for XML data type [#10877]
251
+ - Fixed handling of {:id => false} option during table creation in DB2 for zOS
252
+ - Fixed handle_lobs failures in table creation for has_many/belongs_to [#10701]
253
+ - Fixe db2-i5-zOS.yaml content (removed inadvertent tab) [#11234]
254
+
255
+ 2007/05/10 (IBM_DB adapter 0.6.5, driver 0.6.0):
256
+ - Driver code (ibm_db.c) remains at the same level: 0.6.0 (no changes)
257
+ - Fixed regression for reconnect after being inactive (connection recycle)
258
+ - Fixed rake db:schema:load failures on boolean data type [#10683]
259
+ - Fixed XML default option (:null => true for XML data type) [#10754]
260
+ - Fixed DB2 for zOS version 9 handling of column changes for DEFAULT NULL
261
+
262
+ 2007/04/30 (0.6.0):
263
+ - Support for remote connections to DB2 Universal Database on z/OS version 9
264
+ - Support for result set pagination via ActiveRecord add_limit_offset! method
265
+ for DB2 Universal Database on z/OS and i5/OS
266
+ - Defect fixes
267
+ - Improved documentation
268
+
269
+ 2007/04/20 (0.4.6):
270
+ - Fixed XML columns creation default value (NOT NULL)
271
+ - Fixed border case for IS NULL in where clauses
272
+ - Improved documentation (connection attributes)
273
+
274
+ 2007/04/20 (0.4.5):
275
+ - Fixed reconnect problems: driver (IBM_DB::active) and adapter (active)
276
+ - Client connection attribute rename (app_user to replace user)
277
+ - Improved support for ROWID data type (DB2 for zOS version 8 and 9)
278
+
279
+ 2007/03/21 (0.4.0):
280
+ - Support added for remote connectivity to DB2 zOS version 8
281
+ - Support added for remote connectivity to DB2 i5 v5r3 and v5r4
282
+ - Improved migration support (added change_column method)
283
+ - Support for setting and retrieving values for client attributes (user,
284
+ account, application, workstation)
285
+
286
+ 2006/10/31 (0.2.0):
287
+ - Significant performance improvements
288
+ - Improved stored procedure support at driver level
289
+ - Added support for Large Object data types (LOBs) greater than 32K (BLOB, CLOB, XML) in size
290
+ - Added XML data type support for native storage of XML documents
291
+ - Significant quality improvements, through many bug fixes in the driver and adapter
292
+ - Improved migration support (added add_column and remove_column methods)
293
+
294
+ 2006/06/07 (0.1.0):
295
+
296
+ - Fixed compatibility issue with other adapters
297
+ - If a schema is omitted in database.yml, the username is now used as default schema
298
+ - Introduced descriptive CLI error messages when a connection or an execute statement fails
299
+ - Introduced check against schema in method 'indexes'
data/LICENSE ADDED
@@ -0,0 +1,55 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
10
+
11
+ "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
12
+
13
+ "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
14
+
15
+ "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
16
+
17
+ "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
18
+
19
+ "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
20
+
21
+ "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
22
+
23
+ "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
24
+
25
+ "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
26
+
27
+ "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
28
+
29
+ 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
30
+
31
+ 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
32
+
33
+ 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
34
+
35
+ 1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
36
+
37
+ 2. You must cause any modified files to carry prominent notices stating that You changed the files; and
38
+
39
+ 3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
40
+
41
+ 4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
42
+
43
+ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
44
+
45
+ 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
46
+
47
+ 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
48
+
49
+ 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
50
+
51
+ 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
52
+
53
+ 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
54
+
55
+ END OF TERMS AND CONDITIONS
data/MANIFEST ADDED
@@ -0,0 +1,14 @@
1
+ CHANGES
2
+ README
3
+ LICENSE
4
+ ext/extconf.rb
5
+ ext/ibm_db.c
6
+ ext/ruby_ibm_db.h
7
+ lib/IBM_DB.rb
8
+ lib/linux32/ibm_db.so
9
+ lib/mswin32/ibm_db.so
10
+ lib/active_record/connection_adapters/ibm_db_adapter.rb
11
+ lib/active_record/vendor/db2-i5-zOS.yaml
12
+ test/activerecord/native_ibm_db/connection.rb
13
+ test/ibm_db_test.rb
14
+ MANIFEST
@@ -0,0 +1,39 @@
1
+ +-------------------------------------------+-------------------------------------------+
2
+ | README for Parameterized Queries Support in Ruby-on-Rails/ Activerecord applications |
3
+ +-------------------------------------------+-------------------------------------------+
4
+
5
+ Enabling Usage of Parameterized Queries with Ruby-on-Rails / Activerecord applications
6
+ ======================================================================================
7
+ To enable usage of parameterized SQL queries with Ruby-on-Rails/ActiveRecord applications, in your connection configuration (database.yml), set "parameterized" to true. By default "parameterized" is false (if not specified). A sample database.yml file showing development section with parameterized queries enabled looks as below
8
+
9
+ development:
10
+ adapter: ibm_db
11
+ username: db2inst1
12
+ password: secret
13
+ database: devdb
14
+ #schema: db2inst1
15
+ #host: localhost
16
+ #port: 50000
17
+ #account: my_account
18
+ #app_user: my_app_user
19
+ #application: my_application
20
+ #workstation: my_workstation
21
+ parameterized: true
22
+
23
+ Similarly for the other sections (test/production) of the database.yml file set "parameterized" to true to enable usage of parameterized SQL queries
24
+
25
+
26
+ Supported Activerecord Versions
27
+ ===============================
28
+ Activerecord-5.0.7 and above
29
+
30
+
31
+ Supported Operating Systems and Databases
32
+ =========================================
33
+ Refer the main README
34
+
35
+
36
+ Feedback
37
+ ========
38
+ Your feedback is very much appreciated and expected through github:
39
+ - github issue: https://github.com/ibmdb/ruby-ibmdb/issues
data/README ADDED
@@ -0,0 +1,210 @@
1
+ =====================================================================
2
+ README for the IBM_DB Adapter >= 5.5.0 and Driver >= 3.1.0
3
+ For ActiveRecord Version >= 7.1.x (and Rails >= 7.1.x)
4
+ =====================================================================
5
+
6
+ Supported Operating Systems
7
+ ============================
8
+ - Linux 32/64 bit
9
+ - Microsoft Windows 32 bit
10
+ - IBM AIX 32/64 bit
11
+ - HP-UX 32/64 bit
12
+ - Sun Solaris 32/64 bit
13
+ - MAC M1 ARM 64 bit
14
+
15
+
16
+ Supported Databases
17
+ ====================
18
+ - IBM DB2 Universal Database on Linux/Unix/Windows versions 10 Fixpak 5 and above
19
+ - Remote connections to IBM DB2 Universal Database on i5/OS versions 7.2 and above.
20
+ - Remote connections to IBM DB2 Universal Database on z/OS version 11 and above
21
+
22
+
23
+
24
+ Installing the IBM_DB adapter and driver as a Ruby gem
25
+ =======================================================
26
+ The IBM_DB gem is an ActiveRecord adapter. Installing the IBM_DB adapter and driver as a gem enables any application in the
27
+ Ruby environment, including Rails, to interact with IBM data servers.
28
+
29
+
30
+ The IBM_DB driver can also be built separately (from source) and used in direct API calls.
31
+
32
+
33
+ 1. Windows platforms:
34
+ =====================
35
+ INSTALL (as Ruby gem)
36
+ To remove previous gem version (optionally):
37
+ D:\>gem uninstall ibm_db
38
+ Successfully uninstalled ibm_db version 3.0.5
39
+
40
+ Example:
41
+ D:\>gem install ibm_db
42
+ Fetching: ibm_db-4.0.0-x86-mingw32.gem (100%)
43
+ Successfully installed ibm_db-4.0.0-x86-mingw32
44
+ 1 gem installed
45
+ Installing ri documentation for ibm_db-4.0.0-x86-mingw32...
46
+ Installing RDoc documentation for ibm_db-4.0.0-x86-mingw32...
47
+
48
+
49
+
50
+ 2. Linux and Unix platforms:
51
+ ============================
52
+
53
+ INSTALL (as Ruby gem)
54
+ To remove previous gem version (optionally):
55
+ $ gem uninstall ibm_db
56
+ Successfully uninstalled ibm_db version 3.0.5
57
+
58
+
59
+ $ gem install ibm_db
60
+ Building native extensions. This could take a while...
61
+ Successfully installed ibm_db-4.0.0
62
+ 1 gem installed
63
+ Installing ri documentation for ibm_db-4.0.0...
64
+ Installing RDoc documentation for ibm_db-4.0.0...
65
+
66
+
67
+ BUILD (optionally) ibm_db gem from sources (ibm_db-x.x.x.tar.gz):
68
+ 1. Download source from Github
69
+ https://github.com/ibmdb/ruby-ibmdb
70
+ 2. Build gem from specification (IBM_DB.gemspec)
71
+ $ cd IBM_DB_Adapter/ibm_db
72
+ $ gem build IBM_DB.gemspec
73
+
74
+
75
+
76
+ TEST (simple gem install verification)
77
+ ======================================
78
+ $ rails new myApp -d ibm_db
79
+ $ cd myApp
80
+ $ rails generate scaffold Wood name:string price:float
81
+ $ vi config/database.yml
82
+ $ rake db:migrate
83
+ $ rails console #rails server
84
+
85
+
86
+ Instructions for building and installing the IBM_DB driver from source
87
+ =======================================================================
88
+ Building the driver manually as described below is not required if the install
89
+ process above has been pursued. This manual procedure is in fact automated
90
+ on Linux and UNIX platforms by the IBM_DB gem install, but is presented
91
+ here only for reference.
92
+
93
+ Prerequisites:
94
+ Install Ruby from:
95
+ https://github.com/ibmdb/ruby-ibmdb
96
+
97
+ Setup the environment
98
+
99
+ Linux and Unix platforms:
100
+ Note: commands may vary depending on the shell used
101
+ - To setup DB2 environment while using an arbitrary user account
102
+ (other than the DB2 install user account):
103
+ Example:
104
+ $ . /home/db2inst1/sqllib/db2profile
105
+
106
+ - To compile and link with DB2 client libraries:
107
+ $ export IBM_DB_HOME=DB2HOME (eg. /home/db2inst1/sqllib or /opt/ibm/db2/v10.5)
108
+
109
+ Windows platforms:
110
+ - Set ruby devkit environment:
111
+ - To compile and link with DB2 client libraries:
112
+ $ set IBM_DB_HOME=DB2HOME (eg. C:\Program Files\IBM\SQLLIB)
113
+
114
+ Build the driver:
115
+ - $ cd rubyibm_source/IBM_DB_Adapter/ibm_db/ext
116
+ - $ ruby extconf.rb
117
+ - $ ridk exec make
118
+
119
+ Build the ibm_db gem
120
+ - $ cp rubyibm_source/IBM_DB_Adapter/ibm_db/ext/ibm_db.so rubyibm_source/IBM_DB_Adapter/ibm_db/lib
121
+ # On windows binaries are generated for 2.x version of ruby
122
+ # and placed under rb2x directory. The file ibm_db.rb is to ensure that binary is loaded based on runtime
123
+
124
+ - $ cd rubyibm_source/IBM_DB_Adapter/ibm_db
125
+ - $ gem build IBM_DB.gemspec
126
+
127
+ Running tests
128
+ =============
129
+ Testing the IBM_DB Adapter
130
+
131
+ 1) a) Copy the files under test directory of ibm_db gem to the test directory of Activerecord following the same directory structure.
132
+ These files contain modifications in some test files of AR suite to handle ibm_db specifics. Hence make sure these files are replaced in the AR test suite properly.
133
+ b) Rename warhouse-things.yml to warehouse_things.yml under fixtures directory
134
+ 2) Edit the Rakefile to include ibm_db in list of adapters
135
+ %w( mysql mysql2 postgresql sqlite3 sqlite3_mem firebird db2 oracle sybase openbase ibm_db frontbase jdbcmysql jdbcpostgresql jdbcsqlite3 jdbcderby jdbch2 jdbchsqldb )
136
+ 3) Configure the connection information in test/config.yml for ibm_db
137
+ Set Environment Variables DB2_USER1, DB2_PASSWD1, DB2_DATABASE1, DB2_HOST1, DB2_PORT1 etc... accordingly.
138
+ 4) run the test suite - rake test_ibm_db
139
+
140
+ Running IBM_DB driver test suite
141
+
142
+ 1) Copy over the test directory under source to lib directory of installed ibm_db under $GEM_HOME
143
+ 2) Edit config.yml file to provide database connection information
144
+ 3) Run the test suite
145
+ $ rake onlytests
146
+ 4) To run single test
147
+ export SINGLE_RUBY_TEST=<test file name> #Eg: export SINGLE_RUBY_TEST=test_000_PrepareDb.rb
148
+ rake onlytests
149
+
150
+ Limitations and known problems
151
+ ==============================
152
+ - ActiveRecord remove_column method is not supported for DB2 zOS
153
+ - The driver returns an error when you try to insert a TIMESTAMP value into a DATE column.
154
+ To fix this, please ensure that the following configuration keyword PATCH2=58 is set
155
+ in the COMMON section of your DB2 CLI initialization file (db2cli.ini):
156
+ - set: db2 UPDATE CLI CFG FOR SECTION COMMON USING PATCH2 58
157
+ - verify: db2 GET CLI CFG FOR SECTION COMMON
158
+ Please refer to http://publib.boulder.ibm.com/infocenter/db2luw/v9/topic/com.ibm.db2.udb.apdv.cli.doc/doc/c0007882.htm
159
+ for more information.
160
+ - The behaviour of ActiveRecord::Base.find(:first) without an :order attribute can be unpredictable.
161
+ The first record (i.e. the record with the minimum id) may be not retrieved. In a relational model,
162
+ the order of the rows returned is unpredictable and independent of the order of insertion.
163
+ This issue may be addressed in a future release.
164
+ - Rails applications on DB2 9 require the APPLHEAPSZ database configuration parameter to be
165
+ set to or above 1024. You will need to set this parameter for each database for which you will be
166
+ running DB2 on Rails applications. Following is the command syntax for updating the
167
+ applheapsz parameter:
168
+ > db2 update db cfg for <database_name> using APPLHEAPSZ 1024
169
+ To enable this parameter, you need to restart your DB2 instance.
170
+ - If you see connectivity issues with Informix Dynamic Server, please ensure that the server is configured to accept DRDA connections.
171
+ Please refer to http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.admin.doc/admin154.htm for more information.
172
+ - IBM_DB is not supported on JRuby. As stated in the JRuby Wiki, "Basics of Getting JRuby Running":
173
+ 'You may install other gems, but keep in mind that libraries with C extension dependencies
174
+ will not work in JRuby.' http://www.headius.com/jrubywiki/index.php/Getting_Started
175
+ The IBM_DB adapter relies on IBM_DB driver (C extension) and the IBM Driver for ODBC and
176
+ CLI to access databases on IBM data servers. Alternatively, you can either use the regular C
177
+ implementation of Ruby, or use ActiveRecord-JDBC adapter to access databases.
178
+
179
+ - The following tests are expected to fail on DB2 LUW
180
+ - test_read_attributes_before_type_cast_on_datetime
181
+ - test_to_xml
182
+ - test_native_types
183
+ - test_counting
184
+ - test_counting_with_column_name_and_hash
185
+ - test_counting_with_empty_hash_conditions
186
+ - test_counting_with_single_conditions
187
+ - test_counting_with_single_hash
188
+ - Finders methods first, second, last, nth from first, nth from last, with limit, with offset etc. are expected to fail
189
+ Note :- 1) The test cases from HasManyAssociations (4-8) above are found failing only when run as part of
190
+ the complete suite. However they pass when run standalone.
191
+ 2) Also there are two test cases (test_validate_uniqueness_with_non_standard_table_names, test_update_all_with_non_standard_table_name)which run against table with non-standard name. Given that DB2/IDS is standard compliant these test cases are expected to fail.
192
+ To have these test cases passing rename the fixtures file warehouse-things to warehouse_things.
193
+ - The test cases do not follow the DB2 rules are expectedto fail
194
+
195
+
196
+ Unicode Support
197
+ ===============
198
+ - Data returned from the driver will be in UTF8 encoding format.
199
+ - The input data to the driver can be in any Ruby supported encoding format.
200
+
201
+ To Do
202
+ ====
203
+ - Support ActiveRecord remove_column method for DB2 zOS
204
+ - Open issues in Github
205
+
206
+
207
+ Feedback
208
+ ========
209
+ Your feedback is very much appreciated and expected through github:
210
+ - github issue: https://github.com/ibmdb/ruby-ibmdb/issues