ibm_db 3.0.3 → 5.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (477) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +10 -0
  3. data/LICENSE +1 -1
  4. data/ParameterizedQueries README +6 -6
  5. data/README +38 -55
  6. data/ext/Makefile +266 -0
  7. data/ext/extconf.rb +34 -3
  8. data/ext/gil_release_version +3 -0
  9. data/ext/ibm_db.c +106 -111
  10. data/ext/ibm_db.o +0 -0
  11. data/ext/ibm_db.so +0 -0
  12. data/ext/mkmf.log +103 -0
  13. data/ext/ruby_ibm_db_cli.o +0 -0
  14. data/ext/unicode_support_version +3 -0
  15. data/lib/active_record/connection_adapters/ibm_db_adapter.rb +937 -562
  16. data/lib/active_record/connection_adapters/ibmdb_adapter.rb +4 -1
  17. data/lib/clidriver.tar.gz +0 -0
  18. data/lib/clidriver/bin/db2cli +0 -0
  19. data/lib/clidriver/bin/db2diag +0 -0
  20. data/lib/clidriver/bin/db2drdat +0 -0
  21. data/lib/clidriver/bin/db2dsdcfgfill +0 -0
  22. data/lib/clidriver/bin/db2ldcfg +0 -0
  23. data/lib/clidriver/bin/db2lddrg +0 -0
  24. data/lib/clidriver/bin/db2level +0 -0
  25. data/lib/clidriver/bin/db2support +0 -0
  26. data/lib/clidriver/bin/db2trc +0 -0
  27. data/lib/clidriver/bnd/db2ajgrt.bnd +0 -0
  28. data/lib/clidriver/bnd/db2cli.bnd +0 -0
  29. data/lib/clidriver/bnd/db2cli.lst +4 -0
  30. data/lib/clidriver/bnd/db2clipk.bnd +0 -0
  31. data/lib/clidriver/bnd/db2clist.bnd +0 -0
  32. data/lib/clidriver/bnd/db2spcdb.bnd +0 -0
  33. data/lib/clidriver/cfg/DigiCertGlobalRootCA.arm +22 -0
  34. data/lib/clidriver/cfg/db2cli.ini.sample +16 -0
  35. data/lib/clidriver/cfg/db2dsdriver.cfg.sample +50 -0
  36. data/lib/clidriver/cfg/db2dsdriver.xsd +216 -0
  37. data/lib/clidriver/cfgcache/conlic.bin +0 -0
  38. data/lib/clidriver/conv/alt/04370923.cnv +0 -0
  39. data/lib/clidriver/conv/alt/08500923.cnv +0 -0
  40. data/lib/clidriver/conv/alt/08501252.cnv +0 -0
  41. data/lib/clidriver/conv/alt/08600923.cnv +0 -0
  42. data/lib/clidriver/conv/alt/08630923.cnv +0 -0
  43. data/lib/clidriver/conv/alt/09230437.cnv +0 -0
  44. data/lib/clidriver/conv/alt/09230850.cnv +0 -0
  45. data/lib/clidriver/conv/alt/09230860.cnv +0 -0
  46. data/lib/clidriver/conv/alt/09231043.cnv +0 -0
  47. data/lib/clidriver/conv/alt/09231051.cnv +0 -0
  48. data/lib/clidriver/conv/alt/09231114.cnv +0 -0
  49. data/lib/clidriver/conv/alt/09231208.cnv +0 -0
  50. data/lib/clidriver/conv/alt/09231252.cnv +0 -0
  51. data/lib/clidriver/conv/alt/09231275.cnv +0 -0
  52. data/lib/clidriver/conv/alt/09241252.cnv +0 -0
  53. data/lib/clidriver/conv/alt/09370950.cnv +0 -0
  54. data/lib/clidriver/conv/alt/10430923.cnv +0 -0
  55. data/lib/clidriver/conv/alt/10510923.cnv +0 -0
  56. data/lib/clidriver/conv/alt/11140923.cnv +0 -0
  57. data/lib/clidriver/conv/alt/12080923.cnv +0 -0
  58. data/lib/clidriver/conv/alt/12520850.cnv +0 -0
  59. data/lib/clidriver/conv/alt/12520923.cnv +0 -0
  60. data/lib/clidriver/conv/alt/12750923.cnv +0 -0
  61. data/lib/clidriver/conv/alt/1388ucs2.cnv +0 -0
  62. data/lib/clidriver/conv/alt/IBM00850.ucs +0 -0
  63. data/lib/clidriver/conv/alt/IBM00923.ucs +0 -0
  64. data/lib/clidriver/conv/alt/IBM01252.ucs +0 -0
  65. data/lib/clidriver/conv/ms/0930ucs2.cnv +0 -0
  66. data/lib/clidriver/conv/ms/0939ucs2.cnv +0 -0
  67. data/lib/clidriver/conv/ms/0943ucs2.cnv +0 -0
  68. data/lib/clidriver/conv/ms/0954ucs2.cnv +0 -0
  69. data/lib/clidriver/conv/ms/1390ucs2.cnv +0 -0
  70. data/lib/clidriver/conv/ms/1399ucs2.cnv +0 -0
  71. data/lib/clidriver/conv/ms/5039ucs2.cnv +0 -0
  72. data/lib/clidriver/conv/ms/ucs20943.cnv +0 -0
  73. data/lib/clidriver/include/sql.h +3149 -0
  74. data/lib/clidriver/include/sqlca.h +119 -0
  75. data/lib/clidriver/include/sqlcli.h +1042 -0
  76. data/lib/clidriver/include/sqlcli1.h +1963 -0
  77. data/lib/clidriver/include/sqlda.h +303 -0
  78. data/lib/clidriver/include/sqlenv.h +7389 -0
  79. data/lib/clidriver/include/sqlext.h +2189 -0
  80. data/lib/clidriver/include/sqlstate.h +1397 -0
  81. data/lib/clidriver/include/sqlsystm.h +119 -0
  82. data/lib/clidriver/include/sqltypes.h +22 -0
  83. data/lib/clidriver/include/sqlucode.h +22 -0
  84. data/lib/clidriver/include/sqlunx.h +24 -0
  85. data/lib/clidriver/lib/icc/C/icc/icclib/ICCSIG.txt +23 -0
  86. data/lib/clidriver/lib/icc/C/icc/icclib/libicclib084.so +0 -0
  87. data/lib/clidriver/lib/icc/N/icc/icclib/ICCSIG.txt +23 -0
  88. data/lib/clidriver/lib/icc/N/icc/icclib/libicclib085.so +0 -0
  89. data/lib/clidriver/lib/icc/libgsk8cms_64.so +0 -0
  90. data/lib/clidriver/lib/icc/libgsk8dbfl_64.so +0 -0
  91. data/lib/clidriver/lib/icc/libgsk8iccs_64.so +0 -0
  92. data/lib/clidriver/lib/icc/libgsk8kicc_64.so +0 -0
  93. data/lib/clidriver/lib/icc/libgsk8km_64.so +0 -0
  94. data/lib/clidriver/lib/icc/libgsk8ssl_64.so +0 -0
  95. data/lib/clidriver/lib/icc/libgsk8sys_64.so +0 -0
  96. data/lib/clidriver/lib/icc/libgsk8valn_64.so +0 -0
  97. data/lib/clidriver/lib/libDB2xml4c.so +1 -0
  98. data/lib/clidriver/lib/libDB2xml4c.so.58 +1 -0
  99. data/lib/clidriver/lib/libDB2xml4c.so.58.0 +0 -0
  100. data/lib/clidriver/lib/libdb2.so +1 -0
  101. data/lib/clidriver/lib/libdb2.so.1 +0 -0
  102. data/lib/clidriver/lib/libdb2clixml4c.so +1 -0
  103. data/lib/clidriver/lib/libdb2clixml4c.so.1 +0 -0
  104. data/lib/clidriver/license/UNIX/odbc_LI_cs +278 -0
  105. data/lib/clidriver/license/UNIX/odbc_LI_de +364 -0
  106. data/lib/clidriver/license/UNIX/odbc_LI_el +294 -0
  107. data/lib/clidriver/license/UNIX/odbc_LI_en +752 -0
  108. data/lib/clidriver/license/UNIX/odbc_LI_es +338 -0
  109. data/lib/clidriver/license/UNIX/odbc_LI_fr +396 -0
  110. data/lib/clidriver/license/UNIX/odbc_LI_in +270 -0
  111. data/lib/clidriver/license/UNIX/odbc_LI_it +316 -0
  112. data/lib/clidriver/license/UNIX/odbc_LI_ja +246 -0
  113. data/lib/clidriver/license/UNIX/odbc_LI_ko +240 -0
  114. data/lib/clidriver/license/UNIX/odbc_LI_lt +302 -0
  115. data/lib/clidriver/license/UNIX/odbc_LI_pl +292 -0
  116. data/lib/clidriver/license/UNIX/odbc_LI_pt +314 -0
  117. data/lib/clidriver/license/UNIX/odbc_LI_ru +296 -0
  118. data/lib/clidriver/license/UNIX/odbc_LI_sl +278 -0
  119. data/lib/clidriver/license/UNIX/odbc_LI_tr +296 -0
  120. data/lib/clidriver/license/UNIX/odbc_LI_zh +310 -0
  121. data/lib/clidriver/license/UNIX/odbc_LI_zh_TW +310 -0
  122. data/lib/clidriver/license/odbc_REDIST.txt +128 -0
  123. data/lib/clidriver/license/odbc_notices.txt +444 -0
  124. data/lib/clidriver/msg/en_US.iso88591/db2adm.mo +0 -0
  125. data/lib/clidriver/msg/en_US.iso88591/db2admh.mo +0 -0
  126. data/lib/clidriver/msg/en_US.iso88591/db2caem.mo +0 -0
  127. data/lib/clidriver/msg/en_US.iso88591/db2cklog.mo +0 -0
  128. data/lib/clidriver/msg/en_US.iso88591/db2cli.mo +0 -0
  129. data/lib/clidriver/msg/en_US.iso88591/db2clia1.lst +35 -0
  130. data/lib/clidriver/msg/en_US.iso88591/db2clias.lst +21 -0
  131. data/lib/clidriver/msg/en_US.iso88591/db2clih.mo +0 -0
  132. data/lib/clidriver/msg/en_US.iso88591/db2clit.mo +0 -0
  133. data/lib/clidriver/msg/en_US.iso88591/db2clp.mo +0 -0
  134. data/lib/clidriver/msg/en_US.iso88591/db2clp2.mo +0 -0
  135. data/lib/clidriver/msg/en_US.iso88591/db2diag.mo +0 -0
  136. data/lib/clidriver/msg/en_US.iso88591/db2fodc.mo +0 -0
  137. data/lib/clidriver/msg/en_US.iso88591/db2sql.mo +0 -0
  138. data/lib/clidriver/msg/en_US.iso88591/db2sqlh.mo +0 -0
  139. data/lib/clidriver/msg/en_US.iso88591/db2stt.mo +0 -0
  140. data/lib/clidriver/msg/en_US.iso88591/db2supp.mo +0 -0
  141. data/lib/clidriver/security64/plugin/IBM/client/IBMIAMauth.so +0 -0
  142. data/lib/clidriver/security64/plugin/IBM/client/IBMkrb5.so +0 -0
  143. data/test/active_record/connection_adapters/fake_adapter.rb +8 -5
  144. data/test/cases/adapter_test.rb +148 -58
  145. data/test/cases/adapters/mysql2/active_schema_test.rb +193 -0
  146. data/test/cases/adapters/mysql2/bind_parameter_test.rb +50 -0
  147. data/test/cases/adapters/mysql2/boolean_test.rb +100 -0
  148. data/test/cases/adapters/mysql2/case_sensitivity_test.rb +63 -0
  149. data/test/cases/adapters/mysql2/charset_collation_test.rb +54 -0
  150. data/test/cases/adapters/mysql2/connection_test.rb +210 -0
  151. data/test/cases/adapters/mysql2/datetime_precision_quoting_test.rb +45 -0
  152. data/test/cases/adapters/mysql2/enum_test.rb +26 -0
  153. data/test/cases/adapters/mysql2/explain_test.rb +21 -0
  154. data/test/cases/adapters/mysql2/json_test.rb +195 -0
  155. data/test/cases/adapters/mysql2/mysql2_adapter_test.rb +83 -0
  156. data/test/cases/adapters/mysql2/reserved_word_test.rb +152 -0
  157. data/test/cases/adapters/mysql2/schema_migrations_test.rb +59 -0
  158. data/test/cases/adapters/mysql2/schema_test.rb +126 -0
  159. data/test/cases/adapters/mysql2/sp_test.rb +36 -0
  160. data/test/cases/adapters/mysql2/sql_types_test.rb +14 -0
  161. data/test/cases/adapters/mysql2/table_options_test.rb +42 -0
  162. data/test/cases/adapters/mysql2/unsigned_type_test.rb +66 -0
  163. data/test/cases/adapters/postgresql/active_schema_test.rb +98 -0
  164. data/test/cases/adapters/postgresql/array_test.rb +339 -0
  165. data/test/cases/adapters/postgresql/bit_string_test.rb +82 -0
  166. data/test/cases/adapters/postgresql/bytea_test.rb +134 -0
  167. data/test/cases/adapters/postgresql/case_insensitive_test.rb +26 -0
  168. data/test/cases/adapters/postgresql/change_schema_test.rb +38 -0
  169. data/test/cases/adapters/postgresql/cidr_test.rb +25 -0
  170. data/test/cases/adapters/postgresql/citext_test.rb +78 -0
  171. data/test/cases/adapters/postgresql/collation_test.rb +53 -0
  172. data/test/cases/adapters/postgresql/composite_test.rb +132 -0
  173. data/test/cases/adapters/postgresql/connection_test.rb +257 -0
  174. data/test/cases/adapters/postgresql/datatype_test.rb +92 -0
  175. data/test/cases/adapters/postgresql/domain_test.rb +47 -0
  176. data/test/cases/adapters/postgresql/enum_test.rb +91 -0
  177. data/test/cases/adapters/postgresql/explain_test.rb +20 -0
  178. data/test/cases/adapters/postgresql/extension_migration_test.rb +63 -0
  179. data/test/cases/adapters/postgresql/full_text_test.rb +44 -0
  180. data/test/cases/adapters/postgresql/geometric_test.rb +378 -0
  181. data/test/cases/adapters/postgresql/hstore_test.rb +382 -0
  182. data/test/cases/adapters/postgresql/infinity_test.rb +69 -0
  183. data/test/cases/adapters/postgresql/integer_test.rb +25 -0
  184. data/test/cases/adapters/postgresql/json_test.rb +237 -0
  185. data/test/cases/adapters/postgresql/ltree_test.rb +53 -0
  186. data/test/cases/adapters/postgresql/money_test.rb +96 -0
  187. data/test/cases/adapters/postgresql/network_test.rb +94 -0
  188. data/test/cases/adapters/postgresql/numbers_test.rb +49 -0
  189. data/test/cases/adapters/postgresql/postgresql_adapter_test.rb +405 -0
  190. data/test/cases/adapters/postgresql/prepared_statements_test.rb +22 -0
  191. data/test/cases/adapters/postgresql/quoting_test.rb +44 -0
  192. data/test/cases/adapters/postgresql/range_test.rb +343 -0
  193. data/test/cases/adapters/postgresql/referential_integrity_test.rb +111 -0
  194. data/test/cases/adapters/postgresql/rename_table_test.rb +34 -0
  195. data/test/cases/adapters/postgresql/schema_authorization_test.rb +119 -0
  196. data/test/cases/adapters/postgresql/schema_test.rb +597 -0
  197. data/test/cases/adapters/postgresql/serial_test.rb +154 -0
  198. data/test/cases/adapters/postgresql/statement_pool_test.rb +41 -0
  199. data/test/cases/adapters/postgresql/timestamp_test.rb +90 -0
  200. data/test/cases/adapters/postgresql/type_lookup_test.rb +33 -0
  201. data/test/cases/adapters/postgresql/utils_test.rb +62 -0
  202. data/test/cases/adapters/postgresql/uuid_test.rb +294 -0
  203. data/test/cases/adapters/postgresql/xml_test.rb +54 -0
  204. data/test/cases/adapters/sqlite3/collation_test.rb +53 -0
  205. data/test/cases/adapters/sqlite3/copy_table_test.rb +98 -0
  206. data/test/cases/adapters/sqlite3/explain_test.rb +21 -0
  207. data/test/cases/adapters/sqlite3/quoting_test.rb +101 -0
  208. data/test/cases/adapters/sqlite3/sqlite3_adapter_test.rb +441 -0
  209. data/test/cases/adapters/sqlite3/sqlite3_create_folder_test.rb +24 -0
  210. data/test/cases/adapters/sqlite3/statement_pool_test.rb +20 -0
  211. data/test/cases/aggregations_test.rb +11 -1
  212. data/test/cases/ar_schema_test.rb +35 -50
  213. data/test/cases/associations/association_scope_test.rb +1 -6
  214. data/test/cases/associations/belongs_to_associations_test.rb +122 -10
  215. data/test/cases/associations/bidirectional_destroy_dependencies_test.rb +41 -0
  216. data/test/cases/associations/callbacks_test.rb +5 -7
  217. data/test/cases/associations/cascaded_eager_loading_test.rb +1 -1
  218. data/test/cases/associations/eager_load_nested_include_test.rb +1 -3
  219. data/test/cases/associations/eager_test.rb +176 -73
  220. data/test/cases/associations/extension_test.rb +7 -2
  221. data/test/cases/associations/has_and_belongs_to_many_associations_test.rb +104 -32
  222. data/test/cases/associations/has_many_associations_test.rb +382 -43
  223. data/test/cases/associations/has_many_through_associations_test.rb +108 -41
  224. data/test/cases/associations/has_one_associations_test.rb +105 -8
  225. data/test/cases/associations/has_one_through_associations_test.rb +6 -3
  226. data/test/cases/associations/inner_join_association_test.rb +3 -3
  227. data/test/cases/associations/inverse_associations_test.rb +51 -11
  228. data/test/cases/associations/join_model_test.rb +59 -36
  229. data/test/cases/associations/left_outer_join_association_test.rb +88 -0
  230. data/test/cases/associations/nested_through_associations_test.rb +2 -2
  231. data/test/cases/associations/required_test.rb +25 -5
  232. data/test/cases/associations_test.rb +39 -34
  233. data/test/cases/attribute_decorators_test.rb +9 -8
  234. data/test/cases/attribute_methods/read_test.rb +5 -5
  235. data/test/cases/attribute_methods_test.rb +97 -40
  236. data/test/cases/attribute_set_test.rb +74 -4
  237. data/test/cases/attribute_test.rb +84 -18
  238. data/test/cases/attributes_test.rb +151 -34
  239. data/test/cases/autosave_association_test.rb +149 -36
  240. data/test/cases/base_test.rb +311 -236
  241. data/test/cases/batches_test.rb +299 -22
  242. data/test/cases/binary_test.rb +2 -10
  243. data/test/cases/bind_parameter_test.rb +76 -66
  244. data/test/cases/cache_key_test.rb +26 -0
  245. data/test/cases/calculations_test.rb +167 -15
  246. data/test/cases/callbacks_test.rb +161 -68
  247. data/test/cases/coders/json_test.rb +15 -0
  248. data/test/cases/collection_cache_key_test.rb +115 -0
  249. data/test/cases/column_definition_test.rb +26 -57
  250. data/test/cases/comment_test.rb +145 -0
  251. data/test/cases/connection_adapters/adapter_leasing_test.rb +5 -3
  252. data/test/cases/connection_adapters/connection_handler_test.rb +128 -21
  253. data/test/cases/connection_adapters/connection_specification_test.rb +1 -1
  254. data/test/cases/connection_adapters/merge_and_resolve_default_url_config_test.rb +0 -38
  255. data/test/cases/connection_adapters/mysql_type_lookup_test.rb +5 -1
  256. data/test/cases/connection_adapters/schema_cache_test.rb +8 -3
  257. data/test/cases/connection_adapters/type_lookup_test.rb +15 -7
  258. data/test/cases/connection_management_test.rb +46 -56
  259. data/test/cases/connection_pool_test.rb +195 -20
  260. data/test/cases/connection_specification/resolver_test.rb +15 -0
  261. data/test/cases/counter_cache_test.rb +10 -5
  262. data/test/cases/custom_locking_test.rb +1 -1
  263. data/test/cases/database_statements_test.rb +18 -3
  264. data/test/cases/{invalid_date_test.rb → date_test.rb} +13 -1
  265. data/test/cases/date_time_precision_test.rb +107 -0
  266. data/test/cases/defaults_test.rb +85 -89
  267. data/test/cases/dirty_test.rb +32 -44
  268. data/test/cases/disconnected_test.rb +4 -2
  269. data/test/cases/enum_test.rb +178 -24
  270. data/test/cases/errors_test.rb +16 -0
  271. data/test/cases/explain_test.rb +32 -21
  272. data/test/cases/finder_test.rb +279 -151
  273. data/test/cases/fixture_set/file_test.rb +18 -0
  274. data/test/cases/fixtures_test.rb +123 -32
  275. data/test/cases/forbidden_attributes_protection_test.rb +69 -3
  276. data/test/cases/helper.rb +10 -16
  277. data/test/cases/hot_compatibility_test.rb +89 -1
  278. data/test/cases/inheritance_test.rb +284 -53
  279. data/test/cases/integration_test.rb +23 -7
  280. data/test/cases/invalid_connection_test.rb +4 -2
  281. data/test/cases/invertible_migration_test.rb +124 -32
  282. data/test/cases/json_serialization_test.rb +11 -2
  283. data/test/cases/locking_test.rb +22 -6
  284. data/test/cases/log_subscriber_test.rb +106 -17
  285. data/test/cases/migration/change_schema_test.rb +118 -132
  286. data/test/cases/migration/change_table_test.rb +34 -2
  287. data/test/cases/migration/column_attributes_test.rb +7 -23
  288. data/test/cases/migration/column_positioning_test.rb +8 -8
  289. data/test/cases/migration/columns_test.rb +17 -11
  290. data/test/cases/migration/command_recorder_test.rb +47 -2
  291. data/test/cases/migration/compatibility_test.rb +118 -0
  292. data/test/cases/migration/create_join_table_test.rb +21 -12
  293. data/test/cases/migration/foreign_key_test.rb +68 -66
  294. data/test/cases/migration/index_test.rb +14 -12
  295. data/test/cases/migration/logger_test.rb +1 -1
  296. data/test/cases/migration/pending_migrations_test.rb +0 -1
  297. data/test/cases/migration/references_foreign_key_test.rb +114 -107
  298. data/test/cases/migration/references_index_test.rb +4 -4
  299. data/test/cases/migration/references_statements_test.rb +26 -6
  300. data/test/cases/migration/rename_table_test.rb +25 -25
  301. data/test/cases/migration_test.rb +279 -81
  302. data/test/cases/migrator_test.rb +91 -8
  303. data/test/cases/mixin_test.rb +0 -2
  304. data/test/cases/modules_test.rb +3 -4
  305. data/test/cases/multiparameter_attributes_test.rb +24 -2
  306. data/test/cases/multiple_db_test.rb +18 -11
  307. data/test/cases/nested_attributes_test.rb +74 -33
  308. data/test/cases/persistence_test.rb +102 -10
  309. data/test/cases/pooled_connections_test.rb +3 -3
  310. data/test/cases/primary_keys_test.rb +170 -31
  311. data/test/cases/query_cache_test.rb +216 -96
  312. data/test/cases/quoting_test.rb +65 -19
  313. data/test/cases/readonly_test.rb +2 -1
  314. data/test/cases/reflection_test.rb +77 -22
  315. data/test/cases/relation/delegation_test.rb +3 -8
  316. data/test/cases/relation/merging_test.rb +10 -14
  317. data/test/cases/relation/mutation_test.rb +42 -24
  318. data/test/cases/relation/or_test.rb +92 -0
  319. data/test/cases/relation/predicate_builder_test.rb +4 -2
  320. data/test/cases/relation/record_fetch_warning_test.rb +40 -0
  321. data/test/cases/relation/where_chain_test.rb +23 -99
  322. data/test/cases/relation/where_clause_test.rb +182 -0
  323. data/test/cases/relation/where_test.rb +45 -23
  324. data/test/cases/relation_test.rb +89 -58
  325. data/test/cases/relations_test.rb +249 -38
  326. data/test/cases/result_test.rb +10 -0
  327. data/test/cases/sanitize_test.rb +108 -15
  328. data/test/cases/schema_dumper_test.rb +119 -125
  329. data/test/cases/schema_loading_test.rb +52 -0
  330. data/test/cases/scoping/default_scoping_test.rb +113 -39
  331. data/test/cases/scoping/named_scoping_test.rb +46 -9
  332. data/test/cases/scoping/relation_scoping_test.rb +47 -4
  333. data/test/cases/secure_token_test.rb +32 -0
  334. data/test/cases/serialization_test.rb +1 -1
  335. data/test/cases/serialized_attribute_test.rb +93 -6
  336. data/test/cases/statement_cache_test.rb +38 -0
  337. data/test/cases/store_test.rb +2 -1
  338. data/test/cases/suppressor_test.rb +63 -0
  339. data/test/cases/tasks/database_tasks_test.rb +74 -8
  340. data/test/cases/tasks/mysql_rake_test.rb +143 -109
  341. data/test/cases/tasks/postgresql_rake_test.rb +71 -12
  342. data/test/cases/tasks/sqlite_rake_test.rb +30 -3
  343. data/test/cases/test_case.rb +28 -20
  344. data/test/cases/test_fixtures_test.rb +36 -0
  345. data/test/cases/time_precision_test.rb +103 -0
  346. data/test/cases/timestamp_test.rb +47 -14
  347. data/test/cases/touch_later_test.rb +121 -0
  348. data/test/cases/transaction_callbacks_test.rb +128 -62
  349. data/test/cases/transaction_isolation_test.rb +2 -2
  350. data/test/cases/transactions_test.rb +61 -43
  351. data/test/cases/type/adapter_specific_registry_test.rb +133 -0
  352. data/test/cases/type/date_time_test.rb +14 -0
  353. data/test/cases/type/integer_test.rb +2 -96
  354. data/test/cases/type/string_test.rb +0 -14
  355. data/test/cases/type_test.rb +39 -0
  356. data/test/cases/types_test.rb +1 -118
  357. data/test/cases/unconnected_test.rb +1 -1
  358. data/test/cases/validations/absence_validation_test.rb +73 -0
  359. data/test/cases/validations/association_validation_test.rb +13 -2
  360. data/test/cases/validations/i18n_validation_test.rb +6 -10
  361. data/test/cases/validations/length_validation_test.rb +62 -30
  362. data/test/cases/validations/presence_validation_test.rb +36 -1
  363. data/test/cases/validations/uniqueness_validation_test.rb +150 -36
  364. data/test/cases/validations_repair_helper.rb +2 -6
  365. data/test/cases/validations_test.rb +36 -7
  366. data/test/cases/view_test.rb +108 -5
  367. data/test/cases/yaml_serialization_test.rb +36 -1
  368. data/test/config.example.yml +97 -0
  369. data/test/fixtures/bad_posts.yml +9 -0
  370. data/test/fixtures/books.yml +20 -0
  371. data/test/fixtures/content.yml +3 -0
  372. data/test/fixtures/content_positions.yml +3 -0
  373. data/test/fixtures/dead_parrots.yml +5 -0
  374. data/test/fixtures/live_parrots.yml +4 -0
  375. data/test/fixtures/naked/yml/parrots.yml +2 -0
  376. data/test/fixtures/naked/yml/trees.yml +3 -0
  377. data/test/fixtures/nodes.yml +29 -0
  378. data/test/fixtures/other_comments.yml +6 -0
  379. data/test/fixtures/other_dogs.yml +2 -0
  380. data/test/fixtures/other_posts.yml +7 -0
  381. data/test/fixtures/price_estimates.yml +10 -1
  382. data/test/fixtures/trees.yml +3 -0
  383. data/test/migrations/10_urban/9_add_expressions.rb +1 -1
  384. data/test/migrations/decimal/1_give_me_big_numbers.rb +1 -1
  385. data/test/migrations/magic/1_currencies_have_symbols.rb +1 -1
  386. data/test/migrations/missing/1000_people_have_middle_names.rb +2 -2
  387. data/test/migrations/missing/1_people_have_last_names.rb +2 -2
  388. data/test/migrations/missing/3_we_need_reminders.rb +2 -2
  389. data/test/migrations/missing/4_innocent_jointable.rb +2 -2
  390. data/test/migrations/rename/1_we_need_things.rb +2 -2
  391. data/test/migrations/rename/2_rename_things.rb +2 -2
  392. data/test/migrations/to_copy/1_people_have_hobbies.rb +1 -1
  393. data/test/migrations/to_copy/2_people_have_descriptions.rb +1 -1
  394. data/test/migrations/to_copy2/1_create_articles.rb +1 -1
  395. data/test/migrations/to_copy2/2_create_comments.rb +1 -1
  396. data/test/migrations/to_copy_with_name_collision/1_people_have_hobbies.rb +1 -1
  397. data/test/migrations/to_copy_with_timestamps/20090101010101_people_have_hobbies.rb +1 -1
  398. data/test/migrations/to_copy_with_timestamps/20090101010202_people_have_descriptions.rb +1 -1
  399. data/test/migrations/to_copy_with_timestamps2/20090101010101_create_articles.rb +1 -1
  400. data/test/migrations/to_copy_with_timestamps2/20090101010202_create_comments.rb +1 -1
  401. data/test/migrations/valid/1_valid_people_have_last_names.rb +1 -1
  402. data/test/migrations/valid/2_we_need_reminders.rb +2 -2
  403. data/test/migrations/valid/3_innocent_jointable.rb +2 -2
  404. data/test/migrations/valid_with_subdirectories/1_valid_people_have_last_names.rb +1 -1
  405. data/test/migrations/valid_with_subdirectories/sub/2_we_need_reminders.rb +2 -2
  406. data/test/migrations/valid_with_subdirectories/sub1/3_innocent_jointable.rb +2 -2
  407. data/test/migrations/valid_with_timestamps/20100101010101_valid_with_timestamps_people_have_last_names.rb +1 -1
  408. data/test/migrations/valid_with_timestamps/20100201010101_valid_with_timestamps_we_need_reminders.rb +1 -1
  409. data/test/migrations/valid_with_timestamps/20100301010101_valid_with_timestamps_innocent_jointable.rb +1 -1
  410. data/test/migrations/version_check/20131219224947_migration_version_check.rb +1 -1
  411. data/test/models/admin/randomly_named_c1.rb +6 -2
  412. data/test/models/aircraft.rb +1 -0
  413. data/test/models/author.rb +4 -7
  414. data/test/models/bird.rb +1 -1
  415. data/test/models/book.rb +5 -0
  416. data/test/models/bulb.rb +2 -1
  417. data/test/models/car.rb +3 -0
  418. data/test/models/cat.rb +10 -0
  419. data/test/models/chef.rb +5 -0
  420. data/test/models/club.rb +2 -0
  421. data/test/models/comment.rb +17 -5
  422. data/test/models/company.rb +7 -2
  423. data/test/models/company_in_module.rb +1 -1
  424. data/test/models/contact.rb +1 -1
  425. data/test/models/content.rb +40 -0
  426. data/test/models/customer.rb +8 -2
  427. data/test/models/developer.rb +22 -0
  428. data/test/models/face.rb +1 -1
  429. data/test/models/guitar.rb +4 -0
  430. data/test/models/hotel.rb +5 -0
  431. data/test/models/member.rb +1 -0
  432. data/test/models/member_detail.rb +4 -3
  433. data/test/models/mentor.rb +3 -0
  434. data/test/models/mocktail_designer.rb +2 -0
  435. data/test/models/node.rb +5 -0
  436. data/test/models/non_primary_key.rb +2 -0
  437. data/test/models/notification.rb +3 -0
  438. data/test/models/other_dog.rb +5 -0
  439. data/test/models/owner.rb +4 -1
  440. data/test/models/parrot.rb +6 -7
  441. data/test/models/person.rb +0 -1
  442. data/test/models/pet.rb +3 -0
  443. data/test/models/pet_treasure.rb +6 -0
  444. data/test/models/pirate.rb +3 -3
  445. data/test/models/post.rb +18 -9
  446. data/test/models/project.rb +11 -0
  447. data/test/models/randomly_named_c1.rb +1 -1
  448. data/test/models/recipe.rb +3 -0
  449. data/test/models/ship.rb +8 -2
  450. data/test/models/tag.rb +6 -0
  451. data/test/models/topic.rb +2 -8
  452. data/test/models/tree.rb +3 -0
  453. data/test/models/tuning_peg.rb +4 -0
  454. data/test/models/user.rb +14 -0
  455. data/test/models/uuid_item.rb +6 -0
  456. data/test/schema/mysql2_specific_schema.rb +33 -23
  457. data/test/schema/oracle_specific_schema.rb +1 -4
  458. data/test/schema/postgresql_specific_schema.rb +36 -124
  459. data/test/schema/schema.rb +183 -64
  460. data/test/schema/schema.rb.original +1057 -0
  461. data/test/schema/sqlite_specific_schema.rb +1 -5
  462. data/test/support/connection.rb +1 -0
  463. data/test/support/schema_dumping_helper.rb +1 -1
  464. data/test/support/yaml_compatibility_fixtures/rails_4_1.yml +22 -0
  465. data/test/support/yaml_compatibility_fixtures/rails_4_2_0.yml +182 -0
  466. metadata +271 -26
  467. data/test/cases/associations/deprecated_counter_cache_on_has_many_through_test.rb +0 -26
  468. data/test/cases/attribute_methods/serialization_test.rb +0 -29
  469. data/test/cases/migration/change_schema_test - Copy.rb +0 -448
  470. data/test/cases/migration/foreign_key_test - Changed.rb +0 -325
  471. data/test/cases/migration/table_and_index_test.rb +0 -24
  472. data/test/cases/relation/where_test2.rb +0 -36
  473. data/test/cases/type/decimal_test.rb +0 -51
  474. data/test/cases/type/unsigned_integer_test.rb +0 -18
  475. data/test/cases/xml_serialization_test.rb +0 -457
  476. data/test/fixtures/naked/csv/accounts.csv +0 -1
  477. data/test/schema/mysql_specific_schema.rb +0 -70
@@ -0,0 +1,119 @@
1
+ /******************************************************************************
2
+ *
3
+ * Source File Name = SQLCA.H
4
+ *
5
+ * (C) COPYRIGHT International Business Machines Corp. 1987, 1997
6
+ * All Rights Reserved
7
+ * Licensed Materials - Property of IBM
8
+ *
9
+ * US Government Users Restricted Rights - Use, duplication or
10
+ * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
11
+ *
12
+ * Function = Include File defining:
13
+ * SQL Communications Area
14
+ *
15
+ * Operating System = Common C Include File
16
+ *
17
+ *****************************************************************************/
18
+
19
+
20
+ #if !(defined(SQLCODE) || defined(SQLCADE)) /* Permit Duplicate Includes */
21
+
22
+ #include "sqlsystm.h" /* System dependent defines */
23
+
24
+ #if defined(DB2NT)
25
+ #if defined _WIN64
26
+ #pragma pack(8)
27
+ #else
28
+ #pragma pack(4)
29
+ #endif
30
+ #elif (defined(DB2AIX) && defined(__64BIT__))
31
+ #pragma options align=natural
32
+ #elif (defined(DB2AIX))
33
+ #pragma options align=power
34
+ #endif
35
+
36
+ /* SQL Communication Area - SQLCA */
37
+ /* _SQLOLDCHAR defaults to 'char'. See sqlsystm.h for details. */
38
+
39
+ SQL_STRUCTURE sqlca
40
+ {
41
+ _SQLOLDCHAR sqlcaid[8]; /* Eyecatcher = 'SQLCA ' */
42
+ sqlint32 sqlcabc; /* SQLCA size in bytes = 136 */
43
+ #ifdef DB2_SQL92E
44
+ sqlint32 sqlcade; /* SQL return code */
45
+ #else
46
+ sqlint32 sqlcode; /* SQL return code */
47
+ #endif
48
+ short sqlerrml; /* Length for SQLERRMC */
49
+ _SQLOLDCHAR sqlerrmc[70]; /* Error message tokens */
50
+
51
+ _SQLOLDCHAR sqlerrp[8]; /* Diagnostic information */
52
+
53
+ sqlint32 sqlerrd[6]; /* Diagnostic information */
54
+ _SQLOLDCHAR sqlwarn[11]; /* Warning flags */
55
+
56
+ #ifdef DB2_SQL92E
57
+ _SQLOLDCHAR sqlstat[5]; /* State corresponding to SQLCODE */
58
+ #else
59
+ _SQLOLDCHAR sqlstate[5]; /* State corresponding to SQLCODE */
60
+ #endif
61
+
62
+ };
63
+
64
+ #ifdef DB2_SQL92E
65
+ #define SQLCADE sqlca.sqlcade
66
+ #else
67
+ #define SQLCODE sqlca.sqlcode
68
+ #endif
69
+ #define SQLWARN0 sqlca.sqlwarn[0]
70
+ #define SQLWARN1 sqlca.sqlwarn[1]
71
+ #define SQLWARN2 sqlca.sqlwarn[2]
72
+ #define SQLWARN3 sqlca.sqlwarn[3]
73
+ #define SQLWARN4 sqlca.sqlwarn[4]
74
+ #define SQLWARN5 sqlca.sqlwarn[5]
75
+ #define SQLWARN6 sqlca.sqlwarn[6]
76
+ #define SQLWARN7 sqlca.sqlwarn[7]
77
+ #define SQLWARN8 sqlca.sqlwarn[8]
78
+ #define SQLWARN9 sqlca.sqlwarn[9]
79
+ #define SQLWARNA sqlca.sqlwarn[10]
80
+
81
+
82
+ /* sqlerrd tokens updated when compound SQL statements processed */
83
+
84
+ #define SQL_CMP_NA_ERRORS 1
85
+ #define SQL_CMP_ROWS_AFFECTED 2
86
+ #define SQL_CMP_STMTS_COMPLETED 3
87
+ #define SQL_CMP_REF_INT_ROWS 4
88
+
89
+
90
+ /* sqlerrd tokens updated when CONNECT statements processed */
91
+
92
+ #define SQL_CONNECT_DB_APP2DB_CONVFACTOR 0
93
+ #define SQL_CONNECT_DB_DB2APP_CONVFACTOR 1
94
+ #define SQL_CONNECT_DB_UPDATEABILITY_IN_UOW 2
95
+ #define SQL_CONNECT_DB_COMMIT_TYPE 3
96
+
97
+
98
+ /* Values returned for sqlerrd[SQL_CONNECT_DB_UPDATEABILITY_IN_UOW] */
99
+
100
+ #define SQL_DB_UPDATEABLE 1
101
+ #define SQL_DB_READ_ONLY 2
102
+
103
+
104
+ /* Values returned for sqlerrd[SQL_CONNECT_DB_COMMIT_TYPE] */
105
+
106
+ #define SQL_DB_ONE_PHASE_COMMIT 1
107
+ #define SQL_DB_ONE_PHASE_READ_ONLY 2
108
+ #define SQL_DB_TWO_PHASE_COMMIT 3
109
+
110
+ /* sqlerrd tokens updated when MPP statements processed */
111
+ #define SQL_ERRD_NODE_NUM 1
112
+
113
+ #if defined(DB2NT)
114
+ #pragma pack()
115
+ #elif defined(DB2AIX)
116
+ #pragma options align=reset
117
+ #endif
118
+
119
+ #endif /* SQLCODE */
@@ -0,0 +1,1042 @@
1
+ /******************************************************************************
2
+ *
3
+ * Source File Name = sqlcli.h
4
+ *
5
+ * (C) COPYRIGHT International Business Machines Corp. 1993, 2016
6
+ * All Rights Reserved
7
+ * Licensed Materials - Property of IBM
8
+ *
9
+ * US Government Users Restricted Rights - Use, duplication or
10
+ * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
11
+ *
12
+ * Function = Include File defining:
13
+ * DB2 CLI Interface - Constants
14
+ * DB2 CLI Interface - Data Structures
15
+ * DB2 CLI Interface - Function Prototypes
16
+ *
17
+ * Operating System = Common C Include File
18
+ *
19
+ *****************************************************************************/
20
+
21
+ #ifndef SQL_H_SQLCLI
22
+ #define SQL_H_SQLCLI /* Permit duplicate Includes */
23
+
24
+ /* Prevent inclusion of winsock.h in windows.h */
25
+ #ifndef _WINSOCKAPI_
26
+ #define _WINSOCKAPI_
27
+ #define DB2_WINSOCKAPI_
28
+ #endif
29
+
30
+ /* DB2CLI_VER DB2 Call Level Interface Version Number (0x0210).
31
+ * To revert to Version 1.0 definitions,
32
+ * issue #define DB2CLI_VER 0x0110 before including
33
+ * sqlcli.h and sqlcli1.h
34
+ */
35
+
36
+ /* If DB2CLI_VER is not defined, assume version 2.10 */
37
+ #ifndef DB2CLI_VER
38
+ #define DB2CLI_VER 0x0310
39
+ #endif
40
+
41
+ /* ODBC64 should be used instead of CLI_WIN64 for linking with libdb2o.dll */
42
+ #ifndef ODBC64
43
+ #ifdef CLI_WIN64
44
+ #define ODBC64
45
+ #endif
46
+ #endif
47
+
48
+ #include <stdlib.h>
49
+
50
+ #ifdef __cplusplus
51
+ extern "C" {
52
+ #endif
53
+
54
+ #include "sqlsystm.h" /* System dependent defines */
55
+
56
+ #if defined(DB2NT)
57
+ #include <windows.h>
58
+ #else
59
+ #define FAR
60
+ #endif
61
+
62
+ #define SQL_API SQL_API_FN
63
+
64
+
65
+ /* generally useful constants */
66
+ #define SQL_MAX_MESSAGE_LENGTH 1024 /* message buffer size */
67
+ #define SQL_MAX_ID_LENGTH 128 /* maximum identifier name size,
68
+ e.g. cursor names */
69
+
70
+ /* date/time length constants */
71
+ #define SQL_DATE_LEN 10
72
+ #define SQL_TIME_LEN 8 /* add P+1 if precision is nonzero */
73
+ #define SQL_TIMESTAMP_LEN 19 /* add P+1 if precision is nonzero */
74
+ #define SQL_TIMESTAMPTZ_LEN 25 /* add P+1 if precision is nonzero */
75
+
76
+ /* handle type identifiers */
77
+ #define SQL_HANDLE_ENV 1
78
+ #define SQL_HANDLE_DBC 2
79
+ #define SQL_HANDLE_STMT 3
80
+ #define SQL_HANDLE_DESC 4
81
+
82
+ /* RETCODE values */
83
+ #define SQL_SUCCESS 0
84
+ #define SQL_SUCCESS_WITH_INFO 1
85
+ #define SQL_NEED_DATA 99
86
+ #define SQL_NO_DATA 100
87
+ #define SQL_STILL_EXECUTING 2
88
+ #define SQL_ERROR -1
89
+ #define SQL_INVALID_HANDLE -2
90
+
91
+ /* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */
92
+ #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
93
+
94
+ /* SQLFreeStmt option values */
95
+ #define SQL_CLOSE 0
96
+ #define SQL_DROP 1
97
+ #define SQL_UNBIND 2
98
+ #define SQL_RESET_PARAMS 3
99
+
100
+ /* SQLTransact option values */
101
+ #define SQL_COMMIT 0
102
+ #define SQL_ROLLBACK 1
103
+
104
+ /* Standard SQL data types */
105
+ #define SQL_UNKNOWN_TYPE 0
106
+ #define SQL_CHAR 1
107
+ #define SQL_NUMERIC 2
108
+ #define SQL_DECIMAL 3
109
+ #define SQL_INTEGER 4
110
+ #define SQL_SMALLINT 5
111
+ #define SQL_FLOAT 6
112
+ #define SQL_REAL 7
113
+ #define SQL_DOUBLE 8
114
+ #define SQL_DATETIME 9
115
+ #define SQL_VARCHAR 12
116
+ #define SQL_BOOLEAN 16
117
+ #define SQL_ROW 19
118
+ #define SQL_WCHAR (-8)
119
+ #define SQL_WVARCHAR (-9)
120
+ #define SQL_WLONGVARCHAR (-10)
121
+ #define SQL_DECFLOAT (-360)
122
+ /* One-parameter shortcuts for date/time data types */
123
+ #define SQL_TYPE_DATE 91
124
+ #define SQL_TYPE_TIME 92
125
+ #define SQL_TYPE_TIMESTAMP 93
126
+ /* SQL Datatype for Time Zone */
127
+ #define SQL_TYPE_TIMESTAMP_WITH_TIMEZONE 95
128
+
129
+ /* Statement attribute values for cursor sensitivity */
130
+ #define SQL_UNSPECIFIED 0
131
+ #define SQL_INSENSITIVE 1
132
+ #define SQL_SENSITIVE 2
133
+
134
+ /* Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */
135
+ #define SQL_DEFAULT 99
136
+
137
+ /* SQLGetData() code indicating that the application row descriptor
138
+ * specifies the data type
139
+ */
140
+ #define SQL_ARD_TYPE (-99)
141
+
142
+ /* SQL date/time type subcodes */
143
+ #define SQL_CODE_DATE 1
144
+ #define SQL_CODE_TIME 2
145
+ #define SQL_CODE_TIMESTAMP 3
146
+ #define SQL_CODE_TIMESTAMP_WITH_TIMEZONE 4
147
+
148
+ /* SQL extended data types */
149
+ #define SQL_GRAPHIC -95
150
+ #define SQL_VARGRAPHIC -96
151
+ #define SQL_LONGVARGRAPHIC -97
152
+ #define SQL_BLOB -98
153
+ #define SQL_CLOB -99
154
+ #define SQL_DBCLOB -350
155
+ #define SQL_XML -370
156
+ #define SQL_CURSORHANDLE -380
157
+ #define SQL_DATALINK -400
158
+ #define SQL_USER_DEFINED_TYPE -450
159
+
160
+ /* C data type to SQL data type mapping */
161
+ #define SQL_C_DBCHAR SQL_DBCLOB
162
+ #define SQL_C_DECIMAL_IBM SQL_DECIMAL
163
+ #define SQL_C_DATALINK SQL_C_CHAR
164
+ #define SQL_C_PTR 2463
165
+ #define SQL_C_DECIMAL_OLEDB 2514
166
+ #define SQL_C_DECIMAL64 SQL_DECFLOAT
167
+ #define SQL_C_DECIMAL128 -361
168
+ #define SQL_C_TIMESTAMP_EXT -362
169
+ #define SQL_C_TYPE_TIMESTAMP_EXT SQL_C_TIMESTAMP_EXT
170
+ #define SQL_C_BINARYXML -363
171
+ #define SQL_C_TIMESTAMP_EXT_TZ -364
172
+ #define SQL_C_TYPE_TIMESTAMP_EXT_TZ SQL_C_TIMESTAMP_EXT_TZ
173
+ #define SQL_C_CURSORHANDLE -365
174
+
175
+ /*
176
+ * locator type identifier
177
+ */
178
+
179
+ #define SQL_BLOB_LOCATOR 31
180
+ #define SQL_CLOB_LOCATOR 41
181
+ #define SQL_DBCLOB_LOCATOR -351
182
+
183
+ /*
184
+ * C Data Type for the LOB locator types
185
+ */
186
+ #define SQL_C_BLOB_LOCATOR SQL_BLOB_LOCATOR
187
+ #define SQL_C_CLOB_LOCATOR SQL_CLOB_LOCATOR
188
+ #define SQL_C_DBCLOB_LOCATOR SQL_DBCLOB_LOCATOR
189
+
190
+ /*
191
+ * NULL status defines; these are used in SQLColAttributes, SQLDescribeCol,
192
+ * to describe the nullability of a column in a table.
193
+ */
194
+
195
+ #define SQL_NO_NULLS 0
196
+ #define SQL_NULLABLE 1
197
+ #define SQL_NULLABLE_UNKNOWN 2
198
+
199
+ /* values of UNNAMED field in descriptor used in SQLColAttribute */
200
+ #define SQL_NAMED 0
201
+ #define SQL_UNNAMED 1
202
+
203
+ /* values of ALLOC_TYPE field in descriptor */
204
+ #define SQL_DESC_ALLOC_AUTO 1
205
+ #define SQL_DESC_ALLOC_USER 2
206
+
207
+ /* values of USER_DEFINED_TYPE_CODE */
208
+ #define SQL_TYPE_BASE 0
209
+ #define SQL_TYPE_DISTINCT 1
210
+ #define SQL_TYPE_STRUCTURED 2
211
+ #define SQL_TYPE_REFERENCE 3
212
+
213
+ /* Special length values */
214
+ #define SQL_NULL_DATA -1
215
+ #define SQL_DATA_AT_EXEC -2
216
+ #define SQL_NTS -3 /* NTS = Null Terminated String */
217
+ #define SQL_NTSL -3L /* NTS = Null Terminated String */
218
+
219
+ /* SQLColAttributes defines */
220
+ #define SQL_COLUMN_SCHEMA_NAME 16
221
+ #define SQL_COLUMN_CATALOG_NAME 17
222
+ #define SQL_COLUMN_DISTINCT_TYPE 1250
223
+ #define SQL_DESC_DISTINCT_TYPE SQL_COLUMN_DISTINCT_TYPE
224
+ #define SQL_COLUMN_REFERENCE_TYPE 1251
225
+ #define SQL_DESC_REFERENCE_TYPE SQL_COLUMN_REFERENCE_TYPE
226
+ #define SQL_DESC_STRUCTURED_TYPE 1252
227
+ #define SQL_DESC_USER_TYPE 1253
228
+ #define SQL_DESC_BASE_TYPE 1254
229
+ #define SQL_DESC_KEY_TYPE 1255
230
+ #define SQL_DESC_KEY_MEMBER 1266
231
+ #define SQL_DESC_IDENTITY_VALUE 1267
232
+ #define SQL_DESC_CODEPAGE 1268
233
+
234
+ /* identifiers of fields in the SQL descriptor */
235
+ #define SQL_DESC_COUNT 1001
236
+ #define SQL_DESC_TYPE 1002
237
+ #define SQL_DESC_LENGTH 1003
238
+ #define SQL_DESC_OCTET_LENGTH_PTR 1004
239
+ #define SQL_DESC_PRECISION 1005
240
+ #define SQL_DESC_SCALE 1006
241
+ #define SQL_DESC_DATETIME_INTERVAL_CODE 1007
242
+ #define SQL_DESC_NULLABLE 1008
243
+ #define SQL_DESC_INDICATOR_PTR 1009
244
+ #define SQL_DESC_DATA_PTR 1010
245
+ #define SQL_DESC_NAME 1011
246
+ #define SQL_DESC_UNNAMED 1012
247
+ #define SQL_DESC_OCTET_LENGTH 1013
248
+ #define SQL_DESC_ALLOC_TYPE 1099
249
+ #define SQL_DESC_USER_DEFINED_TYPE_CODE 1098
250
+ #define SQL_DESC_CARDINALITY 1040
251
+ #define SQL_DESC_CARDINALITY_PTR 1043
252
+ #define SQL_DESC_ROW_DESC 1044
253
+
254
+ /* Defines for SQL_DESC_KEY_TYPE */
255
+ #define SQL_KEYTYPE_NONE 0
256
+ #define SQL_KEYTYPE_PRIMARYKEY 1
257
+ #define SQL_KEYTYPE_UNIQUEINDEX 2
258
+
259
+
260
+ /* SQLColAttribute defines for SQL_COLUMN_UPDATABLE condition */
261
+ #define SQL_UPDT_READONLY 0
262
+ #define SQL_UPDT_WRITE 1
263
+ #define SQL_UPDT_READWRITE_UNKNOWN 2
264
+
265
+ /*
266
+ * SQLColAttribute defines for SQL_COLUMN_SEARCHABLE condition.
267
+ */
268
+ #define SQL_PRED_NONE 0
269
+ #define SQL_PRED_CHAR 1
270
+ #define SQL_PRED_BASIC 2
271
+
272
+ /* NULL handle defines */
273
+ #define SQL_NULL_HENV 0L
274
+ #define SQL_NULL_HDBC 0L
275
+ #define SQL_NULL_HSTMT 0L
276
+ #define SQL_NULL_HDESC 0L
277
+ #define SQL_NULL_HANDLE 0L
278
+
279
+ /* identifiers of fields in the diagnostics area */
280
+ #define SQL_DIAG_RETURNCODE 1
281
+ #define SQL_DIAG_NUMBER 2
282
+ #define SQL_DIAG_ROW_COUNT 3
283
+ #define SQL_DIAG_SQLSTATE 4
284
+ #define SQL_DIAG_NATIVE 5
285
+ #define SQL_DIAG_MESSAGE_TEXT 6
286
+ #define SQL_DIAG_DYNAMIC_FUNCTION 7
287
+ #define SQL_DIAG_CLASS_ORIGIN 8
288
+ #define SQL_DIAG_SUBCLASS_ORIGIN 9
289
+ #define SQL_DIAG_CONNECTION_NAME 10
290
+ #define SQL_DIAG_SERVER_NAME 11
291
+ #define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
292
+ #define SQL_DIAG_ISAM_ERROR 13
293
+
294
+ #define SQL_DIAG_SYSPLEX_STATISTICS 2528
295
+ #define SQL_DIAG_DB2ZLOAD_RETCODE 2529
296
+ #define SQL_DIAG_DB2ZLOAD_LOAD_MSGS 2530
297
+ #define SQL_DIAG_LOG_FILENAME 2531
298
+ #define SQL_DIAG_BAD_FILENAME 2532
299
+
300
+ /* dynamic function codes */
301
+ #define SQL_DIAG_ALTER_TABLE 4
302
+ #define SQL_DIAG_CALL 7
303
+ #define SQL_DIAG_CREATE_INDEX (-1)
304
+ #define SQL_DIAG_CREATE_TABLE 77
305
+ #define SQL_DIAG_CREATE_VIEW 84
306
+ #define SQL_DIAG_DELETE_WHERE 19
307
+ #define SQL_DIAG_DROP_INDEX (-2)
308
+ #define SQL_DIAG_DROP_TABLE 32
309
+ #define SQL_DIAG_DROP_VIEW 36
310
+ #define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
311
+ #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
312
+ #define SQL_DIAG_GRANT 48
313
+ #define SQL_DIAG_INSERT 50
314
+ #define SQL_DIAG_MERGE 128
315
+ #define SQL_DIAG_REVOKE 59
316
+ #define SQL_DIAG_SELECT_CURSOR 85
317
+ #define SQL_DIAG_UNKNOWN_STATEMENT 0
318
+ #define SQL_DIAG_UPDATE_WHERE 82
319
+
320
+ /*
321
+ * IBM specific SQLGetDiagField values.
322
+ */
323
+
324
+ #define SQL_DIAG_DEFERRED_PREPARE_ERROR 1279
325
+
326
+ /* SQL_DIAG_ROW_NUMBER values */
327
+ #define SQL_ROW_NO_ROW_NUMBER (-1)
328
+ #define SQL_ROW_NUMBER_UNKNOWN (-2)
329
+
330
+ /* SQL_DIAG_COLUMN_NUMBER values */
331
+ #define SQL_COLUMN_NO_COLUMN_NUMBER (-1)
332
+ #define SQL_COLUMN_NUMBER_UNKNOWN (-2)
333
+
334
+ /*
335
+ * The following are provided to enhance portability and compatibility
336
+ * with ODBC
337
+ */
338
+
339
+ typedef signed char SCHAR;
340
+ typedef unsigned char UCHAR;
341
+
342
+ typedef short int SWORD;
343
+ typedef unsigned short USHORT;
344
+
345
+ typedef signed short SSHORT;
346
+ typedef unsigned short int UWORD;
347
+
348
+ #if defined(DB2NT)
349
+ typedef long SDWORD;
350
+ typedef unsigned long ULONG;
351
+ typedef unsigned long UDWORD;
352
+ typedef long SLONG;
353
+ #else
354
+ typedef sqlint32 SDWORD;
355
+ typedef sqluint32 ULONG;
356
+ typedef sqluint32 UDWORD;
357
+ typedef sqlint32 SLONG;
358
+ #endif
359
+ typedef double SDOUBLE;
360
+ typedef float SFLOAT;
361
+ typedef unsigned char SQLDATE;
362
+ typedef unsigned char SQLTIME;
363
+ typedef unsigned char SQLTIMESTAMP;
364
+ typedef unsigned char SQLDECIMAL;
365
+ typedef unsigned char SQLNUMERIC;
366
+
367
+
368
+
369
+ #if defined(WINDOWS)
370
+ typedef long double LDOUBLE;
371
+ #else
372
+ typedef double LDOUBLE;
373
+ #endif
374
+
375
+
376
+ typedef void FAR * PTR;
377
+ typedef void FAR * HENV;
378
+ typedef void FAR * HDBC;
379
+ typedef void FAR * HSTMT;
380
+
381
+ typedef signed short RETCODE;
382
+
383
+
384
+
385
+ /* SQL portable types for C */
386
+ typedef UCHAR SQLCHAR;
387
+ typedef UCHAR SQLVARCHAR;
388
+ typedef SCHAR SQLSCHAR;
389
+ typedef SDWORD SQLINTEGER;
390
+ typedef SWORD SQLSMALLINT;
391
+ typedef SDOUBLE SQLDOUBLE;
392
+ typedef SDOUBLE SQLFLOAT;
393
+ typedef SFLOAT SQLREAL;
394
+
395
+ typedef SQLSMALLINT SQLRETURN;
396
+
397
+ #if (DB2CLI_VER >= 0x0200)
398
+ typedef UDWORD SQLUINTEGER;
399
+ typedef UWORD SQLUSMALLINT;
400
+ #else
401
+ typedef SQLINTEGER SQLUINTEGER;
402
+ typedef SQLSMALLINT SQLUSMALLINT;
403
+ #endif
404
+
405
+ /* 64-bit Length Defines */
406
+ #ifdef ODBC64
407
+ typedef sqlint64 SQLLEN;
408
+ typedef sqluint64 SQLULEN;
409
+ typedef sqluint64 SQLSETPOSIROW;
410
+ #else
411
+ #define SQLLEN SQLINTEGER
412
+ #define SQLULEN SQLUINTEGER
413
+ #define SQLSETPOSIROW SQLUSMALLINT
414
+ #endif
415
+
416
+ typedef PTR SQLPOINTER;
417
+
418
+
419
+
420
+ /*
421
+ * Double Byte Character Set support
422
+ */
423
+
424
+ /*
425
+ * Do not support SQL_WCHART_CONVERT in UNICODE
426
+ */
427
+ #ifdef UNICODE
428
+ #undef SQL_WCHART_CONVERT
429
+ #endif
430
+
431
+ #ifdef SQL_WCHART_CONVERT
432
+ typedef wchar_t SQLDBCHAR;
433
+ #else
434
+ typedef unsigned short SQLDBCHAR;
435
+ #endif
436
+
437
+ #ifdef DB2WIN
438
+ typedef wchar_t SQLWCHAR;
439
+ #else
440
+ typedef unsigned short SQLWCHAR;
441
+ #endif
442
+
443
+ #ifdef UNICODE
444
+ typedef SQLWCHAR SQLTCHAR;
445
+ #else
446
+ typedef SQLCHAR SQLTCHAR;
447
+ #endif
448
+
449
+ #ifdef DB2WIN
450
+ #if ((defined DB2NT && defined _WIN64 && OLEDBWIN))
451
+ typedef void* SQLHANDLE;
452
+ #else
453
+ typedef SQLINTEGER SQLHANDLE;
454
+ #endif
455
+
456
+ typedef HENV SQLHENV;
457
+ typedef HDBC SQLHDBC;
458
+ typedef HSTMT SQLHSTMT;
459
+ typedef HWND SQLHWND;
460
+
461
+ #else
462
+ #if ((defined DB2NT && defined _WIN64) || defined ODBC64)
463
+ typedef void * SQLHANDLE;
464
+ typedef SQLHANDLE SQLHENV;
465
+ typedef SQLHANDLE SQLHDBC;
466
+ typedef SQLHANDLE SQLHSTMT;
467
+ #else
468
+
469
+ #ifndef __SQLTYPES
470
+ typedef SQLINTEGER SQLHANDLE;
471
+ typedef SQLINTEGER SQLHENV;
472
+ typedef SQLINTEGER SQLHDBC;
473
+ typedef SQLINTEGER SQLHSTMT;
474
+ #endif
475
+ #endif
476
+
477
+ #if defined (DB2NT)
478
+ typedef HWND SQLHWND;
479
+ #else
480
+ typedef SQLPOINTER SQLHWND;
481
+ #endif
482
+
483
+ #endif
484
+ typedef SQLHANDLE SQLHDESC;
485
+
486
+ #ifndef __SQLTYPES
487
+
488
+ /*
489
+ * SQL_NO_NATIVE_BIGINT_SUPPORT and SQL_BIGINT_TYPE are defined in sqlsystm.h
490
+ *
491
+ */
492
+
493
+ #if defined(SQL_NO_NATIVE_BIGINT_SUPPORT)
494
+ typedef struct SQLBIGINT
495
+ {
496
+ SQLUINTEGER dwLowWord;
497
+ SQLINTEGER dwHighWord;
498
+ } SQLBIGINT;
499
+ typedef struct SQLUBIGINT
500
+ {
501
+ SQLUINTEGER dwLowWord;
502
+ SQLUINTEGER dwHighWord;
503
+ } SQLUBIGINT;
504
+ #elif defined(SQL_BIGINT_TYPE)
505
+ typedef SQL_BIGINT_TYPE SQLBIGINT;
506
+ typedef SQL_BIGUINT_TYPE SQLUBIGINT;
507
+ #endif
508
+
509
+ typedef struct DATE_STRUCT
510
+ {
511
+ SQLSMALLINT year;
512
+ SQLUSMALLINT month;
513
+ SQLUSMALLINT day;
514
+ } DATE_STRUCT;
515
+
516
+ typedef DATE_STRUCT SQL_DATE_STRUCT;
517
+
518
+ typedef struct TIME_STRUCT
519
+ {
520
+ SQLUSMALLINT hour;
521
+ SQLUSMALLINT minute;
522
+ SQLUSMALLINT second;
523
+ } TIME_STRUCT;
524
+
525
+ typedef TIME_STRUCT SQL_TIME_STRUCT;
526
+
527
+ typedef struct TIMESTAMP_STRUCT
528
+ {
529
+ SQLSMALLINT year;
530
+ SQLUSMALLINT month;
531
+ SQLUSMALLINT day;
532
+ SQLUSMALLINT hour;
533
+ SQLUSMALLINT minute;
534
+ SQLUSMALLINT second;
535
+ SQLUINTEGER fraction; /* fraction of a second */
536
+ } TIMESTAMP_STRUCT;
537
+
538
+ typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
539
+
540
+ typedef struct TIMESTAMP_STRUCT_EXT
541
+ {
542
+ SQLSMALLINT year;
543
+ SQLUSMALLINT month;
544
+ SQLUSMALLINT day;
545
+ SQLUSMALLINT hour;
546
+ SQLUSMALLINT minute;
547
+ SQLUSMALLINT second;
548
+ SQLUINTEGER fraction; /* hold nanoseconds - 1~9 digit */
549
+ SQLUINTEGER fraction2; /* hold picoseconds - 10~12 digit */
550
+ } TIMESTAMP_STRUCT_EXT;
551
+
552
+ typedef TIMESTAMP_STRUCT_EXT SQL_TIMESTAMP_STRUCT_EXT;
553
+
554
+ typedef struct TIMESTAMP_STRUCT_EXT_TZ
555
+ {
556
+ SQLSMALLINT year;
557
+ SQLUSMALLINT month;
558
+ SQLUSMALLINT day;
559
+ SQLUSMALLINT hour;
560
+ SQLUSMALLINT minute;
561
+ SQLUSMALLINT second;
562
+ SQLUINTEGER fraction; /* hold nanoseconds - 1~9 digit */
563
+ SQLUINTEGER fraction2; /* hold picoseconds - 10~12 digit */
564
+ SQLSMALLINT timezone_hour; /* -12 to 14 */
565
+ SQLSMALLINT timezone_minute; /* -59 to 59 */
566
+ } TIMESTAMP_STRUCT_EXT_TZ;
567
+
568
+ typedef TIMESTAMP_STRUCT_EXT_TZ SQL_TIMESTAMP_STRUCT_EXT_TZ;
569
+
570
+ typedef enum
571
+ {
572
+ SQL_IS_YEAR = 1,
573
+ SQL_IS_MONTH = 2,
574
+ SQL_IS_DAY = 3,
575
+ SQL_IS_HOUR = 4,
576
+ SQL_IS_MINUTE = 5,
577
+ SQL_IS_SECOND = 6,
578
+ SQL_IS_YEAR_TO_MONTH = 7,
579
+ SQL_IS_DAY_TO_HOUR = 8,
580
+ SQL_IS_DAY_TO_MINUTE = 9,
581
+ SQL_IS_DAY_TO_SECOND = 10,
582
+ SQL_IS_HOUR_TO_MINUTE = 11,
583
+ SQL_IS_HOUR_TO_SECOND = 12,
584
+ SQL_IS_MINUTE_TO_SECOND = 13
585
+ } SQLINTERVAL;
586
+
587
+ typedef struct tagSQL_YEAR_MONTH
588
+ {
589
+ SQLUINTEGER year;
590
+ SQLUINTEGER month;
591
+ } SQL_YEAR_MONTH_STRUCT;
592
+
593
+ typedef struct tagSQL_DAY_SECOND
594
+ {
595
+ SQLUINTEGER day;
596
+ SQLUINTEGER hour;
597
+ SQLUINTEGER minute;
598
+ SQLUINTEGER second;
599
+ SQLUINTEGER fraction;
600
+ } SQL_DAY_SECOND_STRUCT;
601
+
602
+ typedef struct tagSQL_INTERVAL_STRUCT
603
+ {
604
+ SQLINTERVAL interval_type;
605
+ SQLSMALLINT interval_sign;
606
+ union {
607
+ SQL_YEAR_MONTH_STRUCT year_month;
608
+ SQL_DAY_SECOND_STRUCT day_second;
609
+ } intval;
610
+
611
+ } SQL_INTERVAL_STRUCT;
612
+
613
+ /* Maximum precision (in base 10) of an SQL_C_NUMERIC value */
614
+ #define SQL_MAX_C_NUMERIC_PRECISION 38
615
+
616
+ /* internal representation of numeric data type */
617
+ #define SQL_MAX_NUMERIC_LEN 16
618
+ typedef struct tagSQL_NUMERIC_STRUCT
619
+ {
620
+ SQLCHAR precision;
621
+ SQLSCHAR scale;
622
+ SQLCHAR sign; /* 1 if positive, 0 if negative */
623
+ SQLCHAR val[SQL_MAX_NUMERIC_LEN];
624
+ } SQL_NUMERIC_STRUCT;
625
+
626
+ #endif
627
+
628
+
629
+ #define SQL_DECIMAL64_LEN 8
630
+ #define SQL_DECIMAL128_LEN 16
631
+
632
+ typedef struct SQLDECIMAL64 {
633
+ union {
634
+ SQLDOUBLE dummy; /* Dummy member for alignment purposes */
635
+ SQLCHAR dec64[SQL_DECIMAL64_LEN];
636
+ } udec64;
637
+ } SQLDECIMAL64;
638
+
639
+ typedef struct SQLDECIMAL128 {
640
+ union {
641
+ SQLDOUBLE dummy; /* Dummy member for alignment purposes */
642
+ SQLCHAR dec128[SQL_DECIMAL128_LEN];
643
+ } udec128;
644
+ } SQLDECIMAL128;
645
+
646
+ /* Core Function Prototypes */
647
+
648
+
649
+
650
+
651
+ SQLRETURN SQL_API_FN SQLAllocConnect (SQLHENV henv,
652
+ SQLHDBC FAR *phdbc);
653
+
654
+
655
+ SQLRETURN SQL_API_FN SQLAllocEnv (SQLHENV FAR *phenv);
656
+
657
+ SQLRETURN SQL_API_FN SQLAllocStmt (SQLHDBC hdbc,
658
+ SQLHSTMT FAR *phstmt);
659
+
660
+ SQLRETURN SQL_API_FN SQLAllocHandle( SQLSMALLINT fHandleType,
661
+ SQLHANDLE hInput,
662
+ SQLHANDLE * phOutput );
663
+
664
+ SQLRETURN SQL_API_FN SQLBindCol (SQLHSTMT hstmt,
665
+ SQLUSMALLINT icol,
666
+ SQLSMALLINT fCType,
667
+ SQLPOINTER rgbValue,
668
+ SQLLEN cbValueMax,
669
+ SQLLEN FAR *pcbValue);
670
+
671
+ SQLRETURN SQL_API_FN SQLCancel (SQLHSTMT hstmt);
672
+
673
+
674
+ #ifdef ODBC64
675
+ SQLRETURN SQL_API_FN SQLColAttribute (SQLHSTMT hstmt,
676
+ SQLUSMALLINT icol,
677
+ SQLUSMALLINT fDescType,
678
+ SQLPOINTER rgbDesc,
679
+ SQLSMALLINT cbDescMax,
680
+ SQLSMALLINT FAR *pcbDesc,
681
+ SQLLEN *pfDesc);
682
+ #else
683
+ SQLRETURN SQL_API_FN SQLColAttribute (SQLHSTMT hstmt,
684
+ SQLUSMALLINT icol,
685
+ SQLUSMALLINT fDescType,
686
+ SQLPOINTER rgbDesc,
687
+ SQLSMALLINT cbDescMax,
688
+ SQLSMALLINT FAR *pcbDesc,
689
+ SQLPOINTER pfDesc);
690
+ #endif
691
+
692
+
693
+
694
+ SQLRETURN SQL_API_FN SQLConnect (SQLHDBC hdbc,
695
+ SQLCHAR FAR *szDSN,
696
+ SQLSMALLINT cbDSN,
697
+ SQLCHAR FAR *szUID,
698
+ SQLSMALLINT cbUID,
699
+ SQLCHAR FAR *szAuthStr,
700
+ SQLSMALLINT cbAuthStr);
701
+
702
+ SQLRETURN SQL_API_FN SQLDescribeCol (SQLHSTMT hstmt,
703
+ SQLUSMALLINT icol,
704
+ SQLCHAR FAR *szColName,
705
+ SQLSMALLINT cbColNameMax,
706
+ SQLSMALLINT FAR *pcbColName,
707
+ SQLSMALLINT FAR *pfSqlType,
708
+ SQLULEN FAR *pcbColDef,
709
+ SQLSMALLINT FAR *pibScale,
710
+ SQLSMALLINT FAR *pfNullable);
711
+
712
+ SQLRETURN SQL_API_FN SQLDisconnect (SQLHDBC hdbc);
713
+
714
+ SQLRETURN SQL_API_FN SQLError (SQLHENV henv,
715
+ SQLHDBC hdbc,
716
+ SQLHSTMT hstmt,
717
+ SQLCHAR FAR *szSqlState,
718
+ SQLINTEGER FAR *pfNativeError,
719
+ SQLCHAR FAR *szErrorMsg,
720
+ SQLSMALLINT cbErrorMsgMax,
721
+ SQLSMALLINT FAR *pcbErrorMsg);
722
+
723
+ SQLRETURN SQL_API_FN SQLExecDirect (SQLHSTMT hstmt,
724
+ SQLCHAR FAR *szSqlStr,
725
+ SQLINTEGER cbSqlStr);
726
+
727
+ SQLRETURN SQL_API_FN SQLExecute (SQLHSTMT hstmt);
728
+
729
+ SQLRETURN SQL_API_FN SQLFetch (SQLHSTMT hstmt);
730
+
731
+ SQLRETURN SQL_API_FN SQLFreeConnect (SQLHDBC hdbc);
732
+
733
+ SQLRETURN SQL_API_FN SQLFreeEnv (SQLHENV henv);
734
+
735
+ SQLRETURN SQL_API_FN SQLFreeStmt (SQLHSTMT hstmt,
736
+ SQLUSMALLINT fOption);
737
+
738
+ SQLRETURN SQL_API_FN SQLCloseCursor( SQLHSTMT hStmt );
739
+
740
+ SQLRETURN SQL_API_FN SQLGetCursorName (SQLHSTMT hstmt,
741
+ SQLCHAR FAR *szCursor,
742
+ SQLSMALLINT cbCursorMax,
743
+ SQLSMALLINT FAR *pcbCursor);
744
+
745
+ SQLRETURN SQL_API_FN SQLGetData (SQLHSTMT hstmt,
746
+ SQLUSMALLINT icol,
747
+ SQLSMALLINT fCType,
748
+ SQLPOINTER rgbValue,
749
+ SQLLEN cbValueMax,
750
+ SQLLEN FAR *pcbValue);
751
+
752
+ SQLRETURN SQL_API_FN SQLNumResultCols (SQLHSTMT hstmt,
753
+ SQLSMALLINT FAR *pccol);
754
+
755
+ SQLRETURN SQL_API_FN SQLPrepare (SQLHSTMT hstmt,
756
+ SQLCHAR FAR *szSqlStr,
757
+ SQLINTEGER cbSqlStr);
758
+
759
+ SQLRETURN SQL_API_FN SQLRowCount (SQLHSTMT hstmt,
760
+ SQLLEN FAR *pcrow);
761
+
762
+ SQLRETURN SQL_API_FN SQLSetCursorName (SQLHSTMT hstmt,
763
+ SQLCHAR FAR *szCursor,
764
+ SQLSMALLINT cbCursor);
765
+
766
+ SQLRETURN SQL_API_FN SQLSetParam (SQLHSTMT hstmt,
767
+ SQLUSMALLINT ipar,
768
+ SQLSMALLINT fCType,
769
+ SQLSMALLINT fSqlType,
770
+ SQLULEN cbParamDef,
771
+ SQLSMALLINT ibScale,
772
+ SQLPOINTER rgbValue,
773
+ SQLLEN FAR *pcbValue);
774
+
775
+ SQLRETURN SQL_API_FN SQLTransact (SQLHENV henv,
776
+ SQLHDBC hdbc,
777
+ SQLUSMALLINT fType);
778
+
779
+ SQLRETURN SQL_API_FN SQLEndTran( SQLSMALLINT fHandleType,
780
+ SQLHANDLE hHandle,
781
+ SQLSMALLINT fType );
782
+
783
+ SQLRETURN SQL_API_FN SQLFreeHandle( SQLSMALLINT fHandleType,
784
+ SQLHANDLE hHandle );
785
+
786
+ SQLRETURN SQL_API_FN SQLGetDiagRec( SQLSMALLINT fHandleType,
787
+ SQLHANDLE hHandle,
788
+ SQLSMALLINT iRecNumber,
789
+ SQLCHAR * pszSqlState,
790
+ SQLINTEGER * pfNativeError,
791
+ SQLCHAR * pszErrorMsg,
792
+ SQLSMALLINT cbErrorMsgMax,
793
+ SQLSMALLINT * pcbErrorMsg );
794
+
795
+ SQLRETURN SQL_API_FN SQLGetDiagField( SQLSMALLINT fHandleType,
796
+ SQLHANDLE hHandle,
797
+ SQLSMALLINT iRecNumber,
798
+ SQLSMALLINT fDiagIdentifier,
799
+ SQLPOINTER pDiagInfo,
800
+ SQLSMALLINT cbDiagInfoMax,
801
+ SQLSMALLINT * pcbDiagInfo );
802
+
803
+ SQLRETURN SQL_API_FN SQLCopyDesc( SQLHDESC hDescSource,
804
+ SQLHDESC hDescTarget );
805
+
806
+ SQLRETURN SQL_API_FN SQLCreateDb ( SQLHDBC hDbc,
807
+ SQLCHAR *szDB,
808
+ SQLINTEGER cbDB,
809
+ SQLCHAR *szCodeset,
810
+ SQLINTEGER cbCodeset,
811
+ SQLCHAR *szMode,
812
+ SQLINTEGER cbMode);
813
+
814
+ SQLRETURN SQL_API_FN SQLDropDb( SQLHDBC hDbc,
815
+ SQLCHAR *szDB,
816
+ SQLINTEGER cbDB );
817
+
818
+ SQLRETURN SQL_API_FN SQLCreatePkg( SQLHDBC hDbc,
819
+ SQLCHAR *szBindFileName,
820
+ SQLINTEGER cbBindFileName,
821
+ SQLCHAR *szBindOpts,
822
+ SQLINTEGER cbBindOpts );
823
+
824
+ SQLRETURN SQL_API_FN SQLGetDescField( SQLHDESC DescriptorHandle,
825
+ SQLSMALLINT RecNumber,
826
+ SQLSMALLINT FieldIdentifier,
827
+ SQLPOINTER Value,
828
+ SQLINTEGER BufferLength,
829
+ SQLINTEGER *StringLength);
830
+
831
+ SQLRETURN SQL_API_FN SQLGetDescRec( SQLHDESC DescriptorHandle,
832
+ SQLSMALLINT RecNumber,
833
+ SQLCHAR *Name,
834
+ SQLSMALLINT BufferLength,
835
+ SQLSMALLINT *StringLength,
836
+ SQLSMALLINT *Type,
837
+ SQLSMALLINT *SubType,
838
+ SQLLEN *Length,
839
+ SQLSMALLINT *Precision,
840
+ SQLSMALLINT *Scale,
841
+ SQLSMALLINT *Nullable);
842
+
843
+ SQLRETURN SQL_API_FN SQLSetDescField( SQLHDESC DescriptorHandle,
844
+ SQLSMALLINT RecNumber,
845
+ SQLSMALLINT FieldIdentifier,
846
+ SQLPOINTER Value,
847
+ SQLINTEGER BufferLength);
848
+
849
+ SQLRETURN SQL_API_FN SQLSetDescRec( SQLHDESC DescriptorHandle,
850
+ SQLSMALLINT RecNumber,
851
+ SQLSMALLINT Type,
852
+ SQLSMALLINT SubType,
853
+ SQLLEN Length,
854
+ SQLSMALLINT Precision,
855
+ SQLSMALLINT Scale,
856
+ SQLPOINTER Data,
857
+ SQLLEN *StringLength,
858
+ SQLLEN *Indicator);
859
+
860
+
861
+
862
+ #ifdef __cplusplus
863
+ }
864
+ #endif
865
+
866
+ /*
867
+ * Include ODBC header files for
868
+ * functions that are not specified in the X/Open Call Level Interface.
869
+ * This is included with permission from Microsoft.
870
+ * Do not modify (i.e. must not add, remove, rearrange) any part of the
871
+ * contents of sqlext.h
872
+ * Note: SQLDrivers is not supported by DB2 CLI.
873
+ */
874
+ #ifndef __SQL
875
+ #define __SQL
876
+ #define ODBCVER 0x0380
877
+ #endif
878
+ #if !defined(WINDOWS) && !defined(WIN32) && !defined(SQLWINT)
879
+ #ifndef __LPWSTR
880
+ typedef SQLWCHAR * LPWSTR;
881
+ #endif
882
+
883
+ #ifndef __DWORD
884
+ typedef sqluint32 DWORD;
885
+ #endif
886
+
887
+ #ifndef VOID
888
+ #define VOID void
889
+ #endif
890
+
891
+ #ifndef __BOOL
892
+ typedef unsigned BOOL;
893
+ #endif
894
+
895
+ #ifndef __WCHAR
896
+ typedef wchar_t WCHAR;
897
+ #endif
898
+
899
+ #ifndef CHAR
900
+ #define CHAR char
901
+ #define __DUMMYCHAR
902
+ #endif
903
+
904
+ #define GUID TAGGUID
905
+
906
+ typedef struct _TAGGUID {
907
+ unsigned long Data1;
908
+ unsigned short Data2;
909
+ unsigned short Data3;
910
+ unsigned char Data4[ 8 ];
911
+ } TAGGUID;
912
+ #endif
913
+
914
+ #ifndef __SQLUCODE
915
+ #define __SQLUCODE
916
+ #endif
917
+
918
+
919
+ #if !(defined(WINDOWS) || defined(WIN32) || defined(SQLWINT) || \
920
+ defined(DB2NT)) || !defined(__specstrings)
921
+ #ifndef __in
922
+ #define __in
923
+ #endif
924
+ #ifndef __out
925
+ #define __out
926
+ #endif
927
+ #ifndef __inout
928
+ #define __inout
929
+ #endif
930
+ #ifndef __in_opt
931
+ #define __in_opt
932
+ #endif
933
+ #ifndef __out_opt
934
+ #define __out_opt
935
+ #endif
936
+ #ifndef __inout_opt
937
+ #define __inout_opt
938
+ #endif
939
+ #ifndef __deref_out
940
+ #define __deref_out
941
+ #endif
942
+ #ifndef __deref_opt_out
943
+ #define __deref_opt_out
944
+ #endif
945
+ #ifndef __deref_out_opt
946
+ #define __deref_out_opt
947
+ #endif
948
+ #ifndef __in_ecount
949
+ #define __in_ecount(x)
950
+ #endif
951
+ #ifndef __out_ecount
952
+ #define __out_ecount(x)
953
+ #endif
954
+ #ifndef __inout_ecount
955
+ #define __inout_ecount(x)
956
+ #endif
957
+ #ifndef __in_ecount_opt
958
+ #define __in_ecount_opt(x)
959
+ #endif
960
+ #ifndef __out_ecount_opt
961
+ #define __out_ecount_opt(x)
962
+ #endif
963
+ #ifndef __inout_ecount_opt
964
+ #define __inout_ecount_opt(x)
965
+ #endif
966
+ #ifndef __in_bcount
967
+ #define __in_bcount(x)
968
+ #endif
969
+ #ifndef __out_bcount
970
+ #define __out_bcount(x)
971
+ #endif
972
+ #ifndef __inout_bcount
973
+ #define __inout_bcount(x)
974
+ #endif
975
+ #ifndef __in_bcount_opt
976
+ #define __in_bcount_opt(x)
977
+ #endif
978
+ #ifndef __out_bcount_opt
979
+ #define __out_bcount_opt(x)
980
+ #endif
981
+ #ifndef __inout_bcount_opt
982
+ #define __inout_bcount_opt(x)
983
+ #endif
984
+ #ifndef __out_xcount
985
+ #define __out_xcount(x)
986
+ #endif
987
+ #endif /* !WINDOWS && !WIN32 ... */
988
+
989
+ #include "sqlext.h"
990
+
991
+ #if !(defined(WINDOWS) || defined(WIN32) || defined(SQLWINT) || \
992
+ defined(DB2NT)) || !defined(__specstrings)
993
+ #undef __in
994
+ #undef __out
995
+ #undef __inout
996
+ #undef __in_opt
997
+ #undef __out_opt
998
+ #undef __inout_opt
999
+ #undef __deref_out
1000
+ #undef __deref_opt_out
1001
+ #undef __deref_out_opt
1002
+ #undef __in_ecount
1003
+ #undef __out_ecount
1004
+ #undef __inout_ecount
1005
+ #undef __in_ecount_opt
1006
+ #undef __out_ecount_opt
1007
+ #undef __inout_ecount_opt
1008
+ #undef __in_bcount
1009
+ #undef __out_bcount
1010
+ #undef __inout_bcount
1011
+ #undef __in_bcount_opt
1012
+ #undef __out_bcount_opt
1013
+ #undef __inout_bcount_opt
1014
+ #undef __out_xcount
1015
+ #endif /* !WINDOWS && !WIN32 ... */
1016
+
1017
+ #ifdef __SQLUCODE
1018
+ #undef __SQLUCODE
1019
+ #endif
1020
+
1021
+ #if !defined(WINDOWS) && !defined(WIN32) && !defined(SQLWINT)
1022
+ #undef GUID
1023
+ #ifdef __DUMMYCHAR
1024
+ #undef CHAR
1025
+ #undef __DUMMYCHAR
1026
+ #endif
1027
+ #endif
1028
+
1029
+ #undef SQL_C_BOOKMARK
1030
+ #ifdef ODBC64
1031
+ #define SQL_C_BOOKMARK SQL_C_UBIGINT /* BOOKMARK */
1032
+ #else
1033
+ #define SQL_C_BOOKMARK SQL_C_ULONG /* BOOKMARK */
1034
+ #endif
1035
+
1036
+
1037
+ #ifdef DB2_WINSOCKAPI_
1038
+ #undef _WINSOCKAPI_
1039
+ #undef DB2_WINSOCKAPI_
1040
+ #endif
1041
+
1042
+ #endif /* SQL_H_SQLCLI */