ibm_db 5.1.0 → 5.6.1

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 (626) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +29 -0
  3. data/LICENSE +55 -18
  4. data/README +4 -2
  5. data/ext/Makefile +26 -23
  6. data/ext/extconf.rb +32 -34
  7. data/ext/ibm_db.c +40 -54
  8. data/ext/ibm_db.o +0 -0
  9. data/ext/ibm_db.so +0 -0
  10. data/ext/mkmf.log +16 -17
  11. data/ext/ruby_ibm_db_cli.c +2 -1
  12. data/ext/ruby_ibm_db_cli.h +8 -0
  13. data/ext/ruby_ibm_db_cli.o +0 -0
  14. data/lib/IBM_DB.rb +1 -1
  15. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +3168 -2354
  16. data/test/active_record/connection_adapters/fake_adapter.rb +5 -2
  17. data/test/activejob/destroy_association_async_test.rb +305 -0
  18. data/test/activejob/destroy_async_job_not_present_test.rb +31 -0
  19. data/test/activejob/helper.rb +15 -0
  20. data/test/assets/schema_dump_5_1.yml +345 -0
  21. data/test/cases/adapter_prevent_writes_test.rb +334 -0
  22. data/test/cases/adapter_test.rb +432 -218
  23. data/test/cases/adapters/mysql2/active_schema_test.rb +85 -75
  24. data/test/cases/adapters/mysql2/auto_increment_test.rb +34 -0
  25. data/test/cases/adapters/mysql2/bind_parameter_test.rb +5 -3
  26. data/test/cases/adapters/mysql2/boolean_test.rb +6 -4
  27. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +26 -24
  28. data/test/cases/adapters/mysql2/charset_collation_test.rb +20 -17
  29. data/test/cases/adapters/mysql2/connection_test.rb +48 -50
  30. data/test/cases/adapters/mysql2/count_deleted_rows_with_lock_test.rb +28 -0
  31. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +23 -19
  32. data/test/cases/adapters/mysql2/enum_test.rb +32 -11
  33. data/test/cases/adapters/mysql2/explain_test.rb +13 -11
  34. data/test/cases/adapters/mysql2/json_test.rb +17 -188
  35. data/test/cases/adapters/mysql2/mysql2_adapter_prevent_writes_test.rb +208 -0
  36. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +183 -28
  37. data/test/cases/adapters/mysql2/nested_deadlock_test.rb +75 -0
  38. data/test/cases/adapters/mysql2/optimizer_hints_test.rb +69 -0
  39. data/test/cases/adapters/mysql2/schema_migrations_test.rb +26 -21
  40. data/test/cases/adapters/mysql2/schema_test.rb +24 -22
  41. data/test/cases/adapters/mysql2/set_test.rb +32 -0
  42. data/test/cases/adapters/mysql2/sp_test.rb +10 -8
  43. data/test/cases/adapters/mysql2/sql_types_test.rb +8 -6
  44. data/test/cases/adapters/mysql2/table_options_test.rb +93 -10
  45. data/test/cases/adapters/mysql2/transaction_test.rb +151 -0
  46. data/test/cases/adapters/mysql2/unsigned_type_test.rb +11 -9
  47. data/test/cases/adapters/mysql2/virtual_column_test.rb +66 -0
  48. data/test/cases/adapters/postgresql/active_schema_test.rb +40 -25
  49. data/test/cases/adapters/postgresql/array_test.rb +118 -63
  50. data/test/cases/adapters/postgresql/bit_string_test.rb +12 -10
  51. data/test/cases/adapters/postgresql/bytea_test.rb +26 -25
  52. data/test/cases/adapters/postgresql/case_insensitive_test.rb +10 -9
  53. data/test/cases/adapters/postgresql/change_schema_test.rb +7 -5
  54. data/test/cases/adapters/postgresql/cidr_test.rb +2 -0
  55. data/test/cases/adapters/postgresql/citext_test.rb +58 -58
  56. data/test/cases/adapters/postgresql/collation_test.rb +17 -15
  57. data/test/cases/adapters/postgresql/composite_test.rb +25 -23
  58. data/test/cases/adapters/postgresql/connection_test.rb +73 -85
  59. data/test/cases/adapters/postgresql/create_unlogged_tables_test.rb +74 -0
  60. data/test/cases/adapters/postgresql/datatype_test.rb +19 -22
  61. data/test/cases/adapters/postgresql/date_test.rb +42 -0
  62. data/test/cases/adapters/postgresql/domain_test.rb +9 -7
  63. data/test/cases/adapters/postgresql/enum_test.rb +12 -10
  64. data/test/cases/adapters/postgresql/explain_test.rb +10 -8
  65. data/test/cases/adapters/postgresql/extension_migration_test.rb +13 -12
  66. data/test/cases/adapters/postgresql/foreign_table_test.rb +109 -0
  67. data/test/cases/adapters/postgresql/full_text_test.rb +8 -6
  68. data/test/cases/adapters/postgresql/geometric_test.rb +57 -63
  69. data/test/cases/adapters/postgresql/hstore_test.rb +288 -280
  70. data/test/cases/adapters/postgresql/infinity_test.rb +54 -15
  71. data/test/cases/adapters/postgresql/integer_test.rb +2 -0
  72. data/test/cases/adapters/postgresql/interval_test.rb +99 -0
  73. data/test/cases/adapters/postgresql/json_test.rb +16 -201
  74. data/test/cases/adapters/postgresql/ltree_test.rb +14 -16
  75. data/test/cases/adapters/postgresql/money_test.rb +47 -16
  76. data/test/cases/adapters/postgresql/network_test.rb +36 -28
  77. data/test/cases/adapters/postgresql/numbers_test.rb +7 -5
  78. data/test/cases/adapters/postgresql/optimizer_hints_test.rb +71 -0
  79. data/test/cases/adapters/postgresql/partitions_test.rb +22 -0
  80. data/test/cases/adapters/postgresql/postgresql_adapter_prevent_writes_test.rb +205 -0
  81. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +178 -136
  82. data/test/cases/adapters/postgresql/prepared_statements_disabled_test.rb +27 -0
  83. data/test/cases/adapters/postgresql/quoting_test.rb +12 -6
  84. data/test/cases/adapters/postgresql/range_test.rb +406 -292
  85. data/test/cases/adapters/postgresql/referential_integrity_test.rb +16 -15
  86. data/test/cases/adapters/postgresql/rename_table_test.rb +9 -8
  87. data/test/cases/adapters/postgresql/schema_authorization_test.rb +14 -23
  88. data/test/cases/adapters/postgresql/schema_test.rb +207 -91
  89. data/test/cases/adapters/postgresql/serial_test.rb +9 -7
  90. data/test/cases/adapters/postgresql/statement_pool_test.rb +26 -6
  91. data/test/cases/adapters/postgresql/timestamp_test.rb +17 -15
  92. data/test/cases/adapters/postgresql/transaction_nested_test.rb +114 -0
  93. data/test/cases/adapters/postgresql/transaction_test.rb +189 -0
  94. data/test/cases/adapters/postgresql/type_lookup_test.rb +12 -10
  95. data/test/cases/adapters/postgresql/utils_test.rb +11 -9
  96. data/test/cases/adapters/postgresql/uuid_test.rb +226 -109
  97. data/test/cases/adapters/postgresql/xml_test.rb +10 -14
  98. data/test/cases/adapters/sqlite3/collation_test.rb +26 -15
  99. data/test/cases/adapters/sqlite3/copy_table_test.rb +31 -28
  100. data/test/cases/adapters/sqlite3/explain_test.rb +13 -11
  101. data/test/cases/adapters/sqlite3/json_test.rb +29 -0
  102. data/test/cases/adapters/sqlite3/quoting_test.rb +35 -57
  103. data/test/cases/adapters/sqlite3/sqlite3_adapter_prevent_writes_test.rb +186 -0
  104. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +318 -131
  105. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +11 -11
  106. data/test/cases/adapters/sqlite3/statement_pool_test.rb +7 -6
  107. data/test/cases/adapters/sqlite3/transaction_test.rb +123 -0
  108. data/test/cases/aggregations_test.rb +14 -12
  109. data/test/cases/annotate_test.rb +46 -0
  110. data/test/cases/ar_schema_test.rb +153 -86
  111. data/test/cases/arel/attributes/attribute_test.rb +1145 -0
  112. data/test/cases/arel/attributes/math_test.rb +83 -0
  113. data/test/cases/arel/attributes_test.rb +27 -0
  114. data/test/cases/arel/collectors/bind_test.rb +40 -0
  115. data/test/cases/arel/collectors/composite_test.rb +47 -0
  116. data/test/cases/arel/collectors/sql_string_test.rb +41 -0
  117. data/test/cases/arel/collectors/substitute_bind_collector_test.rb +48 -0
  118. data/test/cases/arel/crud_test.rb +65 -0
  119. data/test/cases/arel/delete_manager_test.rb +53 -0
  120. data/test/cases/arel/factory_methods_test.rb +46 -0
  121. data/test/cases/arel/helper.rb +45 -0
  122. data/test/cases/arel/insert_manager_test.rb +241 -0
  123. data/test/cases/arel/nodes/and_test.rb +30 -0
  124. data/test/cases/arel/nodes/as_test.rb +36 -0
  125. data/test/cases/arel/nodes/ascending_test.rb +46 -0
  126. data/test/cases/arel/nodes/bin_test.rb +35 -0
  127. data/test/cases/arel/nodes/binary_test.rb +29 -0
  128. data/test/cases/arel/nodes/bind_param_test.rb +22 -0
  129. data/test/cases/arel/nodes/case_test.rb +96 -0
  130. data/test/cases/arel/nodes/casted_test.rb +18 -0
  131. data/test/cases/arel/nodes/comment_test.rb +22 -0
  132. data/test/cases/arel/nodes/count_test.rb +35 -0
  133. data/test/cases/arel/nodes/delete_statement_test.rb +36 -0
  134. data/test/cases/arel/nodes/descending_test.rb +46 -0
  135. data/test/cases/arel/nodes/distinct_test.rb +21 -0
  136. data/test/cases/arel/nodes/equality_test.rb +62 -0
  137. data/test/cases/arel/nodes/extract_test.rb +43 -0
  138. data/test/cases/arel/nodes/false_test.rb +21 -0
  139. data/test/cases/arel/nodes/grouping_test.rb +26 -0
  140. data/test/cases/arel/nodes/infix_operation_test.rb +42 -0
  141. data/test/cases/arel/nodes/insert_statement_test.rb +44 -0
  142. data/test/cases/arel/nodes/named_function_test.rb +48 -0
  143. data/test/cases/arel/nodes/node_test.rb +22 -0
  144. data/test/cases/arel/nodes/not_test.rb +31 -0
  145. data/test/cases/arel/nodes/or_test.rb +36 -0
  146. data/test/cases/arel/nodes/over_test.rb +69 -0
  147. data/test/cases/arel/nodes/select_core_test.rb +79 -0
  148. data/test/cases/arel/nodes/select_statement_test.rb +51 -0
  149. data/test/cases/arel/nodes/sql_literal_test.rb +75 -0
  150. data/test/cases/arel/nodes/sum_test.rb +35 -0
  151. data/test/cases/arel/nodes/table_alias_test.rb +29 -0
  152. data/test/cases/arel/nodes/true_test.rb +21 -0
  153. data/test/cases/arel/nodes/unary_operation_test.rb +41 -0
  154. data/test/cases/arel/nodes/update_statement_test.rb +60 -0
  155. data/test/cases/arel/nodes/window_test.rb +81 -0
  156. data/test/cases/arel/nodes_test.rb +34 -0
  157. data/test/cases/arel/select_manager_test.rb +1238 -0
  158. data/test/cases/arel/support/fake_record.rb +135 -0
  159. data/test/cases/arel/table_test.rb +216 -0
  160. data/test/cases/arel/update_manager_test.rb +126 -0
  161. data/test/cases/arel/visitors/dispatch_contamination_test.rb +78 -0
  162. data/test/cases/arel/visitors/dot_test.rb +90 -0
  163. data/test/cases/arel/visitors/mysql_test.rb +157 -0
  164. data/test/cases/arel/visitors/postgres_test.rb +366 -0
  165. data/test/cases/arel/visitors/sqlite_test.rb +75 -0
  166. data/test/cases/arel/visitors/to_sql_test.rb +750 -0
  167. data/test/cases/associations/belongs_to_associations_test.rb +510 -158
  168. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +4 -2
  169. data/test/cases/associations/callbacks_test.rb +56 -38
  170. data/test/cases/associations/cascaded_eager_loading_test.rb +118 -61
  171. data/test/cases/associations/eager_load_includes_full_sti_class_test.rb +138 -18
  172. data/test/cases/associations/eager_load_nested_include_test.rb +38 -37
  173. data/test/cases/associations/eager_singularization_test.rb +21 -21
  174. data/test/cases/associations/eager_test.rb +559 -415
  175. data/test/cases/associations/extension_test.rb +18 -12
  176. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +234 -213
  177. data/test/cases/associations/has_many_associations_test.rb +1038 -465
  178. data/test/cases/associations/has_many_through_associations_test.rb +558 -249
  179. data/test/cases/associations/has_one_associations_test.rb +294 -129
  180. data/test/cases/associations/has_one_through_associations_test.rb +121 -75
  181. data/test/cases/associations/inner_join_association_test.rb +114 -38
  182. data/test/cases/associations/inverse_associations_test.rb +606 -398
  183. data/test/cases/associations/join_model_test.rb +158 -148
  184. data/test/cases/associations/left_outer_join_association_test.rb +59 -24
  185. data/test/cases/associations/nested_through_associations_test.rb +166 -109
  186. data/test/cases/associations/required_test.rb +35 -10
  187. data/test/cases/associations_test.rb +241 -110
  188. data/test/cases/attribute_methods/read_test.rb +11 -11
  189. data/test/cases/attribute_methods_test.rb +413 -298
  190. data/test/cases/attributes_test.rb +145 -27
  191. data/test/cases/autosave_association_test.rb +681 -436
  192. data/test/cases/base_prevent_writes_test.rb +229 -0
  193. data/test/cases/base_test.rb +599 -542
  194. data/test/cases/batches_test.rb +288 -82
  195. data/test/cases/binary_test.rb +26 -31
  196. data/test/cases/bind_parameter_test.rb +194 -21
  197. data/test/cases/boolean_test.rb +52 -0
  198. data/test/cases/cache_key_test.rb +110 -5
  199. data/test/cases/calculations_test.rb +740 -177
  200. data/test/cases/callbacks_test.rb +74 -207
  201. data/test/cases/clone_test.rb +15 -10
  202. data/test/cases/coders/json_test.rb +2 -0
  203. data/test/cases/coders/yaml_column_test.rb +16 -13
  204. data/test/cases/collection_cache_key_test.rb +177 -20
  205. data/test/cases/column_alias_test.rb +9 -7
  206. data/test/cases/column_definition_test.rb +10 -68
  207. data/test/cases/comment_test.rb +166 -107
  208. data/test/cases/connection_adapters/adapter_leasing_test.rb +14 -10
  209. data/test/cases/connection_adapters/connection_handler_test.rb +358 -51
  210. data/test/cases/connection_adapters/connection_handlers_multi_db_test.rb +400 -0
  211. data/test/cases/connection_adapters/connection_handlers_multi_pool_config_test.rb +103 -0
  212. data/test/cases/connection_adapters/connection_handlers_sharding_db_test.rb +499 -0
  213. data/test/cases/connection_adapters/connection_swapping_nested_test.rb +457 -0
  214. data/test/cases/connection_adapters/legacy_connection_handlers_multi_db_test.rb +486 -0
  215. data/test/cases/connection_adapters/legacy_connection_handlers_sharding_db_test.rb +586 -0
  216. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +319 -138
  217. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +62 -50
  218. data/test/cases/connection_adapters/schema_cache_test.rb +259 -26
  219. data/test/cases/connection_adapters/type_lookup_test.rb +96 -95
  220. data/test/cases/connection_management_test.rb +13 -11
  221. data/test/cases/connection_pool_test.rb +316 -83
  222. data/test/cases/core_test.rb +82 -58
  223. data/test/cases/counter_cache_test.rb +204 -50
  224. data/test/cases/custom_locking_test.rb +5 -3
  225. data/test/cases/database_configurations/hash_config_test.rb +74 -0
  226. data/test/cases/database_configurations/resolver_test.rb +150 -0
  227. data/test/cases/database_configurations_test.rb +145 -0
  228. data/test/cases/database_selector_test.rb +296 -0
  229. data/test/cases/database_statements_test.rb +18 -16
  230. data/test/cases/date_test.rb +8 -16
  231. data/test/cases/date_time_precision_test.rb +100 -78
  232. data/test/cases/date_time_test.rb +23 -8
  233. data/test/cases/defaults_test.rb +106 -71
  234. data/test/cases/delegated_type_test.rb +57 -0
  235. data/test/cases/dirty_test.rb +419 -223
  236. data/test/cases/disconnected_test.rb +6 -6
  237. data/test/cases/dup_test.rb +54 -27
  238. data/test/cases/enum_test.rb +461 -82
  239. data/test/cases/errors_test.rb +7 -7
  240. data/test/cases/explain_subscriber_test.rb +17 -15
  241. data/test/cases/explain_test.rb +11 -19
  242. data/test/cases/filter_attributes_test.rb +153 -0
  243. data/test/cases/finder_respond_to_test.rb +14 -14
  244. data/test/cases/finder_test.rb +669 -287
  245. data/test/cases/fixture_set/file_test.rb +34 -38
  246. data/test/cases/fixtures_test.rb +833 -176
  247. data/test/cases/forbidden_attributes_protection_test.rb +32 -67
  248. data/test/cases/habtm_destroy_order_test.rb +25 -25
  249. data/test/cases/helper.rb +78 -49
  250. data/test/cases/hot_compatibility_test.rb +33 -32
  251. data/test/cases/i18n_test.rb +18 -17
  252. data/test/cases/inheritance_test.rb +180 -115
  253. data/test/cases/insert_all_test.rb +489 -0
  254. data/test/cases/instrumentation_test.rb +101 -0
  255. data/test/cases/integration_test.rb +119 -31
  256. data/test/cases/invalid_connection_test.rb +18 -16
  257. data/test/cases/invertible_migration_test.rb +183 -43
  258. data/test/cases/json_attribute_test.rb +35 -0
  259. data/test/cases/json_serialization_test.rb +57 -58
  260. data/test/cases/json_shared_test_cases.rb +290 -0
  261. data/test/cases/locking_test.rb +413 -119
  262. data/test/cases/log_subscriber_test.rb +68 -26
  263. data/test/cases/marshal_serialization_test.rb +39 -0
  264. data/test/cases/migration/change_schema_test.rb +118 -72
  265. data/test/cases/migration/change_table_test.rb +138 -30
  266. data/test/cases/migration/check_constraint_test.rb +162 -0
  267. data/test/cases/migration/column_attributes_test.rb +45 -35
  268. data/test/cases/migration/column_positioning_test.rb +18 -6
  269. data/test/cases/migration/columns_test.rb +93 -77
  270. data/test/cases/migration/command_recorder_test.rb +121 -34
  271. data/test/cases/migration/compatibility_test.rb +578 -23
  272. data/test/cases/migration/create_join_table_test.rb +35 -25
  273. data/test/cases/migration/foreign_key_test.rb +503 -284
  274. data/test/cases/migration/helper.rb +4 -3
  275. data/test/cases/migration/index_test.rb +119 -70
  276. data/test/cases/migration/logger_test.rb +9 -6
  277. data/test/cases/migration/pending_migrations_test.rb +88 -34
  278. data/test/cases/migration/references_foreign_key_test.rb +164 -150
  279. data/test/cases/migration/references_index_test.rb +38 -19
  280. data/test/cases/migration/references_statements_test.rb +15 -14
  281. data/test/cases/migration/rename_table_test.rb +53 -30
  282. data/test/cases/migration_test.rb +637 -269
  283. data/test/cases/migrator_test.rb +191 -135
  284. data/test/cases/mixin_test.rb +7 -11
  285. data/test/cases/modules_test.rb +36 -34
  286. data/test/cases/multi_db_migrator_test.rb +223 -0
  287. data/test/cases/multiparameter_attributes_test.rb +60 -33
  288. data/test/cases/multiple_db_test.rb +16 -22
  289. data/test/cases/nested_attributes_test.rb +341 -320
  290. data/test/cases/nested_attributes_with_callbacks_test.rb +26 -24
  291. data/test/cases/null_relation_test.rb +84 -0
  292. data/test/cases/numeric_data_test.rb +93 -0
  293. data/test/cases/persistence_test.rb +361 -269
  294. data/test/cases/pooled_connections_test.rb +18 -26
  295. data/test/cases/prepared_statement_status_test.rb +48 -0
  296. data/test/cases/primary_keys_test.rb +210 -104
  297. data/test/cases/query_cache_test.rb +610 -141
  298. data/test/cases/quoting_test.rb +132 -31
  299. data/test/cases/readonly_test.rb +49 -48
  300. data/test/cases/reaper_test.rb +146 -32
  301. data/test/cases/reflection_test.rb +167 -156
  302. data/test/cases/relation/delegation_test.rb +49 -36
  303. data/test/cases/relation/delete_all_test.rb +117 -0
  304. data/test/cases/relation/merging_test.rb +319 -42
  305. data/test/cases/relation/mutation_test.rb +55 -93
  306. data/test/cases/relation/or_test.rb +129 -29
  307. data/test/cases/relation/predicate_builder_test.rb +21 -6
  308. data/test/cases/relation/record_fetch_warning_test.rb +5 -3
  309. data/test/cases/relation/select_test.rb +67 -0
  310. data/test/cases/relation/update_all_test.rb +317 -0
  311. data/test/cases/relation/where_chain_test.rb +68 -32
  312. data/test/cases/relation/where_clause_test.rb +136 -61
  313. data/test/cases/relation/where_test.rb +155 -48
  314. data/test/cases/relation_test.rb +266 -112
  315. data/test/cases/relations_test.rb +969 -744
  316. data/test/cases/reload_models_test.rb +13 -9
  317. data/test/cases/reserved_word_test.rb +141 -0
  318. data/test/cases/result_test.rb +68 -17
  319. data/test/cases/sanitize_test.rb +87 -71
  320. data/test/cases/schema_dumper_test.rb +221 -128
  321. data/test/cases/schema_loading_test.rb +3 -2
  322. data/test/cases/scoping/default_scoping_test.rb +185 -144
  323. data/test/cases/scoping/named_scoping_test.rb +177 -89
  324. data/test/cases/scoping/relation_scoping_test.rb +197 -75
  325. data/test/cases/secure_token_test.rb +18 -3
  326. data/test/cases/serialization_test.rb +30 -28
  327. data/test/cases/serialized_attribute_test.rb +133 -42
  328. data/test/cases/signed_id_test.rb +168 -0
  329. data/test/cases/statement_cache_test.rb +41 -24
  330. data/test/cases/statement_invalid_test.rb +42 -0
  331. data/test/cases/store_test.rb +180 -55
  332. data/test/cases/strict_loading_test.rb +473 -0
  333. data/test/cases/suppressor_test.rb +26 -12
  334. data/test/cases/tasks/database_tasks_test.rb +1258 -194
  335. data/test/cases/tasks/mysql_rake_test.rb +370 -298
  336. data/test/cases/tasks/postgresql_rake_test.rb +481 -251
  337. data/test/cases/tasks/sqlite_rake_test.rb +225 -178
  338. data/test/cases/test_case.rb +51 -40
  339. data/test/cases/test_databases_test.rb +79 -0
  340. data/test/cases/test_fixtures_test.rb +79 -19
  341. data/test/cases/time_precision_test.rb +98 -76
  342. data/test/cases/timestamp_test.rb +102 -99
  343. data/test/cases/touch_later_test.rb +12 -10
  344. data/test/cases/transaction_callbacks_test.rb +344 -90
  345. data/test/cases/transaction_isolation_test.rb +12 -12
  346. data/test/cases/transactions_test.rb +612 -162
  347. data/test/cases/type/adapter_specific_registry_test.rb +14 -2
  348. data/test/cases/type/date_time_test.rb +4 -2
  349. data/test/cases/type/integer_test.rb +4 -2
  350. data/test/cases/type/string_test.rb +10 -8
  351. data/test/cases/type/time_test.rb +28 -0
  352. data/test/cases/type/type_map_test.rb +29 -28
  353. data/test/cases/type/unsigned_integer_test.rb +19 -0
  354. data/test/cases/type_test.rb +2 -0
  355. data/test/cases/types_test.rb +3 -1
  356. data/test/cases/unconnected_test.rb +14 -1
  357. data/test/cases/unsafe_raw_sql_test.rb +274 -0
  358. data/test/cases/validations/absence_validation_test.rb +19 -17
  359. data/test/cases/validations/association_validation_test.rb +30 -28
  360. data/test/cases/validations/i18n_generate_message_validation_test.rb +34 -16
  361. data/test/cases/validations/i18n_validation_test.rb +22 -21
  362. data/test/cases/validations/length_validation_test.rb +34 -33
  363. data/test/cases/validations/numericality_validation_test.rb +181 -0
  364. data/test/cases/validations/presence_validation_test.rb +21 -19
  365. data/test/cases/validations/uniqueness_validation_test.rb +156 -86
  366. data/test/cases/validations_repair_helper.rb +2 -0
  367. data/test/cases/validations_test.rb +61 -26
  368. data/test/cases/view_test.rb +122 -116
  369. data/test/cases/yaml_serialization_test.rb +79 -34
  370. data/test/config.example.yml +19 -19
  371. data/test/config.rb +3 -1
  372. data/test/config.yml +74 -8
  373. data/test/fixtures/admin/randomly_named_a9.yml +7 -7
  374. data/test/fixtures/admin/randomly_named_b0.yml +7 -7
  375. data/test/fixtures/all/namespaced/accounts.yml +2 -0
  376. data/test/fixtures/author_addresses.yml +1 -8
  377. data/test/fixtures/authors.yml +1 -7
  378. data/test/fixtures/binaries.yml +4 -0
  379. data/test/fixtures/books.yml +9 -2
  380. data/test/fixtures/categories_posts.yml +3 -0
  381. data/test/fixtures/citations.yml +5 -0
  382. data/test/fixtures/comments.yml +7 -0
  383. data/test/fixtures/companies.yml +5 -0
  384. data/test/fixtures/computers.yml +2 -0
  385. data/test/fixtures/customers.yml +10 -1
  386. data/test/fixtures/developers.yml +1 -1
  387. data/test/fixtures/essays.yml +10 -0
  388. data/test/fixtures/faces.yml +3 -3
  389. data/test/fixtures/humans.yml +5 -0
  390. data/test/fixtures/interests.yml +7 -7
  391. data/test/fixtures/memberships.yml +7 -0
  392. data/test/fixtures/minimalistics.yml +3 -0
  393. data/test/fixtures/mixed_case_monkeys.yml +2 -2
  394. data/test/fixtures/naked/yml/courses_with_invalid_key.yml +3 -0
  395. data/test/fixtures/naked/yml/parrots.yml +1 -0
  396. data/test/fixtures/other_books.yml +26 -0
  397. data/test/fixtures/other_posts.yml +1 -0
  398. data/test/fixtures/parrots.yml +7 -1
  399. data/test/fixtures/pirates.yml +3 -0
  400. data/test/fixtures/posts.yml +11 -3
  401. data/test/fixtures/randomly_named_a9.yml +7 -7
  402. data/test/fixtures/readers.yml +6 -0
  403. data/test/fixtures/reserved_words/values.yml +2 -2
  404. data/test/fixtures/sponsors.yml +3 -0
  405. data/test/fixtures/strict_zines.yml +2 -0
  406. data/test/fixtures/subscribers.yml +1 -1
  407. data/test/fixtures/tasks.yml +1 -1
  408. data/test/fixtures/warehouse-things.yml +3 -0
  409. data/test/migrations/10_urban/9_add_expressions.rb +2 -0
  410. data/test/migrations/decimal/1_give_me_big_numbers.rb +6 -4
  411. data/test/migrations/magic/1_currencies_have_symbols.rb +3 -2
  412. data/test/migrations/missing/1000_people_have_middle_names.rb +2 -0
  413. data/test/migrations/missing/1_people_have_last_names.rb +2 -0
  414. data/test/migrations/missing/3_we_need_reminders.rb +2 -0
  415. data/test/migrations/missing/4_innocent_jointable.rb +3 -1
  416. data/test/migrations/rename/1_we_need_things.rb +2 -0
  417. data/test/migrations/rename/2_rename_things.rb +2 -0
  418. data/test/migrations/to_copy/1_people_have_hobbies.rb +3 -1
  419. data/test/migrations/to_copy/2_people_have_descriptions.rb +3 -1
  420. data/test/migrations/to_copy2/1_create_articles.rb +2 -0
  421. data/test/migrations/to_copy2/2_create_comments.rb +3 -1
  422. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +3 -1
  423. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +3 -1
  424. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +3 -1
  425. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +2 -0
  426. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +2 -0
  427. data/test/migrations/valid/1_valid_people_have_last_names.rb +2 -0
  428. data/test/migrations/valid/2_we_need_reminders.rb +2 -0
  429. data/test/migrations/valid/3_innocent_jointable.rb +3 -1
  430. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +2 -0
  431. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -0
  432. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +3 -1
  433. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +2 -0
  434. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +2 -0
  435. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +3 -1
  436. data/test/migrations/version_check/20131219224947_migration_version_check.rb +2 -0
  437. data/test/models/account.rb +46 -0
  438. data/test/models/admin/account.rb +3 -1
  439. data/test/models/admin/randomly_named_c1.rb +2 -0
  440. data/test/models/admin/user.rb +16 -8
  441. data/test/models/admin.rb +4 -2
  442. data/test/models/aircraft.rb +3 -1
  443. data/test/models/arunit2_model.rb +2 -0
  444. data/test/models/author.rb +153 -102
  445. data/test/models/auto_id.rb +2 -0
  446. data/test/models/autoloadable/extra_firm.rb +2 -0
  447. data/test/models/binary.rb +3 -1
  448. data/test/models/binary_field.rb +6 -0
  449. data/test/models/bird.rb +13 -1
  450. data/test/models/book.rb +14 -4
  451. data/test/models/book_destroy_async.rb +24 -0
  452. data/test/models/boolean.rb +5 -0
  453. data/test/models/bulb.rb +13 -4
  454. data/test/models/cake_designer.rb +2 -0
  455. data/test/models/car.rb +17 -10
  456. data/test/models/carrier.rb +2 -0
  457. data/test/models/cart.rb +5 -0
  458. data/test/models/cat.rb +2 -0
  459. data/test/models/categorization.rb +8 -6
  460. data/test/models/category.rb +28 -16
  461. data/test/models/chef.rb +2 -0
  462. data/test/models/citation.rb +5 -1
  463. data/test/models/club.rb +13 -10
  464. data/test/models/college.rb +4 -2
  465. data/test/models/column.rb +2 -0
  466. data/test/models/column_name.rb +2 -0
  467. data/test/models/comment.rb +32 -10
  468. data/test/models/company.rb +102 -106
  469. data/test/models/company_in_module.rb +27 -26
  470. data/test/models/computer.rb +3 -1
  471. data/test/models/contact.rb +15 -13
  472. data/test/models/content.rb +5 -3
  473. data/test/models/contract.rb +21 -3
  474. data/test/models/country.rb +2 -4
  475. data/test/models/course.rb +3 -1
  476. data/test/models/customer.rb +10 -8
  477. data/test/models/customer_carrier.rb +2 -0
  478. data/test/models/dashboard.rb +2 -0
  479. data/test/models/default.rb +2 -0
  480. data/test/models/department.rb +2 -0
  481. data/test/models/destroy_async_parent.rb +15 -0
  482. data/test/models/destroy_async_parent_soft_delete.rb +20 -0
  483. data/test/models/developer.rb +152 -85
  484. data/test/models/dl_keyed_belongs_to.rb +13 -0
  485. data/test/models/dl_keyed_belongs_to_soft_delete.rb +19 -0
  486. data/test/models/dl_keyed_has_many.rb +5 -0
  487. data/test/models/dl_keyed_has_many_through.rb +5 -0
  488. data/test/models/dl_keyed_has_one.rb +5 -0
  489. data/test/models/dl_keyed_join.rb +10 -0
  490. data/test/models/dog.rb +2 -0
  491. data/test/models/dog_lover.rb +2 -0
  492. data/test/models/doubloon.rb +3 -1
  493. data/test/models/drink_designer.rb +17 -0
  494. data/test/models/edge.rb +4 -2
  495. data/test/models/electron.rb +2 -0
  496. data/test/models/engine.rb +3 -2
  497. data/test/models/entrant.rb +2 -0
  498. data/test/models/entry.rb +5 -0
  499. data/test/models/essay.rb +6 -3
  500. data/test/models/essay_destroy_async.rb +12 -0
  501. data/test/models/event.rb +3 -1
  502. data/test/models/eye.rb +5 -3
  503. data/test/models/face.rb +14 -6
  504. data/test/models/family.rb +6 -0
  505. data/test/models/family_tree.rb +6 -0
  506. data/test/models/friendship.rb +5 -3
  507. data/test/models/frog.rb +8 -0
  508. data/test/models/guid.rb +3 -1
  509. data/test/models/guitar.rb +2 -0
  510. data/test/models/hotel.rb +5 -3
  511. data/test/models/human.rb +39 -0
  512. data/test/models/image.rb +3 -1
  513. data/test/models/interest.rb +14 -3
  514. data/test/models/invoice.rb +4 -2
  515. data/test/models/item.rb +3 -1
  516. data/test/models/job.rb +5 -3
  517. data/test/models/joke.rb +4 -2
  518. data/test/models/keyboard.rb +3 -1
  519. data/test/models/legacy_thing.rb +2 -0
  520. data/test/models/lesson.rb +2 -0
  521. data/test/models/line_item.rb +3 -1
  522. data/test/models/liquid.rb +2 -0
  523. data/test/models/matey.rb +3 -1
  524. data/test/models/measurement.rb +4 -0
  525. data/test/models/member.rb +23 -20
  526. data/test/models/member_detail.rb +3 -0
  527. data/test/models/member_type.rb +2 -0
  528. data/test/models/membership.rb +4 -1
  529. data/test/models/mentor.rb +3 -1
  530. data/test/models/message.rb +5 -0
  531. data/test/models/minimalistic.rb +2 -0
  532. data/test/models/minivan.rb +3 -2
  533. data/test/models/mixed_case_monkey.rb +3 -1
  534. data/test/models/molecule.rb +2 -0
  535. data/test/models/mouse.rb +6 -0
  536. data/test/models/movie.rb +2 -0
  537. data/test/models/node.rb +4 -2
  538. data/test/models/non_primary_key.rb +2 -0
  539. data/test/models/notification.rb +2 -0
  540. data/test/models/numeric_data.rb +12 -0
  541. data/test/models/order.rb +4 -2
  542. data/test/models/organization.rb +9 -7
  543. data/test/models/other_dog.rb +3 -1
  544. data/test/models/owner.rb +6 -4
  545. data/test/models/parrot.rb +12 -4
  546. data/test/models/person.rb +59 -54
  547. data/test/models/personal_legacy_thing.rb +3 -1
  548. data/test/models/pet.rb +4 -2
  549. data/test/models/pet_treasure.rb +2 -0
  550. data/test/models/pirate.rb +67 -43
  551. data/test/models/possession.rb +3 -1
  552. data/test/models/post.rb +184 -86
  553. data/test/models/price_estimate.rb +11 -1
  554. data/test/models/professor.rb +3 -1
  555. data/test/models/project.rb +14 -12
  556. data/test/models/publisher/article.rb +2 -0
  557. data/test/models/publisher/magazine.rb +2 -0
  558. data/test/models/publisher.rb +2 -0
  559. data/test/models/randomly_named_c1.rb +2 -0
  560. data/test/models/rating.rb +5 -1
  561. data/test/models/reader.rb +7 -5
  562. data/test/models/recipe.rb +2 -0
  563. data/test/models/record.rb +2 -0
  564. data/test/models/reference.rb +6 -3
  565. data/test/models/reply.rb +39 -21
  566. data/test/models/room.rb +6 -0
  567. data/test/models/section.rb +6 -0
  568. data/test/models/seminar.rb +6 -0
  569. data/test/models/session.rb +6 -0
  570. data/test/models/ship.rb +12 -9
  571. data/test/models/ship_part.rb +5 -3
  572. data/test/models/shop.rb +4 -2
  573. data/test/models/shop_account.rb +2 -0
  574. data/test/models/speedometer.rb +2 -0
  575. data/test/models/sponsor.rb +8 -5
  576. data/test/models/squeak.rb +6 -0
  577. data/test/models/strict_zine.rb +7 -0
  578. data/test/models/string_key_object.rb +2 -0
  579. data/test/models/student.rb +2 -0
  580. data/test/models/subscriber.rb +4 -2
  581. data/test/models/subscription.rb +5 -1
  582. data/test/models/tag.rb +6 -3
  583. data/test/models/tagging.rb +13 -6
  584. data/test/models/task.rb +2 -0
  585. data/test/models/topic.rb +54 -19
  586. data/test/models/toy.rb +4 -0
  587. data/test/models/traffic_light.rb +2 -0
  588. data/test/models/treasure.rb +5 -3
  589. data/test/models/treaty.rb +2 -4
  590. data/test/models/tree.rb +2 -0
  591. data/test/models/tuning_peg.rb +2 -0
  592. data/test/models/tyre.rb +2 -0
  593. data/test/models/user.rb +12 -4
  594. data/test/models/uuid_child.rb +2 -0
  595. data/test/models/uuid_item.rb +2 -0
  596. data/test/models/uuid_parent.rb +2 -0
  597. data/test/models/vegetables.rb +12 -3
  598. data/test/models/vertex.rb +6 -4
  599. data/test/models/warehouse_thing.rb +2 -0
  600. data/test/models/wheel.rb +3 -1
  601. data/test/models/without_table.rb +3 -1
  602. data/test/models/zine.rb +3 -1
  603. data/test/schema/mysql2_specific_schema.rb +49 -35
  604. data/test/schema/oracle_specific_schema.rb +13 -15
  605. data/test/schema/postgresql_specific_schema.rb +51 -40
  606. data/test/schema/schema.rb +334 -154
  607. data/test/schema/sqlite_specific_schema.rb +9 -16
  608. data/test/support/config.rb +26 -26
  609. data/test/support/connection.rb +14 -8
  610. data/test/support/connection_helper.rb +3 -1
  611. data/test/support/ddl_helper.rb +2 -0
  612. data/test/support/marshal_compatibility_fixtures/IBM_DB/rails_6_0_topic.dump +0 -0
  613. data/test/support/marshal_compatibility_fixtures/IBM_DB/rails_6_0_topic_associations.dump +0 -0
  614. data/test/support/marshal_compatibility_fixtures/Mysql2/rails_6_0_topic.dump +0 -0
  615. data/test/support/marshal_compatibility_fixtures/Mysql2/rails_6_0_topic_associations.dump +0 -0
  616. data/test/support/marshal_compatibility_fixtures/PostgreSQL/rails_6_0_topic.dump +0 -0
  617. data/test/support/marshal_compatibility_fixtures/PostgreSQL/rails_6_0_topic_associations.dump +0 -0
  618. data/test/support/marshal_compatibility_fixtures/SQLite/rails_6_0_topic.dump +0 -0
  619. data/test/support/marshal_compatibility_fixtures/SQLite/rails_6_0_topic_associations.dump +0 -0
  620. data/test/support/marshal_compatibility_fixtures/legacy_6_0_record_mysql.dump +0 -0
  621. data/test/support/marshal_compatibility_fixtures/legacy_relation.dump +0 -0
  622. data/test/support/schema_dumping_helper.rb +2 -0
  623. data/test/support/stubs/strong_parameters.rb +40 -0
  624. data/test/support/yaml_compatibility_fixtures/rails_v1_mysql.yml +206 -0
  625. data/test/support/yaml_compatibility_fixtures/rails_v2.yml +55 -0
  626. metadata +230 -10
data/ext/ibm_db.c CHANGED
@@ -2,7 +2,7 @@
2
2
  +----------------------------------------------------------------------+
3
3
  | Licensed Materials - Property of IBM |
4
4
  | |
5
- | (C) Copyright IBM Corporation 2006 - 2017 |
5
+ | (C) Copyright IBM Corporation 2006 - 2025 |
6
6
  +----------------------------------------------------------------------+
7
7
  | Authors: Sushant Koduru, Lynh Nguyen, Kanchana Padmanabhan, |
8
8
  | Dan Scott, Helmut Tessarek, Sam Ruby, Kellen Bombardier, |
@@ -12,7 +12,7 @@
12
12
  +----------------------------------------------------------------------+
13
13
  */
14
14
 
15
- #define MODULE_RELEASE "3.0.5"
15
+ #define MODULE_RELEASE "3.2.0"
16
16
 
17
17
  #ifdef HAVE_CONFIG_H
18
18
  #include "config.h"
@@ -28,10 +28,7 @@
28
28
  #include "ruby_ibm_db.h"
29
29
  #include <ctype.h>
30
30
 
31
- #ifdef RUBY_THREAD_H
32
- #include <ruby/thread.h>
33
- #endif
34
-
31
+ #include <ruby/thread.h>
35
32
  #include <ruby/version.h>
36
33
 
37
34
  /* True global resources - no need for thread safety here */
@@ -100,10 +97,12 @@ typedef struct _ibm_db_fetch_helper_struct {
100
97
  void ruby_init_ibm_db();
101
98
 
102
99
  /* equivalent functions on different platforms */
103
- #ifdef _WIN32
104
- #define STRCASECMP stricmp
105
- #else
106
- #define STRCASECMP strcasecmp
100
+ #ifndef STRCASECMP
101
+ # ifdef _WIN32
102
+ # define STRCASECMP stricmp
103
+ # else
104
+ # define STRCASECMP strcasecmp
105
+ # endif
107
106
  #endif
108
107
 
109
108
  static VALUE mDB;
@@ -684,29 +683,11 @@ static void _ruby_ibm_db_mark_stmt_struct(stmt_handle *handle)
684
683
  {
685
684
  }
686
685
 
687
-
686
+ static inline
688
687
  VALUE ibm_Ruby_Thread_Call(rb_blocking_function_t *func, void *data1, rb_unblock_function_t *ubf, void *data2)
689
688
  {
690
- #ifdef RUBY_API_VERSION_MAJOR
691
- if( RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >=2)
692
- {
693
- #ifdef _WIN32
694
- void *(*f)(void*) = (void *(*)(void*))func;
695
- return (VALUE)rb_thread_call_without_gvl(f, data1, ubf, data2);
696
- #elif __APPLE__
697
- return rb_thread_call_without_gvl(func, data1, ubf, data2);
698
- #else
699
- rb_thread_call_without_gvl(func, data1, ubf, data2);
700
- #endif
701
- }
702
- else
703
- {
704
- rb_thread_call_without_gvl(func, data1, ubf, data2);
705
- }
706
- #else
707
- rb_thread_call_without_gvl(func, data1, ubf, data2);
708
- #endif
709
- }
689
+ return func(data1);
690
+ }
710
691
 
711
692
 
712
693
  /* */
@@ -2355,7 +2336,7 @@ static VALUE _ruby_ibm_db_connect_helper2( connect_helper_args *data ) {
2355
2336
  handleAttr_args->handle = &( conn_res->hdbc );
2356
2337
  handleAttr_args->strLength = SQL_IS_INTEGER;
2357
2338
  handleAttr_args->attribute = SQL_ATTR_REPLACE_QUOTED_LITERALS;
2358
- handleAttr_args->valuePtr = (SQLPOINTER)(enable_numeric_literals);
2339
+ handleAttr_args->valuePtr = (SQLPOINTER)(size_t)(enable_numeric_literals);
2359
2340
  rc = _ruby_ibm_db_SQLSetConnectAttr_helper( handleAttr_args );
2360
2341
  if (rc != SQL_SUCCESS) {
2361
2342
  handleAttr_args->attribute = SQL_ATTR_REPLACE_QUOTED_LITERALS_OLDVALUE;
@@ -2525,14 +2506,13 @@ static VALUE _ruby_ibm_db_connect_helper( int argc, VALUE *argv, int isPersisten
2525
2506
  }
2526
2507
  /* Call the function where the actual logic is being run*/
2527
2508
  #ifdef UNICODE_SUPPORT_VERSION_H
2528
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_connect_helper2, helper_args, RUBY_UBF_IO, NULL);
2529
-
2509
+ _ruby_ibm_db_connect_helper2( helper_args );
2530
2510
 
2531
2511
  conn_res = helper_args->conn_res;
2532
2512
 
2533
2513
  if(helper_args->isPersistent)
2534
2514
  {
2535
- if(helper_args-> entry == NULL)
2515
+ if(helper_args-> entry == (VALUE)0)
2536
2516
  {
2537
2517
  return_value = Qnil;
2538
2518
  }
@@ -2903,7 +2883,7 @@ VALUE ruby_ibm_db_createDb_helper(VALUE connection, VALUE dbName, VALUE codeSet,
2903
2883
  VALUE mode_utf16 = Qnil;
2904
2884
  #endif
2905
2885
 
2906
- int rc;
2886
+ RETCODE rc;
2907
2887
 
2908
2888
  create_drop_db_args *create_db_args = NULL;
2909
2889
  conn_handle *conn_res;
@@ -3059,7 +3039,7 @@ VALUE ruby_ibm_db_dropDb_helper(VALUE connection, VALUE dbName) {
3059
3039
 
3060
3040
  VALUE return_value = Qfalse;
3061
3041
 
3062
- int rc;
3042
+ RETCODE rc;
3063
3043
 
3064
3044
  create_drop_db_args *drop_db_args = NULL;
3065
3045
  conn_handle *conn_res = NULL;
@@ -3320,7 +3300,7 @@ VALUE ibm_db_autocommit(int argc, VALUE *argv, VALUE self)
3320
3300
  handleAttr_args->attribute = SQL_ATTR_AUTOCOMMIT;
3321
3301
 
3322
3302
  #ifndef PASE
3323
- handleAttr_args->valuePtr = (SQLPOINTER)autocommit;
3303
+ handleAttr_args->valuePtr = (SQLPOINTER)(size_t)autocommit;
3324
3304
  #else
3325
3305
  handleAttr_args->valuePtr = (SQLPOINTER)&autocommit;
3326
3306
  #endif
@@ -3456,7 +3436,7 @@ VALUE ibm_db_bind_param_helper(int argc, char * varname, long varname_len ,long
3456
3436
  case 3:
3457
3437
  param_type = SQL_PARAM_INPUT;
3458
3438
 
3459
- #ifdef UNICODE_SUPPORT_VERSIO
3439
+ #ifdef UNICODE_SUPPORT_VERSION_H
3460
3440
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3461
3441
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
3462
3442
  rc = data->rc;
@@ -5663,7 +5643,7 @@ static int _ruby_ibm_db_do_prepare(conn_handle *conn_res, VALUE stmt, stmt_handl
5663
5643
  if ( rc == SQL_ERROR ) {
5664
5644
  ruby_xfree( prepare_args );
5665
5645
  prepare_args = NULL;
5666
- rb_warn( RSTRING_PTR(error) );
5646
+ rb_warn( "%s", RSTRING_PTR(error) );
5667
5647
  return rc;
5668
5648
  }
5669
5649
  }
@@ -5803,7 +5783,7 @@ VALUE ibm_db_exec(int argc, VALUE *argv, VALUE self)
5803
5783
  stmt_res = NULL;
5804
5784
  ruby_xfree( exec_direct_args );
5805
5785
  exec_direct_args = NULL;
5806
- rb_warn( RSTRING_PTR(error) );
5786
+ rb_warn( "%s", RSTRING_PTR(error) );
5807
5787
  return Qfalse;
5808
5788
  }
5809
5789
  }
@@ -7006,15 +6986,14 @@ VALUE ibm_db_execute(int argc, VALUE *argv, VALUE self)
7006
6986
  bind_array->error = &error;
7007
6987
 
7008
6988
  #ifdef UNICODE_SUPPORT_VERSION_H
7009
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_execute_helper, bind_array,
7010
- RUBY_UBF_IO, NULL );
6989
+ _ruby_ibm_db_execute_helper( bind_array );
7011
6990
  ret_value = bind_array->return_value;
7012
6991
  #else
7013
6992
  ret_value = _ruby_ibm_db_execute_helper( bind_array );
7014
6993
  #endif
7015
6994
 
7016
6995
  if( ret_value == Qnil || ret_value == Qfalse ) {
7017
- rb_warn( RSTRING_PTR(error) );
6996
+ rb_warn( "%s", RSTRING_PTR(error) );
7018
6997
  ruby_xfree( bind_array );
7019
6998
  bind_array = NULL;
7020
6999
  return Qfalse;
@@ -9271,7 +9250,7 @@ VALUE ibm_db_result(int argc, VALUE *argv, VALUE self)
9271
9250
  }
9272
9251
 
9273
9252
  if( error != Qnil && ret_val == Qnil) {
9274
- rb_warn( RSTRING_PTR(error) );
9253
+ rb_warn( "%s", RSTRING_PTR(error) );
9275
9254
  ret_val = Qnil;
9276
9255
  }
9277
9256
 
@@ -9567,8 +9546,6 @@ static VALUE _ruby_ibm_db_bind_fetch_helper(ibm_db_fetch_helper_args *data)
9567
9546
  case SQL_TYPE_DATE:
9568
9547
  case SQL_TYPE_TIME:
9569
9548
  case SQL_TYPE_TIMESTAMP:
9570
- case SQL_BIGINT:
9571
-
9572
9549
  if ( op & FETCH_ASSOC ) {
9573
9550
  rb_hash_aset(return_value, colName, rb_str_new2((char *)row_data->str_val));
9574
9551
  }
@@ -9579,6 +9556,17 @@ static VALUE _ruby_ibm_db_bind_fetch_helper(ibm_db_fetch_helper_args *data)
9579
9556
  }
9580
9557
  break;
9581
9558
 
9559
+ case SQL_BIGINT:
9560
+ if ( op & FETCH_ASSOC ) {
9561
+ rb_hash_aset(return_value, colName, LONG2NUM(atol((char *)row_data->str_val)));
9562
+ }
9563
+ if ( op == FETCH_INDEX ) {
9564
+ rb_ary_store(return_value, i, LONG2NUM(atol((char *)row_data->str_val)));
9565
+ } else if ( op == FETCH_BOTH ) {
9566
+ rb_hash_aset(return_value, INT2NUM(i), LONG2NUM(atol((char *)row_data->str_val)));
9567
+ }
9568
+ break;
9569
+
9582
9570
  case SQL_DECIMAL:
9583
9571
  case SQL_NUMERIC:
9584
9572
  case SQL_DECFLOAT:
@@ -10073,8 +10061,7 @@ VALUE ibm_db_fetch_row(int argc, VALUE *argv, VALUE self)
10073
10061
  helper_args->error = &error;
10074
10062
 
10075
10063
  #ifdef UNICODE_SUPPORT_VERSION_H
10076
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_fetch_row_helper, helper_args,
10077
- RUBY_UBF_IO, NULL );
10064
+ _ruby_ibm_db_fetch_row_helper( helper_args );
10078
10065
  ret_val = helper_args->return_value;
10079
10066
  #else
10080
10067
  ret_val = _ruby_ibm_db_fetch_row_helper( helper_args );
@@ -10242,8 +10229,7 @@ VALUE ibm_db_fetch_assoc(int argc, VALUE *argv, VALUE self) {
10242
10229
  helper_args->funcType = FETCH_ASSOC;
10243
10230
 
10244
10231
  #ifdef UNICODE_SUPPORT_VERSION_H
10245
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10246
- RUBY_UBF_IO, NULL );
10232
+ _ruby_ibm_db_bind_fetch_helper( helper_args );
10247
10233
  ret_val = helper_args->return_value;
10248
10234
 
10249
10235
  #else
@@ -10562,7 +10548,7 @@ VALUE ibm_db_set_option(int argc, VALUE *argv, VALUE self)
10562
10548
  if ( !NIL_P(r_options) ) {
10563
10549
  rc = _ruby_ibm_db_parse_options( r_options, SQL_HANDLE_DBC, conn_res, &error );
10564
10550
  if (rc == SQL_ERROR) {
10565
- rb_warn( RSTRING_PTR(error) );
10551
+ rb_warn( "%s", RSTRING_PTR(error) );
10566
10552
  return Qfalse;
10567
10553
  }
10568
10554
  }
@@ -10572,7 +10558,7 @@ VALUE ibm_db_set_option(int argc, VALUE *argv, VALUE self)
10572
10558
  if ( !NIL_P(r_options) ) {
10573
10559
  rc = _ruby_ibm_db_parse_options( r_options, SQL_HANDLE_STMT, stmt_res, &error );
10574
10560
  if (rc == SQL_ERROR) {
10575
- rb_warn( RSTRING_PTR(error) );
10561
+ rb_warn( "%s", RSTRING_PTR(error) );
10576
10562
  return Qfalse;
10577
10563
  }
10578
10564
  }
@@ -11237,7 +11223,7 @@ VALUE ibm_db_server_info(int argc, VALUE *argv, VALUE self)
11237
11223
  rb_scan_args(argc, argv, "1", &connection);
11238
11224
 
11239
11225
 
11240
- if(NIL_P(&connection))
11226
+ if(NIL_P(connection))
11241
11227
  {
11242
11228
  }
11243
11229
  if(&connection == NULL)
data/ext/ibm_db.o CHANGED
Binary file
data/ext/ibm_db.so CHANGED
Binary file
data/ext/mkmf.log CHANGED
@@ -14,29 +14,27 @@ unicode_support_version.h is:
14
14
 
15
15
  have_library: checking for SQLConnect() in -ldb2... -------------------- yes
16
16
 
17
- "gcc -o conftest -I/home/rakhil/ruby_exe/include/ruby-2.6.0/x86_64-linux -I/home/rakhil/ruby_exe/include/ruby-2.6.0/ruby/backward -I/home/rakhil/ruby_exe/include/ruby-2.6.0 -I. -I/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.c -L. -L/home/rakhil/ruby_exe/lib -Wl,-rpath,/home/rakhil/ruby_exe/lib -L/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/rakhil/ruby_exe/lib -L/home/rakhil/ruby_exe/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -lm -lc"
18
- /home/rakhil/ruby_exe/lib/ruby/2.6.0/mkmf.rb:406: warning: Insecure world writable dir /work/rakhil in PATH, mode 040777
17
+ LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR33/ruby_exe/lib:/usr/lib64:/jre/lib:/jre/bin:/lib: "gcc -o conftest -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/x86_64-linux -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/ruby/backward -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0 -I. -I/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef conftest.c -L. -L/home/pnarayanappa/ROR33/ruby_exe/lib -Wl,-rpath,/home/pnarayanappa/ROR33/ruby_exe/lib -L/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/pnarayanappa/ROR33/ruby_exe/lib -L/home/pnarayanappa/ROR33/ruby_exe/lib -lruby-static -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lpthread -lm -lpthread -lc"
19
18
  checked program was:
20
19
  /* begin */
21
20
  1: #include "ruby.h"
22
21
  2:
23
22
  3: int main(int argc, char **argv)
24
23
  4: {
25
- 5: return 0;
24
+ 5: return !!argv[argc];
26
25
  6: }
27
26
  /* end */
28
27
 
29
- "gcc -o conftest -I/home/rakhil/ruby_exe/include/ruby-2.6.0/x86_64-linux -I/home/rakhil/ruby_exe/include/ruby-2.6.0/ruby/backward -I/home/rakhil/ruby_exe/include/ruby-2.6.0 -I. -I/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.c -L. -L/home/rakhil/ruby_exe/lib -Wl,-rpath,/home/rakhil/ruby_exe/lib -L/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/rakhil/ruby_exe/lib -L/home/rakhil/ruby_exe/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -ldb2 -lm -lc"
30
- conftest.c: In function 't':
31
- conftest.c:14:57: error: 'SQLConnect' undeclared (first use in this function)
32
- int t(void) { void ((*volatile p)()); p = (void ((*)()))SQLConnect; return !p; }
33
- ^~~~~~~~~~
28
+ LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR33/ruby_exe/lib:/usr/lib64:/jre/lib:/jre/bin:/lib: "gcc -o conftest -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/x86_64-linux -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/ruby/backward -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0 -I. -I/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef conftest.c -L. -L/home/pnarayanappa/ROR33/ruby_exe/lib -Wl,-rpath,/home/pnarayanappa/ROR33/ruby_exe/lib -L/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/pnarayanappa/ROR33/ruby_exe/lib -L/home/pnarayanappa/ROR33/ruby_exe/lib -lruby-static -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lpthread -ldb2 -lm -lpthread -lc"
29
+ conftest.c: In function t’:
30
+ conftest.c:14:57: error: SQLConnect undeclared (first use in this function)
31
+ 14 | int t(void) { void ((*volatile p)()); p = (void ((*)()))SQLConnect; return !p; }
32
+ | ^~~~~~~~~~
34
33
  conftest.c:14:57: note: each undeclared identifier is reported only once for each function it appears in
35
34
  conftest.c: At top level:
36
- cc1: warning: unrecognized command line option '-Wno-self-assign'
37
- cc1: warning: unrecognized command line option '-Wno-parentheses-equality'
38
- cc1: warning: unrecognized command line option '-Wno-constant-logical-operand'
39
- cc1: warning: unrecognized command line option '-Wno-cast-function-type'
35
+ cc1: note: unrecognized command-line option ‘-Wno-self-assign’ may have been intended to silence earlier diagnostics
36
+ cc1: note: unrecognized command-line option ‘-Wno-parentheses-equality’ may have been intended to silence earlier diagnostics
37
+ cc1: note: unrecognized command-line option ‘-Wno-constant-logical-operand’ may have been intended to silence earlier diagnostics
40
38
  checked program was:
41
39
  /* begin */
42
40
  1: #include "ruby.h"
@@ -50,12 +48,13 @@ checked program was:
50
48
  9: printf("%d", (*tp)());
51
49
  10: }
52
50
  11:
53
- 12: return 0;
51
+ 12: return !!argv[argc];
54
52
  13: }
55
53
  14: int t(void) { void ((*volatile p)()); p = (void ((*)()))SQLConnect; return !p; }
56
54
  /* end */
57
55
 
58
- "gcc -o conftest -I/home/rakhil/ruby_exe/include/ruby-2.6.0/x86_64-linux -I/home/rakhil/ruby_exe/include/ruby-2.6.0/ruby/backward -I/home/rakhil/ruby_exe/include/ruby-2.6.0 -I. -I/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.c -L. -L/home/rakhil/ruby_exe/lib -Wl,-rpath,/home/rakhil/ruby_exe/lib -L/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/rakhil/ruby_exe/lib -L/home/rakhil/ruby_exe/lib -lruby-static -lz -lpthread -lrt -lrt -ldl -lcrypt -lm -ldb2 -lm -lc"
56
+ LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR33/ruby_exe/lib:/usr/lib64:/jre/lib:/jre/bin:/lib: "gcc -o conftest -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/x86_64-linux -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/ruby/backward -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0 -I. -I/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef conftest.c -L. -L/home/pnarayanappa/ROR33/ruby_exe/lib -Wl,-rpath,/home/pnarayanappa/ROR33/ruby_exe/lib -L/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -Wl,-rpath,/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib -L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic -Wl,-rpath,/home/pnarayanappa/ROR33/ruby_exe/lib -L/home/pnarayanappa/ROR33/ruby_exe/lib -lruby-static -lz -lrt -lrt -lgmp -ldl -lcrypt -lm -lpthread -ldb2 -lm -lpthread -lc"
57
+ /usr/bin/ld: warning: libcrypt.so.1, needed by /home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/lib/libdb2.so, may conflict with libcrypt.so.2
59
58
  checked program was:
60
59
  /* begin */
61
60
  1: #include "ruby.h"
@@ -69,7 +68,7 @@ checked program was:
69
68
  9: printf("%d", (*tp)());
70
69
  10: }
71
70
  11:
72
- 12: return 0;
71
+ 12: return !!argv[argc];
73
72
  13: }
74
73
  14: extern void SQLConnect();
75
74
  15: int t(void) { SQLConnect(); return 0; }
@@ -79,7 +78,7 @@ checked program was:
79
78
 
80
79
  have_header: checking for gil_release_version.h... -------------------- yes
81
80
 
82
- "gcc -E -I/home/rakhil/ruby_exe/include/ruby-2.6.0/x86_64-linux -I/home/rakhil/ruby_exe/include/ruby-2.6.0/ruby/backward -I/home/rakhil/ruby_exe/include/ruby-2.6.0 -I. -I/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.c -o conftest.i"
81
+ LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR33/ruby_exe/lib:/usr/lib64:/jre/lib:/jre/bin:/lib: "gcc -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/x86_64-linux -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/ruby/backward -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0 -I. -I/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -c conftest.c"
83
82
  checked program was:
84
83
  /* begin */
85
84
  1: #include "ruby.h"
@@ -91,7 +90,7 @@ checked program was:
91
90
 
92
91
  have_header: checking for unicode_support_version.h... -------------------- yes
93
92
 
94
- "gcc -E -I/home/rakhil/ruby_exe/include/ruby-2.6.0/x86_64-linux -I/home/rakhil/ruby_exe/include/ruby-2.6.0/ruby/backward -I/home/rakhil/ruby_exe/include/ruby-2.6.0 -I. -I/work/rakhil/ruby_5.1.0/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -ggdb3 -Wall -Wextra -Wdeclaration-after-statement -Wdeprecated-declarations -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wmisleading-indentation -Wpointer-arith -Wrestrict -Wwrite-strings -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable conftest.c -o conftest.i"
93
+ LD_LIBRARY_PATH=.:/home/pnarayanappa/ROR33/ruby_exe/lib:/usr/lib64:/jre/lib:/jre/bin:/lib: "gcc -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/x86_64-linux -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0/ruby/backward -I/home/pnarayanappa/ROR33/ruby_exe/include/ruby-3.3.0 -I. -I/home/pnarayanappa/ROR33/ruby-ibmdb/IBM_DB_Adapter/ibm_db/ext/../lib/clidriver/include -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wdiv-by-zero -Wduplicated-cond -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wimplicit-fallthrough=0 -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable -Wmisleading-indentation -Wundef -c conftest.c"
95
94
  checked program was:
96
95
  /* begin */
97
96
  1: #include "ruby.h"
@@ -208,7 +208,7 @@ int _ruby_ibm_db_SQLForeignKeys_helper(metadata_args *data) {
208
208
 
209
209
  data->stmt_res->is_executing = 1;
210
210
 
211
- if(!NIL_P(data->table_type))
211
+ if(data->table_type != NULL && !NIL_P(*data->table_type))
212
212
  {
213
213
  #ifndef UNICODE_SUPPORT_VERSION_H
214
214
  rc = SQLForeignKeys( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
@@ -494,6 +494,7 @@ int _ruby_ibm_db_SQLDropDB_helper(create_drop_db_args *data) {
494
494
 
495
495
  rc = (*sqldropdb)( (SQLHSTMT) data->conn_res->hdbc, data->dbName, (SQLINTEGER)data->dbName_string_len );
496
496
 
497
+ data->rc = rc;
497
498
  DLCLOSE( cliLib );
498
499
  return rc;
499
500
  }
@@ -11,6 +11,14 @@
11
11
  #ifndef RUBY_IBM_DB_CLI_H
12
12
  #define RUBY_IBM_DB_CLI_H
13
13
 
14
+ #ifdef _WIN32
15
+ #ifndef _MSC_VER
16
+ #define __out_ecount_opt(x)
17
+ #define __in_ecount_opt(x)
18
+ #define __out_bcount_opt(x)
19
+ #endif
20
+ #endif
21
+
14
22
  #ifdef _WIN32
15
23
  #include <windows.h>
16
24
  #else
Binary file
data/lib/IBM_DB.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  if(RUBY_PLATFORM =~ /darwin/i)
2
2
  cliPackagePath = File.dirname(__FILE__) + '/clidriver'
3
- if(Dir.exists?(cliPackagePath))
3
+ if(Dir.exist?(cliPackagePath))
4
4
  currentPath = "#{File.expand_path(File.dirname(File.dirname(__FILE__)))}"
5
5
 
6
6
  cmd = "chmod 755 #{currentPath}/lib/ibm_db.bundle "