ibm_db 3.0.5-x86-mingw32 → 5.0.5-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +4 -0
  3. data/LICENSE +1 -1
  4. data/ParameterizedQueries README +6 -6
  5. data/README +38 -55
  6. data/ext/Makefile +269 -0
  7. data/ext/extconf.rb +34 -3
  8. data/ext/gil_release_version +3 -0
  9. data/ext/ibm_db-i386-mingw32.def +2 -0
  10. data/ext/ibm_db.c +100 -108
  11. data/ext/ibm_db.o +0 -0
  12. data/ext/ibm_db.so +0 -0
  13. data/ext/mkmf.log +110 -0
  14. data/ext/ruby_ibm_db_cli.o +0 -0
  15. data/ext/unicode_support_version +3 -0
  16. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +923 -527
  17. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +4 -1
  18. data/lib/mswin32/ibm_db.rb +7 -39
  19. data/lib/mswin32/rb2x/i386/ibm_db.so +0 -0
  20. data/test/active_record/connection_adapters/fake_adapter.rb +8 -5
  21. data/test/cases/adapter_test.rb +133 -58
  22. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
  23. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
  24. data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
  25. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
  26. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
  27. data/test/cases/adapters/mysql2/connection_test.rb +210 -0
  28. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
  29. data/test/cases/adapters/mysql2/enum_test.rb +26 -0
  30. data/test/cases/adapters/mysql2/explain_test.rb +21 -0
  31. data/test/cases/adapters/mysql2/json_test.rb +195 -0
  32. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
  33. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
  34. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
  35. data/test/cases/adapters/mysql2/schema_test.rb +126 -0
  36. data/test/cases/adapters/mysql2/sp_test.rb +36 -0
  37. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
  38. data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
  39. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
  40. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
  41. data/test/cases/adapters/postgresql/array_test.rb +339 -0
  42. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
  43. data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
  44. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
  45. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
  46. data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
  47. data/test/cases/adapters/postgresql/citext_test.rb +78 -0
  48. data/test/cases/adapters/postgresql/collation_test.rb +53 -0
  49. data/test/cases/adapters/postgresql/composite_test.rb +132 -0
  50. data/test/cases/adapters/postgresql/connection_test.rb +257 -0
  51. data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
  52. data/test/cases/adapters/postgresql/domain_test.rb +47 -0
  53. data/test/cases/adapters/postgresql/enum_test.rb +91 -0
  54. data/test/cases/adapters/postgresql/explain_test.rb +20 -0
  55. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
  56. data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
  57. data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
  58. data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
  59. data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
  60. data/test/cases/adapters/postgresql/integer_test.rb +25 -0
  61. data/test/cases/adapters/postgresql/json_test.rb +237 -0
  62. data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
  63. data/test/cases/adapters/postgresql/money_test.rb +96 -0
  64. data/test/cases/adapters/postgresql/network_test.rb +94 -0
  65. data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
  66. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
  67. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
  68. data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
  69. data/test/cases/adapters/postgresql/range_test.rb +343 -0
  70. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
  71. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
  72. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
  73. data/test/cases/adapters/postgresql/schema_test.rb +597 -0
  74. data/test/cases/adapters/postgresql/serial_test.rb +154 -0
  75. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
  76. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
  77. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
  78. data/test/cases/adapters/postgresql/utils_test.rb +62 -0
  79. data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
  80. data/test/cases/adapters/postgresql/xml_test.rb +54 -0
  81. data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
  82. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
  83. data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
  84. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
  85. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
  86. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
  87. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
  88. data/test/cases/aggregations_test.rb +11 -1
  89. data/test/cases/ar_schema_test.rb +35 -50
  90. data/test/cases/associations/association_scope_test.rb +1 -6
  91. data/test/cases/associations/belongs_to_associations_test.rb +122 -10
  92. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
  93. data/test/cases/associations/callbacks_test.rb +5 -7
  94. data/test/cases/associations/cascaded_eager_loading_test.rb +1 -1
  95. data/test/cases/associations/eager_load_nested_include_test.rb +1 -3
  96. data/test/cases/associations/eager_test.rb +158 -73
  97. data/test/cases/associations/extension_test.rb +7 -2
  98. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +64 -32
  99. data/test/cases/associations/has_many_associations_test.rb +362 -43
  100. data/test/cases/associations/has_many_through_associations_test.rb +108 -41
  101. data/test/cases/associations/has_one_associations_test.rb +105 -8
  102. data/test/cases/associations/has_one_through_associations_test.rb +6 -3
  103. data/test/cases/associations/inner_join_association_test.rb +3 -3
  104. data/test/cases/associations/inverse_associations_test.rb +38 -11
  105. data/test/cases/associations/join_model_test.rb +59 -36
  106. data/test/cases/associations/left_outer_join_association_test.rb +88 -0
  107. data/test/cases/associations/nested_through_associations_test.rb +2 -2
  108. data/test/cases/associations/required_test.rb +25 -5
  109. data/test/cases/associations_test.rb +39 -34
  110. data/test/cases/attribute_decorators_test.rb +9 -8
  111. data/test/cases/attribute_methods/read_test.rb +5 -5
  112. data/test/cases/attribute_methods_test.rb +97 -40
  113. data/test/cases/attribute_set_test.rb +64 -4
  114. data/test/cases/attribute_test.rb +84 -18
  115. data/test/cases/attributes_test.rb +151 -34
  116. data/test/cases/autosave_association_test.rb +149 -36
  117. data/test/cases/base_test.rb +290 -241
  118. data/test/cases/batches_test.rb +299 -22
  119. data/test/cases/binary_test.rb +2 -10
  120. data/test/cases/bind_parameter_test.rb +76 -66
  121. data/test/cases/cache_key_test.rb +26 -0
  122. data/test/cases/calculations_test.rb +167 -15
  123. data/test/cases/callbacks_test.rb +161 -68
  124. data/test/cases/coders/json_test.rb +15 -0
  125. data/test/cases/collection_cache_key_test.rb +115 -0
  126. data/test/cases/column_definition_test.rb +26 -57
  127. data/test/cases/comment_test.rb +145 -0
  128. data/test/cases/connection_adapters/adapter_leasing_test.rb +5 -3
  129. data/test/cases/connection_adapters/connection_handler_test.rb +128 -21
  130. data/test/cases/connection_adapters/connection_specification_test.rb +1 -1
  131. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +0 -38
  132. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +5 -1
  133. data/test/cases/connection_adapters/schema_cache_test.rb +8 -3
  134. data/test/cases/connection_adapters/type_lookup_test.rb +15 -7
  135. data/test/cases/connection_management_test.rb +46 -56
  136. data/test/cases/connection_pool_test.rb +195 -20
  137. data/test/cases/connection_specification/resolver_test.rb +15 -0
  138. data/test/cases/counter_cache_test.rb +10 -5
  139. data/test/cases/custom_locking_test.rb +1 -1
  140. data/test/cases/database_statements_test.rb +18 -3
  141. data/test/cases/{invalid_date_test.rb → date_test.rb} +13 -1
  142. data/test/cases/date_time_precision_test.rb +107 -0
  143. data/test/cases/defaults_test.rb +85 -89
  144. data/test/cases/dirty_test.rb +30 -52
  145. data/test/cases/disconnected_test.rb +4 -2
  146. data/test/cases/enum_test.rb +178 -24
  147. data/test/cases/errors_test.rb +16 -0
  148. data/test/cases/explain_test.rb +32 -21
  149. data/test/cases/finder_test.rb +273 -148
  150. data/test/cases/fixture_set/file_test.rb +18 -0
  151. data/test/cases/fixtures_test.rb +112 -32
  152. data/test/cases/forbidden_attributes_protection_test.rb +69 -3
  153. data/test/cases/helper.rb +10 -16
  154. data/test/cases/hot_compatibility_test.rb +89 -1
  155. data/test/cases/inheritance_test.rb +284 -53
  156. data/test/cases/integration_test.rb +23 -7
  157. data/test/cases/invalid_connection_test.rb +4 -2
  158. data/test/cases/invertible_migration_test.rb +124 -32
  159. data/test/cases/json_serialization_test.rb +11 -2
  160. data/test/cases/locking_test.rb +22 -6
  161. data/test/cases/log_subscriber_test.rb +106 -17
  162. data/test/cases/migration/change_schema_test.rb +60 -114
  163. data/test/cases/migration/change_table_test.rb +34 -2
  164. data/test/cases/migration/column_attributes_test.rb +7 -23
  165. data/test/cases/migration/column_positioning_test.rb +8 -8
  166. data/test/cases/migration/columns_test.rb +17 -11
  167. data/test/cases/migration/command_recorder_test.rb +47 -2
  168. data/test/cases/migration/compatibility_test.rb +118 -0
  169. data/test/cases/migration/create_join_table_test.rb +21 -12
  170. data/test/cases/migration/foreign_key_test.rb +52 -18
  171. data/test/cases/migration/index_test.rb +14 -12
  172. data/test/cases/migration/logger_test.rb +1 -1
  173. data/test/cases/migration/pending_migrations_test.rb +0 -1
  174. data/test/cases/migration/references_foreign_key_test.rb +59 -7
  175. data/test/cases/migration/references_index_test.rb +4 -4
  176. data/test/cases/migration/references_statements_test.rb +26 -6
  177. data/test/cases/migration/rename_table_test.rb +25 -25
  178. data/test/cases/migration_test.rb +279 -81
  179. data/test/cases/migrator_test.rb +91 -8
  180. data/test/cases/mixin_test.rb +0 -2
  181. data/test/cases/modules_test.rb +3 -4
  182. data/test/cases/multiparameter_attributes_test.rb +24 -2
  183. data/test/cases/multiple_db_test.rb +11 -4
  184. data/test/cases/nested_attributes_test.rb +61 -33
  185. data/test/cases/persistence_test.rb +102 -10
  186. data/test/cases/pooled_connections_test.rb +3 -3
  187. data/test/cases/primary_keys_test.rb +170 -31
  188. data/test/cases/query_cache_test.rb +216 -96
  189. data/test/cases/quoting_test.rb +65 -19
  190. data/test/cases/readonly_test.rb +2 -1
  191. data/test/cases/reflection_test.rb +68 -22
  192. data/test/cases/relation/delegation_test.rb +3 -8
  193. data/test/cases/relation/merging_test.rb +10 -14
  194. data/test/cases/relation/mutation_test.rb +42 -24
  195. data/test/cases/relation/or_test.rb +92 -0
  196. data/test/cases/relation/predicate_builder_test.rb +4 -2
  197. data/test/cases/relation/record_fetch_warning_test.rb +40 -0
  198. data/test/cases/relation/where_chain_test.rb +23 -99
  199. data/test/cases/relation/where_clause_test.rb +182 -0
  200. data/test/cases/relation/where_test.rb +45 -23
  201. data/test/cases/relation_test.rb +67 -58
  202. data/test/cases/relations_test.rb +249 -38
  203. data/test/cases/result_test.rb +10 -0
  204. data/test/cases/sanitize_test.rb +108 -15
  205. data/test/cases/schema_dumper_test.rb +119 -125
  206. data/test/cases/schema_loading_test.rb +52 -0
  207. data/test/cases/scoping/default_scoping_test.rb +113 -39
  208. data/test/cases/scoping/named_scoping_test.rb +46 -9
  209. data/test/cases/scoping/relation_scoping_test.rb +47 -4
  210. data/test/cases/secure_token_test.rb +32 -0
  211. data/test/cases/serialization_test.rb +1 -1
  212. data/test/cases/serialized_attribute_test.rb +93 -6
  213. data/test/cases/statement_cache_test.rb +38 -0
  214. data/test/cases/store_test.rb +2 -1
  215. data/test/cases/suppressor_test.rb +63 -0
  216. data/test/cases/tasks/database_tasks_test.rb +73 -9
  217. data/test/cases/tasks/mysql_rake_test.rb +139 -118
  218. data/test/cases/tasks/postgresql_rake_test.rb +60 -6
  219. data/test/cases/tasks/sqlite_rake_test.rb +30 -3
  220. data/test/cases/test_case.rb +28 -20
  221. data/test/cases/test_fixtures_test.rb +36 -0
  222. data/test/cases/time_precision_test.rb +103 -0
  223. data/test/cases/timestamp_test.rb +44 -10
  224. data/test/cases/touch_later_test.rb +121 -0
  225. data/test/cases/transaction_callbacks_test.rb +128 -62
  226. data/test/cases/transaction_isolation_test.rb +2 -2
  227. data/test/cases/transactions_test.rb +61 -43
  228. data/test/cases/type/adapter_specific_registry_test.rb +133 -0
  229. data/test/cases/type/date_time_test.rb +14 -0
  230. data/test/cases/type/integer_test.rb +2 -96
  231. data/test/cases/type/string_test.rb +0 -14
  232. data/test/cases/type_test.rb +39 -0
  233. data/test/cases/types_test.rb +1 -118
  234. data/test/cases/unconnected_test.rb +1 -1
  235. data/test/cases/validations/absence_validation_test.rb +73 -0
  236. data/test/cases/validations/association_validation_test.rb +13 -2
  237. data/test/cases/validations/i18n_validation_test.rb +6 -10
  238. data/test/cases/validations/length_validation_test.rb +62 -30
  239. data/test/cases/validations/presence_validation_test.rb +36 -1
  240. data/test/cases/validations/uniqueness_validation_test.rb +128 -37
  241. data/test/cases/validations_repair_helper.rb +2 -6
  242. data/test/cases/validations_test.rb +36 -7
  243. data/test/cases/view_test.rb +102 -5
  244. data/test/cases/yaml_serialization_test.rb +21 -26
  245. data/test/config.example.yml +97 -0
  246. data/test/fixtures/bad_posts.yml +9 -0
  247. data/test/fixtures/books.yml +20 -0
  248. data/test/fixtures/content.yml +3 -0
  249. data/test/fixtures/content_positions.yml +3 -0
  250. data/test/fixtures/dead_parrots.yml +5 -0
  251. data/test/fixtures/live_parrots.yml +4 -0
  252. data/test/fixtures/naked/yml/parrots.yml +2 -0
  253. data/test/fixtures/naked/yml/trees.yml +3 -0
  254. data/test/fixtures/nodes.yml +29 -0
  255. data/test/fixtures/other_comments.yml +6 -0
  256. data/test/fixtures/other_dogs.yml +2 -0
  257. data/test/fixtures/other_posts.yml +7 -0
  258. data/test/fixtures/price_estimates.yml +10 -1
  259. data/test/fixtures/trees.yml +3 -0
  260. data/test/migrations/10_urban/9_add_expressions.rb +1 -1
  261. data/test/migrations/decimal/1_give_me_big_numbers.rb +1 -1
  262. data/test/migrations/magic/1_currencies_have_symbols.rb +1 -1
  263. data/test/migrations/missing/1000_people_have_middle_names.rb +2 -2
  264. data/test/migrations/missing/1_people_have_last_names.rb +2 -2
  265. data/test/migrations/missing/3_we_need_reminders.rb +2 -2
  266. data/test/migrations/missing/4_innocent_jointable.rb +2 -2
  267. data/test/migrations/rename/1_we_need_things.rb +2 -2
  268. data/test/migrations/rename/2_rename_things.rb +2 -2
  269. data/test/migrations/to_copy/1_people_have_hobbies.rb +1 -1
  270. data/test/migrations/to_copy/2_people_have_descriptions.rb +1 -1
  271. data/test/migrations/to_copy2/1_create_articles.rb +1 -1
  272. data/test/migrations/to_copy2/2_create_comments.rb +1 -1
  273. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +1 -1
  274. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +1 -1
  275. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +1 -1
  276. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +1 -1
  277. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +1 -1
  278. data/test/migrations/valid/1_valid_people_have_last_names.rb +1 -1
  279. data/test/migrations/valid/2_we_need_reminders.rb +2 -2
  280. data/test/migrations/valid/3_innocent_jointable.rb +2 -2
  281. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +1 -1
  282. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -2
  283. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +2 -2
  284. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +1 -1
  285. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +1 -1
  286. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +1 -1
  287. data/test/migrations/version_check/20131219224947_migration_version_check.rb +1 -1
  288. data/test/models/admin/randomly_named_c1.rb +6 -2
  289. data/test/models/aircraft.rb +1 -0
  290. data/test/models/author.rb +4 -7
  291. data/test/models/bird.rb +1 -1
  292. data/test/models/book.rb +5 -0
  293. data/test/models/bulb.rb +2 -1
  294. data/test/models/car.rb +3 -0
  295. data/test/models/cat.rb +10 -0
  296. data/test/models/chef.rb +1 -0
  297. data/test/models/club.rb +2 -0
  298. data/test/models/comment.rb +17 -5
  299. data/test/models/company.rb +4 -2
  300. data/test/models/company_in_module.rb +1 -1
  301. data/test/models/contact.rb +1 -1
  302. data/test/models/content.rb +40 -0
  303. data/test/models/customer.rb +8 -2
  304. data/test/models/developer.rb +19 -0
  305. data/test/models/face.rb +1 -1
  306. data/test/models/guitar.rb +4 -0
  307. data/test/models/hotel.rb +2 -0
  308. data/test/models/member.rb +1 -0
  309. data/test/models/member_detail.rb +4 -3
  310. data/test/models/mentor.rb +3 -0
  311. data/test/models/mocktail_designer.rb +2 -0
  312. data/test/models/node.rb +5 -0
  313. data/test/models/non_primary_key.rb +2 -0
  314. data/test/models/notification.rb +3 -0
  315. data/test/models/other_dog.rb +5 -0
  316. data/test/models/owner.rb +4 -1
  317. data/test/models/parrot.rb +6 -7
  318. data/test/models/person.rb +0 -1
  319. data/test/models/pet.rb +3 -0
  320. data/test/models/pet_treasure.rb +6 -0
  321. data/test/models/pirate.rb +3 -3
  322. data/test/models/post.rb +18 -9
  323. data/test/models/project.rb +9 -0
  324. data/test/models/randomly_named_c1.rb +1 -1
  325. data/test/models/recipe.rb +3 -0
  326. data/test/models/ship.rb +8 -2
  327. data/test/models/tag.rb +6 -0
  328. data/test/models/topic.rb +2 -8
  329. data/test/models/tree.rb +3 -0
  330. data/test/models/tuning_peg.rb +4 -0
  331. data/test/models/user.rb +14 -0
  332. data/test/models/uuid_item.rb +6 -0
  333. data/test/schema/mysql2_specific_schema.rb +33 -23
  334. data/test/schema/oracle_specific_schema.rb +1 -4
  335. data/test/schema/postgresql_specific_schema.rb +36 -124
  336. data/test/schema/schema.rb +170 -65
  337. data/test/schema/schema.rb.original +1057 -0
  338. data/test/schema/sqlite_specific_schema.rb +1 -5
  339. data/test/support/connection.rb +1 -0
  340. data/test/support/schema_dumping_helper.rb +1 -1
  341. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
  342. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
  343. metadata +146 -30
  344. data/lib/mswin32/rb19x/ibm_db.so +0 -0
  345. data/lib/mswin32/rb21x/i386/ibm_db.so +0 -0
  346. data/lib/mswin32/rb22x/i386/ibm_db.so +0 -0
  347. data/lib/mswin32/rb23x/i386/ibm_db.so +0 -0
  348. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
  349. data/test/cases/attribute_methods/serialization_test.rb +0 -29
  350. data/test/cases/migration/change_schema_test - Copy.rb +0 -448
  351. data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
  352. data/test/cases/migration/table_and_index_test.rb +0 -24
  353. data/test/cases/relation/where_test2.rb +0 -36
  354. data/test/cases/type/decimal_test.rb +0 -56
  355. data/test/cases/type/unsigned_integer_test.rb +0 -18
  356. data/test/cases/xml_serialization_test.rb +0 -457
  357. data/test/fixtures/naked/csv/accounts.csv +0 -1
  358. data/test/schema/mysql_specific_schema.rb +0 -70
@@ -3,6 +3,7 @@ require 'net/http'
3
3
  require 'open-uri'
4
4
  require 'rubygems/package'
5
5
  require 'zlib'
6
+ require 'zip'
6
7
  require 'fileutils'
7
8
 
8
9
 
@@ -42,6 +43,7 @@ module Kernel
42
43
  end
43
44
 
44
45
  DOWNLOADLINK = ''
46
+ ZIP = false
45
47
 
46
48
  if(RUBY_PLATFORM =~ /aix/i)
47
49
  #AIX
@@ -94,6 +96,15 @@ elsif (RUBY_PLATFORM =~ /darwin/i)
94
96
  else
95
97
  puts "Mac OS 32 bit not supported. Please use an x64 architecture."
96
98
  end
99
+ elsif (RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/)
100
+ ZIP = true
101
+ if(is64Bit)
102
+ puts "Detected platform - windows 64"
103
+ DOWNLOADLINK= "http://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zip"
104
+ else
105
+ puts "Detected platform - windows 32"
106
+ DOWNLOADLINK= "http://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/nt32_odbc_cli.zip"
107
+ end
97
108
  end
98
109
 
99
110
  def downloadCLIPackage(destination, link = nil)
@@ -104,7 +115,11 @@ def downloadCLIPackage(destination, link = nil)
104
115
  end
105
116
 
106
117
  uri = URI.parse(downloadLink)
107
- filename = "#{destination}/clidriver.tar.gz"
118
+ if ZIP
119
+ filename = "#{destination}/clidriver.zip"
120
+ else
121
+ filename = "#{destination}/clidriver.tar.gz"
122
+ end
108
123
 
109
124
  headers = {
110
125
  'Accept-Encoding' => 'identity',
@@ -121,6 +136,18 @@ def downloadCLIPackage(destination, link = nil)
121
136
  filename
122
137
  end
123
138
 
139
+ def extract_zip(file, destination)
140
+ FileUtils.mkdir_p(destination)
141
+
142
+ Zip::File.open(file) do |zip_file|
143
+ zip_file.each do |f|
144
+ fpath = File.join(destination, f.name)
145
+ FileUtils.mkdir_p(File.dirname(fpath))
146
+ zip_file.extract(f, fpath) unless File.exist?(fpath)
147
+ end
148
+ end
149
+ end
150
+
124
151
  def untarCLIPackage(archive,destination)
125
152
  Gem::Package::TarReader.new( Zlib::GzipReader.open(archive) ) do |tar|
126
153
  tar.each do |entry|
@@ -157,8 +184,12 @@ if(IBM_DB_HOME == nil || IBM_DB_HOME == '')
157
184
  puts "Environment variable IBM_DB_HOME is not set. Downloading and setting up the DB2 client driver\n"
158
185
  destination = "#{File.expand_path(File.dirname(File.dirname(__FILE__)))}/../lib"
159
186
 
160
- archive = downloadCLIPackage(destination)
161
- untarCLIPackage(archive,destination)
187
+ archive = downloadCLIPackage(destination)
188
+ if (ZIP)
189
+ extract_zip(archive, destination)
190
+ else
191
+ untarCLIPackage(archive,destination)
192
+ end
162
193
 
163
194
  IBM_DB_HOME="#{destination}/clidriver"
164
195
 
@@ -0,0 +1,3 @@
1
+ #ifndef GIL_RELEASE_VERSION
2
+ #define GIL_RELEASE_VERSION
3
+ #endif
@@ -0,0 +1,2 @@
1
+ EXPORTS
2
+ Init_ibm_db
@@ -687,10 +687,9 @@ static void _ruby_ibm_db_mark_stmt_struct(stmt_handle *handle)
687
687
 
688
688
  VALUE ibm_Ruby_Thread_Call(rb_blocking_function_t *func, void *data1, rb_unblock_function_t *ubf, void *data2)
689
689
  {
690
- #ifdef RUBY_API_VERSION_MAJOR
690
+ #ifdef RUBY_API_VERSION_MAJOR
691
691
  if( RUBY_API_VERSION_MAJOR >=2 && RUBY_API_VERSION_MINOR >=2)
692
- {
693
-
692
+ {
694
693
  #ifdef _WIN32
695
694
  void *(*f)(void*) = (void *(*)(void*))func;
696
695
  return (VALUE)rb_thread_call_without_gvl(f, data1, ubf, data2);
@@ -698,7 +697,7 @@ VALUE ibm_Ruby_Thread_Call(rb_blocking_function_t *func, void *data1, rb_unblock
698
697
  return rb_thread_call_without_gvl(func, data1, ubf, data2);
699
698
  #else
700
699
  rb_thread_call_without_gvl(func, data1, ubf, data2);
701
- #endif
700
+ #endif
702
701
  }
703
702
  else
704
703
  {
@@ -706,7 +705,7 @@ VALUE ibm_Ruby_Thread_Call(rb_blocking_function_t *func, void *data1, rb_unblock
706
705
  }
707
706
  #else
708
707
  rb_thread_call_without_gvl(func, data1, ubf, data2);
709
- #endif
708
+ #endif
710
709
  }
711
710
 
712
711
 
@@ -739,7 +738,7 @@ static void _ruby_ibm_db_free_stmt_handle_and_resources(stmt_handle *handle)
739
738
 
740
739
  /* static _ruby_ibm_db_free_stmt_struct */
741
740
  static void _ruby_ibm_db_free_stmt_struct(stmt_handle *handle)
742
- {
741
+ {
743
742
  if ( handle != NULL ) {
744
743
  _ruby_ibm_db_free_stmt_handle_and_resources( handle );
745
744
  ruby_xfree( handle );
@@ -1027,7 +1026,7 @@ static void _ruby_ibm_db_check_sql_errors( void *conn_or_stmt, int resourceType,
1027
1026
 
1028
1027
  #ifdef UNICODE_SUPPORT_VERSION
1029
1028
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLGetDiagRec_helper, get_DiagRec_args,
1030
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
1029
+ RUBY_UBF_IO, NULL);
1031
1030
  return_code =get_DiagRec_args->return_code;
1032
1031
  #else
1033
1032
  return_code = _ruby_ibm_db_SQLGetDiagRec_helper( get_DiagRec_args );
@@ -2002,7 +2001,6 @@ static void _ruby_ibm_db_clear_stmt_err_cache()
2002
2001
  /* static VALUE _ruby_ibm_db_connect_helper2( connect_helper_args *data )
2003
2002
  */
2004
2003
  static VALUE _ruby_ibm_db_connect_helper2( connect_helper_args *data ) {
2005
-
2006
2004
  SQLINTEGER conn_alive;
2007
2005
  SQLINTEGER enable_numeric_literals = 1; /* Enable CLI numeric literals */
2008
2006
 
@@ -2527,8 +2525,7 @@ static VALUE _ruby_ibm_db_connect_helper( int argc, VALUE *argv, int isPersisten
2527
2525
  }
2528
2526
  /* Call the function where the actual logic is being run*/
2529
2527
  #ifdef UNICODE_SUPPORT_VERSION
2530
-
2531
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_connect_helper2, helper_args, (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
2528
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_connect_helper2, helper_args, RUBY_UBF_IO, NULL);
2532
2529
 
2533
2530
 
2534
2531
  conn_res = helper_args->conn_res;
@@ -2555,9 +2552,9 @@ static VALUE _ruby_ibm_db_connect_helper( int argc, VALUE *argv, int isPersisten
2555
2552
  return_value = Data_Wrap_Struct(le_conn_struct, _ruby_ibm_db_mark_conn_struct, _ruby_ibm_db_free_conn_struct, conn_res);
2556
2553
  }
2557
2554
  }
2558
- #else
2555
+ #else
2559
2556
  return_value = _ruby_ibm_db_connect_helper2( helper_args );
2560
- #endif
2557
+ #endif
2561
2558
  /* Free the memory allocated */
2562
2559
  if(conn_args != NULL) {
2563
2560
  /* Memory to structure elements of helper_args is not allocated explicitly hence it is automatically freed by Ruby.
@@ -2826,10 +2823,8 @@ static void _ruby_ibm_db_clear_conn_err_cache()
2826
2823
  *
2827
2824
  */
2828
2825
  VALUE ibm_db_connect(int argc, VALUE *argv, VALUE self)
2829
- {
2830
-
2826
+ {
2831
2827
  _ruby_ibm_db_clear_conn_err_cache();
2832
-
2833
2828
  return _ruby_ibm_db_connect_helper( argc, argv, 0 );
2834
2829
  }
2835
2830
  /* */
@@ -2975,7 +2970,7 @@ VALUE ruby_ibm_db_createDb_helper(VALUE connection, VALUE dbName, VALUE codeSet,
2975
2970
 
2976
2971
  #ifdef UNICODE_SUPPORT_VERSION
2977
2972
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLCreateDB_helper, create_db_args,
2978
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL );
2973
+ RUBY_UBF_IO, NULL );
2979
2974
  rc = create_db_args->rc;
2980
2975
  #else
2981
2976
  rc = _ruby_ibm_db_SQLCreateDB_helper( create_db_args );
@@ -3105,7 +3100,7 @@ VALUE ruby_ibm_db_dropDb_helper(VALUE connection, VALUE dbName) {
3105
3100
 
3106
3101
  #ifdef UNICODE_SUPPORT_VERSION
3107
3102
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDropDB_helper, drop_db_args,
3108
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL );
3103
+ RUBY_UBF_IO, NULL );
3109
3104
  rc = drop_db_args->rc;
3110
3105
  #else
3111
3106
  rc = _ruby_ibm_db_SQLDropDB_helper( drop_db_args );
@@ -3460,10 +3455,9 @@ VALUE ibm_db_bind_param_helper(int argc, char * varname, long varname_len ,long
3460
3455
  /* if argc == 3, then the default value for param_type will be used */
3461
3456
  case 3:
3462
3457
  param_type = SQL_PARAM_INPUT;
3463
-
3464
- #ifdef UNICODE_SUPPORT_VERSION
3465
-
3466
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3458
+
3459
+ #ifdef UNICODE_SUPPORT_VERSIO
3460
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3467
3461
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
3468
3462
  rc = data->rc;
3469
3463
  #else
@@ -3482,10 +3476,9 @@ VALUE ibm_db_bind_param_helper(int argc, char * varname, long varname_len ,long
3482
3476
  break;
3483
3477
 
3484
3478
  case 4:
3485
-
3486
- #ifdef UNICODE_SUPPORT_VERSION
3479
+ #ifdef UNICODE_SUPPORT_VERSION
3487
3480
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3488
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
3481
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
3489
3482
  rc = data->rc;
3490
3483
  #else
3491
3484
  rc = _ruby_ibm_db_SQLDescribeParam_helper( data );
@@ -3503,8 +3496,7 @@ VALUE ibm_db_bind_param_helper(int argc, char * varname, long varname_len ,long
3503
3496
  break;
3504
3497
 
3505
3498
  case 5:
3506
-
3507
- #ifdef UNICODE_SUPPORT_VERSION
3499
+ #ifdef UNICODE_SUPPORT_VERSION
3508
3500
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3509
3501
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
3510
3502
  rc = data->rc;
@@ -3525,10 +3517,9 @@ VALUE ibm_db_bind_param_helper(int argc, char * varname, long varname_len ,long
3525
3517
  break;
3526
3518
 
3527
3519
  case 6:
3528
-
3529
- #ifdef UNICODE_SUPPORT_VERSION
3530
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3531
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
3520
+ #ifdef UNICODE_SUPPORT_VERSION
3521
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDescribeParam_helper, data,
3522
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
3532
3523
  rc = data->rc;
3533
3524
  #else
3534
3525
  rc = _ruby_ibm_db_SQLDescribeParam_helper( data );
@@ -3763,7 +3754,7 @@ VALUE ibm_db_close(int argc, VALUE *argv, VALUE self)
3763
3754
 
3764
3755
  #ifdef UNICODE_SUPPORT_VERSION
3765
3756
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLEndTran, end_X_args,
3766
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
3757
+ RUBY_UBF_IO, NULL);
3767
3758
  rc = end_X_args->rc;
3768
3759
  #else
3769
3760
  rc = _ruby_ibm_db_SQLEndTran( end_X_args );
@@ -3782,7 +3773,7 @@ VALUE ibm_db_close(int argc, VALUE *argv, VALUE self)
3782
3773
 
3783
3774
  #ifdef UNICODE_SUPPORT_VERSION
3784
3775
  rc = ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLDisconnect_helper, &(conn_res->hdbc),
3785
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
3776
+ RUBY_UBF_IO, NULL);
3786
3777
  #else
3787
3778
  rc = _ruby_ibm_db_SQLDisconnect_helper( &(conn_res->hdbc) );
3788
3779
  #endif
@@ -3956,10 +3947,9 @@ VALUE ibm_db_column_privileges(int argc, VALUE *argv, VALUE self)
3956
3947
  #endif
3957
3948
  }
3958
3949
  col_privileges_args->stmt_res = stmt_res;
3959
-
3960
- #ifdef UNICODE_SUPPORT_VERSION
3950
+ #ifdef UNICODE_SUPPORT_VERSION
3961
3951
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLColumnPrivileges_helper, col_privileges_args,
3962
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
3952
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
3963
3953
  rc = col_privileges_args->rc;
3964
3954
  #else
3965
3955
  rc = _ruby_ibm_db_SQLColumnPrivileges_helper( col_privileges_args );
@@ -4137,8 +4127,8 @@ VALUE ibm_db_columns(int argc, VALUE *argv, VALUE self)
4137
4127
  }
4138
4128
  col_metadata_args->stmt_res = stmt_res;
4139
4129
 
4140
- #ifdef UNICODE_SUPPORT_VERSION
4141
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLColumns_helper, col_metadata_args,
4130
+ #ifdef UNICODE_SUPPORT_VERSION
4131
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLColumns_helper, col_metadata_args,
4142
4132
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
4143
4133
  rc = col_metadata_args->rc;
4144
4134
  #else
@@ -4309,8 +4299,8 @@ VALUE ibm_db_foreign_keys(int argc, VALUE *argv, VALUE self)
4309
4299
 
4310
4300
  col_metadata_args->stmt_res = stmt_res;
4311
4301
 
4312
- #ifdef UNICODE_SUPPORT_VERSION
4313
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLForeignKeys_helper, col_metadata_args,
4302
+ #ifdef UNICODE_SUPPORT_VERSION
4303
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLForeignKeys_helper, col_metadata_args,
4314
4304
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
4315
4305
  rc = col_metadata_args->rc;
4316
4306
  #else
@@ -4465,8 +4455,8 @@ VALUE ibm_db_primary_keys(int argc, VALUE *argv, VALUE self)
4465
4455
  }
4466
4456
  col_metadata_args->stmt_res = stmt_res;
4467
4457
 
4468
- #ifdef UNICODE_SUPPORT_VERSION
4469
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLPrimaryKeys_helper, col_metadata_args,
4458
+ #ifdef UNICODE_SUPPORT_VERSION
4459
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLPrimaryKeys_helper, col_metadata_args,
4470
4460
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
4471
4461
  rc = col_metadata_args->rc;
4472
4462
  #else
@@ -4656,9 +4646,9 @@ VALUE ibm_db_procedure_columns(int argc, VALUE *argv, VALUE self)
4656
4646
  }
4657
4647
  col_metadata_args->stmt_res = stmt_res;
4658
4648
 
4659
- #ifdef UNICODE_SUPPORT_VERSION
4660
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLProcedureColumns_helper, col_metadata_args,
4661
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
4649
+ #ifdef UNICODE_SUPPORT_VERSION
4650
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLProcedureColumns_helper, col_metadata_args,
4651
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
4662
4652
  rc = col_metadata_args->rc;
4663
4653
  #else
4664
4654
  rc = _ruby_ibm_db_SQLProcedureColumns_helper( col_metadata_args );
@@ -4813,8 +4803,8 @@ VALUE ibm_db_procedures(int argc, VALUE *argv, VALUE self)
4813
4803
  }
4814
4804
  proc_metadata_args->stmt_res = stmt_res;
4815
4805
 
4816
- #ifdef UNICODE_SUPPORT_VERSION
4817
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLProcedures_helper, proc_metadata_args,
4806
+ #ifdef UNICODE_SUPPORT_VERSION
4807
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLProcedures_helper, proc_metadata_args,
4818
4808
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
4819
4809
  rc = proc_metadata_args->rc;
4820
4810
  #else
@@ -4990,9 +4980,9 @@ VALUE ibm_db_special_columns(int argc, VALUE *argv, VALUE self)
4990
4980
  }
4991
4981
  col_metadata_args->stmt_res = stmt_res;
4992
4982
 
4993
- #ifdef UNICODE_SUPPORT_VERSION
4994
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLSpecialColumns_helper, col_metadata_args,
4995
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
4983
+ #ifdef UNICODE_SUPPORT_VERSION
4984
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLSpecialColumns_helper, col_metadata_args,
4985
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
4996
4986
  rc = col_metadata_args->rc;
4997
4987
  #else
4998
4988
  rc = _ruby_ibm_db_SQLSpecialColumns_helper( col_metadata_args );
@@ -5186,9 +5176,9 @@ VALUE ibm_db_statistics(int argc, VALUE *argv, VALUE self)
5186
5176
  }
5187
5177
  col_metadata_args->stmt_res = stmt_res;
5188
5178
 
5189
- #ifdef UNICODE_SUPPORT_VERSION
5179
+ #ifdef UNICODE_SUPPORT_VERSION
5190
5180
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLStatistics_helper, col_metadata_args,
5191
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5181
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5192
5182
  rc = col_metadata_args->rc;
5193
5183
  #else
5194
5184
  rc = _ruby_ibm_db_SQLStatistics_helper( col_metadata_args );
@@ -5345,9 +5335,9 @@ VALUE ibm_db_table_privileges(int argc, VALUE *argv, VALUE self)
5345
5335
 
5346
5336
  table_privileges_args->stmt_res = stmt_res;
5347
5337
 
5348
- #ifdef UNICODE_SUPPORT_VERSION
5349
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLTablePrivileges_helper, table_privileges_args,
5350
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5338
+ #ifdef UNICODE_SUPPORT_VERSION
5339
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLTablePrivileges_helper, table_privileges_args,
5340
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5351
5341
  rc = table_privileges_args->rc;
5352
5342
  #else
5353
5343
  rc = _ruby_ibm_db_SQLTablePrivileges_helper( table_privileges_args );
@@ -5519,8 +5509,8 @@ VALUE ibm_db_tables(int argc, VALUE *argv, VALUE self)
5519
5509
 
5520
5510
  table_metadata_args->stmt_res = stmt_res;
5521
5511
 
5522
- #ifdef UNICODE_SUPPORT_VERSION
5523
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLTables_helper, table_metadata_args,
5512
+ #ifdef UNICODE_SUPPORT_VERSION
5513
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLTables_helper, table_metadata_args,
5524
5514
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5525
5515
  rc = table_metadata_args->rc;
5526
5516
  #else
@@ -5603,7 +5593,7 @@ VALUE ibm_db_commit(int argc, VALUE *argv, VALUE self)
5603
5593
 
5604
5594
  #ifdef UNICODE_SUPPORT_VERSION
5605
5595
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLEndTran, end_X_args,
5606
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
5596
+ RUBY_UBF_IO, NULL);
5607
5597
  rc = end_X_args->rc;
5608
5598
  #else
5609
5599
  rc = _ruby_ibm_db_SQLEndTran( end_X_args );
@@ -5681,9 +5671,9 @@ static int _ruby_ibm_db_do_prepare(conn_handle *conn_res, VALUE stmt, stmt_handl
5681
5671
  prepare_args->stmt_res = stmt_res;
5682
5672
 
5683
5673
  /* Prepare the stmt. The cursor type requested has already been set in _ruby_ibm_db_assign_options */
5684
- #ifdef UNICODE_SUPPORT_VERSION
5685
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLPrepare_helper, prepare_args,
5686
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5674
+ #ifdef UNICODE_SUPPORT_VERSION
5675
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLPrepare_helper, prepare_args,
5676
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5687
5677
  rc = prepare_args->rc;
5688
5678
  #else
5689
5679
  rc = _ruby_ibm_db_SQLPrepare_helper( prepare_args );
@@ -5823,9 +5813,9 @@ VALUE ibm_db_exec(int argc, VALUE *argv, VALUE self)
5823
5813
  exec_direct_args->stmt_res = stmt_res;
5824
5814
 
5825
5815
 
5826
- #ifdef UNICODE_SUPPORT_VERSION
5827
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLExecDirect_helper, exec_direct_args,
5828
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5816
+ #ifdef UNICODE_SUPPORT_VERSION
5817
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLExecDirect_helper, exec_direct_args,
5818
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5829
5819
  rc = exec_direct_args->rc;
5830
5820
  #else
5831
5821
  rc = _ruby_ibm_db_SQLExecDirect_helper( exec_direct_args );
@@ -5897,8 +5887,8 @@ VALUE ibm_db_free_result(int argc, VALUE *argv, VALUE self)
5897
5887
  freeStmt_args->stmt_res = stmt_res;
5898
5888
  freeStmt_args->option = SQL_CLOSE;
5899
5889
 
5900
- #ifdef UNICODE_SUPPORT_VERSION
5901
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLFreeStmt_helper, freeStmt_args,
5890
+ #ifdef UNICODE_SUPPORT_VERSION
5891
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLFreeStmt_helper, freeStmt_args,
5902
5892
  (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
5903
5893
  rc = freeStmt_args->rc;
5904
5894
  #else
@@ -7015,9 +7005,9 @@ VALUE ibm_db_execute(int argc, VALUE *argv, VALUE self)
7015
7005
  bind_array->num = 0;
7016
7006
  bind_array->error = &error;
7017
7007
 
7018
- #ifdef UNICODE_SUPPORT_VERSION
7019
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_execute_helper, bind_array,
7020
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
7008
+ #ifdef UNICODE_SUPPORT_VERSION
7009
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_execute_helper, bind_array,
7010
+ RUBY_UBF_IO, NULL );
7021
7011
  ret_value = bind_array->return_value;
7022
7012
  #else
7023
7013
  ret_value = _ruby_ibm_db_execute_helper( bind_array );
@@ -7801,9 +7791,9 @@ VALUE ibm_db_next_result(int argc, VALUE *argv, VALUE self)
7801
7791
  nextresultparams->stmt_res = stmt_res;
7802
7792
  nextresultparams->new_hstmt = &new_hstmt;
7803
7793
 
7804
- #ifdef UNICODE_SUPPORT_VERSION
7805
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLNextResult_helper, nextresultparams,
7806
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
7794
+ #ifdef UNICODE_SUPPORT_VERSION
7795
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLNextResult_helper, nextresultparams,
7796
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
7807
7797
  rc = nextresultparams->rc;
7808
7798
  #else
7809
7799
  rc = _ruby_ibm_db_SQLNextResult_helper( nextresultparams );
@@ -7903,8 +7893,8 @@ VALUE ibm_db_num_fields(int argc, VALUE *argv, VALUE self)
7903
7893
  result_cols_args->count = 0;
7904
7894
 
7905
7895
  #ifdef UNICODE_SUPPORT_VERSION
7906
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLNumResultCols_helper, result_cols_args,
7907
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
7896
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLNumResultCols_helper, result_cols_args,
7897
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
7908
7898
  rc = result_cols_args->rc;
7909
7899
  #else
7910
7900
  rc = _ruby_ibm_db_SQLNumResultCols_helper( result_cols_args );
@@ -7995,9 +7985,9 @@ VALUE ibm_db_num_rows(int argc, VALUE *argv, VALUE self)
7995
7985
  row_count_args->stmt_res = stmt_res;
7996
7986
  row_count_args->count = 0;
7997
7987
 
7998
- #ifdef UNICODE_SUPPORT_VERSION
7999
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLRowCount_helper, row_count_args,
8000
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
7988
+ #ifdef UNICODE_SUPPORT_VERSION
7989
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLRowCount_helper, row_count_args,
7990
+ RUBY_UBF_IO, NULL );
8001
7991
  rc = row_count_args->rc;
8002
7992
  #else
8003
7993
  rc = _ruby_ibm_db_SQLRowCount_helper( row_count_args );
@@ -8053,8 +8043,8 @@ static int _ruby_ibm_db_get_column_by_name(stmt_handle *stmt_res, VALUE column,
8053
8043
  if ( release_gil == 1 ) {
8054
8044
 
8055
8045
  #ifdef UNICODE_SUPPORT_VERSION
8056
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_get_result_set_info, stmt_res,
8057
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
8046
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_get_result_set_info, stmt_res,
8047
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
8058
8048
  rc = stmt_res->rc;
8059
8049
  #else
8060
8050
  rc = _ruby_ibm_db_get_result_set_info( stmt_res );
@@ -8216,9 +8206,9 @@ VALUE ibm_db_field_display_size(int argc, VALUE *argv, VALUE self)
8216
8206
  colattr_args->col_num = col+1;
8217
8207
  colattr_args->FieldIdentifier = SQL_DESC_DISPLAY_SIZE;
8218
8208
 
8219
- #ifdef UNICODE_SUPPORT_VERSION
8220
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLColAttributes_helper, colattr_args,
8221
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
8209
+ #ifdef UNICODE_SUPPORT_VERSION
8210
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLColAttributes_helper, colattr_args,
8211
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
8222
8212
  rc = colattr_args->rc;
8223
8213
  #else
8224
8214
  rc = _ruby_ibm_db_SQLColAttributes_helper( colattr_args );
@@ -8537,9 +8527,9 @@ VALUE ibm_db_field_width(int argc, VALUE *argv, VALUE self)
8537
8527
  colattr_args->col_num = col+1;
8538
8528
  colattr_args->FieldIdentifier = SQL_DESC_LENGTH;
8539
8529
 
8540
- #ifdef UNICODE_SUPPORT_VERSION
8530
+ #ifdef UNICODE_SUPPORT_VERSION
8541
8531
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLColAttributes_helper, colattr_args,
8542
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
8532
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res);
8543
8533
  rc = colattr_args->rc;
8544
8534
  #else
8545
8535
  rc = _ruby_ibm_db_SQLColAttributes_helper( colattr_args );
@@ -8641,7 +8631,7 @@ VALUE ibm_db_rollback(int argc, VALUE *argv, VALUE self)
8641
8631
  end_X_args->completionType = SQL_ROLLBACK; /*Remeber you are Rollingback the transaction*/
8642
8632
  #ifdef UNICODE_SUPPORT_VERSION
8643
8633
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_SQLEndTran, end_X_args,
8644
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
8634
+ RUBY_UBF_IO, NULL);
8645
8635
  rc = end_X_args->rc;
8646
8636
  #else
8647
8637
  rc = _ruby_ibm_db_SQLEndTran( end_X_args );
@@ -9262,8 +9252,8 @@ VALUE ibm_db_result(int argc, VALUE *argv, VALUE self)
9262
9252
  Data_Get_Struct(stmt, stmt_handle, result_args->stmt_res);
9263
9253
 
9264
9254
  #ifdef UNICODE_SUPPORT_VERSION
9265
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_result_helper, result_args,
9266
- (void *)_ruby_ibm_db_Statement_level_UBF, result_args->stmt_res );
9255
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_result_helper, result_args,
9256
+ (void *)_ruby_ibm_db_Statement_level_UBF, result_args->stmt_res );
9267
9257
  ret_val = result_args->return_value;
9268
9258
  #else
9269
9259
  ret_val = _ruby_ibm_db_result_helper( result_args );
@@ -9600,7 +9590,7 @@ static VALUE _ruby_ibm_db_bind_fetch_helper(ibm_db_fetch_helper_args *data)
9600
9590
  return Qnil;
9601
9591
  }
9602
9592
 
9603
- strcpy(tmpStr, "BigDecimal.new(\'");
9593
+ strcpy(tmpStr, "BigDecimal(\'");
9604
9594
  strcat(tmpStr, row_data->str_val);
9605
9595
  strcat(tmpStr, "\')");
9606
9596
 
@@ -10082,9 +10072,9 @@ VALUE ibm_db_fetch_row(int argc, VALUE *argv, VALUE self)
10082
10072
  helper_args->arg_count = argc;
10083
10073
  helper_args->error = &error;
10084
10074
 
10085
- #ifdef UNICODE_SUPPORT_VERSION
10075
+ #ifdef UNICODE_SUPPORT_VERSION
10086
10076
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_fetch_row_helper, helper_args,
10087
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
10077
+ RUBY_UBF_IO, NULL );
10088
10078
  ret_val = helper_args->return_value;
10089
10079
  #else
10090
10080
  ret_val = _ruby_ibm_db_fetch_row_helper( helper_args );
@@ -10251,9 +10241,9 @@ VALUE ibm_db_fetch_assoc(int argc, VALUE *argv, VALUE self) {
10251
10241
  helper_args->error = &error;
10252
10242
  helper_args->funcType = FETCH_ASSOC;
10253
10243
 
10254
- #ifdef UNICODE_SUPPORT_VERSION
10255
- ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10256
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
10244
+ #ifdef UNICODE_SUPPORT_VERSION
10245
+ ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10246
+ RUBY_UBF_IO, NULL );
10257
10247
  ret_val = helper_args->return_value;
10258
10248
 
10259
10249
  #else
@@ -10340,9 +10330,9 @@ VALUE ibm_db_fetch_object(int argc, VALUE *argv, VALUE self)
10340
10330
  helper_args->error = &error;
10341
10331
  helper_args->funcType = FETCH_ASSOC;
10342
10332
 
10343
- #ifdef UNICODE_SUPPORT_VERSION
10333
+ #ifdef UNICODE_SUPPORT_VERSION
10344
10334
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10345
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
10335
+ (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
10346
10336
  row_res->hash = helper_args->return_value;
10347
10337
  #else
10348
10338
  row_res->hash = _ruby_ibm_db_bind_fetch_helper( helper_args );
@@ -10422,17 +10412,15 @@ VALUE ibm_db_fetch_array(int argc, VALUE *argv, VALUE self)
10422
10412
  helper_args->arg_count = argc;
10423
10413
  helper_args->error = &error;
10424
10414
  helper_args->funcType = FETCH_INDEX;
10425
-
10426
10415
  //Call without thread API to avoid the Thread lock.
10427
10416
  ret_val = _ruby_ibm_db_bind_fetch_helper( helper_args );
10428
-
10429
- //#ifdef UNICODE_SUPPORT_VERSION
10430
- //ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10431
- // (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
10432
- // ret_val = helper_args->return_value;
10433
- //
10417
+ //#ifdef UNICODE_SUPPORT_VERSION
10418
+ //ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10419
+ // RUBY_UBF_IO, NULL );
10420
+ //ret_val = helper_args->return_value;
10421
+
10434
10422
  //#else
10435
- // ret_val = _ruby_ibm_db_bind_fetch_helper( helper_args );
10423
+ //ret_val = _ruby_ibm_db_bind_fetch_helper( helper_args );
10436
10424
  //#endif
10437
10425
 
10438
10426
  /*Free Memory Allocated*/
@@ -10504,9 +10492,9 @@ VALUE ibm_db_fetch_both(int argc, VALUE *argv, VALUE self)
10504
10492
  helper_args->error = &error;
10505
10493
  helper_args->funcType = FETCH_BOTH;
10506
10494
 
10507
- #ifdef UNICODE_SUPPORT_VERSION
10495
+ #ifdef UNICODE_SUPPORT_VERSIO
10508
10496
  ibm_Ruby_Thread_Call ( (void *)_ruby_ibm_db_bind_fetch_helper, helper_args,
10509
- (void *)_ruby_ibm_db_Statement_level_UBF, stmt_res );
10497
+ RUBY_UBF_IO, NULL );
10510
10498
  ret_val = helper_args->return_value;
10511
10499
  #else
10512
10500
  ret_val = _ruby_ibm_db_bind_fetch_helper( helper_args );
@@ -11272,8 +11260,9 @@ VALUE ibm_db_server_info(int argc, VALUE *argv, VALUE self)
11272
11260
  getInfo_args->infoValue = NULL;
11273
11261
  getInfo_args->buff_length = 0;
11274
11262
  #ifdef UNICODE_SUPPORT_VERSION
11275
- ibm_Ruby_Thread_Call ( (void *)ibm_db_server_info_helper, getInfo_args,
11276
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
11263
+ // Thread.current.report_on_exception = Qfalse;
11264
+ ibm_Ruby_Thread_Call ( (void *)ibm_db_server_info_helper, getInfo_args,
11265
+ RUBY_UBF_IO, NULL);
11277
11266
  return_value = getInfo_args->return_value;
11278
11267
  #else
11279
11268
  return_value = ibm_db_server_info_helper( getInfo_args );
@@ -11567,10 +11556,10 @@ VALUE ibm_db_client_info(int argc, VALUE *argv, VALUE self)
11567
11556
  getInfo_args->infoType = 0;
11568
11557
  getInfo_args->infoValue = NULL;
11569
11558
  getInfo_args->buff_length = 0;
11570
-
11559
+ // using the default unblock funtion RUBY_UBF_IO instead of defined unblock function
11571
11560
  #ifdef UNICODE_SUPPORT_VERSION
11572
11561
  ibm_Ruby_Thread_Call ( (void *)ibm_db_client_info_helper, getInfo_args,
11573
- (void *)_ruby_ibm_db_Connection_level_UBF, NULL);
11562
+ RUBY_UBF_IO, NULL);
11574
11563
  return_value = getInfo_args->return_value;
11575
11564
 
11576
11565
  #else
@@ -11885,3 +11874,6 @@ VALUE ibm_db_get_last_serial_value(int argc, VALUE *argv, VALUE self)
11885
11874
  * vim600: noet sw=4 ts=4 fdm=marker
11886
11875
  * vim<600: noet sw=4 ts=4
11887
11876
  */
11877
+
11878
+ /*
11879
+ +----------------------------------------------------------------------+*/