--- /srv/reproducible-results/rbuild-debian/r-b-build.hN4Iu4SP/b1/freetds_1.3.17+ds-2_i386.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.hN4Iu4SP/b2/freetds_1.3.17+ds-2_i386.changes ├── Files │ @@ -1,12 +1,12 @@ │ │ 8705c168ebaa4482378ee7dd7934e6d9 789072 debug optional freetds-bin-dbgsym_1.3.17+ds-2_i386.deb │ 55b733789d8654326ffe71330cfff24b 234364 database optional freetds-bin_1.3.17+ds-2_i386.deb │ cf0b6f1497041544e07c2811f436184c 28856 libs optional freetds-common_1.3.17+ds-2_all.deb │ a782ef88f04c4ee528d3cc3f27555d3a 305316 devel optional freetds-dev_1.3.17+ds-2_i386.deb │ - 29dea0531f87b8e3d3eaf7b0f9a63a77 1108948 doc optional freetds-doc_1.3.17+ds-2_all.deb │ + d277fff51d25ab16749149451b6ed3ae 1109696 doc optional freetds-doc_1.3.17+ds-2_all.deb │ 266376498221e1fd3c2729c7bb649bdc 400364 debug optional libct4-dbgsym_1.3.17+ds-2_i386.deb │ c4a89e1e4efa9d5b34cc41fa8f20f3a0 175184 libs optional libct4_1.3.17+ds-2_i386.deb │ 3f8d3d1559c0d2ecd33c92535e3f1ac2 454608 debug optional libsybdb5-dbgsym_1.3.17+ds-2_i386.deb │ c5a86517c98dd99b06a1467627e6c119 205184 libs optional libsybdb5_1.3.17+ds-2_i386.deb │ 88b128cb46bdf808b3b643b4c907b880 502724 debug optional tdsodbc-dbgsym_1.3.17+ds-2_i386.deb │ abda5cbafb25758cc6c28adcb156c63b 212324 libs optional tdsodbc_1.3.17+ds-2_i386.deb ├── freetds-doc_1.3.17+ds-2_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2023-01-27 00:59:14.000000 debian-binary │ │ --rw-r--r-- 0 0 0 34856 2023-01-27 00:59:14.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 1073900 2023-01-27 00:59:14.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 34880 2023-01-27 00:59:14.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 1074624 2023-01-27 00:59:14.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ │ │ │ ├── line order │ │ │ │ │ @@ -13,98 +13,98 @@ │ │ │ │ │ usr/share/doc/freetds-doc/images/callouts/9.gif │ │ │ │ │ usr/share/doc/freetds-doc/images/caution.gif │ │ │ │ │ usr/share/doc/freetds-doc/images/important.gif │ │ │ │ │ usr/share/doc/freetds-doc/images/note.gif │ │ │ │ │ usr/share/doc/freetds-doc/images/tip.gif │ │ │ │ │ usr/share/doc/freetds-doc/images/warning.gif │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00011_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00020_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00023_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00029_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00035.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00036.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050_a84e17808683ba2dd956e811a42e23176_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050_aa818c1cbf4d16e609b7e4895cc7ed74f_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050_aabd0e5f15615b5c141c525b76e746520_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00050_abac4d689e0e31e80587f89247c6395a4_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00051.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00056_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a1b83c9db016b481aa1fa0352f976d50d_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a3118c7232bc9c3e47f8ba872bb39e967_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a4daaa551e54dbd978650e2eef89e09ff_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a4daaa551e54dbd978650e2eef89e09ff_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_a86ac92bd8a3c61a413d27150ec9bc202_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ab4d7e5309152f54613d52c8469a07fd8_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ab4d7e5309152f54613d52c8469a07fd8_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00059_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00060.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00065.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00066.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a4f9e40da6941cb9407d0da5bc3030517_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a4f9e40da6941cb9407d0da5bc3030517_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a50bc3749988d1c3c441044fc07ab44e4_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a9d8eb43a81ff58ab423dce0ce95b9564_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_aa038a9125979f8f0915dbd53cbf27e5a_icgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_aa9e1e45f0305622dd6aed9f8fe158581_icgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_abc3a77c8aa28842e7f28583cbabc1415_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00077_abc3a77c8aa28842e7f28583cbabc1415_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00078.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00113_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00167.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00167_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00167_ac7a199aaeb82935f6d1dda2be551a089_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00167_aea6a865806d454280126de940478c214_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00167_aea6a865806d454280126de940478c214_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00168.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00170_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00200_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00209_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00212_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00215_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00224_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00248_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00014_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00050_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00059_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00068_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00071_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00077_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00083_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00095_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00155.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00155_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00155_ac7a199aaeb82935f6d1dda2be551a089_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00155_aea6a865806d454280126de940478c214_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00155_aea6a865806d454280126de940478c214_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00156.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00161_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00194_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00242_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a1b83c9db016b481aa1fa0352f976d50d_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a3118c7232bc9c3e47f8ba872bb39e967_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a4daaa551e54dbd978650e2eef89e09ff_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a4daaa551e54dbd978650e2eef89e09ff_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_a86ac92bd8a3c61a413d27150ec9bc202_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ab4d7e5309152f54613d52c8469a07fd8_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ab4d7e5309152f54613d52c8469a07fd8_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00266_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00267.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00272.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00273.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a4f9e40da6941cb9407d0da5bc3030517_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a4f9e40da6941cb9407d0da5bc3030517_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a50bc3749988d1c3c441044fc07ab44e4_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a9d8eb43a81ff58ab423dce0ce95b9564_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_aa038a9125979f8f0915dbd53cbf27e5a_icgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_aa9e1e45f0305622dd6aed9f8fe158581_icgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_abc3a77c8aa28842e7f28583cbabc1415_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00275_abc3a77c8aa28842e7f28583cbabc1415_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00276.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00284_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00287.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00288.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00290_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00293_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00296_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00326_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00329_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00332_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00299_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323_a84e17808683ba2dd956e811a42e23176_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323_aa818c1cbf4d16e609b7e4895cc7ed74f_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323_aabd0e5f15615b5c141c525b76e746520_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00323_abac4d689e0e31e80587f89247c6395a4_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00324.dot.gz │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00344_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00347_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00350_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00353_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00356_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00359_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00362_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00365_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00368_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00371_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00374_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00377_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00380_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00383_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00386_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00389_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00392_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00395_source.html │ │ │ │ │ @@ -118,42 +118,42 @@ │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00419_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00422_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00425_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00428_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00431_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00434_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00437_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a3ab8874994a0776acdaff797afdb710a_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a41390fa6e1083ba84fb523797e6b5275_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a8184311543c685f2ee0bcccfb725ca02_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a8184311543c685f2ee0bcccfb725ca02_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_abf18b98efef6ce2dc0b97d658a3a1918_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00440_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00440_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00441.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00442.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a3ab8874994a0776acdaff797afdb710a_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a41390fa6e1083ba84fb523797e6b5275_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a8184311543c685f2ee0bcccfb725ca02_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a8184311543c685f2ee0bcccfb725ca02_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_abf18b98efef6ce2dc0b97d658a3a1918_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00443_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00443_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00444.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00445.dot │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00446_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00449.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00449_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00450.dot │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00451.dot.gz │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00452_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00455_source.html │ │ │ │ │ @@ -174,16 +174,16 @@ │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00482_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00485_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00488_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00491_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00494_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00497_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00500_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00503_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a00515_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00506_source.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a00512_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00524.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00525.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00526.dot │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00526.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00527.dot │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00527.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a00527_ga0b5ca7723f370dac9fe1f6db35e331a0_cgraph.dot │ │ │ │ │ @@ -1079,23 +1079,23 @@ │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01323.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01326.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01327.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01330.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01331.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01332_source.html │ │ │ │ │ usr/share/doc/freetds-doc/reference/a01335_source.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01353.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01353_a230fa5b56ae4e3509a69bd266495732b_cgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01353_a230fa5b56ae4e3509a69bd266495732b_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01353_ad53f508d8f2177a898f8022736834afd_icgraph.dot │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01354.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01365.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01366.dot.gz │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01368.html │ │ │ │ │ -usr/share/doc/freetds-doc/reference/a01369.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01344.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01344_a230fa5b56ae4e3509a69bd266495732b_cgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01344_a230fa5b56ae4e3509a69bd266495732b_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01344_ad53f508d8f2177a898f8022736834afd_icgraph.dot │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01345.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01371.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01372.dot.gz │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01374.html │ │ │ │ │ +usr/share/doc/freetds-doc/reference/a01375.dot.gz │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_0.js │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_1.js │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_10.js │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_11.js │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_12.js │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_13.js │ │ │ │ │ usr/share/doc/freetds-doc/reference/all_14.js │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -20,178 +20,178 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 927 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/images/callouts/9.gif │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1039 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/images/caution.gif │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1081 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/images/important.gif │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1070 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/images/note.gif │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1029 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/images/tip.gif │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1052 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/images/warning.gif │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 58866 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00011_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 16065 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00020_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 172116 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00023_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 54357 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00029_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12018 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00035.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1237 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00036.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44836 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 797 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1655 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_a84e17808683ba2dd956e811a42e23176_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_aa818c1cbf4d16e609b7e4895cc7ed74f_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 750 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_aabd0e5f15615b5c141c525b76e746520_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3895 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_abac4d689e0e31e80587f89247c6395a4_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1393 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00051.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 41464 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00056_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 51578 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1407 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a1b83c9db016b481aa1fa0352f976d50d_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2381 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1787 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a3118c7232bc9c3e47f8ba872bb39e967_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2518 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a4daaa551e54dbd978650e2eef89e09ff_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2476 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a4daaa551e54dbd978650e2eef89e09ff_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1450 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1380 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3079 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4472 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2131 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3542 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1355 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_a86ac92bd8a3c61a413d27150ec9bc202_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2837 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ab4d7e5309152f54613d52c8469a07fd8_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1755 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ab4d7e5309152f54613d52c8469a07fd8_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1150 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 740 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1099 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 750 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1381 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2944 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1712 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1236 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00060.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 42169 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00065.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1343 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00066.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26262 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1112 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a4f9e40da6941cb9407d0da5bc3030517_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1385 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a4f9e40da6941cb9407d0da5bc3030517_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1376 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a50bc3749988d1c3c441044fc07ab44e4_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1542 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a9d8eb43a81ff58ab423dce0ce95b9564_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2842 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 824 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3229 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 781 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2061 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_aa038a9125979f8f0915dbd53cbf27e5a_icgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 817 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2085 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_aa9e1e45f0305622dd6aed9f8fe158581_icgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1463 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_abc3a77c8aa28842e7f28583cbabc1415_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3294 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_abc3a77c8aa28842e7f28583cbabc1415_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1150 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00078.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 32805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00113_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 135332 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00167.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1303 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00167_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3367 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00167_ac7a199aaeb82935f6d1dda2be551a089_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1344 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00167_aea6a865806d454280126de940478c214_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1980 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00167_aea6a865806d454280126de940478c214_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1403 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00168.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 78803 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00170_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7239 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00200_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6983 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00209_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8278 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00212_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8148 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00215_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13132 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00224_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12254 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00248_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7711 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00296_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 6935 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00326_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 181115 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00329_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29227 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00332_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 116710 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00344_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29227 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00011_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6935 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00014_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 181115 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00050_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7711 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00059_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13132 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00068_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8148 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00071_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7239 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00077_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8278 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00083_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 6983 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00095_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 135332 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00155.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1303 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00155_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3367 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00155_ac7a199aaeb82935f6d1dda2be551a089_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1344 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00155_aea6a865806d454280126de940478c214_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1980 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00155_aea6a865806d454280126de940478c214_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1405 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00156.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 78803 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00161_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 32805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00194_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12254 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00242_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 51578 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1407 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a1b83c9db016b481aa1fa0352f976d50d_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2381 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1787 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a3118c7232bc9c3e47f8ba872bb39e967_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2518 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a4daaa551e54dbd978650e2eef89e09ff_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2476 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a4daaa551e54dbd978650e2eef89e09ff_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1451 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1380 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3079 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4472 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2131 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3542 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1355 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_a86ac92bd8a3c61a413d27150ec9bc202_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2837 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ab4d7e5309152f54613d52c8469a07fd8_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1755 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ab4d7e5309152f54613d52c8469a07fd8_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1150 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 740 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1099 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 750 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1381 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2944 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1712 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00266_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1236 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00267.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 42169 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00272.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1343 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00273.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26262 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1112 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a4f9e40da6941cb9407d0da5bc3030517_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1385 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a4f9e40da6941cb9407d0da5bc3030517_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1376 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a50bc3749988d1c3c441044fc07ab44e4_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1542 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a9d8eb43a81ff58ab423dce0ce95b9564_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2842 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 824 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3229 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 781 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2061 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_aa038a9125979f8f0915dbd53cbf27e5a_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 817 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2085 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_aa9e1e45f0305622dd6aed9f8fe158581_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1463 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_abc3a77c8aa28842e7f28583cbabc1415_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3294 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00275_abc3a77c8aa28842e7f28583cbabc1415_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1153 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00276.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 172116 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00284_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12018 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00287.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1238 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00288.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 16065 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00290_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 54357 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00293_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41464 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00296_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 58866 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00299_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44836 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 797 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1657 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323_a84e17808683ba2dd956e811a42e23176_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323_aa818c1cbf4d16e609b7e4895cc7ed74f_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 750 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323_aabd0e5f15615b5c141c525b76e746520_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3895 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00323_abac4d689e0e31e80587f89247c6395a4_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1391 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00324.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11431 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00344_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10265 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00347_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 37923 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00350_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 23116 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00356_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17299 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00359_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15396 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00362_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8367 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00365_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 35120 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00368_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4004 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00371_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27932 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00374_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12136 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00377_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66335 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00380_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 44255 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00383_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3993 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00386_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 22592 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00389_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 45871 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00392_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10545 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00395_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 27813 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00398_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 5014 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00401_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 9745 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00404_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00407_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10495 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00410_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8703 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00413_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10520 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00416_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8358 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00419_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24847 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00422_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11256 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00425_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21528 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00428_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 323366 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00431_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 130532 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00434_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 101404 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00437_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 334341 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 776 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 797 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1074 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a3ab8874994a0776acdaff797afdb710a_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 762 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a41390fa6e1083ba84fb523797e6b5275_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1450 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1380 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3079 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3542 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a8184311543c685f2ee0bcccfb725ca02_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1355 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a8184311543c685f2ee0bcccfb725ca02_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4472 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2131 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 755 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1150 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1156 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_abf18b98efef6ce2dc0b97d658a3a1918_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 740 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1099 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 4805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 750 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1381 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2944 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1712 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 380459 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 988 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00441.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3930 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00442.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17514 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24558 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00446_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 29728 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00350_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 22592 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00353_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 5014 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00356_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8030 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00359_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27932 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00362_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 35120 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00365_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17299 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00368_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 44255 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00371_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15396 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00377_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 101404 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00380_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24847 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00383_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11256 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00386_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21528 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00389_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10520 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00392_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8358 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00395_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8703 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00398_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10495 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00401_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00404_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10545 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00407_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4004 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00410_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 130532 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00413_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 7411 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00416_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 8367 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00419_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45871 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00422_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24558 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00425_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12136 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00428_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3993 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00431_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66335 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00434_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 9745 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00437_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 85841 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00440_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 334341 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 776 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 797 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1074 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a3ab8874994a0776acdaff797afdb710a_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 762 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a41390fa6e1083ba84fb523797e6b5275_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1451 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a5eec23828b0610c58de248c4edb53879_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1380 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3079 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3542 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a8184311543c685f2ee0bcccfb725ca02_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1355 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a8184311543c685f2ee0bcccfb725ca02_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4472 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2131 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 755 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1150 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1156 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_abf18b98efef6ce2dc0b97d658a3a1918_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 740 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1099 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 4805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 750 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1381 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2944 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1712 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 380459 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00443_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 992 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00444.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3930 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00445.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14284 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00446_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12748 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00449.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16060 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00449_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1225 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00450.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 951 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00451.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14284 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00452_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 8030 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00455_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 17719 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00458_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 7411 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00461_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 85841 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00464_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 15505 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00467_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 30966 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00470_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 52328 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00473_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61527 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00476_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17514 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00452_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 17719 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00455_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 323366 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00458_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 27813 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00461_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 23116 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00464_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40525 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00467_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 120426 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00470_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 37923 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00473_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25971 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00476_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 442600 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00479.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1303 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00479_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1563 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00479_af2b7a0ebad53fe7e4e0eda3bbdb89de3_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1294 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00479_af8ada101cd189eff87b3533cbeaaa23b_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 345084 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00479_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 914 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00480.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2062 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00481.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13881 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00482_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 29728 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00485_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 120426 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00488_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25971 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00491_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 40525 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00494_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11431 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00497_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 116710 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00482_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13881 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00485_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61527 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00488_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 15505 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00491_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 52328 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00494_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30966 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00497_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 9800 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00500_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13939 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00503_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3541 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00515_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3541 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00506_source.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13939 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00512_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8398 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00524.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3386 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00525.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2292 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00526.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6893 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00526.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 702 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 284834 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1737 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga0b5ca7723f370dac9fe1f6db35e331a0_cgraph.dot │ │ │ │ @@ -208,15 +208,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1364 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga32eb72f6fb3edb130e59fb3dd0766e7e_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1406 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga399512ec78c15ce3db79ea88ef3b1293_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2022 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga3bcdc8f584537b8278483f2cee59f130_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1127 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga3bcdc8f584537b8278483f2cee59f130_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2143 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga43727b10d4cbb7708b374811abe6eadb_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3108 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga4e26d949be2c3bf71b1a33c75b11d931_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1046 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga4e26d949be2c3bf71b1a33c75b11d931_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1595 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1596 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4934 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga559e24ba70d0d96c3469eb6ab8f74e05_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 769 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga559e24ba70d0d96c3469eb6ab8f74e05_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 753 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga564dd3a1bb0425a8957f1714d8b2a7c0_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1709 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga57c856964a9a0b4cc43f5192647c51e7_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 804 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga57c856964a9a0b4cc43f5192647c51e7_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2969 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga5ea23272124fff03b8d87538c1ec3ee5_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1713 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga636e6f1b64743f3cf22158a56eef371f_cgraph.dot │ │ │ │ @@ -240,15 +240,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2383 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1692 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga8b00d5cdcaa20cba13fa2e03d52a443e_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 744 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga947837a5c8fd99898c043435945b668c_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2537 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga9804fc70ae6ed35c92cd75d410dad570_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 793 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga9a35c8d3cd0e35c10555baf8f6a01e93_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1369 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga9d660d278f3f58871b4086c0e175f4c6_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1078 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_ga9dfc2ee533e5e48a7aa8ca22f8d9ed79_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1698 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaa30be3414a97aac6139af2e928db91ca_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1700 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaa30be3414a97aac6139af2e928db91ca_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1111 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaa85171e020dc606f2bd3395ad1d3ab4f_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1082 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaaa4839a9c88e5b90f33bd2407fcbc43e_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3453 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaae889abeb145ec41f7361aa8f597fe46_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 753 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaae889abeb145ec41f7361aa8f597fe46_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1085 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaaf8349999c16b3c36caf5947747a2915_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1452 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaaf8349999c16b3c36caf5947747a2915_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1720 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gab33d2f4fd44f50e55b6c71902db4fdae_cgraph.dot │ │ │ │ @@ -273,15 +273,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1101 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaef740b394b44eb33925c2718f7b30d69_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1416 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaef740b394b44eb33925c2718f7b30d69_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1385 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf130b12e9e58b1bfd4a6685e33f5b3cd_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4826 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf1879b85e8238c015b9648d077665285_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1339 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf1879b85e8238c015b9648d077665285_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 808 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf1c00d83dfa88dc99a3fb449c49660ea_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1419 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf2ca0e63f800b3839684c894ff651dd4_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1261 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1262 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2362 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00527_gafefd17e15b22adda84366c817178dd7d_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 712 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00528.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36209 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00528.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1378 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00528_ga5b4374c13c7a83cd4345b0bfa3e787bd_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2888 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00528_ga61a32bcbc7b9d2522f6c85e91919f2c4_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2897 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00528_ga63dc384b5c0ee3086a171337e8c78317_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2826 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00528_gab705bf94be535e9d8fc4edc0f48c98b0_cgraph.dot.gz │ │ │ │ @@ -299,20 +299,20 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1406 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_ga6498235e4ef8e41ea43b01494b28998d_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2036 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_ga6cf03708baaf02eb016b9ee77160d879_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2332 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_ga7a184158b27a50f713e9cfae3b746209_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2356 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3312 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_ga963c5e38bca7668afc57f5cc123d10fb_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1203 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3776 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1642 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1641 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00529_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 732 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38910 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1504 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 808 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga0f8def4cad04c5c1e27c2b653d482dd8_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1221 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga1b57d952a9d72f375c3296124affa908_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1222 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga1b57d952a9d72f375c3296124affa908_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1015 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga1b57d952a9d72f375c3296124affa908_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1210 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga4f936fa1cb8e4373bf7b7f8a6ab96bc7_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2364 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 709 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_ga7370f1223f13510d6b33e98f2de09fb5_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 690 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_gaa134c1c3ccc4326e693adb8357272f1d_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1393 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_gaa134c1c3ccc4326e693adb8357272f1d_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 710 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00530_gab672799007e720bf918caa1b33c989ea_icgraph.dot │ │ │ │ @@ -331,15 +331,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 685 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 60282 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1389 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga03e850369aca6fba074da5e9da4effd7_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1063 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga302a4ce6559b81808e3be51615cd1b67_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3743 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga302a4ce6559b81808e3be51615cd1b67_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1745 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga3c6f474c0662158f3100fe464bf077d9_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1385 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga45d1c0fba44eafde5e156a70af5d6126_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1674 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga45d1c0fba44eafde5e156a70af5d6126_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1675 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_ga45d1c0fba44eafde5e156a70af5d6126_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1390 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1116 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_gaccbc6d98d9528c48cf0254d809ca73ff_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2031 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2013 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_gae6da75d7b9e7b567890fc83c9459d824_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 723 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00533_gae6da75d7b9e7b567890fc83c9459d824_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 720 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00534.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4195 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00534.html │ │ │ │ @@ -380,15 +380,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2430 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_ga53a19b5da172ff364d01e8f04b97015a_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1783 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_ga80487b313213f60d8be71a50a002bb2c_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2096 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_ga883855e6e3793de6684b21db39c756c4_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2122 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_ga8c9652e8b1f3e56a3289fd71b12cee1d_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1061 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_ga933f87cca76156648e91f472650b98f3_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 735 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_gace939c1fa676d172cb0cae94848b7fac_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1093 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_gace939c1fa676d172cb0cae94848b7fac_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1715 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_gad83c146aa5ba3f1515557d6b5248494a_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1714 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_gad83c146aa5ba3f1515557d6b5248494a_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1064 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00539_gae8e173a9f8d2e3f152ada9f48d3d5f28_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 673 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00540.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 44770 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00540.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 795 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00540_ga22c61ca41f64c7fe368659ed1eebdb56_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1569 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00540_ga22c61ca41f64c7fe368659ed1eebdb56_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 805 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00540_ga3380140fc6eb9f2090c430f40e846876_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1472 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00540_ga3380140fc6eb9f2090c430f40e846876_icgraph.dot.gz │ │ │ │ @@ -411,40 +411,40 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2597 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00541_gabdc5fee73b22345c02ab894e49ad7f95_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1110 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00541_gabf2fdb0def5388508602ee7dd2f49506_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3073 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00541_gabf2fdb0def5388508602ee7dd2f49506_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 637 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 150266 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 778 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga05ac7bab753d19b6ba1ffc7505d8fcd0_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2447 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0856776b63a475de7cd3fb62b1af2411_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2724 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga08877c101704bebe4fa57e0849dc272d_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2725 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga08877c101704bebe4fa57e0849dc272d_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1481 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0cd19215e9169ea299a6c9cbf5b2fb60_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3679 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0cd19215e9169ea299a6c9cbf5b2fb60_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2811 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3568 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0da385231bfa3dc49377e1fb2bea2c07_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3547 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0e2e7230c425e925402d7856ff5b4b18_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2490 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga0e2e7230c425e925402d7856ff5b4b18_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 810 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga11338742dc30fd0c2711f58eb830316f_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1186 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga11338742dc30fd0c2711f58eb830316f_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1589 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga24345856c16b15aa3e84459c2f551320_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1240 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga24345856c16b15aa3e84459c2f551320_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2797 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2483 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga26b26296d060dca75f6a43e9ac41e58d_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1881 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga2a64baaf4aa50ef601a49b801dfdaaf6_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1383 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1382 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1094 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga2d0a06c1a30dd2470dc7a788de21b080_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1499 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga34fb1084682cc31fe02a4a7946955a5a_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2020 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga3e7b4793c6f799fbc6c174f673bb5b32_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1249 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1248 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1282 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 786 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga50d62edeb2a432e2dc668263f3f958ff_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1471 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2126 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga530538c4c975524cf0b771a550fc94a3_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 792 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga57bd0fabe5bcdeb3ef091259b3a7c1fc_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2505 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1673 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1674 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1874 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga5f071b94ad7889690762dc85646c74ab_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 758 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga5f071b94ad7889690762dc85646c74ab_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1719 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga6513afd79629f7a928e1d3da9f56dee1_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1094 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga6513afd79629f7a928e1d3da9f56dee1_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 729 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga691e8752f4f84ed51b7f4d1447cb3d25_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1226 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga6e42b4a1d1d3898229ea2fe4afc2ecec_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1236 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga6e42b4a1d1d3898229ea2fe4afc2ecec_icgraph.dot.gz │ │ │ │ @@ -457,35 +457,35 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 706 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga8d8f2f1c91635ee95f30722208ae3043_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3274 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga8d8f2f1c91635ee95f30722208ae3043_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1093 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga8f3b00c34af2484eccb169e60a37dc36_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3278 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga8f3b00c34af2484eccb169e60a37dc36_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2740 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga95e0fccedc459a4404f496eec74a369a_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1481 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga95e0fccedc459a4404f496eec74a369a_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3475 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9ad2e6defce530a8778791cce0166ccd_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1664 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9ad2e6defce530a8778791cce0166ccd_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1665 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9ad2e6defce530a8778791cce0166ccd_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2126 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9c1cdcc388506a2ca3c0aaee8c461ba6_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3778 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9f6f25dd405f45e75420e6e084bf2d85_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 806 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9f6f25dd405f45e75420e6e084bf2d85_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 770 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9f80fdf732b084aef7de7a323261aa61_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4088 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_ga9fcc0a3932dcad530511395ef8a767fb_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1437 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaaa7b4d37bf796019e72f25c6e7fe7bea_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1525 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaaa7b4d37bf796019e72f25c6e7fe7bea_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1128 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaaa97f8535a2babe642024a0744d271d5_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1126 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaaa97f8535a2babe642024a0744d271d5_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1142 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gab42efeaf6c795435a03de1835b3de1c6_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1131 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gac3124fe439d9c96236fc33af7793ffcf_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2419 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gacf0a4f2a1c2166588f4d232eda737cf5_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1529 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gad5b76c688898b86984d09628f030d01c_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1555 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gad5b76c688898b86984d09628f030d01c_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1556 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gad5b76c688898b86984d09628f030d01c_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1800 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gad695defcbf663b0023851a198206a772_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2351 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gad695defcbf663b0023851a198206a772_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 739 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gada27f4cfce925240ad33b71b63ca692d_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1864 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gada27f4cfce925240ad33b71b63ca692d_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1865 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gada27f4cfce925240ad33b71b63ca692d_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3448 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gae603aed795a4c5bb26ab159a11256996_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2471 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gae8b7db85af16701fc0604eb117cbd4e4_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2473 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gae8b7db85af16701fc0604eb117cbd4e4_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4438 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaf0da49585d39e99780a004ee2ca23479_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1364 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaf573d8d4d2660c8c27770573fca05ff5_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2033 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gaf573d8d4d2660c8c27770573fca05ff5_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1171 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gafd74652c4722ddce4d642cc4209449d4_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1056 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00542_gafd74652c4722ddce4d642cc4209449d4_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 682 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 82630 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543.html │ │ │ │ @@ -496,23 +496,23 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3248 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga1fcaf8d488cc1390f106ce3ad0bf37b4_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2299 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga1fcaf8d488cc1390f106ce3ad0bf37b4_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1390 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga221e98a9c8be96ec6c8547891e1b53af_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2284 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga221e98a9c8be96ec6c8547891e1b53af_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1823 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga2660b893ae2bf36fe1b63b354e748bad_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1352 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga2734407109c834c5dda7ff8a45c71230_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1445 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga2a7429ff031f77023d1bf31339a266db_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 3963 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga3e3f76009fce5ceedb2f42bb2c9aed2e_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 3962 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga3e3f76009fce5ceedb2f42bb2c9aed2e_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 741 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga410619783bdf2bb60b0f27a5578e0e07_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4101 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1945 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga528cc96da09c11bc2930daae64e33e83_icgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2508 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga5feb53554e8917a81bbbc332163a61fb_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2509 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga5feb53554e8917a81bbbc332163a61fb_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1115 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga633f62fb8e5310abfa42c02fba9c6500_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3904 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga633f62fb8e5310abfa42c02fba9c6500_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3657 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga676c4dee6522815b16fdc8e448e43590_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1552 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga676c4dee6522815b16fdc8e448e43590_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1550 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga676c4dee6522815b16fdc8e448e43590_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1302 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga7274d9c5dc75c58bb7d1f1c29e03a73e_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 847 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga8560e2536fdcf8f1514d4fa14f90876c_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1420 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga8ab6c87318eaf15ea17a9575763f7809_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3288 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga8d214089b6e97fc0da5e0be09f216d73_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 748 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga8d214089b6e97fc0da5e0be09f216d73_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3281 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga90f080e6e9448feac15dee1370d66802_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2126 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00543_ga90f080e6e9448feac15dee1370d66802_icgraph.dot.gz │ │ │ │ @@ -551,18 +551,18 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2320 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga547b2f48659f77a69aa802d861ac827d_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1258 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga5cfc0340d8d717e67f60037e029b2142_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2211 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga5cfc0340d8d717e67f60037e029b2142_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1494 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga62dc14d21453e88e24880ee0acaca73a_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4096 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga65a2316369529731732f200c190d05d6_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1562 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga65a2316369529731732f200c190d05d6_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1829 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga6728e344caa20aea1def85f58dea138b_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2220 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga6728e344caa20aea1def85f58dea138b_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2221 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga6728e344caa20aea1def85f58dea138b_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3963 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga69902dffb299d62a799888e0fa3ccd68_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2701 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga69902dffb299d62a799888e0fa3ccd68_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2220 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga6fcb37d5addebdc1af9f34ebc59fd7a8_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2221 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga6fcb37d5addebdc1af9f34ebc59fd7a8_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3938 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga7482b5730d880fcedbe9fcd609a550ce_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2625 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga7482b5730d880fcedbe9fcd609a550ce_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1704 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga7a081cf9bb8f04ead12f0299fb7c4cd9_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2321 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga7a081cf9bb8f04ead12f0299fb7c4cd9_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2338 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga7b18c0911a9dc69939577b39eb64725d_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2406 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga7f24a7af985cd320788122e98072b7af_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1136 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_ga905d2fa5e1b602817bd16bb0fcf9eadb_cgraph.dot.gz │ │ │ │ @@ -585,15 +585,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1748 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gacb3354443bcefe7a500a500a4904cc05_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2767 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gacb3354443bcefe7a500a500a4904cc05_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1556 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gad9b6b86f48be077fb44ac603845a0c27_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1083 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gad9b6b86f48be077fb44ac603845a0c27_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1360 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae3368ea80d0d8b13791ceb13ee5f19c9_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2206 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae3368ea80d0d8b13791ceb13ee5f19c9_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1107 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae5b3e01f3d665f9e377de091f46f1ab9_cgraph.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2209 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae5b3e01f3d665f9e377de091f46f1ab9_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2210 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae5b3e01f3d665f9e377de091f46f1ab9_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1800 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae688b515631141acfbc41bbb91c8b921_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2322 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gae688b515631141acfbc41bbb91c8b921_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3334 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gaeaaed2ea1d8c827da1a0f5b419524ae1_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3733 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gaeaaed2ea1d8c827da1a0f5b419524ae1_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4955 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gaeeb1562044786ea17bea361ed83e6946_cgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1584 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gaeeb1562044786ea17bea361ed83e6946_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1808 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gaeec59bca9bd0c5388e245f0d19d9c81a_cgraph.dot.gz │ │ │ │ @@ -602,15 +602,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 726 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gaf233e79967f82f4e0dd4d11524917a34_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2554 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gafb26aba5d935e40b87b95e21a5185848_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4029 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00544_gafb26aba5d935e40b87b95e21a5185848_icgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 672 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 30525 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1491 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_ga0cd7863ba7c2d2da4a193234472a3d14_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 765 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_ga4e6d9fa6f9b9551a5a3390e10a5322e6_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1172 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_ga4e6d9fa6f9b9551a5a3390e10a5322e6_icgraph.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1171 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_ga4e6d9fa6f9b9551a5a3390e10a5322e6_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2456 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_ga656718f240d7403f986ae887d84a6ca1_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1476 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_ga6aa14b8b717b51afcfb65bd55143689d_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1060 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_gab78cc59b110df2817b00f9bed74c6ff1_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 746 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_gad96366d9fa93bfc283cef1299fbe97ab_cgraph.dot │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3067 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1865 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00545_gae092e53680d954bcf4f19334987d43c7_icgraph.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2614 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a00546.dot │ │ │ │ @@ -1087,23 +1087,23 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6298 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01323.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8589 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01326.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6254 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01327.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8617 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01330.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13797 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01331.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3688 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01332_source.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3674 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01335_source.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34728 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01353.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1516 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01353_a230fa5b56ae4e3509a69bd266495732b_cgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1104 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01353_a230fa5b56ae4e3509a69bd266495732b_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1050 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01353_ad53f508d8f2177a898f8022736834afd_icgraph.dot │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1415 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01354.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 18081 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01365.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1243 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01366.dot.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24413 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01368.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 1228 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01369.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34728 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01344.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1516 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01344_a230fa5b56ae4e3509a69bd266495732b_cgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1104 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01344_a230fa5b56ae4e3509a69bd266495732b_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1050 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01344_ad53f508d8f2177a898f8022736834afd_icgraph.dot │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1419 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01345.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 18081 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01371.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1241 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01372.dot.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24413 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01374.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 1230 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/a01375.dot.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4541 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_0.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 898 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_1.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1785 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_10.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2973 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_11.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 62107 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_12.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 450 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_13.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 422 2023-01-27 00:59:14.000000 ./usr/share/doc/freetds-doc/reference/all_14.js │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00011_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: src/tds/num_limits.h Source File │ │ │ │ +FreeTDS API: src/odbc/error_export.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,398 +70,224 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
num_limits.h
│ │ │ │ +
error_export.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#define LIMIT_INDEXES_ADJUST 4
│ │ │ │ +
1#undef tdsdump_log
│ │ │ │
2
│ │ │ │ -
3static const signed char limit_indexes[79]= {
│ │ │ │ -
4 0, /* 0 */
│ │ │ │ -
5 -3, /* 1 */
│ │ │ │ -
6 -6, /* 2 */
│ │ │ │ -
7 -9, /* 3 */
│ │ │ │ -
8 -12, /* 4 */
│ │ │ │ -
9 -15, /* 5 */
│ │ │ │ -
10 -18, /* 6 */
│ │ │ │ -
11 -21, /* 7 */
│ │ │ │ -
12 -24, /* 8 */
│ │ │ │ -
13 -27, /* 9 */
│ │ │ │ -
14 -30, /* 10 */
│ │ │ │ -
15 -32, /* 11 */
│ │ │ │ -
16 -34, /* 12 */
│ │ │ │ -
17 -36, /* 13 */
│ │ │ │ -
18 -38, /* 14 */
│ │ │ │ -
19 -40, /* 15 */
│ │ │ │ -
20 -42, /* 16 */
│ │ │ │ -
21 -44, /* 17 */
│ │ │ │ -
22 -46, /* 18 */
│ │ │ │ -
23 -48, /* 19 */
│ │ │ │ -
24 -50, /* 20 */
│ │ │ │ -
25 -51, /* 21 */
│ │ │ │ -
26 -52, /* 22 */
│ │ │ │ -
27 -53, /* 23 */
│ │ │ │ -
28 -54, /* 24 */
│ │ │ │ -
29 -55, /* 25 */
│ │ │ │ -
30 -56, /* 26 */
│ │ │ │ -
31 -57, /* 27 */
│ │ │ │ -
32 -58, /* 28 */
│ │ │ │ -
33 -59, /* 29 */
│ │ │ │ -
34 -59, /* 30 */
│ │ │ │ -
35 -59, /* 31 */
│ │ │ │ -
36 -59, /* 32 */
│ │ │ │ -
37 -60, /* 33 */
│ │ │ │ -
38 -61, /* 34 */
│ │ │ │ -
39 -62, /* 35 */
│ │ │ │ -
40 -63, /* 36 */
│ │ │ │ -
41 -64, /* 37 */
│ │ │ │ -
42 -65, /* 38 */
│ │ │ │ -
43 -66, /* 39 */
│ │ │ │ -
44 -66, /* 40 */
│ │ │ │ -
45 -66, /* 41 */
│ │ │ │ -
46 -66, /* 42 */
│ │ │ │ -
47 -66, /* 43 */
│ │ │ │ -
48 -66, /* 44 */
│ │ │ │ -
49 -66, /* 45 */
│ │ │ │ -
50 -66, /* 46 */
│ │ │ │ -
51 -66, /* 47 */
│ │ │ │ -
52 -66, /* 48 */
│ │ │ │ -
53 -66, /* 49 */
│ │ │ │ -
54 -65, /* 50 */
│ │ │ │ -
55 -64, /* 51 */
│ │ │ │ -
56 -63, /* 52 */
│ │ │ │ -
57 -62, /* 53 */
│ │ │ │ -
58 -61, /* 54 */
│ │ │ │ -
59 -60, /* 55 */
│ │ │ │ -
60 -59, /* 56 */
│ │ │ │ -
61 -58, /* 57 */
│ │ │ │ -
62 -57, /* 58 */
│ │ │ │ -
63 -55, /* 59 */
│ │ │ │ -
64 -53, /* 60 */
│ │ │ │ -
65 -51, /* 61 */
│ │ │ │ -
66 -49, /* 62 */
│ │ │ │ -
67 -47, /* 63 */
│ │ │ │ -
68 -45, /* 64 */
│ │ │ │ -
69 -44, /* 65 */
│ │ │ │ -
70 -43, /* 66 */
│ │ │ │ -
71 -42, /* 67 */
│ │ │ │ -
72 -41, /* 68 */
│ │ │ │ -
73 -39, /* 69 */
│ │ │ │ -
74 -37, /* 70 */
│ │ │ │ -
75 -35, /* 71 */
│ │ │ │ -
76 -33, /* 72 */
│ │ │ │ -
77 -31, /* 73 */
│ │ │ │ -
78 -29, /* 74 */
│ │ │ │ -
79 -27, /* 75 */
│ │ │ │ -
80 -25, /* 76 */
│ │ │ │ -
81 -23, /* 77 */
│ │ │ │ -
82 -21, /* 78 */
│ │ │ │ -
83};
│ │ │ │ -
84
│ │ │ │ -
85static const TDS_WORD limits[]= {
│ │ │ │ -
86 0x00000001u, /* 0 */
│ │ │ │ -
87 0x0000000au, /* 1 */
│ │ │ │ -
88 0x00000064u, /* 2 */
│ │ │ │ -
89 0x000003e8u, /* 3 */
│ │ │ │ -
90 0x00002710u, /* 4 */
│ │ │ │ -
91 0x000186a0u, /* 5 */
│ │ │ │ -
92 0x000f4240u, /* 6 */
│ │ │ │ -
93 0x00989680u, /* 7 */
│ │ │ │ -
94 0x05f5e100u, /* 8 */
│ │ │ │ -
95 0x3b9aca00u, /* 9 */
│ │ │ │ -
96 0x00000002u, /* 10 */
│ │ │ │ -
97 0x540be400u, /* 11 */
│ │ │ │ -
98 0x00000017u, /* 12 */
│ │ │ │ -
99 0x4876e800u, /* 13 */
│ │ │ │ -
100 0x000000e8u, /* 14 */
│ │ │ │ -
101 0xd4a51000u, /* 15 */
│ │ │ │ -
102 0x00000918u, /* 16 */
│ │ │ │ -
103 0x4e72a000u, /* 17 */
│ │ │ │ -
104 0x00005af3u, /* 18 */
│ │ │ │ -
105 0x107a4000u, /* 19 */
│ │ │ │ -
106 0x00038d7eu, /* 20 */
│ │ │ │ -
107 0xa4c68000u, /* 21 */
│ │ │ │ -
108 0x002386f2u, /* 22 */
│ │ │ │ -
109 0x6fc10000u, /* 23 */
│ │ │ │ -
110 0x01634578u, /* 24 */
│ │ │ │ -
111 0x5d8a0000u, /* 25 */
│ │ │ │ -
112 0x0de0b6b3u, /* 26 */
│ │ │ │ -
113 0xa7640000u, /* 27 */
│ │ │ │ -
114 0x8ac72304u, /* 28 */
│ │ │ │ -
115 0x89e80000u, /* 29 */
│ │ │ │ -
116 0x00000005u, /* 30 */
│ │ │ │ -
117 0x6bc75e2du, /* 31 */
│ │ │ │ -
118 0x63100000u, /* 32 */
│ │ │ │ -
119 0x00000036u, /* 33 */
│ │ │ │ -
120 0x35c9adc5u, /* 34 */
│ │ │ │ -
121 0xdea00000u, /* 35 */
│ │ │ │ -
122 0x0000021eu, /* 36 */
│ │ │ │ -
123 0x19e0c9bau, /* 37 */
│ │ │ │ -
124 0xb2400000u, /* 38 */
│ │ │ │ -
125 0x0000152du, /* 39 */
│ │ │ │ -
126 0x02c7e14au, /* 40 */
│ │ │ │ -
127 0xf6800000u, /* 41 */
│ │ │ │ -
128 0x0000d3c2u, /* 42 */
│ │ │ │ -
129 0x1bceccedu, /* 43 */
│ │ │ │ -
130 0xa1000000u, /* 44 */
│ │ │ │ -
131 0x00084595u, /* 45 */
│ │ │ │ -
132 0x16140148u, /* 46 */
│ │ │ │ -
133 0x4a000000u, /* 47 */
│ │ │ │ -
134 0x0052b7d2u, /* 48 */
│ │ │ │ -
135 0xdcc80cd2u, /* 49 */
│ │ │ │ -
136 0xe4000000u, /* 50 */
│ │ │ │ -
137 0x033b2e3cu, /* 51 */
│ │ │ │ -
138 0x9fd0803cu, /* 52 */
│ │ │ │ -
139 0xe8000000u, /* 53 */
│ │ │ │ -
140 0x204fce5eu, /* 54 */
│ │ │ │ -
141 0x3e250261u, /* 55 */
│ │ │ │ -
142 0x10000000u, /* 56 */
│ │ │ │ -
143 0x00000001u, /* 57 */
│ │ │ │ -
144 0x431e0faeu, /* 58 */
│ │ │ │ -
145 0x6d7217cau, /* 59 */
│ │ │ │ -
146 0xa0000000u, /* 60 */
│ │ │ │ -
147 0x0000000cu, /* 61 */
│ │ │ │ -
148 0x9f2c9cd0u, /* 62 */
│ │ │ │ -
149 0x4674edeau, /* 63 */
│ │ │ │ -
150 0x40000000u, /* 64 */
│ │ │ │ -
151 0x0000007eu, /* 65 */
│ │ │ │ -
152 0x37be2022u, /* 66 */
│ │ │ │ -
153 0xc0914b26u, /* 67 */
│ │ │ │ -
154 0x80000000u, /* 68 */
│ │ │ │ -
155 0x000004eeu, /* 69 */
│ │ │ │ -
156 0x2d6d415bu, /* 70 */
│ │ │ │ -
157 0x85acef81u, /* 71 */
│ │ │ │ -
158 0x0000314du, /* 72 */
│ │ │ │ -
159 0xc6448d93u, /* 73 */
│ │ │ │ -
160 0x38c15b0au, /* 74 */
│ │ │ │ -
161 0x0001ed09u, /* 75 */
│ │ │ │ -
162 0xbead87c0u, /* 76 */
│ │ │ │ -
163 0x378d8e64u, /* 77 */
│ │ │ │ -
164 0x00134261u, /* 78 */
│ │ │ │ -
165 0x72c74d82u, /* 79 */
│ │ │ │ -
166 0x2b878fe8u, /* 80 */
│ │ │ │ -
167 0x00c097ceu, /* 81 */
│ │ │ │ -
168 0x7bc90715u, /* 82 */
│ │ │ │ -
169 0xb34b9f10u, /* 83 */
│ │ │ │ -
170 0x0785ee10u, /* 84 */
│ │ │ │ -
171 0xd5da46d9u, /* 85 */
│ │ │ │ -
172 0x00f436a0u, /* 86 */
│ │ │ │ -
173 0x4b3b4ca8u, /* 87 */
│ │ │ │ -
174 0x5a86c47au, /* 88 */
│ │ │ │ -
175 0x098a2240u, /* 89 */
│ │ │ │ -
176 0x00000002u, /* 90 */
│ │ │ │ -
177 0xf050fe93u, /* 91 */
│ │ │ │ -
178 0x8943acc4u, /* 92 */
│ │ │ │ -
179 0x5f655680u, /* 93 */
│ │ │ │ -
180 0x0000001du, /* 94 */
│ │ │ │ -
181 0x6329f1c3u, /* 95 */
│ │ │ │ -
182 0x5ca4bfabu, /* 96 */
│ │ │ │ -
183 0xb9f56100u, /* 97 */
│ │ │ │ -
184 0x00000125u, /* 98 */
│ │ │ │ -
185 0xdfa371a1u, /* 99 */
│ │ │ │ -
186 0x9e6f7cb5u, /* 100 */
│ │ │ │ -
187 0x4395ca00u, /* 101 */
│ │ │ │ -
188 0x00000b7au, /* 102 */
│ │ │ │ -
189 0xbc627050u, /* 103 */
│ │ │ │ -
190 0x305adf14u, /* 104 */
│ │ │ │ -
191 0xa3d9e400u, /* 105 */
│ │ │ │ -
192 0x000072cbu, /* 106 */
│ │ │ │ -
193 0x5bd86321u, /* 107 */
│ │ │ │ -
194 0xe38cb6ceu, /* 108 */
│ │ │ │ -
195 0x6682e800u, /* 109 */
│ │ │ │ -
196 0x00047bf1u, /* 110 */
│ │ │ │ -
197 0x9673df52u, /* 111 */
│ │ │ │ -
198 0xe37f2410u, /* 112 */
│ │ │ │ -
199 0x011d1000u, /* 113 */
│ │ │ │ -
200 0x002cd76fu, /* 114 */
│ │ │ │ -
201 0xe086b93cu, /* 115 */
│ │ │ │ -
202 0xe2f768a0u, /* 116 */
│ │ │ │ -
203 0x0b22a000u, /* 117 */
│ │ │ │ -
204 0x01c06a5eu, /* 118 */
│ │ │ │ -
205 0xc5433c60u, /* 119 */
│ │ │ │ -
206 0xddaa1640u, /* 120 */
│ │ │ │ -
207 0x6f5a4000u, /* 121 */
│ │ │ │ -
208 0x118427b3u, /* 122 */
│ │ │ │ -
209 0xb4a05bc8u, /* 123 */
│ │ │ │ -
210 0xa8a4de84u, /* 124 */
│ │ │ │ -
211 0x59868000u, /* 125 */
│ │ │ │ -
212 0xaf298d05u, /* 126 */
│ │ │ │ -
213 0x0e4395d6u, /* 127 */
│ │ │ │ -
214 0x9670b12bu, /* 128 */
│ │ │ │ -
215 0x7f410000u, /* 129 */
│ │ │ │ -
216 0x00000006u, /* 130 */
│ │ │ │ -
217 0xd79f8232u, /* 131 */
│ │ │ │ -
218 0x8ea3da61u, /* 132 */
│ │ │ │ -
219 0xe066ebb2u, /* 133 */
│ │ │ │ -
220 0xf88a0000u, /* 134 */
│ │ │ │ -
221 0x00000044u, /* 135 */
│ │ │ │ -
222 0x6c3b15f9u, /* 136 */
│ │ │ │ -
223 0x926687d2u, /* 137 */
│ │ │ │ -
224 0xc40534fdu, /* 138 */
│ │ │ │ -
225 0xb5640000u, /* 139 */
│ │ │ │ -
226 0x000002acu, /* 140 */
│ │ │ │ -
227 0x3a4edbbfu, /* 141 */
│ │ │ │ -
228 0xb8014e3bu, /* 142 */
│ │ │ │ -
229 0xa83411e9u, /* 143 */
│ │ │ │ -
230 0x15e80000u, /* 144 */
│ │ │ │ -
231 0x00001abau, /* 145 */
│ │ │ │ -
232 0x4714957du, /* 146 */
│ │ │ │ -
233 0x300d0e54u, /* 147 */
│ │ │ │ -
234 0x9208b31au, /* 148 */
│ │ │ │ -
235 0xdb100000u, /* 149 */
│ │ │ │ -
236 0x00010b46u, /* 150 */
│ │ │ │ -
237 0xc6cdd6e3u, /* 151 */
│ │ │ │ -
238 0xe0828f4du, /* 152 */
│ │ │ │ -
239 0xb456ff0cu, /* 153 */
│ │ │ │ -
240 0x8ea00000u, /* 154 */
│ │ │ │ -
241 0x000a70c3u, /* 155 */
│ │ │ │ -
242 0xc40a64e6u, /* 156 */
│ │ │ │ -
243 0xc5199909u, /* 157 */
│ │ │ │ -
244 0x0b65f67du, /* 158 */
│ │ │ │ -
245 0x92400000u, /* 159 */
│ │ │ │ -
246 0x006867a5u, /* 160 */
│ │ │ │ -
247 0xa867f103u, /* 161 */
│ │ │ │ -
248 0xb2fffa5au, /* 162 */
│ │ │ │ -
249 0x71fba0e7u, /* 163 */
│ │ │ │ -
250 0xb6800000u, /* 164 */
│ │ │ │ -
251 0x04140c78u, /* 165 */
│ │ │ │ -
252 0x940f6a24u, /* 166 */
│ │ │ │ -
253 0xfdffc788u, /* 167 */
│ │ │ │ -
254 0x73d4490du, /* 168 */
│ │ │ │ -
255 0x21000000u, /* 169 */
│ │ │ │ -
256 0x28c87cb5u, /* 170 */
│ │ │ │ -
257 0xc89a2571u, /* 171 */
│ │ │ │ -
258 0xebfdcb54u, /* 172 */
│ │ │ │ -
259 0x864ada83u, /* 173 */
│ │ │ │ -
260 0x4a000000u, /* 174 */
│ │ │ │ -
261 0x00000001u, /* 175 */
│ │ │ │ -
262 0x97d4df19u, /* 176 */
│ │ │ │ -
263 0xd6057673u, /* 177 */
│ │ │ │ -
264 0x37e9f14du, /* 178 */
│ │ │ │ -
265 0x3eec8920u, /* 179 */
│ │ │ │ -
266 0xe4000000u, /* 180 */
│ │ │ │ -
267 0x0000000fu, /* 181 */
│ │ │ │ -
268 0xee50b702u, /* 182 */
│ │ │ │ -
269 0x5c36a080u, /* 183 */
│ │ │ │ -
270 0x2f236d04u, /* 184 */
│ │ │ │ -
271 0x753d5b48u, /* 185 */
│ │ │ │ -
272 0xe8000000u, /* 186 */
│ │ │ │ -
273 0x0000009fu, /* 187 */
│ │ │ │ -
274 0x4f272617u, /* 188 */
│ │ │ │ -
275 0x9a224501u, /* 189 */
│ │ │ │ -
276 0xd762422cu, /* 190 */
│ │ │ │ -
277 0x946590d9u, /* 191 */
│ │ │ │ -
278 0x10000000u, /* 192 */
│ │ │ │ -
279 0x00000639u, /* 193 */
│ │ │ │ -
280 0x17877cecu, /* 194 */
│ │ │ │ -
281 0x0556b212u, /* 195 */
│ │ │ │ -
282 0x69d695bdu, /* 196 */
│ │ │ │ -
283 0xcbf7a87au, /* 197 */
│ │ │ │ -
284 0xa0000000u, /* 198 */
│ │ │ │ -
285 0x00003e3au, /* 199 */
│ │ │ │ -
286 0xeb4ae138u, /* 200 */
│ │ │ │ -
287 0x3562f4b8u, /* 201 */
│ │ │ │ -
288 0x2261d969u, /* 202 */
│ │ │ │ -
289 0xf7ac94cau, /* 203 */
│ │ │ │ -
290 0x40000000u, /* 204 */
│ │ │ │ -
291 0x00026e4du, /* 205 */
│ │ │ │ -
292 0x30eccc32u, /* 206 */
│ │ │ │ -
293 0x15dd8f31u, /* 207 */
│ │ │ │ -
294 0x57d27e23u, /* 208 */
│ │ │ │ -
295 0xacbdcfe6u, /* 209 */
│ │ │ │ -
296 0x80000000u, /* 210 */
│ │ │ │ -
297 0x00184f03u, /* 211 */
│ │ │ │ -
298 0xe93ff9f4u, /* 212 */
│ │ │ │ -
299 0xdaa797edu, /* 213 */
│ │ │ │ -
300 0x6e38ed64u, /* 214 */
│ │ │ │ -
301 0xbf6a1f01u, /* 215 */
│ │ │ │ -
302 0x00f31627u, /* 216 */
│ │ │ │ -
303 0x1c7fc390u, /* 217 */
│ │ │ │ -
304 0x8a8bef46u, /* 218 */
│ │ │ │ -
305 0x4e3945efu, /* 219 */
│ │ │ │ -
306 0x7a25360au, /* 220 */
│ │ │ │ -
307 0x097edd87u, /* 221 */
│ │ │ │ -
308 0x1cfda3a5u, /* 222 */
│ │ │ │ -
309 0x697758bfu, /* 223 */
│ │ │ │ -
310 0x0e3cbb5au, /* 224 */
│ │ │ │ -
311 0xc5741c64u, /* 225 */
│ │ │ │ -
312 0x5ef4a747u, /* 226 */
│ │ │ │ -
313 0x21e86476u, /* 227 */
│ │ │ │ -
314 0x1ea97776u, /* 228 */
│ │ │ │ -
315 0x8e5f518bu, /* 229 */
│ │ │ │ -
316 0xb6891be8u, /* 230 */
│ │ │ │ -
317 0x00000003u, /* 231 */
│ │ │ │ -
318 0xb58e88c7u, /* 232 */
│ │ │ │ -
319 0x5313ec9du, /* 233 */
│ │ │ │ -
320 0x329eaaa1u, /* 234 */
│ │ │ │ -
321 0x8fb92f75u, /* 235 */
│ │ │ │ -
322 0x215b1710u, /* 236 */
│ │ │ │ -
323 0x00000025u, /* 237 */
│ │ │ │ -
324 0x179157c9u, /* 238 */
│ │ │ │ -
325 0x3ec73e23u, /* 239 */
│ │ │ │ -
326 0xfa32aa4fu, /* 240 */
│ │ │ │ -
327 0x9d3bda93u, /* 241 */
│ │ │ │ -
328 0x4d8ee6a0u, /* 242 */
│ │ │ │ -
329 0x00000172u, /* 243 */
│ │ │ │ -
330 0xebad6ddcu, /* 244 */
│ │ │ │ -
331 0x73c86d67u, /* 245 */
│ │ │ │ -
332 0xc5faa71cu, /* 246 */
│ │ │ │ -
333 0x245689c1u, /* 247 */
│ │ │ │ -
334 0x07950240u, /* 248 */
│ │ │ │ -
335 0x00000e7du, /* 249 */
│ │ │ │ -
336 0x34c64a9cu, /* 250 */
│ │ │ │ -
337 0x85d4460du, /* 251 */
│ │ │ │ -
338 0xbbca8719u, /* 252 */
│ │ │ │ -
339 0x6b61618au, /* 253 */
│ │ │ │ -
340 0x4bd21680u, /* 254 */
│ │ │ │ -
341 0x000090e4u, /* 255 */
│ │ │ │ -
342 0x0fbeea1du, /* 256 */
│ │ │ │ -
343 0x3a4abc89u, /* 257 */
│ │ │ │ -
344 0x55e946feu, /* 258 */
│ │ │ │ -
345 0x31cdcf66u, /* 259 */
│ │ │ │ -
346 0xf634e100u, /* 260 */
│ │ │ │ -
347 0x0005a8e8u, /* 261 */
│ │ │ │ -
348 0x9d752524u, /* 262 */
│ │ │ │ -
349 0x46eb5d5du, /* 263 */
│ │ │ │ -
350 0x5b1cc5edu, /* 264 */
│ │ │ │ -
351 0xf20a1a05u, /* 265 */
│ │ │ │ -
352 0x9e10ca00u, /* 266 */
│ │ │ │ -
353 0x00389916u, /* 267 */
│ │ │ │ -
354 0x2693736au, /* 268 */
│ │ │ │ -
355 0xc531a5a5u, /* 269 */
│ │ │ │ -
356 0x8f1fbb4bu, /* 270 */
│ │ │ │ -
357 0x74650438u, /* 271 */
│ │ │ │ -
358 0x2ca7e400u, /* 272 */
│ │ │ │ -
359 0x0235faddu, /* 273 */
│ │ │ │ -
360 0x81c2822bu, /* 274 */
│ │ │ │ -
361 0xb3f07877u, /* 275 */
│ │ │ │ -
362 0x973d50f2u, /* 276 */
│ │ │ │ -
363 0x8bf22a31u, /* 277 */
│ │ │ │ -
364 0xbe8ee800u, /* 278 */
│ │ │ │ -
365 0x161bcca7u, /* 279 */
│ │ │ │ -
366 0x119915b5u, /* 280 */
│ │ │ │ -
367 0x0764b4abu, /* 281 */
│ │ │ │ -
368 0xe8652979u, /* 282 */
│ │ │ │ -
369 0x7775a5f1u, /* 283 */
│ │ │ │ -
370 0x71951000u, /* 284 */
│ │ │ │ -
371 0xdd15fe86u, /* 285 */
│ │ │ │ -
372 0xaffad912u, /* 286 */
│ │ │ │ -
373 0x49ef0eb7u, /* 287 */
│ │ │ │ -
374 0x13f39ebeu, /* 288 */
│ │ │ │ -
375 0xaa987b6eu, /* 289 */
│ │ │ │ -
376 0x6fd2a000u, /* 290 */
│ │ │ │ -
377};
│ │ │ │ +
3#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
4static SQLRETURN _SQLGetDiagRec(SQLSMALLINT handleType,
│ │ │ │ +
5 SQLHANDLE handle,
│ │ │ │ +
6 SQLSMALLINT numRecord,
│ │ │ │ +
7 ODBC_CHAR * szSqlStat,
│ │ │ │ +
8 SQLINTEGER * pfNativeError,
│ │ │ │ +
9 ODBC_CHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* pcbErrorMsg, int wide);
│ │ │ │ +
10
│ │ │ │ +
11SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagRecW(
│ │ │ │ +
12 SQLSMALLINT handleType,
│ │ │ │ +
13 SQLHANDLE handle,
│ │ │ │ +
14 SQLSMALLINT numRecord,
│ │ │ │ +
15 SQLWCHAR * szSqlStat,
│ │ │ │ +
16 SQLINTEGER * pfNativeError,
│ │ │ │ +
17 SQLWCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* pcbErrorMsg)
│ │ │ │ +
18{
│ │ │ │ +
19 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagRecW(%d, %p, %d, %p, %p, %p, %d, %p)\n",
│ │ │ │ +
20 (int) handleType,
│ │ │ │ +
21 handle,
│ │ │ │ +
22 (int) numRecord,
│ │ │ │ +
23 szSqlStat,
│ │ │ │ +
24 pfNativeError,
│ │ │ │ +
25 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg);
│ │ │ │ +
26 return _SQLGetDiagRec(handleType,
│ │ │ │ +
27 handle,
│ │ │ │ +
28 numRecord,
│ │ │ │ +
29 (ODBC_CHAR*) szSqlStat,
│ │ │ │ +
30 pfNativeError,
│ │ │ │ +
31 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 1);
│ │ │ │ +
32}
│ │ │ │ +
33#endif
│ │ │ │ +
34
│ │ │ │ +
35SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagRec(
│ │ │ │ +
36 SQLSMALLINT handleType,
│ │ │ │ +
37 SQLHANDLE handle,
│ │ │ │ +
38 SQLSMALLINT numRecord,
│ │ │ │ +
39 SQLCHAR * szSqlStat,
│ │ │ │ +
40 SQLINTEGER * pfNativeError,
│ │ │ │ +
41 SQLCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* pcbErrorMsg)
│ │ │ │ +
42{
│ │ │ │ +
43 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagRec(%d, %p, %d, %p, %p, %p, %d, %p)\n",
│ │ │ │ +
44 (int) handleType,
│ │ │ │ +
45 handle,
│ │ │ │ +
46 (int) numRecord,
│ │ │ │ +
47 szSqlStat,
│ │ │ │ +
48 pfNativeError,
│ │ │ │ +
49 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg);
│ │ │ │ +
50#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
51 return _SQLGetDiagRec(handleType,
│ │ │ │ +
52 handle,
│ │ │ │ +
53 numRecord,
│ │ │ │ +
54 (ODBC_CHAR*) szSqlStat,
│ │ │ │ +
55 pfNativeError,
│ │ │ │ +
56 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 0);
│ │ │ │ +
57#else
│ │ │ │ +
58 return _SQLGetDiagRec(handleType,
│ │ │ │ +
59 handle,
│ │ │ │ +
60 numRecord,
│ │ │ │ +
61 szSqlStat,
│ │ │ │ +
62 pfNativeError,
│ │ │ │ +
63 szErrorMsg, cbErrorMsgMax, pcbErrorMsg);
│ │ │ │ +
64#endif
│ │ │ │ +
65}
│ │ │ │ +
66
│ │ │ │ +
67#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
68static SQLRETURN _SQLError(SQLHENV henv,
│ │ │ │ +
69 SQLHDBC hdbc,
│ │ │ │ +
70 SQLHSTMT hstmt,
│ │ │ │ +
71 ODBC_CHAR * szSqlStat,
│ │ │ │ +
72 SQLINTEGER * pfNativeError,
│ │ │ │ +
73 ODBC_CHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* pcbErrorMsg, int wide);
│ │ │ │ +
74
│ │ │ │ +
75SQLRETURN ODBC_PUBLIC ODBC_API SQLErrorW(
│ │ │ │ +
76 SQLHENV henv,
│ │ │ │ +
77 SQLHDBC hdbc,
│ │ │ │ +
78 SQLHSTMT hstmt,
│ │ │ │ +
79 SQLWCHAR * szSqlStat,
│ │ │ │ +
80 SQLINTEGER * pfNativeError,
│ │ │ │ +
81 SQLWCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* pcbErrorMsg)
│ │ │ │ +
82{
│ │ │ │ +
83 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLErrorW(%p, %p, %p, %p, %p, %p, %d, %p)\n",
│ │ │ │ +
84 henv,
│ │ │ │ +
85 hdbc,
│ │ │ │ +
86 hstmt,
│ │ │ │ +
87 szSqlStat,
│ │ │ │ +
88 pfNativeError,
│ │ │ │ +
89 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg);
│ │ │ │ +
90 return _SQLError(henv,
│ │ │ │ +
91 hdbc,
│ │ │ │ +
92 hstmt,
│ │ │ │ +
93 (ODBC_CHAR*) szSqlStat,
│ │ │ │ +
94 pfNativeError,
│ │ │ │ +
95 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 1);
│ │ │ │ +
96}
│ │ │ │ +
97#endif
│ │ │ │ +
98
│ │ │ │ +
99SQLRETURN ODBC_PUBLIC ODBC_API SQLError(
│ │ │ │ +
100 SQLHENV henv,
│ │ │ │ +
101 SQLHDBC hdbc,
│ │ │ │ +
102 SQLHSTMT hstmt,
│ │ │ │ +
103 SQLCHAR * szSqlStat,
│ │ │ │ +
104 SQLINTEGER * pfNativeError,
│ │ │ │ +
105 SQLCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* pcbErrorMsg)
│ │ │ │ +
106{
│ │ │ │ +
107 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLError(%p, %p, %p, %p, %p, %p, %d, %p)\n",
│ │ │ │ +
108 henv,
│ │ │ │ +
109 hdbc,
│ │ │ │ +
110 hstmt,
│ │ │ │ +
111 szSqlStat,
│ │ │ │ +
112 pfNativeError,
│ │ │ │ +
113 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg);
│ │ │ │ +
114#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
115 return _SQLError(henv,
│ │ │ │ +
116 hdbc,
│ │ │ │ +
117 hstmt,
│ │ │ │ +
118 (ODBC_CHAR*) szSqlStat,
│ │ │ │ +
119 pfNativeError,
│ │ │ │ +
120 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 0);
│ │ │ │ +
121#else
│ │ │ │ +
122 return _SQLError(henv,
│ │ │ │ +
123 hdbc,
│ │ │ │ +
124 hstmt,
│ │ │ │ +
125 szSqlStat,
│ │ │ │ +
126 pfNativeError,
│ │ │ │ +
127 szErrorMsg, cbErrorMsgMax, pcbErrorMsg);
│ │ │ │ +
128#endif
│ │ │ │ +
129}
│ │ │ │ +
130
│ │ │ │ +
131#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
132static SQLRETURN _SQLGetDiagField(SQLSMALLINT handleType,
│ │ │ │ +
133 SQLHANDLE handle,
│ │ │ │ +
134 SQLSMALLINT numRecord,
│ │ │ │ +
135 SQLSMALLINT diagIdentifier,
│ │ │ │ +
136 SQLPOINTER buffer,
│ │ │ │ +
137 SQLSMALLINT cbBuffer,
│ │ │ │ +
138 SQLSMALLINT * pcbBuffer, int wide);
│ │ │ │ +
139
│ │ │ │ +
140SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagFieldW(
│ │ │ │ +
141 SQLSMALLINT handleType,
│ │ │ │ +
142 SQLHANDLE handle,
│ │ │ │ +
143 SQLSMALLINT numRecord,
│ │ │ │ +
144 SQLSMALLINT diagIdentifier,
│ │ │ │ +
145 SQLPOINTER buffer,
│ │ │ │ +
146 SQLSMALLINT cbBuffer,
│ │ │ │ +
147 SQLSMALLINT * pcbBuffer)
│ │ │ │ +
148{
│ │ │ │ +
149 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagFieldW(%d, %p, %d, %d, %p, %d, %p)\n",
│ │ │ │ +
150 (int) handleType,
│ │ │ │ +
151 handle,
│ │ │ │ +
152 (int) numRecord,
│ │ │ │ +
153 (int) diagIdentifier,
│ │ │ │ +
154 buffer,
│ │ │ │ +
155 (int) cbBuffer,
│ │ │ │ +
156 pcbBuffer);
│ │ │ │ +
157 return _SQLGetDiagField(handleType,
│ │ │ │ +
158 handle,
│ │ │ │ +
159 numRecord,
│ │ │ │ +
160 diagIdentifier,
│ │ │ │ +
161 buffer,
│ │ │ │ +
162 cbBuffer,
│ │ │ │ +
163 pcbBuffer, 1);
│ │ │ │ +
164}
│ │ │ │ +
165#endif
│ │ │ │ +
166
│ │ │ │ +
167SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagField(
│ │ │ │ +
168 SQLSMALLINT handleType,
│ │ │ │ +
169 SQLHANDLE handle,
│ │ │ │ +
170 SQLSMALLINT numRecord,
│ │ │ │ +
171 SQLSMALLINT diagIdentifier,
│ │ │ │ +
172 SQLPOINTER buffer,
│ │ │ │ +
173 SQLSMALLINT cbBuffer,
│ │ │ │ +
174 SQLSMALLINT * pcbBuffer)
│ │ │ │ +
175{
│ │ │ │ +
176 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagField(%d, %p, %d, %d, %p, %d, %p)\n",
│ │ │ │ +
177 (int) handleType,
│ │ │ │ +
178 handle,
│ │ │ │ +
179 (int) numRecord,
│ │ │ │ +
180 (int) diagIdentifier,
│ │ │ │ +
181 buffer,
│ │ │ │ +
182 (int) cbBuffer,
│ │ │ │ +
183 pcbBuffer);
│ │ │ │ +
184#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
185 return _SQLGetDiagField(handleType,
│ │ │ │ +
186 handle,
│ │ │ │ +
187 numRecord,
│ │ │ │ +
188 diagIdentifier,
│ │ │ │ +
189 buffer,
│ │ │ │ +
190 cbBuffer,
│ │ │ │ +
191 pcbBuffer, 0);
│ │ │ │ +
192#else
│ │ │ │ +
193 return _SQLGetDiagField(handleType,
│ │ │ │ +
194 handle,
│ │ │ │ +
195 numRecord,
│ │ │ │ +
196 diagIdentifier,
│ │ │ │ +
197 buffer,
│ │ │ │ +
198 cbBuffer,
│ │ │ │ +
199 pcbBuffer);
│ │ │ │ +
200#endif
│ │ │ │ +
201}
│ │ │ │ +
202
│ │ │ │ +
203#define tdsdump_log TDSDUMP_LOG_FAST
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,386 +1,224 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _s_r_c │ │ │ │ │ - * _t_d_s │ │ │ │ │ -num_limits.h │ │ │ │ │ -1#define LIMIT_INDEXES_ADJUST 4 │ │ │ │ │ + * _o_d_b_c │ │ │ │ │ +error_export.h │ │ │ │ │ +1#undef tdsdump_log │ │ │ │ │ 2 │ │ │ │ │ -3static const signed char limit_indexes[79]= { │ │ │ │ │ -4 0, /* 0 */ │ │ │ │ │ -5 -3, /* 1 */ │ │ │ │ │ -6 -6, /* 2 */ │ │ │ │ │ -7 -9, /* 3 */ │ │ │ │ │ -8 -12, /* 4 */ │ │ │ │ │ -9 -15, /* 5 */ │ │ │ │ │ -10 -18, /* 6 */ │ │ │ │ │ -11 -21, /* 7 */ │ │ │ │ │ -12 -24, /* 8 */ │ │ │ │ │ -13 -27, /* 9 */ │ │ │ │ │ -14 -30, /* 10 */ │ │ │ │ │ -15 -32, /* 11 */ │ │ │ │ │ -16 -34, /* 12 */ │ │ │ │ │ -17 -36, /* 13 */ │ │ │ │ │ -18 -38, /* 14 */ │ │ │ │ │ -19 -40, /* 15 */ │ │ │ │ │ -20 -42, /* 16 */ │ │ │ │ │ -21 -44, /* 17 */ │ │ │ │ │ -22 -46, /* 18 */ │ │ │ │ │ -23 -48, /* 19 */ │ │ │ │ │ -24 -50, /* 20 */ │ │ │ │ │ -25 -51, /* 21 */ │ │ │ │ │ -26 -52, /* 22 */ │ │ │ │ │ -27 -53, /* 23 */ │ │ │ │ │ -28 -54, /* 24 */ │ │ │ │ │ -29 -55, /* 25 */ │ │ │ │ │ -30 -56, /* 26 */ │ │ │ │ │ -31 -57, /* 27 */ │ │ │ │ │ -32 -58, /* 28 */ │ │ │ │ │ -33 -59, /* 29 */ │ │ │ │ │ -34 -59, /* 30 */ │ │ │ │ │ -35 -59, /* 31 */ │ │ │ │ │ -36 -59, /* 32 */ │ │ │ │ │ -37 -60, /* 33 */ │ │ │ │ │ -38 -61, /* 34 */ │ │ │ │ │ -39 -62, /* 35 */ │ │ │ │ │ -40 -63, /* 36 */ │ │ │ │ │ -41 -64, /* 37 */ │ │ │ │ │ -42 -65, /* 38 */ │ │ │ │ │ -43 -66, /* 39 */ │ │ │ │ │ -44 -66, /* 40 */ │ │ │ │ │ -45 -66, /* 41 */ │ │ │ │ │ -46 -66, /* 42 */ │ │ │ │ │ -47 -66, /* 43 */ │ │ │ │ │ -48 -66, /* 44 */ │ │ │ │ │ -49 -66, /* 45 */ │ │ │ │ │ -50 -66, /* 46 */ │ │ │ │ │ -51 -66, /* 47 */ │ │ │ │ │ -52 -66, /* 48 */ │ │ │ │ │ -53 -66, /* 49 */ │ │ │ │ │ -54 -65, /* 50 */ │ │ │ │ │ -55 -64, /* 51 */ │ │ │ │ │ -56 -63, /* 52 */ │ │ │ │ │ -57 -62, /* 53 */ │ │ │ │ │ -58 -61, /* 54 */ │ │ │ │ │ -59 -60, /* 55 */ │ │ │ │ │ -60 -59, /* 56 */ │ │ │ │ │ -61 -58, /* 57 */ │ │ │ │ │ -62 -57, /* 58 */ │ │ │ │ │ -63 -55, /* 59 */ │ │ │ │ │ -64 -53, /* 60 */ │ │ │ │ │ -65 -51, /* 61 */ │ │ │ │ │ -66 -49, /* 62 */ │ │ │ │ │ -67 -47, /* 63 */ │ │ │ │ │ -68 -45, /* 64 */ │ │ │ │ │ -69 -44, /* 65 */ │ │ │ │ │ -70 -43, /* 66 */ │ │ │ │ │ -71 -42, /* 67 */ │ │ │ │ │ -72 -41, /* 68 */ │ │ │ │ │ -73 -39, /* 69 */ │ │ │ │ │ -74 -37, /* 70 */ │ │ │ │ │ -75 -35, /* 71 */ │ │ │ │ │ -76 -33, /* 72 */ │ │ │ │ │ -77 -31, /* 73 */ │ │ │ │ │ -78 -29, /* 74 */ │ │ │ │ │ -79 -27, /* 75 */ │ │ │ │ │ -80 -25, /* 76 */ │ │ │ │ │ -81 -23, /* 77 */ │ │ │ │ │ -82 -21, /* 78 */ │ │ │ │ │ -83}; │ │ │ │ │ -84 │ │ │ │ │ -85static const TDS_WORD limits[]= { │ │ │ │ │ -86 0x00000001u, /* 0 */ │ │ │ │ │ -87 0x0000000au, /* 1 */ │ │ │ │ │ -88 0x00000064u, /* 2 */ │ │ │ │ │ -89 0x000003e8u, /* 3 */ │ │ │ │ │ -90 0x00002710u, /* 4 */ │ │ │ │ │ -91 0x000186a0u, /* 5 */ │ │ │ │ │ -92 0x000f4240u, /* 6 */ │ │ │ │ │ -93 0x00989680u, /* 7 */ │ │ │ │ │ -94 0x05f5e100u, /* 8 */ │ │ │ │ │ -95 0x3b9aca00u, /* 9 */ │ │ │ │ │ -96 0x00000002u, /* 10 */ │ │ │ │ │ -97 0x540be400u, /* 11 */ │ │ │ │ │ -98 0x00000017u, /* 12 */ │ │ │ │ │ -99 0x4876e800u, /* 13 */ │ │ │ │ │ -100 0x000000e8u, /* 14 */ │ │ │ │ │ -101 0xd4a51000u, /* 15 */ │ │ │ │ │ -102 0x00000918u, /* 16 */ │ │ │ │ │ -103 0x4e72a000u, /* 17 */ │ │ │ │ │ -104 0x00005af3u, /* 18 */ │ │ │ │ │ -105 0x107a4000u, /* 19 */ │ │ │ │ │ -106 0x00038d7eu, /* 20 */ │ │ │ │ │ -107 0xa4c68000u, /* 21 */ │ │ │ │ │ -108 0x002386f2u, /* 22 */ │ │ │ │ │ -109 0x6fc10000u, /* 23 */ │ │ │ │ │ -110 0x01634578u, /* 24 */ │ │ │ │ │ -111 0x5d8a0000u, /* 25 */ │ │ │ │ │ -112 0x0de0b6b3u, /* 26 */ │ │ │ │ │ -113 0xa7640000u, /* 27 */ │ │ │ │ │ -114 0x8ac72304u, /* 28 */ │ │ │ │ │ -115 0x89e80000u, /* 29 */ │ │ │ │ │ -116 0x00000005u, /* 30 */ │ │ │ │ │ -117 0x6bc75e2du, /* 31 */ │ │ │ │ │ -118 0x63100000u, /* 32 */ │ │ │ │ │ -119 0x00000036u, /* 33 */ │ │ │ │ │ -120 0x35c9adc5u, /* 34 */ │ │ │ │ │ -121 0xdea00000u, /* 35 */ │ │ │ │ │ -122 0x0000021eu, /* 36 */ │ │ │ │ │ -123 0x19e0c9bau, /* 37 */ │ │ │ │ │ -124 0xb2400000u, /* 38 */ │ │ │ │ │ -125 0x0000152du, /* 39 */ │ │ │ │ │ -126 0x02c7e14au, /* 40 */ │ │ │ │ │ -127 0xf6800000u, /* 41 */ │ │ │ │ │ -128 0x0000d3c2u, /* 42 */ │ │ │ │ │ -129 0x1bceccedu, /* 43 */ │ │ │ │ │ -130 0xa1000000u, /* 44 */ │ │ │ │ │ -131 0x00084595u, /* 45 */ │ │ │ │ │ -132 0x16140148u, /* 46 */ │ │ │ │ │ -133 0x4a000000u, /* 47 */ │ │ │ │ │ -134 0x0052b7d2u, /* 48 */ │ │ │ │ │ -135 0xdcc80cd2u, /* 49 */ │ │ │ │ │ -136 0xe4000000u, /* 50 */ │ │ │ │ │ -137 0x033b2e3cu, /* 51 */ │ │ │ │ │ -138 0x9fd0803cu, /* 52 */ │ │ │ │ │ -139 0xe8000000u, /* 53 */ │ │ │ │ │ -140 0x204fce5eu, /* 54 */ │ │ │ │ │ -141 0x3e250261u, /* 55 */ │ │ │ │ │ -142 0x10000000u, /* 56 */ │ │ │ │ │ -143 0x00000001u, /* 57 */ │ │ │ │ │ -144 0x431e0faeu, /* 58 */ │ │ │ │ │ -145 0x6d7217cau, /* 59 */ │ │ │ │ │ -146 0xa0000000u, /* 60 */ │ │ │ │ │ -147 0x0000000cu, /* 61 */ │ │ │ │ │ -148 0x9f2c9cd0u, /* 62 */ │ │ │ │ │ -149 0x4674edeau, /* 63 */ │ │ │ │ │ -150 0x40000000u, /* 64 */ │ │ │ │ │ -151 0x0000007eu, /* 65 */ │ │ │ │ │ -152 0x37be2022u, /* 66 */ │ │ │ │ │ -153 0xc0914b26u, /* 67 */ │ │ │ │ │ -154 0x80000000u, /* 68 */ │ │ │ │ │ -155 0x000004eeu, /* 69 */ │ │ │ │ │ -156 0x2d6d415bu, /* 70 */ │ │ │ │ │ -157 0x85acef81u, /* 71 */ │ │ │ │ │ -158 0x0000314du, /* 72 */ │ │ │ │ │ -159 0xc6448d93u, /* 73 */ │ │ │ │ │ -160 0x38c15b0au, /* 74 */ │ │ │ │ │ -161 0x0001ed09u, /* 75 */ │ │ │ │ │ -162 0xbead87c0u, /* 76 */ │ │ │ │ │ -163 0x378d8e64u, /* 77 */ │ │ │ │ │ -164 0x00134261u, /* 78 */ │ │ │ │ │ -165 0x72c74d82u, /* 79 */ │ │ │ │ │ -166 0x2b878fe8u, /* 80 */ │ │ │ │ │ -167 0x00c097ceu, /* 81 */ │ │ │ │ │ -168 0x7bc90715u, /* 82 */ │ │ │ │ │ -169 0xb34b9f10u, /* 83 */ │ │ │ │ │ -170 0x0785ee10u, /* 84 */ │ │ │ │ │ -171 0xd5da46d9u, /* 85 */ │ │ │ │ │ -172 0x00f436a0u, /* 86 */ │ │ │ │ │ -173 0x4b3b4ca8u, /* 87 */ │ │ │ │ │ -174 0x5a86c47au, /* 88 */ │ │ │ │ │ -175 0x098a2240u, /* 89 */ │ │ │ │ │ -176 0x00000002u, /* 90 */ │ │ │ │ │ -177 0xf050fe93u, /* 91 */ │ │ │ │ │ -178 0x8943acc4u, /* 92 */ │ │ │ │ │ -179 0x5f655680u, /* 93 */ │ │ │ │ │ -180 0x0000001du, /* 94 */ │ │ │ │ │ -181 0x6329f1c3u, /* 95 */ │ │ │ │ │ -182 0x5ca4bfabu, /* 96 */ │ │ │ │ │ -183 0xb9f56100u, /* 97 */ │ │ │ │ │ -184 0x00000125u, /* 98 */ │ │ │ │ │ -185 0xdfa371a1u, /* 99 */ │ │ │ │ │ -186 0x9e6f7cb5u, /* 100 */ │ │ │ │ │ -187 0x4395ca00u, /* 101 */ │ │ │ │ │ -188 0x00000b7au, /* 102 */ │ │ │ │ │ -189 0xbc627050u, /* 103 */ │ │ │ │ │ -190 0x305adf14u, /* 104 */ │ │ │ │ │ -191 0xa3d9e400u, /* 105 */ │ │ │ │ │ -192 0x000072cbu, /* 106 */ │ │ │ │ │ -193 0x5bd86321u, /* 107 */ │ │ │ │ │ -194 0xe38cb6ceu, /* 108 */ │ │ │ │ │ -195 0x6682e800u, /* 109 */ │ │ │ │ │ -196 0x00047bf1u, /* 110 */ │ │ │ │ │ -197 0x9673df52u, /* 111 */ │ │ │ │ │ -198 0xe37f2410u, /* 112 */ │ │ │ │ │ -199 0x011d1000u, /* 113 */ │ │ │ │ │ -200 0x002cd76fu, /* 114 */ │ │ │ │ │ -201 0xe086b93cu, /* 115 */ │ │ │ │ │ -202 0xe2f768a0u, /* 116 */ │ │ │ │ │ -203 0x0b22a000u, /* 117 */ │ │ │ │ │ -204 0x01c06a5eu, /* 118 */ │ │ │ │ │ -205 0xc5433c60u, /* 119 */ │ │ │ │ │ -206 0xddaa1640u, /* 120 */ │ │ │ │ │ -207 0x6f5a4000u, /* 121 */ │ │ │ │ │ -208 0x118427b3u, /* 122 */ │ │ │ │ │ -209 0xb4a05bc8u, /* 123 */ │ │ │ │ │ -210 0xa8a4de84u, /* 124 */ │ │ │ │ │ -211 0x59868000u, /* 125 */ │ │ │ │ │ -212 0xaf298d05u, /* 126 */ │ │ │ │ │ -213 0x0e4395d6u, /* 127 */ │ │ │ │ │ -214 0x9670b12bu, /* 128 */ │ │ │ │ │ -215 0x7f410000u, /* 129 */ │ │ │ │ │ -216 0x00000006u, /* 130 */ │ │ │ │ │ -217 0xd79f8232u, /* 131 */ │ │ │ │ │ -218 0x8ea3da61u, /* 132 */ │ │ │ │ │ -219 0xe066ebb2u, /* 133 */ │ │ │ │ │ -220 0xf88a0000u, /* 134 */ │ │ │ │ │ -221 0x00000044u, /* 135 */ │ │ │ │ │ -222 0x6c3b15f9u, /* 136 */ │ │ │ │ │ -223 0x926687d2u, /* 137 */ │ │ │ │ │ -224 0xc40534fdu, /* 138 */ │ │ │ │ │ -225 0xb5640000u, /* 139 */ │ │ │ │ │ -226 0x000002acu, /* 140 */ │ │ │ │ │ -227 0x3a4edbbfu, /* 141 */ │ │ │ │ │ -228 0xb8014e3bu, /* 142 */ │ │ │ │ │ -229 0xa83411e9u, /* 143 */ │ │ │ │ │ -230 0x15e80000u, /* 144 */ │ │ │ │ │ -231 0x00001abau, /* 145 */ │ │ │ │ │ -232 0x4714957du, /* 146 */ │ │ │ │ │ -233 0x300d0e54u, /* 147 */ │ │ │ │ │ -234 0x9208b31au, /* 148 */ │ │ │ │ │ -235 0xdb100000u, /* 149 */ │ │ │ │ │ -236 0x00010b46u, /* 150 */ │ │ │ │ │ -237 0xc6cdd6e3u, /* 151 */ │ │ │ │ │ -238 0xe0828f4du, /* 152 */ │ │ │ │ │ -239 0xb456ff0cu, /* 153 */ │ │ │ │ │ -240 0x8ea00000u, /* 154 */ │ │ │ │ │ -241 0x000a70c3u, /* 155 */ │ │ │ │ │ -242 0xc40a64e6u, /* 156 */ │ │ │ │ │ -243 0xc5199909u, /* 157 */ │ │ │ │ │ -244 0x0b65f67du, /* 158 */ │ │ │ │ │ -245 0x92400000u, /* 159 */ │ │ │ │ │ -246 0x006867a5u, /* 160 */ │ │ │ │ │ -247 0xa867f103u, /* 161 */ │ │ │ │ │ -248 0xb2fffa5au, /* 162 */ │ │ │ │ │ -249 0x71fba0e7u, /* 163 */ │ │ │ │ │ -250 0xb6800000u, /* 164 */ │ │ │ │ │ -251 0x04140c78u, /* 165 */ │ │ │ │ │ -252 0x940f6a24u, /* 166 */ │ │ │ │ │ -253 0xfdffc788u, /* 167 */ │ │ │ │ │ -254 0x73d4490du, /* 168 */ │ │ │ │ │ -255 0x21000000u, /* 169 */ │ │ │ │ │ -256 0x28c87cb5u, /* 170 */ │ │ │ │ │ -257 0xc89a2571u, /* 171 */ │ │ │ │ │ -258 0xebfdcb54u, /* 172 */ │ │ │ │ │ -259 0x864ada83u, /* 173 */ │ │ │ │ │ -260 0x4a000000u, /* 174 */ │ │ │ │ │ -261 0x00000001u, /* 175 */ │ │ │ │ │ -262 0x97d4df19u, /* 176 */ │ │ │ │ │ -263 0xd6057673u, /* 177 */ │ │ │ │ │ -264 0x37e9f14du, /* 178 */ │ │ │ │ │ -265 0x3eec8920u, /* 179 */ │ │ │ │ │ -266 0xe4000000u, /* 180 */ │ │ │ │ │ -267 0x0000000fu, /* 181 */ │ │ │ │ │ -268 0xee50b702u, /* 182 */ │ │ │ │ │ -269 0x5c36a080u, /* 183 */ │ │ │ │ │ -270 0x2f236d04u, /* 184 */ │ │ │ │ │ -271 0x753d5b48u, /* 185 */ │ │ │ │ │ -272 0xe8000000u, /* 186 */ │ │ │ │ │ -273 0x0000009fu, /* 187 */ │ │ │ │ │ -274 0x4f272617u, /* 188 */ │ │ │ │ │ -275 0x9a224501u, /* 189 */ │ │ │ │ │ -276 0xd762422cu, /* 190 */ │ │ │ │ │ -277 0x946590d9u, /* 191 */ │ │ │ │ │ -278 0x10000000u, /* 192 */ │ │ │ │ │ -279 0x00000639u, /* 193 */ │ │ │ │ │ -280 0x17877cecu, /* 194 */ │ │ │ │ │ -281 0x0556b212u, /* 195 */ │ │ │ │ │ -282 0x69d695bdu, /* 196 */ │ │ │ │ │ -283 0xcbf7a87au, /* 197 */ │ │ │ │ │ -284 0xa0000000u, /* 198 */ │ │ │ │ │ -285 0x00003e3au, /* 199 */ │ │ │ │ │ -286 0xeb4ae138u, /* 200 */ │ │ │ │ │ -287 0x3562f4b8u, /* 201 */ │ │ │ │ │ -288 0x2261d969u, /* 202 */ │ │ │ │ │ -289 0xf7ac94cau, /* 203 */ │ │ │ │ │ -290 0x40000000u, /* 204 */ │ │ │ │ │ -291 0x00026e4du, /* 205 */ │ │ │ │ │ -292 0x30eccc32u, /* 206 */ │ │ │ │ │ -293 0x15dd8f31u, /* 207 */ │ │ │ │ │ -294 0x57d27e23u, /* 208 */ │ │ │ │ │ -295 0xacbdcfe6u, /* 209 */ │ │ │ │ │ -296 0x80000000u, /* 210 */ │ │ │ │ │ -297 0x00184f03u, /* 211 */ │ │ │ │ │ -298 0xe93ff9f4u, /* 212 */ │ │ │ │ │ -299 0xdaa797edu, /* 213 */ │ │ │ │ │ -300 0x6e38ed64u, /* 214 */ │ │ │ │ │ -301 0xbf6a1f01u, /* 215 */ │ │ │ │ │ -302 0x00f31627u, /* 216 */ │ │ │ │ │ -303 0x1c7fc390u, /* 217 */ │ │ │ │ │ -304 0x8a8bef46u, /* 218 */ │ │ │ │ │ -305 0x4e3945efu, /* 219 */ │ │ │ │ │ -306 0x7a25360au, /* 220 */ │ │ │ │ │ -307 0x097edd87u, /* 221 */ │ │ │ │ │ -308 0x1cfda3a5u, /* 222 */ │ │ │ │ │ -309 0x697758bfu, /* 223 */ │ │ │ │ │ -310 0x0e3cbb5au, /* 224 */ │ │ │ │ │ -311 0xc5741c64u, /* 225 */ │ │ │ │ │ -312 0x5ef4a747u, /* 226 */ │ │ │ │ │ -313 0x21e86476u, /* 227 */ │ │ │ │ │ -314 0x1ea97776u, /* 228 */ │ │ │ │ │ -315 0x8e5f518bu, /* 229 */ │ │ │ │ │ -316 0xb6891be8u, /* 230 */ │ │ │ │ │ -317 0x00000003u, /* 231 */ │ │ │ │ │ -318 0xb58e88c7u, /* 232 */ │ │ │ │ │ -319 0x5313ec9du, /* 233 */ │ │ │ │ │ -320 0x329eaaa1u, /* 234 */ │ │ │ │ │ -321 0x8fb92f75u, /* 235 */ │ │ │ │ │ -322 0x215b1710u, /* 236 */ │ │ │ │ │ -323 0x00000025u, /* 237 */ │ │ │ │ │ -324 0x179157c9u, /* 238 */ │ │ │ │ │ -325 0x3ec73e23u, /* 239 */ │ │ │ │ │ -326 0xfa32aa4fu, /* 240 */ │ │ │ │ │ -327 0x9d3bda93u, /* 241 */ │ │ │ │ │ -328 0x4d8ee6a0u, /* 242 */ │ │ │ │ │ -329 0x00000172u, /* 243 */ │ │ │ │ │ -330 0xebad6ddcu, /* 244 */ │ │ │ │ │ -331 0x73c86d67u, /* 245 */ │ │ │ │ │ -332 0xc5faa71cu, /* 246 */ │ │ │ │ │ -333 0x245689c1u, /* 247 */ │ │ │ │ │ -334 0x07950240u, /* 248 */ │ │ │ │ │ -335 0x00000e7du, /* 249 */ │ │ │ │ │ -336 0x34c64a9cu, /* 250 */ │ │ │ │ │ -337 0x85d4460du, /* 251 */ │ │ │ │ │ -338 0xbbca8719u, /* 252 */ │ │ │ │ │ -339 0x6b61618au, /* 253 */ │ │ │ │ │ -340 0x4bd21680u, /* 254 */ │ │ │ │ │ -341 0x000090e4u, /* 255 */ │ │ │ │ │ -342 0x0fbeea1du, /* 256 */ │ │ │ │ │ -343 0x3a4abc89u, /* 257 */ │ │ │ │ │ -344 0x55e946feu, /* 258 */ │ │ │ │ │ -345 0x31cdcf66u, /* 259 */ │ │ │ │ │ -346 0xf634e100u, /* 260 */ │ │ │ │ │ -347 0x0005a8e8u, /* 261 */ │ │ │ │ │ -348 0x9d752524u, /* 262 */ │ │ │ │ │ -349 0x46eb5d5du, /* 263 */ │ │ │ │ │ -350 0x5b1cc5edu, /* 264 */ │ │ │ │ │ -351 0xf20a1a05u, /* 265 */ │ │ │ │ │ -352 0x9e10ca00u, /* 266 */ │ │ │ │ │ -353 0x00389916u, /* 267 */ │ │ │ │ │ -354 0x2693736au, /* 268 */ │ │ │ │ │ -355 0xc531a5a5u, /* 269 */ │ │ │ │ │ -356 0x8f1fbb4bu, /* 270 */ │ │ │ │ │ -357 0x74650438u, /* 271 */ │ │ │ │ │ -358 0x2ca7e400u, /* 272 */ │ │ │ │ │ -359 0x0235faddu, /* 273 */ │ │ │ │ │ -360 0x81c2822bu, /* 274 */ │ │ │ │ │ -361 0xb3f07877u, /* 275 */ │ │ │ │ │ -362 0x973d50f2u, /* 276 */ │ │ │ │ │ -363 0x8bf22a31u, /* 277 */ │ │ │ │ │ -364 0xbe8ee800u, /* 278 */ │ │ │ │ │ -365 0x161bcca7u, /* 279 */ │ │ │ │ │ -366 0x119915b5u, /* 280 */ │ │ │ │ │ -367 0x0764b4abu, /* 281 */ │ │ │ │ │ -368 0xe8652979u, /* 282 */ │ │ │ │ │ -369 0x7775a5f1u, /* 283 */ │ │ │ │ │ -370 0x71951000u, /* 284 */ │ │ │ │ │ -371 0xdd15fe86u, /* 285 */ │ │ │ │ │ -372 0xaffad912u, /* 286 */ │ │ │ │ │ -373 0x49ef0eb7u, /* 287 */ │ │ │ │ │ -374 0x13f39ebeu, /* 288 */ │ │ │ │ │ -375 0xaa987b6eu, /* 289 */ │ │ │ │ │ -376 0x6fd2a000u, /* 290 */ │ │ │ │ │ -377}; │ │ │ │ │ +3#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +4static SQLRETURN _SQLGetDiagRec(SQLSMALLINT handleType, │ │ │ │ │ +5 SQLHANDLE handle, │ │ │ │ │ +6 SQLSMALLINT numRecord, │ │ │ │ │ +7 ODBC_CHAR * szSqlStat, │ │ │ │ │ +8 SQLINTEGER * pfNativeError, │ │ │ │ │ +9 ODBC_CHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* │ │ │ │ │ +pcbErrorMsg, int wide); │ │ │ │ │ +10 │ │ │ │ │ +11SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagRecW( │ │ │ │ │ +12 SQLSMALLINT handleType, │ │ │ │ │ +13 SQLHANDLE handle, │ │ │ │ │ +14 SQLSMALLINT numRecord, │ │ │ │ │ +15 SQLWCHAR * szSqlStat, │ │ │ │ │ +16 SQLINTEGER * pfNativeError, │ │ │ │ │ +17 SQLWCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* │ │ │ │ │ +pcbErrorMsg) │ │ │ │ │ +18{ │ │ │ │ │ +19 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagRecW(%d, %p, %d, %p, %p, %p, %d, │ │ │ │ │ +%p)\n", │ │ │ │ │ +20 (int) handleType, │ │ │ │ │ +21 handle, │ │ │ │ │ +22 (int) numRecord, │ │ │ │ │ +23 szSqlStat, │ │ │ │ │ +24 pfNativeError, │ │ │ │ │ +25 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg); │ │ │ │ │ +26 return _SQLGetDiagRec(handleType, │ │ │ │ │ +27 handle, │ │ │ │ │ +28 numRecord, │ │ │ │ │ +29 (ODBC_CHAR*) szSqlStat, │ │ │ │ │ +30 pfNativeError, │ │ │ │ │ +31 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 1); │ │ │ │ │ +32} │ │ │ │ │ +33#endif │ │ │ │ │ +34 │ │ │ │ │ +35SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagRec( │ │ │ │ │ +36 SQLSMALLINT handleType, │ │ │ │ │ +37 SQLHANDLE handle, │ │ │ │ │ +38 SQLSMALLINT numRecord, │ │ │ │ │ +39 SQLCHAR * szSqlStat, │ │ │ │ │ +40 SQLINTEGER * pfNativeError, │ │ │ │ │ +41 SQLCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* │ │ │ │ │ +pcbErrorMsg) │ │ │ │ │ +42{ │ │ │ │ │ +43 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagRec(%d, %p, %d, %p, %p, %p, %d, │ │ │ │ │ +%p)\n", │ │ │ │ │ +44 (int) handleType, │ │ │ │ │ +45 handle, │ │ │ │ │ +46 (int) numRecord, │ │ │ │ │ +47 szSqlStat, │ │ │ │ │ +48 pfNativeError, │ │ │ │ │ +49 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg); │ │ │ │ │ +50#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +51 return _SQLGetDiagRec(handleType, │ │ │ │ │ +52 handle, │ │ │ │ │ +53 numRecord, │ │ │ │ │ +54 (ODBC_CHAR*) szSqlStat, │ │ │ │ │ +55 pfNativeError, │ │ │ │ │ +56 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 0); │ │ │ │ │ +57#else │ │ │ │ │ +58 return _SQLGetDiagRec(handleType, │ │ │ │ │ +59 handle, │ │ │ │ │ +60 numRecord, │ │ │ │ │ +61 szSqlStat, │ │ │ │ │ +62 pfNativeError, │ │ │ │ │ +63 szErrorMsg, cbErrorMsgMax, pcbErrorMsg); │ │ │ │ │ +64#endif │ │ │ │ │ +65} │ │ │ │ │ +66 │ │ │ │ │ +67#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +68static SQLRETURN _SQLError(SQLHENV henv, │ │ │ │ │ +69 SQLHDBC hdbc, │ │ │ │ │ +70 SQLHSTMT hstmt, │ │ │ │ │ +71 ODBC_CHAR * szSqlStat, │ │ │ │ │ +72 SQLINTEGER * pfNativeError, │ │ │ │ │ +73 ODBC_CHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* │ │ │ │ │ +pcbErrorMsg, int wide); │ │ │ │ │ +74 │ │ │ │ │ +75SQLRETURN ODBC_PUBLIC ODBC_API SQLErrorW( │ │ │ │ │ +76 SQLHENV henv, │ │ │ │ │ +77 SQLHDBC hdbc, │ │ │ │ │ +78 SQLHSTMT hstmt, │ │ │ │ │ +79 SQLWCHAR * szSqlStat, │ │ │ │ │ +80 SQLINTEGER * pfNativeError, │ │ │ │ │ +81 SQLWCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* │ │ │ │ │ +pcbErrorMsg) │ │ │ │ │ +82{ │ │ │ │ │ +83 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLErrorW(%p, %p, %p, %p, %p, %p, %d, │ │ │ │ │ +%p)\n", │ │ │ │ │ +84 henv, │ │ │ │ │ +85 hdbc, │ │ │ │ │ +86 hstmt, │ │ │ │ │ +87 szSqlStat, │ │ │ │ │ +88 pfNativeError, │ │ │ │ │ +89 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg); │ │ │ │ │ +90 return _SQLError(henv, │ │ │ │ │ +91 hdbc, │ │ │ │ │ +92 hstmt, │ │ │ │ │ +93 (ODBC_CHAR*) szSqlStat, │ │ │ │ │ +94 pfNativeError, │ │ │ │ │ +95 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 1); │ │ │ │ │ +96} │ │ │ │ │ +97#endif │ │ │ │ │ +98 │ │ │ │ │ +99SQLRETURN ODBC_PUBLIC ODBC_API SQLError( │ │ │ │ │ +100 SQLHENV henv, │ │ │ │ │ +101 SQLHDBC hdbc, │ │ │ │ │ +102 SQLHSTMT hstmt, │ │ │ │ │ +103 SQLCHAR * szSqlStat, │ │ │ │ │ +104 SQLINTEGER * pfNativeError, │ │ │ │ │ +105 SQLCHAR * szErrorMsg, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT FAR* │ │ │ │ │ +pcbErrorMsg) │ │ │ │ │ +106{ │ │ │ │ │ +107 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLError(%p, %p, %p, %p, %p, %p, %d, │ │ │ │ │ +%p)\n", │ │ │ │ │ +108 henv, │ │ │ │ │ +109 hdbc, │ │ │ │ │ +110 hstmt, │ │ │ │ │ +111 szSqlStat, │ │ │ │ │ +112 pfNativeError, │ │ │ │ │ +113 szErrorMsg, (int) cbErrorMsgMax, pcbErrorMsg); │ │ │ │ │ +114#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +115 return _SQLError(henv, │ │ │ │ │ +116 hdbc, │ │ │ │ │ +117 hstmt, │ │ │ │ │ +118 (ODBC_CHAR*) szSqlStat, │ │ │ │ │ +119 pfNativeError, │ │ │ │ │ +120 (ODBC_CHAR*) szErrorMsg, cbErrorMsgMax, pcbErrorMsg, 0); │ │ │ │ │ +121#else │ │ │ │ │ +122 return _SQLError(henv, │ │ │ │ │ +123 hdbc, │ │ │ │ │ +124 hstmt, │ │ │ │ │ +125 szSqlStat, │ │ │ │ │ +126 pfNativeError, │ │ │ │ │ +127 szErrorMsg, cbErrorMsgMax, pcbErrorMsg); │ │ │ │ │ +128#endif │ │ │ │ │ +129} │ │ │ │ │ +130 │ │ │ │ │ +131#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +132static SQLRETURN _SQLGetDiagField(SQLSMALLINT handleType, │ │ │ │ │ +133 SQLHANDLE handle, │ │ │ │ │ +134 SQLSMALLINT numRecord, │ │ │ │ │ +135 SQLSMALLINT diagIdentifier, │ │ │ │ │ +136 SQLPOINTER buffer, │ │ │ │ │ +137 SQLSMALLINT cbBuffer, │ │ │ │ │ +138 SQLSMALLINT * pcbBuffer, int wide); │ │ │ │ │ +139 │ │ │ │ │ +140SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagFieldW( │ │ │ │ │ +141 SQLSMALLINT handleType, │ │ │ │ │ +142 SQLHANDLE handle, │ │ │ │ │ +143 SQLSMALLINT numRecord, │ │ │ │ │ +144 SQLSMALLINT diagIdentifier, │ │ │ │ │ +145 SQLPOINTER buffer, │ │ │ │ │ +146 SQLSMALLINT cbBuffer, │ │ │ │ │ +147 SQLSMALLINT * pcbBuffer) │ │ │ │ │ +148{ │ │ │ │ │ +149 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagFieldW(%d, %p, %d, %d, %p, %d, │ │ │ │ │ +%p)\n", │ │ │ │ │ +150 (int) handleType, │ │ │ │ │ +151 handle, │ │ │ │ │ +152 (int) numRecord, │ │ │ │ │ +153 (int) diagIdentifier, │ │ │ │ │ +154 buffer, │ │ │ │ │ +155 (int) cbBuffer, │ │ │ │ │ +156 pcbBuffer); │ │ │ │ │ +157 return _SQLGetDiagField(handleType, │ │ │ │ │ +158 handle, │ │ │ │ │ +159 numRecord, │ │ │ │ │ +160 diagIdentifier, │ │ │ │ │ +161 buffer, │ │ │ │ │ +162 cbBuffer, │ │ │ │ │ +163 pcbBuffer, 1); │ │ │ │ │ +164} │ │ │ │ │ +165#endif │ │ │ │ │ +166 │ │ │ │ │ +167SQLRETURN ODBC_PUBLIC ODBC_API SQLGetDiagField( │ │ │ │ │ +168 SQLSMALLINT handleType, │ │ │ │ │ +169 SQLHANDLE handle, │ │ │ │ │ +170 SQLSMALLINT numRecord, │ │ │ │ │ +171 SQLSMALLINT diagIdentifier, │ │ │ │ │ +172 SQLPOINTER buffer, │ │ │ │ │ +173 SQLSMALLINT cbBuffer, │ │ │ │ │ +174 SQLSMALLINT * pcbBuffer) │ │ │ │ │ +175{ │ │ │ │ │ +176 TDSDUMP_LOG_FAST(TDS_DBG_FUNC, "SQLGetDiagField(%d, %p, %d, %d, %p, %d, │ │ │ │ │ +%p)\n", │ │ │ │ │ +177 (int) handleType, │ │ │ │ │ +178 handle, │ │ │ │ │ +179 (int) numRecord, │ │ │ │ │ +180 (int) diagIdentifier, │ │ │ │ │ +181 buffer, │ │ │ │ │ +182 (int) cbBuffer, │ │ │ │ │ +183 pcbBuffer); │ │ │ │ │ +184#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +185 return _SQLGetDiagField(handleType, │ │ │ │ │ +186 handle, │ │ │ │ │ +187 numRecord, │ │ │ │ │ +188 diagIdentifier, │ │ │ │ │ +189 buffer, │ │ │ │ │ +190 cbBuffer, │ │ │ │ │ +191 pcbBuffer, 0); │ │ │ │ │ +192#else │ │ │ │ │ +193 return _SQLGetDiagField(handleType, │ │ │ │ │ +194 handle, │ │ │ │ │ +195 numRecord, │ │ │ │ │ +196 diagIdentifier, │ │ │ │ │ +197 buffer, │ │ │ │ │ +198 cbBuffer, │ │ │ │ │ +199 pcbBuffer); │ │ │ │ │ +200#endif │ │ │ │ │ +201} │ │ │ │ │ +202 │ │ │ │ │ +203#define tdsdump_log TDSDUMP_LOG_FAST │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00296_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: src/odbc/resource.h Source File │ │ │ │ +FreeTDS API: src/tds/tds_willconvert.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,48 +70,296 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
resource.h
│ │ │ │ +
tds_willconvert.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1//{{NO_DEPENDENCIES}}
│ │ │ │ -
2// Microsoft Developer Studio generated include file.
│ │ │ │ -
3// Used by setup.rc
│ │ │ │ -
4//
│ │ │ │ -
5#define IDD_LOGIN 102
│ │ │ │ -
6#define IDD_DSN 106
│ │ │ │ -
7#define IDC_PROTOCOL 1003
│ │ │ │ -
8#define IDC_ADDRESS 1004
│ │ │ │ -
9#define IDC_PORT 1005
│ │ │ │ -
10#define IDC_DATABASE 1011
│ │ │ │ -
11#define IDC_DSNNAME 1015
│ │ │ │ -
12#define IDC_HINT 1017
│ │ │ │ -
13#define IDC_LOGINSERVER 1020
│ │ │ │ -
14#define IDC_LOGINUID 1021
│ │ │ │ -
15#define IDC_LOGINPWD 1022
│ │ │ │ -
16#define IDC_LOGINDUMP 1023
│ │ │ │ -
17
│ │ │ │ -
18// Next default values for new objects
│ │ │ │ -
19//
│ │ │ │ -
20#ifdef APSTUDIO_INVOKED
│ │ │ │ -
21#ifndef APSTUDIO_READONLY_SYMBOLS
│ │ │ │ -
22#define _APS_NEXT_RESOURCE_VALUE 103
│ │ │ │ -
23#define _APS_NEXT_COMMAND_VALUE 40001
│ │ │ │ -
24#define _APS_NEXT_CONTROL_VALUE 1024
│ │ │ │ -
25#define _APS_NEXT_SYMED_VALUE 101
│ │ │ │ -
26#endif
│ │ │ │ -
27#endif
│ │ │ │ +
1/*** Please do not edit this file! ***/
│ │ │ │ +
2/*** It was generated with 'perl tds_willconvert.pl > tds_willconvert.h' ***/
│ │ │ │ +
3/*** It is much easier to edit the __DATA__ table than this file. ***/
│ │ │ │ +
4/*** ***/
│ │ │ │ +
5/*** Thank you. ***/
│ │ │ │ +
6
│ │ │ │ +
7static const uint8_t type2category[256] = {
│ │ │ │ +
8 0, /* 0 */
│ │ │ │ +
9 0, /* 1 */
│ │ │ │ +
10 0, /* 2 */
│ │ │ │ +
11 0, /* 3 */
│ │ │ │ +
12 0, /* 4 */
│ │ │ │ +
13 0, /* 5 */
│ │ │ │ +
14 0, /* 6 */
│ │ │ │ +
15 0, /* 7 */
│ │ │ │ +
16 0, /* 8 */
│ │ │ │ +
17 0, /* 9 */
│ │ │ │ +
18 0, /* 10 */
│ │ │ │ +
19 0, /* 11 */
│ │ │ │ +
20 0, /* 12 */
│ │ │ │ +
21 0, /* 13 */
│ │ │ │ +
22 0, /* 14 */
│ │ │ │ +
23 0, /* 15 */
│ │ │ │ +
24 0, /* 16 */
│ │ │ │ +
25 0, /* 17 */
│ │ │ │ +
26 0, /* 18 */
│ │ │ │ +
27 0, /* 19 */
│ │ │ │ +
28 0, /* 20 */
│ │ │ │ +
29 0, /* 21 */
│ │ │ │ +
30 0, /* 22 */
│ │ │ │ +
31 0, /* 23 */
│ │ │ │ +
32 0, /* 24 */
│ │ │ │ +
33 0, /* 25 */
│ │ │ │ +
34 0, /* 26 */
│ │ │ │ +
35 0, /* 27 */
│ │ │ │ +
36 0, /* 28 */
│ │ │ │ +
37 0, /* 29 */
│ │ │ │ +
38 0, /* 30 */
│ │ │ │ +
39 0, /* SYBVOID */
│ │ │ │ +
40 0, /* 32 */
│ │ │ │ +
41 0, /* 33 */
│ │ │ │ +
42 2, /* SYBIMAGE */
│ │ │ │ +
43 6, /* SYBTEXT */
│ │ │ │ +
44 7, /* SYBBLOB */
│ │ │ │ +
45 2, /* SYBVARBINARY */
│ │ │ │ +
46 0, /* SYBINTN */
│ │ │ │ +
47 6, /* SYBVARCHAR */
│ │ │ │ +
48 4, /* SYBMSDATE */
│ │ │ │ +
49 4, /* SYBMSTIME */
│ │ │ │ +
50 4, /* SYBMSDATETIME2 */
│ │ │ │ +
51 4, /* SYBMSDATETIMEOFFSET */
│ │ │ │ +
52 0, /* 44 */
│ │ │ │ +
53 2, /* SYBBINARY */
│ │ │ │ +
54 0, /* SYBINTERVAL */
│ │ │ │ +
55 6, /* SYBCHAR */
│ │ │ │ +
56 3, /* SYBINT1 */
│ │ │ │ +
57 4, /* SYBDATE */
│ │ │ │ +
58 1, /* SYBBIT */
│ │ │ │ +
59 4, /* SYBTIME */
│ │ │ │ +
60 3, /* SYBINT2 */
│ │ │ │ +
61 0, /* 53 */
│ │ │ │ +
62 0, /* 54 */
│ │ │ │ +
63 0, /* 55 */
│ │ │ │ +
64 3, /* SYBINT4 */
│ │ │ │ +
65 0, /* 57 */
│ │ │ │ +
66 4, /* SYBDATETIME4 */
│ │ │ │ +
67 3, /* SYBREAL */
│ │ │ │ +
68 3, /* SYBMONEY */
│ │ │ │ +
69 4, /* SYBDATETIME */
│ │ │ │ +
70 3, /* SYBFLT8 */
│ │ │ │ +
71 0, /* 63 */
│ │ │ │ +
72 3, /* SYBUINT1 */
│ │ │ │ +
73 3, /* SYBUINT2 */
│ │ │ │ +
74 3, /* SYBUINT4 */
│ │ │ │ +
75 3, /* SYBUINT8 */
│ │ │ │ +
76 0, /* SYBUINTN */
│ │ │ │ +
77 0, /* 69 */
│ │ │ │ +
78 0, /* 70 */
│ │ │ │ +
79 0, /* 71 */
│ │ │ │ +
80 0, /* 72 */
│ │ │ │ +
81 0, /* 73 */
│ │ │ │ +
82 0, /* 74 */
│ │ │ │ +
83 0, /* 75 */
│ │ │ │ +
84 0, /* 76 */
│ │ │ │ +
85 0, /* 77 */
│ │ │ │ +
86 0, /* 78 */
│ │ │ │ +
87 0, /* 79 */
│ │ │ │ +
88 0, /* 80 */
│ │ │ │ +
89 0, /* 81 */
│ │ │ │ +
90 0, /* 82 */
│ │ │ │ +
91 0, /* 83 */
│ │ │ │ +
92 0, /* 84 */
│ │ │ │ +
93 0, /* 85 */
│ │ │ │ +
94 0, /* 86 */
│ │ │ │ +
95 0, /* 87 */
│ │ │ │ +
96 0, /* 88 */
│ │ │ │ +
97 0, /* 89 */
│ │ │ │ +
98 0, /* 90 */
│ │ │ │ +
99 0, /* 91 */
│ │ │ │ +
100 0, /* 92 */
│ │ │ │ +
101 0, /* 93 */
│ │ │ │ +
102 0, /* 94 */
│ │ │ │ +
103 0, /* 95 */
│ │ │ │ +
104 0, /* 96 */
│ │ │ │ +
105 0, /* 97 */
│ │ │ │ +
106 0, /* SYBVARIANT */
│ │ │ │ +
107 0, /* SYBNTEXT */
│ │ │ │ +
108 0, /* 100 */
│ │ │ │ +
109 0, /* 101 */
│ │ │ │ +
110 0, /* 102 */
│ │ │ │ +
111 5, /* SYBSENSITIVITY */
│ │ │ │ +
112 1, /* SYBBOUNDARY */
│ │ │ │ +
113 0, /* 105 */
│ │ │ │ +
114 1, /* SYBDECIMAL */
│ │ │ │ +
115 0, /* 107 */
│ │ │ │ +
116 1, /* SYBNUMERIC */
│ │ │ │ +
117 0, /* SYBFLTN */
│ │ │ │ +
118 0, /* SYBMONEYN */
│ │ │ │ +
119 0, /* SYBDATETIMN */
│ │ │ │ +
120 0, /* 112 */
│ │ │ │ +
121 0, /* 113 */
│ │ │ │ +
122 0, /* 114 */
│ │ │ │ +
123 0, /* 115 */
│ │ │ │ +
124 0, /* 116 */
│ │ │ │ +
125 0, /* 117 */
│ │ │ │ +
126 0, /* 118 */
│ │ │ │ +
127 0, /* 119 */
│ │ │ │ +
128 0, /* 120 */
│ │ │ │ +
129 0, /* 121 */
│ │ │ │ +
130 3, /* SYBMONEY4 */
│ │ │ │ +
131 0, /* SYBDATEN */
│ │ │ │ +
132 0, /* 124 */
│ │ │ │ +
133 0, /* 125 */
│ │ │ │ +
134 0, /* 126 */
│ │ │ │ +
135 3, /* SYBINT8 */
│ │ │ │ +
136 0, /* 128 */
│ │ │ │ +
137 0, /* 129 */
│ │ │ │ +
138 0, /* 130 */
│ │ │ │ +
139 0, /* 131 */
│ │ │ │ +
140 0, /* 132 */
│ │ │ │ +
141 0, /* 133 */
│ │ │ │ +
142 0, /* 134 */
│ │ │ │ +
143 0, /* 135 */
│ │ │ │ +
144 0, /* 136 */
│ │ │ │ +
145 0, /* 137 */
│ │ │ │ +
146 0, /* 138 */
│ │ │ │ +
147 0, /* 139 */
│ │ │ │ +
148 0, /* 140 */
│ │ │ │ +
149 0, /* 141 */
│ │ │ │ +
150 0, /* 142 */
│ │ │ │ +
151 0, /* 143 */
│ │ │ │ +
152 0, /* 144 */
│ │ │ │ +
153 0, /* 145 */
│ │ │ │ +
154 0, /* 146 */
│ │ │ │ +
155 0, /* SYBTIMEN */
│ │ │ │ +
156 0, /* 148 */
│ │ │ │ +
157 0, /* 149 */
│ │ │ │ +
158 0, /* 150 */
│ │ │ │ +
159 0, /* 151 */
│ │ │ │ +
160 0, /* 152 */
│ │ │ │ +
161 0, /* 153 */
│ │ │ │ +
162 0, /* 154 */
│ │ │ │ +
163 0, /* 155 */
│ │ │ │ +
164 0, /* 156 */
│ │ │ │ +
165 0, /* 157 */
│ │ │ │ +
166 0, /* 158 */
│ │ │ │ +
167 0, /* 159 */
│ │ │ │ +
168 0, /* 160 */
│ │ │ │ +
169 0, /* 161 */
│ │ │ │ +
170 0, /* 162 */
│ │ │ │ +
171 0, /* SYBXML */
│ │ │ │ +
172 0, /* 164 */
│ │ │ │ +
173 2, /* XSYBVARBINARY */
│ │ │ │ +
174 0, /* 166 */
│ │ │ │ +
175 6, /* XSYBVARCHAR */
│ │ │ │ +
176 0, /* 168 */
│ │ │ │ +
177 0, /* 169 */
│ │ │ │ +
178 0, /* 170 */
│ │ │ │ +
179 0, /* 171 */
│ │ │ │ +
180 0, /* 172 */
│ │ │ │ +
181 2, /* XSYBBINARY */
│ │ │ │ +
182 0, /* SYBUNITEXT */
│ │ │ │ +
183 6, /* SYBLONGCHAR */
│ │ │ │ +
184 0, /* SYBSINT1 */
│ │ │ │ +
185 0, /* 177 */
│ │ │ │ +
186 0, /* 178 */
│ │ │ │ +
187 0, /* 179 */
│ │ │ │ +
188 0, /* 180 */
│ │ │ │ +
189 0, /* 181 */
│ │ │ │ +
190 0, /* 182 */
│ │ │ │ +
191 0, /* 183 */
│ │ │ │ +
192 0, /* 184 */
│ │ │ │ +
193 0, /* 185 */
│ │ │ │ +
194 0, /* 186 */
│ │ │ │ +
195 4, /* SYB5BIGDATETIME */
│ │ │ │ +
196 4, /* SYB5BIGTIME */
│ │ │ │ +
197 0, /* 189 */
│ │ │ │ +
198 0, /* 190 */
│ │ │ │ +
199 0, /* SYB5INT8 */
│ │ │ │ +
200 0, /* 192 */
│ │ │ │ +
201 0, /* 193 */
│ │ │ │ +
202 0, /* 194 */
│ │ │ │ +
203 0, /* 195 */
│ │ │ │ +
204 0, /* 196 */
│ │ │ │ +
205 0, /* 197 */
│ │ │ │ +
206 0, /* 198 */
│ │ │ │ +
207 0, /* 199 */
│ │ │ │ +
208 0, /* 200 */
│ │ │ │ +
209 0, /* 201 */
│ │ │ │ +
210 0, /* 202 */
│ │ │ │ +
211 0, /* 203 */
│ │ │ │ +
212 0, /* 204 */
│ │ │ │ +
213 0, /* 205 */
│ │ │ │ +
214 0, /* 206 */
│ │ │ │ +
215 0, /* 207 */
│ │ │ │ +
216 0, /* 208 */
│ │ │ │ +
217 0, /* 209 */
│ │ │ │ +
218 0, /* 210 */
│ │ │ │ +
219 0, /* 211 */
│ │ │ │ +
220 0, /* 212 */
│ │ │ │ +
221 0, /* 213 */
│ │ │ │ +
222 0, /* 214 */
│ │ │ │ +
223 0, /* 215 */
│ │ │ │ +
224 0, /* 216 */
│ │ │ │ +
225 0, /* 217 */
│ │ │ │ +
226 0, /* 218 */
│ │ │ │ +
227 0, /* 219 */
│ │ │ │ +
228 0, /* 220 */
│ │ │ │ +
229 0, /* 221 */
│ │ │ │ +
230 0, /* 222 */
│ │ │ │ +
231 0, /* 223 */
│ │ │ │ +
232 0, /* 224 */
│ │ │ │ +
233 2, /* SYBLONGBINARY */
│ │ │ │ +
234 0, /* 226 */
│ │ │ │ +
235 0, /* 227 */
│ │ │ │ +
236 0, /* 228 */
│ │ │ │ +
237 0, /* 229 */
│ │ │ │ +
238 0, /* 230 */
│ │ │ │ +
239 0, /* XSYBNVARCHAR */
│ │ │ │ +
240 0, /* 232 */
│ │ │ │ +
241 0, /* 233 */
│ │ │ │ +
242 0, /* 234 */
│ │ │ │ +
243 0, /* 235 */
│ │ │ │ +
244 0, /* 236 */
│ │ │ │ +
245 0, /* 237 */
│ │ │ │ +
246 0, /* 238 */
│ │ │ │ +
247 0, /* XSYBNCHAR */
│ │ │ │ +
248 0, /* SYBMSUDT */
│ │ │ │ +
249 0, /* SYBMSXML */
│ │ │ │ +
250 0, /* 242 */
│ │ │ │ +
251 0, /* 243 */
│ │ │ │ +
252 0, /* 244 */
│ │ │ │ +
253 0, /* 245 */
│ │ │ │ +
254 0, /* 246 */
│ │ │ │ +
255 0, /* 247 */
│ │ │ │ +
256 0, /* 248 */
│ │ │ │ +
257 0, /* 249 */
│ │ │ │ +
258 0, /* 250 */
│ │ │ │ +
259 0, /* 251 */
│ │ │ │ +
260 0, /* 252 */
│ │ │ │ +
261 0, /* 253 */
│ │ │ │ +
262 0, /* 254 */
│ │ │ │ +
263 0, /* 255 */
│ │ │ │ +
264};
│ │ │ │ +
265
│ │ │ │ +
266static const uint32_t category_conversion[] = {
│ │ │ │ +
267 0,
│ │ │ │ +
268 78, /* SYBBIT */
│ │ │ │ +
269 76, /* SYBIMAGE */
│ │ │ │ +
270 78, /* SYBINT1 */
│ │ │ │ +
271 84, /* SYBMSDATE */
│ │ │ │ +
272 0, /* SYBSENSITIVITY */
│ │ │ │ +
273 222, /* SYBTEXT */
│ │ │ │ +
274 196, /* SYBUNIQUE */
│ │ │ │ +
275};
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,36 +1,284 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _s_r_c │ │ │ │ │ - * _o_d_b_c │ │ │ │ │ -resource.h │ │ │ │ │ -1//{{NO_DEPENDENCIES}} │ │ │ │ │ -2// Microsoft Developer Studio generated include file. │ │ │ │ │ -3// Used by setup.rc │ │ │ │ │ -4// │ │ │ │ │ -5#define IDD_LOGIN 102 │ │ │ │ │ -6#define IDD_DSN 106 │ │ │ │ │ -7#define IDC_PROTOCOL 1003 │ │ │ │ │ -8#define IDC_ADDRESS 1004 │ │ │ │ │ -9#define IDC_PORT 1005 │ │ │ │ │ -10#define IDC_DATABASE 1011 │ │ │ │ │ -11#define IDC_DSNNAME 1015 │ │ │ │ │ -12#define IDC_HINT 1017 │ │ │ │ │ -13#define IDC_LOGINSERVER 1020 │ │ │ │ │ -14#define IDC_LOGINUID 1021 │ │ │ │ │ -15#define IDC_LOGINPWD 1022 │ │ │ │ │ -16#define IDC_LOGINDUMP 1023 │ │ │ │ │ -17 │ │ │ │ │ -18// Next default values for new objects │ │ │ │ │ -19// │ │ │ │ │ -20#ifdef APSTUDIO_INVOKED │ │ │ │ │ -21#ifndef APSTUDIO_READONLY_SYMBOLS │ │ │ │ │ -22#define _APS_NEXT_RESOURCE_VALUE 103 │ │ │ │ │ -23#define _APS_NEXT_COMMAND_VALUE 40001 │ │ │ │ │ -24#define _APS_NEXT_CONTROL_VALUE 1024 │ │ │ │ │ -25#define _APS_NEXT_SYMED_VALUE 101 │ │ │ │ │ -26#endif │ │ │ │ │ -27#endif │ │ │ │ │ + * _t_d_s │ │ │ │ │ +tds_willconvert.h │ │ │ │ │ +1/*** Please do not edit this file! ***/ │ │ │ │ │ +2/*** It was generated with 'perl tds_willconvert.pl > tds_willconvert.h' ***/ │ │ │ │ │ +3/*** It is much easier to edit the __DATA__ table than this file. ***/ │ │ │ │ │ +4/*** ***/ │ │ │ │ │ +5/*** Thank you. ***/ │ │ │ │ │ +6 │ │ │ │ │ +7static const uint8_t type2category[256] = { │ │ │ │ │ +8 0, /* 0 */ │ │ │ │ │ +9 0, /* 1 */ │ │ │ │ │ +10 0, /* 2 */ │ │ │ │ │ +11 0, /* 3 */ │ │ │ │ │ +12 0, /* 4 */ │ │ │ │ │ +13 0, /* 5 */ │ │ │ │ │ +14 0, /* 6 */ │ │ │ │ │ +15 0, /* 7 */ │ │ │ │ │ +16 0, /* 8 */ │ │ │ │ │ +17 0, /* 9 */ │ │ │ │ │ +18 0, /* 10 */ │ │ │ │ │ +19 0, /* 11 */ │ │ │ │ │ +20 0, /* 12 */ │ │ │ │ │ +21 0, /* 13 */ │ │ │ │ │ +22 0, /* 14 */ │ │ │ │ │ +23 0, /* 15 */ │ │ │ │ │ +24 0, /* 16 */ │ │ │ │ │ +25 0, /* 17 */ │ │ │ │ │ +26 0, /* 18 */ │ │ │ │ │ +27 0, /* 19 */ │ │ │ │ │ +28 0, /* 20 */ │ │ │ │ │ +29 0, /* 21 */ │ │ │ │ │ +30 0, /* 22 */ │ │ │ │ │ +31 0, /* 23 */ │ │ │ │ │ +32 0, /* 24 */ │ │ │ │ │ +33 0, /* 25 */ │ │ │ │ │ +34 0, /* 26 */ │ │ │ │ │ +35 0, /* 27 */ │ │ │ │ │ +36 0, /* 28 */ │ │ │ │ │ +37 0, /* 29 */ │ │ │ │ │ +38 0, /* 30 */ │ │ │ │ │ +39 0, /* SYBVOID */ │ │ │ │ │ +40 0, /* 32 */ │ │ │ │ │ +41 0, /* 33 */ │ │ │ │ │ +42 2, /* SYBIMAGE */ │ │ │ │ │ +43 6, /* SYBTEXT */ │ │ │ │ │ +44 7, /* SYBBLOB */ │ │ │ │ │ +45 2, /* SYBVARBINARY */ │ │ │ │ │ +46 0, /* SYBINTN */ │ │ │ │ │ +47 6, /* SYBVARCHAR */ │ │ │ │ │ +48 4, /* SYBMSDATE */ │ │ │ │ │ +49 4, /* SYBMSTIME */ │ │ │ │ │ +50 4, /* SYBMSDATETIME2 */ │ │ │ │ │ +51 4, /* SYBMSDATETIMEOFFSET */ │ │ │ │ │ +52 0, /* 44 */ │ │ │ │ │ +53 2, /* SYBBINARY */ │ │ │ │ │ +54 0, /* SYBINTERVAL */ │ │ │ │ │ +55 6, /* SYBCHAR */ │ │ │ │ │ +56 3, /* SYBINT1 */ │ │ │ │ │ +57 4, /* SYBDATE */ │ │ │ │ │ +58 1, /* SYBBIT */ │ │ │ │ │ +59 4, /* SYBTIME */ │ │ │ │ │ +60 3, /* SYBINT2 */ │ │ │ │ │ +61 0, /* 53 */ │ │ │ │ │ +62 0, /* 54 */ │ │ │ │ │ +63 0, /* 55 */ │ │ │ │ │ +64 3, /* SYBINT4 */ │ │ │ │ │ +65 0, /* 57 */ │ │ │ │ │ +66 4, /* SYBDATETIME4 */ │ │ │ │ │ +67 3, /* SYBREAL */ │ │ │ │ │ +68 3, /* SYBMONEY */ │ │ │ │ │ +69 4, /* SYBDATETIME */ │ │ │ │ │ +70 3, /* SYBFLT8 */ │ │ │ │ │ +71 0, /* 63 */ │ │ │ │ │ +72 3, /* SYBUINT1 */ │ │ │ │ │ +73 3, /* SYBUINT2 */ │ │ │ │ │ +74 3, /* SYBUINT4 */ │ │ │ │ │ +75 3, /* SYBUINT8 */ │ │ │ │ │ +76 0, /* SYBUINTN */ │ │ │ │ │ +77 0, /* 69 */ │ │ │ │ │ +78 0, /* 70 */ │ │ │ │ │ +79 0, /* 71 */ │ │ │ │ │ +80 0, /* 72 */ │ │ │ │ │ +81 0, /* 73 */ │ │ │ │ │ +82 0, /* 74 */ │ │ │ │ │ +83 0, /* 75 */ │ │ │ │ │ +84 0, /* 76 */ │ │ │ │ │ +85 0, /* 77 */ │ │ │ │ │ +86 0, /* 78 */ │ │ │ │ │ +87 0, /* 79 */ │ │ │ │ │ +88 0, /* 80 */ │ │ │ │ │ +89 0, /* 81 */ │ │ │ │ │ +90 0, /* 82 */ │ │ │ │ │ +91 0, /* 83 */ │ │ │ │ │ +92 0, /* 84 */ │ │ │ │ │ +93 0, /* 85 */ │ │ │ │ │ +94 0, /* 86 */ │ │ │ │ │ +95 0, /* 87 */ │ │ │ │ │ +96 0, /* 88 */ │ │ │ │ │ +97 0, /* 89 */ │ │ │ │ │ +98 0, /* 90 */ │ │ │ │ │ +99 0, /* 91 */ │ │ │ │ │ +100 0, /* 92 */ │ │ │ │ │ +101 0, /* 93 */ │ │ │ │ │ +102 0, /* 94 */ │ │ │ │ │ +103 0, /* 95 */ │ │ │ │ │ +104 0, /* 96 */ │ │ │ │ │ +105 0, /* 97 */ │ │ │ │ │ +106 0, /* SYBVARIANT */ │ │ │ │ │ +107 0, /* SYBNTEXT */ │ │ │ │ │ +108 0, /* 100 */ │ │ │ │ │ +109 0, /* 101 */ │ │ │ │ │ +110 0, /* 102 */ │ │ │ │ │ +111 5, /* SYBSENSITIVITY */ │ │ │ │ │ +112 1, /* SYBBOUNDARY */ │ │ │ │ │ +113 0, /* 105 */ │ │ │ │ │ +114 1, /* SYBDECIMAL */ │ │ │ │ │ +115 0, /* 107 */ │ │ │ │ │ +116 1, /* SYBNUMERIC */ │ │ │ │ │ +117 0, /* SYBFLTN */ │ │ │ │ │ +118 0, /* SYBMONEYN */ │ │ │ │ │ +119 0, /* SYBDATETIMN */ │ │ │ │ │ +120 0, /* 112 */ │ │ │ │ │ +121 0, /* 113 */ │ │ │ │ │ +122 0, /* 114 */ │ │ │ │ │ +123 0, /* 115 */ │ │ │ │ │ +124 0, /* 116 */ │ │ │ │ │ +125 0, /* 117 */ │ │ │ │ │ +126 0, /* 118 */ │ │ │ │ │ +127 0, /* 119 */ │ │ │ │ │ +128 0, /* 120 */ │ │ │ │ │ +129 0, /* 121 */ │ │ │ │ │ +130 3, /* SYBMONEY4 */ │ │ │ │ │ +131 0, /* SYBDATEN */ │ │ │ │ │ +132 0, /* 124 */ │ │ │ │ │ +133 0, /* 125 */ │ │ │ │ │ +134 0, /* 126 */ │ │ │ │ │ +135 3, /* SYBINT8 */ │ │ │ │ │ +136 0, /* 128 */ │ │ │ │ │ +137 0, /* 129 */ │ │ │ │ │ +138 0, /* 130 */ │ │ │ │ │ +139 0, /* 131 */ │ │ │ │ │ +140 0, /* 132 */ │ │ │ │ │ +141 0, /* 133 */ │ │ │ │ │ +142 0, /* 134 */ │ │ │ │ │ +143 0, /* 135 */ │ │ │ │ │ +144 0, /* 136 */ │ │ │ │ │ +145 0, /* 137 */ │ │ │ │ │ +146 0, /* 138 */ │ │ │ │ │ +147 0, /* 139 */ │ │ │ │ │ +148 0, /* 140 */ │ │ │ │ │ +149 0, /* 141 */ │ │ │ │ │ +150 0, /* 142 */ │ │ │ │ │ +151 0, /* 143 */ │ │ │ │ │ +152 0, /* 144 */ │ │ │ │ │ +153 0, /* 145 */ │ │ │ │ │ +154 0, /* 146 */ │ │ │ │ │ +155 0, /* SYBTIMEN */ │ │ │ │ │ +156 0, /* 148 */ │ │ │ │ │ +157 0, /* 149 */ │ │ │ │ │ +158 0, /* 150 */ │ │ │ │ │ +159 0, /* 151 */ │ │ │ │ │ +160 0, /* 152 */ │ │ │ │ │ +161 0, /* 153 */ │ │ │ │ │ +162 0, /* 154 */ │ │ │ │ │ +163 0, /* 155 */ │ │ │ │ │ +164 0, /* 156 */ │ │ │ │ │ +165 0, /* 157 */ │ │ │ │ │ +166 0, /* 158 */ │ │ │ │ │ +167 0, /* 159 */ │ │ │ │ │ +168 0, /* 160 */ │ │ │ │ │ +169 0, /* 161 */ │ │ │ │ │ +170 0, /* 162 */ │ │ │ │ │ +171 0, /* SYBXML */ │ │ │ │ │ +172 0, /* 164 */ │ │ │ │ │ +173 2, /* XSYBVARBINARY */ │ │ │ │ │ +174 0, /* 166 */ │ │ │ │ │ +175 6, /* XSYBVARCHAR */ │ │ │ │ │ +176 0, /* 168 */ │ │ │ │ │ +177 0, /* 169 */ │ │ │ │ │ +178 0, /* 170 */ │ │ │ │ │ +179 0, /* 171 */ │ │ │ │ │ +180 0, /* 172 */ │ │ │ │ │ +181 2, /* XSYBBINARY */ │ │ │ │ │ +182 0, /* SYBUNITEXT */ │ │ │ │ │ +183 6, /* SYBLONGCHAR */ │ │ │ │ │ +184 0, /* SYBSINT1 */ │ │ │ │ │ +185 0, /* 177 */ │ │ │ │ │ +186 0, /* 178 */ │ │ │ │ │ +187 0, /* 179 */ │ │ │ │ │ +188 0, /* 180 */ │ │ │ │ │ +189 0, /* 181 */ │ │ │ │ │ +190 0, /* 182 */ │ │ │ │ │ +191 0, /* 183 */ │ │ │ │ │ +192 0, /* 184 */ │ │ │ │ │ +193 0, /* 185 */ │ │ │ │ │ +194 0, /* 186 */ │ │ │ │ │ +195 4, /* SYB5BIGDATETIME */ │ │ │ │ │ +196 4, /* SYB5BIGTIME */ │ │ │ │ │ +197 0, /* 189 */ │ │ │ │ │ +198 0, /* 190 */ │ │ │ │ │ +199 0, /* SYB5INT8 */ │ │ │ │ │ +200 0, /* 192 */ │ │ │ │ │ +201 0, /* 193 */ │ │ │ │ │ +202 0, /* 194 */ │ │ │ │ │ +203 0, /* 195 */ │ │ │ │ │ +204 0, /* 196 */ │ │ │ │ │ +205 0, /* 197 */ │ │ │ │ │ +206 0, /* 198 */ │ │ │ │ │ +207 0, /* 199 */ │ │ │ │ │ +208 0, /* 200 */ │ │ │ │ │ +209 0, /* 201 */ │ │ │ │ │ +210 0, /* 202 */ │ │ │ │ │ +211 0, /* 203 */ │ │ │ │ │ +212 0, /* 204 */ │ │ │ │ │ +213 0, /* 205 */ │ │ │ │ │ +214 0, /* 206 */ │ │ │ │ │ +215 0, /* 207 */ │ │ │ │ │ +216 0, /* 208 */ │ │ │ │ │ +217 0, /* 209 */ │ │ │ │ │ +218 0, /* 210 */ │ │ │ │ │ +219 0, /* 211 */ │ │ │ │ │ +220 0, /* 212 */ │ │ │ │ │ +221 0, /* 213 */ │ │ │ │ │ +222 0, /* 214 */ │ │ │ │ │ +223 0, /* 215 */ │ │ │ │ │ +224 0, /* 216 */ │ │ │ │ │ +225 0, /* 217 */ │ │ │ │ │ +226 0, /* 218 */ │ │ │ │ │ +227 0, /* 219 */ │ │ │ │ │ +228 0, /* 220 */ │ │ │ │ │ +229 0, /* 221 */ │ │ │ │ │ +230 0, /* 222 */ │ │ │ │ │ +231 0, /* 223 */ │ │ │ │ │ +232 0, /* 224 */ │ │ │ │ │ +233 2, /* SYBLONGBINARY */ │ │ │ │ │ +234 0, /* 226 */ │ │ │ │ │ +235 0, /* 227 */ │ │ │ │ │ +236 0, /* 228 */ │ │ │ │ │ +237 0, /* 229 */ │ │ │ │ │ +238 0, /* 230 */ │ │ │ │ │ +239 0, /* XSYBNVARCHAR */ │ │ │ │ │ +240 0, /* 232 */ │ │ │ │ │ +241 0, /* 233 */ │ │ │ │ │ +242 0, /* 234 */ │ │ │ │ │ +243 0, /* 235 */ │ │ │ │ │ +244 0, /* 236 */ │ │ │ │ │ +245 0, /* 237 */ │ │ │ │ │ +246 0, /* 238 */ │ │ │ │ │ +247 0, /* XSYBNCHAR */ │ │ │ │ │ +248 0, /* SYBMSUDT */ │ │ │ │ │ +249 0, /* SYBMSXML */ │ │ │ │ │ +250 0, /* 242 */ │ │ │ │ │ +251 0, /* 243 */ │ │ │ │ │ +252 0, /* 244 */ │ │ │ │ │ +253 0, /* 245 */ │ │ │ │ │ +254 0, /* 246 */ │ │ │ │ │ +255 0, /* 247 */ │ │ │ │ │ +256 0, /* 248 */ │ │ │ │ │ +257 0, /* 249 */ │ │ │ │ │ +258 0, /* 250 */ │ │ │ │ │ +259 0, /* 251 */ │ │ │ │ │ +260 0, /* 252 */ │ │ │ │ │ +261 0, /* 253 */ │ │ │ │ │ +262 0, /* 254 */ │ │ │ │ │ +263 0, /* 255 */ │ │ │ │ │ +264}; │ │ │ │ │ +265 │ │ │ │ │ +266static const uint32_t category_conversion[] = { │ │ │ │ │ +267 0, │ │ │ │ │ +268 78, /* SYBBIT */ │ │ │ │ │ +269 76, /* SYBIMAGE */ │ │ │ │ │ +270 78, /* SYBINT1 */ │ │ │ │ │ +271 84, /* SYBMSDATE */ │ │ │ │ │ +272 0, /* SYBSENSITIVITY */ │ │ │ │ │ +273 222, /* SYBTEXT */ │ │ │ │ │ +274 196, /* SYBUNIQUE */ │ │ │ │ │ +275}; │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00344_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/config.h Source File │ │ │ │ +FreeTDS API: include/syberror.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,806 +74,71 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
config.h
│ │ │ │ +
syberror.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* include/config.h. Generated from config.h.in by configure. */
│ │ │ │ -
2/* include/config.h.in. Generated from configure.ac by autoheader. */
│ │ │ │ -
3
│ │ │ │ -
4#define _freetds_config_h_
│ │ │ │ -
5
│ │ │ │ -
6/* Define if building universal (internal helper macro) */
│ │ │ │ -
7/* #undef AC_APPLE_UNIVERSAL_BUILD */
│ │ │ │ -
8
│ │ │ │ -
9/* Define to 1 if you need BSD_COMP defined to get FIONBIO defined. */
│ │ │ │ -
10/* #undef BSD_COMP */
│ │ │ │ -
11
│ │ │ │ -
12/* Define to 1 if using 'alloca.c'. */
│ │ │ │ -
13/* #undef C_ALLOCA */
│ │ │ │ -
14
│ │ │ │ -
15/* Define to enable work in progress code */
│ │ │ │ -
16/* #undef ENABLE_DEVELOPING */
│ │ │ │ -
17
│ │ │ │ -
18/* Define to enable extra checks on code */
│ │ │ │ -
19/* #undef ENABLE_EXTRA_CHECKS */
│ │ │ │ -
20
│ │ │ │ -
21/* Defined if --enable-krb5 used and library detected */
│ │ │ │ -
22#define ENABLE_KRB5 1
│ │ │ │ -
23
│ │ │ │ -
24/* Define to enable MARS support */
│ │ │ │ -
25#define ENABLE_ODBC_MARS 1
│ │ │ │ -
26
│ │ │ │ -
27/* Define to enable ODBC wide string support */
│ │ │ │ -
28#define ENABLE_ODBC_WIDE 1
│ │ │ │ -
29
│ │ │ │ -
30/* Define to 1 if GNU tls use nettle as backend. */
│ │ │ │ -
31#define GNUTLS_USE_NETTLE 1
│ │ │ │ -
32
│ │ │ │ -
33/* Define to 1 if you have the 'alarm' function. */
│ │ │ │ -
34#define HAVE_ALARM 1
│ │ │ │ -
35
│ │ │ │ -
36/* Define to 1 if you have 'alloca', as a function or macro. */
│ │ │ │ -
37#define HAVE_ALLOCA 1
│ │ │ │ -
38
│ │ │ │ -
39/* Define to 1 if <alloca.h> works. */
│ │ │ │ -
40#define HAVE_ALLOCA_H 1
│ │ │ │ -
41
│ │ │ │ -
42/* Define to 1 if you have the <arpa/inet.h> header file. */
│ │ │ │ -
43#define HAVE_ARPA_INET_H 1
│ │ │ │ -
44
│ │ │ │ -
45/* Define to 1 if you have the 'ASN1_STRING_get0_data' function. */
│ │ │ │ -
46/* #undef HAVE_ASN1_STRING_GET0_DATA */
│ │ │ │ -
47
│ │ │ │ -
48/* Define to 1 if you have the 'asprintf' function. */
│ │ │ │ -
49#define HAVE_ASPRINTF 1
│ │ │ │ -
50
│ │ │ │ -
51/* Define to 1 if you have the 'basename' function. */
│ │ │ │ -
52#define HAVE_BASENAME 1
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _syberror_h_
│ │ │ │ +
21#define _syberror_h_
│ │ │ │ +
22
│ │ │ │ +
23#ifdef __cplusplus
│ │ │ │ +
24extern "C"
│ │ │ │ +
25{
│ │ │ │ +
26#if 0
│ │ │ │ +
27}
│ │ │ │ +
28#endif
│ │ │ │ +
29#endif
│ │ │ │ +
30
│ │ │ │ +
31static const char rcsid_syberror_h[] = "$Id: syberror.h,v 1.4 2004-10-28 12:42:12 freddy77 Exp $";
│ │ │ │ +
32static const void *const no_unused_syberror_h_warn[] = { rcsid_syberror_h, no_unused_syberror_h_warn };
│ │ │ │ +
33
│ │ │ │ +
34/* severity levels, gleaned from google */
│ │ │ │ +
35#define EXINFO 1
│ │ │ │ +
36#define EXUSER 2
│ │ │ │ +
37#define EXNONFATAL 3
│ │ │ │ +
38#define EXCONVERSION 4
│ │ │ │ +
39#define EXSERVER 5
│ │ │ │ +
40#define EXTIME 6
│ │ │ │ +
41#define EXPROGRAM 7
│ │ │ │ +
42#define EXRESOURCE 8
│ │ │ │ +
43#define EXCOMM 9
│ │ │ │ +
44#define EXFATAL 10
│ │ │ │ +
45#define EXCONSISTENCY 11
│ │ │ │ +
46
│ │ │ │ +
47#ifdef __cplusplus
│ │ │ │ +
48#if 0
│ │ │ │ +
49{
│ │ │ │ +
50#endif
│ │ │ │ +
51}
│ │ │ │ +
52#endif
│ │ │ │
53
│ │ │ │ -
54/* Define to 1 if you have the 'BIO_get_data' function. */
│ │ │ │ -
55/* #undef HAVE_BIO_GET_DATA */
│ │ │ │ -
56
│ │ │ │ -
57/* Define if you have the clock_gettime function. */
│ │ │ │ -
58#define HAVE_CLOCK_GETTIME 1
│ │ │ │ -
59
│ │ │ │ -
60/* Define to 1 if you have the <com_err.h> header file. */
│ │ │ │ -
61#define HAVE_COM_ERR_H 1
│ │ │ │ -
62
│ │ │ │ -
63/* Define to 1 if you have the 'daemon' function. */
│ │ │ │ -
64#define HAVE_DAEMON 1
│ │ │ │ -
65
│ │ │ │ -
66/* Define to 1 if you have the declaration of 'tzname', and to 0 if you don't.
│ │ │ │ -
67 */
│ │ │ │ -
68/* #undef HAVE_DECL_TZNAME */
│ │ │ │ -
69
│ │ │ │ -
70/* Define to 1 if you have the <dirent.h> header file. */
│ │ │ │ -
71#define HAVE_DIRENT_H 1
│ │ │ │ -
72
│ │ │ │ -
73/* Define to 1 if you have the <dlfcn.h> header file. */
│ │ │ │ -
74#define HAVE_DLFCN_H 1
│ │ │ │ -
75
│ │ │ │ -
76/* Define to 1 if you have the <errno.h> header file. */
│ │ │ │ -
77#define HAVE_ERRNO_H 1
│ │ │ │ -
78
│ │ │ │ -
79/* Define to 1 if you have the 'error_message' function. */
│ │ │ │ -
80/* #undef HAVE_ERROR_MESSAGE */
│ │ │ │ -
81
│ │ │ │ -
82/* Define to 1 if you have the 'eventfd' function. */
│ │ │ │ -
83#define HAVE_EVENTFD 1
│ │ │ │ -
84
│ │ │ │ -
85/* Define to 1 if you have the <fcntl.h> header file. */
│ │ │ │ -
86#define HAVE_FCNTL_H 1
│ │ │ │ -
87
│ │ │ │ -
88/* Define to 1 if you have the 'fork' function. */
│ │ │ │ -
89#define HAVE_FORK 1
│ │ │ │ -
90
│ │ │ │ -
91/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */
│ │ │ │ -
92#define HAVE_FSEEKO 1
│ │ │ │ -
93
│ │ │ │ -
94/* Define to 1 if you have the 'fstat' function. */
│ │ │ │ -
95#define HAVE_FSTAT 1
│ │ │ │ -
96
│ │ │ │ -
97/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ -
98 gethostbyaddr_r(). */
│ │ │ │ -
99/* #undef HAVE_FUNC_GETHOSTBYADDR_R_5 */
│ │ │ │ -
100
│ │ │ │ -
101/* Define to 1 if your system provides the 7-parameter version of
│ │ │ │ -
102 gethostbyaddr_r(). */
│ │ │ │ -
103/* #undef HAVE_FUNC_GETHOSTBYADDR_R_7 */
│ │ │ │ -
104
│ │ │ │ -
105/* Define to 1 if your system provides the 8-parameter version of
│ │ │ │ -
106 gethostbyaddr_r(). */
│ │ │ │ -
107#define HAVE_FUNC_GETHOSTBYADDR_R_8 1
│ │ │ │ -
108
│ │ │ │ -
109/* Define to 1 if your system provides the 3-parameter version of
│ │ │ │ -
110 gethostbyname_r(). */
│ │ │ │ -
111/* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */
│ │ │ │ -
112
│ │ │ │ -
113/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ -
114 gethostbyname_r(). */
│ │ │ │ -
115/* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */
│ │ │ │ -
116
│ │ │ │ -
117/* Define to 1 if your system provides the 6-parameter version of
│ │ │ │ -
118 gethostbyname_r(). */
│ │ │ │ -
119#define HAVE_FUNC_GETHOSTBYNAME_R_6 1
│ │ │ │ -
120
│ │ │ │ -
121/* Define to 1 if your system provides the 4-parameter version of
│ │ │ │ -
122 getpwuid_r(). */
│ │ │ │ -
123/* #undef HAVE_FUNC_GETPWUID_R_4 */
│ │ │ │ -
124
│ │ │ │ -
125/* Define to 1 if your system getpwuid_r() have 4 parameters and return struct
│ │ │ │ -
126 passwd*. */
│ │ │ │ -
127/* #undef HAVE_FUNC_GETPWUID_R_4_PW */
│ │ │ │ -
128
│ │ │ │ -
129/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ -
130 getpwuid_r(). */
│ │ │ │ -
131#define HAVE_FUNC_GETPWUID_R_5 1
│ │ │ │ -
132
│ │ │ │ -
133/* Define to 1 if your system provides the 4-parameter version of
│ │ │ │ -
134 getservbyname_r(). */
│ │ │ │ -
135/* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */
│ │ │ │ -
136
│ │ │ │ -
137/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ -
138 getservbyname_r(). */
│ │ │ │ -
139/* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */
│ │ │ │ -
140
│ │ │ │ -
141/* Define to 1 if your system provides the 6-parameter version of
│ │ │ │ -
142 getservbyname_r(). */
│ │ │ │ -
143#define HAVE_FUNC_GETSERVBYNAME_R_6 1
│ │ │ │ -
144
│ │ │ │ -
145/* Define to 1 if your localtime_r return a int. */
│ │ │ │ -
146/* #undef HAVE_FUNC_LOCALTIME_R_INT */
│ │ │ │ -
147
│ │ │ │ -
148/* Define to 1 if your localtime_r return a struct tm*. */
│ │ │ │ -
149#define HAVE_FUNC_LOCALTIME_R_TM 1
│ │ │ │ -
150
│ │ │ │ -
151/* Define if you have getaddrinfo function */
│ │ │ │ -
152#define HAVE_GETADDRINFO 1
│ │ │ │ -
153
│ │ │ │ -
154/* Define to 1 if you have the 'gethostname' function. */
│ │ │ │ -
155#define HAVE_GETHOSTNAME 1
│ │ │ │ -
156
│ │ │ │ -
157/* Define to 1 if you have the 'gethrtime' function. */
│ │ │ │ -
158/* #undef HAVE_GETHRTIME */
│ │ │ │ -
159
│ │ │ │ -
160/* Define to 1 if you have the 'getipnodebyaddr' function. */
│ │ │ │ -
161/* #undef HAVE_GETIPNODEBYADDR */
│ │ │ │ -
162
│ │ │ │ -
163/* Define to 1 if you have the 'getipnodebyname' function. */
│ │ │ │ -
164/* #undef HAVE_GETIPNODEBYNAME */
│ │ │ │ -
165
│ │ │ │ -
166/* Define to 1 if you have the 'getopt' function. */
│ │ │ │ -
167#define HAVE_GETOPT 1
│ │ │ │ -
168
│ │ │ │ -
169/* Define to 1 if you have the <getopt.h> header file. */
│ │ │ │ -
170#define HAVE_GETOPT_H 1
│ │ │ │ -
171
│ │ │ │ -
172/* Define if your getopt(3) defines and uses optreset */
│ │ │ │ -
173/* #undef HAVE_GETOPT_OPTRESET */
│ │ │ │ -
174
│ │ │ │ -
175/* Define to 1 if you have the 'getpwuid' function. */
│ │ │ │ -
176#define HAVE_GETPWUID 1
│ │ │ │ -
177
│ │ │ │ -
178/* Define to 1 if you have the 'getpwuid_r' function. */
│ │ │ │ -
179#define HAVE_GETPWUID_R 1
│ │ │ │ -
180
│ │ │ │ -
181/* Define to 1 if you have the 'gettimeofday' function. */
│ │ │ │ -
182#define HAVE_GETTIMEOFDAY 1
│ │ │ │ -
183
│ │ │ │ -
184/* Define to 1 if you have the 'getuid' function. */
│ │ │ │ -
185#define HAVE_GETUID 1
│ │ │ │ -
186
│ │ │ │ -
187/* Define if you have GMP library */
│ │ │ │ -
188#define HAVE_GMP 1
│ │ │ │ -
189
│ │ │ │ -
190/* Define to 1 if you have GnuTLS. */
│ │ │ │ -
191#define HAVE_GNUTLS 1
│ │ │ │ -
192
│ │ │ │ -
193/* Define to 1 if you have the <gnutls/abstract.h> header file. */
│ │ │ │ -
194#define HAVE_GNUTLS_ABSTRACT_H 1
│ │ │ │ -
195
│ │ │ │ -
196/* Define to 1 if you have the 'gnutls_certificate_set_verify_function'
│ │ │ │ -
197 function. */
│ │ │ │ -
198#define HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION 1
│ │ │ │ -
199
│ │ │ │ -
200/* Define to 1 if you have the 'gnutls_record_disable_padding' function. */
│ │ │ │ -
201#define HAVE_GNUTLS_RECORD_DISABLE_PADDING 1
│ │ │ │ -
202
│ │ │ │ -
203/* Define to 1 if you have the 'gnutls_rnd' function. */
│ │ │ │ -
204#define HAVE_GNUTLS_RND 1
│ │ │ │ -
205
│ │ │ │ -
206/* Define if you have the iconv() function and it works. */
│ │ │ │ -
207#define HAVE_ICONV 1
│ │ │ │ -
208
│ │ │ │ -
209/* Define to 1 if you have the 'inet_ntoa_r' function. */
│ │ │ │ -
210/* #undef HAVE_INET_NTOA_R */
│ │ │ │ -
211
│ │ │ │ -
212/* Define to 1 if you have the 'inet_ntop' function. */
│ │ │ │ -
213#define HAVE_INET_NTOP 1
│ │ │ │ -
214
│ │ │ │ -
215/* Define to 1 if you have the <inttypes.h> header file. */
│ │ │ │ -
216#define HAVE_INTTYPES_H 1
│ │ │ │ -
217
│ │ │ │ -
218/* Define to 1 if you have the <iodbcinst.h> header file. */
│ │ │ │ -
219/* #undef HAVE_IODBCINST_H */
│ │ │ │ -
220
│ │ │ │ -
221/* Define to 1 if you have the <langinfo.h> header file. */
│ │ │ │ -
222#define HAVE_LANGINFO_H 1
│ │ │ │ -
223
│ │ │ │ -
224/* Define to 1 if you have the <libgen.h> header file. */
│ │ │ │ -
225#define HAVE_LIBGEN_H 1
│ │ │ │ -
226
│ │ │ │ -
227/* Define to 1 if you have the <limits.h> header file. */
│ │ │ │ -
228#define HAVE_LIMITS_H 1
│ │ │ │ -
229
│ │ │ │ -
230/* Define to 1 if you have the <localcharset.h> header file. */
│ │ │ │ -
231/* #undef HAVE_LOCALCHARSET_H */
│ │ │ │ -
232
│ │ │ │ -
233/* Define to 1 if you have the 'locale_charset' function. */
│ │ │ │ -
234/* #undef HAVE_LOCALE_CHARSET */
│ │ │ │ -
235
│ │ │ │ -
236/* Define to 1 if you have the <locale.h> header file. */
│ │ │ │ -
237#define HAVE_LOCALE_H 1
│ │ │ │ -
238
│ │ │ │ -
239/* Define to 1 if you have the 'localtime_r' function. */
│ │ │ │ -
240#define HAVE_LOCALTIME_R 1
│ │ │ │ -
241
│ │ │ │ -
242/* Define to 1 if you have the <malloc.h> header file. */
│ │ │ │ -
243#define HAVE_MALLOC_H 1
│ │ │ │ -
244
│ │ │ │ -
245/* Define to 1 if your system provides the malloc_options variable. */
│ │ │ │ -
246/* #undef HAVE_MALLOC_OPTIONS */
│ │ │ │ -
247
│ │ │ │ -
248/* Define to 1 if you have the <minix/config.h> header file. */
│ │ │ │ -
249/* #undef HAVE_MINIX_CONFIG_H */
│ │ │ │ -
250
│ │ │ │ -
251/* Define to 1 if you have the 'nanosleep' function. */
│ │ │ │ -
252#define HAVE_NANOSLEEP 1
│ │ │ │ -
253
│ │ │ │ -
254/* Define to 1 if you have the <netdb.h> header file. */
│ │ │ │ -
255#define HAVE_NETDB_H 1
│ │ │ │ -
256
│ │ │ │ -
257/* Define to 1 if you have the <netinet/in.h> header file. */
│ │ │ │ -
258#define HAVE_NETINET_IN_H 1
│ │ │ │ -
259
│ │ │ │ -
260/* Define to 1 if you have the <netinet/tcp.h> header file. */
│ │ │ │ -
261#define HAVE_NETINET_TCP_H 1
│ │ │ │ -
262
│ │ │ │ -
263/* Define to 1 if nettle is present. */
│ │ │ │ -
264#define HAVE_NETTLE 1
│ │ │ │ -
265
│ │ │ │ -
266/* Define to 1 if you have the 'nl_langinfo' function. */
│ │ │ │ -
267#define HAVE_NL_LANGINFO 1
│ │ │ │ -
268
│ │ │ │ -
269/* Define to 1 if you have the <odbcss.h> header file. */
│ │ │ │ -
270/* #undef HAVE_ODBCSS_H */
│ │ │ │ -
271
│ │ │ │ -
272/* Define if you have the OpenSSL. */
│ │ │ │ -
273/* #undef HAVE_OPENSSL */
│ │ │ │ -
274
│ │ │ │ -
275/* Define to 1 if you have the <paths.h> header file. */
│ │ │ │ -
276#define HAVE_PATHS_H 1
│ │ │ │ -
277
│ │ │ │ -
278/* Define to 1 if you have the 'poll' function. */
│ │ │ │ -
279#define HAVE_POLL 1
│ │ │ │ -
280
│ │ │ │ -
281/* Define to 1 if you have the <poll.h> header file. */
│ │ │ │ -
282#define HAVE_POLL_H 1
│ │ │ │ -
283
│ │ │ │ -
284/* Define if you have POSIX threads libraries and header files. */
│ │ │ │ -
285#define HAVE_PTHREAD 1
│ │ │ │ -
286
│ │ │ │ -
287/* Define to 1 if you have the 'pthread_condattr_setclock' function. */
│ │ │ │ -
288#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
│ │ │ │ -
289
│ │ │ │ -
290/* Define to 1 if you have the 'pthread_cond_timedwait' function. */
│ │ │ │ -
291#define HAVE_PTHREAD_COND_TIMEDWAIT 1
│ │ │ │ -
292
│ │ │ │ -
293/* Define to 1 if you have the 'pthread_cond_timedwait_relative_np' function.
│ │ │ │ -
294 */
│ │ │ │ -
295/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */
│ │ │ │ -
296
│ │ │ │ -
297/* Define to 1 if you have the 'putenv' function. */
│ │ │ │ -
298#define HAVE_PUTENV 1
│ │ │ │ -
299
│ │ │ │ -
300/* Define to 1 if you have the 'readdir_r' function. */
│ │ │ │ -
301#define HAVE_READDIR_R 1
│ │ │ │ -
302
│ │ │ │ -
303/* Define to 1 if you have the GNU Readline library. */
│ │ │ │ -
304#define HAVE_READLINE 1
│ │ │ │ -
305
│ │ │ │ -
306/* Define to 1 if you have the 'readpassphrase' function. */
│ │ │ │ -
307/* #undef HAVE_READPASSPHRASE */
│ │ │ │ -
308
│ │ │ │ -
309/* Define to 1 if you have rl_inhibit_completion. */
│ │ │ │ -
310#define HAVE_RL_INHIBIT_COMPLETION 1
│ │ │ │ -
311
│ │ │ │ -
312/* Define to 1 if you have the 'rl_on_new_line' function. */
│ │ │ │ -
313#define HAVE_RL_ON_NEW_LINE 1
│ │ │ │ -
314
│ │ │ │ -
315/* Define to 1 if you have the 'rl_reset_line_state' function. */
│ │ │ │ -
316#define HAVE_RL_RESET_LINE_STATE 1
│ │ │ │ -
317
│ │ │ │ -
318/* Define to 1 if you have the <roken.h> header file. */
│ │ │ │ -
319/* #undef HAVE_ROKEN_H */
│ │ │ │ -
320
│ │ │ │ -
321/* Define to 1 if you have the 'RSA_get0_key' function. */
│ │ │ │ -
322/* #undef HAVE_RSA_GET0_KEY */
│ │ │ │ -
323
│ │ │ │ -
324/* Define to 1 if you have the 'setenv' function. */
│ │ │ │ -
325#define HAVE_SETENV 1
│ │ │ │ -
326
│ │ │ │ -
327/* Define to 1 if you have the 'setitimer' function. */
│ │ │ │ -
328#define HAVE_SETITIMER 1
│ │ │ │ -
329
│ │ │ │ -
330/* Define to 1 if you have the 'setrlimit' function. */
│ │ │ │ -
331#define HAVE_SETRLIMIT 1
│ │ │ │ -
332
│ │ │ │ -
333/* Define to 1 if you have the <signal.h> header file. */
│ │ │ │ -
334#define HAVE_SIGNAL_H 1
│ │ │ │ -
335
│ │ │ │ -
336/* Define to 1 if you have the 'socketpair' function. */
│ │ │ │ -
337#define HAVE_SOCKETPAIR 1
│ │ │ │ -
338
│ │ │ │ -
339/* Define to 1 if you have the SQLGetPrivateProfileString function. */
│ │ │ │ -
340#define HAVE_SQLGETPRIVATEPROFILESTRING 1
│ │ │ │ -
341
│ │ │ │ -
342/* Define if sqltypes.h define SQLLEN */
│ │ │ │ -
343#define HAVE_SQLLEN 1
│ │ │ │ -
344
│ │ │ │ -
345/* Define to 1 if the system has the type 'SQLROWOFFSET'. */
│ │ │ │ -
346#define HAVE_SQLROWOFFSET 1
│ │ │ │ -
347
│ │ │ │ -
348/* Define to 1 if the system has the type 'SQLROWSETSIZE'. */
│ │ │ │ -
349#define HAVE_SQLROWSETSIZE 1
│ │ │ │ -
350
│ │ │ │ -
351/* Define to 1 if the system has the type 'SQLSETPOSIROW'. */
│ │ │ │ -
352#define HAVE_SQLSETPOSIROW 1
│ │ │ │ -
353
│ │ │ │ -
354/* Define to 1 if you have the <sql.h> header file. */
│ │ │ │ -
355#define HAVE_SQL_H 1
│ │ │ │ -
356
│ │ │ │ -
357/* Defined if not --disable-sspi and SSPI detected */
│ │ │ │ -
358/* #undef HAVE_SSPI */
│ │ │ │ -
359
│ │ │ │ -
360/* Define to 1 if you have the <stdbool.h> header file. */
│ │ │ │ -
361#define HAVE_STDBOOL_H 1
│ │ │ │ -
362
│ │ │ │ -
363/* Define to 1 if you have the <stddef.h> header file. */
│ │ │ │ -
364#define HAVE_STDDEF_H 1
│ │ │ │ -
365
│ │ │ │ -
366/* Define to 1 if you have the <stdint.h> header file. */
│ │ │ │ -
367#define HAVE_STDINT_H 1
│ │ │ │ -
368
│ │ │ │ -
369/* Define to 1 if you have the <stdio.h> header file. */
│ │ │ │ -
370#define HAVE_STDIO_H 1
│ │ │ │ -
371
│ │ │ │ -
372/* Define to 1 if you have the <stdlib.h> header file. */
│ │ │ │ -
373#define HAVE_STDLIB_H 1
│ │ │ │ -
374
│ │ │ │ -
375/* Define to 1 if you have the <strings.h> header file. */
│ │ │ │ -
376#define HAVE_STRINGS_H 1
│ │ │ │ -
377
│ │ │ │ -
378/* Define to 1 if you have the <string.h> header file. */
│ │ │ │ -
379#define HAVE_STRING_H 1
│ │ │ │ -
380
│ │ │ │ -
381/* Define to 1 if you have the 'strlcat' function. */
│ │ │ │ -
382#define HAVE_STRLCAT 1
│ │ │ │ -
383
│ │ │ │ -
384/* Define to 1 if you have the 'strlcpy' function. */
│ │ │ │ -
385#define HAVE_STRLCPY 1
│ │ │ │ -
386
│ │ │ │ -
387/* Define to 1 if you have the 'strsep' function. */
│ │ │ │ -
388#define HAVE_STRSEP 1
│ │ │ │ -
389
│ │ │ │ -
390/* Define to 1 if you have the 'strtok_r' function. */
│ │ │ │ -
391#define HAVE_STRTOK_R 1
│ │ │ │ -
392
│ │ │ │ -
393/* Define to 1 if you have the 'strtok_s' function. */
│ │ │ │ -
394/* #undef HAVE_STRTOK_S */
│ │ │ │ -
395
│ │ │ │ -
396/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */
│ │ │ │ -
397#define HAVE_STRUCT_TM_TM_ZONE 1
│ │ │ │ -
398
│ │ │ │ -
399/* Define to 1 if '__tm_zone' is a member of 'struct tm'. */
│ │ │ │ -
400/* #undef HAVE_STRUCT_TM___TM_ZONE */
│ │ │ │ -
401
│ │ │ │ -
402/* Define to 1 if you have the 'system' function */
│ │ │ │ -
403#define HAVE_SYSTEM 1
│ │ │ │ -
404
│ │ │ │ -
405/* Define to 1 if you have the <sys/eventfd.h> header file. */
│ │ │ │ -
406#define HAVE_SYS_EVENTFD_H 1
│ │ │ │ -
407
│ │ │ │ -
408/* Define to 1 if you have the <sys/ioctl.h> header file. */
│ │ │ │ -
409#define HAVE_SYS_IOCTL_H 1
│ │ │ │ -
410
│ │ │ │ -
411/* Define to 1 if you have the <sys/param.h> header file. */
│ │ │ │ -
412#define HAVE_SYS_PARAM_H 1
│ │ │ │ -
413
│ │ │ │ -
414/* Define to 1 if you have the <sys/resource.h> header file. */
│ │ │ │ -
415#define HAVE_SYS_RESOURCE_H 1
│ │ │ │ -
416
│ │ │ │ -
417/* Define to 1 if you have the <sys/select.h> header file. */
│ │ │ │ -
418#define HAVE_SYS_SELECT_H 1
│ │ │ │ -
419
│ │ │ │ -
420/* Define to 1 if you have the <sys/socket.h> header file. */
│ │ │ │ -
421#define HAVE_SYS_SOCKET_H 1
│ │ │ │ -
422
│ │ │ │ -
423/* Define to 1 if you have the <sys/stat.h> header file. */
│ │ │ │ -
424#define HAVE_SYS_STAT_H 1
│ │ │ │ -
425
│ │ │ │ -
426/* Define to 1 if you have the <sys/time.h> header file. */
│ │ │ │ -
427#define HAVE_SYS_TIME_H 1
│ │ │ │ -
428
│ │ │ │ -
429/* Define to 1 if you have the <sys/types.h> header file. */
│ │ │ │ -
430#define HAVE_SYS_TYPES_H 1
│ │ │ │ -
431
│ │ │ │ -
432/* Define to 1 if you have the <sys/wait.h> header file. */
│ │ │ │ -
433#define HAVE_SYS_WAIT_H 1
│ │ │ │ -
434
│ │ │ │ -
435/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use
│ │ │ │ -
436 'HAVE_STRUCT_TM_TM_ZONE' instead. */
│ │ │ │ -
437#define HAVE_TM_ZONE 1
│ │ │ │ -
438
│ │ │ │ -
439/* Define to 1 if you don't have 'tm_zone' but do have the external array
│ │ │ │ -
440 'tzname'. */
│ │ │ │ -
441/* #undef HAVE_TZNAME */
│ │ │ │ -
442
│ │ │ │ -
443/* Define to 1 if you have the <unistd.h> header file. */
│ │ │ │ -
444#define HAVE_UNISTD_H 1
│ │ │ │ -
445
│ │ │ │ -
446/* Define to 1 if you have the 'usleep' function. */
│ │ │ │ -
447#define HAVE_USLEEP 1
│ │ │ │ -
448
│ │ │ │ -
449/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
│ │ │ │ -
450/* #undef HAVE_VALGRIND_MEMCHECK_H */
│ │ │ │ -
451
│ │ │ │ -
452/* Define to 1 if you have the 'vasprintf' function. */
│ │ │ │ -
453#define HAVE_VASPRINTF 1
│ │ │ │ -
454
│ │ │ │ -
455/* Define to 1 if you have the 'vsnprintf' function. */
│ │ │ │ -
456#define HAVE_VSNPRINTF 1
│ │ │ │ -
457
│ │ │ │ -
458/* Define to 1 if you have the <wchar.h> header file. */
│ │ │ │ -
459#define HAVE_WCHAR_H 1
│ │ │ │ -
460
│ │ │ │ -
461/* Define to 1 if you have the <windows.h> header file. */
│ │ │ │ -
462/* #undef HAVE_WINDOWS_H */
│ │ │ │ -
463
│ │ │ │ -
464/* Define to 1 if you have the <winsock2.h> header file. */
│ │ │ │ -
465/* #undef HAVE_WINSOCK2_H */
│ │ │ │ -
466
│ │ │ │ -
467/* Define to 1 if you have the '_fseeki64' function. */
│ │ │ │ -
468/* #undef HAVE__FSEEKI64 */
│ │ │ │ -
469
│ │ │ │ -
470/* Define to 1 if you have the '_ftelli64' function. */
│ │ │ │ -
471/* #undef HAVE__FTELLI64 */
│ │ │ │ -
472
│ │ │ │ -
473/* Define to 1 if you have the '_lock_file' function. */
│ │ │ │ -
474/* #undef HAVE__LOCK_FILE */
│ │ │ │ -
475
│ │ │ │ -
476/* Define to 1 if you have the '_unlock_file' function. */
│ │ │ │ -
477/* #undef HAVE__UNLOCK_FILE */
│ │ │ │ -
478
│ │ │ │ -
479/* Define to 1 if you have the '_vscprintf' function. */
│ │ │ │ -
480/* #undef HAVE__VSCPRINTF */
│ │ │ │ -
481
│ │ │ │ -
482/* Define to 1 if you have the '_vsnprintf' function. */
│ │ │ │ -
483/* #undef HAVE__VSNPRINTF */
│ │ │ │ -
484
│ │ │ │ -
485/* Define to 1 if you have the '_xpg_accept' function. */
│ │ │ │ -
486/* #undef HAVE__XPG_ACCEPT */
│ │ │ │ -
487
│ │ │ │ -
488/* Define to 1 if you have the '_xpg_getpeername' function. */
│ │ │ │ -
489/* #undef HAVE__XPG_GETPEERNAME */
│ │ │ │ -
490
│ │ │ │ -
491/* Define to 1 if you have the '_xpg_getsockname' function. */
│ │ │ │ -
492/* #undef HAVE__XPG_GETSOCKNAME */
│ │ │ │ -
493
│ │ │ │ -
494/* Define to 1 if you have the '_xpg_getsockopt' function. */
│ │ │ │ -
495/* #undef HAVE__XPG_GETSOCKOPT */
│ │ │ │ -
496
│ │ │ │ -
497/* Define to 1 if you have the '_xpg_recvfrom' function. */
│ │ │ │ -
498/* #undef HAVE__XPG_RECVFROM */
│ │ │ │ -
499
│ │ │ │ -
500/* Define to 1 if you have the '__accept' function. */
│ │ │ │ -
501/* #undef HAVE___ACCEPT */
│ │ │ │ -
502
│ │ │ │ -
503/* Define to 1 if you have the '__getpeername' function. */
│ │ │ │ -
504/* #undef HAVE___GETPEERNAME */
│ │ │ │ -
505
│ │ │ │ -
506/* Define to 1 if you have the '__getsockname' function. */
│ │ │ │ -
507/* #undef HAVE___GETSOCKNAME */
│ │ │ │ -
508
│ │ │ │ -
509/* Define to 1 if you have the '__getsockopt' function. */
│ │ │ │ -
510/* #undef HAVE___GETSOCKOPT */
│ │ │ │ -
511
│ │ │ │ -
512/* Define to 1 if you have the '__recvfrom' function. */
│ │ │ │ -
513/* #undef HAVE___RECVFROM */
│ │ │ │ -
514
│ │ │ │ -
515/* Define as const if the declaration of iconv() needs const. */
│ │ │ │ -
516#define ICONV_CONST
│ │ │ │ -
517
│ │ │ │ -
518/* Define to value of INADDR_NONE if not provided by your system header files.
│ │ │ │ -
519 */
│ │ │ │ -
520/* #undef INADDR_NONE */
│ │ │ │ -
521
│ │ │ │ -
522/* Define to the sub-directory where libtool stores uninstalled libraries. */
│ │ │ │ -
523#define LT_OBJDIR ".libs/"
│ │ │ │ -
524
│ │ │ │ -
525/* Define to 1 if the BSD-style netdb interface is reentrant. */
│ │ │ │ -
526/* #undef NETDB_REENTRANT */
│ │ │ │ -
527
│ │ │ │ -
528/* Define to 1 if memset(0) sets pointers to NULL. */
│ │ │ │ -
529#define NULL_REP_IS_ZERO_BYTES 1
│ │ │ │ -
530
│ │ │ │ -
531/* Name of package */
│ │ │ │ -
532#define PACKAGE "freetds"
│ │ │ │ -
533
│ │ │ │ -
534/* Define to the address where bug reports for this package should be sent. */
│ │ │ │ -
535#define PACKAGE_BUGREPORT ""
│ │ │ │ -
536
│ │ │ │ -
537/* Define to the full name of this package. */
│ │ │ │ -
538#define PACKAGE_NAME "FreeTDS"
│ │ │ │ -
539
│ │ │ │ -
540/* Define to the full name and version of this package. */
│ │ │ │ -
541#define PACKAGE_STRING "FreeTDS 1.3.17"
│ │ │ │ -
542
│ │ │ │ -
543/* Define to the one symbol short name of this package. */
│ │ │ │ -
544#define PACKAGE_TARNAME "freetds"
│ │ │ │ -
545
│ │ │ │ -
546/* Define to the home page for this package. */
│ │ │ │ -
547#define PACKAGE_URL ""
│ │ │ │ -
548
│ │ │ │ -
549/* Define to the version of this package. */
│ │ │ │ -
550#define PACKAGE_VERSION "1.3.17"
│ │ │ │ -
551
│ │ │ │ -
552/* Define to necessary symbol if this constant uses a non-standard name on
│ │ │ │ -
553 your system. */
│ │ │ │ -
554/* #undef PTHREAD_CREATE_JOINABLE */
│ │ │ │ -
555
│ │ │ │ -
556/* The size of 'char', as computed by sizeof. */
│ │ │ │ -
557#define SIZEOF_CHAR 1
│ │ │ │ -
558
│ │ │ │ -
559/* The size of 'double', as computed by sizeof. */
│ │ │ │ -
560#define SIZEOF_DOUBLE 8
│ │ │ │ -
561
│ │ │ │ -
562/* The size of 'float', as computed by sizeof. */
│ │ │ │ -
563#define SIZEOF_FLOAT 4
│ │ │ │ -
564
│ │ │ │ -
565/* The size of 'int', as computed by sizeof. */
│ │ │ │ -
566#define SIZEOF_INT 4
│ │ │ │ -
567
│ │ │ │ -
568/* The size of 'long', as computed by sizeof. */
│ │ │ │ -
569#define SIZEOF_LONG 4
│ │ │ │ -
570
│ │ │ │ -
571/* The size of 'long double', as computed by sizeof. */
│ │ │ │ -
572#define SIZEOF_LONG_DOUBLE 12
│ │ │ │ -
573
│ │ │ │ -
574/* The size of 'long long', as computed by sizeof. */
│ │ │ │ -
575#define SIZEOF_LONG_LONG 8
│ │ │ │ -
576
│ │ │ │ -
577/* The size of 'short', as computed by sizeof. */
│ │ │ │ -
578#define SIZEOF_SHORT 2
│ │ │ │ -
579
│ │ │ │ -
580/* The size of 'SQLWCHAR', as computed by sizeof. */
│ │ │ │ -
581#define SIZEOF_SQLWCHAR 2
│ │ │ │ -
582
│ │ │ │ -
583/* The size of 'void *', as computed by sizeof. */
│ │ │ │ -
584#define SIZEOF_VOID_P 4
│ │ │ │ -
585
│ │ │ │ -
586/* The size of 'wchar_t', as computed by sizeof. */
│ │ │ │ -
587#define SIZEOF_WCHAR_T 4
│ │ │ │ -
588
│ │ │ │ -
589/* The size of '__int64', as computed by sizeof. */
│ │ │ │ -
590#define SIZEOF___INT64 0
│ │ │ │ -
591
│ │ │ │ -
592/* If using the C implementation of alloca, define if you know the
│ │ │ │ -
593 direction of stack growth for your system; otherwise it will be
│ │ │ │ -
594 automatically deduced at runtime.
│ │ │ │ -
595 STACK_DIRECTION > 0 => grows toward higher addresses
│ │ │ │ -
596 STACK_DIRECTION < 0 => grows toward lower addresses
│ │ │ │ -
597 STACK_DIRECTION = 0 => direction of growth unknown */
│ │ │ │ -
598/* #undef STACK_DIRECTION */
│ │ │ │ -
599
│ │ │ │ -
600/* Define to 1 if all of the C89 standard headers exist (not just the ones
│ │ │ │ -
601 required in a freestanding environment). This macro is provided for
│ │ │ │ -
602 backward compatibility; new code need not use it. */
│ │ │ │ -
603#define STDC_HEADERS 1
│ │ │ │ -
604
│ │ │ │ -
605/* Define to use TDS 5.0 by default */
│ │ │ │ -
606/* #undef TDS50 */
│ │ │ │ -
607
│ │ │ │ -
608/* Define to use TDS 7.1 by default */
│ │ │ │ -
609/* #undef TDS71 */
│ │ │ │ -
610
│ │ │ │ -
611/* Define to use TDS 7.2 by default */
│ │ │ │ -
612/* #undef TDS72 */
│ │ │ │ -
613
│ │ │ │ -
614/* Define to use TDS 7.3 by default */
│ │ │ │ -
615/* #undef TDS73 */
│ │ │ │ -
616
│ │ │ │ -
617/* Define to use TDS 7.4 by default */
│ │ │ │ -
618/* #undef TDS74 */
│ │ │ │ -
619
│ │ │ │ -
620/* Define to 1 if your compiler supports __attribute__((destructor)). */
│ │ │ │ -
621#define TDS_ATTRIBUTE_DESTRUCTOR 1
│ │ │ │ -
622
│ │ │ │ -
623/* define to constant to use for clock_gettime */
│ │ │ │ -
624#define TDS_GETTIMEMILLI_CONST CLOCK_MONOTONIC
│ │ │ │ -
625
│ │ │ │ -
626/* Define if you have pthread with mutex support */
│ │ │ │ -
627#define TDS_HAVE_PTHREAD_MUTEX 1
│ │ │ │ -
628
│ │ │ │ -
629/* Define if stdio support locking */
│ │ │ │ -
630#define TDS_HAVE_STDIO_LOCKED 1
│ │ │ │ -
631
│ │ │ │ -
632/* define to prefix format string used for 64bit integers */
│ │ │ │ -
633#define TDS_I64_PREFIX "ll"
│ │ │ │ -
634
│ │ │ │ -
635/* Define if you don't care about thread safety */
│ │ │ │ -
636/* #undef TDS_NO_THREADSAFE */
│ │ │ │ -
637
│ │ │ │ -
638/* Define to 1 if last argument of SQLColAttribute it's SQLLEN * */
│ │ │ │ -
639#define TDS_SQLCOLATTRIBUTE_SQLLEN 1
│ │ │ │ -
640
│ │ │ │ -
641/* Define to 1 if SQLParamOptions accept SQLULEN as arguments */
│ │ │ │ -
642#define TDS_SQLPARAMOPTIONS_SQLLEN 1
│ │ │ │ -
643
│ │ │ │ -
644/* Defined if --enable-sybase-compat used */
│ │ │ │ -
645#define TDS_SYBASE_COMPAT 1
│ │ │ │ -
646
│ │ │ │ -
647/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. This
│ │ │ │ -
648 macro is obsolete. */
│ │ │ │ -
649#define TIME_WITH_SYS_TIME 1
│ │ │ │ -
650
│ │ │ │ -
651/* Define to 1 if your <sys/time.h> declares 'struct tm'. */
│ │ │ │ -
652/* #undef TM_IN_SYS_TIME */
│ │ │ │ -
653
│ │ │ │ -
654/* Enable extensions on AIX, Interix, z/OS. */
│ │ │ │ -
655#ifndef _ALL_SOURCE
│ │ │ │ -
656# define _ALL_SOURCE 1
│ │ │ │ -
657#endif
│ │ │ │ -
658/* Enable general extensions on macOS. */
│ │ │ │ -
659#ifndef _DARWIN_C_SOURCE
│ │ │ │ -
660# define _DARWIN_C_SOURCE 1
│ │ │ │ -
661#endif
│ │ │ │ -
662/* Enable general extensions on Solaris. */
│ │ │ │ -
663#ifndef __EXTENSIONS__
│ │ │ │ -
664# define __EXTENSIONS__ 1
│ │ │ │ -
665#endif
│ │ │ │ -
666/* Enable GNU extensions on systems that have them. */
│ │ │ │ -
667#ifndef _GNU_SOURCE
│ │ │ │ -
668# define _GNU_SOURCE 1
│ │ │ │ -
669#endif
│ │ │ │ -
670/* Enable X/Open compliant socket functions that do not require linking
│ │ │ │ -
671 with -lxnet on HP-UX 11.11. */
│ │ │ │ -
672#ifndef _HPUX_ALT_XOPEN_SOCKET_API
│ │ │ │ -
673# define _HPUX_ALT_XOPEN_SOCKET_API 1
│ │ │ │ -
674#endif
│ │ │ │ -
675/* Identify the host operating system as Minix.
│ │ │ │ -
676 This macro does not affect the system headers' behavior.
│ │ │ │ -
677 A future release of Autoconf may stop defining this macro. */
│ │ │ │ -
678#ifndef _MINIX
│ │ │ │ -
679/* # undef _MINIX */
│ │ │ │ -
680#endif
│ │ │ │ -
681/* Enable general extensions on NetBSD.
│ │ │ │ -
682 Enable NetBSD compatibility extensions on Minix. */
│ │ │ │ -
683#ifndef _NETBSD_SOURCE
│ │ │ │ -
684# define _NETBSD_SOURCE 1
│ │ │ │ -
685#endif
│ │ │ │ -
686/* Enable OpenBSD compatibility extensions on NetBSD.
│ │ │ │ -
687 Oddly enough, this does nothing on OpenBSD. */
│ │ │ │ -
688#ifndef _OPENBSD_SOURCE
│ │ │ │ -
689# define _OPENBSD_SOURCE 1
│ │ │ │ -
690#endif
│ │ │ │ -
691/* Define to 1 if needed for POSIX-compatible behavior. */
│ │ │ │ -
692#ifndef _POSIX_SOURCE
│ │ │ │ -
693/* # undef _POSIX_SOURCE */
│ │ │ │ -
694#endif
│ │ │ │ -
695/* Define to 2 if needed for POSIX-compatible behavior. */
│ │ │ │ -
696#ifndef _POSIX_1_SOURCE
│ │ │ │ -
697/* # undef _POSIX_1_SOURCE */
│ │ │ │ -
698#endif
│ │ │ │ -
699/* Enable POSIX-compatible threading on Solaris. */
│ │ │ │ -
700#ifndef _POSIX_PTHREAD_SEMANTICS
│ │ │ │ -
701# define _POSIX_PTHREAD_SEMANTICS 1
│ │ │ │ -
702#endif
│ │ │ │ -
703/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
│ │ │ │ -
704#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
│ │ │ │ -
705# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
│ │ │ │ -
706#endif
│ │ │ │ -
707/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
│ │ │ │ -
708#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
│ │ │ │ -
709# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
│ │ │ │ -
710#endif
│ │ │ │ -
711/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
│ │ │ │ -
712#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
│ │ │ │ -
713# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
│ │ │ │ -
714#endif
│ │ │ │ -
715/* Enable extensions specified by C23 Annex F. */
│ │ │ │ -
716#ifndef __STDC_WANT_IEC_60559_EXT__
│ │ │ │ -
717# define __STDC_WANT_IEC_60559_EXT__ 1
│ │ │ │ -
718#endif
│ │ │ │ -
719/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
│ │ │ │ -
720#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
│ │ │ │ -
721# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
│ │ │ │ -
722#endif
│ │ │ │ -
723/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
│ │ │ │ -
724#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
│ │ │ │ -
725# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
│ │ │ │ -
726#endif
│ │ │ │ -
727/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
│ │ │ │ -
728#ifndef __STDC_WANT_LIB_EXT2__
│ │ │ │ -
729# define __STDC_WANT_LIB_EXT2__ 1
│ │ │ │ -
730#endif
│ │ │ │ -
731/* Enable extensions specified by ISO/IEC 24747:2009. */
│ │ │ │ -
732#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
│ │ │ │ -
733# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
│ │ │ │ -
734#endif
│ │ │ │ -
735/* Enable extensions on HP NonStop. */
│ │ │ │ -
736#ifndef _TANDEM_SOURCE
│ │ │ │ -
737# define _TANDEM_SOURCE 1
│ │ │ │ -
738#endif
│ │ │ │ -
739/* Enable X/Open extensions. Define to 500 only if necessary
│ │ │ │ -
740 to make mbstate_t available. */
│ │ │ │ -
741#ifndef _XOPEN_SOURCE
│ │ │ │ -
742/* # undef _XOPEN_SOURCE */
│ │ │ │ -
743#endif
│ │ │ │ -
744
│ │ │ │ -
745
│ │ │ │ -
746/* Version number of package */
│ │ │ │ -
747#define VERSION "1.3.17"
│ │ │ │ -
748
│ │ │ │ -
749/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
│ │ │ │ -
750 significant byte first (like Motorola and SPARC, unlike Intel). */
│ │ │ │ -
751#if defined AC_APPLE_UNIVERSAL_BUILD
│ │ │ │ -
752# if defined __BIG_ENDIAN__
│ │ │ │ -
753# define WORDS_BIGENDIAN 1
│ │ │ │ -
754# endif
│ │ │ │ -
755#else
│ │ │ │ -
756# ifndef WORDS_BIGENDIAN
│ │ │ │ -
757/* # undef WORDS_BIGENDIAN */
│ │ │ │ -
758# endif
│ │ │ │ -
759#endif
│ │ │ │ -
760
│ │ │ │ -
761/* Number of bits in a file offset, on hosts where this is settable. */
│ │ │ │ -
762#define _FILE_OFFSET_BITS 64
│ │ │ │ -
763
│ │ │ │ -
764/* Define to 1 if necessary to make fseeko visible. */
│ │ │ │ -
765/* #undef _LARGEFILE_SOURCE */
│ │ │ │ -
766
│ │ │ │ -
767/* Define to 1 on platforms where this makes off_t a 64-bit type. */
│ │ │ │ -
768/* #undef _LARGE_FILES */
│ │ │ │ -
769
│ │ │ │ -
770/* Number of bits in time_t, on hosts where this is settable. */
│ │ │ │ -
771/* #undef _TIME_BITS */
│ │ │ │ -
772
│ │ │ │ -
773/* Define to 1 on platforms where this makes time_t a 64-bit type. */
│ │ │ │ -
774/* #undef __MINGW_USE_VC2005_COMPAT */
│ │ │ │ -
775
│ │ │ │ -
776/* Define to empty if 'const' does not conform to ANSI C. */
│ │ │ │ -
777/* #undef const */
│ │ │ │ -
778
│ │ │ │ -
779/* Define to '__inline__' or '__inline' if that's what the C compiler
│ │ │ │ -
780 calls it, or to nothing if 'inline' is not supported under any name. */
│ │ │ │ -
781#ifndef __cplusplus
│ │ │ │ -
782/* #undef inline */
│ │ │ │ -
783#endif
│ │ │ │ -
784
│ │ │ │ -
785/* Define as 'unsigned int' if <stddef.h> doesn't define. */
│ │ │ │ -
786/* #undef size_t */
│ │ │ │ -
787
│ │ │ │ -
788/* type to use in place of socklen_t if not defined */
│ │ │ │ -
789/* #undef socklen_t */
│ │ │ │ +
54#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,805 +1,64 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -config.h │ │ │ │ │ -1/* include/config.h. Generated from config.h.in by configure. */ │ │ │ │ │ -2/* include/config.h.in. Generated from configure.ac by autoheader. */ │ │ │ │ │ -3 │ │ │ │ │ -4#define _freetds_config_h_ │ │ │ │ │ -5 │ │ │ │ │ -6/* Define if building universal (internal helper macro) */ │ │ │ │ │ -7/* #undef AC_APPLE_UNIVERSAL_BUILD */ │ │ │ │ │ -8 │ │ │ │ │ -9/* Define to 1 if you need BSD_COMP defined to get FIONBIO defined. */ │ │ │ │ │ -10/* #undef BSD_COMP */ │ │ │ │ │ -11 │ │ │ │ │ -12/* Define to 1 if using 'alloca.c'. */ │ │ │ │ │ -13/* #undef C_ALLOCA */ │ │ │ │ │ -14 │ │ │ │ │ -15/* Define to enable work in progress code */ │ │ │ │ │ -16/* #undef ENABLE_DEVELOPING */ │ │ │ │ │ -17 │ │ │ │ │ -18/* Define to enable extra checks on code */ │ │ │ │ │ -19/* #undef ENABLE_EXTRA_CHECKS */ │ │ │ │ │ -20 │ │ │ │ │ -21/* Defined if --enable-krb5 used and library detected */ │ │ │ │ │ -22#define ENABLE_KRB5 1 │ │ │ │ │ -23 │ │ │ │ │ -24/* Define to enable MARS support */ │ │ │ │ │ -25#define ENABLE_ODBC_MARS 1 │ │ │ │ │ -26 │ │ │ │ │ -27/* Define to enable ODBC wide string support */ │ │ │ │ │ -28#define ENABLE_ODBC_WIDE 1 │ │ │ │ │ -29 │ │ │ │ │ -30/* Define to 1 if GNU tls use nettle as backend. */ │ │ │ │ │ -31#define GNUTLS_USE_NETTLE 1 │ │ │ │ │ -32 │ │ │ │ │ -33/* Define to 1 if you have the 'alarm' function. */ │ │ │ │ │ -34#define HAVE_ALARM 1 │ │ │ │ │ -35 │ │ │ │ │ -36/* Define to 1 if you have 'alloca', as a function or macro. */ │ │ │ │ │ -37#define HAVE_ALLOCA 1 │ │ │ │ │ -38 │ │ │ │ │ -39/* Define to 1 if works. */ │ │ │ │ │ -40#define HAVE_ALLOCA_H 1 │ │ │ │ │ -41 │ │ │ │ │ -42/* Define to 1 if you have the header file. */ │ │ │ │ │ -43#define HAVE_ARPA_INET_H 1 │ │ │ │ │ -44 │ │ │ │ │ -45/* Define to 1 if you have the 'ASN1_STRING_get0_data' function. */ │ │ │ │ │ -46/* #undef HAVE_ASN1_STRING_GET0_DATA */ │ │ │ │ │ -47 │ │ │ │ │ -48/* Define to 1 if you have the 'asprintf' function. */ │ │ │ │ │ -49#define HAVE_ASPRINTF 1 │ │ │ │ │ -50 │ │ │ │ │ -51/* Define to 1 if you have the 'basename' function. */ │ │ │ │ │ -52#define HAVE_BASENAME 1 │ │ │ │ │ +syberror.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _syberror_h_ │ │ │ │ │ +21#define _syberror_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#ifdef __cplusplus │ │ │ │ │ +24extern "C" │ │ │ │ │ +25{ │ │ │ │ │ +26#if 0 │ │ │ │ │ +27} │ │ │ │ │ +28#endif │ │ │ │ │ +29#endif │ │ │ │ │ +30 │ │ │ │ │ +31static const char rcsid_syberror_h[] = "$Id: syberror.h,v 1.4 2004-10-28 12: │ │ │ │ │ +42:12 freddy77 Exp $"; │ │ │ │ │ +32static const void *const no_unused_syberror_h_warn[] = { rcsid_syberror_h, │ │ │ │ │ +no_unused_syberror_h_warn }; │ │ │ │ │ +33 │ │ │ │ │ +34/* severity levels, gleaned from google */ │ │ │ │ │ +35#define EXINFO 1 │ │ │ │ │ +36#define EXUSER 2 │ │ │ │ │ +37#define EXNONFATAL 3 │ │ │ │ │ +38#define EXCONVERSION 4 │ │ │ │ │ +39#define EXSERVER 5 │ │ │ │ │ +40#define EXTIME 6 │ │ │ │ │ +41#define EXPROGRAM 7 │ │ │ │ │ +42#define EXRESOURCE 8 │ │ │ │ │ +43#define EXCOMM 9 │ │ │ │ │ +44#define EXFATAL 10 │ │ │ │ │ +45#define EXCONSISTENCY 11 │ │ │ │ │ +46 │ │ │ │ │ +47#ifdef __cplusplus │ │ │ │ │ +48#if 0 │ │ │ │ │ +49{ │ │ │ │ │ +50#endif │ │ │ │ │ +51} │ │ │ │ │ +52#endif │ │ │ │ │ 53 │ │ │ │ │ -54/* Define to 1 if you have the 'BIO_get_data' function. */ │ │ │ │ │ -55/* #undef HAVE_BIO_GET_DATA */ │ │ │ │ │ -56 │ │ │ │ │ -57/* Define if you have the clock_gettime function. */ │ │ │ │ │ -58#define HAVE_CLOCK_GETTIME 1 │ │ │ │ │ -59 │ │ │ │ │ -60/* Define to 1 if you have the header file. */ │ │ │ │ │ -61#define HAVE_COM_ERR_H 1 │ │ │ │ │ -62 │ │ │ │ │ -63/* Define to 1 if you have the 'daemon' function. */ │ │ │ │ │ -64#define HAVE_DAEMON 1 │ │ │ │ │ -65 │ │ │ │ │ -66/* Define to 1 if you have the declaration of 'tzname', and to 0 if you │ │ │ │ │ -don't. │ │ │ │ │ -67 */ │ │ │ │ │ -68/* #undef HAVE_DECL_TZNAME */ │ │ │ │ │ -69 │ │ │ │ │ -70/* Define to 1 if you have the header file. */ │ │ │ │ │ -71#define HAVE_DIRENT_H 1 │ │ │ │ │ -72 │ │ │ │ │ -73/* Define to 1 if you have the header file. */ │ │ │ │ │ -74#define HAVE_DLFCN_H 1 │ │ │ │ │ -75 │ │ │ │ │ -76/* Define to 1 if you have the header file. */ │ │ │ │ │ -77#define HAVE_ERRNO_H 1 │ │ │ │ │ -78 │ │ │ │ │ -79/* Define to 1 if you have the 'error_message' function. */ │ │ │ │ │ -80/* #undef HAVE_ERROR_MESSAGE */ │ │ │ │ │ -81 │ │ │ │ │ -82/* Define to 1 if you have the 'eventfd' function. */ │ │ │ │ │ -83#define HAVE_EVENTFD 1 │ │ │ │ │ -84 │ │ │ │ │ -85/* Define to 1 if you have the header file. */ │ │ │ │ │ -86#define HAVE_FCNTL_H 1 │ │ │ │ │ -87 │ │ │ │ │ -88/* Define to 1 if you have the 'fork' function. */ │ │ │ │ │ -89#define HAVE_FORK 1 │ │ │ │ │ -90 │ │ │ │ │ -91/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */ │ │ │ │ │ -92#define HAVE_FSEEKO 1 │ │ │ │ │ -93 │ │ │ │ │ -94/* Define to 1 if you have the 'fstat' function. */ │ │ │ │ │ -95#define HAVE_FSTAT 1 │ │ │ │ │ -96 │ │ │ │ │ -97/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ -98 gethostbyaddr_r(). */ │ │ │ │ │ -99/* #undef HAVE_FUNC_GETHOSTBYADDR_R_5 */ │ │ │ │ │ -100 │ │ │ │ │ -101/* Define to 1 if your system provides the 7-parameter version of │ │ │ │ │ -102 gethostbyaddr_r(). */ │ │ │ │ │ -103/* #undef HAVE_FUNC_GETHOSTBYADDR_R_7 */ │ │ │ │ │ -104 │ │ │ │ │ -105/* Define to 1 if your system provides the 8-parameter version of │ │ │ │ │ -106 gethostbyaddr_r(). */ │ │ │ │ │ -107#define HAVE_FUNC_GETHOSTBYADDR_R_8 1 │ │ │ │ │ -108 │ │ │ │ │ -109/* Define to 1 if your system provides the 3-parameter version of │ │ │ │ │ -110 gethostbyname_r(). */ │ │ │ │ │ -111/* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */ │ │ │ │ │ -112 │ │ │ │ │ -113/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ -114 gethostbyname_r(). */ │ │ │ │ │ -115/* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */ │ │ │ │ │ -116 │ │ │ │ │ -117/* Define to 1 if your system provides the 6-parameter version of │ │ │ │ │ -118 gethostbyname_r(). */ │ │ │ │ │ -119#define HAVE_FUNC_GETHOSTBYNAME_R_6 1 │ │ │ │ │ -120 │ │ │ │ │ -121/* Define to 1 if your system provides the 4-parameter version of │ │ │ │ │ -122 getpwuid_r(). */ │ │ │ │ │ -123/* #undef HAVE_FUNC_GETPWUID_R_4 */ │ │ │ │ │ -124 │ │ │ │ │ -125/* Define to 1 if your system getpwuid_r() have 4 parameters and return │ │ │ │ │ -struct │ │ │ │ │ -126 passwd*. */ │ │ │ │ │ -127/* #undef HAVE_FUNC_GETPWUID_R_4_PW */ │ │ │ │ │ -128 │ │ │ │ │ -129/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ -130 getpwuid_r(). */ │ │ │ │ │ -131#define HAVE_FUNC_GETPWUID_R_5 1 │ │ │ │ │ -132 │ │ │ │ │ -133/* Define to 1 if your system provides the 4-parameter version of │ │ │ │ │ -134 getservbyname_r(). */ │ │ │ │ │ -135/* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */ │ │ │ │ │ -136 │ │ │ │ │ -137/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ -138 getservbyname_r(). */ │ │ │ │ │ -139/* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */ │ │ │ │ │ -140 │ │ │ │ │ -141/* Define to 1 if your system provides the 6-parameter version of │ │ │ │ │ -142 getservbyname_r(). */ │ │ │ │ │ -143#define HAVE_FUNC_GETSERVBYNAME_R_6 1 │ │ │ │ │ -144 │ │ │ │ │ -145/* Define to 1 if your localtime_r return a int. */ │ │ │ │ │ -146/* #undef HAVE_FUNC_LOCALTIME_R_INT */ │ │ │ │ │ -147 │ │ │ │ │ -148/* Define to 1 if your localtime_r return a struct tm*. */ │ │ │ │ │ -149#define HAVE_FUNC_LOCALTIME_R_TM 1 │ │ │ │ │ -150 │ │ │ │ │ -151/* Define if you have getaddrinfo function */ │ │ │ │ │ -152#define HAVE_GETADDRINFO 1 │ │ │ │ │ -153 │ │ │ │ │ -154/* Define to 1 if you have the 'gethostname' function. */ │ │ │ │ │ -155#define HAVE_GETHOSTNAME 1 │ │ │ │ │ -156 │ │ │ │ │ -157/* Define to 1 if you have the 'gethrtime' function. */ │ │ │ │ │ -158/* #undef HAVE_GETHRTIME */ │ │ │ │ │ -159 │ │ │ │ │ -160/* Define to 1 if you have the 'getipnodebyaddr' function. */ │ │ │ │ │ -161/* #undef HAVE_GETIPNODEBYADDR */ │ │ │ │ │ -162 │ │ │ │ │ -163/* Define to 1 if you have the 'getipnodebyname' function. */ │ │ │ │ │ -164/* #undef HAVE_GETIPNODEBYNAME */ │ │ │ │ │ -165 │ │ │ │ │ -166/* Define to 1 if you have the 'getopt' function. */ │ │ │ │ │ -167#define HAVE_GETOPT 1 │ │ │ │ │ -168 │ │ │ │ │ -169/* Define to 1 if you have the header file. */ │ │ │ │ │ -170#define HAVE_GETOPT_H 1 │ │ │ │ │ -171 │ │ │ │ │ -172/* Define if your getopt(3) defines and uses optreset */ │ │ │ │ │ -173/* #undef HAVE_GETOPT_OPTRESET */ │ │ │ │ │ -174 │ │ │ │ │ -175/* Define to 1 if you have the 'getpwuid' function. */ │ │ │ │ │ -176#define HAVE_GETPWUID 1 │ │ │ │ │ -177 │ │ │ │ │ -178/* Define to 1 if you have the 'getpwuid_r' function. */ │ │ │ │ │ -179#define HAVE_GETPWUID_R 1 │ │ │ │ │ -180 │ │ │ │ │ -181/* Define to 1 if you have the 'gettimeofday' function. */ │ │ │ │ │ -182#define HAVE_GETTIMEOFDAY 1 │ │ │ │ │ -183 │ │ │ │ │ -184/* Define to 1 if you have the 'getuid' function. */ │ │ │ │ │ -185#define HAVE_GETUID 1 │ │ │ │ │ -186 │ │ │ │ │ -187/* Define if you have GMP library */ │ │ │ │ │ -188#define HAVE_GMP 1 │ │ │ │ │ -189 │ │ │ │ │ -190/* Define to 1 if you have GnuTLS. */ │ │ │ │ │ -191#define HAVE_GNUTLS 1 │ │ │ │ │ -192 │ │ │ │ │ -193/* Define to 1 if you have the header file. */ │ │ │ │ │ -194#define HAVE_GNUTLS_ABSTRACT_H 1 │ │ │ │ │ -195 │ │ │ │ │ -196/* Define to 1 if you have the 'gnutls_certificate_set_verify_function' │ │ │ │ │ -197 function. */ │ │ │ │ │ -198#define HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION 1 │ │ │ │ │ -199 │ │ │ │ │ -200/* Define to 1 if you have the 'gnutls_record_disable_padding' function. */ │ │ │ │ │ -201#define HAVE_GNUTLS_RECORD_DISABLE_PADDING 1 │ │ │ │ │ -202 │ │ │ │ │ -203/* Define to 1 if you have the 'gnutls_rnd' function. */ │ │ │ │ │ -204#define HAVE_GNUTLS_RND 1 │ │ │ │ │ -205 │ │ │ │ │ -206/* Define if you have the iconv() function and it works. */ │ │ │ │ │ -207#define HAVE_ICONV 1 │ │ │ │ │ -208 │ │ │ │ │ -209/* Define to 1 if you have the 'inet_ntoa_r' function. */ │ │ │ │ │ -210/* #undef HAVE_INET_NTOA_R */ │ │ │ │ │ -211 │ │ │ │ │ -212/* Define to 1 if you have the 'inet_ntop' function. */ │ │ │ │ │ -213#define HAVE_INET_NTOP 1 │ │ │ │ │ -214 │ │ │ │ │ -215/* Define to 1 if you have the header file. */ │ │ │ │ │ -216#define HAVE_INTTYPES_H 1 │ │ │ │ │ -217 │ │ │ │ │ -218/* Define to 1 if you have the header file. */ │ │ │ │ │ -219/* #undef HAVE_IODBCINST_H */ │ │ │ │ │ -220 │ │ │ │ │ -221/* Define to 1 if you have the header file. */ │ │ │ │ │ -222#define HAVE_LANGINFO_H 1 │ │ │ │ │ -223 │ │ │ │ │ -224/* Define to 1 if you have the header file. */ │ │ │ │ │ -225#define HAVE_LIBGEN_H 1 │ │ │ │ │ -226 │ │ │ │ │ -227/* Define to 1 if you have the header file. */ │ │ │ │ │ -228#define HAVE_LIMITS_H 1 │ │ │ │ │ -229 │ │ │ │ │ -230/* Define to 1 if you have the header file. */ │ │ │ │ │ -231/* #undef HAVE_LOCALCHARSET_H */ │ │ │ │ │ -232 │ │ │ │ │ -233/* Define to 1 if you have the 'locale_charset' function. */ │ │ │ │ │ -234/* #undef HAVE_LOCALE_CHARSET */ │ │ │ │ │ -235 │ │ │ │ │ -236/* Define to 1 if you have the header file. */ │ │ │ │ │ -237#define HAVE_LOCALE_H 1 │ │ │ │ │ -238 │ │ │ │ │ -239/* Define to 1 if you have the 'localtime_r' function. */ │ │ │ │ │ -240#define HAVE_LOCALTIME_R 1 │ │ │ │ │ -241 │ │ │ │ │ -242/* Define to 1 if you have the header file. */ │ │ │ │ │ -243#define HAVE_MALLOC_H 1 │ │ │ │ │ -244 │ │ │ │ │ -245/* Define to 1 if your system provides the malloc_options variable. */ │ │ │ │ │ -246/* #undef HAVE_MALLOC_OPTIONS */ │ │ │ │ │ -247 │ │ │ │ │ -248/* Define to 1 if you have the header file. */ │ │ │ │ │ -249/* #undef HAVE_MINIX_CONFIG_H */ │ │ │ │ │ -250 │ │ │ │ │ -251/* Define to 1 if you have the 'nanosleep' function. */ │ │ │ │ │ -252#define HAVE_NANOSLEEP 1 │ │ │ │ │ -253 │ │ │ │ │ -254/* Define to 1 if you have the header file. */ │ │ │ │ │ -255#define HAVE_NETDB_H 1 │ │ │ │ │ -256 │ │ │ │ │ -257/* Define to 1 if you have the header file. */ │ │ │ │ │ -258#define HAVE_NETINET_IN_H 1 │ │ │ │ │ -259 │ │ │ │ │ -260/* Define to 1 if you have the header file. */ │ │ │ │ │ -261#define HAVE_NETINET_TCP_H 1 │ │ │ │ │ -262 │ │ │ │ │ -263/* Define to 1 if nettle is present. */ │ │ │ │ │ -264#define HAVE_NETTLE 1 │ │ │ │ │ -265 │ │ │ │ │ -266/* Define to 1 if you have the 'nl_langinfo' function. */ │ │ │ │ │ -267#define HAVE_NL_LANGINFO 1 │ │ │ │ │ -268 │ │ │ │ │ -269/* Define to 1 if you have the header file. */ │ │ │ │ │ -270/* #undef HAVE_ODBCSS_H */ │ │ │ │ │ -271 │ │ │ │ │ -272/* Define if you have the OpenSSL. */ │ │ │ │ │ -273/* #undef HAVE_OPENSSL */ │ │ │ │ │ -274 │ │ │ │ │ -275/* Define to 1 if you have the header file. */ │ │ │ │ │ -276#define HAVE_PATHS_H 1 │ │ │ │ │ -277 │ │ │ │ │ -278/* Define to 1 if you have the 'poll' function. */ │ │ │ │ │ -279#define HAVE_POLL 1 │ │ │ │ │ -280 │ │ │ │ │ -281/* Define to 1 if you have the header file. */ │ │ │ │ │ -282#define HAVE_POLL_H 1 │ │ │ │ │ -283 │ │ │ │ │ -284/* Define if you have POSIX threads libraries and header files. */ │ │ │ │ │ -285#define HAVE_PTHREAD 1 │ │ │ │ │ -286 │ │ │ │ │ -287/* Define to 1 if you have the 'pthread_condattr_setclock' function. */ │ │ │ │ │ -288#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1 │ │ │ │ │ -289 │ │ │ │ │ -290/* Define to 1 if you have the 'pthread_cond_timedwait' function. */ │ │ │ │ │ -291#define HAVE_PTHREAD_COND_TIMEDWAIT 1 │ │ │ │ │ -292 │ │ │ │ │ -293/* Define to 1 if you have the 'pthread_cond_timedwait_relative_np' │ │ │ │ │ -function. │ │ │ │ │ -294 */ │ │ │ │ │ -295/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */ │ │ │ │ │ -296 │ │ │ │ │ -297/* Define to 1 if you have the 'putenv' function. */ │ │ │ │ │ -298#define HAVE_PUTENV 1 │ │ │ │ │ -299 │ │ │ │ │ -300/* Define to 1 if you have the 'readdir_r' function. */ │ │ │ │ │ -301#define HAVE_READDIR_R 1 │ │ │ │ │ -302 │ │ │ │ │ -303/* Define to 1 if you have the GNU Readline library. */ │ │ │ │ │ -304#define HAVE_READLINE 1 │ │ │ │ │ -305 │ │ │ │ │ -306/* Define to 1 if you have the 'readpassphrase' function. */ │ │ │ │ │ -307/* #undef HAVE_READPASSPHRASE */ │ │ │ │ │ -308 │ │ │ │ │ -309/* Define to 1 if you have rl_inhibit_completion. */ │ │ │ │ │ -310#define HAVE_RL_INHIBIT_COMPLETION 1 │ │ │ │ │ -311 │ │ │ │ │ -312/* Define to 1 if you have the 'rl_on_new_line' function. */ │ │ │ │ │ -313#define HAVE_RL_ON_NEW_LINE 1 │ │ │ │ │ -314 │ │ │ │ │ -315/* Define to 1 if you have the 'rl_reset_line_state' function. */ │ │ │ │ │ -316#define HAVE_RL_RESET_LINE_STATE 1 │ │ │ │ │ -317 │ │ │ │ │ -318/* Define to 1 if you have the header file. */ │ │ │ │ │ -319/* #undef HAVE_ROKEN_H */ │ │ │ │ │ -320 │ │ │ │ │ -321/* Define to 1 if you have the 'RSA_get0_key' function. */ │ │ │ │ │ -322/* #undef HAVE_RSA_GET0_KEY */ │ │ │ │ │ -323 │ │ │ │ │ -324/* Define to 1 if you have the 'setenv' function. */ │ │ │ │ │ -325#define HAVE_SETENV 1 │ │ │ │ │ -326 │ │ │ │ │ -327/* Define to 1 if you have the 'setitimer' function. */ │ │ │ │ │ -328#define HAVE_SETITIMER 1 │ │ │ │ │ -329 │ │ │ │ │ -330/* Define to 1 if you have the 'setrlimit' function. */ │ │ │ │ │ -331#define HAVE_SETRLIMIT 1 │ │ │ │ │ -332 │ │ │ │ │ -333/* Define to 1 if you have the header file. */ │ │ │ │ │ -334#define HAVE_SIGNAL_H 1 │ │ │ │ │ -335 │ │ │ │ │ -336/* Define to 1 if you have the 'socketpair' function. */ │ │ │ │ │ -337#define HAVE_SOCKETPAIR 1 │ │ │ │ │ -338 │ │ │ │ │ -339/* Define to 1 if you have the SQLGetPrivateProfileString function. */ │ │ │ │ │ -340#define HAVE_SQLGETPRIVATEPROFILESTRING 1 │ │ │ │ │ -341 │ │ │ │ │ -342/* Define if sqltypes.h define SQLLEN */ │ │ │ │ │ -343#define HAVE_SQLLEN 1 │ │ │ │ │ -344 │ │ │ │ │ -345/* Define to 1 if the system has the type 'SQLROWOFFSET'. */ │ │ │ │ │ -346#define HAVE_SQLROWOFFSET 1 │ │ │ │ │ -347 │ │ │ │ │ -348/* Define to 1 if the system has the type 'SQLROWSETSIZE'. */ │ │ │ │ │ -349#define HAVE_SQLROWSETSIZE 1 │ │ │ │ │ -350 │ │ │ │ │ -351/* Define to 1 if the system has the type 'SQLSETPOSIROW'. */ │ │ │ │ │ -352#define HAVE_SQLSETPOSIROW 1 │ │ │ │ │ -353 │ │ │ │ │ -354/* Define to 1 if you have the header file. */ │ │ │ │ │ -355#define HAVE_SQL_H 1 │ │ │ │ │ -356 │ │ │ │ │ -357/* Defined if not --disable-sspi and SSPI detected */ │ │ │ │ │ -358/* #undef HAVE_SSPI */ │ │ │ │ │ -359 │ │ │ │ │ -360/* Define to 1 if you have the header file. */ │ │ │ │ │ -361#define HAVE_STDBOOL_H 1 │ │ │ │ │ -362 │ │ │ │ │ -363/* Define to 1 if you have the header file. */ │ │ │ │ │ -364#define HAVE_STDDEF_H 1 │ │ │ │ │ -365 │ │ │ │ │ -366/* Define to 1 if you have the header file. */ │ │ │ │ │ -367#define HAVE_STDINT_H 1 │ │ │ │ │ -368 │ │ │ │ │ -369/* Define to 1 if you have the header file. */ │ │ │ │ │ -370#define HAVE_STDIO_H 1 │ │ │ │ │ -371 │ │ │ │ │ -372/* Define to 1 if you have the header file. */ │ │ │ │ │ -373#define HAVE_STDLIB_H 1 │ │ │ │ │ -374 │ │ │ │ │ -375/* Define to 1 if you have the header file. */ │ │ │ │ │ -376#define HAVE_STRINGS_H 1 │ │ │ │ │ -377 │ │ │ │ │ -378/* Define to 1 if you have the header file. */ │ │ │ │ │ -379#define HAVE_STRING_H 1 │ │ │ │ │ -380 │ │ │ │ │ -381/* Define to 1 if you have the 'strlcat' function. */ │ │ │ │ │ -382#define HAVE_STRLCAT 1 │ │ │ │ │ -383 │ │ │ │ │ -384/* Define to 1 if you have the 'strlcpy' function. */ │ │ │ │ │ -385#define HAVE_STRLCPY 1 │ │ │ │ │ -386 │ │ │ │ │ -387/* Define to 1 if you have the 'strsep' function. */ │ │ │ │ │ -388#define HAVE_STRSEP 1 │ │ │ │ │ -389 │ │ │ │ │ -390/* Define to 1 if you have the 'strtok_r' function. */ │ │ │ │ │ -391#define HAVE_STRTOK_R 1 │ │ │ │ │ -392 │ │ │ │ │ -393/* Define to 1 if you have the 'strtok_s' function. */ │ │ │ │ │ -394/* #undef HAVE_STRTOK_S */ │ │ │ │ │ -395 │ │ │ │ │ -396/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ │ │ │ │ │ -397#define HAVE_STRUCT_TM_TM_ZONE 1 │ │ │ │ │ -398 │ │ │ │ │ -399/* Define to 1 if '__tm_zone' is a member of 'struct tm'. */ │ │ │ │ │ -400/* #undef HAVE_STRUCT_TM___TM_ZONE */ │ │ │ │ │ -401 │ │ │ │ │ -402/* Define to 1 if you have the 'system' function */ │ │ │ │ │ -403#define HAVE_SYSTEM 1 │ │ │ │ │ -404 │ │ │ │ │ -405/* Define to 1 if you have the header file. */ │ │ │ │ │ -406#define HAVE_SYS_EVENTFD_H 1 │ │ │ │ │ -407 │ │ │ │ │ -408/* Define to 1 if you have the header file. */ │ │ │ │ │ -409#define HAVE_SYS_IOCTL_H 1 │ │ │ │ │ -410 │ │ │ │ │ -411/* Define to 1 if you have the header file. */ │ │ │ │ │ -412#define HAVE_SYS_PARAM_H 1 │ │ │ │ │ -413 │ │ │ │ │ -414/* Define to 1 if you have the header file. */ │ │ │ │ │ -415#define HAVE_SYS_RESOURCE_H 1 │ │ │ │ │ -416 │ │ │ │ │ -417/* Define to 1 if you have the header file. */ │ │ │ │ │ -418#define HAVE_SYS_SELECT_H 1 │ │ │ │ │ -419 │ │ │ │ │ -420/* Define to 1 if you have the header file. */ │ │ │ │ │ -421#define HAVE_SYS_SOCKET_H 1 │ │ │ │ │ -422 │ │ │ │ │ -423/* Define to 1 if you have the header file. */ │ │ │ │ │ -424#define HAVE_SYS_STAT_H 1 │ │ │ │ │ -425 │ │ │ │ │ -426/* Define to 1 if you have the header file. */ │ │ │ │ │ -427#define HAVE_SYS_TIME_H 1 │ │ │ │ │ -428 │ │ │ │ │ -429/* Define to 1 if you have the header file. */ │ │ │ │ │ -430#define HAVE_SYS_TYPES_H 1 │ │ │ │ │ -431 │ │ │ │ │ -432/* Define to 1 if you have the header file. */ │ │ │ │ │ -433#define HAVE_SYS_WAIT_H 1 │ │ │ │ │ -434 │ │ │ │ │ -435/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use │ │ │ │ │ -436 'HAVE_STRUCT_TM_TM_ZONE' instead. */ │ │ │ │ │ -437#define HAVE_TM_ZONE 1 │ │ │ │ │ -438 │ │ │ │ │ -439/* Define to 1 if you don't have 'tm_zone' but do have the external array │ │ │ │ │ -440 'tzname'. */ │ │ │ │ │ -441/* #undef HAVE_TZNAME */ │ │ │ │ │ -442 │ │ │ │ │ -443/* Define to 1 if you have the header file. */ │ │ │ │ │ -444#define HAVE_UNISTD_H 1 │ │ │ │ │ -445 │ │ │ │ │ -446/* Define to 1 if you have the 'usleep' function. */ │ │ │ │ │ -447#define HAVE_USLEEP 1 │ │ │ │ │ -448 │ │ │ │ │ -449/* Define to 1 if you have the header file. */ │ │ │ │ │ -450/* #undef HAVE_VALGRIND_MEMCHECK_H */ │ │ │ │ │ -451 │ │ │ │ │ -452/* Define to 1 if you have the 'vasprintf' function. */ │ │ │ │ │ -453#define HAVE_VASPRINTF 1 │ │ │ │ │ -454 │ │ │ │ │ -455/* Define to 1 if you have the 'vsnprintf' function. */ │ │ │ │ │ -456#define HAVE_VSNPRINTF 1 │ │ │ │ │ -457 │ │ │ │ │ -458/* Define to 1 if you have the header file. */ │ │ │ │ │ -459#define HAVE_WCHAR_H 1 │ │ │ │ │ -460 │ │ │ │ │ -461/* Define to 1 if you have the header file. */ │ │ │ │ │ -462/* #undef HAVE_WINDOWS_H */ │ │ │ │ │ -463 │ │ │ │ │ -464/* Define to 1 if you have the header file. */ │ │ │ │ │ -465/* #undef HAVE_WINSOCK2_H */ │ │ │ │ │ -466 │ │ │ │ │ -467/* Define to 1 if you have the '_fseeki64' function. */ │ │ │ │ │ -468/* #undef HAVE__FSEEKI64 */ │ │ │ │ │ -469 │ │ │ │ │ -470/* Define to 1 if you have the '_ftelli64' function. */ │ │ │ │ │ -471/* #undef HAVE__FTELLI64 */ │ │ │ │ │ -472 │ │ │ │ │ -473/* Define to 1 if you have the '_lock_file' function. */ │ │ │ │ │ -474/* #undef HAVE__LOCK_FILE */ │ │ │ │ │ -475 │ │ │ │ │ -476/* Define to 1 if you have the '_unlock_file' function. */ │ │ │ │ │ -477/* #undef HAVE__UNLOCK_FILE */ │ │ │ │ │ -478 │ │ │ │ │ -479/* Define to 1 if you have the '_vscprintf' function. */ │ │ │ │ │ -480/* #undef HAVE__VSCPRINTF */ │ │ │ │ │ -481 │ │ │ │ │ -482/* Define to 1 if you have the '_vsnprintf' function. */ │ │ │ │ │ -483/* #undef HAVE__VSNPRINTF */ │ │ │ │ │ -484 │ │ │ │ │ -485/* Define to 1 if you have the '_xpg_accept' function. */ │ │ │ │ │ -486/* #undef HAVE__XPG_ACCEPT */ │ │ │ │ │ -487 │ │ │ │ │ -488/* Define to 1 if you have the '_xpg_getpeername' function. */ │ │ │ │ │ -489/* #undef HAVE__XPG_GETPEERNAME */ │ │ │ │ │ -490 │ │ │ │ │ -491/* Define to 1 if you have the '_xpg_getsockname' function. */ │ │ │ │ │ -492/* #undef HAVE__XPG_GETSOCKNAME */ │ │ │ │ │ -493 │ │ │ │ │ -494/* Define to 1 if you have the '_xpg_getsockopt' function. */ │ │ │ │ │ -495/* #undef HAVE__XPG_GETSOCKOPT */ │ │ │ │ │ -496 │ │ │ │ │ -497/* Define to 1 if you have the '_xpg_recvfrom' function. */ │ │ │ │ │ -498/* #undef HAVE__XPG_RECVFROM */ │ │ │ │ │ -499 │ │ │ │ │ -500/* Define to 1 if you have the '__accept' function. */ │ │ │ │ │ -501/* #undef HAVE___ACCEPT */ │ │ │ │ │ -502 │ │ │ │ │ -503/* Define to 1 if you have the '__getpeername' function. */ │ │ │ │ │ -504/* #undef HAVE___GETPEERNAME */ │ │ │ │ │ -505 │ │ │ │ │ -506/* Define to 1 if you have the '__getsockname' function. */ │ │ │ │ │ -507/* #undef HAVE___GETSOCKNAME */ │ │ │ │ │ -508 │ │ │ │ │ -509/* Define to 1 if you have the '__getsockopt' function. */ │ │ │ │ │ -510/* #undef HAVE___GETSOCKOPT */ │ │ │ │ │ -511 │ │ │ │ │ -512/* Define to 1 if you have the '__recvfrom' function. */ │ │ │ │ │ -513/* #undef HAVE___RECVFROM */ │ │ │ │ │ -514 │ │ │ │ │ -515/* Define as const if the declaration of iconv() needs const. */ │ │ │ │ │ -516#define ICONV_CONST │ │ │ │ │ -517 │ │ │ │ │ -518/* Define to value of INADDR_NONE if not provided by your system header │ │ │ │ │ -files. │ │ │ │ │ -519 */ │ │ │ │ │ -520/* #undef INADDR_NONE */ │ │ │ │ │ -521 │ │ │ │ │ -522/* Define to the sub-directory where libtool stores uninstalled libraries. │ │ │ │ │ -*/ │ │ │ │ │ -523#define LT_OBJDIR ".libs/" │ │ │ │ │ -524 │ │ │ │ │ -525/* Define to 1 if the BSD-style netdb interface is reentrant. */ │ │ │ │ │ -526/* #undef NETDB_REENTRANT */ │ │ │ │ │ -527 │ │ │ │ │ -528/* Define to 1 if memset(0) sets pointers to NULL. */ │ │ │ │ │ -529#define NULL_REP_IS_ZERO_BYTES 1 │ │ │ │ │ -530 │ │ │ │ │ -531/* Name of package */ │ │ │ │ │ -532#define PACKAGE "freetds" │ │ │ │ │ -533 │ │ │ │ │ -534/* Define to the address where bug reports for this package should be sent. │ │ │ │ │ -*/ │ │ │ │ │ -535#define PACKAGE_BUGREPORT "" │ │ │ │ │ -536 │ │ │ │ │ -537/* Define to the full name of this package. */ │ │ │ │ │ -538#define PACKAGE_NAME "FreeTDS" │ │ │ │ │ -539 │ │ │ │ │ -540/* Define to the full name and version of this package. */ │ │ │ │ │ -541#define PACKAGE_STRING "FreeTDS 1.3.17" │ │ │ │ │ -542 │ │ │ │ │ -543/* Define to the one symbol short name of this package. */ │ │ │ │ │ -544#define PACKAGE_TARNAME "freetds" │ │ │ │ │ -545 │ │ │ │ │ -546/* Define to the home page for this package. */ │ │ │ │ │ -547#define PACKAGE_URL "" │ │ │ │ │ -548 │ │ │ │ │ -549/* Define to the version of this package. */ │ │ │ │ │ -550#define PACKAGE_VERSION "1.3.17" │ │ │ │ │ -551 │ │ │ │ │ -552/* Define to necessary symbol if this constant uses a non-standard name on │ │ │ │ │ -553 your system. */ │ │ │ │ │ -554/* #undef PTHREAD_CREATE_JOINABLE */ │ │ │ │ │ -555 │ │ │ │ │ -556/* The size of 'char', as computed by sizeof. */ │ │ │ │ │ -557#define SIZEOF_CHAR 1 │ │ │ │ │ -558 │ │ │ │ │ -559/* The size of 'double', as computed by sizeof. */ │ │ │ │ │ -560#define SIZEOF_DOUBLE 8 │ │ │ │ │ -561 │ │ │ │ │ -562/* The size of 'float', as computed by sizeof. */ │ │ │ │ │ -563#define SIZEOF_FLOAT 4 │ │ │ │ │ -564 │ │ │ │ │ -565/* The size of 'int', as computed by sizeof. */ │ │ │ │ │ -566#define SIZEOF_INT 4 │ │ │ │ │ -567 │ │ │ │ │ -568/* The size of 'long', as computed by sizeof. */ │ │ │ │ │ -569#define SIZEOF_LONG 4 │ │ │ │ │ -570 │ │ │ │ │ -571/* The size of 'long double', as computed by sizeof. */ │ │ │ │ │ -572#define SIZEOF_LONG_DOUBLE 12 │ │ │ │ │ -573 │ │ │ │ │ -574/* The size of 'long long', as computed by sizeof. */ │ │ │ │ │ -575#define SIZEOF_LONG_LONG 8 │ │ │ │ │ -576 │ │ │ │ │ -577/* The size of 'short', as computed by sizeof. */ │ │ │ │ │ -578#define SIZEOF_SHORT 2 │ │ │ │ │ -579 │ │ │ │ │ -580/* The size of 'SQLWCHAR', as computed by sizeof. */ │ │ │ │ │ -581#define SIZEOF_SQLWCHAR 2 │ │ │ │ │ -582 │ │ │ │ │ -583/* The size of 'void *', as computed by sizeof. */ │ │ │ │ │ -584#define SIZEOF_VOID_P 4 │ │ │ │ │ -585 │ │ │ │ │ -586/* The size of 'wchar_t', as computed by sizeof. */ │ │ │ │ │ -587#define SIZEOF_WCHAR_T 4 │ │ │ │ │ -588 │ │ │ │ │ -589/* The size of '__int64', as computed by sizeof. */ │ │ │ │ │ -590#define SIZEOF___INT64 0 │ │ │ │ │ -591 │ │ │ │ │ -592/* If using the C implementation of alloca, define if you know the │ │ │ │ │ -593 direction of stack growth for your system; otherwise it will be │ │ │ │ │ -594 automatically deduced at runtime. │ │ │ │ │ -595 STACK_DIRECTION > 0 => grows toward higher addresses │ │ │ │ │ -596 STACK_DIRECTION < 0 => grows toward lower addresses │ │ │ │ │ -597 STACK_DIRECTION = 0 => direction of growth unknown */ │ │ │ │ │ -598/* #undef STACK_DIRECTION */ │ │ │ │ │ -599 │ │ │ │ │ -600/* Define to 1 if all of the C89 standard headers exist (not just the ones │ │ │ │ │ -601 required in a freestanding environment). This macro is provided for │ │ │ │ │ -602 backward compatibility; new code need not use it. */ │ │ │ │ │ -603#define STDC_HEADERS 1 │ │ │ │ │ -604 │ │ │ │ │ -605/* Define to use TDS 5.0 by default */ │ │ │ │ │ -606/* #undef TDS50 */ │ │ │ │ │ -607 │ │ │ │ │ -608/* Define to use TDS 7.1 by default */ │ │ │ │ │ -609/* #undef TDS71 */ │ │ │ │ │ -610 │ │ │ │ │ -611/* Define to use TDS 7.2 by default */ │ │ │ │ │ -612/* #undef TDS72 */ │ │ │ │ │ -613 │ │ │ │ │ -614/* Define to use TDS 7.3 by default */ │ │ │ │ │ -615/* #undef TDS73 */ │ │ │ │ │ -616 │ │ │ │ │ -617/* Define to use TDS 7.4 by default */ │ │ │ │ │ -618/* #undef TDS74 */ │ │ │ │ │ -619 │ │ │ │ │ -620/* Define to 1 if your compiler supports __attribute__((destructor)). */ │ │ │ │ │ -621#define TDS_ATTRIBUTE_DESTRUCTOR 1 │ │ │ │ │ -622 │ │ │ │ │ -623/* define to constant to use for clock_gettime */ │ │ │ │ │ -624#define TDS_GETTIMEMILLI_CONST CLOCK_MONOTONIC │ │ │ │ │ -625 │ │ │ │ │ -626/* Define if you have pthread with mutex support */ │ │ │ │ │ -627#define TDS_HAVE_PTHREAD_MUTEX 1 │ │ │ │ │ -628 │ │ │ │ │ -629/* Define if stdio support locking */ │ │ │ │ │ -630#define TDS_HAVE_STDIO_LOCKED 1 │ │ │ │ │ -631 │ │ │ │ │ -632/* define to prefix format string used for 64bit integers */ │ │ │ │ │ -633#define TDS_I64_PREFIX "ll" │ │ │ │ │ -634 │ │ │ │ │ -635/* Define if you don't care about thread safety */ │ │ │ │ │ -636/* #undef TDS_NO_THREADSAFE */ │ │ │ │ │ -637 │ │ │ │ │ -638/* Define to 1 if last argument of SQLColAttribute it's SQLLEN * */ │ │ │ │ │ -639#define TDS_SQLCOLATTRIBUTE_SQLLEN 1 │ │ │ │ │ -640 │ │ │ │ │ -641/* Define to 1 if SQLParamOptions accept SQLULEN as arguments */ │ │ │ │ │ -642#define TDS_SQLPARAMOPTIONS_SQLLEN 1 │ │ │ │ │ -643 │ │ │ │ │ -644/* Defined if --enable-sybase-compat used */ │ │ │ │ │ -645#define TDS_SYBASE_COMPAT 1 │ │ │ │ │ -646 │ │ │ │ │ -647/* Define to 1 if you can safely include both and . │ │ │ │ │ -This │ │ │ │ │ -648 macro is obsolete. */ │ │ │ │ │ -649#define TIME_WITH_SYS_TIME 1 │ │ │ │ │ -650 │ │ │ │ │ -651/* Define to 1 if your declares 'struct tm'. */ │ │ │ │ │ -652/* #undef TM_IN_SYS_TIME */ │ │ │ │ │ -653 │ │ │ │ │ -654/* Enable extensions on AIX, Interix, z/OS. */ │ │ │ │ │ -655#ifndef _ALL_SOURCE │ │ │ │ │ -656# define _ALL_SOURCE 1 │ │ │ │ │ -657#endif │ │ │ │ │ -658/* Enable general extensions on macOS. */ │ │ │ │ │ -659#ifndef _DARWIN_C_SOURCE │ │ │ │ │ -660# define _DARWIN_C_SOURCE 1 │ │ │ │ │ -661#endif │ │ │ │ │ -662/* Enable general extensions on Solaris. */ │ │ │ │ │ -663#ifndef __EXTENSIONS__ │ │ │ │ │ -664# define __EXTENSIONS__ 1 │ │ │ │ │ -665#endif │ │ │ │ │ -666/* Enable GNU extensions on systems that have them. */ │ │ │ │ │ -667#ifndef _GNU_SOURCE │ │ │ │ │ -668# define _GNU_SOURCE 1 │ │ │ │ │ -669#endif │ │ │ │ │ -670/* Enable X/Open compliant socket functions that do not require linking │ │ │ │ │ -671 with -lxnet on HP-UX 11.11. */ │ │ │ │ │ -672#ifndef _HPUX_ALT_XOPEN_SOCKET_API │ │ │ │ │ -673# define _HPUX_ALT_XOPEN_SOCKET_API 1 │ │ │ │ │ -674#endif │ │ │ │ │ -675/* Identify the host operating system as Minix. │ │ │ │ │ -676 This macro does not affect the system headers' behavior. │ │ │ │ │ -677 A future release of Autoconf may stop defining this macro. */ │ │ │ │ │ -678#ifndef _MINIX │ │ │ │ │ -679/* # undef _MINIX */ │ │ │ │ │ -680#endif │ │ │ │ │ -681/* Enable general extensions on NetBSD. │ │ │ │ │ -682 Enable NetBSD compatibility extensions on Minix. */ │ │ │ │ │ -683#ifndef _NETBSD_SOURCE │ │ │ │ │ -684# define _NETBSD_SOURCE 1 │ │ │ │ │ -685#endif │ │ │ │ │ -686/* Enable OpenBSD compatibility extensions on NetBSD. │ │ │ │ │ -687 Oddly enough, this does nothing on OpenBSD. */ │ │ │ │ │ -688#ifndef _OPENBSD_SOURCE │ │ │ │ │ -689# define _OPENBSD_SOURCE 1 │ │ │ │ │ -690#endif │ │ │ │ │ -691/* Define to 1 if needed for POSIX-compatible behavior. */ │ │ │ │ │ -692#ifndef _POSIX_SOURCE │ │ │ │ │ -693/* # undef _POSIX_SOURCE */ │ │ │ │ │ -694#endif │ │ │ │ │ -695/* Define to 2 if needed for POSIX-compatible behavior. */ │ │ │ │ │ -696#ifndef _POSIX_1_SOURCE │ │ │ │ │ -697/* # undef _POSIX_1_SOURCE */ │ │ │ │ │ -698#endif │ │ │ │ │ -699/* Enable POSIX-compatible threading on Solaris. */ │ │ │ │ │ -700#ifndef _POSIX_PTHREAD_SEMANTICS │ │ │ │ │ -701# define _POSIX_PTHREAD_SEMANTICS 1 │ │ │ │ │ -702#endif │ │ │ │ │ -703/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ │ │ │ │ │ -704#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ │ │ │ │ │ -705# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 │ │ │ │ │ -706#endif │ │ │ │ │ -707/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ │ │ │ │ │ -708#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ │ │ │ │ │ -709# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 │ │ │ │ │ -710#endif │ │ │ │ │ -711/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ │ │ │ │ │ -712#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ │ │ │ │ │ -713# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 │ │ │ │ │ -714#endif │ │ │ │ │ -715/* Enable extensions specified by C23 Annex F. */ │ │ │ │ │ -716#ifndef __STDC_WANT_IEC_60559_EXT__ │ │ │ │ │ -717# define __STDC_WANT_IEC_60559_EXT__ 1 │ │ │ │ │ -718#endif │ │ │ │ │ -719/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ │ │ │ │ │ -720#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ │ │ │ │ │ -721# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 │ │ │ │ │ -722#endif │ │ │ │ │ -723/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. │ │ │ │ │ -*/ │ │ │ │ │ -724#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ │ │ │ │ │ -725# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 │ │ │ │ │ -726#endif │ │ │ │ │ -727/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ │ │ │ │ │ -728#ifndef __STDC_WANT_LIB_EXT2__ │ │ │ │ │ -729# define __STDC_WANT_LIB_EXT2__ 1 │ │ │ │ │ -730#endif │ │ │ │ │ -731/* Enable extensions specified by ISO/IEC 24747:2009. */ │ │ │ │ │ -732#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ │ │ │ │ │ -733# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 │ │ │ │ │ -734#endif │ │ │ │ │ -735/* Enable extensions on HP NonStop. */ │ │ │ │ │ -736#ifndef _TANDEM_SOURCE │ │ │ │ │ -737# define _TANDEM_SOURCE 1 │ │ │ │ │ -738#endif │ │ │ │ │ -739/* Enable X/Open extensions. Define to 500 only if necessary │ │ │ │ │ -740 to make mbstate_t available. */ │ │ │ │ │ -741#ifndef _XOPEN_SOURCE │ │ │ │ │ -742/* # undef _XOPEN_SOURCE */ │ │ │ │ │ -743#endif │ │ │ │ │ -744 │ │ │ │ │ -745 │ │ │ │ │ -746/* Version number of package */ │ │ │ │ │ -747#define VERSION "1.3.17" │ │ │ │ │ -748 │ │ │ │ │ -749/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most │ │ │ │ │ -750 significant byte first (like Motorola and SPARC, unlike Intel). */ │ │ │ │ │ -751#if defined AC_APPLE_UNIVERSAL_BUILD │ │ │ │ │ -752# if defined __BIG_ENDIAN__ │ │ │ │ │ -753# define WORDS_BIGENDIAN 1 │ │ │ │ │ -754# endif │ │ │ │ │ -755#else │ │ │ │ │ -756# ifndef WORDS_BIGENDIAN │ │ │ │ │ -757/* # undef WORDS_BIGENDIAN */ │ │ │ │ │ -758# endif │ │ │ │ │ -759#endif │ │ │ │ │ -760 │ │ │ │ │ -761/* Number of bits in a file offset, on hosts where this is settable. */ │ │ │ │ │ -762#define _FILE_OFFSET_BITS 64 │ │ │ │ │ -763 │ │ │ │ │ -764/* Define to 1 if necessary to make fseeko visible. */ │ │ │ │ │ -765/* #undef _LARGEFILE_SOURCE */ │ │ │ │ │ -766 │ │ │ │ │ -767/* Define to 1 on platforms where this makes off_t a 64-bit type. */ │ │ │ │ │ -768/* #undef _LARGE_FILES */ │ │ │ │ │ -769 │ │ │ │ │ -770/* Number of bits in time_t, on hosts where this is settable. */ │ │ │ │ │ -771/* #undef _TIME_BITS */ │ │ │ │ │ -772 │ │ │ │ │ -773/* Define to 1 on platforms where this makes time_t a 64-bit type. */ │ │ │ │ │ -774/* #undef __MINGW_USE_VC2005_COMPAT */ │ │ │ │ │ -775 │ │ │ │ │ -776/* Define to empty if 'const' does not conform to ANSI C. */ │ │ │ │ │ -777/* #undef const */ │ │ │ │ │ -778 │ │ │ │ │ -779/* Define to '__inline__' or '__inline' if that's what the C compiler │ │ │ │ │ -780 calls it, or to nothing if 'inline' is not supported under any name. */ │ │ │ │ │ -781#ifndef __cplusplus │ │ │ │ │ -782/* #undef inline */ │ │ │ │ │ -783#endif │ │ │ │ │ -784 │ │ │ │ │ -785/* Define as 'unsigned int' if doesn't define. */ │ │ │ │ │ -786/* #undef size_t */ │ │ │ │ │ -787 │ │ │ │ │ -788/* type to use in place of socklen_t if not defined */ │ │ │ │ │ -789/* #undef socklen_t */ │ │ │ │ │ +54#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00350_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/cstypes.h Source File │ │ │ │ +FreeTDS API: include/ctpublic.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,15 +74,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
cstypes.h
│ │ │ │ +
ctpublic.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ @@ -96,250 +96,140 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _cstypes_h_
│ │ │ │ -
21#define _cstypes_h_
│ │ │ │ +
20#ifndef _ctpublic_h_
│ │ │ │ +
21#define _ctpublic_h_
│ │ │ │
22
│ │ │ │ -
23#include "tds_sysdep_public.h"
│ │ │ │ +
23#include <cspublic.h>
│ │ │ │
24
│ │ │ │ -
25#ifdef __cplusplus
│ │ │ │ -
26extern "C"
│ │ │ │ -
27{
│ │ │ │ -
28#if 0
│ │ │ │ -
29}
│ │ │ │ -
30#endif
│ │ │ │ -
31#endif
│ │ │ │ -
32
│ │ │ │ -
33typedef int32_t CS_INT;
│ │ │ │ -
34typedef uint32_t CS_UINT;
│ │ │ │ -
35typedef int64_t CS_BIGINT;
│ │ │ │ -
36typedef uint64_t CS_UBIGINT;
│ │ │ │ -
37typedef int16_t CS_SMALLINT;
│ │ │ │ -
38typedef uint16_t CS_USMALLINT;
│ │ │ │ -
39typedef unsigned char CS_TINYINT;
│ │ │ │ -
40typedef char CS_CHAR;
│ │ │ │ -
41typedef unsigned char CS_BYTE;
│ │ │ │ -
42typedef tds_sysdep_real32_type CS_REAL;
│ │ │ │ -
43typedef tds_sysdep_real64_type CS_FLOAT;
│ │ │ │ -
44typedef int32_t CS_BOOL;
│ │ │ │ -
45typedef void CS_VOID;
│ │ │ │ -
46typedef unsigned char CS_IMAGE;
│ │ │ │ -
47typedef unsigned char CS_TEXT;
│ │ │ │ -
48typedef unsigned char CS_LONGBINARY;
│ │ │ │ -
49typedef unsigned char CS_LONGCHAR;
│ │ │ │ -
50typedef long CS_LONG;
│ │ │ │ -
51typedef unsigned char CS_BINARY;
│ │ │ │ -
52typedef uint16_t CS_USHORT;
│ │ │ │ -
53typedef unsigned char CS_BIT;
│ │ │ │ -
54
│ │ │ │ -
55typedef CS_INT CS_RETCODE;
│ │ │ │ -
56
│ │ │ │ -
57#define CS_MAX_NAME 132
│ │ │ │ -
58#define CS_MAX_SCALE 77
│ │ │ │ -
59#define CS_MAX_PREC 77 /* used by php */
│ │ │ │ -
60#define CS_MAX_NUMLEN 33 /* used by roguewave */
│ │ │ │ -
61#define CS_MAX_MSG 1024
│ │ │ │ -
62#define CS_SQLSTATE_SIZE 8
│ │ │ │ -
63#define CS_OBJ_NAME 400
│ │ │ │ -
64#define CS_TP_SIZE 16 /* text pointer */
│ │ │ │ -
65#define CS_TS_SIZE 8 /* length of timestamp */
│ │ │ │ -
66
│ │ │ │ -
67
│ │ │ │ -
│ │ │ │ -
68typedef struct _cs_numeric
│ │ │ │ -
69{
│ │ │ │ -
70 unsigned char precision;
│ │ │ │ -
71 unsigned char scale;
│ │ │ │ -
72 unsigned char array[CS_MAX_NUMLEN];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
74
│ │ │ │ - │ │ │ │ -
76
│ │ │ │ -
│ │ │ │ -
77typedef struct _cs_varbinary
│ │ │ │ -
78{
│ │ │ │ -
79 CS_SMALLINT len;
│ │ │ │ -
80 CS_CHAR array[256];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
82
│ │ │ │ -
│ │ │ │ -
83typedef struct _cs_varchar
│ │ │ │ -
84{
│ │ │ │ -
85 CS_SMALLINT len; /* length of the string */
│ │ │ │ -
86 CS_CHAR str[256]; /* string, no NULL terminator */
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
88
│ │ │ │ -
89typedef struct _cs_config CS_CONFIG;
│ │ │ │ -
90typedef struct _cs_context CS_CONTEXT;
│ │ │ │ -
91typedef struct _cs_connection CS_CONNECTION;
│ │ │ │ -
92typedef struct _cs_locale CS_LOCALE;
│ │ │ │ -
93typedef struct _cs_command CS_COMMAND;
│ │ │ │ -
94typedef struct _cs_blk_row CS_BLK_ROW;
│ │ │ │ +
25#undef TDS_STATIC_CAST
│ │ │ │ +
26#ifdef __cplusplus
│ │ │ │ +
27#define TDS_STATIC_CAST(type, a) static_cast<type>(a)
│ │ │ │ +
28extern "C"
│ │ │ │ +
29{
│ │ │ │ +
30#if 0
│ │ │ │ +
31}
│ │ │ │ +
32#endif
│ │ │ │ +
33#else
│ │ │ │ +
34#define TDS_STATIC_CAST(type, a) ((type)(a))
│ │ │ │ +
35#endif
│ │ │ │ +
36
│ │ │ │ +
37/*
│ │ │ │ +
38** define for each CT-Lib API
│ │ │ │ +
39*/
│ │ │ │ +
40#define CT_BIND TDS_STATIC_CAST(CS_INT, 0)
│ │ │ │ +
41#define CT_BR_COLUMN TDS_STATIC_CAST(CS_INT, 1)
│ │ │ │ +
42#define CT_BR_TABLE TDS_STATIC_CAST(CS_INT, 2)
│ │ │ │ +
43#define CT_CALLBACK TDS_STATIC_CAST(CS_INT, 3)
│ │ │ │ +
44#define CT_CANCEL TDS_STATIC_CAST(CS_INT, 4)
│ │ │ │ +
45#define CT_CAPABILITY TDS_STATIC_CAST(CS_INT, 5)
│ │ │ │ +
46#define CT_CLOSE TDS_STATIC_CAST(CS_INT, 6)
│ │ │ │ +
47#define CT_CMD_ALLOC TDS_STATIC_CAST(CS_INT, 7)
│ │ │ │ +
48#define CT_CMD_DROP TDS_STATIC_CAST(CS_INT, 8)
│ │ │ │ +
49#define CT_CMD_PROPS TDS_STATIC_CAST(CS_INT, 9)
│ │ │ │ +
50#define CT_COMMAND TDS_STATIC_CAST(CS_INT, 10)
│ │ │ │ +
51#define CT_COMPUTE_INFO TDS_STATIC_CAST(CS_INT, 11)
│ │ │ │ +
52#define CT_CON_ALLOC TDS_STATIC_CAST(CS_INT, 12)
│ │ │ │ +
53#define CT_CON_DROP TDS_STATIC_CAST(CS_INT, 13)
│ │ │ │ +
54#define CT_CON_PROPS TDS_STATIC_CAST(CS_INT, 14)
│ │ │ │ +
55#define CT_CON_XFER TDS_STATIC_CAST(CS_INT, 15)
│ │ │ │ +
56#define CT_CONFIG TDS_STATIC_CAST(CS_INT, 16)
│ │ │ │ +
57#define CT_CONNECT TDS_STATIC_CAST(CS_INT, 17)
│ │ │ │ +
58#define CT_CURSOR TDS_STATIC_CAST(CS_INT, 18)
│ │ │ │ +
59#define CT_DATA_INFO TDS_STATIC_CAST(CS_INT, 19)
│ │ │ │ +
60#define CT_DEBUG TDS_STATIC_CAST(CS_INT, 20)
│ │ │ │ +
61#define CT_DESCRIBE TDS_STATIC_CAST(CS_INT, 21)
│ │ │ │ +
62#define CT_DIAG TDS_STATIC_CAST(CS_INT, 22)
│ │ │ │ +
63#define CT_DYNAMIC TDS_STATIC_CAST(CS_INT, 23)
│ │ │ │ +
64#define CT_DYNDESC TDS_STATIC_CAST(CS_INT, 24)
│ │ │ │ +
65#define CT_EXIT TDS_STATIC_CAST(CS_INT, 25)
│ │ │ │ +
66#define CT_FETCH TDS_STATIC_CAST(CS_INT, 26)
│ │ │ │ +
67#define CT_GET_DATA TDS_STATIC_CAST(CS_INT, 27)
│ │ │ │ +
68#define CT_GETFORMAT TDS_STATIC_CAST(CS_INT, 28)
│ │ │ │ +
69#define CT_GETLOGINFO TDS_STATIC_CAST(CS_INT, 29)
│ │ │ │ +
70#define CT_INIT TDS_STATIC_CAST(CS_INT, 30)
│ │ │ │ +
71#define CT_KEYDATA TDS_STATIC_CAST(CS_INT, 31)
│ │ │ │ +
72#define CT_OPTIONS TDS_STATIC_CAST(CS_INT, 32)
│ │ │ │ +
73#define CT_PARAM TDS_STATIC_CAST(CS_INT, 33)
│ │ │ │ +
74#define CT_POLL TDS_STATIC_CAST(CS_INT, 34)
│ │ │ │ +
75#define CT_RECVPASSTHRU TDS_STATIC_CAST(CS_INT, 35)
│ │ │ │ +
76#define CT_REMOTE_PWD TDS_STATIC_CAST(CS_INT, 36)
│ │ │ │ +
77#define CT_RES_INFO TDS_STATIC_CAST(CS_INT, 37)
│ │ │ │ +
78#define CT_RESULTS TDS_STATIC_CAST(CS_INT, 38)
│ │ │ │ +
79#define CT_SEND TDS_STATIC_CAST(CS_INT, 39)
│ │ │ │ +
80#define CT_SEND_DATA TDS_STATIC_CAST(CS_INT, 40)
│ │ │ │ +
81#define CT_SENDPASSTHRU TDS_STATIC_CAST(CS_INT, 41)
│ │ │ │ +
82#define CT_SETLOGINFO TDS_STATIC_CAST(CS_INT, 42)
│ │ │ │ +
83#define CT_WAKEUP TDS_STATIC_CAST(CS_INT, 43)
│ │ │ │ +
84#define CT_LABELS TDS_STATIC_CAST(CS_INT, 44)
│ │ │ │ +
85#define CT_DS_LOOKUP TDS_STATIC_CAST(CS_INT, 45)
│ │ │ │ +
86#define CT_DS_DROP TDS_STATIC_CAST(CS_INT, 46)
│ │ │ │ +
87#define CT_DS_OBJINFO TDS_STATIC_CAST(CS_INT, 47)
│ │ │ │ +
88#define CT_SETPARAM TDS_STATIC_CAST(CS_INT, 48)
│ │ │ │ +
89#define CT_DYNSQLDA TDS_STATIC_CAST(CS_INT, 49)
│ │ │ │ +
90#define CT_NOTIFICATION TDS_STATIC_CAST(CS_INT, 1000)
│ │ │ │ +
91
│ │ │ │ +
92static const char rcsid_ctpublic_h[] = "$Id: ctpublic.h,v 1.14 2005-05-28 10:48:26 freddy77 Exp $";
│ │ │ │ +
93static const void *const no_unused_ctpublic_h_warn[] = { rcsid_ctpublic_h, no_unused_ctpublic_h_warn };
│ │ │ │ +
94
│ │ │ │
95
│ │ │ │ -
│ │ │ │ -
96typedef struct _cs_iodesc
│ │ │ │ -
97{
│ │ │ │ -
98 CS_INT iotype;
│ │ │ │ -
99 CS_INT datatype;
│ │ │ │ -
100 CS_LOCALE *locale;
│ │ │ │ -
101 CS_INT usertype;
│ │ │ │ -
102 CS_INT total_txtlen;
│ │ │ │ -
103 CS_INT offset;
│ │ │ │ -
104 CS_BOOL log_on_update;
│ │ │ │ -
105 CS_CHAR name[CS_OBJ_NAME];
│ │ │ │ -
106 CS_INT namelen;
│ │ │ │ -
107 CS_BYTE timestamp[CS_TS_SIZE];
│ │ │ │ -
108 CS_INT timestamplen;
│ │ │ │ -
109 CS_BYTE textptr[CS_TP_SIZE];
│ │ │ │ -
110 CS_INT textptrlen;
│ │ │ │ -
111} CS_IODESC;
│ │ │ │ -
│ │ │ │ -
112
│ │ │ │ -
│ │ │ │ -
113typedef struct _cs_datafmt
│ │ │ │ -
114{
│ │ │ │ -
115 CS_CHAR name[CS_MAX_NAME];
│ │ │ │ -
116 CS_INT namelen;
│ │ │ │ -
117 CS_INT datatype;
│ │ │ │ -
118 CS_INT format;
│ │ │ │ -
119 CS_INT maxlength;
│ │ │ │ -
120 CS_INT scale;
│ │ │ │ -
121 CS_INT precision;
│ │ │ │ -
122 CS_INT status;
│ │ │ │ -
123 CS_INT count;
│ │ │ │ -
124 CS_INT usertype;
│ │ │ │ -
125 CS_LOCALE *locale;
│ │ │ │ -
126} CS_DATAFMT;
│ │ │ │ -
│ │ │ │ -
127
│ │ │ │ -
│ │ │ │ -
128typedef struct _cs_money
│ │ │ │ -
129{
│ │ │ │ -
130 CS_INT mnyhigh;
│ │ │ │ -
131 CS_UINT mnylow;
│ │ │ │ -
132} CS_MONEY;
│ │ │ │ -
│ │ │ │ -
133
│ │ │ │ -
│ │ │ │ -
134typedef struct _cs_money4
│ │ │ │ +
96CS_RETCODE ct_init(CS_CONTEXT * ctx, CS_INT version);
│ │ │ │ +
97CS_RETCODE ct_con_alloc(CS_CONTEXT * ctx, CS_CONNECTION ** con);
│ │ │ │ +
98CS_RETCODE ct_con_props(CS_CONNECTION * con, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
│ │ │ │ +
99CS_RETCODE ct_connect(CS_CONNECTION * con, CS_CHAR * servername, CS_INT snamelen);
│ │ │ │ +
100CS_RETCODE ct_cmd_alloc(CS_CONNECTION * con, CS_COMMAND ** cmd);
│ │ │ │ +
101CS_RETCODE ct_cancel(CS_CONNECTION * conn, CS_COMMAND * cmd, CS_INT type);
│ │ │ │ +
102CS_RETCODE ct_cmd_drop(CS_COMMAND * cmd);
│ │ │ │ +
103CS_RETCODE ct_close(CS_CONNECTION * con, CS_INT option);
│ │ │ │ +
104CS_RETCODE ct_con_drop(CS_CONNECTION * con);
│ │ │ │ +
105CS_RETCODE ct_exit(CS_CONTEXT * ctx, CS_INT unused);
│ │ │ │ +
106CS_RETCODE ct_command(CS_COMMAND * cmd, CS_INT type, const CS_VOID * buffer, CS_INT buflen, CS_INT option);
│ │ │ │ +
107CS_RETCODE ct_send(CS_COMMAND * cmd);
│ │ │ │ +
108CS_RETCODE ct_results(CS_COMMAND * cmd, CS_INT * result_type);
│ │ │ │ +
109CS_RETCODE ct_bind(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * copied, CS_SMALLINT * indicator);
│ │ │ │ +
110CS_RETCODE ct_fetch(CS_COMMAND * cmd, CS_INT type, CS_INT offset, CS_INT option, CS_INT * rows_read);
│ │ │ │ +
111CS_RETCODE ct_res_info_dyn(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
│ │ │ │ +
112CS_RETCODE ct_res_info(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
│ │ │ │ +
113CS_RETCODE ct_describe(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt);
│ │ │ │ +
114CS_RETCODE ct_callback(CS_CONTEXT * ctx, CS_CONNECTION * con, CS_INT action, CS_INT type, CS_VOID * func);
│ │ │ │ +
115CS_RETCODE ct_send_dyn(CS_COMMAND * cmd);
│ │ │ │ +
116CS_RETCODE ct_results_dyn(CS_COMMAND * cmd, CS_INT * result_type);
│ │ │ │ +
117CS_RETCODE ct_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
118CS_RETCODE ct_cmd_props(CS_COMMAND * cmd, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
119CS_RETCODE ct_compute_info(CS_COMMAND * cmd, CS_INT type, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
120CS_RETCODE ct_get_data(CS_COMMAND * cmd, CS_INT item, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
121CS_RETCODE ct_send_data(CS_COMMAND * cmd, CS_VOID * buffer, CS_INT buflen);
│ │ │ │ +
122CS_RETCODE ct_data_info(CS_COMMAND * cmd, CS_INT action, CS_INT colnum, CS_IODESC * iodesc);
│ │ │ │ +
123CS_RETCODE ct_capability(CS_CONNECTION * con, CS_INT action, CS_INT type, CS_INT capability, CS_VOID * value);
│ │ │ │ +
124CS_RETCODE ct_dynamic(CS_COMMAND * cmd, CS_INT type, CS_CHAR * id, CS_INT idlen, CS_CHAR * buffer, CS_INT buflen);
│ │ │ │ +
125CS_RETCODE ct_param(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT datalen, CS_SMALLINT indicator);
│ │ │ │ +
126CS_RETCODE ct_setparam(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT * datalen, CS_SMALLINT * indicator);
│ │ │ │ +
127CS_RETCODE ct_options(CS_CONNECTION * con, CS_INT action, CS_INT option, CS_VOID * param, CS_INT paramlen, CS_INT * outlen);
│ │ │ │ +
128CS_RETCODE ct_poll(CS_CONTEXT * ctx, CS_CONNECTION * connection, CS_INT milliseconds, CS_CONNECTION ** compconn,
│ │ │ │ +
129 CS_COMMAND ** compcmd, CS_INT * compid, CS_INT * compstatus);
│ │ │ │ +
130CS_RETCODE ct_cursor(CS_COMMAND * cmd, CS_INT type, CS_CHAR * name, CS_INT namelen, CS_CHAR * text, CS_INT tlen, CS_INT option);
│ │ │ │ +
131CS_RETCODE ct_diag(CS_CONNECTION * conn, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
│ │ │ │ +
132
│ │ │ │ +
133#ifdef __cplusplus
│ │ │ │ +
134#if 0
│ │ │ │
135{
│ │ │ │ -
136 CS_INT mny4;
│ │ │ │ -
137} CS_MONEY4;
│ │ │ │ -
│ │ │ │ -
138
│ │ │ │ -
139typedef CS_INT CS_DATE;
│ │ │ │ -
140
│ │ │ │ -
141typedef CS_INT CS_TIME;
│ │ │ │ -
142
│ │ │ │ -
143typedef CS_UBIGINT CS_BIGDATETIME;
│ │ │ │ -
144typedef CS_UBIGINT CS_BIGTIME;
│ │ │ │ -
145
│ │ │ │ -
│ │ │ │ -
146typedef struct _cs_datetime
│ │ │ │ -
147{
│ │ │ │ -
148 CS_INT dtdays;
│ │ │ │ -
149 CS_INT dttime;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
151
│ │ │ │ -
│ │ │ │ -
152typedef struct _cs_datetime4
│ │ │ │ -
153{
│ │ │ │ -
154 CS_USHORT days;
│ │ │ │ -
155 CS_USHORT minutes;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
157
│ │ │ │ -
│ │ │ │ -
158typedef struct _cs_daterec
│ │ │ │ -
159{
│ │ │ │ -
160 CS_INT dateyear;
│ │ │ │ -
161 CS_INT datemonth;
│ │ │ │ -
162 CS_INT datedmonth;
│ │ │ │ -
163 CS_INT datedyear;
│ │ │ │ -
164 CS_INT datedweek;
│ │ │ │ -
165 CS_INT datehour;
│ │ │ │ -
166 CS_INT dateminute;
│ │ │ │ -
167 CS_INT datesecond;
│ │ │ │ -
168 CS_INT datemsecond;
│ │ │ │ -
169 CS_INT datetzone;
│ │ │ │ -
170 CS_INT datesecfrac;
│ │ │ │ -
171 CS_INT datesecprec;
│ │ │ │ -
172} CS_DATEREC;
│ │ │ │ -
│ │ │ │ -
173
│ │ │ │ -
174typedef CS_INT CS_MSGNUM;
│ │ │ │ -
175
│ │ │ │ -
│ │ │ │ -
176typedef struct _cs_clientmsg
│ │ │ │ -
177{
│ │ │ │ -
178 CS_INT severity;
│ │ │ │ -
179 CS_MSGNUM msgnumber;
│ │ │ │ -
180 CS_CHAR msgstring[CS_MAX_MSG];
│ │ │ │ -
181 CS_INT msgstringlen;
│ │ │ │ -
182 CS_INT osnumber;
│ │ │ │ -
183 CS_CHAR osstring[CS_MAX_MSG];
│ │ │ │ -
184 CS_INT osstringlen;
│ │ │ │ -
185 CS_INT status;
│ │ │ │ -
186 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
│ │ │ │ -
187 CS_INT sqlstatelen;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
189
│ │ │ │ -
│ │ │ │ -
190typedef struct _cs_servermsg
│ │ │ │ -
191{
│ │ │ │ -
192 CS_MSGNUM msgnumber;
│ │ │ │ -
193 CS_INT state;
│ │ │ │ -
194 CS_INT severity;
│ │ │ │ -
195 CS_CHAR text[CS_MAX_MSG];
│ │ │ │ -
196 CS_INT textlen;
│ │ │ │ -
197 CS_CHAR svrname[CS_MAX_NAME];
│ │ │ │ -
198 CS_INT svrnlen;
│ │ │ │ -
199 CS_CHAR proc[CS_MAX_NAME];
│ │ │ │ -
200 CS_INT proclen;
│ │ │ │ -
201 CS_INT line;
│ │ │ │ -
202 CS_INT status;
│ │ │ │ -
203 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
│ │ │ │ -
204 CS_INT sqlstatelen;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
206
│ │ │ │ -
207#ifdef __cplusplus
│ │ │ │ -
208#if 0
│ │ │ │ -
209{
│ │ │ │ -
210#endif
│ │ │ │ -
211}
│ │ │ │ -
212#endif
│ │ │ │ -
213
│ │ │ │ -
214#endif
│ │ │ │ -
Definition cstypes.h:69
│ │ │ │ -
Definition cstypes.h:78
│ │ │ │ -
Definition cstypes.h:84
│ │ │ │ +
136#endif
│ │ │ │ +
137}
│ │ │ │ +
138#endif
│ │ │ │ +
139
│ │ │ │ +
140#endif
│ │ │ │
Definition cstypes.h:97
│ │ │ │
Definition cstypes.h:114
│ │ │ │ -
Definition cstypes.h:129
│ │ │ │ -
Definition cstypes.h:135
│ │ │ │ -
Definition cstypes.h:147
│ │ │ │ -
Definition cstypes.h:153
│ │ │ │ -
Definition cstypes.h:159
│ │ │ │ -
Definition cstypes.h:177
│ │ │ │ -
Definition cstypes.h:191
│ │ │ │ -
Definition ctlib.h:45
│ │ │ │
Definition ctlib.h:75
│ │ │ │
Definition ctlib.h:117
│ │ │ │
Definition ctlib.h:212
│ │ │ │ -
Definition ctlib.h:248
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -cstypes.h │ │ │ │ │ +ctpublic.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ @@ -19,238 +19,163 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _cstypes_h_ │ │ │ │ │ -21#define _cstypes_h_ │ │ │ │ │ +20#ifndef _ctpublic_h_ │ │ │ │ │ +21#define _ctpublic_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include "tds_sysdep_public.h" │ │ │ │ │ +23#include │ │ │ │ │ 24 │ │ │ │ │ -25#ifdef __cplusplus │ │ │ │ │ -26extern "C" │ │ │ │ │ -27{ │ │ │ │ │ -28#if 0 │ │ │ │ │ -29} │ │ │ │ │ -30#endif │ │ │ │ │ -31#endif │ │ │ │ │ -32 │ │ │ │ │ -33typedef int32_t CS_INT; │ │ │ │ │ -34typedef uint32_t CS_UINT; │ │ │ │ │ -35typedef int64_t CS_BIGINT; │ │ │ │ │ -36typedef uint64_t CS_UBIGINT; │ │ │ │ │ -37typedef int16_t CS_SMALLINT; │ │ │ │ │ -38typedef uint16_t CS_USMALLINT; │ │ │ │ │ -39typedef unsigned char CS_TINYINT; │ │ │ │ │ -40typedef char CS_CHAR; │ │ │ │ │ -41typedef unsigned char CS_BYTE; │ │ │ │ │ -42typedef tds_sysdep_real32_type CS_REAL; │ │ │ │ │ -43typedef tds_sysdep_real64_type CS_FLOAT; │ │ │ │ │ -44typedef int32_t CS_BOOL; │ │ │ │ │ -45typedef void CS_VOID; │ │ │ │ │ -46typedef unsigned char CS_IMAGE; │ │ │ │ │ -47typedef unsigned char CS_TEXT; │ │ │ │ │ -48typedef unsigned char CS_LONGBINARY; │ │ │ │ │ -49typedef unsigned char CS_LONGCHAR; │ │ │ │ │ -50typedef long CS_LONG; │ │ │ │ │ -51typedef unsigned char CS_BINARY; │ │ │ │ │ -52typedef uint16_t CS_USHORT; │ │ │ │ │ -53typedef unsigned char CS_BIT; │ │ │ │ │ -54 │ │ │ │ │ -55typedef CS_INT CS_RETCODE; │ │ │ │ │ -56 │ │ │ │ │ -57#define CS_MAX_NAME 132 │ │ │ │ │ -58#define CS_MAX_SCALE 77 │ │ │ │ │ -59#define CS_MAX_PREC 77 /* used by php */ │ │ │ │ │ -60#define CS_MAX_NUMLEN 33 /* used by roguewave */ │ │ │ │ │ -61#define CS_MAX_MSG 1024 │ │ │ │ │ -62#define CS_SQLSTATE_SIZE 8 │ │ │ │ │ -63#define CS_OBJ_NAME 400 │ │ │ │ │ -64#define CS_TP_SIZE 16 /* text pointer */ │ │ │ │ │ -65#define CS_TS_SIZE 8 /* length of timestamp */ │ │ │ │ │ -66 │ │ │ │ │ -67 │ │ │ │ │ -_6_8typedef struct ___c_s___n_u_m_e_r_i_c │ │ │ │ │ -69{ │ │ │ │ │ -70 unsigned char precision; │ │ │ │ │ -71 unsigned char scale; │ │ │ │ │ -72 unsigned char array[CS_MAX_NUMLEN]; │ │ │ │ │ -73} _C_S___N_U_M_E_R_I_C; │ │ │ │ │ -74 │ │ │ │ │ -75typedef _C_S___N_U_M_E_R_I_C _C_S___D_E_C_I_M_A_L; │ │ │ │ │ -76 │ │ │ │ │ -_7_7typedef struct ___c_s___v_a_r_b_i_n_a_r_y │ │ │ │ │ -78{ │ │ │ │ │ -79 CS_SMALLINT len; │ │ │ │ │ -80 CS_CHAR array[256]; │ │ │ │ │ -81} _C_S___V_A_R_B_I_N_A_R_Y; │ │ │ │ │ -82 │ │ │ │ │ -_8_3typedef struct ___c_s___v_a_r_c_h_a_r │ │ │ │ │ -84{ │ │ │ │ │ -85 CS_SMALLINT len; /* length of the string */ │ │ │ │ │ -86 CS_CHAR str[256]; /* string, no NULL terminator */ │ │ │ │ │ -87} _C_S___V_A_R_C_H_A_R; │ │ │ │ │ -88 │ │ │ │ │ -89typedef struct ___c_s___c_o_n_f_i_g _C_S___C_O_N_F_I_G; │ │ │ │ │ -90typedef struct ___c_s___c_o_n_t_e_x_t _C_S___C_O_N_T_E_X_T; │ │ │ │ │ -91typedef struct ___c_s___c_o_n_n_e_c_t_i_o_n _C_S___C_O_N_N_E_C_T_I_O_N; │ │ │ │ │ -92typedef struct ___c_s___l_o_c_a_l_e _C_S___L_O_C_A_L_E; │ │ │ │ │ -93typedef struct ___c_s___c_o_m_m_a_n_d _C_S___C_O_M_M_A_N_D; │ │ │ │ │ -94typedef struct _cs_blk_row CS_BLK_ROW; │ │ │ │ │ +25#undef TDS_STATIC_CAST │ │ │ │ │ +26#ifdef __cplusplus │ │ │ │ │ +27#define TDS_STATIC_CAST(type, a) static_cast(a) │ │ │ │ │ +28extern "C" │ │ │ │ │ +29{ │ │ │ │ │ +30#if 0 │ │ │ │ │ +31} │ │ │ │ │ +32#endif │ │ │ │ │ +33#else │ │ │ │ │ +34#define TDS_STATIC_CAST(type, a) ((type)(a)) │ │ │ │ │ +35#endif │ │ │ │ │ +36 │ │ │ │ │ +37/* │ │ │ │ │ +38** define for each CT-Lib API │ │ │ │ │ +39*/ │ │ │ │ │ +40#define CT_BIND TDS_STATIC_CAST(CS_INT, 0) │ │ │ │ │ +41#define CT_BR_COLUMN TDS_STATIC_CAST(CS_INT, 1) │ │ │ │ │ +42#define CT_BR_TABLE TDS_STATIC_CAST(CS_INT, 2) │ │ │ │ │ +43#define CT_CALLBACK TDS_STATIC_CAST(CS_INT, 3) │ │ │ │ │ +44#define CT_CANCEL TDS_STATIC_CAST(CS_INT, 4) │ │ │ │ │ +45#define CT_CAPABILITY TDS_STATIC_CAST(CS_INT, 5) │ │ │ │ │ +46#define CT_CLOSE TDS_STATIC_CAST(CS_INT, 6) │ │ │ │ │ +47#define CT_CMD_ALLOC TDS_STATIC_CAST(CS_INT, 7) │ │ │ │ │ +48#define CT_CMD_DROP TDS_STATIC_CAST(CS_INT, 8) │ │ │ │ │ +49#define CT_CMD_PROPS TDS_STATIC_CAST(CS_INT, 9) │ │ │ │ │ +50#define CT_COMMAND TDS_STATIC_CAST(CS_INT, 10) │ │ │ │ │ +51#define CT_COMPUTE_INFO TDS_STATIC_CAST(CS_INT, 11) │ │ │ │ │ +52#define CT_CON_ALLOC TDS_STATIC_CAST(CS_INT, 12) │ │ │ │ │ +53#define CT_CON_DROP TDS_STATIC_CAST(CS_INT, 13) │ │ │ │ │ +54#define CT_CON_PROPS TDS_STATIC_CAST(CS_INT, 14) │ │ │ │ │ +55#define CT_CON_XFER TDS_STATIC_CAST(CS_INT, 15) │ │ │ │ │ +56#define CT_CONFIG TDS_STATIC_CAST(CS_INT, 16) │ │ │ │ │ +57#define CT_CONNECT TDS_STATIC_CAST(CS_INT, 17) │ │ │ │ │ +58#define CT_CURSOR TDS_STATIC_CAST(CS_INT, 18) │ │ │ │ │ +59#define CT_DATA_INFO TDS_STATIC_CAST(CS_INT, 19) │ │ │ │ │ +60#define CT_DEBUG TDS_STATIC_CAST(CS_INT, 20) │ │ │ │ │ +61#define CT_DESCRIBE TDS_STATIC_CAST(CS_INT, 21) │ │ │ │ │ +62#define CT_DIAG TDS_STATIC_CAST(CS_INT, 22) │ │ │ │ │ +63#define CT_DYNAMIC TDS_STATIC_CAST(CS_INT, 23) │ │ │ │ │ +64#define CT_DYNDESC TDS_STATIC_CAST(CS_INT, 24) │ │ │ │ │ +65#define CT_EXIT TDS_STATIC_CAST(CS_INT, 25) │ │ │ │ │ +66#define CT_FETCH TDS_STATIC_CAST(CS_INT, 26) │ │ │ │ │ +67#define CT_GET_DATA TDS_STATIC_CAST(CS_INT, 27) │ │ │ │ │ +68#define CT_GETFORMAT TDS_STATIC_CAST(CS_INT, 28) │ │ │ │ │ +69#define CT_GETLOGINFO TDS_STATIC_CAST(CS_INT, 29) │ │ │ │ │ +70#define CT_INIT TDS_STATIC_CAST(CS_INT, 30) │ │ │ │ │ +71#define CT_KEYDATA TDS_STATIC_CAST(CS_INT, 31) │ │ │ │ │ +72#define CT_OPTIONS TDS_STATIC_CAST(CS_INT, 32) │ │ │ │ │ +73#define CT_PARAM TDS_STATIC_CAST(CS_INT, 33) │ │ │ │ │ +74#define CT_POLL TDS_STATIC_CAST(CS_INT, 34) │ │ │ │ │ +75#define CT_RECVPASSTHRU TDS_STATIC_CAST(CS_INT, 35) │ │ │ │ │ +76#define CT_REMOTE_PWD TDS_STATIC_CAST(CS_INT, 36) │ │ │ │ │ +77#define CT_RES_INFO TDS_STATIC_CAST(CS_INT, 37) │ │ │ │ │ +78#define CT_RESULTS TDS_STATIC_CAST(CS_INT, 38) │ │ │ │ │ +79#define CT_SEND TDS_STATIC_CAST(CS_INT, 39) │ │ │ │ │ +80#define CT_SEND_DATA TDS_STATIC_CAST(CS_INT, 40) │ │ │ │ │ +81#define CT_SENDPASSTHRU TDS_STATIC_CAST(CS_INT, 41) │ │ │ │ │ +82#define CT_SETLOGINFO TDS_STATIC_CAST(CS_INT, 42) │ │ │ │ │ +83#define CT_WAKEUP TDS_STATIC_CAST(CS_INT, 43) │ │ │ │ │ +84#define CT_LABELS TDS_STATIC_CAST(CS_INT, 44) │ │ │ │ │ +85#define CT_DS_LOOKUP TDS_STATIC_CAST(CS_INT, 45) │ │ │ │ │ +86#define CT_DS_DROP TDS_STATIC_CAST(CS_INT, 46) │ │ │ │ │ +87#define CT_DS_OBJINFO TDS_STATIC_CAST(CS_INT, 47) │ │ │ │ │ +88#define CT_SETPARAM TDS_STATIC_CAST(CS_INT, 48) │ │ │ │ │ +89#define CT_DYNSQLDA TDS_STATIC_CAST(CS_INT, 49) │ │ │ │ │ +90#define CT_NOTIFICATION TDS_STATIC_CAST(CS_INT, 1000) │ │ │ │ │ +91 │ │ │ │ │ +92static const char rcsid_ctpublic_h[] = "$Id: ctpublic.h,v 1.14 2005-05-28 10: │ │ │ │ │ +48:26 freddy77 Exp $"; │ │ │ │ │ +93static const void *const no_unused_ctpublic_h_warn[] = { rcsid_ctpublic_h, │ │ │ │ │ +no_unused_ctpublic_h_warn }; │ │ │ │ │ +94 │ │ │ │ │ 95 │ │ │ │ │ -_9_6typedef struct ___c_s___i_o_d_e_s_c │ │ │ │ │ -97{ │ │ │ │ │ -98 CS_INT iotype; │ │ │ │ │ -99 CS_INT datatype; │ │ │ │ │ -100 _C_S___L_O_C_A_L_E *locale; │ │ │ │ │ -101 CS_INT usertype; │ │ │ │ │ -102 CS_INT total_txtlen; │ │ │ │ │ -103 CS_INT offset; │ │ │ │ │ -104 CS_BOOL log_on_update; │ │ │ │ │ -105 CS_CHAR name[CS_OBJ_NAME]; │ │ │ │ │ -106 CS_INT namelen; │ │ │ │ │ -107 CS_BYTE timestamp[CS_TS_SIZE]; │ │ │ │ │ -108 CS_INT timestamplen; │ │ │ │ │ -109 CS_BYTE textptr[CS_TP_SIZE]; │ │ │ │ │ -110 CS_INT textptrlen; │ │ │ │ │ -111} _C_S___I_O_D_E_S_C; │ │ │ │ │ -112 │ │ │ │ │ -_1_1_3typedef struct ___c_s___d_a_t_a_f_m_t │ │ │ │ │ -114{ │ │ │ │ │ -115 CS_CHAR name[CS_MAX_NAME]; │ │ │ │ │ -116 CS_INT namelen; │ │ │ │ │ -117 CS_INT datatype; │ │ │ │ │ -118 CS_INT format; │ │ │ │ │ -119 CS_INT maxlength; │ │ │ │ │ -120 CS_INT scale; │ │ │ │ │ -121 CS_INT precision; │ │ │ │ │ -122 CS_INT status; │ │ │ │ │ -123 CS_INT count; │ │ │ │ │ -124 CS_INT usertype; │ │ │ │ │ -125 _C_S___L_O_C_A_L_E *locale; │ │ │ │ │ -126} _C_S___D_A_T_A_F_M_T; │ │ │ │ │ -127 │ │ │ │ │ -_1_2_8typedef struct ___c_s___m_o_n_e_y │ │ │ │ │ -129{ │ │ │ │ │ -130 CS_INT mnyhigh; │ │ │ │ │ -131 CS_UINT mnylow; │ │ │ │ │ -132} _C_S___M_O_N_E_Y; │ │ │ │ │ -133 │ │ │ │ │ -_1_3_4typedef struct ___c_s___m_o_n_e_y_4 │ │ │ │ │ +96CS_RETCODE ct_init(_C_S___C_O_N_T_E_X_T * ctx, CS_INT version); │ │ │ │ │ +97CS_RETCODE ct_con_alloc(_C_S___C_O_N_T_E_X_T * ctx, _C_S___C_O_N_N_E_C_T_I_O_N ** con); │ │ │ │ │ +98CS_RETCODE ct_con_props(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, CS_INT property, │ │ │ │ │ +CS_VOID * buffer, CS_INT buflen, CS_INT * out_len); │ │ │ │ │ +99CS_RETCODE ct_connect(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_CHAR * servername, CS_INT │ │ │ │ │ +snamelen); │ │ │ │ │ +100CS_RETCODE ct_cmd_alloc(_C_S___C_O_N_N_E_C_T_I_O_N * con, _C_S___C_O_M_M_A_N_D ** cmd); │ │ │ │ │ +101CS_RETCODE ct_cancel(_C_S___C_O_N_N_E_C_T_I_O_N * conn, _C_S___C_O_M_M_A_N_D * cmd, CS_INT type); │ │ │ │ │ +102CS_RETCODE ct_cmd_drop(_C_S___C_O_M_M_A_N_D * cmd); │ │ │ │ │ +103CS_RETCODE ct_close(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT option); │ │ │ │ │ +104CS_RETCODE ct_con_drop(_C_S___C_O_N_N_E_C_T_I_O_N * con); │ │ │ │ │ +105CS_RETCODE ct_exit(_C_S___C_O_N_T_E_X_T * ctx, CS_INT unused); │ │ │ │ │ +106CS_RETCODE ct_command(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, const CS_VOID * buffer, │ │ │ │ │ +CS_INT buflen, CS_INT option); │ │ │ │ │ +107CS_RETCODE ct_send(_C_S___C_O_M_M_A_N_D * cmd); │ │ │ │ │ +108CS_RETCODE ct_results(_C_S___C_O_M_M_A_N_D * cmd, CS_INT * result_type); │ │ │ │ │ +109CS_RETCODE ct_bind(_C_S___C_O_M_M_A_N_D * cmd, CS_INT item, _C_S___D_A_T_A_F_M_T * datafmt, │ │ │ │ │ +CS_VOID * buffer, CS_INT * copied, CS_SMALLINT * indicator); │ │ │ │ │ +110CS_RETCODE ct_fetch(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_INT offset, CS_INT │ │ │ │ │ +option, CS_INT * rows_read); │ │ │ │ │ +111CS_RETCODE ct_res_info_dyn(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_VOID * buffer, │ │ │ │ │ +CS_INT buflen, CS_INT * out_len); │ │ │ │ │ +112CS_RETCODE ct_res_info(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_VOID * buffer, │ │ │ │ │ +CS_INT buflen, CS_INT * out_len); │ │ │ │ │ +113CS_RETCODE ct_describe(_C_S___C_O_M_M_A_N_D * cmd, CS_INT item, _C_S___D_A_T_A_F_M_T * datafmt); │ │ │ │ │ +114CS_RETCODE ct_callback(_C_S___C_O_N_T_E_X_T * ctx, _C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, │ │ │ │ │ +CS_INT type, CS_VOID * func); │ │ │ │ │ +115CS_RETCODE ct_send_dyn(_C_S___C_O_M_M_A_N_D * cmd); │ │ │ │ │ +116CS_RETCODE ct_results_dyn(_C_S___C_O_M_M_A_N_D * cmd, CS_INT * result_type); │ │ │ │ │ +117CS_RETCODE ct_config(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT property, │ │ │ │ │ +CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +118CS_RETCODE ct_cmd_props(_C_S___C_O_M_M_A_N_D * cmd, CS_INT action, CS_INT property, │ │ │ │ │ +CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +119CS_RETCODE ct_compute_info(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_INT colnum, │ │ │ │ │ +CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +120CS_RETCODE ct_get_data(_C_S___C_O_M_M_A_N_D * cmd, CS_INT item, CS_VOID * buffer, │ │ │ │ │ +CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +121CS_RETCODE ct_send_data(_C_S___C_O_M_M_A_N_D * cmd, CS_VOID * buffer, CS_INT buflen); │ │ │ │ │ +122CS_RETCODE ct_data_info(_C_S___C_O_M_M_A_N_D * cmd, CS_INT action, CS_INT colnum, │ │ │ │ │ +_C_S___I_O_D_E_S_C * iodesc); │ │ │ │ │ +123CS_RETCODE ct_capability(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, CS_INT type, │ │ │ │ │ +CS_INT capability, CS_VOID * value); │ │ │ │ │ +124CS_RETCODE ct_dynamic(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_CHAR * id, CS_INT │ │ │ │ │ +idlen, CS_CHAR * buffer, CS_INT buflen); │ │ │ │ │ +125CS_RETCODE ct_param(_C_S___C_O_M_M_A_N_D * cmd, _C_S___D_A_T_A_F_M_T * datafmt, CS_VOID * data, │ │ │ │ │ +CS_INT datalen, CS_SMALLINT indicator); │ │ │ │ │ +126CS_RETCODE ct_setparam(_C_S___C_O_M_M_A_N_D * cmd, _C_S___D_A_T_A_F_M_T * datafmt, CS_VOID * │ │ │ │ │ +data, CS_INT * datalen, CS_SMALLINT * indicator); │ │ │ │ │ +127CS_RETCODE ct_options(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, CS_INT option, │ │ │ │ │ +CS_VOID * param, CS_INT paramlen, CS_INT * outlen); │ │ │ │ │ +128CS_RETCODE ct_poll(_C_S___C_O_N_T_E_X_T * ctx, _C_S___C_O_N_N_E_C_T_I_O_N * connection, CS_INT │ │ │ │ │ +milliseconds, _C_S___C_O_N_N_E_C_T_I_O_N ** compconn, │ │ │ │ │ +129 _C_S___C_O_M_M_A_N_D ** compcmd, CS_INT * compid, CS_INT * compstatus); │ │ │ │ │ +130CS_RETCODE ct_cursor(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_CHAR * name, CS_INT │ │ │ │ │ +namelen, CS_CHAR * text, CS_INT tlen, CS_INT option); │ │ │ │ │ +131CS_RETCODE ct_diag(_C_S___C_O_N_N_E_C_T_I_O_N * conn, CS_INT operation, CS_INT type, │ │ │ │ │ +CS_INT idx, CS_VOID * buffer); │ │ │ │ │ +132 │ │ │ │ │ +133#ifdef __cplusplus │ │ │ │ │ +134#if 0 │ │ │ │ │ 135{ │ │ │ │ │ -136 CS_INT mny4; │ │ │ │ │ -137} _C_S___M_O_N_E_Y_4; │ │ │ │ │ -138 │ │ │ │ │ -139typedef CS_INT CS_DATE; │ │ │ │ │ -140 │ │ │ │ │ -141typedef CS_INT CS_TIME; │ │ │ │ │ -142 │ │ │ │ │ -143typedef CS_UBIGINT CS_BIGDATETIME; │ │ │ │ │ -144typedef CS_UBIGINT CS_BIGTIME; │ │ │ │ │ -145 │ │ │ │ │ -_1_4_6typedef struct ___c_s___d_a_t_e_t_i_m_e │ │ │ │ │ -147{ │ │ │ │ │ -148 CS_INT dtdays; │ │ │ │ │ -149 CS_INT dttime; │ │ │ │ │ -150} _C_S___D_A_T_E_T_I_M_E; │ │ │ │ │ -151 │ │ │ │ │ -_1_5_2typedef struct ___c_s___d_a_t_e_t_i_m_e_4 │ │ │ │ │ -153{ │ │ │ │ │ -154 CS_USHORT days; │ │ │ │ │ -155 CS_USHORT minutes; │ │ │ │ │ -156} _C_S___D_A_T_E_T_I_M_E_4; │ │ │ │ │ -157 │ │ │ │ │ -_1_5_8typedef struct ___c_s___d_a_t_e_r_e_c │ │ │ │ │ -159{ │ │ │ │ │ -160 CS_INT dateyear; │ │ │ │ │ -161 CS_INT datemonth; │ │ │ │ │ -162 CS_INT datedmonth; │ │ │ │ │ -163 CS_INT datedyear; │ │ │ │ │ -164 CS_INT datedweek; │ │ │ │ │ -165 CS_INT datehour; │ │ │ │ │ -166 CS_INT dateminute; │ │ │ │ │ -167 CS_INT datesecond; │ │ │ │ │ -168 CS_INT datemsecond; │ │ │ │ │ -169 CS_INT datetzone; │ │ │ │ │ -170 CS_INT datesecfrac; │ │ │ │ │ -171 CS_INT datesecprec; │ │ │ │ │ -172} _C_S___D_A_T_E_R_E_C; │ │ │ │ │ -173 │ │ │ │ │ -174typedef CS_INT CS_MSGNUM; │ │ │ │ │ -175 │ │ │ │ │ -_1_7_6typedef struct ___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ -177{ │ │ │ │ │ -178 CS_INT severity; │ │ │ │ │ -179 CS_MSGNUM msgnumber; │ │ │ │ │ -180 CS_CHAR msgstring[CS_MAX_MSG]; │ │ │ │ │ -181 CS_INT msgstringlen; │ │ │ │ │ -182 CS_INT osnumber; │ │ │ │ │ -183 CS_CHAR osstring[CS_MAX_MSG]; │ │ │ │ │ -184 CS_INT osstringlen; │ │ │ │ │ -185 CS_INT status; │ │ │ │ │ -186 CS_BYTE sqlstate[CS_SQLSTATE_SIZE]; │ │ │ │ │ -187 CS_INT sqlstatelen; │ │ │ │ │ -188} _C_S___C_L_I_E_N_T_M_S_G; │ │ │ │ │ -189 │ │ │ │ │ -_1_9_0typedef struct ___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ -191{ │ │ │ │ │ -192 CS_MSGNUM msgnumber; │ │ │ │ │ -193 CS_INT state; │ │ │ │ │ -194 CS_INT severity; │ │ │ │ │ -195 CS_CHAR text[CS_MAX_MSG]; │ │ │ │ │ -196 CS_INT textlen; │ │ │ │ │ -197 CS_CHAR svrname[CS_MAX_NAME]; │ │ │ │ │ -198 CS_INT svrnlen; │ │ │ │ │ -199 CS_CHAR proc[CS_MAX_NAME]; │ │ │ │ │ -200 CS_INT proclen; │ │ │ │ │ -201 CS_INT line; │ │ │ │ │ -202 CS_INT status; │ │ │ │ │ -203 CS_BYTE sqlstate[CS_SQLSTATE_SIZE]; │ │ │ │ │ -204 CS_INT sqlstatelen; │ │ │ │ │ -205} _C_S___S_E_R_V_E_R_M_S_G; │ │ │ │ │ -206 │ │ │ │ │ -207#ifdef __cplusplus │ │ │ │ │ -208#if 0 │ │ │ │ │ -209{ │ │ │ │ │ -210#endif │ │ │ │ │ -211} │ │ │ │ │ -212#endif │ │ │ │ │ -213 │ │ │ │ │ -214#endif │ │ │ │ │ -___c_s___n_u_m_e_r_i_c │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:69 │ │ │ │ │ -___c_s___v_a_r_b_i_n_a_r_y │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:78 │ │ │ │ │ -___c_s___v_a_r_c_h_a_r │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:84 │ │ │ │ │ +136#endif │ │ │ │ │ +137} │ │ │ │ │ +138#endif │ │ │ │ │ +139 │ │ │ │ │ +140#endif │ │ │ │ │ ___c_s___i_o_d_e_s_c │ │ │ │ │ DDeeffiinniittiioonn cstypes.h:97 │ │ │ │ │ ___c_s___d_a_t_a_f_m_t │ │ │ │ │ DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ -___c_s___m_o_n_e_y │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:129 │ │ │ │ │ -___c_s___m_o_n_e_y_4 │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:135 │ │ │ │ │ -___c_s___d_a_t_e_t_i_m_e │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:147 │ │ │ │ │ -___c_s___d_a_t_e_t_i_m_e_4 │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:153 │ │ │ │ │ -___c_s___d_a_t_e_r_e_c │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:159 │ │ │ │ │ -___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:177 │ │ │ │ │ -___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:191 │ │ │ │ │ -___c_s___c_o_n_f_i_g │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:45 │ │ │ │ │ ___c_s___c_o_n_t_e_x_t │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:75 │ │ │ │ │ ___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ ___c_s___c_o_m_m_a_n_d │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:212 │ │ │ │ │ -___c_s___l_o_c_a_l_e │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:248 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00356_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/convert.h Source File │ │ │ │ +FreeTDS API: include/freetds/time.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,142 +74,28 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
convert.h
│ │ │ │ +
time.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef _tdsconvert_h_
│ │ │ │ -
21#define _tdsconvert_h_
│ │ │ │ -
22
│ │ │ │ -
23#include <freetds/pushvis.h>
│ │ │ │ -
24
│ │ │ │ -
25#ifdef __cplusplus
│ │ │ │ -
26extern "C"
│ │ │ │ -
27{
│ │ │ │ -
28#if 0
│ │ │ │ -
29}
│ │ │ │ -
30#endif
│ │ │ │ -
31#endif
│ │ │ │ -
32
│ │ │ │ -
│ │ │ │ -
33typedef union conv_result
│ │ │ │ -
34{
│ │ │ │ -
35 /* fixed */
│ │ │ │ -
36 TDS_TINYINT ti;
│ │ │ │ -
37 TDS_SMALLINT si;
│ │ │ │ -
38 TDS_USMALLINT usi;
│ │ │ │ -
39 TDS_INT i;
│ │ │ │ -
40 TDS_UINT ui;
│ │ │ │ -
41 TDS_INT8 bi;
│ │ │ │ -
42 TDS_UINT8 ubi;
│ │ │ │ -
43 TDS_FLOAT f;
│ │ │ │ -
44 TDS_REAL r;
│ │ │ │ -
45 TDS_MONEY m;
│ │ │ │ -
46 TDS_MONEY4 m4;
│ │ │ │ -
47 TDS_DATETIME dt;
│ │ │ │ -
48 TDS_DATETIME4 dt4;
│ │ │ │ - │ │ │ │ -
50 TDS_TIME time;
│ │ │ │ -
51 TDS_DATE date;
│ │ │ │ -
52 TDS_BIGTIME bigtime;
│ │ │ │ -
53 TDS_BIGDATETIME bigdatetime;
│ │ │ │ - │ │ │ │ -
55 TDS_UNIQUE u;
│ │ │ │ -
56
│ │ │ │ -
57 /* variable */
│ │ │ │ -
58 TDS_CHAR *c;
│ │ │ │ -
59 TDS_CHAR *ib;
│ │ │ │ -
60
│ │ │ │ -
61 /* sized buffer types */
│ │ │ │ -
│ │ │ │ -
62 struct cc_t {
│ │ │ │ -
63 TDS_CHAR *c;
│ │ │ │ -
64 TDS_UINT len;
│ │ │ │ -
65 } cc;
│ │ │ │ -
│ │ │ │ -
│ │ │ │ -
66 struct cb_t {
│ │ │ │ -
67 TDS_CHAR *ib;
│ │ │ │ -
68 TDS_UINT len;
│ │ │ │ -
69 } cb;
│ │ │ │ -
│ │ │ │ -
70}
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
72
│ │ │ │ -
73/*
│ │ │ │ -
74 * Failure return codes for tds_convert()
│ │ │ │ -
75 */
│ │ │ │ -
76#define TDS_CONVERT_FAIL -1 /* unspecified failure */
│ │ │ │ -
77#define TDS_CONVERT_NOAVAIL -2 /* conversion does not exist */
│ │ │ │ -
78#define TDS_CONVERT_SYNTAX -3 /* syntax error in source field */
│ │ │ │ -
79#define TDS_CONVERT_NOMEM -4 /* insufficient memory */
│ │ │ │ -
80#define TDS_CONVERT_OVERFLOW -5 /* result too large */
│ │ │ │ -
81
│ │ │ │ -
82/* sized types */
│ │ │ │ -
83#define TDS_CONVERT_CHAR 256
│ │ │ │ -
84#define TDS_CONVERT_BINARY 257
│ │ │ │ -
85
│ │ │ │ -
86unsigned char tds_willconvert(int srctype, int desttype);
│ │ │ │ -
87
│ │ │ │ -
88TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype);
│ │ │ │ -
89TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, TDS_UINT srclen);
│ │ │ │ -
90TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr);
│ │ │ │ -
91
│ │ │ │ -
92size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC * timeptr, int prec);
│ │ │ │ -
93
│ │ │ │ -
94#ifdef __cplusplus
│ │ │ │ -
95#if 0
│ │ │ │ -
96{
│ │ │ │ -
97#endif
│ │ │ │ -
98}
│ │ │ │ -
99#endif
│ │ │ │ -
100
│ │ │ │ -
101#include <freetds/popvis.h>
│ │ │ │ -
102
│ │ │ │ -
103#endif /* _tdsconvert_h_ */
│ │ │ │ -
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition convert.c:2926
│ │ │ │ -
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition convert.c:3106
│ │ │ │ -
size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *timeptr, int prec)
format a date string according to an "extended" strftime(3) formatting definition.
Definition convert.c:2992
│ │ │ │ -
TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition convert.c:1891
│ │ │ │ -
Definition convert.h:34
│ │ │ │ -
Definition convert.h:62
│ │ │ │ -
Definition convert.h:66
│ │ │ │ -
Definition proto.h:26
│ │ │ │ -
Definition proto.h:39
│ │ │ │ -
Definition proto.h:45
│ │ │ │ -
Definition proto.h:50
│ │ │ │ -
Definition proto.h:56
│ │ │ │ -
Definition proto.h:62
│ │ │ │ -
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition tds.h:146
│ │ │ │ -
Used by tds_datecrack.
Definition tds.h:159
│ │ │ │ -
Definition tds.h:1029
│ │ │ │ +
1#if TIME_WITH_SYS_TIME
│ │ │ │ +
2# include <sys/time.h>
│ │ │ │ +
3# include <time.h>
│ │ │ │ +
4#else
│ │ │ │ +
5# if HAVE_SYS_TIME_H
│ │ │ │ +
6# include <sys/time.h>
│ │ │ │ +
7# else
│ │ │ │ +
8# include <time.h>
│ │ │ │ +
9# endif
│ │ │ │ +
10#endif
│ │ │ │ +
11
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,161 +1,20 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -convert.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef _tdsconvert_h_ │ │ │ │ │ -21#define _tdsconvert_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#ifdef __cplusplus │ │ │ │ │ -26extern "C" │ │ │ │ │ -27{ │ │ │ │ │ -28#if 0 │ │ │ │ │ -29} │ │ │ │ │ -30#endif │ │ │ │ │ -31#endif │ │ │ │ │ -32 │ │ │ │ │ -_3_3typedef union _c_o_n_v___r_e_s_u_l_t │ │ │ │ │ -34{ │ │ │ │ │ -35 /* fixed */ │ │ │ │ │ -36 TDS_TINYINT ti; │ │ │ │ │ -37 TDS_SMALLINT si; │ │ │ │ │ -38 TDS_USMALLINT usi; │ │ │ │ │ -39 TDS_INT i; │ │ │ │ │ -40 TDS_UINT ui; │ │ │ │ │ -41 TDS_INT8 bi; │ │ │ │ │ -42 TDS_UINT8 ubi; │ │ │ │ │ -43 TDS_FLOAT f; │ │ │ │ │ -44 TDS_REAL r; │ │ │ │ │ -45 _T_D_S___M_O_N_E_Y m; │ │ │ │ │ -46 _T_D_S___M_O_N_E_Y_4 m4; │ │ │ │ │ -47 _T_D_S___D_A_T_E_T_I_M_E dt; │ │ │ │ │ -48 _T_D_S___D_A_T_E_T_I_M_E_4 dt4; │ │ │ │ │ -49 _T_D_S___D_A_T_E_T_I_M_E_A_L_L dta; │ │ │ │ │ -50 TDS_TIME time; │ │ │ │ │ -51 TDS_DATE date; │ │ │ │ │ -52 TDS_BIGTIME bigtime; │ │ │ │ │ -53 TDS_BIGDATETIME bigdatetime; │ │ │ │ │ -54 _T_D_S___N_U_M_E_R_I_C n; │ │ │ │ │ -55 _T_D_S___U_N_I_Q_U_E u; │ │ │ │ │ -56 │ │ │ │ │ -57 /* variable */ │ │ │ │ │ -58 TDS_CHAR *c; │ │ │ │ │ -59 TDS_CHAR *ib; │ │ │ │ │ -60 │ │ │ │ │ -61 /* sized buffer types */ │ │ │ │ │ -_6_2 struct _c_c___t { │ │ │ │ │ -63 TDS_CHAR *c; │ │ │ │ │ -64 TDS_UINT len; │ │ │ │ │ -65 } cc; │ │ │ │ │ -_6_6 struct _c_b___t { │ │ │ │ │ -67 TDS_CHAR *ib; │ │ │ │ │ -68 TDS_UINT len; │ │ │ │ │ -69 } cb; │ │ │ │ │ -70} │ │ │ │ │ -71_C_O_N_V___R_E_S_U_L_T; │ │ │ │ │ -72 │ │ │ │ │ -73/* │ │ │ │ │ -74 * Failure return codes for tds_convert() │ │ │ │ │ -75 */ │ │ │ │ │ -76#define TDS_CONVERT_FAIL -1 /* unspecified failure */ │ │ │ │ │ -77#define TDS_CONVERT_NOAVAIL -2 /* conversion does not exist */ │ │ │ │ │ -78#define TDS_CONVERT_SYNTAX -3 /* syntax error in source field */ │ │ │ │ │ -79#define TDS_CONVERT_NOMEM -4 /* insufficient memory */ │ │ │ │ │ -80#define TDS_CONVERT_OVERFLOW -5 /* result too large */ │ │ │ │ │ -81 │ │ │ │ │ -82/* sized types */ │ │ │ │ │ -83#define TDS_CONVERT_CHAR 256 │ │ │ │ │ -84#define TDS_CONVERT_BINARY 257 │ │ │ │ │ -85 │ │ │ │ │ -86unsigned char _t_d_s___w_i_l_l_c_o_n_v_e_r_t(int srctype, int desttype); │ │ │ │ │ -87 │ │ │ │ │ -88TDS_SERVER_TYPE _t_d_s___g_e_t___n_u_l_l___t_y_p_e(TDS_SERVER_TYPE srctype); │ │ │ │ │ -89TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, │ │ │ │ │ -TDS_UINT srclen); │ │ │ │ │ -90TDS_INT _t_d_s___c_o_n_v_e_r_t(const _T_D_S_C_O_N_T_E_X_T *context, int srctype, const void *src, │ │ │ │ │ -TDS_UINT srclen, int desttype, _C_O_N_V___R_E_S_U_L_T *cr); │ │ │ │ │ -91 │ │ │ │ │ -92size_t _t_d_s___s_t_r_f_t_i_m_e(char *buf, size_t maxsize, const char *format, const │ │ │ │ │ -_T_D_S_D_A_T_E_R_E_C * timeptr, int prec); │ │ │ │ │ -93 │ │ │ │ │ -94#ifdef __cplusplus │ │ │ │ │ -95#if 0 │ │ │ │ │ -96{ │ │ │ │ │ -97#endif │ │ │ │ │ -98} │ │ │ │ │ -99#endif │ │ │ │ │ -100 │ │ │ │ │ -101#include │ │ │ │ │ -102 │ │ │ │ │ -103#endif /* _tdsconvert_h_ */ │ │ │ │ │ -_t_d_s___g_e_t___n_u_l_l___t_y_p_e │ │ │ │ │ -TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype) │ │ │ │ │ -Get same type but nullable. │ │ │ │ │ -DDeeffiinniittiioonn convert.c:2926 │ │ │ │ │ -_t_d_s___w_i_l_l_c_o_n_v_e_r_t │ │ │ │ │ -unsigned char tds_willconvert(int srctype, int desttype) │ │ │ │ │ -Test if a conversion is possible. │ │ │ │ │ -DDeeffiinniittiioonn convert.c:3106 │ │ │ │ │ -_t_d_s___s_t_r_f_t_i_m_e │ │ │ │ │ -size_t tds_strftime(char *buf, size_t maxsize, const char *format, const │ │ │ │ │ -TDSDATEREC *timeptr, int prec) │ │ │ │ │ -format a date string according to an "extended" strftime(3) formatting │ │ │ │ │ -definition. │ │ │ │ │ -DDeeffiinniittiioonn convert.c:2992 │ │ │ │ │ -_t_d_s___c_o_n_v_e_r_t │ │ │ │ │ -TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, │ │ │ │ │ -TDS_UINT srclen, int desttype, CONV_RESULT *cr) │ │ │ │ │ -tds_convert convert a type to another. │ │ │ │ │ -DDeeffiinniittiioonn convert.c:1891 │ │ │ │ │ -_c_o_n_v___r_e_s_u_l_t │ │ │ │ │ -DDeeffiinniittiioonn convert.h:34 │ │ │ │ │ -_c_o_n_v___r_e_s_u_l_t_:_:_c_c___t │ │ │ │ │ -DDeeffiinniittiioonn convert.h:62 │ │ │ │ │ -_c_o_n_v___r_e_s_u_l_t_:_:_c_b___t │ │ │ │ │ -DDeeffiinniittiioonn convert.h:66 │ │ │ │ │ -_t_d_s_n_u_m_e_r_i_c │ │ │ │ │ -DDeeffiinniittiioonn proto.h:26 │ │ │ │ │ -_t_d_s_m_o_n_e_y │ │ │ │ │ -DDeeffiinniittiioonn proto.h:39 │ │ │ │ │ -_t_d_s_m_o_n_e_y_4 │ │ │ │ │ -DDeeffiinniittiioonn proto.h:45 │ │ │ │ │ -_t_d_s_d_a_t_e_t_i_m_e │ │ │ │ │ -DDeeffiinniittiioonn proto.h:50 │ │ │ │ │ -_t_d_s_d_a_t_e_t_i_m_e_4 │ │ │ │ │ -DDeeffiinniittiioonn proto.h:56 │ │ │ │ │ -_t_d_s_u_n_i_q_u_e │ │ │ │ │ -DDeeffiinniittiioonn proto.h:62 │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L │ │ │ │ │ -this structure is not directed connected to a TDS protocol but keeps any DATE/ │ │ │ │ │ -TIME information. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:146 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c │ │ │ │ │ -Used by tds_datecrack. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:159 │ │ │ │ │ -_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ +time.h │ │ │ │ │ +1#if TIME_WITH_SYS_TIME │ │ │ │ │ +2# include │ │ │ │ │ +3# include │ │ │ │ │ +4#else │ │ │ │ │ +5# if HAVE_SYS_TIME_H │ │ │ │ │ +6# include │ │ │ │ │ +7# else │ │ │ │ │ +8# include │ │ │ │ │ +9# endif │ │ │ │ │ +10#endif │ │ │ │ │ +11 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00359_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/checks.h Source File │ │ │ │ +FreeTDS API: include/freetds/windows.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
checks.h
│ │ │ │ +
windows.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2004 Frediano Ziglio
│ │ │ │ +
2 * Copyright (C) 2018 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,73 +96,24 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef TDS_CHECKS_H
│ │ │ │ -
21#define TDS_CHECKS_H
│ │ │ │ +
20#ifndef freetds_windows_h_
│ │ │ │ +
21#define freetds_windows_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/pushvis.h>
│ │ │ │ -
24
│ │ │ │ -
25#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
26#define CHECK_STRUCT_EXTRA(func,s) func(s)
│ │ │ │ -
27#else
│ │ │ │ -
28#define CHECK_STRUCT_EXTRA(func,s)
│ │ │ │ -
29#endif
│ │ │ │ -
30
│ │ │ │ -
31#define CHECK_TDS_EXTRA(tds) CHECK_STRUCT_EXTRA(tds_check_tds_extra,tds)
│ │ │ │ -
32#define CHECK_CONTEXT_EXTRA(ctx) CHECK_STRUCT_EXTRA(tds_check_context_extra,ctx)
│ │ │ │ -
33#define CHECK_TDSENV_EXTRA(env) CHECK_STRUCT_EXTRA(tds_check_env_extra,env)
│ │ │ │ -
34#define CHECK_COLUMN_EXTRA(column) CHECK_STRUCT_EXTRA(tds_check_column_extra,column)
│ │ │ │ -
35#define CHECK_RESULTINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA(tds_check_resultinfo_extra,res_info)
│ │ │ │ -
36#define CHECK_PARAMINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA(tds_check_resultinfo_extra,res_info)
│ │ │ │ -
37#define CHECK_CURSOR_EXTRA(cursor) CHECK_STRUCT_EXTRA(tds_check_cursor_extra,cursor)
│ │ │ │ -
38#define CHECK_DYNAMIC_EXTRA(dynamic) CHECK_STRUCT_EXTRA(tds_check_dynamic_extra,dynamic)
│ │ │ │ -
39#define CHECK_FREEZE_EXTRA(freeze) CHECK_STRUCT_EXTRA(tds_check_freeze_extra,freeze)
│ │ │ │ -
40#define CHECK_CONN_EXTRA(conn)
│ │ │ │ -
41
│ │ │ │ -
42#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
43void tds_check_tds_extra(const TDSSOCKET * tds);
│ │ │ │ -
44void tds_check_context_extra(const TDSCONTEXT * ctx);
│ │ │ │ -
45void tds_check_env_extra(const TDSENV * env);
│ │ │ │ -
46void tds_check_column_extra(const TDSCOLUMN * column);
│ │ │ │ -
47void tds_check_resultinfo_extra(const TDSRESULTINFO * res_info);
│ │ │ │ -
48void tds_check_cursor_extra(const TDSCURSOR * cursor);
│ │ │ │ -
49void tds_check_dynamic_extra(const TDSDYNAMIC * dynamic);
│ │ │ │ -
50void tds_check_freeze_extra(const TDSFREEZE * freeze);
│ │ │ │ -
51#endif
│ │ │ │ -
52
│ │ │ │ -
53#if defined(HAVE_VALGRIND_MEMCHECK_H) && ENABLE_EXTRA_CHECKS
│ │ │ │ -
54# include <valgrind/memcheck.h>
│ │ │ │ -
55# define TDS_MARK_UNDEFINED(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len)
│ │ │ │ -
56#else
│ │ │ │ -
57# define TDS_MARK_UNDEFINED(ptr, len) do {} while(0)
│ │ │ │ -
58#endif
│ │ │ │ -
59
│ │ │ │ -
60#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
61void tds_extra_assert_check(const char *fn, int line, int cond, const char *cond_str);
│ │ │ │ -
62# define tds_extra_assert(cond) \
│ │ │ │ -
63 tds_extra_assert_check(__FILE__, __LINE__, cond, #cond)
│ │ │ │ -
64#else
│ │ │ │ -
65# define tds_extra_assert(cond) do { } while(0)
│ │ │ │ -
66#endif
│ │ │ │ -
67
│ │ │ │ -
68#include <freetds/popvis.h>
│ │ │ │ -
69
│ │ │ │ -
70#endif /* TDS_CHECKS_H */
│ │ │ │ -
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ -
Hold information for any results.
Definition tds.h:769
│ │ │ │ -
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ -
Current environment as reported by the server.
Definition tds.h:963
│ │ │ │ -
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ -
Definition tds.h:1029
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ -
Definition tds.h:1571
│ │ │ │ +
23#ifdef _WIN32
│ │ │ │ +
24#include <winsock2.h>
│ │ │ │ +
25#include <ws2tcpip.h>
│ │ │ │ +
26#include <windows.h>
│ │ │ │ +
27#endif
│ │ │ │ +
28
│ │ │ │ +
29#endif /* freetds_windows_h_ */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,16 +1,16 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -checks.h │ │ │ │ │ +windows.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2004 Frediano Ziglio │ │ │ │ │ +2 * Copyright (C) 2018 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -20,90 +20,19 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef TDS_CHECKS_H │ │ │ │ │ -21#define TDS_CHECKS_H │ │ │ │ │ +20#ifndef freetds_windows_h_ │ │ │ │ │ +21#define freetds_windows_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -26#define CHECK_STRUCT_EXTRA(func,s) func(s) │ │ │ │ │ -27#else │ │ │ │ │ -28#define CHECK_STRUCT_EXTRA(func,s) │ │ │ │ │ -29#endif │ │ │ │ │ -30 │ │ │ │ │ -31#define CHECK_TDS_EXTRA(tds) CHECK_STRUCT_EXTRA(tds_check_tds_extra,tds) │ │ │ │ │ -32#define CHECK_CONTEXT_EXTRA(ctx) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_context_extra,ctx) │ │ │ │ │ -33#define CHECK_TDSENV_EXTRA(env) CHECK_STRUCT_EXTRA(tds_check_env_extra,env) │ │ │ │ │ -34#define CHECK_COLUMN_EXTRA(column) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_column_extra,column) │ │ │ │ │ -35#define CHECK_RESULTINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_resultinfo_extra,res_info) │ │ │ │ │ -36#define CHECK_PARAMINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_resultinfo_extra,res_info) │ │ │ │ │ -37#define CHECK_CURSOR_EXTRA(cursor) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_cursor_extra,cursor) │ │ │ │ │ -38#define CHECK_DYNAMIC_EXTRA(dynamic) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_dynamic_extra,dynamic) │ │ │ │ │ -39#define CHECK_FREEZE_EXTRA(freeze) CHECK_STRUCT_EXTRA │ │ │ │ │ -(tds_check_freeze_extra,freeze) │ │ │ │ │ -40#define CHECK_CONN_EXTRA(conn) │ │ │ │ │ -41 │ │ │ │ │ -42#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -43void tds_check_tds_extra(const _T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -44void tds_check_context_extra(const _T_D_S_C_O_N_T_E_X_T * ctx); │ │ │ │ │ -45void tds_check_env_extra(const _T_D_S_E_N_V * env); │ │ │ │ │ -46void tds_check_column_extra(const _T_D_S_C_O_L_U_M_N * column); │ │ │ │ │ -47void tds_check_resultinfo_extra(const _T_D_S_R_E_S_U_L_T_I_N_F_O * res_info); │ │ │ │ │ -48void tds_check_cursor_extra(const _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ -49void tds_check_dynamic_extra(const _T_D_S_D_Y_N_A_M_I_C * dynamic); │ │ │ │ │ -50void tds_check_freeze_extra(const _T_D_S_F_R_E_E_Z_E * freeze); │ │ │ │ │ -51#endif │ │ │ │ │ -52 │ │ │ │ │ -53#if defined(HAVE_VALGRIND_MEMCHECK_H) && ENABLE_EXTRA_CHECKS │ │ │ │ │ -54# include │ │ │ │ │ -55# define TDS_MARK_UNDEFINED(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len) │ │ │ │ │ -56#else │ │ │ │ │ -57# define TDS_MARK_UNDEFINED(ptr, len) do {} while(0) │ │ │ │ │ -58#endif │ │ │ │ │ -59 │ │ │ │ │ -60#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -61void tds_extra_assert_check(const char *fn, int line, int cond, const char │ │ │ │ │ -*cond_str); │ │ │ │ │ -62# define tds_extra_assert(cond) \ │ │ │ │ │ -63 tds_extra_assert_check(__FILE__, __LINE__, cond, #cond) │ │ │ │ │ -64#else │ │ │ │ │ -65# define tds_extra_assert(cond) do { } while(0) │ │ │ │ │ -66#endif │ │ │ │ │ -67 │ │ │ │ │ -68#include │ │ │ │ │ -69 │ │ │ │ │ -70#endif /* TDS_CHECKS_H */ │ │ │ │ │ -_t_d_s___c_o_l_u_m_n │ │ │ │ │ -Metadata about columns in regular and compute rows. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ -_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ -Hold information for any results. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r │ │ │ │ │ -Holds informations about a cursor. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ -_t_d_s___e_n_v │ │ │ │ │ -Current environment as reported by the server. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:963 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ -Holds information for a dynamic (also called prepared) query. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ -_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1571 │ │ │ │ │ +23#ifdef _WIN32 │ │ │ │ │ +24#include │ │ │ │ │ +25#include │ │ │ │ │ +26#include │ │ │ │ │ +27#endif │ │ │ │ │ +28 │ │ │ │ │ +29#endif /* freetds_windows_h_ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00362_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/macros.h Source File │ │ │ │ +FreeTDS API: include/freetds/iconv.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,95 +74,165 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
macros.h
│ │ │ │ +
iconv.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ -
3 * Copyright (C) 2010-2017 Frediano Ziglio
│ │ │ │ -
4 *
│ │ │ │ -
5 * This library is free software; you can redistribute it and/or
│ │ │ │ -
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
7 * License as published by the Free Software Foundation; either
│ │ │ │ -
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
9 *
│ │ │ │ -
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
13 * Library General Public License for more details.
│ │ │ │ -
14 *
│ │ │ │ -
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
16 * License along with this library; if not, write to the
│ │ │ │ -
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
18 * Boston, MA 02111-1307, USA.
│ │ │ │ -
19 */
│ │ │ │ -
20
│ │ │ │ -
21#ifndef _freetds_macros_h_
│ │ │ │ -
22#define _freetds_macros_h_
│ │ │ │ -
23
│ │ │ │ -
24#ifndef _freetds_config_h_
│ │ │ │ -
25#error should include config.h before
│ │ │ │ -
26#endif
│ │ │ │ -
27
│ │ │ │ -
28#if HAVE_STDDEF_H
│ │ │ │ -
29#include <stddef.h>
│ │ │ │ -
30#endif /* HAVE_STDDEF_H */
│ │ │ │ -
31
│ │ │ │ -
32#include "tds_sysdep_public.h"
│ │ │ │ -
33
│ │ │ │ -
34#define TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0)
│ │ │ │ -
35#define TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0]))
│ │ │ │ -
36
│ │ │ │ -
37#ifdef offsetof
│ │ │ │ -
38#define TDS_OFFSET(type, field) offsetof(type, field)
│ │ │ │ -
39#else
│ │ │ │ -
40#define TDS_OFFSET(type, field) (((char*)&((type*)0)->field)-((char*)0))
│ │ │ │ -
41#endif
│ │ │ │ -
42
│ │ │ │ -
43#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
44# if defined(__llvm__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
│ │ │ │ -
45# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ -
46 _Static_assert(check,#name)
│ │ │ │ -
47# elif defined(__GNUC__) && __GNUC__ >= 2
│ │ │ │ -
48# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ -
49 extern int name[(check)?1:-1] __attribute__ ((unused))
│ │ │ │ -
50# else
│ │ │ │ -
51# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ -
52 extern int name[(check)?1:-1]
│ │ │ │ -
53# endif
│ │ │ │ -
54# define TDS_EXTRA_CHECK(stmt) stmt
│ │ │ │ -
55#else
│ │ │ │ -
56# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ -
57 extern int disabled_check_##name
│ │ │ │ -
58# define TDS_EXTRA_CHECK(stmt)
│ │ │ │ -
59#endif
│ │ │ │ -
60
│ │ │ │ -
61#if defined(__GNUC__) && __GNUC__ >= 3
│ │ │ │ -
62# define TDS_LIKELY(x) __builtin_expect(!!(x), 1)
│ │ │ │ -
63# define TDS_UNLIKELY(x) __builtin_expect(!!(x), 0)
│ │ │ │ -
64#else
│ │ │ │ -
65# define TDS_LIKELY(x) (x)
│ │ │ │ -
66# define TDS_UNLIKELY(x) (x)
│ │ │ │ -
67#endif
│ │ │ │ +
2 * Copyright (C) 2002, 2003, 2004 Brian Bruns
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _tds_iconv_h_
│ │ │ │ +
21#define _tds_iconv_h_
│ │ │ │ +
22
│ │ │ │ +
23#if HAVE_ICONV
│ │ │ │ +
24#include <iconv.h>
│ │ │ │ +
25#else
│ │ │ │ +
26/* Define iconv_t for src/replacements/iconv.c. */
│ │ │ │ +
27#undef iconv_t
│ │ │ │ +
28typedef void *iconv_t;
│ │ │ │ +
29#endif /* HAVE_ICONV */
│ │ │ │ +
30
│ │ │ │ +
31#if HAVE_ERRNO_H
│ │ │ │ +
32#include <errno.h>
│ │ │ │ +
33#endif
│ │ │ │ +
34
│ │ │ │ +
35#if HAVE_WCHAR_H
│ │ │ │ +
36#include <wchar.h>
│ │ │ │ +
37#endif
│ │ │ │ +
38
│ │ │ │ +
39/* The following EILSEQ advice is borrowed verbatim from GNU iconv. */
│ │ │ │ +
40/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS,
│ │ │ │ +
41 have EILSEQ in a different header. On these systems, define EILSEQ
│ │ │ │ +
42 ourselves. */
│ │ │ │ +
43#ifndef EILSEQ
│ │ │ │ +
44# define EILSEQ ENOENT
│ │ │ │ +
45#endif
│ │ │ │ +
46
│ │ │ │ +
47#if HAVE_STDLIB_H
│ │ │ │ +
48#include <stdlib.h>
│ │ │ │ +
49#endif /* HAVE_STDLIB_H */
│ │ │ │ +
50
│ │ │ │ +
51#include <freetds/pushvis.h>
│ │ │ │ +
52
│ │ │ │ +
53#ifdef __cplusplus
│ │ │ │ +
54extern "C"
│ │ │ │ +
55{
│ │ │ │ +
56#endif
│ │ │ │ +
57
│ │ │ │ +
58#if ! HAVE_ICONV
│ │ │ │ +
59iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode);
│ │ │ │ +
60size_t tds_sys_iconv(iconv_t cd, const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
│ │ │ │ +
61int tds_sys_iconv_close(iconv_t cd);
│ │ │ │ +
62#else
│ │ │ │ +
63#define tds_sys_iconv_open iconv_open
│ │ │ │ +
64#define tds_sys_iconv iconv
│ │ │ │ +
65#define tds_sys_iconv_close iconv_close
│ │ │ │ +
66#endif /* !HAVE_ICONV */
│ │ │ │ +
67
│ │ │ │
68
│ │ │ │ -
69#if ENABLE_EXTRA_CHECKS && defined(__GNUC__) && __GNUC__ >= 4
│ │ │ │ -
70#define TDS_WUR __attribute__ ((__warn_unused_result__))
│ │ │ │ -
71#else
│ │ │ │ -
72#define TDS_WUR
│ │ │ │ -
73#endif
│ │ │ │ -
74
│ │ │ │ -
75#define TDS_INT2PTR(i) ((void*)(((char*)0)+((intptr_t)(i))))
│ │ │ │ -
76#define TDS_PTR2INT(p) ((int)(((char*)(p))-((char*)0)))
│ │ │ │ +
69typedef enum
│ │ │ │ +
70{ to_server, to_client } TDS_ICONV_DIRECTION;
│ │ │ │ +
71
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
73{
│ │ │ │ +
74 const char *alias;
│ │ │ │ +
75 int canonic;
│ │ │ │ + │ │ │ │ +
│ │ │ │
77
│ │ │ │ -
78#endif
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
79 unsigned int e2big:1;
│ │ │ │ +
80 unsigned int eilseq:1;
│ │ │ │ +
81 unsigned int einval:1;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
83
│ │ │ │ +
│ │ │ │ +
84typedef struct tdsiconvdir
│ │ │ │ +
85{
│ │ │ │ +
86 TDS_ENCODING charset;
│ │ │ │ +
87
│ │ │ │ +
88 iconv_t cd;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
90
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
92{
│ │ │ │ +
93 struct tdsiconvdir to, from;
│ │ │ │ +
94
│ │ │ │ +
95#define TDS_ENCODING_MEMCPY 1
│ │ │ │ +
96 unsigned int flags;
│ │ │ │ +
97
│ │ │ │ +
98 /*
│ │ │ │ +
99 * Suppress error messages that would otherwise be emitted by tds_iconv().
│ │ │ │ +
100 * Functions that process large buffers ask tds_iconv to convert it in "chunks".
│ │ │ │ +
101 * We don't want to emit spurious EILSEQ errors or multiple errors for one
│ │ │ │ +
102 * buffer. tds_iconv() checks this structure before emiting a message, and
│ │ │ │ +
103 * adds to it whenever it emits one. Callers that handle a particular situation themselves
│ │ │ │ +
104 * can prepopulate it.
│ │ │ │ +
105 */
│ │ │ │ + │ │ │ │ +
107
│ │ │ │ +
108};
│ │ │ │ +
│ │ │ │ +
109
│ │ │ │ +
110/* We use ICONV_CONST for tds_iconv(), even if we don't have iconv() */
│ │ │ │ +
111#ifndef ICONV_CONST
│ │ │ │ +
112# define ICONV_CONST const
│ │ │ │ +
113#endif
│ │ │ │ +
114
│ │ │ │ +
115size_t tds_iconv(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION io,
│ │ │ │ +
116 const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
│ │ │ │ +
117int tds_canonical_charset(const char *charset_name);
│ │ │ │ +
118const char *tds_canonical_charset_name(const char *charset_name);
│ │ │ │ +
119TDSICONV *tds_iconv_get(TDSCONNECTION * conn, const char *client_charset, const char *server_charset);
│ │ │ │ +
120TDSICONV *tds_iconv_get_info(TDSCONNECTION * conn, int canonic_client, int canonic_server);
│ │ │ │ +
121
│ │ │ │ +
122#ifdef __cplusplus
│ │ │ │ +
123}
│ │ │ │ +
124#endif
│ │ │ │ +
125
│ │ │ │ +
126#include <freetds/popvis.h>
│ │ │ │ +
127
│ │ │ │ +
128#endif /* _tds_iconv_h_ */
│ │ │ │ +
TDSICONV * tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int canonic_server)
Get a iconv info structure, allocate and initialize if needed.
Definition iconv.c:758
│ │ │ │ +
const char * tds_canonical_charset_name(const char *charset_name)
Determine canonical iconv character set name.
Definition iconv.c:982
│ │ │ │ +
size_t tds_iconv(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Wrapper around iconv(3).
Definition iconv.c:592
│ │ │ │ +
iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode)
Inputs are FreeTDS canonical names, no other.
Definition iconv.c:344
│ │ │ │ +
int tds_canonical_charset(const char *charset_name)
Determine canonical iconv character set.
Definition iconv.c:970
│ │ │ │ +
Definition iconv.h:73
│ │ │ │ +
Definition iconv.h:78
│ │ │ │ +
Definition iconv.h:85
│ │ │ │ +
Definition iconv.h:92
│ │ │ │ +
Information relevant to libiconv.
Definition tds.h:618
│ │ │ │ +
Definition tds.h:1091
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,88 +1,182 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -macros.h │ │ │ │ │ +iconv.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ -3 * Copyright (C) 2010-2017 Frediano Ziglio │ │ │ │ │ -4 * │ │ │ │ │ -5 * This library is free software; you can redistribute it and/or │ │ │ │ │ -6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -7 * License as published by the Free Software Foundation; either │ │ │ │ │ -8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -9 * │ │ │ │ │ -10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -13 * Library General Public License for more details. │ │ │ │ │ -14 * │ │ │ │ │ -15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -16 * License along with this library; if not, write to the │ │ │ │ │ -17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -18 * Boston, MA 02111-1307, USA. │ │ │ │ │ -19 */ │ │ │ │ │ -20 │ │ │ │ │ -21#ifndef _freetds_macros_h_ │ │ │ │ │ -22#define _freetds_macros_h_ │ │ │ │ │ -23 │ │ │ │ │ -24#ifndef _freetds_config_h_ │ │ │ │ │ -25#error should include config.h before │ │ │ │ │ -26#endif │ │ │ │ │ -27 │ │ │ │ │ -28#if HAVE_STDDEF_H │ │ │ │ │ -29#include │ │ │ │ │ -30#endif /* HAVE_STDDEF_H */ │ │ │ │ │ -31 │ │ │ │ │ -32#include "tds_sysdep_public.h" │ │ │ │ │ -33 │ │ │ │ │ -34#define TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0) │ │ │ │ │ -35#define TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0])) │ │ │ │ │ -36 │ │ │ │ │ -37#ifdef offsetof │ │ │ │ │ -38#define TDS_OFFSET(type, field) offsetof(type, field) │ │ │ │ │ -39#else │ │ │ │ │ -40#define TDS_OFFSET(type, field) (((char*)&((type*)0)->field)-((char*)0)) │ │ │ │ │ -41#endif │ │ │ │ │ -42 │ │ │ │ │ -43#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -44# if defined(__llvm__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == │ │ │ │ │ -4 && __GNUC_MINOR__ >= 6))) │ │ │ │ │ -45# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ -46 _Static_assert(check,#name) │ │ │ │ │ -47# elif defined(__GNUC__) && __GNUC__ >= 2 │ │ │ │ │ -48# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ -49 extern int name[(check)?1:-1] __attribute__ ((unused)) │ │ │ │ │ -50# else │ │ │ │ │ -51# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ -52 extern int name[(check)?1:-1] │ │ │ │ │ -53# endif │ │ │ │ │ -54# define TDS_EXTRA_CHECK(stmt) stmt │ │ │ │ │ -55#else │ │ │ │ │ -56# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ -57 extern int disabled_check_##name │ │ │ │ │ -58# define TDS_EXTRA_CHECK(stmt) │ │ │ │ │ -59#endif │ │ │ │ │ -60 │ │ │ │ │ -61#if defined(__GNUC__) && __GNUC__ >= 3 │ │ │ │ │ -62# define TDS_LIKELY(x) __builtin_expect(!!(x), 1) │ │ │ │ │ -63# define TDS_UNLIKELY(x) __builtin_expect(!!(x), 0) │ │ │ │ │ -64#else │ │ │ │ │ -65# define TDS_LIKELY(x) (x) │ │ │ │ │ -66# define TDS_UNLIKELY(x) (x) │ │ │ │ │ -67#endif │ │ │ │ │ +2 * Copyright (C) 2002, 2003, 2004 Brian Bruns │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _tds_iconv_h_ │ │ │ │ │ +21#define _tds_iconv_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#if HAVE_ICONV │ │ │ │ │ +24#include │ │ │ │ │ +25#else │ │ │ │ │ +26/* Define iconv_t for src/replacements/iconv.c. */ │ │ │ │ │ +27#undef iconv_t │ │ │ │ │ +28typedef void *iconv_t; │ │ │ │ │ +29#endif /* HAVE_ICONV */ │ │ │ │ │ +30 │ │ │ │ │ +31#if HAVE_ERRNO_H │ │ │ │ │ +32#include │ │ │ │ │ +33#endif │ │ │ │ │ +34 │ │ │ │ │ +35#if HAVE_WCHAR_H │ │ │ │ │ +36#include │ │ │ │ │ +37#endif │ │ │ │ │ +38 │ │ │ │ │ +39/* The following EILSEQ advice is borrowed verbatim from GNU iconv. */ │ │ │ │ │ +40/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS, │ │ │ │ │ +41 have EILSEQ in a different header. On these systems, define EILSEQ │ │ │ │ │ +42 ourselves. */ │ │ │ │ │ +43#ifndef EILSEQ │ │ │ │ │ +44# define EILSEQ ENOENT │ │ │ │ │ +45#endif │ │ │ │ │ +46 │ │ │ │ │ +47#if HAVE_STDLIB_H │ │ │ │ │ +48#include │ │ │ │ │ +49#endif /* HAVE_STDLIB_H */ │ │ │ │ │ +50 │ │ │ │ │ +51#include │ │ │ │ │ +52 │ │ │ │ │ +53#ifdef __cplusplus │ │ │ │ │ +54extern "C" │ │ │ │ │ +55{ │ │ │ │ │ +56#endif │ │ │ │ │ +57 │ │ │ │ │ +58#if ! HAVE_ICONV │ │ │ │ │ +59iconv_t _t_d_s___s_y_s___i_c_o_n_v___o_p_e_n(const char *tocode, const char *fromcode); │ │ │ │ │ +60size_t tds_sys_iconv(iconv_t cd, const char **inbuf, size_t * inbytesleft, │ │ │ │ │ +char **outbuf, size_t * outbytesleft); │ │ │ │ │ +61int tds_sys_iconv_close(iconv_t cd); │ │ │ │ │ +62#else │ │ │ │ │ +63#define tds_sys_iconv_open iconv_open │ │ │ │ │ +64#define tds_sys_iconv iconv │ │ │ │ │ +65#define tds_sys_iconv_close iconv_close │ │ │ │ │ +66#endif /* !HAVE_ICONV */ │ │ │ │ │ +67 │ │ │ │ │ 68 │ │ │ │ │ -69#if ENABLE_EXTRA_CHECKS && defined(__GNUC__) && __GNUC__ >= 4 │ │ │ │ │ -70#define TDS_WUR __attribute__ ((__warn_unused_result__)) │ │ │ │ │ -71#else │ │ │ │ │ -72#define TDS_WUR │ │ │ │ │ -73#endif │ │ │ │ │ -74 │ │ │ │ │ -75#define TDS_INT2PTR(i) ((void*)(((char*)0)+((intptr_t)(i)))) │ │ │ │ │ -76#define TDS_PTR2INT(p) ((int)(((char*)(p))-((char*)0))) │ │ │ │ │ +69typedef enum │ │ │ │ │ +70{ to_server, to_client } TDS_ICONV_DIRECTION; │ │ │ │ │ +71 │ │ │ │ │ +_7_2typedef struct ___c_h_a_r_a_c_t_e_r___s_e_t___a_l_i_a_s │ │ │ │ │ +73{ │ │ │ │ │ +74 const char *alias; │ │ │ │ │ +75 int canonic; │ │ │ │ │ +76} _C_H_A_R_A_C_T_E_R___S_E_T___A_L_I_A_S; │ │ │ │ │ 77 │ │ │ │ │ -78#endif │ │ │ │ │ +_7_8typedef struct _t_d_s___e_r_r_n_o___m_e_s_s_a_g_e___f_l_a_g_s { │ │ │ │ │ +79 unsigned int e2big:1; │ │ │ │ │ +80 unsigned int eilseq:1; │ │ │ │ │ +81 unsigned int einval:1; │ │ │ │ │ +82} _T_D_S___E_R_R_N_O___M_E_S_S_A_G_E___F_L_A_G_S; │ │ │ │ │ +83 │ │ │ │ │ +_8_4typedef struct _t_d_s_i_c_o_n_v_d_i_r │ │ │ │ │ +85{ │ │ │ │ │ +86 _T_D_S___E_N_C_O_D_I_N_G charset; │ │ │ │ │ +87 │ │ │ │ │ +88 iconv_t cd; │ │ │ │ │ +89} _T_D_S_I_C_O_N_V_D_I_R; │ │ │ │ │ +90 │ │ │ │ │ +_9_1struct _t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ +92{ │ │ │ │ │ +93 struct _t_d_s_i_c_o_n_v_d_i_r to, from; │ │ │ │ │ +94 │ │ │ │ │ +95#define TDS_ENCODING_MEMCPY 1 │ │ │ │ │ +96 unsigned int flags; │ │ │ │ │ +97 │ │ │ │ │ +98 /* │ │ │ │ │ +99 * Suppress error messages that would otherwise be emitted by tds_iconv(). │ │ │ │ │ +100 * Functions that process large buffers ask tds_iconv to convert it in │ │ │ │ │ +"chunks". │ │ │ │ │ +101 * We don't want to emit spurious EILSEQ errors or multiple errors for one │ │ │ │ │ +102 * buffer. tds_iconv() checks this structure before emiting a message, and │ │ │ │ │ +103 * adds to it whenever it emits one. Callers that handle a particular │ │ │ │ │ +situation themselves │ │ │ │ │ +104 * can prepopulate it. │ │ │ │ │ +105 */ │ │ │ │ │ +106 _T_D_S___E_R_R_N_O___M_E_S_S_A_G_E___F_L_A_G_S suppress; │ │ │ │ │ +107 │ │ │ │ │ +108}; │ │ │ │ │ +109 │ │ │ │ │ +110/* We use ICONV_CONST for tds_iconv(), even if we don't have iconv() */ │ │ │ │ │ +111#ifndef ICONV_CONST │ │ │ │ │ +112# define ICONV_CONST const │ │ │ │ │ +113#endif │ │ │ │ │ +114 │ │ │ │ │ +115size_t _t_d_s___i_c_o_n_v(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * char_conv, TDS_ICONV_DIRECTION │ │ │ │ │ +io, │ │ │ │ │ +116 const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * │ │ │ │ │ +outbytesleft); │ │ │ │ │ +117int _t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t(const char *charset_name); │ │ │ │ │ +118const char *_t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t___n_a_m_e(const char *charset_name); │ │ │ │ │ +119_T_D_S_I_C_O_N_V *tds_iconv_get(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *client_charset, │ │ │ │ │ +const char *server_charset); │ │ │ │ │ +120_T_D_S_I_C_O_N_V *_t_d_s___i_c_o_n_v___g_e_t___i_n_f_o(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, int canonic_client, int │ │ │ │ │ +canonic_server); │ │ │ │ │ +121 │ │ │ │ │ +122#ifdef __cplusplus │ │ │ │ │ +123} │ │ │ │ │ +124#endif │ │ │ │ │ +125 │ │ │ │ │ +126#include │ │ │ │ │ +127 │ │ │ │ │ +128#endif /* _tds_iconv_h_ */ │ │ │ │ │ +_t_d_s___i_c_o_n_v___g_e_t___i_n_f_o │ │ │ │ │ +TDSICONV * tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int │ │ │ │ │ +canonic_server) │ │ │ │ │ +Get a iconv info structure, allocate and initialize if needed. │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:758 │ │ │ │ │ +_t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t___n_a_m_e │ │ │ │ │ +const char * tds_canonical_charset_name(const char *charset_name) │ │ │ │ │ +Determine canonical iconv character set name. │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:982 │ │ │ │ │ +_t_d_s___i_c_o_n_v │ │ │ │ │ +size_t tds_iconv(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION io, │ │ │ │ │ +const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) │ │ │ │ │ +Wrapper around iconv(3). │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:592 │ │ │ │ │ +_t_d_s___s_y_s___i_c_o_n_v___o_p_e_n │ │ │ │ │ +iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode) │ │ │ │ │ +Inputs are FreeTDS canonical names, no other. │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:344 │ │ │ │ │ +_t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t │ │ │ │ │ +int tds_canonical_charset(const char *charset_name) │ │ │ │ │ +Determine canonical iconv character set. │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:970 │ │ │ │ │ +___c_h_a_r_a_c_t_e_r___s_e_t___a_l_i_a_s │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:73 │ │ │ │ │ +_t_d_s___e_r_r_n_o___m_e_s_s_a_g_e___f_l_a_g_s │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:78 │ │ │ │ │ +_t_d_s_i_c_o_n_v_d_i_r │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:85 │ │ │ │ │ +_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ +_t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ +Information relevant to libiconv. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:618 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00365_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/version.h Source File │ │ │ │ +FreeTDS API: include/freetds/replacements.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,15 +74,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
version.h
│ │ │ │ +
replacements.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ @@ -96,27 +96,195 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _tdsversion_h_
│ │ │ │ -
21#define _tdsversion_h_
│ │ │ │ +
20#ifndef _replacements_h_
│ │ │ │ +
21#define _replacements_h_
│ │ │ │
22
│ │ │ │ -
23/* $Id: 9640daf619734147e3b5ff6a1dad56ad305ffa51 $ */
│ │ │ │ -
24
│ │ │ │ -
25#define TDS_VERSION_NO "freetds v1.3.17"
│ │ │ │ +
23#include <stdarg.h>
│ │ │ │ +
24#include "tds_sysdep_public.h"
│ │ │ │ +
25#include <freetds/sysdep_private.h>
│ │ │ │
26
│ │ │ │ -
27#define TDS_VERSION_MAJOR 1
│ │ │ │ -
28#define TDS_VERSION_MINOR 3
│ │ │ │ -
29#define TDS_VERSION_SUBVERSION 17
│ │ │ │ -
30#define TDS_VERSION_BUILD_NUMBER 1837
│ │ │ │ -
31
│ │ │ │ +
27#include <freetds/replacements/readpassphrase.h>
│ │ │ │ +
28
│ │ │ │ +
29/* these headers are needed for basename */
│ │ │ │ +
30#ifdef HAVE_STRING_H
│ │ │ │ +
31# include <string.h>
│ │ │ │
32#endif
│ │ │ │ +
33#ifdef HAVE_LIBGEN_H
│ │ │ │ +
34# include <libgen.h>
│ │ │ │ +
35#endif
│ │ │ │ +
36#ifdef HAVE_GETOPT_H
│ │ │ │ +
37# include <getopt.h>
│ │ │ │ +
38#endif
│ │ │ │ +
39
│ │ │ │ +
40#if !HAVE_POLL
│ │ │ │ + │ │ │ │ +
42#endif /* !HAVE_POLL */
│ │ │ │ +
43
│ │ │ │ +
44#include <freetds/pushvis.h>
│ │ │ │ +
45
│ │ │ │ +
46#ifdef __cplusplus
│ │ │ │ +
47extern "C"
│ │ │ │ +
48{
│ │ │ │ +
49#endif
│ │ │ │ +
50
│ │ │ │ +
51#if !HAVE_ASPRINTF
│ │ │ │ +
52#undef asprintf
│ │ │ │ +
53int tds_asprintf(char **ret, const char *fmt, ...);
│ │ │ │ +
54#define asprintf tds_asprintf
│ │ │ │ +
55#endif /* !HAVE_ASPRINTF */
│ │ │ │ +
56
│ │ │ │ +
57#if !HAVE_VASPRINTF
│ │ │ │ +
58#undef vasprintf
│ │ │ │ +
59int tds_vasprintf(char **ret, const char *fmt, va_list ap);
│ │ │ │ +
60#define vasprintf tds_vasprintf
│ │ │ │ +
61#endif /* !HAVE_VASPRINTF */
│ │ │ │ +
62
│ │ │ │ +
63#if !HAVE_STRTOK_R
│ │ │ │ +
64/* Some MinGW define strtok_r macro thread-safe but not reentrant but we
│ │ │ │ +
65 need both so avoid using the macro */
│ │ │ │ +
66#undef strtok_r
│ │ │ │ +
67#if defined(_WIN32) && HAVE_STRTOK_S
│ │ │ │ +
68#define strtok_r strtok_s
│ │ │ │ +
69#else
│ │ │ │ +
70char *tds_strtok_r(char *str, const char *sep, char **lasts);
│ │ │ │ +
71#define strtok_r tds_strtok_r
│ │ │ │ +
72#endif
│ │ │ │ +
73#endif /* !HAVE_STRTOK_R */
│ │ │ │ +
74
│ │ │ │ +
75#if !HAVE_STRSEP
│ │ │ │ +
76#undef strsep
│ │ │ │ +
77char *tds_strsep(char **stringp, const char *delim);
│ │ │ │ +
78#define strsep tds_strsep
│ │ │ │ +
79#endif /* !HAVE_STRSEP */
│ │ │ │ +
80
│ │ │ │ +
81#if !HAVE_STRLCPY
│ │ │ │ +
82size_t tds_strlcpy(char *dest, const char *src, size_t len);
│ │ │ │ +
83#undef strlcpy
│ │ │ │ +
84#define strlcpy(d,s,l) tds_strlcpy(d,s,l)
│ │ │ │ +
85#endif
│ │ │ │ +
86
│ │ │ │ +
87#if !HAVE_GETADDRINFO
│ │ │ │ +
│ │ │ │ +
88typedef struct tds_addrinfo {
│ │ │ │ +
89 int ai_flags;
│ │ │ │ +
90 int ai_family;
│ │ │ │ +
91 int ai_socktype;
│ │ │ │ +
92 int ai_protocol;
│ │ │ │ +
93 size_t ai_addrlen;
│ │ │ │ +
94 struct sockaddr *ai_addr;
│ │ │ │ +
95 char *ai_canonname;
│ │ │ │ +
96 struct tds_addrinfo *ai_next;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
98
│ │ │ │ +
99int tds_getaddrinfo(const char *node, const char *service, const struct tds_addrinfo *hints, struct tds_addrinfo **res);
│ │ │ │ +
100int tds_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
│ │ │ │ +
101void tds_freeaddrinfo(struct tds_addrinfo *addr);
│ │ │ │ +
102#define addrinfo tds_addrinfo
│ │ │ │ +
103#define getaddrinfo(n,s,h,r) tds_getaddrinfo(n,s,h,r)
│ │ │ │ +
104#define getnameinfo(a,b,c,d,e,f,g) tds_getnameinfo(a,b,c,d,e,f,g)
│ │ │ │ +
105#define freeaddrinfo(a) tds_freeaddrinfo(a)
│ │ │ │ +
106#endif
│ │ │ │ +
107
│ │ │ │ +
108#ifndef AI_FQDN
│ │ │ │ +
109#define AI_FQDN 0
│ │ │ │ +
110#endif
│ │ │ │ +
111
│ │ │ │ +
112#if !HAVE_STRLCAT
│ │ │ │ +
113size_t tds_strlcat(char *dest, const char *src, size_t len);
│ │ │ │ +
114#undef strlcat
│ │ │ │ +
115#define strlcat(d,s,l) tds_strlcat(d,s,l)
│ │ │ │ +
116#endif
│ │ │ │ +
117
│ │ │ │ +
118#if !HAVE_BASENAME
│ │ │ │ +
119char *tds_basename(char *path);
│ │ │ │ +
120#define basename(path) tds_basename(path)
│ │ │ │ +
121#endif
│ │ │ │ +
122
│ │ │ │ +
123/*
│ │ │ │ +
124 * Microsoft's C Runtime library is missing strcasecmp and strncasecmp.
│ │ │ │ +
125 * Other Win32 C runtime libraries, notably MinGW, may define it.
│ │ │ │ +
126 * There is no symbol uniquely defined in Microsoft's header files that
│ │ │ │ +
127 * can be used by the preprocessor to know whether we're compiling for
│ │ │ │ +
128 * Microsoft's library or not (or which version). Thus there's no
│ │ │ │ +
129 * way to automatically decide whether or not to define strcasecmp
│ │ │ │ +
130 * in terms of stricmp.
│ │ │ │ +
131 *
│ │ │ │ +
132 * The Microsoft *compiler* defines _MSC_VER. On the assumption that
│ │ │ │ +
133 * anyone using their compiler is also using their library, the below
│ │ │ │ +
134 * tests check _MSC_VER as a proxy.
│ │ │ │ +
135 */
│ │ │ │ +
136#if defined(_WIN32)
│ │ │ │ +
137# if !defined(strcasecmp) && defined(_MSC_VER)
│ │ │ │ +
138# define strcasecmp(A, B) stricmp((A), (B))
│ │ │ │ +
139# endif
│ │ │ │ +
140# if !defined(strncasecmp) && defined(_MSC_VER)
│ │ │ │ +
141# define strncasecmp(x,y,z) strnicmp((x),(y),(z))
│ │ │ │ +
142# endif
│ │ │ │ +
143
│ │ │ │ +
144#undef gettimeofday
│ │ │ │ +
145int tds_gettimeofday (struct timeval *tv, void *tz);
│ │ │ │ +
146#define gettimeofday tds_gettimeofday
│ │ │ │ +
147
│ │ │ │ +
148/* Older MinGW-w64 versions don't define these flags. */
│ │ │ │ +
149#if defined(__MINGW32__) && !defined(AI_ADDRCONFIG)
│ │ │ │ +
150# define AI_ADDRCONFIG 0x00000400
│ │ │ │ +
151#endif
│ │ │ │ +
152#if defined(__MINGW32__) && !defined(AI_V4MAPPED)
│ │ │ │ +
153# define AI_V4MAPPED 0x00000800
│ │ │ │ +
154#endif
│ │ │ │ +
155
│ │ │ │ +
156#endif
│ │ │ │ +
157
│ │ │ │ +
158#if defined(_WIN32) && defined(_MSC_VER)
│ │ │ │ +
159#define tds_strtoll _strtoi64
│ │ │ │ +
160#else
│ │ │ │ +
161#define tds_strtoll strtoll
│ │ │ │ +
162#endif
│ │ │ │ +
163
│ │ │ │ +
164#if !HAVE_GETOPT
│ │ │ │ +
165#undef getopt
│ │ │ │ +
166int tds_getopt(int argc, char * const argv[], const char *optstring);
│ │ │ │ +
167#define getopt tds_getopt
│ │ │ │ +
168
│ │ │ │ +
169extern char *optarg;
│ │ │ │ +
170extern int optind, offset, opterr, optreset;
│ │ │ │ +
171#endif
│ │ │ │ +
172
│ │ │ │ +
173#if !HAVE_SOCKETPAIR
│ │ │ │ +
174int tds_socketpair(int domain, int type, int protocol, TDS_SYS_SOCKET sv[2]);
│ │ │ │ +
175#define socketpair(d,t,p,s) tds_socketpair(d,t,p,s)
│ │ │ │ +
176#endif
│ │ │ │ +
177
│ │ │ │ +
178#if !HAVE_DAEMON
│ │ │ │ +
179int tds_daemon(int no_chdir, int no_close);
│ │ │ │ +
180#define daemon(d,c) tds_daemon(d,c)
│ │ │ │ +
181#endif
│ │ │ │ +
182
│ │ │ │ +
183#if !HAVE_SETENV
│ │ │ │ +
184int tds_setenv(const char *name, const char *value, int overwrite);
│ │ │ │ +
185#define setenv(n,v,o) tds_setenv(n,v,o)
│ │ │ │ +
186int tds_unsetenv(const char *name);
│ │ │ │ +
187#define unsetenv(n) tds_unsetenv(n)
│ │ │ │ +
188#endif
│ │ │ │ +
189
│ │ │ │ +
190#ifdef __cplusplus
│ │ │ │ +
191}
│ │ │ │ +
192#endif
│ │ │ │ +
193
│ │ │ │ +
194#include <freetds/popvis.h>
│ │ │ │ +
195
│ │ │ │ +
196#endif
│ │ │ │ +
Provide poll call where missing.
│ │ │ │ +
Definition replacements.h:88
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,14 +1,14 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -version.h │ │ │ │ │ +replacements.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ @@ -20,22 +20,193 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _tdsversion_h_ │ │ │ │ │ -21#define _tdsversion_h_ │ │ │ │ │ +20#ifndef _replacements_h_ │ │ │ │ │ +21#define _replacements_h_ │ │ │ │ │ 22 │ │ │ │ │ -23/* $Id: 9640daf619734147e3b5ff6a1dad56ad305ffa51 $ */ │ │ │ │ │ -24 │ │ │ │ │ -25#define TDS_VERSION_NO "freetds v1.3.17" │ │ │ │ │ +23#include │ │ │ │ │ +24#include "tds_sysdep_public.h" │ │ │ │ │ +25#include │ │ │ │ │ 26 │ │ │ │ │ -27#define TDS_VERSION_MAJOR 1 │ │ │ │ │ -28#define TDS_VERSION_MINOR 3 │ │ │ │ │ -29#define TDS_VERSION_SUBVERSION 17 │ │ │ │ │ -30#define TDS_VERSION_BUILD_NUMBER 1837 │ │ │ │ │ -31 │ │ │ │ │ +27#include │ │ │ │ │ +28 │ │ │ │ │ +29/* these headers are needed for basename */ │ │ │ │ │ +30#ifdef HAVE_STRING_H │ │ │ │ │ +31# include │ │ │ │ │ 32#endif │ │ │ │ │ +33#ifdef HAVE_LIBGEN_H │ │ │ │ │ +34# include │ │ │ │ │ +35#endif │ │ │ │ │ +36#ifdef HAVE_GETOPT_H │ │ │ │ │ +37# include │ │ │ │ │ +38#endif │ │ │ │ │ +39 │ │ │ │ │ +40#if !HAVE_POLL │ │ │ │ │ +41#include <_f_r_e_e_t_d_s_/_r_e_p_l_a_c_e_m_e_n_t_s_/_p_o_l_l_._h> │ │ │ │ │ +42#endif /* !HAVE_POLL */ │ │ │ │ │ +43 │ │ │ │ │ +44#include │ │ │ │ │ +45 │ │ │ │ │ +46#ifdef __cplusplus │ │ │ │ │ +47extern "C" │ │ │ │ │ +48{ │ │ │ │ │ +49#endif │ │ │ │ │ +50 │ │ │ │ │ +51#if !HAVE_ASPRINTF │ │ │ │ │ +52#undef asprintf │ │ │ │ │ +53int tds_asprintf(char **ret, const char *fmt, ...); │ │ │ │ │ +54#define asprintf tds_asprintf │ │ │ │ │ +55#endif /* !HAVE_ASPRINTF */ │ │ │ │ │ +56 │ │ │ │ │ +57#if !HAVE_VASPRINTF │ │ │ │ │ +58#undef vasprintf │ │ │ │ │ +59int tds_vasprintf(char **ret, const char *fmt, va_list ap); │ │ │ │ │ +60#define vasprintf tds_vasprintf │ │ │ │ │ +61#endif /* !HAVE_VASPRINTF */ │ │ │ │ │ +62 │ │ │ │ │ +63#if !HAVE_STRTOK_R │ │ │ │ │ +64/* Some MinGW define strtok_r macro thread-safe but not reentrant but we │ │ │ │ │ +65 need both so avoid using the macro */ │ │ │ │ │ +66#undef strtok_r │ │ │ │ │ +67#if defined(_WIN32) && HAVE_STRTOK_S │ │ │ │ │ +68#define strtok_r strtok_s │ │ │ │ │ +69#else │ │ │ │ │ +70char *tds_strtok_r(char *str, const char *sep, char **lasts); │ │ │ │ │ +71#define strtok_r tds_strtok_r │ │ │ │ │ +72#endif │ │ │ │ │ +73#endif /* !HAVE_STRTOK_R */ │ │ │ │ │ +74 │ │ │ │ │ +75#if !HAVE_STRSEP │ │ │ │ │ +76#undef strsep │ │ │ │ │ +77char *tds_strsep(char **stringp, const char *delim); │ │ │ │ │ +78#define strsep tds_strsep │ │ │ │ │ +79#endif /* !HAVE_STRSEP */ │ │ │ │ │ +80 │ │ │ │ │ +81#if !HAVE_STRLCPY │ │ │ │ │ +82size_t tds_strlcpy(char *dest, const char *src, size_t len); │ │ │ │ │ +83#undef strlcpy │ │ │ │ │ +84#define strlcpy(d,s,l) tds_strlcpy(d,s,l) │ │ │ │ │ +85#endif │ │ │ │ │ +86 │ │ │ │ │ +87#if !HAVE_GETADDRINFO │ │ │ │ │ +_8_8typedef struct _t_d_s___a_d_d_r_i_n_f_o { │ │ │ │ │ +89 int ai_flags; │ │ │ │ │ +90 int ai_family; │ │ │ │ │ +91 int ai_socktype; │ │ │ │ │ +92 int ai_protocol; │ │ │ │ │ +93 size_t ai_addrlen; │ │ │ │ │ +94 struct sockaddr *ai_addr; │ │ │ │ │ +95 char *ai_canonname; │ │ │ │ │ +96 struct _t_d_s___a_d_d_r_i_n_f_o *ai_next; │ │ │ │ │ +97} _t_d_s___a_d_d_r_i_n_f_o; │ │ │ │ │ +98 │ │ │ │ │ +99int tds_getaddrinfo(const char *node, const char *service, const struct │ │ │ │ │ +_t_d_s___a_d_d_r_i_n_f_o *hints, struct _t_d_s___a_d_d_r_i_n_f_o **res); │ │ │ │ │ +100int tds_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, │ │ │ │ │ +size_t hostlen, char *serv, size_t servlen, int flags); │ │ │ │ │ +101void tds_freeaddrinfo(struct _t_d_s___a_d_d_r_i_n_f_o *addr); │ │ │ │ │ +102#define addrinfo tds_addrinfo │ │ │ │ │ +103#define getaddrinfo(n,s,h,r) tds_getaddrinfo(n,s,h,r) │ │ │ │ │ +104#define getnameinfo(a,b,c,d,e,f,g) tds_getnameinfo(a,b,c,d,e,f,g) │ │ │ │ │ +105#define freeaddrinfo(a) tds_freeaddrinfo(a) │ │ │ │ │ +106#endif │ │ │ │ │ +107 │ │ │ │ │ +108#ifndef AI_FQDN │ │ │ │ │ +109#define AI_FQDN 0 │ │ │ │ │ +110#endif │ │ │ │ │ +111 │ │ │ │ │ +112#if !HAVE_STRLCAT │ │ │ │ │ +113size_t tds_strlcat(char *dest, const char *src, size_t len); │ │ │ │ │ +114#undef strlcat │ │ │ │ │ +115#define strlcat(d,s,l) tds_strlcat(d,s,l) │ │ │ │ │ +116#endif │ │ │ │ │ +117 │ │ │ │ │ +118#if !HAVE_BASENAME │ │ │ │ │ +119char *tds_basename(char *path); │ │ │ │ │ +120#define basename(path) tds_basename(path) │ │ │ │ │ +121#endif │ │ │ │ │ +122 │ │ │ │ │ +123/* │ │ │ │ │ +124 * Microsoft's C Runtime library is missing strcasecmp and strncasecmp. │ │ │ │ │ +125 * Other Win32 C runtime libraries, notably MinGW, may define it. │ │ │ │ │ +126 * There is no symbol uniquely defined in Microsoft's header files that │ │ │ │ │ +127 * can be used by the preprocessor to know whether we're compiling for │ │ │ │ │ +128 * Microsoft's library or not (or which version). Thus there's no │ │ │ │ │ +129 * way to automatically decide whether or not to define strcasecmp │ │ │ │ │ +130 * in terms of stricmp. │ │ │ │ │ +131 * │ │ │ │ │ +132 * The Microsoft *compiler* defines _MSC_VER. On the assumption that │ │ │ │ │ +133 * anyone using their compiler is also using their library, the below │ │ │ │ │ +134 * tests check _MSC_VER as a proxy. │ │ │ │ │ +135 */ │ │ │ │ │ +136#if defined(_WIN32) │ │ │ │ │ +137# if !defined(strcasecmp) && defined(_MSC_VER) │ │ │ │ │ +138# define strcasecmp(A, B) stricmp((A), (B)) │ │ │ │ │ +139# endif │ │ │ │ │ +140# if !defined(strncasecmp) && defined(_MSC_VER) │ │ │ │ │ +141# define strncasecmp(x,y,z) strnicmp((x),(y),(z)) │ │ │ │ │ +142# endif │ │ │ │ │ +143 │ │ │ │ │ +144#undef gettimeofday │ │ │ │ │ +145int tds_gettimeofday (struct timeval *tv, void *tz); │ │ │ │ │ +146#define gettimeofday tds_gettimeofday │ │ │ │ │ +147 │ │ │ │ │ +148/* Older MinGW-w64 versions don't define these flags. */ │ │ │ │ │ +149#if defined(__MINGW32__) && !defined(AI_ADDRCONFIG) │ │ │ │ │ +150# define AI_ADDRCONFIG 0x00000400 │ │ │ │ │ +151#endif │ │ │ │ │ +152#if defined(__MINGW32__) && !defined(AI_V4MAPPED) │ │ │ │ │ +153# define AI_V4MAPPED 0x00000800 │ │ │ │ │ +154#endif │ │ │ │ │ +155 │ │ │ │ │ +156#endif │ │ │ │ │ +157 │ │ │ │ │ +158#if defined(_WIN32) && defined(_MSC_VER) │ │ │ │ │ +159#define tds_strtoll _strtoi64 │ │ │ │ │ +160#else │ │ │ │ │ +161#define tds_strtoll strtoll │ │ │ │ │ +162#endif │ │ │ │ │ +163 │ │ │ │ │ +164#if !HAVE_GETOPT │ │ │ │ │ +165#undef getopt │ │ │ │ │ +166int tds_getopt(int argc, char * const argv[], const char *optstring); │ │ │ │ │ +167#define getopt tds_getopt │ │ │ │ │ +168 │ │ │ │ │ +169extern char *optarg; │ │ │ │ │ +170extern int optind, offset, opterr, optreset; │ │ │ │ │ +171#endif │ │ │ │ │ +172 │ │ │ │ │ +173#if !HAVE_SOCKETPAIR │ │ │ │ │ +174int tds_socketpair(int domain, int type, int protocol, TDS_SYS_SOCKET sv │ │ │ │ │ +[2]); │ │ │ │ │ +175#define socketpair(d,t,p,s) tds_socketpair(d,t,p,s) │ │ │ │ │ +176#endif │ │ │ │ │ +177 │ │ │ │ │ +178#if !HAVE_DAEMON │ │ │ │ │ +179int tds_daemon(int no_chdir, int no_close); │ │ │ │ │ +180#define daemon(d,c) tds_daemon(d,c) │ │ │ │ │ +181#endif │ │ │ │ │ +182 │ │ │ │ │ +183#if !HAVE_SETENV │ │ │ │ │ +184int tds_setenv(const char *name, const char *value, int overwrite); │ │ │ │ │ +185#define setenv(n,v,o) tds_setenv(n,v,o) │ │ │ │ │ +186int tds_unsetenv(const char *name); │ │ │ │ │ +187#define unsetenv(n) tds_unsetenv(n) │ │ │ │ │ +188#endif │ │ │ │ │ +189 │ │ │ │ │ +190#ifdef __cplusplus │ │ │ │ │ +191} │ │ │ │ │ +192#endif │ │ │ │ │ +193 │ │ │ │ │ +194#include │ │ │ │ │ +195 │ │ │ │ │ +196#endif │ │ │ │ │ +_p_o_l_l_._h │ │ │ │ │ +Provide poll call where missing. │ │ │ │ │ +_t_d_s___a_d_d_r_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn replacements.h:88 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00368_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/replacements.h Source File │ │ │ │ +FreeTDS API: include/freetds/checks.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
replacements.h
│ │ │ │ +
checks.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 2004 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,195 +96,73 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _replacements_h_
│ │ │ │ -
21#define _replacements_h_
│ │ │ │ +
20#ifndef TDS_CHECKS_H
│ │ │ │ +
21#define TDS_CHECKS_H
│ │ │ │
22
│ │ │ │ -
23#include <stdarg.h>
│ │ │ │ -
24#include "tds_sysdep_public.h"
│ │ │ │ -
25#include <freetds/sysdep_private.h>
│ │ │ │ -
26
│ │ │ │ -
27#include <freetds/replacements/readpassphrase.h>
│ │ │ │ -
28
│ │ │ │ -
29/* these headers are needed for basename */
│ │ │ │ -
30#ifdef HAVE_STRING_H
│ │ │ │ -
31# include <string.h>
│ │ │ │ -
32#endif
│ │ │ │ -
33#ifdef HAVE_LIBGEN_H
│ │ │ │ -
34# include <libgen.h>
│ │ │ │ -
35#endif
│ │ │ │ -
36#ifdef HAVE_GETOPT_H
│ │ │ │ -
37# include <getopt.h>
│ │ │ │ -
38#endif
│ │ │ │ -
39
│ │ │ │ -
40#if !HAVE_POLL
│ │ │ │ - │ │ │ │ -
42#endif /* !HAVE_POLL */
│ │ │ │ -
43
│ │ │ │ -
44#include <freetds/pushvis.h>
│ │ │ │ -
45
│ │ │ │ -
46#ifdef __cplusplus
│ │ │ │ -
47extern "C"
│ │ │ │ -
48{
│ │ │ │ -
49#endif
│ │ │ │ -
50
│ │ │ │ -
51#if !HAVE_ASPRINTF
│ │ │ │ -
52#undef asprintf
│ │ │ │ -
53int tds_asprintf(char **ret, const char *fmt, ...);
│ │ │ │ -
54#define asprintf tds_asprintf
│ │ │ │ -
55#endif /* !HAVE_ASPRINTF */
│ │ │ │ -
56
│ │ │ │ -
57#if !HAVE_VASPRINTF
│ │ │ │ -
58#undef vasprintf
│ │ │ │ -
59int tds_vasprintf(char **ret, const char *fmt, va_list ap);
│ │ │ │ -
60#define vasprintf tds_vasprintf
│ │ │ │ -
61#endif /* !HAVE_VASPRINTF */
│ │ │ │ -
62
│ │ │ │ -
63#if !HAVE_STRTOK_R
│ │ │ │ -
64/* Some MinGW define strtok_r macro thread-safe but not reentrant but we
│ │ │ │ -
65 need both so avoid using the macro */
│ │ │ │ -
66#undef strtok_r
│ │ │ │ -
67#if defined(_WIN32) && HAVE_STRTOK_S
│ │ │ │ -
68#define strtok_r strtok_s
│ │ │ │ -
69#else
│ │ │ │ -
70char *tds_strtok_r(char *str, const char *sep, char **lasts);
│ │ │ │ -
71#define strtok_r tds_strtok_r
│ │ │ │ -
72#endif
│ │ │ │ -
73#endif /* !HAVE_STRTOK_R */
│ │ │ │ -
74
│ │ │ │ -
75#if !HAVE_STRSEP
│ │ │ │ -
76#undef strsep
│ │ │ │ -
77char *tds_strsep(char **stringp, const char *delim);
│ │ │ │ -
78#define strsep tds_strsep
│ │ │ │ -
79#endif /* !HAVE_STRSEP */
│ │ │ │ -
80
│ │ │ │ -
81#if !HAVE_STRLCPY
│ │ │ │ -
82size_t tds_strlcpy(char *dest, const char *src, size_t len);
│ │ │ │ -
83#undef strlcpy
│ │ │ │ -
84#define strlcpy(d,s,l) tds_strlcpy(d,s,l)
│ │ │ │ -
85#endif
│ │ │ │ -
86
│ │ │ │ -
87#if !HAVE_GETADDRINFO
│ │ │ │ -
│ │ │ │ -
88typedef struct tds_addrinfo {
│ │ │ │ -
89 int ai_flags;
│ │ │ │ -
90 int ai_family;
│ │ │ │ -
91 int ai_socktype;
│ │ │ │ -
92 int ai_protocol;
│ │ │ │ -
93 size_t ai_addrlen;
│ │ │ │ -
94 struct sockaddr *ai_addr;
│ │ │ │ -
95 char *ai_canonname;
│ │ │ │ -
96 struct tds_addrinfo *ai_next;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
98
│ │ │ │ -
99int tds_getaddrinfo(const char *node, const char *service, const struct tds_addrinfo *hints, struct tds_addrinfo **res);
│ │ │ │ -
100int tds_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
│ │ │ │ -
101void tds_freeaddrinfo(struct tds_addrinfo *addr);
│ │ │ │ -
102#define addrinfo tds_addrinfo
│ │ │ │ -
103#define getaddrinfo(n,s,h,r) tds_getaddrinfo(n,s,h,r)
│ │ │ │ -
104#define getnameinfo(a,b,c,d,e,f,g) tds_getnameinfo(a,b,c,d,e,f,g)
│ │ │ │ -
105#define freeaddrinfo(a) tds_freeaddrinfo(a)
│ │ │ │ -
106#endif
│ │ │ │ -
107
│ │ │ │ -
108#ifndef AI_FQDN
│ │ │ │ -
109#define AI_FQDN 0
│ │ │ │ -
110#endif
│ │ │ │ -
111
│ │ │ │ -
112#if !HAVE_STRLCAT
│ │ │ │ -
113size_t tds_strlcat(char *dest, const char *src, size_t len);
│ │ │ │ -
114#undef strlcat
│ │ │ │ -
115#define strlcat(d,s,l) tds_strlcat(d,s,l)
│ │ │ │ -
116#endif
│ │ │ │ -
117
│ │ │ │ -
118#if !HAVE_BASENAME
│ │ │ │ -
119char *tds_basename(char *path);
│ │ │ │ -
120#define basename(path) tds_basename(path)
│ │ │ │ -
121#endif
│ │ │ │ -
122
│ │ │ │ -
123/*
│ │ │ │ -
124 * Microsoft's C Runtime library is missing strcasecmp and strncasecmp.
│ │ │ │ -
125 * Other Win32 C runtime libraries, notably MinGW, may define it.
│ │ │ │ -
126 * There is no symbol uniquely defined in Microsoft's header files that
│ │ │ │ -
127 * can be used by the preprocessor to know whether we're compiling for
│ │ │ │ -
128 * Microsoft's library or not (or which version). Thus there's no
│ │ │ │ -
129 * way to automatically decide whether or not to define strcasecmp
│ │ │ │ -
130 * in terms of stricmp.
│ │ │ │ -
131 *
│ │ │ │ -
132 * The Microsoft *compiler* defines _MSC_VER. On the assumption that
│ │ │ │ -
133 * anyone using their compiler is also using their library, the below
│ │ │ │ -
134 * tests check _MSC_VER as a proxy.
│ │ │ │ -
135 */
│ │ │ │ -
136#if defined(_WIN32)
│ │ │ │ -
137# if !defined(strcasecmp) && defined(_MSC_VER)
│ │ │ │ -
138# define strcasecmp(A, B) stricmp((A), (B))
│ │ │ │ -
139# endif
│ │ │ │ -
140# if !defined(strncasecmp) && defined(_MSC_VER)
│ │ │ │ -
141# define strncasecmp(x,y,z) strnicmp((x),(y),(z))
│ │ │ │ -
142# endif
│ │ │ │ -
143
│ │ │ │ -
144#undef gettimeofday
│ │ │ │ -
145int tds_gettimeofday (struct timeval *tv, void *tz);
│ │ │ │ -
146#define gettimeofday tds_gettimeofday
│ │ │ │ -
147
│ │ │ │ -
148/* Older MinGW-w64 versions don't define these flags. */
│ │ │ │ -
149#if defined(__MINGW32__) && !defined(AI_ADDRCONFIG)
│ │ │ │ -
150# define AI_ADDRCONFIG 0x00000400
│ │ │ │ -
151#endif
│ │ │ │ -
152#if defined(__MINGW32__) && !defined(AI_V4MAPPED)
│ │ │ │ -
153# define AI_V4MAPPED 0x00000800
│ │ │ │ -
154#endif
│ │ │ │ -
155
│ │ │ │ -
156#endif
│ │ │ │ -
157
│ │ │ │ -
158#if defined(_WIN32) && defined(_MSC_VER)
│ │ │ │ -
159#define tds_strtoll _strtoi64
│ │ │ │ -
160#else
│ │ │ │ -
161#define tds_strtoll strtoll
│ │ │ │ -
162#endif
│ │ │ │ -
163
│ │ │ │ -
164#if !HAVE_GETOPT
│ │ │ │ -
165#undef getopt
│ │ │ │ -
166int tds_getopt(int argc, char * const argv[], const char *optstring);
│ │ │ │ -
167#define getopt tds_getopt
│ │ │ │ -
168
│ │ │ │ -
169extern char *optarg;
│ │ │ │ -
170extern int optind, offset, opterr, optreset;
│ │ │ │ -
171#endif
│ │ │ │ -
172
│ │ │ │ -
173#if !HAVE_SOCKETPAIR
│ │ │ │ -
174int tds_socketpair(int domain, int type, int protocol, TDS_SYS_SOCKET sv[2]);
│ │ │ │ -
175#define socketpair(d,t,p,s) tds_socketpair(d,t,p,s)
│ │ │ │ -
176#endif
│ │ │ │ -
177
│ │ │ │ -
178#if !HAVE_DAEMON
│ │ │ │ -
179int tds_daemon(int no_chdir, int no_close);
│ │ │ │ -
180#define daemon(d,c) tds_daemon(d,c)
│ │ │ │ -
181#endif
│ │ │ │ -
182
│ │ │ │ -
183#if !HAVE_SETENV
│ │ │ │ -
184int tds_setenv(const char *name, const char *value, int overwrite);
│ │ │ │ -
185#define setenv(n,v,o) tds_setenv(n,v,o)
│ │ │ │ -
186int tds_unsetenv(const char *name);
│ │ │ │ -
187#define unsetenv(n) tds_unsetenv(n)
│ │ │ │ -
188#endif
│ │ │ │ -
189
│ │ │ │ -
190#ifdef __cplusplus
│ │ │ │ -
191}
│ │ │ │ -
192#endif
│ │ │ │ -
193
│ │ │ │ -
194#include <freetds/popvis.h>
│ │ │ │ -
195
│ │ │ │ -
196#endif
│ │ │ │ -
Provide poll call where missing.
│ │ │ │ -
Definition replacements.h:88
│ │ │ │ +
23#include <freetds/pushvis.h>
│ │ │ │ +
24
│ │ │ │ +
25#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
26#define CHECK_STRUCT_EXTRA(func,s) func(s)
│ │ │ │ +
27#else
│ │ │ │ +
28#define CHECK_STRUCT_EXTRA(func,s)
│ │ │ │ +
29#endif
│ │ │ │ +
30
│ │ │ │ +
31#define CHECK_TDS_EXTRA(tds) CHECK_STRUCT_EXTRA(tds_check_tds_extra,tds)
│ │ │ │ +
32#define CHECK_CONTEXT_EXTRA(ctx) CHECK_STRUCT_EXTRA(tds_check_context_extra,ctx)
│ │ │ │ +
33#define CHECK_TDSENV_EXTRA(env) CHECK_STRUCT_EXTRA(tds_check_env_extra,env)
│ │ │ │ +
34#define CHECK_COLUMN_EXTRA(column) CHECK_STRUCT_EXTRA(tds_check_column_extra,column)
│ │ │ │ +
35#define CHECK_RESULTINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA(tds_check_resultinfo_extra,res_info)
│ │ │ │ +
36#define CHECK_PARAMINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA(tds_check_resultinfo_extra,res_info)
│ │ │ │ +
37#define CHECK_CURSOR_EXTRA(cursor) CHECK_STRUCT_EXTRA(tds_check_cursor_extra,cursor)
│ │ │ │ +
38#define CHECK_DYNAMIC_EXTRA(dynamic) CHECK_STRUCT_EXTRA(tds_check_dynamic_extra,dynamic)
│ │ │ │ +
39#define CHECK_FREEZE_EXTRA(freeze) CHECK_STRUCT_EXTRA(tds_check_freeze_extra,freeze)
│ │ │ │ +
40#define CHECK_CONN_EXTRA(conn)
│ │ │ │ +
41
│ │ │ │ +
42#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
43void tds_check_tds_extra(const TDSSOCKET * tds);
│ │ │ │ +
44void tds_check_context_extra(const TDSCONTEXT * ctx);
│ │ │ │ +
45void tds_check_env_extra(const TDSENV * env);
│ │ │ │ +
46void tds_check_column_extra(const TDSCOLUMN * column);
│ │ │ │ +
47void tds_check_resultinfo_extra(const TDSRESULTINFO * res_info);
│ │ │ │ +
48void tds_check_cursor_extra(const TDSCURSOR * cursor);
│ │ │ │ +
49void tds_check_dynamic_extra(const TDSDYNAMIC * dynamic);
│ │ │ │ +
50void tds_check_freeze_extra(const TDSFREEZE * freeze);
│ │ │ │ +
51#endif
│ │ │ │ +
52
│ │ │ │ +
53#if defined(HAVE_VALGRIND_MEMCHECK_H) && ENABLE_EXTRA_CHECKS
│ │ │ │ +
54# include <valgrind/memcheck.h>
│ │ │ │ +
55# define TDS_MARK_UNDEFINED(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len)
│ │ │ │ +
56#else
│ │ │ │ +
57# define TDS_MARK_UNDEFINED(ptr, len) do {} while(0)
│ │ │ │ +
58#endif
│ │ │ │ +
59
│ │ │ │ +
60#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
61void tds_extra_assert_check(const char *fn, int line, int cond, const char *cond_str);
│ │ │ │ +
62# define tds_extra_assert(cond) \
│ │ │ │ +
63 tds_extra_assert_check(__FILE__, __LINE__, cond, #cond)
│ │ │ │ +
64#else
│ │ │ │ +
65# define tds_extra_assert(cond) do { } while(0)
│ │ │ │ +
66#endif
│ │ │ │ +
67
│ │ │ │ +
68#include <freetds/popvis.h>
│ │ │ │ +
69
│ │ │ │ +
70#endif /* TDS_CHECKS_H */
│ │ │ │ +
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ +
Hold information for any results.
Definition tds.h:769
│ │ │ │ +
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ +
Current environment as reported by the server.
Definition tds.h:963
│ │ │ │ +
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ +
Definition tds.h:1029
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
Definition tds.h:1571
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,16 +1,16 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -replacements.h │ │ │ │ │ +checks.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 2004 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -20,193 +20,90 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _replacements_h_ │ │ │ │ │ -21#define _replacements_h_ │ │ │ │ │ +20#ifndef TDS_CHECKS_H │ │ │ │ │ +21#define TDS_CHECKS_H │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24#include "tds_sysdep_public.h" │ │ │ │ │ -25#include │ │ │ │ │ -26 │ │ │ │ │ -27#include │ │ │ │ │ -28 │ │ │ │ │ -29/* these headers are needed for basename */ │ │ │ │ │ -30#ifdef HAVE_STRING_H │ │ │ │ │ -31# include │ │ │ │ │ -32#endif │ │ │ │ │ -33#ifdef HAVE_LIBGEN_H │ │ │ │ │ -34# include │ │ │ │ │ -35#endif │ │ │ │ │ -36#ifdef HAVE_GETOPT_H │ │ │ │ │ -37# include │ │ │ │ │ -38#endif │ │ │ │ │ -39 │ │ │ │ │ -40#if !HAVE_POLL │ │ │ │ │ -41#include <_f_r_e_e_t_d_s_/_r_e_p_l_a_c_e_m_e_n_t_s_/_p_o_l_l_._h> │ │ │ │ │ -42#endif /* !HAVE_POLL */ │ │ │ │ │ -43 │ │ │ │ │ -44#include │ │ │ │ │ -45 │ │ │ │ │ -46#ifdef __cplusplus │ │ │ │ │ -47extern "C" │ │ │ │ │ -48{ │ │ │ │ │ -49#endif │ │ │ │ │ -50 │ │ │ │ │ -51#if !HAVE_ASPRINTF │ │ │ │ │ -52#undef asprintf │ │ │ │ │ -53int tds_asprintf(char **ret, const char *fmt, ...); │ │ │ │ │ -54#define asprintf tds_asprintf │ │ │ │ │ -55#endif /* !HAVE_ASPRINTF */ │ │ │ │ │ -56 │ │ │ │ │ -57#if !HAVE_VASPRINTF │ │ │ │ │ -58#undef vasprintf │ │ │ │ │ -59int tds_vasprintf(char **ret, const char *fmt, va_list ap); │ │ │ │ │ -60#define vasprintf tds_vasprintf │ │ │ │ │ -61#endif /* !HAVE_VASPRINTF */ │ │ │ │ │ -62 │ │ │ │ │ -63#if !HAVE_STRTOK_R │ │ │ │ │ -64/* Some MinGW define strtok_r macro thread-safe but not reentrant but we │ │ │ │ │ -65 need both so avoid using the macro */ │ │ │ │ │ -66#undef strtok_r │ │ │ │ │ -67#if defined(_WIN32) && HAVE_STRTOK_S │ │ │ │ │ -68#define strtok_r strtok_s │ │ │ │ │ -69#else │ │ │ │ │ -70char *tds_strtok_r(char *str, const char *sep, char **lasts); │ │ │ │ │ -71#define strtok_r tds_strtok_r │ │ │ │ │ -72#endif │ │ │ │ │ -73#endif /* !HAVE_STRTOK_R */ │ │ │ │ │ -74 │ │ │ │ │ -75#if !HAVE_STRSEP │ │ │ │ │ -76#undef strsep │ │ │ │ │ -77char *tds_strsep(char **stringp, const char *delim); │ │ │ │ │ -78#define strsep tds_strsep │ │ │ │ │ -79#endif /* !HAVE_STRSEP */ │ │ │ │ │ -80 │ │ │ │ │ -81#if !HAVE_STRLCPY │ │ │ │ │ -82size_t tds_strlcpy(char *dest, const char *src, size_t len); │ │ │ │ │ -83#undef strlcpy │ │ │ │ │ -84#define strlcpy(d,s,l) tds_strlcpy(d,s,l) │ │ │ │ │ -85#endif │ │ │ │ │ -86 │ │ │ │ │ -87#if !HAVE_GETADDRINFO │ │ │ │ │ -_8_8typedef struct _t_d_s___a_d_d_r_i_n_f_o { │ │ │ │ │ -89 int ai_flags; │ │ │ │ │ -90 int ai_family; │ │ │ │ │ -91 int ai_socktype; │ │ │ │ │ -92 int ai_protocol; │ │ │ │ │ -93 size_t ai_addrlen; │ │ │ │ │ -94 struct sockaddr *ai_addr; │ │ │ │ │ -95 char *ai_canonname; │ │ │ │ │ -96 struct _t_d_s___a_d_d_r_i_n_f_o *ai_next; │ │ │ │ │ -97} _t_d_s___a_d_d_r_i_n_f_o; │ │ │ │ │ -98 │ │ │ │ │ -99int tds_getaddrinfo(const char *node, const char *service, const struct │ │ │ │ │ -_t_d_s___a_d_d_r_i_n_f_o *hints, struct _t_d_s___a_d_d_r_i_n_f_o **res); │ │ │ │ │ -100int tds_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, │ │ │ │ │ -size_t hostlen, char *serv, size_t servlen, int flags); │ │ │ │ │ -101void tds_freeaddrinfo(struct _t_d_s___a_d_d_r_i_n_f_o *addr); │ │ │ │ │ -102#define addrinfo tds_addrinfo │ │ │ │ │ -103#define getaddrinfo(n,s,h,r) tds_getaddrinfo(n,s,h,r) │ │ │ │ │ -104#define getnameinfo(a,b,c,d,e,f,g) tds_getnameinfo(a,b,c,d,e,f,g) │ │ │ │ │ -105#define freeaddrinfo(a) tds_freeaddrinfo(a) │ │ │ │ │ -106#endif │ │ │ │ │ -107 │ │ │ │ │ -108#ifndef AI_FQDN │ │ │ │ │ -109#define AI_FQDN 0 │ │ │ │ │ -110#endif │ │ │ │ │ -111 │ │ │ │ │ -112#if !HAVE_STRLCAT │ │ │ │ │ -113size_t tds_strlcat(char *dest, const char *src, size_t len); │ │ │ │ │ -114#undef strlcat │ │ │ │ │ -115#define strlcat(d,s,l) tds_strlcat(d,s,l) │ │ │ │ │ -116#endif │ │ │ │ │ -117 │ │ │ │ │ -118#if !HAVE_BASENAME │ │ │ │ │ -119char *tds_basename(char *path); │ │ │ │ │ -120#define basename(path) tds_basename(path) │ │ │ │ │ -121#endif │ │ │ │ │ -122 │ │ │ │ │ -123/* │ │ │ │ │ -124 * Microsoft's C Runtime library is missing strcasecmp and strncasecmp. │ │ │ │ │ -125 * Other Win32 C runtime libraries, notably MinGW, may define it. │ │ │ │ │ -126 * There is no symbol uniquely defined in Microsoft's header files that │ │ │ │ │ -127 * can be used by the preprocessor to know whether we're compiling for │ │ │ │ │ -128 * Microsoft's library or not (or which version). Thus there's no │ │ │ │ │ -129 * way to automatically decide whether or not to define strcasecmp │ │ │ │ │ -130 * in terms of stricmp. │ │ │ │ │ -131 * │ │ │ │ │ -132 * The Microsoft *compiler* defines _MSC_VER. On the assumption that │ │ │ │ │ -133 * anyone using their compiler is also using their library, the below │ │ │ │ │ -134 * tests check _MSC_VER as a proxy. │ │ │ │ │ -135 */ │ │ │ │ │ -136#if defined(_WIN32) │ │ │ │ │ -137# if !defined(strcasecmp) && defined(_MSC_VER) │ │ │ │ │ -138# define strcasecmp(A, B) stricmp((A), (B)) │ │ │ │ │ -139# endif │ │ │ │ │ -140# if !defined(strncasecmp) && defined(_MSC_VER) │ │ │ │ │ -141# define strncasecmp(x,y,z) strnicmp((x),(y),(z)) │ │ │ │ │ -142# endif │ │ │ │ │ -143 │ │ │ │ │ -144#undef gettimeofday │ │ │ │ │ -145int tds_gettimeofday (struct timeval *tv, void *tz); │ │ │ │ │ -146#define gettimeofday tds_gettimeofday │ │ │ │ │ -147 │ │ │ │ │ -148/* Older MinGW-w64 versions don't define these flags. */ │ │ │ │ │ -149#if defined(__MINGW32__) && !defined(AI_ADDRCONFIG) │ │ │ │ │ -150# define AI_ADDRCONFIG 0x00000400 │ │ │ │ │ -151#endif │ │ │ │ │ -152#if defined(__MINGW32__) && !defined(AI_V4MAPPED) │ │ │ │ │ -153# define AI_V4MAPPED 0x00000800 │ │ │ │ │ -154#endif │ │ │ │ │ -155 │ │ │ │ │ -156#endif │ │ │ │ │ -157 │ │ │ │ │ -158#if defined(_WIN32) && defined(_MSC_VER) │ │ │ │ │ -159#define tds_strtoll _strtoi64 │ │ │ │ │ -160#else │ │ │ │ │ -161#define tds_strtoll strtoll │ │ │ │ │ -162#endif │ │ │ │ │ -163 │ │ │ │ │ -164#if !HAVE_GETOPT │ │ │ │ │ -165#undef getopt │ │ │ │ │ -166int tds_getopt(int argc, char * const argv[], const char *optstring); │ │ │ │ │ -167#define getopt tds_getopt │ │ │ │ │ -168 │ │ │ │ │ -169extern char *optarg; │ │ │ │ │ -170extern int optind, offset, opterr, optreset; │ │ │ │ │ -171#endif │ │ │ │ │ -172 │ │ │ │ │ -173#if !HAVE_SOCKETPAIR │ │ │ │ │ -174int tds_socketpair(int domain, int type, int protocol, TDS_SYS_SOCKET sv │ │ │ │ │ -[2]); │ │ │ │ │ -175#define socketpair(d,t,p,s) tds_socketpair(d,t,p,s) │ │ │ │ │ -176#endif │ │ │ │ │ -177 │ │ │ │ │ -178#if !HAVE_DAEMON │ │ │ │ │ -179int tds_daemon(int no_chdir, int no_close); │ │ │ │ │ -180#define daemon(d,c) tds_daemon(d,c) │ │ │ │ │ -181#endif │ │ │ │ │ -182 │ │ │ │ │ -183#if !HAVE_SETENV │ │ │ │ │ -184int tds_setenv(const char *name, const char *value, int overwrite); │ │ │ │ │ -185#define setenv(n,v,o) tds_setenv(n,v,o) │ │ │ │ │ -186int tds_unsetenv(const char *name); │ │ │ │ │ -187#define unsetenv(n) tds_unsetenv(n) │ │ │ │ │ -188#endif │ │ │ │ │ -189 │ │ │ │ │ -190#ifdef __cplusplus │ │ │ │ │ -191} │ │ │ │ │ -192#endif │ │ │ │ │ -193 │ │ │ │ │ -194#include │ │ │ │ │ -195 │ │ │ │ │ -196#endif │ │ │ │ │ -_p_o_l_l_._h │ │ │ │ │ -Provide poll call where missing. │ │ │ │ │ -_t_d_s___a_d_d_r_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn replacements.h:88 │ │ │ │ │ +23#include │ │ │ │ │ +24 │ │ │ │ │ +25#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +26#define CHECK_STRUCT_EXTRA(func,s) func(s) │ │ │ │ │ +27#else │ │ │ │ │ +28#define CHECK_STRUCT_EXTRA(func,s) │ │ │ │ │ +29#endif │ │ │ │ │ +30 │ │ │ │ │ +31#define CHECK_TDS_EXTRA(tds) CHECK_STRUCT_EXTRA(tds_check_tds_extra,tds) │ │ │ │ │ +32#define CHECK_CONTEXT_EXTRA(ctx) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_context_extra,ctx) │ │ │ │ │ +33#define CHECK_TDSENV_EXTRA(env) CHECK_STRUCT_EXTRA(tds_check_env_extra,env) │ │ │ │ │ +34#define CHECK_COLUMN_EXTRA(column) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_column_extra,column) │ │ │ │ │ +35#define CHECK_RESULTINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_resultinfo_extra,res_info) │ │ │ │ │ +36#define CHECK_PARAMINFO_EXTRA(res_info) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_resultinfo_extra,res_info) │ │ │ │ │ +37#define CHECK_CURSOR_EXTRA(cursor) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_cursor_extra,cursor) │ │ │ │ │ +38#define CHECK_DYNAMIC_EXTRA(dynamic) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_dynamic_extra,dynamic) │ │ │ │ │ +39#define CHECK_FREEZE_EXTRA(freeze) CHECK_STRUCT_EXTRA │ │ │ │ │ +(tds_check_freeze_extra,freeze) │ │ │ │ │ +40#define CHECK_CONN_EXTRA(conn) │ │ │ │ │ +41 │ │ │ │ │ +42#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +43void tds_check_tds_extra(const _T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +44void tds_check_context_extra(const _T_D_S_C_O_N_T_E_X_T * ctx); │ │ │ │ │ +45void tds_check_env_extra(const _T_D_S_E_N_V * env); │ │ │ │ │ +46void tds_check_column_extra(const _T_D_S_C_O_L_U_M_N * column); │ │ │ │ │ +47void tds_check_resultinfo_extra(const _T_D_S_R_E_S_U_L_T_I_N_F_O * res_info); │ │ │ │ │ +48void tds_check_cursor_extra(const _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ +49void tds_check_dynamic_extra(const _T_D_S_D_Y_N_A_M_I_C * dynamic); │ │ │ │ │ +50void tds_check_freeze_extra(const _T_D_S_F_R_E_E_Z_E * freeze); │ │ │ │ │ +51#endif │ │ │ │ │ +52 │ │ │ │ │ +53#if defined(HAVE_VALGRIND_MEMCHECK_H) && ENABLE_EXTRA_CHECKS │ │ │ │ │ +54# include │ │ │ │ │ +55# define TDS_MARK_UNDEFINED(ptr, len) VALGRIND_MAKE_MEM_UNDEFINED(ptr, len) │ │ │ │ │ +56#else │ │ │ │ │ +57# define TDS_MARK_UNDEFINED(ptr, len) do {} while(0) │ │ │ │ │ +58#endif │ │ │ │ │ +59 │ │ │ │ │ +60#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +61void tds_extra_assert_check(const char *fn, int line, int cond, const char │ │ │ │ │ +*cond_str); │ │ │ │ │ +62# define tds_extra_assert(cond) \ │ │ │ │ │ +63 tds_extra_assert_check(__FILE__, __LINE__, cond, #cond) │ │ │ │ │ +64#else │ │ │ │ │ +65# define tds_extra_assert(cond) do { } while(0) │ │ │ │ │ +66#endif │ │ │ │ │ +67 │ │ │ │ │ +68#include │ │ │ │ │ +69 │ │ │ │ │ +70#endif /* TDS_CHECKS_H */ │ │ │ │ │ +_t_d_s___c_o_l_u_m_n │ │ │ │ │ +Metadata about columns in regular and compute rows. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ +_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ +Hold information for any results. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r │ │ │ │ │ +Holds informations about a cursor. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ +_t_d_s___e_n_v │ │ │ │ │ +Current environment as reported by the server. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:963 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ +Holds information for a dynamic (also called prepared) query. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ +_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1571 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00371_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/pushvis.h Source File │ │ │ │ +FreeTDS API: include/freetds/sysdep_private.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,20 +74,291 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
pushvis.h
│ │ │ │ +
sysdep_private.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
│ │ │ │ -
2#pragma GCC visibility push(hidden)
│ │ │ │ -
3#endif
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │ +
3 * Copyright (C) 2010 Frediano Ziglio
│ │ │ │ +
4 *
│ │ │ │ +
5 * This library is free software; you can redistribute it and/or
│ │ │ │ +
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
7 * License as published by the Free Software Foundation; either
│ │ │ │ +
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
9 *
│ │ │ │ +
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
13 * Library General Public License for more details.
│ │ │ │ +
14 *
│ │ │ │ +
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
16 * License along with this library; if not, write to the
│ │ │ │ +
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
18 * Boston, MA 02111-1307, USA.
│ │ │ │ +
19 */
│ │ │ │ +
20
│ │ │ │ +
21#ifndef _tds_sysdep_private_h_
│ │ │ │ +
22#define _tds_sysdep_private_h_
│ │ │ │ +
23
│ │ │ │ +
24#define TDS_ADDITIONAL_SPACE 16
│ │ │ │ +
25
│ │ │ │ +
26#ifdef MSG_NOSIGNAL
│ │ │ │ +
27# define TDS_NOSIGNAL MSG_NOSIGNAL
│ │ │ │ +
28#else
│ │ │ │ +
29# define TDS_NOSIGNAL 0L
│ │ │ │ +
30#endif
│ │ │ │ +
31
│ │ │ │ +
32#ifdef __cplusplus
│ │ │ │ +
33extern "C"
│ │ │ │ +
34{
│ │ │ │ +
35#if 0
│ │ │ │ +
36}
│ │ │ │ +
37#endif
│ │ │ │ +
38#endif
│ │ │ │ +
39
│ │ │ │ +
40#ifdef __INCvxWorksh
│ │ │ │ +
41#include <ioLib.h> /* for FIONBIO */
│ │ │ │ +
42#endif /* __INCvxWorksh */
│ │ │ │ +
43
│ │ │ │ +
44#if defined(DOS32X)
│ │ │ │ +
45#define READSOCKET(a,b,c) recv((a), (b), (c), TDS_NOSIGNAL)
│ │ │ │ +
46#define WRITESOCKET(a,b,c) send((a), (b), (c), TDS_NOSIGNAL)
│ │ │ │ +
47#define CLOSESOCKET(a) closesocket((a))
│ │ │ │ +
48#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (char*)(c))
│ │ │ │ +
49#define SOCKLEN_T int
│ │ │ │ +
50#define select select_s
│ │ │ │ +
51typedef int pid_t;
│ │ │ │ +
52#define strcasecmp stricmp
│ │ │ │ +
53#define strncasecmp strnicmp
│ │ │ │ +
54/* TODO this has nothing to do with ip ... */
│ │ │ │ +
55#define getpid() _gethostid()
│ │ │ │ +
56#endif /* defined(DOS32X) */
│ │ │ │ +
57
│ │ │ │ +
58#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)
│ │ │ │ +
59#include <freetds/windows.h>
│ │ │ │ +
60#define READSOCKET(a,b,c) recv((a), (char *) (b), (c), TDS_NOSIGNAL)
│ │ │ │ +
61#define WRITESOCKET(a,b,c) send((a), (const char *) (b), (c), TDS_NOSIGNAL)
│ │ │ │ +
62#define CLOSESOCKET(a) closesocket((a))
│ │ │ │ +
63#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (c))
│ │ │ │ +
64#define SOCKLEN_T int
│ │ │ │ +
65int tds_socket_init(void);
│ │ │ │ +
66#define INITSOCKET() tds_socket_init()
│ │ │ │ +
67void tds_socket_done(void);
│ │ │ │ +
68#define DONESOCKET() tds_socket_done()
│ │ │ │ +
69#define NETDB_REENTRANT 1 /* BSD-style netdb interface is reentrant */
│ │ │ │ +
70
│ │ │ │ +
71#define TDSSOCK_EINTR WSAEINTR
│ │ │ │ +
72#define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK
│ │ │ │ +
73#define TDSSOCK_ETIMEDOUT WSAETIMEDOUT
│ │ │ │ +
74#define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK)
│ │ │ │ +
75#define TDSSOCK_ECONNRESET WSAECONNRESET
│ │ │ │ +
76#define sock_errno WSAGetLastError()
│ │ │ │ +
77#define set_sock_errno(err) WSASetLastError(err)
│ │ │ │ +
78#define sock_strerror(n) tds_prwsaerror(n)
│ │ │ │ +
79#define sock_strerror_free(s) tds_prwsaerror_free(s)
│ │ │ │ +
80#ifndef __MINGW32__
│ │ │ │ +
81typedef DWORD pid_t;
│ │ │ │ +
82#endif
│ │ │ │ +
83#undef strcasecmp
│ │ │ │ +
84#define strcasecmp stricmp
│ │ │ │ +
85#undef strncasecmp
│ │ │ │ +
86#define strncasecmp strnicmp
│ │ │ │ +
87#if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF)
│ │ │ │ +
88#define snprintf _snprintf
│ │ │ │ +
89#endif
│ │ │ │ +
90
│ │ │ │ +
91#ifndef WIN32
│ │ │ │ +
92#define WIN32 1
│ │ │ │ +
93#endif
│ │ │ │ +
94
│ │ │ │ +
95#if defined(_WIN64) && !defined(WIN64)
│ │ │ │ +
96#define WIN64 1
│ │ │ │ +
97#endif
│ │ │ │ +
98
│ │ │ │ +
99#define TDS_SDIR_SEPARATOR "\\"
│ │ │ │ +
100
│ │ │ │ +
101/* use macros to use new style names */
│ │ │ │ +
102#if defined(__MSVCRT__) || defined(_MSC_VER)
│ │ │ │ +
103/* Use API as always present and not causing problems */
│ │ │ │ +
104#undef getpid
│ │ │ │ +
105#define getpid() GetCurrentProcessId()
│ │ │ │ +
106#define strdup(s) _strdup(s)
│ │ │ │ +
107#define unlink(f) _unlink(f)
│ │ │ │ +
108#define putenv(s) _putenv(s)
│ │ │ │ +
109#undef fileno
│ │ │ │ +
110#define fileno(f) _fileno(f)
│ │ │ │ +
111#undef close
│ │ │ │ +
112#define close(f) _close(f)
│ │ │ │ +
113#undef open
│ │ │ │ +
114#define open(fn,...) _open(fn,__VA_ARGS__)
│ │ │ │ +
115#undef dup2
│ │ │ │ +
116#define dup2(o,n) _dup2(o,n)
│ │ │ │ +
117#define stricmp(s1,s2) _stricmp(s1,s2)
│ │ │ │ +
118#define strnicmp(s1,s2,n) _strnicmp(s1,s2,n)
│ │ │ │ +
119#endif
│ │ │ │ +
120
│ │ │ │ +
121#endif /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */
│ │ │ │ +
122
│ │ │ │ +
123#ifndef sock_errno
│ │ │ │ +
124#define sock_errno errno
│ │ │ │ +
125#endif
│ │ │ │ +
126
│ │ │ │ +
127#ifndef set_sock_errno
│ │ │ │ +
128#define set_sock_errno(err) do { errno = (err); } while(0)
│ │ │ │ +
129#endif
│ │ │ │ +
130
│ │ │ │ +
131#ifndef sock_strerror
│ │ │ │ +
132#define sock_strerror(n) strerror(n)
│ │ │ │ +
133#define sock_strerror_free(s) do {} while(0)
│ │ │ │ +
134#endif
│ │ │ │ +
135
│ │ │ │ +
136#ifndef TDSSOCK_EINTR
│ │ │ │ +
137#define TDSSOCK_EINTR EINTR
│ │ │ │ +
138#endif
│ │ │ │ +
139
│ │ │ │ +
140#ifndef TDSSOCK_EINPROGRESS
│ │ │ │ +
141#define TDSSOCK_EINPROGRESS EINPROGRESS
│ │ │ │ +
142#endif
│ │ │ │ +
143
│ │ │ │ +
144#ifndef TDSSOCK_ETIMEDOUT
│ │ │ │ +
145#define TDSSOCK_ETIMEDOUT ETIMEDOUT
│ │ │ │ +
146#endif
│ │ │ │ +
147
│ │ │ │ +
148#ifndef TDSSOCK_WOULDBLOCK
│ │ │ │ +
149# if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK
│ │ │ │ +
150# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK)
│ │ │ │ +
151# else
│ │ │ │ +
152# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN)
│ │ │ │ +
153# endif
│ │ │ │ +
154#endif
│ │ │ │ +
155
│ │ │ │ +
156#ifndef TDSSOCK_ECONNRESET
│ │ │ │ +
157#define TDSSOCK_ECONNRESET ECONNRESET
│ │ │ │ +
158#endif
│ │ │ │ +
159
│ │ │ │ +
160#ifndef INITSOCKET
│ │ │ │ +
161#define INITSOCKET() 0
│ │ │ │ +
162#endif /* !INITSOCKET */
│ │ │ │ +
163
│ │ │ │ +
164#ifndef DONESOCKET
│ │ │ │ +
165#define DONESOCKET() do { } while(0)
│ │ │ │ +
166#endif /* !DONESOCKET */
│ │ │ │ +
167
│ │ │ │ +
168#ifndef READSOCKET
│ │ │ │ +
169# ifdef MSG_NOSIGNAL
│ │ │ │ +
170# define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL)
│ │ │ │ +
171# else
│ │ │ │ +
172# define READSOCKET(s,b,l) read((s), (b), (l))
│ │ │ │ +
173# endif
│ │ │ │ +
174#endif /* !READSOCKET */
│ │ │ │ +
175
│ │ │ │ +
176#ifndef WRITESOCKET
│ │ │ │ +
177# ifdef MSG_NOSIGNAL
│ │ │ │ +
178# define WRITESOCKET(s,b,l) send((s), (b), (l), MSG_NOSIGNAL)
│ │ │ │ +
179# else
│ │ │ │ +
180# define WRITESOCKET(s,b,l) write((s), (b), (l))
│ │ │ │ +
181# endif
│ │ │ │ +
182#endif /* !WRITESOCKET */
│ │ │ │ +
183
│ │ │ │ +
184#ifndef CLOSESOCKET
│ │ │ │ +
185#define CLOSESOCKET(s) close((s))
│ │ │ │ +
186#endif /* !CLOSESOCKET */
│ │ │ │ +
187
│ │ │ │ +
188#ifndef IOCTLSOCKET
│ │ │ │ +
189#define IOCTLSOCKET(s,b,l) ioctl((s), (b), (l))
│ │ │ │ +
190#endif /* !IOCTLSOCKET */
│ │ │ │ +
191
│ │ │ │ +
192#ifndef SOCKLEN_T
│ │ │ │ +
193# define SOCKLEN_T socklen_t
│ │ │ │ +
194#endif
│ │ │ │ +
195
│ │ │ │ +
196#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32)
│ │ │ │ +
197typedef int TDS_SYS_SOCKET;
│ │ │ │ +
198#define INVALID_SOCKET -1
│ │ │ │ +
199#define TDS_IS_SOCKET_INVALID(s) ((s) < 0)
│ │ │ │ +
200#else
│ │ │ │ +
201typedef SOCKET TDS_SYS_SOCKET;
│ │ │ │ +
202#define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET)
│ │ │ │ +
203#endif
│ │ │ │ +
204
│ │ │ │ +
205#define tds_accept accept
│ │ │ │ +
206#define tds_getpeername getpeername
│ │ │ │ +
207#define tds_getsockopt getsockopt
│ │ │ │ +
208#define tds_getsockname getsockname
│ │ │ │ +
209#define tds_recvfrom recvfrom
│ │ │ │ +
210
│ │ │ │ +
211#if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4
│ │ │ │ +
212# if HAVE__XPG_ACCEPT
│ │ │ │ +
213# undef tds_accept
│ │ │ │ +
214# define tds_accept _xpg_accept
│ │ │ │ +
215# elif HAVE___ACCEPT
│ │ │ │ +
216# undef tds_accept
│ │ │ │ +
217# define tds_accept __accept
│ │ │ │ +
218# endif
│ │ │ │ +
219# if HAVE__XPG_GETPEERNAME
│ │ │ │ +
220# undef tds_getpeername
│ │ │ │ +
221# define tds_getpeername _xpg_getpeername
│ │ │ │ +
222# elif HAVE___GETPEERNAME
│ │ │ │ +
223# undef tds_getpeername
│ │ │ │ +
224# define tds_getpeername __getpeername
│ │ │ │ +
225# endif
│ │ │ │ +
226# if HAVE__XPG_GETSOCKOPT
│ │ │ │ +
227# undef tds_getsockopt
│ │ │ │ +
228# define tds_getsockopt _xpg_getsockopt
│ │ │ │ +
229# elif HAVE___GETSOCKOPT
│ │ │ │ +
230# undef tds_getsockopt
│ │ │ │ +
231# define tds_getsockopt __getsockopt
│ │ │ │ +
232# endif
│ │ │ │ +
233# if HAVE__XPG_GETSOCKNAME
│ │ │ │ +
234# undef tds_getsockname
│ │ │ │ +
235# define tds_getsockname _xpg_getsockname
│ │ │ │ +
236# elif HAVE___GETSOCKNAME
│ │ │ │ +
237# undef tds_getsockname
│ │ │ │ +
238# define tds_getsockname __getsockname
│ │ │ │ +
239# endif
│ │ │ │ +
240# if HAVE__XPG_RECVFROM
│ │ │ │ +
241# undef tds_recvfrom
│ │ │ │ +
242# define tds_recvfrom _xpg_recvfrom
│ │ │ │ +
243# elif HAVE___RECVFROM
│ │ │ │ +
244# undef tds_recvfrom
│ │ │ │ +
245# define tds_recvfrom __recvfrom
│ │ │ │ +
246# endif
│ │ │ │ +
247#endif
│ │ │ │ +
248
│ │ │ │ +
249#ifndef TDS_SDIR_SEPARATOR
│ │ │ │ +
250#define TDS_SDIR_SEPARATOR "/"
│ │ │ │ +
251#endif /* !TDS_SDIR_SEPARATOR */
│ │ │ │ +
252
│ │ │ │ +
253#ifdef HAVE_INTTYPES_H
│ │ │ │ +
254#include <inttypes.h>
│ │ │ │ +
255#endif
│ │ │ │ +
256
│ │ │ │ +
257#ifndef PRId64
│ │ │ │ +
258#define PRId64 TDS_I64_PREFIX "d"
│ │ │ │ +
259#endif
│ │ │ │ +
260#ifndef PRIu64
│ │ │ │ +
261#define PRIu64 TDS_I64_PREFIX "u"
│ │ │ │ +
262#endif
│ │ │ │ +
263#ifndef PRIx64
│ │ │ │ +
264#define PRIx64 TDS_I64_PREFIX "x"
│ │ │ │ +
265#endif
│ │ │ │ +
266
│ │ │ │ +
267#ifdef __cplusplus
│ │ │ │ +
268#if 0
│ │ │ │ +
269{
│ │ │ │ +
270#endif
│ │ │ │ +
271}
│ │ │ │ +
272#endif
│ │ │ │ +
273
│ │ │ │ +
274#endif /* _tds_sysdep_private_h_ */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,284 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -pushvis.h │ │ │ │ │ -1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__) │ │ │ │ │ -2#pragma GCC visibility push(hidden) │ │ │ │ │ -3#endif │ │ │ │ │ +sysdep_private.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ +3 * Copyright (C) 2010 Frediano Ziglio │ │ │ │ │ +4 * │ │ │ │ │ +5 * This library is free software; you can redistribute it and/or │ │ │ │ │ +6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +7 * License as published by the Free Software Foundation; either │ │ │ │ │ +8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +9 * │ │ │ │ │ +10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +13 * Library General Public License for more details. │ │ │ │ │ +14 * │ │ │ │ │ +15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +16 * License along with this library; if not, write to the │ │ │ │ │ +17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +18 * Boston, MA 02111-1307, USA. │ │ │ │ │ +19 */ │ │ │ │ │ +20 │ │ │ │ │ +21#ifndef _tds_sysdep_private_h_ │ │ │ │ │ +22#define _tds_sysdep_private_h_ │ │ │ │ │ +23 │ │ │ │ │ +24#define TDS_ADDITIONAL_SPACE 16 │ │ │ │ │ +25 │ │ │ │ │ +26#ifdef MSG_NOSIGNAL │ │ │ │ │ +27# define TDS_NOSIGNAL MSG_NOSIGNAL │ │ │ │ │ +28#else │ │ │ │ │ +29# define TDS_NOSIGNAL 0L │ │ │ │ │ +30#endif │ │ │ │ │ +31 │ │ │ │ │ +32#ifdef __cplusplus │ │ │ │ │ +33extern "C" │ │ │ │ │ +34{ │ │ │ │ │ +35#if 0 │ │ │ │ │ +36} │ │ │ │ │ +37#endif │ │ │ │ │ +38#endif │ │ │ │ │ +39 │ │ │ │ │ +40#ifdef __INCvxWorksh │ │ │ │ │ +41#include /* for FIONBIO */ │ │ │ │ │ +42#endif /* __INCvxWorksh */ │ │ │ │ │ +43 │ │ │ │ │ +44#if defined(DOS32X) │ │ │ │ │ +45#define READSOCKET(a,b,c) recv((a), (b), (c), TDS_NOSIGNAL) │ │ │ │ │ +46#define WRITESOCKET(a,b,c) send((a), (b), (c), TDS_NOSIGNAL) │ │ │ │ │ +47#define CLOSESOCKET(a) closesocket((a)) │ │ │ │ │ +48#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (char*)(c)) │ │ │ │ │ +49#define SOCKLEN_T int │ │ │ │ │ +50#define select select_s │ │ │ │ │ +51typedef int pid_t; │ │ │ │ │ +52#define strcasecmp stricmp │ │ │ │ │ +53#define strncasecmp strnicmp │ │ │ │ │ +54/* TODO this has nothing to do with ip ... */ │ │ │ │ │ +55#define getpid() _gethostid() │ │ │ │ │ +56#endif /* defined(DOS32X) */ │ │ │ │ │ +57 │ │ │ │ │ +58#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined │ │ │ │ │ +(_WIN64) │ │ │ │ │ +59#include │ │ │ │ │ +60#define READSOCKET(a,b,c) recv((a), (char *) (b), (c), TDS_NOSIGNAL) │ │ │ │ │ +61#define WRITESOCKET(a,b,c) send((a), (const char *) (b), (c), TDS_NOSIGNAL) │ │ │ │ │ +62#define CLOSESOCKET(a) closesocket((a)) │ │ │ │ │ +63#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (c)) │ │ │ │ │ +64#define SOCKLEN_T int │ │ │ │ │ +65int tds_socket_init(void); │ │ │ │ │ +66#define INITSOCKET() tds_socket_init() │ │ │ │ │ +67void tds_socket_done(void); │ │ │ │ │ +68#define DONESOCKET() tds_socket_done() │ │ │ │ │ +69#define NETDB_REENTRANT 1 /* BSD-style netdb interface is reentrant */ │ │ │ │ │ +70 │ │ │ │ │ +71#define TDSSOCK_EINTR WSAEINTR │ │ │ │ │ +72#define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK │ │ │ │ │ +73#define TDSSOCK_ETIMEDOUT WSAETIMEDOUT │ │ │ │ │ +74#define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK) │ │ │ │ │ +75#define TDSSOCK_ECONNRESET WSAECONNRESET │ │ │ │ │ +76#define sock_errno WSAGetLastError() │ │ │ │ │ +77#define set_sock_errno(err) WSASetLastError(err) │ │ │ │ │ +78#define sock_strerror(n) tds_prwsaerror(n) │ │ │ │ │ +79#define sock_strerror_free(s) tds_prwsaerror_free(s) │ │ │ │ │ +80#ifndef __MINGW32__ │ │ │ │ │ +81typedef DWORD pid_t; │ │ │ │ │ +82#endif │ │ │ │ │ +83#undef strcasecmp │ │ │ │ │ +84#define strcasecmp stricmp │ │ │ │ │ +85#undef strncasecmp │ │ │ │ │ +86#define strncasecmp strnicmp │ │ │ │ │ +87#if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF) │ │ │ │ │ +88#define snprintf _snprintf │ │ │ │ │ +89#endif │ │ │ │ │ +90 │ │ │ │ │ +91#ifndef WIN32 │ │ │ │ │ +92#define WIN32 1 │ │ │ │ │ +93#endif │ │ │ │ │ +94 │ │ │ │ │ +95#if defined(_WIN64) && !defined(WIN64) │ │ │ │ │ +96#define WIN64 1 │ │ │ │ │ +97#endif │ │ │ │ │ +98 │ │ │ │ │ +99#define TDS_SDIR_SEPARATOR "\\" │ │ │ │ │ +100 │ │ │ │ │ +101/* use macros to use new style names */ │ │ │ │ │ +102#if defined(__MSVCRT__) || defined(_MSC_VER) │ │ │ │ │ +103/* Use API as always present and not causing problems */ │ │ │ │ │ +104#undef getpid │ │ │ │ │ +105#define getpid() GetCurrentProcessId() │ │ │ │ │ +106#define strdup(s) _strdup(s) │ │ │ │ │ +107#define unlink(f) _unlink(f) │ │ │ │ │ +108#define putenv(s) _putenv(s) │ │ │ │ │ +109#undef fileno │ │ │ │ │ +110#define fileno(f) _fileno(f) │ │ │ │ │ +111#undef close │ │ │ │ │ +112#define close(f) _close(f) │ │ │ │ │ +113#undef open │ │ │ │ │ +114#define open(fn,...) _open(fn,__VA_ARGS__) │ │ │ │ │ +115#undef dup2 │ │ │ │ │ +116#define dup2(o,n) _dup2(o,n) │ │ │ │ │ +117#define stricmp(s1,s2) _stricmp(s1,s2) │ │ │ │ │ +118#define strnicmp(s1,s2,n) _strnicmp(s1,s2,n) │ │ │ │ │ +119#endif │ │ │ │ │ +120 │ │ │ │ │ +121#endif /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */ │ │ │ │ │ +122 │ │ │ │ │ +123#ifndef sock_errno │ │ │ │ │ +124#define sock_errno errno │ │ │ │ │ +125#endif │ │ │ │ │ +126 │ │ │ │ │ +127#ifndef set_sock_errno │ │ │ │ │ +128#define set_sock_errno(err) do { errno = (err); } while(0) │ │ │ │ │ +129#endif │ │ │ │ │ +130 │ │ │ │ │ +131#ifndef sock_strerror │ │ │ │ │ +132#define sock_strerror(n) strerror(n) │ │ │ │ │ +133#define sock_strerror_free(s) do {} while(0) │ │ │ │ │ +134#endif │ │ │ │ │ +135 │ │ │ │ │ +136#ifndef TDSSOCK_EINTR │ │ │ │ │ +137#define TDSSOCK_EINTR EINTR │ │ │ │ │ +138#endif │ │ │ │ │ +139 │ │ │ │ │ +140#ifndef TDSSOCK_EINPROGRESS │ │ │ │ │ +141#define TDSSOCK_EINPROGRESS EINPROGRESS │ │ │ │ │ +142#endif │ │ │ │ │ +143 │ │ │ │ │ +144#ifndef TDSSOCK_ETIMEDOUT │ │ │ │ │ +145#define TDSSOCK_ETIMEDOUT ETIMEDOUT │ │ │ │ │ +146#endif │ │ │ │ │ +147 │ │ │ │ │ +148#ifndef TDSSOCK_WOULDBLOCK │ │ │ │ │ +149# if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK │ │ │ │ │ +150# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK) │ │ │ │ │ +151# else │ │ │ │ │ +152# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN) │ │ │ │ │ +153# endif │ │ │ │ │ +154#endif │ │ │ │ │ +155 │ │ │ │ │ +156#ifndef TDSSOCK_ECONNRESET │ │ │ │ │ +157#define TDSSOCK_ECONNRESET ECONNRESET │ │ │ │ │ +158#endif │ │ │ │ │ +159 │ │ │ │ │ +160#ifndef INITSOCKET │ │ │ │ │ +161#define INITSOCKET() 0 │ │ │ │ │ +162#endif /* !INITSOCKET */ │ │ │ │ │ +163 │ │ │ │ │ +164#ifndef DONESOCKET │ │ │ │ │ +165#define DONESOCKET() do { } while(0) │ │ │ │ │ +166#endif /* !DONESOCKET */ │ │ │ │ │ +167 │ │ │ │ │ +168#ifndef READSOCKET │ │ │ │ │ +169# ifdef MSG_NOSIGNAL │ │ │ │ │ +170# define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL) │ │ │ │ │ +171# else │ │ │ │ │ +172# define READSOCKET(s,b,l) read((s), (b), (l)) │ │ │ │ │ +173# endif │ │ │ │ │ +174#endif /* !READSOCKET */ │ │ │ │ │ +175 │ │ │ │ │ +176#ifndef WRITESOCKET │ │ │ │ │ +177# ifdef MSG_NOSIGNAL │ │ │ │ │ +178# define WRITESOCKET(s,b,l) send((s), (b), (l), MSG_NOSIGNAL) │ │ │ │ │ +179# else │ │ │ │ │ +180# define WRITESOCKET(s,b,l) write((s), (b), (l)) │ │ │ │ │ +181# endif │ │ │ │ │ +182#endif /* !WRITESOCKET */ │ │ │ │ │ +183 │ │ │ │ │ +184#ifndef CLOSESOCKET │ │ │ │ │ +185#define CLOSESOCKET(s) close((s)) │ │ │ │ │ +186#endif /* !CLOSESOCKET */ │ │ │ │ │ +187 │ │ │ │ │ +188#ifndef IOCTLSOCKET │ │ │ │ │ +189#define IOCTLSOCKET(s,b,l) ioctl((s), (b), (l)) │ │ │ │ │ +190#endif /* !IOCTLSOCKET */ │ │ │ │ │ +191 │ │ │ │ │ +192#ifndef SOCKLEN_T │ │ │ │ │ +193# define SOCKLEN_T socklen_t │ │ │ │ │ +194#endif │ │ │ │ │ +195 │ │ │ │ │ +196#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) │ │ │ │ │ +197typedef int TDS_SYS_SOCKET; │ │ │ │ │ +198#define INVALID_SOCKET -1 │ │ │ │ │ +199#define TDS_IS_SOCKET_INVALID(s) ((s) < 0) │ │ │ │ │ +200#else │ │ │ │ │ +201typedef SOCKET TDS_SYS_SOCKET; │ │ │ │ │ +202#define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET) │ │ │ │ │ +203#endif │ │ │ │ │ +204 │ │ │ │ │ +205#define tds_accept accept │ │ │ │ │ +206#define tds_getpeername getpeername │ │ │ │ │ +207#define tds_getsockopt getsockopt │ │ │ │ │ +208#define tds_getsockname getsockname │ │ │ │ │ +209#define tds_recvfrom recvfrom │ │ │ │ │ +210 │ │ │ │ │ +211#if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 │ │ │ │ │ +212# if HAVE__XPG_ACCEPT │ │ │ │ │ +213# undef tds_accept │ │ │ │ │ +214# define tds_accept _xpg_accept │ │ │ │ │ +215# elif HAVE___ACCEPT │ │ │ │ │ +216# undef tds_accept │ │ │ │ │ +217# define tds_accept __accept │ │ │ │ │ +218# endif │ │ │ │ │ +219# if HAVE__XPG_GETPEERNAME │ │ │ │ │ +220# undef tds_getpeername │ │ │ │ │ +221# define tds_getpeername _xpg_getpeername │ │ │ │ │ +222# elif HAVE___GETPEERNAME │ │ │ │ │ +223# undef tds_getpeername │ │ │ │ │ +224# define tds_getpeername __getpeername │ │ │ │ │ +225# endif │ │ │ │ │ +226# if HAVE__XPG_GETSOCKOPT │ │ │ │ │ +227# undef tds_getsockopt │ │ │ │ │ +228# define tds_getsockopt _xpg_getsockopt │ │ │ │ │ +229# elif HAVE___GETSOCKOPT │ │ │ │ │ +230# undef tds_getsockopt │ │ │ │ │ +231# define tds_getsockopt __getsockopt │ │ │ │ │ +232# endif │ │ │ │ │ +233# if HAVE__XPG_GETSOCKNAME │ │ │ │ │ +234# undef tds_getsockname │ │ │ │ │ +235# define tds_getsockname _xpg_getsockname │ │ │ │ │ +236# elif HAVE___GETSOCKNAME │ │ │ │ │ +237# undef tds_getsockname │ │ │ │ │ +238# define tds_getsockname __getsockname │ │ │ │ │ +239# endif │ │ │ │ │ +240# if HAVE__XPG_RECVFROM │ │ │ │ │ +241# undef tds_recvfrom │ │ │ │ │ +242# define tds_recvfrom _xpg_recvfrom │ │ │ │ │ +243# elif HAVE___RECVFROM │ │ │ │ │ +244# undef tds_recvfrom │ │ │ │ │ +245# define tds_recvfrom __recvfrom │ │ │ │ │ +246# endif │ │ │ │ │ +247#endif │ │ │ │ │ +248 │ │ │ │ │ +249#ifndef TDS_SDIR_SEPARATOR │ │ │ │ │ +250#define TDS_SDIR_SEPARATOR "/" │ │ │ │ │ +251#endif /* !TDS_SDIR_SEPARATOR */ │ │ │ │ │ +252 │ │ │ │ │ +253#ifdef HAVE_INTTYPES_H │ │ │ │ │ +254#include │ │ │ │ │ +255#endif │ │ │ │ │ +256 │ │ │ │ │ +257#ifndef PRId64 │ │ │ │ │ +258#define PRId64 TDS_I64_PREFIX "d" │ │ │ │ │ +259#endif │ │ │ │ │ +260#ifndef PRIu64 │ │ │ │ │ +261#define PRIu64 TDS_I64_PREFIX "u" │ │ │ │ │ +262#endif │ │ │ │ │ +263#ifndef PRIx64 │ │ │ │ │ +264#define PRIx64 TDS_I64_PREFIX "x" │ │ │ │ │ +265#endif │ │ │ │ │ +266 │ │ │ │ │ +267#ifdef __cplusplus │ │ │ │ │ +268#if 0 │ │ │ │ │ +269{ │ │ │ │ │ +270#endif │ │ │ │ │ +271} │ │ │ │ │ +272#endif │ │ │ │ │ +273 │ │ │ │ │ +274#endif /* _tds_sysdep_private_h_ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00377_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils.h Source File │ │ │ │ +FreeTDS API: include/freetds/macros.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,72 +74,95 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
utils.h
│ │ │ │ +
macros.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2016 Frediano Ziglio
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef _freetds_utils_h_
│ │ │ │ -
21#define _freetds_utils_h_
│ │ │ │ -
22
│ │ │ │ -
23#if HAVE_STDDEF_H
│ │ │ │ -
24#include <stddef.h>
│ │ │ │ -
25#endif /* HAVE_STDDEF_H */
│ │ │ │ -
26
│ │ │ │ -
27#include <freetds/time.h>
│ │ │ │ -
28#include <freetds/sysdep_private.h>
│ │ │ │ -
29
│ │ │ │ -
30#include <freetds/pushvis.h>
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ +
3 * Copyright (C) 2010-2017 Frediano Ziglio
│ │ │ │ +
4 *
│ │ │ │ +
5 * This library is free software; you can redistribute it and/or
│ │ │ │ +
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
7 * License as published by the Free Software Foundation; either
│ │ │ │ +
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
9 *
│ │ │ │ +
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
13 * Library General Public License for more details.
│ │ │ │ +
14 *
│ │ │ │ +
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
16 * License along with this library; if not, write to the
│ │ │ │ +
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
18 * Boston, MA 02111-1307, USA.
│ │ │ │ +
19 */
│ │ │ │ +
20
│ │ │ │ +
21#ifndef _freetds_macros_h_
│ │ │ │ +
22#define _freetds_macros_h_
│ │ │ │ +
23
│ │ │ │ +
24#ifndef _freetds_config_h_
│ │ │ │ +
25#error should include config.h before
│ │ │ │ +
26#endif
│ │ │ │ +
27
│ │ │ │ +
28#if HAVE_STDDEF_H
│ │ │ │ +
29#include <stddef.h>
│ │ │ │ +
30#endif /* HAVE_STDDEF_H */
│ │ │ │
31
│ │ │ │ -
32#ifdef __cplusplus
│ │ │ │ -
33extern "C" {
│ │ │ │ -
34#endif
│ │ │ │ -
35
│ │ │ │ -
36void tds_sleep_s(unsigned sec);
│ │ │ │ -
37void tds_sleep_ms(unsigned ms);
│ │ │ │ -
38
│ │ │ │ -
39char *tds_getpassarg(char *arg);
│ │ │ │ -
40
│ │ │ │ -
41char *tds_timestamp_str(char *str, int maxlen);
│ │ │ │ -
42struct tm *tds_localtime_r(const time_t *timep, struct tm *result);
│ │ │ │ -
43int tds_getservice(const char *name);
│ │ │ │ -
44char *tds_get_homedir(void);
│ │ │ │ -
45
│ │ │ │ -
46int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on);
│ │ │ │ -
47
│ │ │ │ -
48#ifdef __cplusplus
│ │ │ │ -
49}
│ │ │ │ -
50#endif
│ │ │ │ -
51
│ │ │ │ -
52#include <freetds/popvis.h>
│ │ │ │ -
53
│ │ │ │ -
54#endif
│ │ │ │ -
int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on)
Set socket to not throw SIGPIPE.
Definition net.c:72
│ │ │ │ +
32#include "tds_sysdep_public.h"
│ │ │ │ +
33
│ │ │ │ +
34#define TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0)
│ │ │ │ +
35#define TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0]))
│ │ │ │ +
36
│ │ │ │ +
37#ifdef offsetof
│ │ │ │ +
38#define TDS_OFFSET(type, field) offsetof(type, field)
│ │ │ │ +
39#else
│ │ │ │ +
40#define TDS_OFFSET(type, field) (((char*)&((type*)0)->field)-((char*)0))
│ │ │ │ +
41#endif
│ │ │ │ +
42
│ │ │ │ +
43#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
44# if defined(__llvm__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
│ │ │ │ +
45# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ +
46 _Static_assert(check,#name)
│ │ │ │ +
47# elif defined(__GNUC__) && __GNUC__ >= 2
│ │ │ │ +
48# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ +
49 extern int name[(check)?1:-1] __attribute__ ((unused))
│ │ │ │ +
50# else
│ │ │ │ +
51# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ +
52 extern int name[(check)?1:-1]
│ │ │ │ +
53# endif
│ │ │ │ +
54# define TDS_EXTRA_CHECK(stmt) stmt
│ │ │ │ +
55#else
│ │ │ │ +
56# define TDS_COMPILE_CHECK(name,check) \
│ │ │ │ +
57 extern int disabled_check_##name
│ │ │ │ +
58# define TDS_EXTRA_CHECK(stmt)
│ │ │ │ +
59#endif
│ │ │ │ +
60
│ │ │ │ +
61#if defined(__GNUC__) && __GNUC__ >= 3
│ │ │ │ +
62# define TDS_LIKELY(x) __builtin_expect(!!(x), 1)
│ │ │ │ +
63# define TDS_UNLIKELY(x) __builtin_expect(!!(x), 0)
│ │ │ │ +
64#else
│ │ │ │ +
65# define TDS_LIKELY(x) (x)
│ │ │ │ +
66# define TDS_UNLIKELY(x) (x)
│ │ │ │ +
67#endif
│ │ │ │ +
68
│ │ │ │ +
69#if ENABLE_EXTRA_CHECKS && defined(__GNUC__) && __GNUC__ >= 4
│ │ │ │ +
70#define TDS_WUR __attribute__ ((__warn_unused_result__))
│ │ │ │ +
71#else
│ │ │ │ +
72#define TDS_WUR
│ │ │ │ +
73#endif
│ │ │ │ +
74
│ │ │ │ +
75#define TDS_INT2PTR(i) ((void*)(((char*)0)+((intptr_t)(i))))
│ │ │ │ +
76#define TDS_PTR2INT(p) ((int)(((char*)(p))-((char*)0)))
│ │ │ │ +
77
│ │ │ │ +
78#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,67 +1,88 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -utils.h │ │ │ │ │ +macros.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2016 Frediano Ziglio │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef _freetds_utils_h_ │ │ │ │ │ -21#define _freetds_utils_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#if HAVE_STDDEF_H │ │ │ │ │ -24#include │ │ │ │ │ -25#endif /* HAVE_STDDEF_H */ │ │ │ │ │ -26 │ │ │ │ │ -27#include │ │ │ │ │ -28#include │ │ │ │ │ -29 │ │ │ │ │ -30#include │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ +3 * Copyright (C) 2010-2017 Frediano Ziglio │ │ │ │ │ +4 * │ │ │ │ │ +5 * This library is free software; you can redistribute it and/or │ │ │ │ │ +6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +7 * License as published by the Free Software Foundation; either │ │ │ │ │ +8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +9 * │ │ │ │ │ +10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +13 * Library General Public License for more details. │ │ │ │ │ +14 * │ │ │ │ │ +15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +16 * License along with this library; if not, write to the │ │ │ │ │ +17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +18 * Boston, MA 02111-1307, USA. │ │ │ │ │ +19 */ │ │ │ │ │ +20 │ │ │ │ │ +21#ifndef _freetds_macros_h_ │ │ │ │ │ +22#define _freetds_macros_h_ │ │ │ │ │ +23 │ │ │ │ │ +24#ifndef _freetds_config_h_ │ │ │ │ │ +25#error should include config.h before │ │ │ │ │ +26#endif │ │ │ │ │ +27 │ │ │ │ │ +28#if HAVE_STDDEF_H │ │ │ │ │ +29#include │ │ │ │ │ +30#endif /* HAVE_STDDEF_H */ │ │ │ │ │ 31 │ │ │ │ │ -32#ifdef __cplusplus │ │ │ │ │ -33extern "C" { │ │ │ │ │ -34#endif │ │ │ │ │ -35 │ │ │ │ │ -36void tds_sleep_s(unsigned sec); │ │ │ │ │ -37void tds_sleep_ms(unsigned ms); │ │ │ │ │ -38 │ │ │ │ │ -39char *tds_getpassarg(char *arg); │ │ │ │ │ -40 │ │ │ │ │ -41char *tds_timestamp_str(char *str, int maxlen); │ │ │ │ │ -42struct tm *tds_localtime_r(const time_t *timep, struct tm *result); │ │ │ │ │ -43int tds_getservice(const char *name); │ │ │ │ │ -44char *tds_get_homedir(void); │ │ │ │ │ -45 │ │ │ │ │ -46int _t_d_s___s_o_c_k_e_t___s_e_t___n_o_s_i_g_p_i_p_e(TDS_SYS_SOCKET sock, int on); │ │ │ │ │ -47 │ │ │ │ │ -48#ifdef __cplusplus │ │ │ │ │ -49} │ │ │ │ │ -50#endif │ │ │ │ │ -51 │ │ │ │ │ -52#include │ │ │ │ │ -53 │ │ │ │ │ -54#endif │ │ │ │ │ -_t_d_s___s_o_c_k_e_t___s_e_t___n_o_s_i_g_p_i_p_e │ │ │ │ │ -int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on) │ │ │ │ │ -Set socket to not throw SIGPIPE. │ │ │ │ │ -DDeeffiinniittiioonn net.c:72 │ │ │ │ │ +32#include "tds_sysdep_public.h" │ │ │ │ │ +33 │ │ │ │ │ +34#define TDS_ZERO_FREE(x) do {free((x)); (x) = NULL;} while(0) │ │ │ │ │ +35#define TDS_VECTOR_SIZE(x) (sizeof(x)/sizeof(x[0])) │ │ │ │ │ +36 │ │ │ │ │ +37#ifdef offsetof │ │ │ │ │ +38#define TDS_OFFSET(type, field) offsetof(type, field) │ │ │ │ │ +39#else │ │ │ │ │ +40#define TDS_OFFSET(type, field) (((char*)&((type*)0)->field)-((char*)0)) │ │ │ │ │ +41#endif │ │ │ │ │ +42 │ │ │ │ │ +43#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +44# if defined(__llvm__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == │ │ │ │ │ +4 && __GNUC_MINOR__ >= 6))) │ │ │ │ │ +45# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ +46 _Static_assert(check,#name) │ │ │ │ │ +47# elif defined(__GNUC__) && __GNUC__ >= 2 │ │ │ │ │ +48# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ +49 extern int name[(check)?1:-1] __attribute__ ((unused)) │ │ │ │ │ +50# else │ │ │ │ │ +51# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ +52 extern int name[(check)?1:-1] │ │ │ │ │ +53# endif │ │ │ │ │ +54# define TDS_EXTRA_CHECK(stmt) stmt │ │ │ │ │ +55#else │ │ │ │ │ +56# define TDS_COMPILE_CHECK(name,check) \ │ │ │ │ │ +57 extern int disabled_check_##name │ │ │ │ │ +58# define TDS_EXTRA_CHECK(stmt) │ │ │ │ │ +59#endif │ │ │ │ │ +60 │ │ │ │ │ +61#if defined(__GNUC__) && __GNUC__ >= 3 │ │ │ │ │ +62# define TDS_LIKELY(x) __builtin_expect(!!(x), 1) │ │ │ │ │ +63# define TDS_UNLIKELY(x) __builtin_expect(!!(x), 0) │ │ │ │ │ +64#else │ │ │ │ │ +65# define TDS_LIKELY(x) (x) │ │ │ │ │ +66# define TDS_UNLIKELY(x) (x) │ │ │ │ │ +67#endif │ │ │ │ │ +68 │ │ │ │ │ +69#if ENABLE_EXTRA_CHECKS && defined(__GNUC__) && __GNUC__ >= 4 │ │ │ │ │ +70#define TDS_WUR __attribute__ ((__warn_unused_result__)) │ │ │ │ │ +71#else │ │ │ │ │ +72#define TDS_WUR │ │ │ │ │ +73#endif │ │ │ │ │ +74 │ │ │ │ │ +75#define TDS_INT2PTR(i) ((void*)(((char*)0)+((intptr_t)(i)))) │ │ │ │ │ +76#define TDS_PTR2INT(p) ((int)(((char*)(p))-((char*)0))) │ │ │ │ │ +77 │ │ │ │ │ +78#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00380_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/thread.h Source File │ │ │ │ +FreeTDS API: include/freetds/encodings.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,458 +74,583 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
thread.h
│ │ │ │ +
encodings.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 *
│ │ │ │ -
3 * Copyright (C) 2005 Liam Widdowson
│ │ │ │ -
4 * Copyright (C) 2010-2012 Frediano Ziglio
│ │ │ │ -
5 *
│ │ │ │ -
6 * This library is free software; you can redistribute it and/or
│ │ │ │ -
7 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
8 * License as published by the Free Software Foundation; either
│ │ │ │ -
9 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
10 *
│ │ │ │ -
11 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
14 * Library General Public License for more details.
│ │ │ │ -
15 *
│ │ │ │ -
16 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
17 * License along with this library; if not, write to the
│ │ │ │ -
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
19 * Boston, MA 02111-1307, USA.
│ │ │ │ -
20 */
│ │ │ │ -
21
│ │ │ │ -
22#ifndef TDSTHREAD_H
│ │ │ │ -
23#define TDSTHREAD_H 1
│ │ │ │ -
24
│ │ │ │ -
25#undef TDS_HAVE_MUTEX
│ │ │ │ -
26
│ │ │ │ -
27#if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX)
│ │ │ │ -
28
│ │ │ │ -
29#include <tds_sysdep_public.h>
│ │ │ │ -
30#include <pthread.h>
│ │ │ │ -
31#include <errno.h>
│ │ │ │ -
32
│ │ │ │ -
33#include <freetds/pushvis.h>
│ │ │ │ -
34
│ │ │ │ -
35typedef pthread_mutex_t tds_raw_mutex;
│ │ │ │ -
36#define TDS_RAW_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
│ │ │ │ -
37
│ │ │ │ -
38static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
│ │ │ │ -
39{
│ │ │ │ -
40 pthread_mutex_lock(mtx);
│ │ │ │ -
41}
│ │ │ │ -
42
│ │ │ │ -
43static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
│ │ │ │ -
44{
│ │ │ │ -
45 return pthread_mutex_trylock(mtx);
│ │ │ │ -
46}
│ │ │ │ -
47
│ │ │ │ -
48static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
│ │ │ │ -
49{
│ │ │ │ -
50 pthread_mutex_unlock(mtx);
│ │ │ │ -
51}
│ │ │ │ -
52
│ │ │ │ -
53static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
│ │ │ │ -
54{
│ │ │ │ -
55 return pthread_mutex_init(mtx, NULL);
│ │ │ │ -
56}
│ │ │ │ -
57
│ │ │ │ -
58static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
│ │ │ │ -
59{
│ │ │ │ -
60 pthread_mutex_destroy(mtx);
│ │ │ │ -
61}
│ │ │ │ -
62
│ │ │ │ -
63typedef pthread_cond_t tds_condition;
│ │ │ │ -
64
│ │ │ │ -
65int tds_raw_cond_init(tds_condition *cond);
│ │ │ │ -
66static inline int tds_raw_cond_destroy(tds_condition *cond)
│ │ │ │ -
67{
│ │ │ │ -
68 return pthread_cond_destroy(cond);
│ │ │ │ -
69}
│ │ │ │ -
70static inline int tds_raw_cond_signal(tds_condition *cond)
│ │ │ │ -
71{
│ │ │ │ -
72 return pthread_cond_signal(cond);
│ │ │ │ -
73}
│ │ │ │ -
74static inline int tds_raw_cond_wait(tds_condition *cond, tds_raw_mutex *mtx)
│ │ │ │ -
75{
│ │ │ │ -
76 return pthread_cond_wait(cond, mtx);
│ │ │ │ -
77}
│ │ │ │ -
78int tds_raw_cond_timedwait(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
│ │ │ │ -
79
│ │ │ │ -
80#define TDS_HAVE_MUTEX 1
│ │ │ │ -
81
│ │ │ │ -
82typedef pthread_t tds_thread;
│ │ │ │ -
83typedef pthread_t tds_thread_id;
│ │ │ │ -
84typedef void *(*tds_thread_proc)(void *arg);
│ │ │ │ -
85#define TDS_THREAD_PROC_DECLARE(name, arg) \
│ │ │ │ -
86 void *name(void *arg)
│ │ │ │ -
87#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n))
│ │ │ │ -
88
│ │ │ │ -
89static inline int tds_thread_create(tds_thread *ret, tds_thread_proc proc, void *arg)
│ │ │ │ -
90{
│ │ │ │ -
91 return pthread_create(ret, NULL, proc, arg);
│ │ │ │ -
92}
│ │ │ │ -
93
│ │ │ │ -
94static inline int tds_thread_create_detached(tds_thread_proc proc, void *arg)
│ │ │ │ -
95{
│ │ │ │ -
96 tds_thread th;
│ │ │ │ -
97 int ret = pthread_create(&th, NULL, proc, arg);
│ │ │ │ -
98 if (!ret)
│ │ │ │ -
99 pthread_detach(th);
│ │ │ │ -
100 return ret;
│ │ │ │ -
101}
│ │ │ │ -
102
│ │ │ │ -
103static inline int tds_thread_join(tds_thread th, void **ret)
│ │ │ │ -
104{
│ │ │ │ -
105 return pthread_join(th, ret);
│ │ │ │ -
106}
│ │ │ │ -
107
│ │ │ │ -
108static inline tds_thread_id tds_thread_get_current_id(void)
│ │ │ │ -
109{
│ │ │ │ -
110 return pthread_self();
│ │ │ │ -
111}
│ │ │ │ -
112
│ │ │ │ -
113static inline int tds_thread_is_current(tds_thread_id th)
│ │ │ │ -
114{
│ │ │ │ -
115 return pthread_equal(th, pthread_self());
│ │ │ │ -
116}
│ │ │ │ -
117
│ │ │ │ -
118#include <freetds/popvis.h>
│ │ │ │ -
119
│ │ │ │ -
120#elif defined(_WIN32)
│ │ │ │ -
121
│ │ │ │ -
122#include <freetds/windows.h>
│ │ │ │ -
123#include <errno.h>
│ │ │ │ -
124
│ │ │ │ -
125/* old version of Windows do not define this constant */
│ │ │ │ -
126#ifndef ETIMEDOUT
│ │ │ │ -
127#define ETIMEDOUT 138
│ │ │ │ -
128#endif
│ │ │ │ -
129
│ │ │ │ -
130struct ptw32_mcs_node_t_;
│ │ │ │ -
131
│ │ │ │ -
132typedef struct {
│ │ │ │ -
133 struct ptw32_mcs_node_t_ *lock;
│ │ │ │ -
134 LONG done;
│ │ │ │ -
135 DWORD thread_id;
│ │ │ │ -
136 CRITICAL_SECTION crit;
│ │ │ │ - │ │ │ │ -
138
│ │ │ │ -
139#define TDS_RAW_MUTEX_INITIALIZER { NULL, 0, 0 }
│ │ │ │ -
140
│ │ │ │ -
141static inline int
│ │ │ │ -
142tds_raw_mutex_init(tds_raw_mutex *mtx)
│ │ │ │ -
143{
│ │ │ │ -
144 mtx->lock = NULL;
│ │ │ │ -
145 mtx->done = 0;
│ │ │ │ -
146 mtx->thread_id = 0;
│ │ │ │ -
147 return 0;
│ │ │ │ -
148}
│ │ │ │ -
149
│ │ │ │ -
150void tds_win_mutex_lock(tds_raw_mutex *mutex);
│ │ │ │ -
151
│ │ │ │ -
152static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
│ │ │ │ -
153{
│ │ │ │ -
154 if (mtx->done) {
│ │ │ │ -
155 EnterCriticalSection(&mtx->crit);
│ │ │ │ -
156 mtx->thread_id = GetCurrentThreadId();
│ │ │ │ -
157 } else {
│ │ │ │ -
158 tds_win_mutex_lock(mtx);
│ │ │ │ -
159 }
│ │ │ │ -
160}
│ │ │ │ -
161
│ │ │ │ -
162int tds_raw_mutex_trylock(tds_raw_mutex *mtx);
│ │ │ │ -
163
│ │ │ │ -
164static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
│ │ │ │ -
165{
│ │ │ │ -
166 mtx->thread_id = 0;
│ │ │ │ -
167 LeaveCriticalSection(&mtx->crit);
│ │ │ │ -
168}
│ │ │ │ -
169
│ │ │ │ -
170static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
│ │ │ │ -
171{
│ │ │ │ -
172 if (mtx->done) {
│ │ │ │ -
173 DeleteCriticalSection(&mtx->crit);
│ │ │ │ -
174 mtx->done = 0;
│ │ │ │ -
175 }
│ │ │ │ -
176}
│ │ │ │ -
177
│ │ │ │ -
178#define TDS_HAVE_MUTEX 1
│ │ │ │ -
179
│ │ │ │ -
180/* easy way, only single signal supported */
│ │ │ │ -
181typedef void *TDS_CONDITION_VARIABLE;
│ │ │ │ -
182typedef union {
│ │ │ │ -
183 HANDLE ev;
│ │ │ │ -
184 TDS_CONDITION_VARIABLE cv;
│ │ │ │ - │ │ │ │ -
186
│ │ │ │ -
187extern int (*tds_raw_cond_init)(tds_condition *cond);
│ │ │ │ -
188extern int (*tds_raw_cond_destroy)(tds_condition *cond);
│ │ │ │ -
189extern int (*tds_raw_cond_signal)(tds_condition *cond);
│ │ │ │ -
190extern int (*tds_raw_cond_timedwait)(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
│ │ │ │ -
191static inline int tds_raw_cond_wait(tds_condition *cond, tds_raw_mutex *mtx)
│ │ │ │ -
192{
│ │ │ │ -
193 return tds_raw_cond_timedwait(cond, mtx, -1);
│ │ │ │ -
194}
│ │ │ │ -
195
│ │ │ │ -
196typedef HANDLE tds_thread;
│ │ │ │ -
197typedef DWORD tds_thread_id;
│ │ │ │ -
198typedef DWORD (WINAPI *tds_thread_proc)(void *arg);
│ │ │ │ -
199#define TDS_THREAD_PROC_DECLARE(name, arg) \
│ │ │ │ -
200 DWORD WINAPI name(void *arg)
│ │ │ │ -
201#define TDS_THREAD_RESULT(n) ((DWORD)(int)(n))
│ │ │ │ -
202
│ │ │ │ -
203static inline int tds_thread_create(tds_thread *ret, tds_thread_proc proc, void *arg)
│ │ │ │ -
204{
│ │ │ │ -
205 *ret = CreateThread(NULL, 0, proc, arg, 0, NULL);
│ │ │ │ -
206 return *ret != NULL ? 0 : 11 /* EAGAIN */;
│ │ │ │ -
207}
│ │ │ │ -
208
│ │ │ │ -
209static inline int tds_thread_create_detached(tds_thread_proc proc, void *arg)
│ │ │ │ -
210{
│ │ │ │ -
211 HANDLE h = CreateThread(NULL, 0, proc, arg, 0, NULL);
│ │ │ │ -
212 if (h)
│ │ │ │ -
213 return 0;
│ │ │ │ -
214 CloseHandle(h);
│ │ │ │ -
215 return 11 /* EAGAIN */;
│ │ │ │ -
216}
│ │ │ │ -
217
│ │ │ │ -
218static inline int tds_thread_join(tds_thread th, void **ret)
│ │ │ │ -
219{
│ │ │ │ -
220 if (WaitForSingleObject(th, INFINITE) == WAIT_OBJECT_0) {
│ │ │ │ -
221 if (ret) {
│ │ │ │ -
222 DWORD r;
│ │ │ │ -
223 if (!GetExitCodeThread(th, &r))
│ │ │ │ -
224 r = 0xffffffffu;
│ │ │ │ -
225 *ret = (void*) (((char*)0) + r);
│ │ │ │ -
226 }
│ │ │ │ -
227
│ │ │ │ -
228 CloseHandle(th);
│ │ │ │ -
229 return 0;
│ │ │ │ -
230 }
│ │ │ │ -
231 CloseHandle(th);
│ │ │ │ -
232 return 22 /* EINVAL */;
│ │ │ │ -
233}
│ │ │ │ -
234
│ │ │ │ -
235static inline tds_thread_id tds_thread_get_current_id(void)
│ │ │ │ -
236{
│ │ │ │ -
237 return GetCurrentThreadId();
│ │ │ │ -
238}
│ │ │ │ -
239
│ │ │ │ -
240static inline int tds_thread_is_current(tds_thread_id th)
│ │ │ │ -
241{
│ │ │ │ -
242 return th == GetCurrentThreadId();
│ │ │ │ -
243}
│ │ │ │ -
244
│ │ │ │ -
245#else
│ │ │ │ -
246
│ │ │ │ -
247#include <tds_sysdep_public.h>
│ │ │ │ -
248
│ │ │ │ -
249/* define noops as "successful" */
│ │ │ │ -
│ │ │ │ -
250typedef struct {
│ │ │ │ -
251 char dummy[0]; /* compiler compatibility */
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
253
│ │ │ │ -
254#define TDS_RAW_MUTEX_INITIALIZER {}
│ │ │ │ -
255
│ │ │ │ -
256static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
│ │ │ │ -
257{
│ │ │ │ -
258}
│ │ │ │ -
259
│ │ │ │ -
260static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
│ │ │ │ -
261{
│ │ │ │ -
262 return 0;
│ │ │ │ -
263}
│ │ │ │ -
264
│ │ │ │ -
265static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
│ │ │ │ -
266{
│ │ │ │ -
267}
│ │ │ │ -
268
│ │ │ │ -
269static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
│ │ │ │ -
270{
│ │ │ │ -
271 return 0;
│ │ │ │ -
272}
│ │ │ │ -
273
│ │ │ │ -
274static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
│ │ │ │ -
275{
│ │ │ │ -
276}
│ │ │ │ -
277
│ │ │ │ -
│ │ │ │ -
278typedef struct {
│ │ │ │ -
279 char dummy[0]; /* compiler compatibility */
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
281
│ │ │ │ -
282static inline int tds_raw_cond_init(tds_condition *cond)
│ │ │ │ -
283{
│ │ │ │ -
284 return 0;
│ │ │ │ -
285}
│ │ │ │ -
286static inline int tds_raw_cond_destroy(tds_condition *cond)
│ │ │ │ -
287{
│ │ │ │ -
288 return 0;
│ │ │ │ -
289}
│ │ │ │ -
290#define tds_raw_cond_signal(cond) \
│ │ │ │ -
291 FreeTDS_Condition_not_compiled
│ │ │ │ -
292
│ │ │ │ -
293#define tds_raw_cond_wait(cond, mtx) \
│ │ │ │ -
294 FreeTDS_Condition_not_compiled
│ │ │ │ -
295
│ │ │ │ -
296#define tds_raw_cond_timedwait(cond, mtx, timeout_sec) \
│ │ │ │ -
297 FreeTDS_Condition_not_compiled
│ │ │ │ -
298
│ │ │ │ -
│ │ │ │ -
299typedef struct {
│ │ │ │ -
300 char dummy[0]; /* compiler compatibility */
│ │ │ │ -
301} tds_thread;
│ │ │ │ -
│ │ │ │ -
302typedef int tds_thread_id;
│ │ │ │ -
303
│ │ │ │ -
304typedef void *(*tds_thread_proc)(void *arg);
│ │ │ │ -
305#define TDS_THREAD_PROC_DECLARE(name, arg) \
│ │ │ │ -
306 void *name(void *arg)
│ │ │ │ -
307#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n))
│ │ │ │ -
308
│ │ │ │ -
309#define tds_thread_create(ret, proc, arg) \
│ │ │ │ -
310 FreeTDS_Thread_not_compiled
│ │ │ │ -
311
│ │ │ │ -
312#define tds_thread_create_detached(proc, arg) \
│ │ │ │ -
313 FreeTDS_Thread_not_compiled
│ │ │ │ -
314
│ │ │ │ -
315#define tds_thread_join(th, ret) \
│ │ │ │ -
316 FreeTDS_Thread_not_compiled
│ │ │ │ -
317
│ │ │ │ -
318static inline tds_thread_id tds_thread_get_current_id(void)
│ │ │ │ -
319{
│ │ │ │ -
320 return 0;
│ │ │ │ -
321}
│ │ │ │ -
322
│ │ │ │ -
323static inline int tds_thread_is_current(tds_thread_id th)
│ │ │ │ -
324{
│ │ │ │ -
325 return 1;
│ │ │ │ -
326}
│ │ │ │ -
327
│ │ │ │ -
328#endif
│ │ │ │ -
329
│ │ │ │ -
330# define tds_cond_init tds_raw_cond_init
│ │ │ │ -
331# define tds_cond_destroy tds_raw_cond_destroy
│ │ │ │ -
332# define tds_cond_signal tds_raw_cond_signal
│ │ │ │ -
333# if !ENABLE_EXTRA_CHECKS
│ │ │ │ -
334# define TDS_MUTEX_INITIALIZER TDS_RAW_MUTEX_INITIALIZER
│ │ │ │ -
335# define tds_mutex tds_raw_mutex
│ │ │ │ -
336# define tds_mutex_lock tds_raw_mutex_lock
│ │ │ │ -
337# define tds_mutex_trylock tds_raw_mutex_trylock
│ │ │ │ -
338# define tds_mutex_unlock tds_raw_mutex_unlock
│ │ │ │ -
339# define tds_mutex_check_owned(mtx) do {} while(0)
│ │ │ │ -
340# define tds_mutex_init tds_raw_mutex_init
│ │ │ │ -
341# define tds_mutex_free tds_raw_mutex_free
│ │ │ │ -
342# define tds_cond_wait tds_raw_cond_wait
│ │ │ │ -
343# define tds_cond_timedwait tds_raw_cond_timedwait
│ │ │ │ -
344# else
│ │ │ │ -
345# include <assert.h>
│ │ │ │ -
346
│ │ │ │ -
347typedef struct tds_mutex
│ │ │ │ -
348{
│ │ │ │ -
349 tds_raw_mutex mtx;
│ │ │ │ -
350 volatile int locked;
│ │ │ │ -
351 volatile tds_thread_id locked_by;
│ │ │ │ -
352} tds_mutex;
│ │ │ │ -
353
│ │ │ │ -
354# define TDS_MUTEX_INITIALIZER { TDS_RAW_MUTEX_INITIALIZER, 0 }
│ │ │ │ -
355
│ │ │ │ -
356static inline void tds_mutex_lock(tds_mutex *mtx)
│ │ │ │ -
357{
│ │ │ │ -
358 assert(mtx);
│ │ │ │ -
359 tds_raw_mutex_lock(&mtx->mtx);
│ │ │ │ -
360 assert(!mtx->locked);
│ │ │ │ -
361 mtx->locked = 1;
│ │ │ │ -
362 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ -
363}
│ │ │ │ -
364
│ │ │ │ -
365static inline int tds_mutex_trylock(tds_mutex *mtx)
│ │ │ │ -
366{
│ │ │ │ -
367 int ret;
│ │ │ │ -
368 assert(mtx);
│ │ │ │ -
369 ret = tds_raw_mutex_trylock(&mtx->mtx);
│ │ │ │ -
370 if (!ret) {
│ │ │ │ -
371 assert(!mtx->locked);
│ │ │ │ -
372 mtx->locked = 1;
│ │ │ │ -
373 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ -
374 }
│ │ │ │ -
375 return ret;
│ │ │ │ -
376}
│ │ │ │ -
377
│ │ │ │ -
378static inline void tds_mutex_unlock(tds_mutex *mtx)
│ │ │ │ -
379{
│ │ │ │ -
380 assert(mtx && mtx->locked);
│ │ │ │ -
381 mtx->locked = 0;
│ │ │ │ -
382 tds_raw_mutex_unlock(&mtx->mtx);
│ │ │ │ -
383}
│ │ │ │ -
384
│ │ │ │ -
385static inline void tds_mutex_check_owned(tds_mutex *mtx)
│ │ │ │ -
386{
│ │ │ │ -
387 int ret;
│ │ │ │ -
388 assert(mtx);
│ │ │ │ -
389 ret = tds_raw_mutex_trylock(&mtx->mtx);
│ │ │ │ -
390 assert(ret);
│ │ │ │ -
391 assert(mtx->locked);
│ │ │ │ -
392 assert(tds_thread_is_current(mtx->locked_by));
│ │ │ │ -
393}
│ │ │ │ -
394
│ │ │ │ -
395static inline int tds_mutex_init(tds_mutex *mtx)
│ │ │ │ -
396{
│ │ │ │ -
397 mtx->locked = 0;
│ │ │ │ -
398 return tds_raw_mutex_init(&mtx->mtx);
│ │ │ │ -
399}
│ │ │ │ -
400
│ │ │ │ -
401static inline void tds_mutex_free(tds_mutex *mtx)
│ │ │ │ -
402{
│ │ │ │ -
403 assert(mtx && !mtx->locked);
│ │ │ │ -
404 tds_raw_mutex_free(&mtx->mtx);
│ │ │ │ -
405}
│ │ │ │ -
406
│ │ │ │ -
407static inline int tds_cond_wait(tds_condition *cond, tds_mutex *mtx)
│ │ │ │ -
408{
│ │ │ │ -
409 int ret;
│ │ │ │ -
410 assert(mtx && mtx->locked);
│ │ │ │ -
411 mtx->locked = 0;
│ │ │ │ -
412 ret = tds_raw_cond_wait(cond, &mtx->mtx);
│ │ │ │ -
413 mtx->locked = 1;
│ │ │ │ -
414 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ -
415 return ret;
│ │ │ │ -
416}
│ │ │ │ -
417
│ │ │ │ -
418static inline int tds_cond_timedwait(tds_condition *cond, tds_mutex *mtx, int timeout_sec)
│ │ │ │ -
419{
│ │ │ │ -
420 int ret;
│ │ │ │ -
421 assert(mtx && mtx->locked);
│ │ │ │ -
422 mtx->locked = 0;
│ │ │ │ -
423 ret = tds_raw_cond_timedwait(cond, &mtx->mtx, timeout_sec);
│ │ │ │ -
424 mtx->locked = 1;
│ │ │ │ -
425 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ -
426 return ret;
│ │ │ │ -
427}
│ │ │ │ -
428
│ │ │ │ -
429# endif
│ │ │ │ -
430
│ │ │ │ -
431#endif
│ │ │ │ -
Definition ptw32_MCS_lock.c:98
│ │ │ │ -
Definition thread.h:250
│ │ │ │ -
Definition thread.h:278
│ │ │ │ -
Definition thread.h:299
│ │ │ │ +
1/*
│ │ │ │ +
2 * This file produced from ./encodings.pl on Sat Jan 21 09:01:33 2023
│ │ │ │ +
3 */
│ │ │ │ +
4#ifdef TDS_ICONV_ENCODING_TABLES
│ │ │ │ +
5
│ │ │ │ +
6static const TDS_ENCODING canonic_charsets[] = {
│ │ │ │ +
7 { "ISO-8859-1", 1, 1, 0}, /* 0 */
│ │ │ │ +
8 { "UTF-8", 1, 4, 1}, /* 1 */
│ │ │ │ +
9 { "UCS-2LE", 2, 2, 2}, /* 2 */
│ │ │ │ +
10 { "UCS-2BE", 2, 2, 3}, /* 3 */
│ │ │ │ +
11 { "ARMSCII-8", 1, 1, 4}, /* 4 */
│ │ │ │ +
12 { "BIG-5", 1, 2, 5}, /* 5 */
│ │ │ │ +
13 { "BIG5-HKSCS", 1, 2, 6}, /* 6 */
│ │ │ │ +
14 { "C99", 1, 1, 7}, /* 7 */
│ │ │ │ +
15 { "CHINESE", 1, 1, 8}, /* 8 */
│ │ │ │ +
16 { "CN", 1, 1, 9}, /* 9 */
│ │ │ │ +
17 { "CN-GB", 1, 2, 10}, /* 10 */
│ │ │ │ +
18 { "CN-GB-ISOIR165", 1, 1, 11}, /* 11 */
│ │ │ │ +
19 { "CP1133", 1, 1, 12}, /* 12 */
│ │ │ │ +
20 { "CP1250", 1, 1, 13}, /* 13 */
│ │ │ │ +
21 { "CP1251", 1, 1, 14}, /* 14 */
│ │ │ │ +
22 { "CP1252", 1, 1, 15}, /* 15 */
│ │ │ │ +
23 { "CP1253", 1, 1, 16}, /* 16 */
│ │ │ │ +
24 { "CP1254", 1, 1, 17}, /* 17 */
│ │ │ │ +
25 { "CP1255", 1, 1, 18}, /* 18 */
│ │ │ │ +
26 { "CP1256", 1, 1, 19}, /* 19 */
│ │ │ │ +
27 { "CP1257", 1, 1, 20}, /* 20 */
│ │ │ │ +
28 { "CP1258", 1, 1, 21}, /* 21 */
│ │ │ │ +
29 { "CP1361", 1, 2, 22}, /* 22 */
│ │ │ │ +
30 { "CP437", 1, 1, 23}, /* 23 */
│ │ │ │ +
31 { "CP850", 1, 1, 24}, /* 24 */
│ │ │ │ +
32 { "CP862", 1, 1, 25}, /* 25 */
│ │ │ │ +
33 { "CP866", 1, 1, 26}, /* 26 */
│ │ │ │ +
34 { "CP874", 1, 1, 27}, /* 27 */
│ │ │ │ +
35 { "CP932", 1, 2, 28}, /* 28 */
│ │ │ │ +
36 { "CP936", 1, 2, 29}, /* 29 */
│ │ │ │ +
37 { "CP949", 1, 2, 30}, /* 30 */
│ │ │ │ +
38 { "CP950", 1, 2, 31}, /* 31 */
│ │ │ │ +
39 { "EUC-JP", 1, 3, 32}, /* 32 */
│ │ │ │ +
40 { "EUC-KR", 1, 2, 33}, /* 33 */
│ │ │ │ +
41 { "EUC-TW", 1, 4, 34}, /* 34 */
│ │ │ │ +
42 { "GB18030", 1, 4, 35}, /* 35 */
│ │ │ │ +
43 { "GEORGIAN-ACADEMY", 1, 1, 36}, /* 36 */
│ │ │ │ +
44 { "GEORGIAN-PS", 1, 1, 37}, /* 37 */
│ │ │ │ +
45 { "HZ", 1, 1, 38}, /* 38 */
│ │ │ │ +
46 { "ISO-2022-CN", 1, 4, 39}, /* 39 */
│ │ │ │ +
47 { "ISO-2022-CN-EXT", 1, 4, 40}, /* 40 */
│ │ │ │ +
48 { "ISO-2022-JP", 1, 1, 41}, /* 41 */
│ │ │ │ +
49 { "ISO-2022-JP-1", 1, 1, 42}, /* 42 */
│ │ │ │ +
50 { "ISO-2022-JP-2", 1, 1, 43}, /* 43 */
│ │ │ │ +
51 { "ISO-2022-KR", 1, 2, 44}, /* 44 */
│ │ │ │ +
52 { "ISO-8859-10", 1, 1, 45}, /* 45 */
│ │ │ │ +
53 { "ISO-8859-13", 1, 1, 46}, /* 46 */
│ │ │ │ +
54 { "ISO-8859-14", 1, 1, 47}, /* 47 */
│ │ │ │ +
55 { "ISO-8859-15", 1, 1, 48}, /* 48 */
│ │ │ │ +
56 { "ISO-8859-16", 1, 1, 49}, /* 49 */
│ │ │ │ +
57 { "ISO-8859-2", 1, 1, 50}, /* 50 */
│ │ │ │ +
58 { "ISO-8859-3", 1, 1, 51}, /* 51 */
│ │ │ │ +
59 { "ISO-8859-4", 1, 1, 52}, /* 52 */
│ │ │ │ +
60 { "ISO-8859-5", 1, 1, 53}, /* 53 */
│ │ │ │ +
61 { "ISO-8859-6", 1, 1, 54}, /* 54 */
│ │ │ │ +
62 { "ISO-8859-7", 1, 1, 55}, /* 55 */
│ │ │ │ +
63 { "ISO-8859-8", 1, 1, 56}, /* 56 */
│ │ │ │ +
64 { "ISO-8859-9", 1, 1, 57}, /* 57 */
│ │ │ │ +
65 { "ISO-IR-14", 1, 1, 58}, /* 58 */
│ │ │ │ +
66 { "ISO-IR-149", 1, 1, 59}, /* 59 */
│ │ │ │ +
67 { "ISO-IR-159", 1, 1, 60}, /* 60 */
│ │ │ │ +
68 { "ISO-IR-166", 1, 1, 61}, /* 61 */
│ │ │ │ +
69 { "ISO-IR-87", 1, 1, 62}, /* 62 */
│ │ │ │ +
70 { "JAVA", 1, 1, 63}, /* 63 */
│ │ │ │ +
71 { "JISX0201-1976", 1, 1, 64}, /* 64 */
│ │ │ │ +
72 { "KOI8-R", 1, 1, 65}, /* 65 */
│ │ │ │ +
73 { "KOI8-RU", 1, 1, 66}, /* 66 */
│ │ │ │ +
74 { "KOI8-T", 1, 1, 67}, /* 67 */
│ │ │ │ +
75 { "KOI8-U", 1, 1, 68}, /* 68 */
│ │ │ │ +
76 { "MAC", 1, 1, 69}, /* 69 */
│ │ │ │ +
77 { "MACARABIC", 1, 1, 70}, /* 70 */
│ │ │ │ +
78 { "MACCENTRALEUROPE", 1, 1, 71}, /* 71 */
│ │ │ │ +
79 { "MACCROATIAN", 1, 1, 72}, /* 72 */
│ │ │ │ +
80 { "MACCYRILLIC", 1, 1, 73}, /* 73 */
│ │ │ │ +
81 { "MACGREEK", 1, 1, 74}, /* 74 */
│ │ │ │ +
82 { "MACHEBREW", 1, 1, 75}, /* 75 */
│ │ │ │ +
83 { "MACICELAND", 1, 1, 76}, /* 76 */
│ │ │ │ +
84 { "MACROMANIA", 1, 1, 77}, /* 77 */
│ │ │ │ +
85 { "MACTHAI", 1, 1, 78}, /* 78 */
│ │ │ │ +
86 { "MACTURKISH", 1, 1, 79}, /* 79 */
│ │ │ │ +
87 { "MACUKRAINE", 1, 1, 80}, /* 80 */
│ │ │ │ +
88 { "MULELAO-1", 1, 1, 81}, /* 81 */
│ │ │ │ +
89 { "NEXTSTEP", 1, 1, 82}, /* 82 */
│ │ │ │ +
90 { "ROMAN8", 1, 1, 83}, /* 83 */
│ │ │ │ +
91 { "SJIS", 1, 2, 84}, /* 84 */
│ │ │ │ +
92 { "TCVN", 1, 1, 85}, /* 85 */
│ │ │ │ +
93 { "UCS-4BE", 4, 4, 86}, /* 86 */
│ │ │ │ +
94 { "UCS-4LE", 4, 4, 87}, /* 87 */
│ │ │ │ +
95 { "US-ASCII", 1, 1, 88}, /* 88 */
│ │ │ │ +
96 { "UTF-16BE", 2, 4, 89}, /* 89 */
│ │ │ │ +
97 { "UTF-16LE", 2, 4, 90}, /* 90 */
│ │ │ │ +
98 { "UTF-32BE", 4, 4, 91}, /* 91 */
│ │ │ │ +
99 { "UTF-32LE", 4, 4, 92}, /* 92 */
│ │ │ │ +
100 { "UTF-7", 1, 4, 93}, /* 93 */
│ │ │ │ +
101 { "VISCII", 1, 1, 94}, /* 94 */
│ │ │ │ +
102};
│ │ │ │ +
103
│ │ │ │ +
104static const CHARACTER_SET_ALIAS iconv_aliases[] = {
│ │ │ │ +
105 { "646", 88 },
│ │ │ │ +
106 { "850", 24 },
│ │ │ │ +
107 { "862", 25 },
│ │ │ │ +
108 { "866", 26 },
│ │ │ │ +
109 { "ANSI_X3.4-1968", 88 },
│ │ │ │ +
110 { "ANSI_X3.4-1986", 88 },
│ │ │ │ +
111 { "ARABIC", 54 },
│ │ │ │ +
112 { "ARMSCII-8", 4 },
│ │ │ │ +
113 { "ASCII", 88 },
│ │ │ │ +
114 { "ASMO-708", 54 },
│ │ │ │ +
115 { "BIG-5", 5 },
│ │ │ │ +
116 { "BIG-FIVE", 5 },
│ │ │ │ +
117 { "BIG5", 5 },
│ │ │ │ +
118 { "BIG5-HKSCS", 6 },
│ │ │ │ +
119 { "BIG5HKSCS", 6 },
│ │ │ │ +
120 { "BIGFIVE", 5 },
│ │ │ │ +
121 { "C99", 7 },
│ │ │ │ +
122 { "CHINESE", 8 },
│ │ │ │ +
123 { "CN", 9 },
│ │ │ │ +
124 { "CN-BIG5", 5 },
│ │ │ │ +
125 { "CN-GB", 10 },
│ │ │ │ +
126 { "CN-GB-ISOIR165", 11 },
│ │ │ │ +
127 { "CP1133", 12 },
│ │ │ │ +
128 { "CP1250", 13 },
│ │ │ │ +
129 { "CP1251", 14 },
│ │ │ │ +
130 { "CP1252", 15 },
│ │ │ │ +
131 { "CP1253", 16 },
│ │ │ │ +
132 { "CP1254", 17 },
│ │ │ │ +
133 { "CP1255", 18 },
│ │ │ │ +
134 { "CP1256", 19 },
│ │ │ │ +
135 { "CP1257", 20 },
│ │ │ │ +
136 { "CP1258", 21 },
│ │ │ │ +
137 { "CP1361", 22 },
│ │ │ │ +
138 { "CP367", 88 },
│ │ │ │ +
139 { "CP437", 23 },
│ │ │ │ +
140 { "CP819", 0 },
│ │ │ │ +
141 { "CP850", 24 },
│ │ │ │ +
142 { "CP862", 25 },
│ │ │ │ +
143 { "CP866", 26 },
│ │ │ │ +
144 { "CP874", 27 },
│ │ │ │ +
145 { "CP932", 28 },
│ │ │ │ +
146 { "CP936", 29 },
│ │ │ │ +
147 { "CP949", 30 },
│ │ │ │ +
148 { "CP950", 31 },
│ │ │ │ +
149 { "CSASCII", 88 },
│ │ │ │ +
150 { "CSBIG5", 5 },
│ │ │ │ +
151 { "CSEUCKR", 33 },
│ │ │ │ +
152 { "CSEUCPKDFMTJAPANESE", 32 },
│ │ │ │ +
153 { "CSEUCTW", 34 },
│ │ │ │ +
154 { "CSGB2312", 10 },
│ │ │ │ +
155 { "CSHALFWIDTHKATAKANA", 64 },
│ │ │ │ +
156 { "CSHPROMAN8", 83 },
│ │ │ │ +
157 { "CSIBM866", 26 },
│ │ │ │ +
158 { "CSISO14JISC6220RO", 58 },
│ │ │ │ +
159 { "CSISO159JISX02121990", 60 },
│ │ │ │ +
160 { "CSISO2022CN", 39 },
│ │ │ │ +
161 { "CSISO2022JP", 41 },
│ │ │ │ +
162 { "CSISO2022JP2", 43 },
│ │ │ │ +
163 { "CSISO2022KR", 44 },
│ │ │ │ +
164 { "CSISO57GB1988", 9 },
│ │ │ │ +
165 { "CSISO58GB231280", 8 },
│ │ │ │ +
166 { "CSISO87JISX0208", 62 },
│ │ │ │ +
167 { "CSISOLATIN1", 0 },
│ │ │ │ +
168 { "CSISOLATIN2", 50 },
│ │ │ │ +
169 { "CSISOLATIN3", 51 },
│ │ │ │ +
170 { "CSISOLATIN4", 52 },
│ │ │ │ +
171 { "CSISOLATIN5", 57 },
│ │ │ │ +
172 { "CSISOLATIN6", 45 },
│ │ │ │ +
173 { "CSISOLATINARABIC", 54 },
│ │ │ │ +
174 { "CSISOLATINCYRILLIC", 53 },
│ │ │ │ +
175 { "CSISOLATINGREEK", 55 },
│ │ │ │ +
176 { "CSISOLATINHEBREW", 56 },
│ │ │ │ +
177 { "CSKOI8R", 65 },
│ │ │ │ +
178 { "CSKSC56011987", 59 },
│ │ │ │ +
179 { "CSMACINTOSH", 69 },
│ │ │ │ +
180 { "CSPC850MULTILINGUAL", 24 },
│ │ │ │ +
181 { "CSPC862LATINHEBREW", 25 },
│ │ │ │ +
182 { "CSSHIFTJIS", 84 },
│ │ │ │ +
183 { "CSUNICODE11", 3 },
│ │ │ │ +
184 { "CSUNICODE11UTF7", 93 },
│ │ │ │ +
185 { "CSVISCII", 94 },
│ │ │ │ +
186 { "CYRILLIC", 53 },
│ │ │ │ +
187 { "ECMA-114", 54 },
│ │ │ │ +
188 { "ECMA-118", 55 },
│ │ │ │ +
189 { "ELOT_928", 55 },
│ │ │ │ +
190 { "EUC-CN", 10 },
│ │ │ │ +
191 { "EUC-JP", 32 },
│ │ │ │ +
192 { "EUC-KR", 33 },
│ │ │ │ +
193 { "EUC-TW", 34 },
│ │ │ │ +
194 { "EUCCN", 10 },
│ │ │ │ +
195 { "EUCJP", 32 },
│ │ │ │ +
196 { "EUCKR", 33 },
│ │ │ │ +
197 { "EUCTW", 34 },
│ │ │ │ +
198 {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", 32 },
│ │ │ │ +
199 { "GB18030", 35 },
│ │ │ │ +
200 { "GB2312", 10 },
│ │ │ │ +
201 { "GBK", 29 },
│ │ │ │ +
202 { "GB_1988-80", 9 },
│ │ │ │ +
203 { "GB_2312-80", 8 },
│ │ │ │ +
204 { "GEORGIAN-ACADEMY", 36 },
│ │ │ │ +
205 { "GEORGIAN-PS", 37 },
│ │ │ │ +
206 { "GREEK", 55 },
│ │ │ │ +
207 { "GREEK8", 55 },
│ │ │ │ +
208 { "HEBREW", 56 },
│ │ │ │ +
209 { "HP-ROMAN8", 83 },
│ │ │ │ +
210 { "HZ", 38 },
│ │ │ │ +
211 { "HZ-GB-2312", 38 },
│ │ │ │ +
212 { "IBM-CP1133", 12 },
│ │ │ │ +
213 { "IBM367", 88 },
│ │ │ │ +
214 { "IBM437", 23 },
│ │ │ │ +
215 { "IBM819", 0 },
│ │ │ │ +
216 { "IBM850", 24 },
│ │ │ │ +
217 { "IBM862", 25 },
│ │ │ │ +
218 { "IBM866", 26 },
│ │ │ │ +
219 { "ISO-2022-CN", 39 },
│ │ │ │ +
220 { "ISO-2022-CN-EXT", 40 },
│ │ │ │ +
221 { "ISO-2022-JP", 41 },
│ │ │ │ +
222 { "ISO-2022-JP-1", 42 },
│ │ │ │ +
223 { "ISO-2022-JP-2", 43 },
│ │ │ │ +
224 { "ISO-2022-KR", 44 },
│ │ │ │ +
225 { "ISO-8859-1", 0 },
│ │ │ │ +
226 { "ISO-8859-10", 45 },
│ │ │ │ +
227 { "ISO-8859-13", 46 },
│ │ │ │ +
228 { "ISO-8859-14", 47 },
│ │ │ │ +
229 { "ISO-8859-15", 48 },
│ │ │ │ +
230 { "ISO-8859-16", 49 },
│ │ │ │ +
231 { "ISO-8859-2", 50 },
│ │ │ │ +
232 { "ISO-8859-3", 51 },
│ │ │ │ +
233 { "ISO-8859-4", 52 },
│ │ │ │ +
234 { "ISO-8859-5", 53 },
│ │ │ │ +
235 { "ISO-8859-6", 54 },
│ │ │ │ +
236 { "ISO-8859-7", 55 },
│ │ │ │ +
237 { "ISO-8859-8", 56 },
│ │ │ │ +
238 { "ISO-8859-9", 57 },
│ │ │ │ +
239 { "ISO-CELTIC", 47 },
│ │ │ │ +
240 { "ISO-IR-100", 0 },
│ │ │ │ +
241 { "ISO-IR-101", 50 },
│ │ │ │ +
242 { "ISO-IR-109", 51 },
│ │ │ │ +
243 { "ISO-IR-110", 52 },
│ │ │ │ +
244 { "ISO-IR-126", 55 },
│ │ │ │ +
245 { "ISO-IR-127", 54 },
│ │ │ │ +
246 { "ISO-IR-138", 56 },
│ │ │ │ +
247 { "ISO-IR-14", 58 },
│ │ │ │ +
248 { "ISO-IR-144", 53 },
│ │ │ │ +
249 { "ISO-IR-148", 57 },
│ │ │ │ +
250 { "ISO-IR-149", 59 },
│ │ │ │ +
251 { "ISO-IR-157", 45 },
│ │ │ │ +
252 { "ISO-IR-159", 60 },
│ │ │ │ +
253 { "ISO-IR-165", 11 },
│ │ │ │ +
254 { "ISO-IR-166", 61 },
│ │ │ │ +
255 { "ISO-IR-179", 46 },
│ │ │ │ +
256 { "ISO-IR-199", 47 },
│ │ │ │ +
257 { "ISO-IR-203", 48 },
│ │ │ │ +
258 { "ISO-IR-226", 49 },
│ │ │ │ +
259 { "ISO-IR-57", 9 },
│ │ │ │ +
260 { "ISO-IR-58", 8 },
│ │ │ │ +
261 { "ISO-IR-6", 88 },
│ │ │ │ +
262 { "ISO-IR-87", 62 },
│ │ │ │ +
263 { "ISO646-CN", 9 },
│ │ │ │ +
264 { "ISO646-JP", 58 },
│ │ │ │ +
265 { "ISO646-US", 88 },
│ │ │ │ +
266 { "ISO8859-1", 0 },
│ │ │ │ +
267 { "ISO8859-10", 45 },
│ │ │ │ +
268 { "ISO8859-15", 48 },
│ │ │ │ +
269 { "ISO8859-2", 50 },
│ │ │ │ +
270 { "ISO8859-4", 52 },
│ │ │ │ +
271 { "ISO8859-5", 53 },
│ │ │ │ +
272 { "ISO8859-6", 54 },
│ │ │ │ +
273 { "ISO8859-7", 55 },
│ │ │ │ +
274 { "ISO8859-8", 56 },
│ │ │ │ +
275 { "ISO8859-9", 57 },
│ │ │ │ +
276 { "ISO_646.IRV:1991", 88 },
│ │ │ │ +
277 { "ISO_8859-1", 0 },
│ │ │ │ +
278 { "ISO_8859-10", 45 },
│ │ │ │ +
279 { "ISO_8859-10:1992", 45 },
│ │ │ │ +
280 { "ISO_8859-13", 46 },
│ │ │ │ +
281 { "ISO_8859-14", 47 },
│ │ │ │ +
282 { "ISO_8859-14:1998", 47 },
│ │ │ │ +
283 { "ISO_8859-15", 48 },
│ │ │ │ +
284 { "ISO_8859-15:1998", 48 },
│ │ │ │ +
285 { "ISO_8859-16", 49 },
│ │ │ │ +
286 { "ISO_8859-16:2000", 49 },
│ │ │ │ +
287 { "ISO_8859-1:1987", 0 },
│ │ │ │ +
288 { "ISO_8859-2", 50 },
│ │ │ │ +
289 { "ISO_8859-2:1987", 50 },
│ │ │ │ +
290 { "ISO_8859-3", 51 },
│ │ │ │ +
291 { "ISO_8859-3:1988", 51 },
│ │ │ │ +
292 { "ISO_8859-4", 52 },
│ │ │ │ +
293 { "ISO_8859-4:1988", 52 },
│ │ │ │ +
294 { "ISO_8859-5", 53 },
│ │ │ │ +
295 { "ISO_8859-5:1988", 53 },
│ │ │ │ +
296 { "ISO_8859-6", 54 },
│ │ │ │ +
297 { "ISO_8859-6:1987", 54 },
│ │ │ │ +
298 { "ISO_8859-7", 55 },
│ │ │ │ +
299 { "ISO_8859-7:1987", 55 },
│ │ │ │ +
300 { "ISO_8859-8", 56 },
│ │ │ │ +
301 { "ISO_8859-8:1988", 56 },
│ │ │ │ +
302 { "ISO_8859-9", 57 },
│ │ │ │ +
303 { "ISO_8859-9:1989", 57 },
│ │ │ │ +
304 { "JAVA", 63 },
│ │ │ │ +
305 { "JIS0208", 62 },
│ │ │ │ +
306 { "JISX0201-1976", 64 },
│ │ │ │ +
307 { "JIS_C6220-1969-RO", 58 },
│ │ │ │ +
308 { "JIS_C6226-1983", 62 },
│ │ │ │ +
309 { "JIS_X0201", 64 },
│ │ │ │ +
310 { "JIS_X0208", 62 },
│ │ │ │ +
311 { "JIS_X0208-1983", 62 },
│ │ │ │ +
312 { "JIS_X0208-1990", 62 },
│ │ │ │ +
313 { "JIS_X0212", 60 },
│ │ │ │ +
314 { "JIS_X0212-1990", 60 },
│ │ │ │ +
315 { "JIS_X0212.1990-0", 60 },
│ │ │ │ +
316 { "JOHAB", 22 },
│ │ │ │ +
317 { "JP", 58 },
│ │ │ │ +
318 { "KOI8-R", 65 },
│ │ │ │ +
319 { "KOI8-RU", 66 },
│ │ │ │ +
320 { "KOI8-T", 67 },
│ │ │ │ +
321 { "KOI8-U", 68 },
│ │ │ │ +
322 { "KOREAN", 59 },
│ │ │ │ +
323 { "KSC_5601", 59 },
│ │ │ │ +
324 { "KS_C_5601-1987", 59 },
│ │ │ │ +
325 { "KS_C_5601-1989", 59 },
│ │ │ │ +
326 { "L1", 0 },
│ │ │ │ +
327 { "L2", 50 },
│ │ │ │ +
328 { "L3", 51 },
│ │ │ │ +
329 { "L4", 52 },
│ │ │ │ +
330 { "L5", 57 },
│ │ │ │ +
331 { "L6", 45 },
│ │ │ │ +
332 { "L7", 46 },
│ │ │ │ +
333 { "L8", 47 },
│ │ │ │ +
334 { "LATIN1", 0 },
│ │ │ │ +
335 { "LATIN2", 50 },
│ │ │ │ +
336 { "LATIN3", 51 },
│ │ │ │ +
337 { "LATIN4", 52 },
│ │ │ │ +
338 { "LATIN5", 57 },
│ │ │ │ +
339 { "LATIN6", 45 },
│ │ │ │ +
340 { "LATIN7", 46 },
│ │ │ │ +
341 { "LATIN8", 47 },
│ │ │ │ +
342 { "MAC", 69 },
│ │ │ │ +
343 { "MACARABIC", 70 },
│ │ │ │ +
344 { "MACCENTRALEUROPE", 71 },
│ │ │ │ +
345 { "MACCROATIAN", 72 },
│ │ │ │ +
346 { "MACCYRILLIC", 73 },
│ │ │ │ +
347 { "MACGREEK", 74 },
│ │ │ │ +
348 { "MACHEBREW", 75 },
│ │ │ │ +
349 { "MACICELAND", 76 },
│ │ │ │ +
350 { "MACINTOSH", 69 },
│ │ │ │ +
351 { "MACROMAN", 69 },
│ │ │ │ +
352 { "MACROMANIA", 77 },
│ │ │ │ +
353 { "MACTHAI", 78 },
│ │ │ │ +
354 { "MACTURKISH", 79 },
│ │ │ │ +
355 { "MACUKRAINE", 80 },
│ │ │ │ +
356 { "MS-ANSI", 15 },
│ │ │ │ +
357 { "MS-ARAB", 19 },
│ │ │ │ +
358 { "MS-CYRL", 14 },
│ │ │ │ +
359 { "MS-EE", 13 },
│ │ │ │ +
360 { "MS-GREEK", 16 },
│ │ │ │ +
361 { "MS-HEBR", 18 },
│ │ │ │ +
362 { "MS-TURK", 17 },
│ │ │ │ +
363 { "MS_KANJI", 84 },
│ │ │ │ +
364 { "MULELAO-1", 81 },
│ │ │ │ +
365 { "NEXTSTEP", 82 },
│ │ │ │ +
366 { "R8", 83 },
│ │ │ │ +
367 { "ROMAN8", 83 },
│ │ │ │ +
368 { "SHIFT-JIS", 84 },
│ │ │ │ +
369 { "SHIFT_JIS", 84 },
│ │ │ │ +
370 { "SJIS", 84 },
│ │ │ │ +
371 { "TCVN", 85 },
│ │ │ │ +
372 { "TCVN-5712", 85 },
│ │ │ │ +
373 { "TCVN5712-1", 85 },
│ │ │ │ +
374 { "TCVN5712-1:1993", 85 },
│ │ │ │ +
375 { "TIS-620", 61 },
│ │ │ │ +
376 { "TIS620", 61 },
│ │ │ │ +
377 { "TIS620-0", 61 },
│ │ │ │ +
378 { "TIS620.2529-1", 61 },
│ │ │ │ +
379 { "TIS620.2533-0", 61 },
│ │ │ │ +
380 { "TIS620.2533-1", 61 },
│ │ │ │ +
381 { "UCS-2BE", 3 },
│ │ │ │ +
382 { "UCS-2LE", 2 },
│ │ │ │ +
383 { "UCS-4BE", 86 },
│ │ │ │ +
384 { "UCS-4LE", 87 },
│ │ │ │ +
385 { "UHC", 30 },
│ │ │ │ +
386 { "UNICODE-1-1", 3 },
│ │ │ │ +
387 { "UNICODE-1-1-UTF-7", 93 },
│ │ │ │ +
388 { "UNICODEBIG", 3 },
│ │ │ │ +
389 { "UNICODELITTLE", 2 },
│ │ │ │ +
390 { "US", 88 },
│ │ │ │ +
391 { "US-ASCII", 88 },
│ │ │ │ +
392 { "UTF-16BE", 89 },
│ │ │ │ +
393 { "UTF-16LE", 90 },
│ │ │ │ +
394 { "UTF-32BE", 91 },
│ │ │ │ +
395 { "UTF-32LE", 92 },
│ │ │ │ +
396 { "UTF-7", 93 },
│ │ │ │ +
397 { "UTF-8", 1 },
│ │ │ │ +
398 { "UTF7", 93 },
│ │ │ │ +
399 { "UTF8", 1 },
│ │ │ │ +
400 { "VISCII", 94 },
│ │ │ │ +
401 { "VISCII1.1-1", 94 },
│ │ │ │ +
402 { "WINBALTRIM", 20 },
│ │ │ │ +
403 { "WINDOWS-1250", 13 },
│ │ │ │ +
404 { "WINDOWS-1251", 14 },
│ │ │ │ +
405 { "WINDOWS-1252", 15 },
│ │ │ │ +
406 { "WINDOWS-1253", 16 },
│ │ │ │ +
407 { "WINDOWS-1254", 17 },
│ │ │ │ +
408 { "WINDOWS-1255", 18 },
│ │ │ │ +
409 { "WINDOWS-1256", 19 },
│ │ │ │ +
410 { "WINDOWS-1257", 20 },
│ │ │ │ +
411 { "WINDOWS-1258", 21 },
│ │ │ │ +
412 { "WINDOWS-874", 27 },
│ │ │ │ +
413 { "X0201", 64 },
│ │ │ │ +
414 { "X0208", 62 },
│ │ │ │ +
415 { "X0212", 60 },
│ │ │ │ +
416 { "big5", 5 },
│ │ │ │ +
417 { "cp1250", 13 },
│ │ │ │ +
418 { "cp1251", 14 },
│ │ │ │ +
419 { "cp1252", 15 },
│ │ │ │ +
420 { "cp1253", 16 },
│ │ │ │ +
421 { "cp1254", 17 },
│ │ │ │ +
422 { "cp1255", 18 },
│ │ │ │ +
423 { "cp1256", 19 },
│ │ │ │ +
424 { "cp1257", 20 },
│ │ │ │ +
425 { "cp1258", 21 },
│ │ │ │ +
426 { "cp437", 23 },
│ │ │ │ +
427 { "cp850", 24 },
│ │ │ │ +
428 { "cp862", 25 },
│ │ │ │ +
429 { "cp866", 26 },
│ │ │ │ +
430 { "cp874", 27 },
│ │ │ │ +
431 { "eucJP", 32 },
│ │ │ │ +
432 { "eucKR", 33 },
│ │ │ │ +
433 { "eucTW", 34 },
│ │ │ │ +
434 { "hp15CN", 8 },
│ │ │ │ +
435 { "iso81", 0 },
│ │ │ │ +
436 { "iso815", 48 },
│ │ │ │ +
437 { "iso82", 50 },
│ │ │ │ +
438 { "iso83", 51 },
│ │ │ │ +
439 { "iso84", 52 },
│ │ │ │ +
440 { "iso85", 53 },
│ │ │ │ +
441 { "iso86", 54 },
│ │ │ │ +
442 { "iso87", 55 },
│ │ │ │ +
443 { "iso88", 56 },
│ │ │ │ +
444 { "iso88591", 0 },
│ │ │ │ +
445 { "iso885915", 48 },
│ │ │ │ +
446 { "iso88592", 50 },
│ │ │ │ +
447 { "iso88593", 51 },
│ │ │ │ +
448 { "iso88594", 52 },
│ │ │ │ +
449 { "iso88595", 53 },
│ │ │ │ +
450 { "iso88596", 54 },
│ │ │ │ +
451 { "iso88597", 55 },
│ │ │ │ +
452 { "iso88598", 56 },
│ │ │ │ +
453 { "iso88599", 57 },
│ │ │ │ +
454 { "iso89", 57 },
│ │ │ │ +
455 { "roma8", 83 },
│ │ │ │ +
456 { "roman8", 83 },
│ │ │ │ +
457 { "sjis", 84 },
│ │ │ │ +
458 { "thai8", 61 },
│ │ │ │ +
459 { "tis620", 61 },
│ │ │ │ +
460 { "utf8", 1 },
│ │ │ │ +
461 {NULL, 0}
│ │ │ │ +
462};
│ │ │ │ +
463
│ │ │ │ +
464#endif
│ │ │ │ +
465
│ │ │ │ +
466enum {
│ │ │ │ +
467 TDS_CHARSET_ISO_8859_1 = 0,
│ │ │ │ +
468 TDS_CHARSET_UTF_8 = 1,
│ │ │ │ +
469 TDS_CHARSET_UCS_2LE = 2,
│ │ │ │ +
470 TDS_CHARSET_UCS_2BE = 3,
│ │ │ │ +
471 TDS_CHARSET_ARMSCII_8 = 4,
│ │ │ │ +
472 TDS_CHARSET_BIG_5 = 5,
│ │ │ │ +
473 TDS_CHARSET_BIG5_HKSCS = 6,
│ │ │ │ +
474 TDS_CHARSET_C99 = 7,
│ │ │ │ +
475 TDS_CHARSET_CHINESE = 8,
│ │ │ │ +
476 TDS_CHARSET_CN = 9,
│ │ │ │ +
477 TDS_CHARSET_CN_GB = 10,
│ │ │ │ +
478 TDS_CHARSET_CN_GB_ISOIR165 = 11,
│ │ │ │ +
479 TDS_CHARSET_CP1133 = 12,
│ │ │ │ +
480 TDS_CHARSET_CP1250 = 13,
│ │ │ │ +
481 TDS_CHARSET_CP1251 = 14,
│ │ │ │ +
482 TDS_CHARSET_CP1252 = 15,
│ │ │ │ +
483 TDS_CHARSET_CP1253 = 16,
│ │ │ │ +
484 TDS_CHARSET_CP1254 = 17,
│ │ │ │ +
485 TDS_CHARSET_CP1255 = 18,
│ │ │ │ +
486 TDS_CHARSET_CP1256 = 19,
│ │ │ │ +
487 TDS_CHARSET_CP1257 = 20,
│ │ │ │ +
488 TDS_CHARSET_CP1258 = 21,
│ │ │ │ +
489 TDS_CHARSET_CP1361 = 22,
│ │ │ │ +
490 TDS_CHARSET_CP437 = 23,
│ │ │ │ +
491 TDS_CHARSET_CP850 = 24,
│ │ │ │ +
492 TDS_CHARSET_CP862 = 25,
│ │ │ │ +
493 TDS_CHARSET_CP866 = 26,
│ │ │ │ +
494 TDS_CHARSET_CP874 = 27,
│ │ │ │ +
495 TDS_CHARSET_CP932 = 28,
│ │ │ │ +
496 TDS_CHARSET_CP936 = 29,
│ │ │ │ +
497 TDS_CHARSET_CP949 = 30,
│ │ │ │ +
498 TDS_CHARSET_CP950 = 31,
│ │ │ │ +
499 TDS_CHARSET_EUC_JP = 32,
│ │ │ │ +
500 TDS_CHARSET_EUC_KR = 33,
│ │ │ │ +
501 TDS_CHARSET_EUC_TW = 34,
│ │ │ │ +
502 TDS_CHARSET_GB18030 = 35,
│ │ │ │ +
503 TDS_CHARSET_GEORGIAN_ACADEMY = 36,
│ │ │ │ +
504 TDS_CHARSET_GEORGIAN_PS = 37,
│ │ │ │ +
505 TDS_CHARSET_HZ = 38,
│ │ │ │ +
506 TDS_CHARSET_ISO_2022_CN = 39,
│ │ │ │ +
507 TDS_CHARSET_ISO_2022_CN_EXT = 40,
│ │ │ │ +
508 TDS_CHARSET_ISO_2022_JP = 41,
│ │ │ │ +
509 TDS_CHARSET_ISO_2022_JP_1 = 42,
│ │ │ │ +
510 TDS_CHARSET_ISO_2022_JP_2 = 43,
│ │ │ │ +
511 TDS_CHARSET_ISO_2022_KR = 44,
│ │ │ │ +
512 TDS_CHARSET_ISO_8859_10 = 45,
│ │ │ │ +
513 TDS_CHARSET_ISO_8859_13 = 46,
│ │ │ │ +
514 TDS_CHARSET_ISO_8859_14 = 47,
│ │ │ │ +
515 TDS_CHARSET_ISO_8859_15 = 48,
│ │ │ │ +
516 TDS_CHARSET_ISO_8859_16 = 49,
│ │ │ │ +
517 TDS_CHARSET_ISO_8859_2 = 50,
│ │ │ │ +
518 TDS_CHARSET_ISO_8859_3 = 51,
│ │ │ │ +
519 TDS_CHARSET_ISO_8859_4 = 52,
│ │ │ │ +
520 TDS_CHARSET_ISO_8859_5 = 53,
│ │ │ │ +
521 TDS_CHARSET_ISO_8859_6 = 54,
│ │ │ │ +
522 TDS_CHARSET_ISO_8859_7 = 55,
│ │ │ │ +
523 TDS_CHARSET_ISO_8859_8 = 56,
│ │ │ │ +
524 TDS_CHARSET_ISO_8859_9 = 57,
│ │ │ │ +
525 TDS_CHARSET_ISO_IR_14 = 58,
│ │ │ │ +
526 TDS_CHARSET_ISO_IR_149 = 59,
│ │ │ │ +
527 TDS_CHARSET_ISO_IR_159 = 60,
│ │ │ │ +
528 TDS_CHARSET_ISO_IR_166 = 61,
│ │ │ │ +
529 TDS_CHARSET_ISO_IR_87 = 62,
│ │ │ │ +
530 TDS_CHARSET_JAVA = 63,
│ │ │ │ +
531 TDS_CHARSET_JISX0201_1976 = 64,
│ │ │ │ +
532 TDS_CHARSET_KOI8_R = 65,
│ │ │ │ +
533 TDS_CHARSET_KOI8_RU = 66,
│ │ │ │ +
534 TDS_CHARSET_KOI8_T = 67,
│ │ │ │ +
535 TDS_CHARSET_KOI8_U = 68,
│ │ │ │ +
536 TDS_CHARSET_MAC = 69,
│ │ │ │ +
537 TDS_CHARSET_MACARABIC = 70,
│ │ │ │ +
538 TDS_CHARSET_MACCENTRALEUROPE = 71,
│ │ │ │ +
539 TDS_CHARSET_MACCROATIAN = 72,
│ │ │ │ +
540 TDS_CHARSET_MACCYRILLIC = 73,
│ │ │ │ +
541 TDS_CHARSET_MACGREEK = 74,
│ │ │ │ +
542 TDS_CHARSET_MACHEBREW = 75,
│ │ │ │ +
543 TDS_CHARSET_MACICELAND = 76,
│ │ │ │ +
544 TDS_CHARSET_MACROMANIA = 77,
│ │ │ │ +
545 TDS_CHARSET_MACTHAI = 78,
│ │ │ │ +
546 TDS_CHARSET_MACTURKISH = 79,
│ │ │ │ +
547 TDS_CHARSET_MACUKRAINE = 80,
│ │ │ │ +
548 TDS_CHARSET_MULELAO_1 = 81,
│ │ │ │ +
549 TDS_CHARSET_NEXTSTEP = 82,
│ │ │ │ +
550 TDS_CHARSET_ROMAN8 = 83,
│ │ │ │ +
551 TDS_CHARSET_SJIS = 84,
│ │ │ │ +
552 TDS_CHARSET_TCVN = 85,
│ │ │ │ +
553 TDS_CHARSET_UCS_4BE = 86,
│ │ │ │ +
554 TDS_CHARSET_UCS_4LE = 87,
│ │ │ │ +
555 TDS_CHARSET_US_ASCII = 88,
│ │ │ │ +
556 TDS_CHARSET_UTF_16BE = 89,
│ │ │ │ +
557 TDS_CHARSET_UTF_16LE = 90,
│ │ │ │ +
558 TDS_CHARSET_UTF_32BE = 91,
│ │ │ │ +
559 TDS_CHARSET_UTF_32LE = 92,
│ │ │ │ +
560 TDS_CHARSET_UTF_7 = 93,
│ │ │ │ +
561 TDS_CHARSET_VISCII = 94,
│ │ │ │ +
562 TDS_NUM_CHARSETS = 95
│ │ │ │ +
563};
│ │ │ │ +
564
│ │ │ │ +
Definition iconv.h:73
│ │ │ │ +
Information relevant to libiconv.
Definition tds.h:618
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,454 +1,578 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -thread.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * │ │ │ │ │ -3 * Copyright (C) 2005 Liam Widdowson │ │ │ │ │ -4 * Copyright (C) 2010-2012 Frediano Ziglio │ │ │ │ │ -5 * │ │ │ │ │ -6 * This library is free software; you can redistribute it and/or │ │ │ │ │ -7 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -8 * License as published by the Free Software Foundation; either │ │ │ │ │ -9 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -10 * │ │ │ │ │ -11 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -12 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -14 * Library General Public License for more details. │ │ │ │ │ -15 * │ │ │ │ │ -16 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -17 * License along with this library; if not, write to the │ │ │ │ │ -18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -19 * Boston, MA 02111-1307, USA. │ │ │ │ │ -20 */ │ │ │ │ │ -21 │ │ │ │ │ -22#ifndef TDSTHREAD_H │ │ │ │ │ -23#define TDSTHREAD_H 1 │ │ │ │ │ -24 │ │ │ │ │ -25#undef TDS_HAVE_MUTEX │ │ │ │ │ -26 │ │ │ │ │ -27#if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX) │ │ │ │ │ -28 │ │ │ │ │ -29#include │ │ │ │ │ -30#include │ │ │ │ │ -31#include │ │ │ │ │ -32 │ │ │ │ │ -33#include │ │ │ │ │ -34 │ │ │ │ │ -35typedef pthread_mutex_t _t_d_s___r_a_w___m_u_t_e_x; │ │ │ │ │ -36#define TDS_RAW_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER │ │ │ │ │ -37 │ │ │ │ │ -38static inline void tds_raw_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -39{ │ │ │ │ │ -40 pthread_mutex_lock(mtx); │ │ │ │ │ -41} │ │ │ │ │ -42 │ │ │ │ │ -43static inline int tds_raw_mutex_trylock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -44{ │ │ │ │ │ -45 return pthread_mutex_trylock(mtx); │ │ │ │ │ -46} │ │ │ │ │ -47 │ │ │ │ │ -48static inline void tds_raw_mutex_unlock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -49{ │ │ │ │ │ -50 pthread_mutex_unlock(mtx); │ │ │ │ │ -51} │ │ │ │ │ -52 │ │ │ │ │ -53static inline int tds_raw_mutex_init(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -54{ │ │ │ │ │ -55 return pthread_mutex_init(mtx, NULL); │ │ │ │ │ -56} │ │ │ │ │ -57 │ │ │ │ │ -58static inline void tds_raw_mutex_free(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -59{ │ │ │ │ │ -60 pthread_mutex_destroy(mtx); │ │ │ │ │ -61} │ │ │ │ │ -62 │ │ │ │ │ -63typedef pthread_cond_t _t_d_s___c_o_n_d_i_t_i_o_n; │ │ │ │ │ -64 │ │ │ │ │ -65int tds_raw_cond_init(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ -66static inline int tds_raw_cond_destroy(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ -67{ │ │ │ │ │ -68 return pthread_cond_destroy(cond); │ │ │ │ │ -69} │ │ │ │ │ -70static inline int tds_raw_cond_signal(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ -71{ │ │ │ │ │ -72 return pthread_cond_signal(cond); │ │ │ │ │ -73} │ │ │ │ │ -74static inline int tds_raw_cond_wait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -75{ │ │ │ │ │ -76 return pthread_cond_wait(cond, mtx); │ │ │ │ │ -77} │ │ │ │ │ -78int tds_raw_cond_timedwait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x *mtx, int │ │ │ │ │ -timeout_sec); │ │ │ │ │ -79 │ │ │ │ │ -80#define TDS_HAVE_MUTEX 1 │ │ │ │ │ -81 │ │ │ │ │ -82typedef pthread_t _t_d_s___t_h_r_e_a_d; │ │ │ │ │ -83typedef pthread_t tds_thread_id; │ │ │ │ │ -84typedef void *(*tds_thread_proc)(void *arg); │ │ │ │ │ -85#define TDS_THREAD_PROC_DECLARE(name, arg) \ │ │ │ │ │ -86 void *name(void *arg) │ │ │ │ │ -87#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n)) │ │ │ │ │ -88 │ │ │ │ │ -89static inline int tds_thread_create(_t_d_s___t_h_r_e_a_d *ret, tds_thread_proc proc, │ │ │ │ │ -void *arg) │ │ │ │ │ -90{ │ │ │ │ │ -91 return pthread_create(ret, NULL, proc, arg); │ │ │ │ │ -92} │ │ │ │ │ -93 │ │ │ │ │ -94static inline int tds_thread_create_detached(tds_thread_proc proc, void *arg) │ │ │ │ │ -95{ │ │ │ │ │ -96 _t_d_s___t_h_r_e_a_d th; │ │ │ │ │ -97 int ret = pthread_create(&th, NULL, proc, arg); │ │ │ │ │ -98 if (!ret) │ │ │ │ │ -99 pthread_detach(th); │ │ │ │ │ -100 return ret; │ │ │ │ │ -101} │ │ │ │ │ -102 │ │ │ │ │ -103static inline int tds_thread_join(_t_d_s___t_h_r_e_a_d th, void **ret) │ │ │ │ │ -104{ │ │ │ │ │ -105 return pthread_join(th, ret); │ │ │ │ │ -106} │ │ │ │ │ -107 │ │ │ │ │ -108static inline tds_thread_id tds_thread_get_current_id(void) │ │ │ │ │ -109{ │ │ │ │ │ -110 return pthread_self(); │ │ │ │ │ -111} │ │ │ │ │ -112 │ │ │ │ │ -113static inline int tds_thread_is_current(tds_thread_id th) │ │ │ │ │ -114{ │ │ │ │ │ -115 return pthread_equal(th, pthread_self()); │ │ │ │ │ -116} │ │ │ │ │ -117 │ │ │ │ │ -118#include │ │ │ │ │ -119 │ │ │ │ │ -120#elif defined(_WIN32) │ │ │ │ │ -121 │ │ │ │ │ -122#include │ │ │ │ │ -123#include │ │ │ │ │ -124 │ │ │ │ │ -125/* old version of Windows do not define this constant */ │ │ │ │ │ -126#ifndef ETIMEDOUT │ │ │ │ │ -127#define ETIMEDOUT 138 │ │ │ │ │ -128#endif │ │ │ │ │ -129 │ │ │ │ │ -130struct _p_t_w_3_2___m_c_s___n_o_d_e___t__; │ │ │ │ │ -131 │ │ │ │ │ -132typedef struct { │ │ │ │ │ -133 struct _p_t_w_3_2___m_c_s___n_o_d_e___t__ *lock; │ │ │ │ │ -134 LONG done; │ │ │ │ │ -135 DWORD thread_id; │ │ │ │ │ -136 CRITICAL_SECTION crit; │ │ │ │ │ -137} _t_d_s___r_a_w___m_u_t_e_x; │ │ │ │ │ -138 │ │ │ │ │ -139#define TDS_RAW_MUTEX_INITIALIZER { NULL, 0, 0 } │ │ │ │ │ -140 │ │ │ │ │ -141static inline int │ │ │ │ │ -142tds_raw_mutex_init(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -143{ │ │ │ │ │ -144 mtx->lock = NULL; │ │ │ │ │ -145 mtx->done = 0; │ │ │ │ │ -146 mtx->thread_id = 0; │ │ │ │ │ -147 return 0; │ │ │ │ │ -148} │ │ │ │ │ -149 │ │ │ │ │ -150void tds_win_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mutex); │ │ │ │ │ -151 │ │ │ │ │ -152static inline void tds_raw_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -153{ │ │ │ │ │ -154 if (mtx->done) { │ │ │ │ │ -155 EnterCriticalSection(&mtx->crit); │ │ │ │ │ -156 mtx->thread_id = GetCurrentThreadId(); │ │ │ │ │ -157 } else { │ │ │ │ │ -158 tds_win_mutex_lock(mtx); │ │ │ │ │ -159 } │ │ │ │ │ -160} │ │ │ │ │ -161 │ │ │ │ │ -162int tds_raw_mutex_trylock(_t_d_s___r_a_w___m_u_t_e_x *mtx); │ │ │ │ │ -163 │ │ │ │ │ -164static inline void tds_raw_mutex_unlock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -165{ │ │ │ │ │ -166 mtx->thread_id = 0; │ │ │ │ │ -167 LeaveCriticalSection(&mtx->crit); │ │ │ │ │ -168} │ │ │ │ │ -169 │ │ │ │ │ -170static inline void tds_raw_mutex_free(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -171{ │ │ │ │ │ -172 if (mtx->done) { │ │ │ │ │ -173 DeleteCriticalSection(&mtx->crit); │ │ │ │ │ -174 mtx->done = 0; │ │ │ │ │ -175 } │ │ │ │ │ -176} │ │ │ │ │ -177 │ │ │ │ │ -178#define TDS_HAVE_MUTEX 1 │ │ │ │ │ -179 │ │ │ │ │ -180/* easy way, only single signal supported */ │ │ │ │ │ -181typedef void *TDS_CONDITION_VARIABLE; │ │ │ │ │ -182typedef union { │ │ │ │ │ -183 HANDLE ev; │ │ │ │ │ -184 TDS_CONDITION_VARIABLE cv; │ │ │ │ │ -185} _t_d_s___c_o_n_d_i_t_i_o_n; │ │ │ │ │ -186 │ │ │ │ │ -187extern int (*tds_raw_cond_init)(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ -188extern int (*tds_raw_cond_destroy)(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ -189extern int (*tds_raw_cond_signal)(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ -190extern int (*tds_raw_cond_timedwait)(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x │ │ │ │ │ -*mtx, int timeout_sec); │ │ │ │ │ -191static inline int tds_raw_cond_wait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -192{ │ │ │ │ │ -193 return tds_raw_cond_timedwait(cond, mtx, -1); │ │ │ │ │ -194} │ │ │ │ │ -195 │ │ │ │ │ -196typedef HANDLE _t_d_s___t_h_r_e_a_d; │ │ │ │ │ -197typedef DWORD tds_thread_id; │ │ │ │ │ -198typedef DWORD (WINAPI *tds_thread_proc)(void *arg); │ │ │ │ │ -199#define TDS_THREAD_PROC_DECLARE(name, arg) \ │ │ │ │ │ -200 DWORD WINAPI name(void *arg) │ │ │ │ │ -201#define TDS_THREAD_RESULT(n) ((DWORD)(int)(n)) │ │ │ │ │ -202 │ │ │ │ │ -203static inline int tds_thread_create(_t_d_s___t_h_r_e_a_d *ret, tds_thread_proc proc, │ │ │ │ │ -void *arg) │ │ │ │ │ -204{ │ │ │ │ │ -205 *ret = CreateThread(NULL, 0, proc, arg, 0, NULL); │ │ │ │ │ -206 return *ret != NULL ? 0 : 11 /* EAGAIN */; │ │ │ │ │ -207} │ │ │ │ │ -208 │ │ │ │ │ -209static inline int tds_thread_create_detached(tds_thread_proc proc, void │ │ │ │ │ -*arg) │ │ │ │ │ -210{ │ │ │ │ │ -211 HANDLE h = CreateThread(NULL, 0, proc, arg, 0, NULL); │ │ │ │ │ -212 if (h) │ │ │ │ │ -213 return 0; │ │ │ │ │ -214 CloseHandle(h); │ │ │ │ │ -215 return 11 /* EAGAIN */; │ │ │ │ │ -216} │ │ │ │ │ -217 │ │ │ │ │ -218static inline int tds_thread_join(_t_d_s___t_h_r_e_a_d th, void **ret) │ │ │ │ │ -219{ │ │ │ │ │ -220 if (WaitForSingleObject(th, INFINITE) == WAIT_OBJECT_0) { │ │ │ │ │ -221 if (ret) { │ │ │ │ │ -222 DWORD r; │ │ │ │ │ -223 if (!GetExitCodeThread(th, &r)) │ │ │ │ │ -224 r = 0xffffffffu; │ │ │ │ │ -225 *ret = (void*) (((char*)0) + r); │ │ │ │ │ -226 } │ │ │ │ │ -227 │ │ │ │ │ -228 CloseHandle(th); │ │ │ │ │ -229 return 0; │ │ │ │ │ -230 } │ │ │ │ │ -231 CloseHandle(th); │ │ │ │ │ -232 return 22 /* EINVAL */; │ │ │ │ │ -233} │ │ │ │ │ -234 │ │ │ │ │ -235static inline tds_thread_id tds_thread_get_current_id(void) │ │ │ │ │ -236{ │ │ │ │ │ -237 return GetCurrentThreadId(); │ │ │ │ │ -238} │ │ │ │ │ -239 │ │ │ │ │ -240static inline int tds_thread_is_current(tds_thread_id th) │ │ │ │ │ -241{ │ │ │ │ │ -242 return th == GetCurrentThreadId(); │ │ │ │ │ -243} │ │ │ │ │ -244 │ │ │ │ │ -245#else │ │ │ │ │ -246 │ │ │ │ │ -247#include │ │ │ │ │ -248 │ │ │ │ │ -249/* define noops as "successful" */ │ │ │ │ │ -_2_5_0typedef struct { │ │ │ │ │ -251 char dummy[0]; /* compiler compatibility */ │ │ │ │ │ -252} _t_d_s___r_a_w___m_u_t_e_x; │ │ │ │ │ -253 │ │ │ │ │ -254#define TDS_RAW_MUTEX_INITIALIZER {} │ │ │ │ │ -255 │ │ │ │ │ -256static inline void tds_raw_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -257{ │ │ │ │ │ -258} │ │ │ │ │ -259 │ │ │ │ │ -260static inline int tds_raw_mutex_trylock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -261{ │ │ │ │ │ -262 return 0; │ │ │ │ │ -263} │ │ │ │ │ -264 │ │ │ │ │ -265static inline void tds_raw_mutex_unlock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -266{ │ │ │ │ │ -267} │ │ │ │ │ -268 │ │ │ │ │ -269static inline int tds_raw_mutex_init(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -270{ │ │ │ │ │ -271 return 0; │ │ │ │ │ -272} │ │ │ │ │ -273 │ │ │ │ │ -274static inline void tds_raw_mutex_free(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ -275{ │ │ │ │ │ -276} │ │ │ │ │ -277 │ │ │ │ │ -_2_7_8typedef struct { │ │ │ │ │ -279 char dummy[0]; /* compiler compatibility */ │ │ │ │ │ -280} _t_d_s___c_o_n_d_i_t_i_o_n; │ │ │ │ │ -281 │ │ │ │ │ -282static inline int tds_raw_cond_init(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ -283{ │ │ │ │ │ -284 return 0; │ │ │ │ │ -285} │ │ │ │ │ -286static inline int tds_raw_cond_destroy(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ -287{ │ │ │ │ │ -288 return 0; │ │ │ │ │ -289} │ │ │ │ │ -290#define tds_raw_cond_signal(cond) \ │ │ │ │ │ -291 FreeTDS_Condition_not_compiled │ │ │ │ │ -292 │ │ │ │ │ -293#define tds_raw_cond_wait(cond, mtx) \ │ │ │ │ │ -294 FreeTDS_Condition_not_compiled │ │ │ │ │ -295 │ │ │ │ │ -296#define tds_raw_cond_timedwait(cond, mtx, timeout_sec) \ │ │ │ │ │ -297 FreeTDS_Condition_not_compiled │ │ │ │ │ -298 │ │ │ │ │ -_2_9_9typedef struct { │ │ │ │ │ -300 char dummy[0]; /* compiler compatibility */ │ │ │ │ │ -301} _t_d_s___t_h_r_e_a_d; │ │ │ │ │ -302typedef int tds_thread_id; │ │ │ │ │ -303 │ │ │ │ │ -304typedef void *(*tds_thread_proc)(void *arg); │ │ │ │ │ -305#define TDS_THREAD_PROC_DECLARE(name, arg) \ │ │ │ │ │ -306 void *name(void *arg) │ │ │ │ │ -307#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n)) │ │ │ │ │ -308 │ │ │ │ │ -309#define tds_thread_create(ret, proc, arg) \ │ │ │ │ │ -310 FreeTDS_Thread_not_compiled │ │ │ │ │ -311 │ │ │ │ │ -312#define tds_thread_create_detached(proc, arg) \ │ │ │ │ │ -313 FreeTDS_Thread_not_compiled │ │ │ │ │ -314 │ │ │ │ │ -315#define tds_thread_join(th, ret) \ │ │ │ │ │ -316 FreeTDS_Thread_not_compiled │ │ │ │ │ -317 │ │ │ │ │ -318static inline tds_thread_id tds_thread_get_current_id(void) │ │ │ │ │ -319{ │ │ │ │ │ -320 return 0; │ │ │ │ │ -321} │ │ │ │ │ -322 │ │ │ │ │ -323static inline int tds_thread_is_current(tds_thread_id th) │ │ │ │ │ -324{ │ │ │ │ │ -325 return 1; │ │ │ │ │ -326} │ │ │ │ │ -327 │ │ │ │ │ -328#endif │ │ │ │ │ -329 │ │ │ │ │ -330# define tds_cond_init tds_raw_cond_init │ │ │ │ │ -331# define tds_cond_destroy tds_raw_cond_destroy │ │ │ │ │ -332# define tds_cond_signal tds_raw_cond_signal │ │ │ │ │ -333# if !ENABLE_EXTRA_CHECKS │ │ │ │ │ -334# define TDS_MUTEX_INITIALIZER TDS_RAW_MUTEX_INITIALIZER │ │ │ │ │ -335# define tds_mutex tds_raw_mutex │ │ │ │ │ -336# define tds_mutex_lock tds_raw_mutex_lock │ │ │ │ │ -337# define tds_mutex_trylock tds_raw_mutex_trylock │ │ │ │ │ -338# define tds_mutex_unlock tds_raw_mutex_unlock │ │ │ │ │ -339# define tds_mutex_check_owned(mtx) do {} while(0) │ │ │ │ │ -340# define tds_mutex_init tds_raw_mutex_init │ │ │ │ │ -341# define tds_mutex_free tds_raw_mutex_free │ │ │ │ │ -342# define tds_cond_wait tds_raw_cond_wait │ │ │ │ │ -343# define tds_cond_timedwait tds_raw_cond_timedwait │ │ │ │ │ -344# else │ │ │ │ │ -345# include │ │ │ │ │ -346 │ │ │ │ │ -347typedef struct tds_mutex │ │ │ │ │ -348{ │ │ │ │ │ -349 _t_d_s___r_a_w___m_u_t_e_x mtx; │ │ │ │ │ -350 volatile int locked; │ │ │ │ │ -351 volatile tds_thread_id locked_by; │ │ │ │ │ -352} tds_mutex; │ │ │ │ │ -353 │ │ │ │ │ -354# define TDS_MUTEX_INITIALIZER { TDS_RAW_MUTEX_INITIALIZER, 0 } │ │ │ │ │ -355 │ │ │ │ │ -356static inline void tds_mutex_lock(tds_mutex *mtx) │ │ │ │ │ -357{ │ │ │ │ │ -358 assert(mtx); │ │ │ │ │ -359 tds_raw_mutex_lock(&mtx->mtx); │ │ │ │ │ -360 assert(!mtx->locked); │ │ │ │ │ -361 mtx->locked = 1; │ │ │ │ │ -362 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ -363} │ │ │ │ │ -364 │ │ │ │ │ -365static inline int tds_mutex_trylock(tds_mutex *mtx) │ │ │ │ │ -366{ │ │ │ │ │ -367 int ret; │ │ │ │ │ -368 assert(mtx); │ │ │ │ │ -369 ret = tds_raw_mutex_trylock(&mtx->mtx); │ │ │ │ │ -370 if (!ret) { │ │ │ │ │ -371 assert(!mtx->locked); │ │ │ │ │ -372 mtx->locked = 1; │ │ │ │ │ -373 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ -374 } │ │ │ │ │ -375 return ret; │ │ │ │ │ -376} │ │ │ │ │ -377 │ │ │ │ │ -378static inline void tds_mutex_unlock(tds_mutex *mtx) │ │ │ │ │ -379{ │ │ │ │ │ -380 assert(mtx && mtx->locked); │ │ │ │ │ -381 mtx->locked = 0; │ │ │ │ │ -382 tds_raw_mutex_unlock(&mtx->mtx); │ │ │ │ │ -383} │ │ │ │ │ -384 │ │ │ │ │ -385static inline void tds_mutex_check_owned(tds_mutex *mtx) │ │ │ │ │ -386{ │ │ │ │ │ -387 int ret; │ │ │ │ │ -388 assert(mtx); │ │ │ │ │ -389 ret = tds_raw_mutex_trylock(&mtx->mtx); │ │ │ │ │ -390 assert(ret); │ │ │ │ │ -391 assert(mtx->locked); │ │ │ │ │ -392 assert(tds_thread_is_current(mtx->locked_by)); │ │ │ │ │ -393} │ │ │ │ │ -394 │ │ │ │ │ -395static inline int tds_mutex_init(tds_mutex *mtx) │ │ │ │ │ -396{ │ │ │ │ │ -397 mtx->locked = 0; │ │ │ │ │ -398 return tds_raw_mutex_init(&mtx->mtx); │ │ │ │ │ -399} │ │ │ │ │ -400 │ │ │ │ │ -401static inline void tds_mutex_free(tds_mutex *mtx) │ │ │ │ │ -402{ │ │ │ │ │ -403 assert(mtx && !mtx->locked); │ │ │ │ │ -404 tds_raw_mutex_free(&mtx->mtx); │ │ │ │ │ -405} │ │ │ │ │ -406 │ │ │ │ │ -407static inline int tds_cond_wait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, tds_mutex *mtx) │ │ │ │ │ -408{ │ │ │ │ │ -409 int ret; │ │ │ │ │ -410 assert(mtx && mtx->locked); │ │ │ │ │ -411 mtx->locked = 0; │ │ │ │ │ -412 ret = tds_raw_cond_wait(cond, &mtx->mtx); │ │ │ │ │ -413 mtx->locked = 1; │ │ │ │ │ -414 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ -415 return ret; │ │ │ │ │ -416} │ │ │ │ │ -417 │ │ │ │ │ -418static inline int tds_cond_timedwait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, tds_mutex *mtx, │ │ │ │ │ -int timeout_sec) │ │ │ │ │ -419{ │ │ │ │ │ -420 int ret; │ │ │ │ │ -421 assert(mtx && mtx->locked); │ │ │ │ │ -422 mtx->locked = 0; │ │ │ │ │ -423 ret = tds_raw_cond_timedwait(cond, &mtx->mtx, timeout_sec); │ │ │ │ │ -424 mtx->locked = 1; │ │ │ │ │ -425 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ -426 return ret; │ │ │ │ │ -427} │ │ │ │ │ -428 │ │ │ │ │ -429# endif │ │ │ │ │ -430 │ │ │ │ │ -431#endif │ │ │ │ │ -_p_t_w_3_2___m_c_s___n_o_d_e___t__ │ │ │ │ │ -DDeeffiinniittiioonn ptw32_MCS_lock.c:98 │ │ │ │ │ -_t_d_s___r_a_w___m_u_t_e_x │ │ │ │ │ -DDeeffiinniittiioonn thread.h:250 │ │ │ │ │ -_t_d_s___c_o_n_d_i_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn thread.h:278 │ │ │ │ │ -_t_d_s___t_h_r_e_a_d │ │ │ │ │ -DDeeffiinniittiioonn thread.h:299 │ │ │ │ │ +encodings.h │ │ │ │ │ +1/* │ │ │ │ │ +2 * This file produced from ./encodings.pl on Sat Jan 21 09:01:33 2023 │ │ │ │ │ +3 */ │ │ │ │ │ +4#ifdef TDS_ICONV_ENCODING_TABLES │ │ │ │ │ +5 │ │ │ │ │ +6static const _T_D_S___E_N_C_O_D_I_N_G canonic_charsets[] = { │ │ │ │ │ +7 { "ISO-8859-1", 1, 1, 0}, /* 0 */ │ │ │ │ │ +8 { "UTF-8", 1, 4, 1}, /* 1 */ │ │ │ │ │ +9 { "UCS-2LE", 2, 2, 2}, /* 2 */ │ │ │ │ │ +10 { "UCS-2BE", 2, 2, 3}, /* 3 */ │ │ │ │ │ +11 { "ARMSCII-8", 1, 1, 4}, /* 4 */ │ │ │ │ │ +12 { "BIG-5", 1, 2, 5}, /* 5 */ │ │ │ │ │ +13 { "BIG5-HKSCS", 1, 2, 6}, /* 6 */ │ │ │ │ │ +14 { "C99", 1, 1, 7}, /* 7 */ │ │ │ │ │ +15 { "CHINESE", 1, 1, 8}, /* 8 */ │ │ │ │ │ +16 { "CN", 1, 1, 9}, /* 9 */ │ │ │ │ │ +17 { "CN-GB", 1, 2, 10}, /* 10 */ │ │ │ │ │ +18 { "CN-GB-ISOIR165", 1, 1, 11}, /* 11 */ │ │ │ │ │ +19 { "CP1133", 1, 1, 12}, /* 12 */ │ │ │ │ │ +20 { "CP1250", 1, 1, 13}, /* 13 */ │ │ │ │ │ +21 { "CP1251", 1, 1, 14}, /* 14 */ │ │ │ │ │ +22 { "CP1252", 1, 1, 15}, /* 15 */ │ │ │ │ │ +23 { "CP1253", 1, 1, 16}, /* 16 */ │ │ │ │ │ +24 { "CP1254", 1, 1, 17}, /* 17 */ │ │ │ │ │ +25 { "CP1255", 1, 1, 18}, /* 18 */ │ │ │ │ │ +26 { "CP1256", 1, 1, 19}, /* 19 */ │ │ │ │ │ +27 { "CP1257", 1, 1, 20}, /* 20 */ │ │ │ │ │ +28 { "CP1258", 1, 1, 21}, /* 21 */ │ │ │ │ │ +29 { "CP1361", 1, 2, 22}, /* 22 */ │ │ │ │ │ +30 { "CP437", 1, 1, 23}, /* 23 */ │ │ │ │ │ +31 { "CP850", 1, 1, 24}, /* 24 */ │ │ │ │ │ +32 { "CP862", 1, 1, 25}, /* 25 */ │ │ │ │ │ +33 { "CP866", 1, 1, 26}, /* 26 */ │ │ │ │ │ +34 { "CP874", 1, 1, 27}, /* 27 */ │ │ │ │ │ +35 { "CP932", 1, 2, 28}, /* 28 */ │ │ │ │ │ +36 { "CP936", 1, 2, 29}, /* 29 */ │ │ │ │ │ +37 { "CP949", 1, 2, 30}, /* 30 */ │ │ │ │ │ +38 { "CP950", 1, 2, 31}, /* 31 */ │ │ │ │ │ +39 { "EUC-JP", 1, 3, 32}, /* 32 */ │ │ │ │ │ +40 { "EUC-KR", 1, 2, 33}, /* 33 */ │ │ │ │ │ +41 { "EUC-TW", 1, 4, 34}, /* 34 */ │ │ │ │ │ +42 { "GB18030", 1, 4, 35}, /* 35 */ │ │ │ │ │ +43 { "GEORGIAN-ACADEMY", 1, 1, 36}, /* 36 */ │ │ │ │ │ +44 { "GEORGIAN-PS", 1, 1, 37}, /* 37 */ │ │ │ │ │ +45 { "HZ", 1, 1, 38}, /* 38 */ │ │ │ │ │ +46 { "ISO-2022-CN", 1, 4, 39}, /* 39 */ │ │ │ │ │ +47 { "ISO-2022-CN-EXT", 1, 4, 40}, /* 40 */ │ │ │ │ │ +48 { "ISO-2022-JP", 1, 1, 41}, /* 41 */ │ │ │ │ │ +49 { "ISO-2022-JP-1", 1, 1, 42}, /* 42 */ │ │ │ │ │ +50 { "ISO-2022-JP-2", 1, 1, 43}, /* 43 */ │ │ │ │ │ +51 { "ISO-2022-KR", 1, 2, 44}, /* 44 */ │ │ │ │ │ +52 { "ISO-8859-10", 1, 1, 45}, /* 45 */ │ │ │ │ │ +53 { "ISO-8859-13", 1, 1, 46}, /* 46 */ │ │ │ │ │ +54 { "ISO-8859-14", 1, 1, 47}, /* 47 */ │ │ │ │ │ +55 { "ISO-8859-15", 1, 1, 48}, /* 48 */ │ │ │ │ │ +56 { "ISO-8859-16", 1, 1, 49}, /* 49 */ │ │ │ │ │ +57 { "ISO-8859-2", 1, 1, 50}, /* 50 */ │ │ │ │ │ +58 { "ISO-8859-3", 1, 1, 51}, /* 51 */ │ │ │ │ │ +59 { "ISO-8859-4", 1, 1, 52}, /* 52 */ │ │ │ │ │ +60 { "ISO-8859-5", 1, 1, 53}, /* 53 */ │ │ │ │ │ +61 { "ISO-8859-6", 1, 1, 54}, /* 54 */ │ │ │ │ │ +62 { "ISO-8859-7", 1, 1, 55}, /* 55 */ │ │ │ │ │ +63 { "ISO-8859-8", 1, 1, 56}, /* 56 */ │ │ │ │ │ +64 { "ISO-8859-9", 1, 1, 57}, /* 57 */ │ │ │ │ │ +65 { "ISO-IR-14", 1, 1, 58}, /* 58 */ │ │ │ │ │ +66 { "ISO-IR-149", 1, 1, 59}, /* 59 */ │ │ │ │ │ +67 { "ISO-IR-159", 1, 1, 60}, /* 60 */ │ │ │ │ │ +68 { "ISO-IR-166", 1, 1, 61}, /* 61 */ │ │ │ │ │ +69 { "ISO-IR-87", 1, 1, 62}, /* 62 */ │ │ │ │ │ +70 { "JAVA", 1, 1, 63}, /* 63 */ │ │ │ │ │ +71 { "JISX0201-1976", 1, 1, 64}, /* 64 */ │ │ │ │ │ +72 { "KOI8-R", 1, 1, 65}, /* 65 */ │ │ │ │ │ +73 { "KOI8-RU", 1, 1, 66}, /* 66 */ │ │ │ │ │ +74 { "KOI8-T", 1, 1, 67}, /* 67 */ │ │ │ │ │ +75 { "KOI8-U", 1, 1, 68}, /* 68 */ │ │ │ │ │ +76 { "MAC", 1, 1, 69}, /* 69 */ │ │ │ │ │ +77 { "MACARABIC", 1, 1, 70}, /* 70 */ │ │ │ │ │ +78 { "MACCENTRALEUROPE", 1, 1, 71}, /* 71 */ │ │ │ │ │ +79 { "MACCROATIAN", 1, 1, 72}, /* 72 */ │ │ │ │ │ +80 { "MACCYRILLIC", 1, 1, 73}, /* 73 */ │ │ │ │ │ +81 { "MACGREEK", 1, 1, 74}, /* 74 */ │ │ │ │ │ +82 { "MACHEBREW", 1, 1, 75}, /* 75 */ │ │ │ │ │ +83 { "MACICELAND", 1, 1, 76}, /* 76 */ │ │ │ │ │ +84 { "MACROMANIA", 1, 1, 77}, /* 77 */ │ │ │ │ │ +85 { "MACTHAI", 1, 1, 78}, /* 78 */ │ │ │ │ │ +86 { "MACTURKISH", 1, 1, 79}, /* 79 */ │ │ │ │ │ +87 { "MACUKRAINE", 1, 1, 80}, /* 80 */ │ │ │ │ │ +88 { "MULELAO-1", 1, 1, 81}, /* 81 */ │ │ │ │ │ +89 { "NEXTSTEP", 1, 1, 82}, /* 82 */ │ │ │ │ │ +90 { "ROMAN8", 1, 1, 83}, /* 83 */ │ │ │ │ │ +91 { "SJIS", 1, 2, 84}, /* 84 */ │ │ │ │ │ +92 { "TCVN", 1, 1, 85}, /* 85 */ │ │ │ │ │ +93 { "UCS-4BE", 4, 4, 86}, /* 86 */ │ │ │ │ │ +94 { "UCS-4LE", 4, 4, 87}, /* 87 */ │ │ │ │ │ +95 { "US-ASCII", 1, 1, 88}, /* 88 */ │ │ │ │ │ +96 { "UTF-16BE", 2, 4, 89}, /* 89 */ │ │ │ │ │ +97 { "UTF-16LE", 2, 4, 90}, /* 90 */ │ │ │ │ │ +98 { "UTF-32BE", 4, 4, 91}, /* 91 */ │ │ │ │ │ +99 { "UTF-32LE", 4, 4, 92}, /* 92 */ │ │ │ │ │ +100 { "UTF-7", 1, 4, 93}, /* 93 */ │ │ │ │ │ +101 { "VISCII", 1, 1, 94}, /* 94 */ │ │ │ │ │ +102}; │ │ │ │ │ +103 │ │ │ │ │ +104static const _C_H_A_R_A_C_T_E_R___S_E_T___A_L_I_A_S iconv_aliases[] = { │ │ │ │ │ +105 { "646", 88 }, │ │ │ │ │ +106 { "850", 24 }, │ │ │ │ │ +107 { "862", 25 }, │ │ │ │ │ +108 { "866", 26 }, │ │ │ │ │ +109 { "ANSI_X3.4-1968", 88 }, │ │ │ │ │ +110 { "ANSI_X3.4-1986", 88 }, │ │ │ │ │ +111 { "ARABIC", 54 }, │ │ │ │ │ +112 { "ARMSCII-8", 4 }, │ │ │ │ │ +113 { "ASCII", 88 }, │ │ │ │ │ +114 { "ASMO-708", 54 }, │ │ │ │ │ +115 { "BIG-5", 5 }, │ │ │ │ │ +116 { "BIG-FIVE", 5 }, │ │ │ │ │ +117 { "BIG5", 5 }, │ │ │ │ │ +118 { "BIG5-HKSCS", 6 }, │ │ │ │ │ +119 { "BIG5HKSCS", 6 }, │ │ │ │ │ +120 { "BIGFIVE", 5 }, │ │ │ │ │ +121 { "C99", 7 }, │ │ │ │ │ +122 { "CHINESE", 8 }, │ │ │ │ │ +123 { "CN", 9 }, │ │ │ │ │ +124 { "CN-BIG5", 5 }, │ │ │ │ │ +125 { "CN-GB", 10 }, │ │ │ │ │ +126 { "CN-GB-ISOIR165", 11 }, │ │ │ │ │ +127 { "CP1133", 12 }, │ │ │ │ │ +128 { "CP1250", 13 }, │ │ │ │ │ +129 { "CP1251", 14 }, │ │ │ │ │ +130 { "CP1252", 15 }, │ │ │ │ │ +131 { "CP1253", 16 }, │ │ │ │ │ +132 { "CP1254", 17 }, │ │ │ │ │ +133 { "CP1255", 18 }, │ │ │ │ │ +134 { "CP1256", 19 }, │ │ │ │ │ +135 { "CP1257", 20 }, │ │ │ │ │ +136 { "CP1258", 21 }, │ │ │ │ │ +137 { "CP1361", 22 }, │ │ │ │ │ +138 { "CP367", 88 }, │ │ │ │ │ +139 { "CP437", 23 }, │ │ │ │ │ +140 { "CP819", 0 }, │ │ │ │ │ +141 { "CP850", 24 }, │ │ │ │ │ +142 { "CP862", 25 }, │ │ │ │ │ +143 { "CP866", 26 }, │ │ │ │ │ +144 { "CP874", 27 }, │ │ │ │ │ +145 { "CP932", 28 }, │ │ │ │ │ +146 { "CP936", 29 }, │ │ │ │ │ +147 { "CP949", 30 }, │ │ │ │ │ +148 { "CP950", 31 }, │ │ │ │ │ +149 { "CSASCII", 88 }, │ │ │ │ │ +150 { "CSBIG5", 5 }, │ │ │ │ │ +151 { "CSEUCKR", 33 }, │ │ │ │ │ +152 { "CSEUCPKDFMTJAPANESE", 32 }, │ │ │ │ │ +153 { "CSEUCTW", 34 }, │ │ │ │ │ +154 { "CSGB2312", 10 }, │ │ │ │ │ +155 { "CSHALFWIDTHKATAKANA", 64 }, │ │ │ │ │ +156 { "CSHPROMAN8", 83 }, │ │ │ │ │ +157 { "CSIBM866", 26 }, │ │ │ │ │ +158 { "CSISO14JISC6220RO", 58 }, │ │ │ │ │ +159 { "CSISO159JISX02121990", 60 }, │ │ │ │ │ +160 { "CSISO2022CN", 39 }, │ │ │ │ │ +161 { "CSISO2022JP", 41 }, │ │ │ │ │ +162 { "CSISO2022JP2", 43 }, │ │ │ │ │ +163 { "CSISO2022KR", 44 }, │ │ │ │ │ +164 { "CSISO57GB1988", 9 }, │ │ │ │ │ +165 { "CSISO58GB231280", 8 }, │ │ │ │ │ +166 { "CSISO87JISX0208", 62 }, │ │ │ │ │ +167 { "CSISOLATIN1", 0 }, │ │ │ │ │ +168 { "CSISOLATIN2", 50 }, │ │ │ │ │ +169 { "CSISOLATIN3", 51 }, │ │ │ │ │ +170 { "CSISOLATIN4", 52 }, │ │ │ │ │ +171 { "CSISOLATIN5", 57 }, │ │ │ │ │ +172 { "CSISOLATIN6", 45 }, │ │ │ │ │ +173 { "CSISOLATINARABIC", 54 }, │ │ │ │ │ +174 { "CSISOLATINCYRILLIC", 53 }, │ │ │ │ │ +175 { "CSISOLATINGREEK", 55 }, │ │ │ │ │ +176 { "CSISOLATINHEBREW", 56 }, │ │ │ │ │ +177 { "CSKOI8R", 65 }, │ │ │ │ │ +178 { "CSKSC56011987", 59 }, │ │ │ │ │ +179 { "CSMACINTOSH", 69 }, │ │ │ │ │ +180 { "CSPC850MULTILINGUAL", 24 }, │ │ │ │ │ +181 { "CSPC862LATINHEBREW", 25 }, │ │ │ │ │ +182 { "CSSHIFTJIS", 84 }, │ │ │ │ │ +183 { "CSUNICODE11", 3 }, │ │ │ │ │ +184 { "CSUNICODE11UTF7", 93 }, │ │ │ │ │ +185 { "CSVISCII", 94 }, │ │ │ │ │ +186 { "CYRILLIC", 53 }, │ │ │ │ │ +187 { "ECMA-114", 54 }, │ │ │ │ │ +188 { "ECMA-118", 55 }, │ │ │ │ │ +189 { "ELOT_928", 55 }, │ │ │ │ │ +190 { "EUC-CN", 10 }, │ │ │ │ │ +191 { "EUC-JP", 32 }, │ │ │ │ │ +192 { "EUC-KR", 33 }, │ │ │ │ │ +193 { "EUC-TW", 34 }, │ │ │ │ │ +194 { "EUCCN", 10 }, │ │ │ │ │ +195 { "EUCJP", 32 }, │ │ │ │ │ +196 { "EUCKR", 33 }, │ │ │ │ │ +197 { "EUCTW", 34 }, │ │ │ │ │ +198 {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", 32 }, │ │ │ │ │ +199 { "GB18030", 35 }, │ │ │ │ │ +200 { "GB2312", 10 }, │ │ │ │ │ +201 { "GBK", 29 }, │ │ │ │ │ +202 { "GB_1988-80", 9 }, │ │ │ │ │ +203 { "GB_2312-80", 8 }, │ │ │ │ │ +204 { "GEORGIAN-ACADEMY", 36 }, │ │ │ │ │ +205 { "GEORGIAN-PS", 37 }, │ │ │ │ │ +206 { "GREEK", 55 }, │ │ │ │ │ +207 { "GREEK8", 55 }, │ │ │ │ │ +208 { "HEBREW", 56 }, │ │ │ │ │ +209 { "HP-ROMAN8", 83 }, │ │ │ │ │ +210 { "HZ", 38 }, │ │ │ │ │ +211 { "HZ-GB-2312", 38 }, │ │ │ │ │ +212 { "IBM-CP1133", 12 }, │ │ │ │ │ +213 { "IBM367", 88 }, │ │ │ │ │ +214 { "IBM437", 23 }, │ │ │ │ │ +215 { "IBM819", 0 }, │ │ │ │ │ +216 { "IBM850", 24 }, │ │ │ │ │ +217 { "IBM862", 25 }, │ │ │ │ │ +218 { "IBM866", 26 }, │ │ │ │ │ +219 { "ISO-2022-CN", 39 }, │ │ │ │ │ +220 { "ISO-2022-CN-EXT", 40 }, │ │ │ │ │ +221 { "ISO-2022-JP", 41 }, │ │ │ │ │ +222 { "ISO-2022-JP-1", 42 }, │ │ │ │ │ +223 { "ISO-2022-JP-2", 43 }, │ │ │ │ │ +224 { "ISO-2022-KR", 44 }, │ │ │ │ │ +225 { "ISO-8859-1", 0 }, │ │ │ │ │ +226 { "ISO-8859-10", 45 }, │ │ │ │ │ +227 { "ISO-8859-13", 46 }, │ │ │ │ │ +228 { "ISO-8859-14", 47 }, │ │ │ │ │ +229 { "ISO-8859-15", 48 }, │ │ │ │ │ +230 { "ISO-8859-16", 49 }, │ │ │ │ │ +231 { "ISO-8859-2", 50 }, │ │ │ │ │ +232 { "ISO-8859-3", 51 }, │ │ │ │ │ +233 { "ISO-8859-4", 52 }, │ │ │ │ │ +234 { "ISO-8859-5", 53 }, │ │ │ │ │ +235 { "ISO-8859-6", 54 }, │ │ │ │ │ +236 { "ISO-8859-7", 55 }, │ │ │ │ │ +237 { "ISO-8859-8", 56 }, │ │ │ │ │ +238 { "ISO-8859-9", 57 }, │ │ │ │ │ +239 { "ISO-CELTIC", 47 }, │ │ │ │ │ +240 { "ISO-IR-100", 0 }, │ │ │ │ │ +241 { "ISO-IR-101", 50 }, │ │ │ │ │ +242 { "ISO-IR-109", 51 }, │ │ │ │ │ +243 { "ISO-IR-110", 52 }, │ │ │ │ │ +244 { "ISO-IR-126", 55 }, │ │ │ │ │ +245 { "ISO-IR-127", 54 }, │ │ │ │ │ +246 { "ISO-IR-138", 56 }, │ │ │ │ │ +247 { "ISO-IR-14", 58 }, │ │ │ │ │ +248 { "ISO-IR-144", 53 }, │ │ │ │ │ +249 { "ISO-IR-148", 57 }, │ │ │ │ │ +250 { "ISO-IR-149", 59 }, │ │ │ │ │ +251 { "ISO-IR-157", 45 }, │ │ │ │ │ +252 { "ISO-IR-159", 60 }, │ │ │ │ │ +253 { "ISO-IR-165", 11 }, │ │ │ │ │ +254 { "ISO-IR-166", 61 }, │ │ │ │ │ +255 { "ISO-IR-179", 46 }, │ │ │ │ │ +256 { "ISO-IR-199", 47 }, │ │ │ │ │ +257 { "ISO-IR-203", 48 }, │ │ │ │ │ +258 { "ISO-IR-226", 49 }, │ │ │ │ │ +259 { "ISO-IR-57", 9 }, │ │ │ │ │ +260 { "ISO-IR-58", 8 }, │ │ │ │ │ +261 { "ISO-IR-6", 88 }, │ │ │ │ │ +262 { "ISO-IR-87", 62 }, │ │ │ │ │ +263 { "ISO646-CN", 9 }, │ │ │ │ │ +264 { "ISO646-JP", 58 }, │ │ │ │ │ +265 { "ISO646-US", 88 }, │ │ │ │ │ +266 { "ISO8859-1", 0 }, │ │ │ │ │ +267 { "ISO8859-10", 45 }, │ │ │ │ │ +268 { "ISO8859-15", 48 }, │ │ │ │ │ +269 { "ISO8859-2", 50 }, │ │ │ │ │ +270 { "ISO8859-4", 52 }, │ │ │ │ │ +271 { "ISO8859-5", 53 }, │ │ │ │ │ +272 { "ISO8859-6", 54 }, │ │ │ │ │ +273 { "ISO8859-7", 55 }, │ │ │ │ │ +274 { "ISO8859-8", 56 }, │ │ │ │ │ +275 { "ISO8859-9", 57 }, │ │ │ │ │ +276 { "ISO_646.IRV:1991", 88 }, │ │ │ │ │ +277 { "ISO_8859-1", 0 }, │ │ │ │ │ +278 { "ISO_8859-10", 45 }, │ │ │ │ │ +279 { "ISO_8859-10:1992", 45 }, │ │ │ │ │ +280 { "ISO_8859-13", 46 }, │ │ │ │ │ +281 { "ISO_8859-14", 47 }, │ │ │ │ │ +282 { "ISO_8859-14:1998", 47 }, │ │ │ │ │ +283 { "ISO_8859-15", 48 }, │ │ │ │ │ +284 { "ISO_8859-15:1998", 48 }, │ │ │ │ │ +285 { "ISO_8859-16", 49 }, │ │ │ │ │ +286 { "ISO_8859-16:2000", 49 }, │ │ │ │ │ +287 { "ISO_8859-1:1987", 0 }, │ │ │ │ │ +288 { "ISO_8859-2", 50 }, │ │ │ │ │ +289 { "ISO_8859-2:1987", 50 }, │ │ │ │ │ +290 { "ISO_8859-3", 51 }, │ │ │ │ │ +291 { "ISO_8859-3:1988", 51 }, │ │ │ │ │ +292 { "ISO_8859-4", 52 }, │ │ │ │ │ +293 { "ISO_8859-4:1988", 52 }, │ │ │ │ │ +294 { "ISO_8859-5", 53 }, │ │ │ │ │ +295 { "ISO_8859-5:1988", 53 }, │ │ │ │ │ +296 { "ISO_8859-6", 54 }, │ │ │ │ │ +297 { "ISO_8859-6:1987", 54 }, │ │ │ │ │ +298 { "ISO_8859-7", 55 }, │ │ │ │ │ +299 { "ISO_8859-7:1987", 55 }, │ │ │ │ │ +300 { "ISO_8859-8", 56 }, │ │ │ │ │ +301 { "ISO_8859-8:1988", 56 }, │ │ │ │ │ +302 { "ISO_8859-9", 57 }, │ │ │ │ │ +303 { "ISO_8859-9:1989", 57 }, │ │ │ │ │ +304 { "JAVA", 63 }, │ │ │ │ │ +305 { "JIS0208", 62 }, │ │ │ │ │ +306 { "JISX0201-1976", 64 }, │ │ │ │ │ +307 { "JIS_C6220-1969-RO", 58 }, │ │ │ │ │ +308 { "JIS_C6226-1983", 62 }, │ │ │ │ │ +309 { "JIS_X0201", 64 }, │ │ │ │ │ +310 { "JIS_X0208", 62 }, │ │ │ │ │ +311 { "JIS_X0208-1983", 62 }, │ │ │ │ │ +312 { "JIS_X0208-1990", 62 }, │ │ │ │ │ +313 { "JIS_X0212", 60 }, │ │ │ │ │ +314 { "JIS_X0212-1990", 60 }, │ │ │ │ │ +315 { "JIS_X0212.1990-0", 60 }, │ │ │ │ │ +316 { "JOHAB", 22 }, │ │ │ │ │ +317 { "JP", 58 }, │ │ │ │ │ +318 { "KOI8-R", 65 }, │ │ │ │ │ +319 { "KOI8-RU", 66 }, │ │ │ │ │ +320 { "KOI8-T", 67 }, │ │ │ │ │ +321 { "KOI8-U", 68 }, │ │ │ │ │ +322 { "KOREAN", 59 }, │ │ │ │ │ +323 { "KSC_5601", 59 }, │ │ │ │ │ +324 { "KS_C_5601-1987", 59 }, │ │ │ │ │ +325 { "KS_C_5601-1989", 59 }, │ │ │ │ │ +326 { "L1", 0 }, │ │ │ │ │ +327 { "L2", 50 }, │ │ │ │ │ +328 { "L3", 51 }, │ │ │ │ │ +329 { "L4", 52 }, │ │ │ │ │ +330 { "L5", 57 }, │ │ │ │ │ +331 { "L6", 45 }, │ │ │ │ │ +332 { "L7", 46 }, │ │ │ │ │ +333 { "L8", 47 }, │ │ │ │ │ +334 { "LATIN1", 0 }, │ │ │ │ │ +335 { "LATIN2", 50 }, │ │ │ │ │ +336 { "LATIN3", 51 }, │ │ │ │ │ +337 { "LATIN4", 52 }, │ │ │ │ │ +338 { "LATIN5", 57 }, │ │ │ │ │ +339 { "LATIN6", 45 }, │ │ │ │ │ +340 { "LATIN7", 46 }, │ │ │ │ │ +341 { "LATIN8", 47 }, │ │ │ │ │ +342 { "MAC", 69 }, │ │ │ │ │ +343 { "MACARABIC", 70 }, │ │ │ │ │ +344 { "MACCENTRALEUROPE", 71 }, │ │ │ │ │ +345 { "MACCROATIAN", 72 }, │ │ │ │ │ +346 { "MACCYRILLIC", 73 }, │ │ │ │ │ +347 { "MACGREEK", 74 }, │ │ │ │ │ +348 { "MACHEBREW", 75 }, │ │ │ │ │ +349 { "MACICELAND", 76 }, │ │ │ │ │ +350 { "MACINTOSH", 69 }, │ │ │ │ │ +351 { "MACROMAN", 69 }, │ │ │ │ │ +352 { "MACROMANIA", 77 }, │ │ │ │ │ +353 { "MACTHAI", 78 }, │ │ │ │ │ +354 { "MACTURKISH", 79 }, │ │ │ │ │ +355 { "MACUKRAINE", 80 }, │ │ │ │ │ +356 { "MS-ANSI", 15 }, │ │ │ │ │ +357 { "MS-ARAB", 19 }, │ │ │ │ │ +358 { "MS-CYRL", 14 }, │ │ │ │ │ +359 { "MS-EE", 13 }, │ │ │ │ │ +360 { "MS-GREEK", 16 }, │ │ │ │ │ +361 { "MS-HEBR", 18 }, │ │ │ │ │ +362 { "MS-TURK", 17 }, │ │ │ │ │ +363 { "MS_KANJI", 84 }, │ │ │ │ │ +364 { "MULELAO-1", 81 }, │ │ │ │ │ +365 { "NEXTSTEP", 82 }, │ │ │ │ │ +366 { "R8", 83 }, │ │ │ │ │ +367 { "ROMAN8", 83 }, │ │ │ │ │ +368 { "SHIFT-JIS", 84 }, │ │ │ │ │ +369 { "SHIFT_JIS", 84 }, │ │ │ │ │ +370 { "SJIS", 84 }, │ │ │ │ │ +371 { "TCVN", 85 }, │ │ │ │ │ +372 { "TCVN-5712", 85 }, │ │ │ │ │ +373 { "TCVN5712-1", 85 }, │ │ │ │ │ +374 { "TCVN5712-1:1993", 85 }, │ │ │ │ │ +375 { "TIS-620", 61 }, │ │ │ │ │ +376 { "TIS620", 61 }, │ │ │ │ │ +377 { "TIS620-0", 61 }, │ │ │ │ │ +378 { "TIS620.2529-1", 61 }, │ │ │ │ │ +379 { "TIS620.2533-0", 61 }, │ │ │ │ │ +380 { "TIS620.2533-1", 61 }, │ │ │ │ │ +381 { "UCS-2BE", 3 }, │ │ │ │ │ +382 { "UCS-2LE", 2 }, │ │ │ │ │ +383 { "UCS-4BE", 86 }, │ │ │ │ │ +384 { "UCS-4LE", 87 }, │ │ │ │ │ +385 { "UHC", 30 }, │ │ │ │ │ +386 { "UNICODE-1-1", 3 }, │ │ │ │ │ +387 { "UNICODE-1-1-UTF-7", 93 }, │ │ │ │ │ +388 { "UNICODEBIG", 3 }, │ │ │ │ │ +389 { "UNICODELITTLE", 2 }, │ │ │ │ │ +390 { "US", 88 }, │ │ │ │ │ +391 { "US-ASCII", 88 }, │ │ │ │ │ +392 { "UTF-16BE", 89 }, │ │ │ │ │ +393 { "UTF-16LE", 90 }, │ │ │ │ │ +394 { "UTF-32BE", 91 }, │ │ │ │ │ +395 { "UTF-32LE", 92 }, │ │ │ │ │ +396 { "UTF-7", 93 }, │ │ │ │ │ +397 { "UTF-8", 1 }, │ │ │ │ │ +398 { "UTF7", 93 }, │ │ │ │ │ +399 { "UTF8", 1 }, │ │ │ │ │ +400 { "VISCII", 94 }, │ │ │ │ │ +401 { "VISCII1.1-1", 94 }, │ │ │ │ │ +402 { "WINBALTRIM", 20 }, │ │ │ │ │ +403 { "WINDOWS-1250", 13 }, │ │ │ │ │ +404 { "WINDOWS-1251", 14 }, │ │ │ │ │ +405 { "WINDOWS-1252", 15 }, │ │ │ │ │ +406 { "WINDOWS-1253", 16 }, │ │ │ │ │ +407 { "WINDOWS-1254", 17 }, │ │ │ │ │ +408 { "WINDOWS-1255", 18 }, │ │ │ │ │ +409 { "WINDOWS-1256", 19 }, │ │ │ │ │ +410 { "WINDOWS-1257", 20 }, │ │ │ │ │ +411 { "WINDOWS-1258", 21 }, │ │ │ │ │ +412 { "WINDOWS-874", 27 }, │ │ │ │ │ +413 { "X0201", 64 }, │ │ │ │ │ +414 { "X0208", 62 }, │ │ │ │ │ +415 { "X0212", 60 }, │ │ │ │ │ +416 { "big5", 5 }, │ │ │ │ │ +417 { "cp1250", 13 }, │ │ │ │ │ +418 { "cp1251", 14 }, │ │ │ │ │ +419 { "cp1252", 15 }, │ │ │ │ │ +420 { "cp1253", 16 }, │ │ │ │ │ +421 { "cp1254", 17 }, │ │ │ │ │ +422 { "cp1255", 18 }, │ │ │ │ │ +423 { "cp1256", 19 }, │ │ │ │ │ +424 { "cp1257", 20 }, │ │ │ │ │ +425 { "cp1258", 21 }, │ │ │ │ │ +426 { "cp437", 23 }, │ │ │ │ │ +427 { "cp850", 24 }, │ │ │ │ │ +428 { "cp862", 25 }, │ │ │ │ │ +429 { "cp866", 26 }, │ │ │ │ │ +430 { "cp874", 27 }, │ │ │ │ │ +431 { "eucJP", 32 }, │ │ │ │ │ +432 { "eucKR", 33 }, │ │ │ │ │ +433 { "eucTW", 34 }, │ │ │ │ │ +434 { "hp15CN", 8 }, │ │ │ │ │ +435 { "iso81", 0 }, │ │ │ │ │ +436 { "iso815", 48 }, │ │ │ │ │ +437 { "iso82", 50 }, │ │ │ │ │ +438 { "iso83", 51 }, │ │ │ │ │ +439 { "iso84", 52 }, │ │ │ │ │ +440 { "iso85", 53 }, │ │ │ │ │ +441 { "iso86", 54 }, │ │ │ │ │ +442 { "iso87", 55 }, │ │ │ │ │ +443 { "iso88", 56 }, │ │ │ │ │ +444 { "iso88591", 0 }, │ │ │ │ │ +445 { "iso885915", 48 }, │ │ │ │ │ +446 { "iso88592", 50 }, │ │ │ │ │ +447 { "iso88593", 51 }, │ │ │ │ │ +448 { "iso88594", 52 }, │ │ │ │ │ +449 { "iso88595", 53 }, │ │ │ │ │ +450 { "iso88596", 54 }, │ │ │ │ │ +451 { "iso88597", 55 }, │ │ │ │ │ +452 { "iso88598", 56 }, │ │ │ │ │ +453 { "iso88599", 57 }, │ │ │ │ │ +454 { "iso89", 57 }, │ │ │ │ │ +455 { "roma8", 83 }, │ │ │ │ │ +456 { "roman8", 83 }, │ │ │ │ │ +457 { "sjis", 84 }, │ │ │ │ │ +458 { "thai8", 61 }, │ │ │ │ │ +459 { "tis620", 61 }, │ │ │ │ │ +460 { "utf8", 1 }, │ │ │ │ │ +461 {NULL, 0} │ │ │ │ │ +462}; │ │ │ │ │ +463 │ │ │ │ │ +464#endif │ │ │ │ │ +465 │ │ │ │ │ +466enum { │ │ │ │ │ +467 TDS_CHARSET_ISO_8859_1 = 0, │ │ │ │ │ +468 TDS_CHARSET_UTF_8 = 1, │ │ │ │ │ +469 TDS_CHARSET_UCS_2LE = 2, │ │ │ │ │ +470 TDS_CHARSET_UCS_2BE = 3, │ │ │ │ │ +471 TDS_CHARSET_ARMSCII_8 = 4, │ │ │ │ │ +472 TDS_CHARSET_BIG_5 = 5, │ │ │ │ │ +473 TDS_CHARSET_BIG5_HKSCS = 6, │ │ │ │ │ +474 TDS_CHARSET_C99 = 7, │ │ │ │ │ +475 TDS_CHARSET_CHINESE = 8, │ │ │ │ │ +476 TDS_CHARSET_CN = 9, │ │ │ │ │ +477 TDS_CHARSET_CN_GB = 10, │ │ │ │ │ +478 TDS_CHARSET_CN_GB_ISOIR165 = 11, │ │ │ │ │ +479 TDS_CHARSET_CP1133 = 12, │ │ │ │ │ +480 TDS_CHARSET_CP1250 = 13, │ │ │ │ │ +481 TDS_CHARSET_CP1251 = 14, │ │ │ │ │ +482 TDS_CHARSET_CP1252 = 15, │ │ │ │ │ +483 TDS_CHARSET_CP1253 = 16, │ │ │ │ │ +484 TDS_CHARSET_CP1254 = 17, │ │ │ │ │ +485 TDS_CHARSET_CP1255 = 18, │ │ │ │ │ +486 TDS_CHARSET_CP1256 = 19, │ │ │ │ │ +487 TDS_CHARSET_CP1257 = 20, │ │ │ │ │ +488 TDS_CHARSET_CP1258 = 21, │ │ │ │ │ +489 TDS_CHARSET_CP1361 = 22, │ │ │ │ │ +490 TDS_CHARSET_CP437 = 23, │ │ │ │ │ +491 TDS_CHARSET_CP850 = 24, │ │ │ │ │ +492 TDS_CHARSET_CP862 = 25, │ │ │ │ │ +493 TDS_CHARSET_CP866 = 26, │ │ │ │ │ +494 TDS_CHARSET_CP874 = 27, │ │ │ │ │ +495 TDS_CHARSET_CP932 = 28, │ │ │ │ │ +496 TDS_CHARSET_CP936 = 29, │ │ │ │ │ +497 TDS_CHARSET_CP949 = 30, │ │ │ │ │ +498 TDS_CHARSET_CP950 = 31, │ │ │ │ │ +499 TDS_CHARSET_EUC_JP = 32, │ │ │ │ │ +500 TDS_CHARSET_EUC_KR = 33, │ │ │ │ │ +501 TDS_CHARSET_EUC_TW = 34, │ │ │ │ │ +502 TDS_CHARSET_GB18030 = 35, │ │ │ │ │ +503 TDS_CHARSET_GEORGIAN_ACADEMY = 36, │ │ │ │ │ +504 TDS_CHARSET_GEORGIAN_PS = 37, │ │ │ │ │ +505 TDS_CHARSET_HZ = 38, │ │ │ │ │ +506 TDS_CHARSET_ISO_2022_CN = 39, │ │ │ │ │ +507 TDS_CHARSET_ISO_2022_CN_EXT = 40, │ │ │ │ │ +508 TDS_CHARSET_ISO_2022_JP = 41, │ │ │ │ │ +509 TDS_CHARSET_ISO_2022_JP_1 = 42, │ │ │ │ │ +510 TDS_CHARSET_ISO_2022_JP_2 = 43, │ │ │ │ │ +511 TDS_CHARSET_ISO_2022_KR = 44, │ │ │ │ │ +512 TDS_CHARSET_ISO_8859_10 = 45, │ │ │ │ │ +513 TDS_CHARSET_ISO_8859_13 = 46, │ │ │ │ │ +514 TDS_CHARSET_ISO_8859_14 = 47, │ │ │ │ │ +515 TDS_CHARSET_ISO_8859_15 = 48, │ │ │ │ │ +516 TDS_CHARSET_ISO_8859_16 = 49, │ │ │ │ │ +517 TDS_CHARSET_ISO_8859_2 = 50, │ │ │ │ │ +518 TDS_CHARSET_ISO_8859_3 = 51, │ │ │ │ │ +519 TDS_CHARSET_ISO_8859_4 = 52, │ │ │ │ │ +520 TDS_CHARSET_ISO_8859_5 = 53, │ │ │ │ │ +521 TDS_CHARSET_ISO_8859_6 = 54, │ │ │ │ │ +522 TDS_CHARSET_ISO_8859_7 = 55, │ │ │ │ │ +523 TDS_CHARSET_ISO_8859_8 = 56, │ │ │ │ │ +524 TDS_CHARSET_ISO_8859_9 = 57, │ │ │ │ │ +525 TDS_CHARSET_ISO_IR_14 = 58, │ │ │ │ │ +526 TDS_CHARSET_ISO_IR_149 = 59, │ │ │ │ │ +527 TDS_CHARSET_ISO_IR_159 = 60, │ │ │ │ │ +528 TDS_CHARSET_ISO_IR_166 = 61, │ │ │ │ │ +529 TDS_CHARSET_ISO_IR_87 = 62, │ │ │ │ │ +530 TDS_CHARSET_JAVA = 63, │ │ │ │ │ +531 TDS_CHARSET_JISX0201_1976 = 64, │ │ │ │ │ +532 TDS_CHARSET_KOI8_R = 65, │ │ │ │ │ +533 TDS_CHARSET_KOI8_RU = 66, │ │ │ │ │ +534 TDS_CHARSET_KOI8_T = 67, │ │ │ │ │ +535 TDS_CHARSET_KOI8_U = 68, │ │ │ │ │ +536 TDS_CHARSET_MAC = 69, │ │ │ │ │ +537 TDS_CHARSET_MACARABIC = 70, │ │ │ │ │ +538 TDS_CHARSET_MACCENTRALEUROPE = 71, │ │ │ │ │ +539 TDS_CHARSET_MACCROATIAN = 72, │ │ │ │ │ +540 TDS_CHARSET_MACCYRILLIC = 73, │ │ │ │ │ +541 TDS_CHARSET_MACGREEK = 74, │ │ │ │ │ +542 TDS_CHARSET_MACHEBREW = 75, │ │ │ │ │ +543 TDS_CHARSET_MACICELAND = 76, │ │ │ │ │ +544 TDS_CHARSET_MACROMANIA = 77, │ │ │ │ │ +545 TDS_CHARSET_MACTHAI = 78, │ │ │ │ │ +546 TDS_CHARSET_MACTURKISH = 79, │ │ │ │ │ +547 TDS_CHARSET_MACUKRAINE = 80, │ │ │ │ │ +548 TDS_CHARSET_MULELAO_1 = 81, │ │ │ │ │ +549 TDS_CHARSET_NEXTSTEP = 82, │ │ │ │ │ +550 TDS_CHARSET_ROMAN8 = 83, │ │ │ │ │ +551 TDS_CHARSET_SJIS = 84, │ │ │ │ │ +552 TDS_CHARSET_TCVN = 85, │ │ │ │ │ +553 TDS_CHARSET_UCS_4BE = 86, │ │ │ │ │ +554 TDS_CHARSET_UCS_4LE = 87, │ │ │ │ │ +555 TDS_CHARSET_US_ASCII = 88, │ │ │ │ │ +556 TDS_CHARSET_UTF_16BE = 89, │ │ │ │ │ +557 TDS_CHARSET_UTF_16LE = 90, │ │ │ │ │ +558 TDS_CHARSET_UTF_32BE = 91, │ │ │ │ │ +559 TDS_CHARSET_UTF_32LE = 92, │ │ │ │ │ +560 TDS_CHARSET_UTF_7 = 93, │ │ │ │ │ +561 TDS_CHARSET_VISCII = 94, │ │ │ │ │ +562 TDS_NUM_CHARSETS = 95 │ │ │ │ │ +563}; │ │ │ │ │ +564 │ │ │ │ │ +___c_h_a_r_a_c_t_e_r___s_e_t___a_l_i_a_s │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:73 │ │ │ │ │ +_t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ +Information relevant to libiconv. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:618 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00383_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/sysdep_private.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/string.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,295 +70,134 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
sysdep_private.h
│ │ │ │ +
string.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │ -
3 * Copyright (C) 2010 Frediano Ziglio
│ │ │ │ -
4 *
│ │ │ │ -
5 * This library is free software; you can redistribute it and/or
│ │ │ │ -
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
7 * License as published by the Free Software Foundation; either
│ │ │ │ -
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
9 *
│ │ │ │ -
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
13 * Library General Public License for more details.
│ │ │ │ -
14 *
│ │ │ │ -
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
16 * License along with this library; if not, write to the
│ │ │ │ -
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
18 * Boston, MA 02111-1307, USA.
│ │ │ │ -
19 */
│ │ │ │ -
20
│ │ │ │ -
21#ifndef _tds_sysdep_private_h_
│ │ │ │ -
22#define _tds_sysdep_private_h_
│ │ │ │ -
23
│ │ │ │ -
24#define TDS_ADDITIONAL_SPACE 16
│ │ │ │ -
25
│ │ │ │ -
26#ifdef MSG_NOSIGNAL
│ │ │ │ -
27# define TDS_NOSIGNAL MSG_NOSIGNAL
│ │ │ │ -
28#else
│ │ │ │ -
29# define TDS_NOSIGNAL 0L
│ │ │ │ -
30#endif
│ │ │ │ -
31
│ │ │ │ -
32#ifdef __cplusplus
│ │ │ │ -
33extern "C"
│ │ │ │ -
34{
│ │ │ │ -
35#if 0
│ │ │ │ -
36}
│ │ │ │ -
37#endif
│ │ │ │ -
38#endif
│ │ │ │ -
39
│ │ │ │ -
40#ifdef __INCvxWorksh
│ │ │ │ -
41#include <ioLib.h> /* for FIONBIO */
│ │ │ │ -
42#endif /* __INCvxWorksh */
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _tdsstring_h_
│ │ │ │ +
21#define _tdsstring_h_
│ │ │ │ +
22
│ │ │ │ +
23#include <freetds/macros.h>
│ │ │ │ +
24
│ │ │ │ +
25#include <freetds/pushvis.h>
│ │ │ │ +
26
│ │ │ │ +
│ │ │ │ +
36typedef struct tds_dstr {
│ │ │ │ +
37 size_t dstr_size;
│ │ │ │ +
38 char dstr_s[1];
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
40
│ │ │ │ +
42extern const struct tds_dstr tds_str_empty;
│ │ │ │
43
│ │ │ │ -
44#if defined(DOS32X)
│ │ │ │ -
45#define READSOCKET(a,b,c) recv((a), (b), (c), TDS_NOSIGNAL)
│ │ │ │ -
46#define WRITESOCKET(a,b,c) send((a), (b), (c), TDS_NOSIGNAL)
│ │ │ │ -
47#define CLOSESOCKET(a) closesocket((a))
│ │ │ │ -
48#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (char*)(c))
│ │ │ │ -
49#define SOCKLEN_T int
│ │ │ │ -
50#define select select_s
│ │ │ │ -
51typedef int pid_t;
│ │ │ │ -
52#define strcasecmp stricmp
│ │ │ │ -
53#define strncasecmp strnicmp
│ │ │ │ -
54/* TODO this has nothing to do with ip ... */
│ │ │ │ -
55#define getpid() _gethostid()
│ │ │ │ -
56#endif /* defined(DOS32X) */
│ │ │ │ +
49#define DSTR_INITIALIZER ((struct tds_dstr*) &tds_str_empty)
│ │ │ │ +
50
│ │ │ │ +
52static inline void
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
54{
│ │ │ │ +
55 *(s) = DSTR_INITIALIZER;
│ │ │ │ +
56}
│ │ │ │ +
│ │ │ │
57
│ │ │ │ -
58#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(_WIN64)
│ │ │ │ -
59#include <freetds/windows.h>
│ │ │ │ -
60#define READSOCKET(a,b,c) recv((a), (char *) (b), (c), TDS_NOSIGNAL)
│ │ │ │ -
61#define WRITESOCKET(a,b,c) send((a), (const char *) (b), (c), TDS_NOSIGNAL)
│ │ │ │ -
62#define CLOSESOCKET(a) closesocket((a))
│ │ │ │ -
63#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (c))
│ │ │ │ -
64#define SOCKLEN_T int
│ │ │ │ -
65int tds_socket_init(void);
│ │ │ │ -
66#define INITSOCKET() tds_socket_init()
│ │ │ │ -
67void tds_socket_done(void);
│ │ │ │ -
68#define DONESOCKET() tds_socket_done()
│ │ │ │ -
69#define NETDB_REENTRANT 1 /* BSD-style netdb interface is reentrant */
│ │ │ │ -
70
│ │ │ │ -
71#define TDSSOCK_EINTR WSAEINTR
│ │ │ │ -
72#define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK
│ │ │ │ -
73#define TDSSOCK_ETIMEDOUT WSAETIMEDOUT
│ │ │ │ -
74#define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK)
│ │ │ │ -
75#define TDSSOCK_ECONNRESET WSAECONNRESET
│ │ │ │ -
76#define sock_errno WSAGetLastError()
│ │ │ │ -
77#define set_sock_errno(err) WSASetLastError(err)
│ │ │ │ -
78#define sock_strerror(n) tds_prwsaerror(n)
│ │ │ │ -
79#define sock_strerror_free(s) tds_prwsaerror_free(s)
│ │ │ │ -
80#ifndef __MINGW32__
│ │ │ │ -
81typedef DWORD pid_t;
│ │ │ │ -
82#endif
│ │ │ │ -
83#undef strcasecmp
│ │ │ │ -
84#define strcasecmp stricmp
│ │ │ │ -
85#undef strncasecmp
│ │ │ │ -
86#define strncasecmp strnicmp
│ │ │ │ -
87#if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF)
│ │ │ │ -
88#define snprintf _snprintf
│ │ │ │ -
89#endif
│ │ │ │ -
90
│ │ │ │ -
91#ifndef WIN32
│ │ │ │ -
92#define WIN32 1
│ │ │ │ -
93#endif
│ │ │ │ -
94
│ │ │ │ -
95#if defined(_WIN64) && !defined(WIN64)
│ │ │ │ -
96#define WIN64 1
│ │ │ │ -
97#endif
│ │ │ │ -
98
│ │ │ │ -
99#define TDS_SDIR_SEPARATOR "\\"
│ │ │ │ -
100
│ │ │ │ -
101/* use macros to use new style names */
│ │ │ │ -
102#if defined(__MSVCRT__) || defined(_MSC_VER)
│ │ │ │ -
103/* Use API as always present and not causing problems */
│ │ │ │ -
104#undef getpid
│ │ │ │ -
105#define getpid() GetCurrentProcessId()
│ │ │ │ -
106#define strdup(s) _strdup(s)
│ │ │ │ -
107#define unlink(f) _unlink(f)
│ │ │ │ -
108#define putenv(s) _putenv(s)
│ │ │ │ -
109#undef fileno
│ │ │ │ -
110#define fileno(f) _fileno(f)
│ │ │ │ -
111#undef close
│ │ │ │ -
112#define close(f) _close(f)
│ │ │ │ -
113#undef open
│ │ │ │ -
114#define open(fn,...) _open(fn,__VA_ARGS__)
│ │ │ │ -
115#undef dup2
│ │ │ │ -
116#define dup2(o,n) _dup2(o,n)
│ │ │ │ -
117#define stricmp(s1,s2) _stricmp(s1,s2)
│ │ │ │ -
118#define strnicmp(s1,s2,n) _strnicmp(s1,s2,n)
│ │ │ │ -
119#endif
│ │ │ │ -
120
│ │ │ │ -
121#endif /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */
│ │ │ │ -
122
│ │ │ │ -
123#ifndef sock_errno
│ │ │ │ -
124#define sock_errno errno
│ │ │ │ -
125#endif
│ │ │ │ -
126
│ │ │ │ -
127#ifndef set_sock_errno
│ │ │ │ -
128#define set_sock_errno(err) do { errno = (err); } while(0)
│ │ │ │ -
129#endif
│ │ │ │ -
130
│ │ │ │ -
131#ifndef sock_strerror
│ │ │ │ -
132#define sock_strerror(n) strerror(n)
│ │ │ │ -
133#define sock_strerror_free(s) do {} while(0)
│ │ │ │ -
134#endif
│ │ │ │ -
135
│ │ │ │ -
136#ifndef TDSSOCK_EINTR
│ │ │ │ -
137#define TDSSOCK_EINTR EINTR
│ │ │ │ -
138#endif
│ │ │ │ -
139
│ │ │ │ -
140#ifndef TDSSOCK_EINPROGRESS
│ │ │ │ -
141#define TDSSOCK_EINPROGRESS EINPROGRESS
│ │ │ │ -
142#endif
│ │ │ │ -
143
│ │ │ │ -
144#ifndef TDSSOCK_ETIMEDOUT
│ │ │ │ -
145#define TDSSOCK_ETIMEDOUT ETIMEDOUT
│ │ │ │ -
146#endif
│ │ │ │ -
147
│ │ │ │ -
148#ifndef TDSSOCK_WOULDBLOCK
│ │ │ │ -
149# if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK
│ │ │ │ -
150# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK)
│ │ │ │ -
151# else
│ │ │ │ -
152# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN)
│ │ │ │ -
153# endif
│ │ │ │ -
154#endif
│ │ │ │ -
155
│ │ │ │ -
156#ifndef TDSSOCK_ECONNRESET
│ │ │ │ -
157#define TDSSOCK_ECONNRESET ECONNRESET
│ │ │ │ -
158#endif
│ │ │ │ -
159
│ │ │ │ -
160#ifndef INITSOCKET
│ │ │ │ -
161#define INITSOCKET() 0
│ │ │ │ -
162#endif /* !INITSOCKET */
│ │ │ │ -
163
│ │ │ │ -
164#ifndef DONESOCKET
│ │ │ │ -
165#define DONESOCKET() do { } while(0)
│ │ │ │ -
166#endif /* !DONESOCKET */
│ │ │ │ -
167
│ │ │ │ -
168#ifndef READSOCKET
│ │ │ │ -
169# ifdef MSG_NOSIGNAL
│ │ │ │ -
170# define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL)
│ │ │ │ -
171# else
│ │ │ │ -
172# define READSOCKET(s,b,l) read((s), (b), (l))
│ │ │ │ -
173# endif
│ │ │ │ -
174#endif /* !READSOCKET */
│ │ │ │ -
175
│ │ │ │ -
176#ifndef WRITESOCKET
│ │ │ │ -
177# ifdef MSG_NOSIGNAL
│ │ │ │ -
178# define WRITESOCKET(s,b,l) send((s), (b), (l), MSG_NOSIGNAL)
│ │ │ │ -
179# else
│ │ │ │ -
180# define WRITESOCKET(s,b,l) write((s), (b), (l))
│ │ │ │ -
181# endif
│ │ │ │ -
182#endif /* !WRITESOCKET */
│ │ │ │ -
183
│ │ │ │ -
184#ifndef CLOSESOCKET
│ │ │ │ -
185#define CLOSESOCKET(s) close((s))
│ │ │ │ -
186#endif /* !CLOSESOCKET */
│ │ │ │ -
187
│ │ │ │ -
188#ifndef IOCTLSOCKET
│ │ │ │ -
189#define IOCTLSOCKET(s,b,l) ioctl((s), (b), (l))
│ │ │ │ -
190#endif /* !IOCTLSOCKET */
│ │ │ │ -
191
│ │ │ │ -
192#ifndef SOCKLEN_T
│ │ │ │ -
193# define SOCKLEN_T socklen_t
│ │ │ │ -
194#endif
│ │ │ │ -
195
│ │ │ │ -
196#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32)
│ │ │ │ -
197typedef int TDS_SYS_SOCKET;
│ │ │ │ -
198#define INVALID_SOCKET -1
│ │ │ │ -
199#define TDS_IS_SOCKET_INVALID(s) ((s) < 0)
│ │ │ │ -
200#else
│ │ │ │ -
201typedef SOCKET TDS_SYS_SOCKET;
│ │ │ │ -
202#define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET)
│ │ │ │ -
203#endif
│ │ │ │ -
204
│ │ │ │ -
205#define tds_accept accept
│ │ │ │ -
206#define tds_getpeername getpeername
│ │ │ │ -
207#define tds_getsockopt getsockopt
│ │ │ │ -
208#define tds_getsockname getsockname
│ │ │ │ -
209#define tds_recvfrom recvfrom
│ │ │ │ -
210
│ │ │ │ -
211#if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4
│ │ │ │ -
212# if HAVE__XPG_ACCEPT
│ │ │ │ -
213# undef tds_accept
│ │ │ │ -
214# define tds_accept _xpg_accept
│ │ │ │ -
215# elif HAVE___ACCEPT
│ │ │ │ -
216# undef tds_accept
│ │ │ │ -
217# define tds_accept __accept
│ │ │ │ -
218# endif
│ │ │ │ -
219# if HAVE__XPG_GETPEERNAME
│ │ │ │ -
220# undef tds_getpeername
│ │ │ │ -
221# define tds_getpeername _xpg_getpeername
│ │ │ │ -
222# elif HAVE___GETPEERNAME
│ │ │ │ -
223# undef tds_getpeername
│ │ │ │ -
224# define tds_getpeername __getpeername
│ │ │ │ -
225# endif
│ │ │ │ -
226# if HAVE__XPG_GETSOCKOPT
│ │ │ │ -
227# undef tds_getsockopt
│ │ │ │ -
228# define tds_getsockopt _xpg_getsockopt
│ │ │ │ -
229# elif HAVE___GETSOCKOPT
│ │ │ │ -
230# undef tds_getsockopt
│ │ │ │ -
231# define tds_getsockopt __getsockopt
│ │ │ │ -
232# endif
│ │ │ │ -
233# if HAVE__XPG_GETSOCKNAME
│ │ │ │ -
234# undef tds_getsockname
│ │ │ │ -
235# define tds_getsockname _xpg_getsockname
│ │ │ │ -
236# elif HAVE___GETSOCKNAME
│ │ │ │ -
237# undef tds_getsockname
│ │ │ │ -
238# define tds_getsockname __getsockname
│ │ │ │ -
239# endif
│ │ │ │ -
240# if HAVE__XPG_RECVFROM
│ │ │ │ -
241# undef tds_recvfrom
│ │ │ │ -
242# define tds_recvfrom _xpg_recvfrom
│ │ │ │ -
243# elif HAVE___RECVFROM
│ │ │ │ -
244# undef tds_recvfrom
│ │ │ │ -
245# define tds_recvfrom __recvfrom
│ │ │ │ -
246# endif
│ │ │ │ -
247#endif
│ │ │ │ -
248
│ │ │ │ -
249#ifndef TDS_SDIR_SEPARATOR
│ │ │ │ -
250#define TDS_SDIR_SEPARATOR "/"
│ │ │ │ -
251#endif /* !TDS_SDIR_SEPARATOR */
│ │ │ │ -
252
│ │ │ │ -
253#ifdef HAVE_INTTYPES_H
│ │ │ │ -
254#include <inttypes.h>
│ │ │ │ -
255#endif
│ │ │ │ -
256
│ │ │ │ -
257#ifndef PRId64
│ │ │ │ -
258#define PRId64 TDS_I64_PREFIX "d"
│ │ │ │ -
259#endif
│ │ │ │ -
260#ifndef PRIu64
│ │ │ │ -
261#define PRIu64 TDS_I64_PREFIX "u"
│ │ │ │ -
262#endif
│ │ │ │ -
263#ifndef PRIx64
│ │ │ │ -
264#define PRIx64 TDS_I64_PREFIX "x"
│ │ │ │ -
265#endif
│ │ │ │ -
266
│ │ │ │ -
267#ifdef __cplusplus
│ │ │ │ -
268#if 0
│ │ │ │ -
269{
│ │ │ │ -
270#endif
│ │ │ │ -
271}
│ │ │ │ -
272#endif
│ │ │ │ -
273
│ │ │ │ -
274#endif /* _tds_sysdep_private_h_ */
│ │ │ │ +
59static inline int
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
61{
│ │ │ │ +
62 return (*s)->dstr_size == 0;
│ │ │ │ +
63}
│ │ │ │ +
│ │ │ │ +
64
│ │ │ │ +
70static inline char *
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
72{
│ │ │ │ +
73 return (*s)->dstr_s;
│ │ │ │ +
74}
│ │ │ │ +
│ │ │ │ +
75
│ │ │ │ +
77static inline const char *
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
79{
│ │ │ │ +
80 return (*s)->dstr_s;
│ │ │ │ +
81}
│ │ │ │ +
│ │ │ │ +
82
│ │ │ │ +
84static inline size_t
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
86{
│ │ │ │ +
87 return (*s)->dstr_size;
│ │ │ │ +
88}
│ │ │ │ +
│ │ │ │ +
89
│ │ │ │ +
│ │ │ │ +
91#define tds_dstr_empty(s) \
│ │ │ │ +
92 tds_dstr_free(s)
│ │ │ │ +
│ │ │ │ +
93
│ │ │ │ +
94void tds_dstr_zero(DSTR * s);
│ │ │ │ +
95void tds_dstr_free(DSTR * s);
│ │ │ │ +
96
│ │ │ │ +
97DSTR* tds_dstr_dup(DSTR * s, const DSTR * src) TDS_WUR;
│ │ │ │ +
98DSTR* tds_dstr_copy(DSTR * s, const char *src) TDS_WUR;
│ │ │ │ +
99DSTR* tds_dstr_copyn(DSTR * s, const char *src, size_t length) TDS_WUR;
│ │ │ │ +
100DSTR* tds_dstr_set(DSTR * s, char *src) TDS_WUR;
│ │ │ │ +
101
│ │ │ │ +
102DSTR* tds_dstr_setlen(DSTR *s, size_t length);
│ │ │ │ +
103DSTR* tds_dstr_alloc(DSTR *s, size_t length) TDS_WUR;
│ │ │ │ +
104
│ │ │ │ +
107#include <freetds/popvis.h>
│ │ │ │ +
108
│ │ │ │ +
109#endif /* _tdsstring_h_ */
│ │ │ │ +
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition tdsstring.c:145
│ │ │ │ +
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition string.h:60
│ │ │ │ +
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition tdsstring.c:55
│ │ │ │ +
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition string.h:85
│ │ │ │ +
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition tdsstring.c:134
│ │ │ │ +
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition string.h:49
│ │ │ │ +
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition tdsstring.c:77
│ │ │ │ +
const struct tds_dstr tds_str_empty
Internal representation for an empty string.
Definition tdsstring.c:45
│ │ │ │ +
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition tdsstring.c:165
│ │ │ │ +
static void tds_dstr_init(DSTR *s)
init a string with empty
Definition string.h:53
│ │ │ │ +
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition tdsstring.c:107
│ │ │ │ +
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition string.h:78
│ │ │ │ +
void tds_dstr_free(DSTR *s)
free string
Definition tdsstring.c:62
│ │ │ │ +
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition tdsstring.c:122
│ │ │ │ +
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition string.h:71
│ │ │ │ +
struct tds_dstr * DSTR
Structure to hold a string.
│ │ │ │ +
Structure to hold a string.
Definition string.h:36
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,284 +1,158 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -sysdep_private.h │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +string.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ -3 * Copyright (C) 2010 Frediano Ziglio │ │ │ │ │ -4 * │ │ │ │ │ -5 * This library is free software; you can redistribute it and/or │ │ │ │ │ -6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -7 * License as published by the Free Software Foundation; either │ │ │ │ │ -8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -9 * │ │ │ │ │ -10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -13 * Library General Public License for more details. │ │ │ │ │ -14 * │ │ │ │ │ -15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -16 * License along with this library; if not, write to the │ │ │ │ │ -17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -18 * Boston, MA 02111-1307, USA. │ │ │ │ │ -19 */ │ │ │ │ │ -20 │ │ │ │ │ -21#ifndef _tds_sysdep_private_h_ │ │ │ │ │ -22#define _tds_sysdep_private_h_ │ │ │ │ │ -23 │ │ │ │ │ -24#define TDS_ADDITIONAL_SPACE 16 │ │ │ │ │ -25 │ │ │ │ │ -26#ifdef MSG_NOSIGNAL │ │ │ │ │ -27# define TDS_NOSIGNAL MSG_NOSIGNAL │ │ │ │ │ -28#else │ │ │ │ │ -29# define TDS_NOSIGNAL 0L │ │ │ │ │ -30#endif │ │ │ │ │ -31 │ │ │ │ │ -32#ifdef __cplusplus │ │ │ │ │ -33extern "C" │ │ │ │ │ -34{ │ │ │ │ │ -35#if 0 │ │ │ │ │ -36} │ │ │ │ │ -37#endif │ │ │ │ │ -38#endif │ │ │ │ │ -39 │ │ │ │ │ -40#ifdef __INCvxWorksh │ │ │ │ │ -41#include /* for FIONBIO */ │ │ │ │ │ -42#endif /* __INCvxWorksh */ │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _tdsstring_h_ │ │ │ │ │ +21#define _tdsstring_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#include │ │ │ │ │ +24 │ │ │ │ │ +25#include │ │ │ │ │ +26 │ │ │ │ │ +_3_6typedef struct _t_d_s___d_s_t_r { │ │ │ │ │ +37 size_t dstr_size; │ │ │ │ │ +38 char dstr_s[1]; │ │ │ │ │ +_3_9} *_D_S_T_R; │ │ │ │ │ +40 │ │ │ │ │ +42extern const struct _t_d_s___d_s_t_r _t_d_s___s_t_r___e_m_p_t_y; │ │ │ │ │ 43 │ │ │ │ │ -44#if defined(DOS32X) │ │ │ │ │ -45#define READSOCKET(a,b,c) recv((a), (b), (c), TDS_NOSIGNAL) │ │ │ │ │ -46#define WRITESOCKET(a,b,c) send((a), (b), (c), TDS_NOSIGNAL) │ │ │ │ │ -47#define CLOSESOCKET(a) closesocket((a)) │ │ │ │ │ -48#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (char*)(c)) │ │ │ │ │ -49#define SOCKLEN_T int │ │ │ │ │ -50#define select select_s │ │ │ │ │ -51typedef int pid_t; │ │ │ │ │ -52#define strcasecmp stricmp │ │ │ │ │ -53#define strncasecmp strnicmp │ │ │ │ │ -54/* TODO this has nothing to do with ip ... */ │ │ │ │ │ -55#define getpid() _gethostid() │ │ │ │ │ -56#endif /* defined(DOS32X) */ │ │ │ │ │ +_4_9#define DSTR_INITIALIZER ((struct tds_dstr*) &tds_str_empty) │ │ │ │ │ +50 │ │ │ │ │ +52static inline void │ │ │ │ │ +_5_3_t_d_s___d_s_t_r___i_n_i_t(_D_S_T_R * s) │ │ │ │ │ +54{ │ │ │ │ │ +55 *(s) = _D_S_T_R___I_N_I_T_I_A_L_I_Z_E_R; │ │ │ │ │ +56} │ │ │ │ │ 57 │ │ │ │ │ -58#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined │ │ │ │ │ -(_WIN64) │ │ │ │ │ -59#include │ │ │ │ │ -60#define READSOCKET(a,b,c) recv((a), (char *) (b), (c), TDS_NOSIGNAL) │ │ │ │ │ -61#define WRITESOCKET(a,b,c) send((a), (const char *) (b), (c), TDS_NOSIGNAL) │ │ │ │ │ -62#define CLOSESOCKET(a) closesocket((a)) │ │ │ │ │ -63#define IOCTLSOCKET(a,b,c) ioctlsocket((a), (b), (c)) │ │ │ │ │ -64#define SOCKLEN_T int │ │ │ │ │ -65int tds_socket_init(void); │ │ │ │ │ -66#define INITSOCKET() tds_socket_init() │ │ │ │ │ -67void tds_socket_done(void); │ │ │ │ │ -68#define DONESOCKET() tds_socket_done() │ │ │ │ │ -69#define NETDB_REENTRANT 1 /* BSD-style netdb interface is reentrant */ │ │ │ │ │ -70 │ │ │ │ │ -71#define TDSSOCK_EINTR WSAEINTR │ │ │ │ │ -72#define TDSSOCK_EINPROGRESS WSAEWOULDBLOCK │ │ │ │ │ -73#define TDSSOCK_ETIMEDOUT WSAETIMEDOUT │ │ │ │ │ -74#define TDSSOCK_WOULDBLOCK(e) ((e)==WSAEWOULDBLOCK) │ │ │ │ │ -75#define TDSSOCK_ECONNRESET WSAECONNRESET │ │ │ │ │ -76#define sock_errno WSAGetLastError() │ │ │ │ │ -77#define set_sock_errno(err) WSASetLastError(err) │ │ │ │ │ -78#define sock_strerror(n) tds_prwsaerror(n) │ │ │ │ │ -79#define sock_strerror_free(s) tds_prwsaerror_free(s) │ │ │ │ │ -80#ifndef __MINGW32__ │ │ │ │ │ -81typedef DWORD pid_t; │ │ │ │ │ -82#endif │ │ │ │ │ -83#undef strcasecmp │ │ │ │ │ -84#define strcasecmp stricmp │ │ │ │ │ -85#undef strncasecmp │ │ │ │ │ -86#define strncasecmp strnicmp │ │ │ │ │ -87#if defined(HAVE__SNPRINTF) && !defined(HAVE_SNPRINTF) │ │ │ │ │ -88#define snprintf _snprintf │ │ │ │ │ -89#endif │ │ │ │ │ -90 │ │ │ │ │ -91#ifndef WIN32 │ │ │ │ │ -92#define WIN32 1 │ │ │ │ │ -93#endif │ │ │ │ │ -94 │ │ │ │ │ -95#if defined(_WIN64) && !defined(WIN64) │ │ │ │ │ -96#define WIN64 1 │ │ │ │ │ -97#endif │ │ │ │ │ -98 │ │ │ │ │ -99#define TDS_SDIR_SEPARATOR "\\" │ │ │ │ │ -100 │ │ │ │ │ -101/* use macros to use new style names */ │ │ │ │ │ -102#if defined(__MSVCRT__) || defined(_MSC_VER) │ │ │ │ │ -103/* Use API as always present and not causing problems */ │ │ │ │ │ -104#undef getpid │ │ │ │ │ -105#define getpid() GetCurrentProcessId() │ │ │ │ │ -106#define strdup(s) _strdup(s) │ │ │ │ │ -107#define unlink(f) _unlink(f) │ │ │ │ │ -108#define putenv(s) _putenv(s) │ │ │ │ │ -109#undef fileno │ │ │ │ │ -110#define fileno(f) _fileno(f) │ │ │ │ │ -111#undef close │ │ │ │ │ -112#define close(f) _close(f) │ │ │ │ │ -113#undef open │ │ │ │ │ -114#define open(fn,...) _open(fn,__VA_ARGS__) │ │ │ │ │ -115#undef dup2 │ │ │ │ │ -116#define dup2(o,n) _dup2(o,n) │ │ │ │ │ -117#define stricmp(s1,s2) _stricmp(s1,s2) │ │ │ │ │ -118#define strnicmp(s1,s2,n) _strnicmp(s1,s2,n) │ │ │ │ │ -119#endif │ │ │ │ │ -120 │ │ │ │ │ -121#endif /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */ │ │ │ │ │ -122 │ │ │ │ │ -123#ifndef sock_errno │ │ │ │ │ -124#define sock_errno errno │ │ │ │ │ -125#endif │ │ │ │ │ -126 │ │ │ │ │ -127#ifndef set_sock_errno │ │ │ │ │ -128#define set_sock_errno(err) do { errno = (err); } while(0) │ │ │ │ │ -129#endif │ │ │ │ │ -130 │ │ │ │ │ -131#ifndef sock_strerror │ │ │ │ │ -132#define sock_strerror(n) strerror(n) │ │ │ │ │ -133#define sock_strerror_free(s) do {} while(0) │ │ │ │ │ -134#endif │ │ │ │ │ -135 │ │ │ │ │ -136#ifndef TDSSOCK_EINTR │ │ │ │ │ -137#define TDSSOCK_EINTR EINTR │ │ │ │ │ -138#endif │ │ │ │ │ -139 │ │ │ │ │ -140#ifndef TDSSOCK_EINPROGRESS │ │ │ │ │ -141#define TDSSOCK_EINPROGRESS EINPROGRESS │ │ │ │ │ -142#endif │ │ │ │ │ -143 │ │ │ │ │ -144#ifndef TDSSOCK_ETIMEDOUT │ │ │ │ │ -145#define TDSSOCK_ETIMEDOUT ETIMEDOUT │ │ │ │ │ -146#endif │ │ │ │ │ -147 │ │ │ │ │ -148#ifndef TDSSOCK_WOULDBLOCK │ │ │ │ │ -149# if defined(EWOULDBLOCK) && EAGAIN != EWOULDBLOCK │ │ │ │ │ -150# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN||(e)==EWOULDBLOCK) │ │ │ │ │ -151# else │ │ │ │ │ -152# define TDSSOCK_WOULDBLOCK(e) ((e)==EAGAIN) │ │ │ │ │ -153# endif │ │ │ │ │ -154#endif │ │ │ │ │ -155 │ │ │ │ │ -156#ifndef TDSSOCK_ECONNRESET │ │ │ │ │ -157#define TDSSOCK_ECONNRESET ECONNRESET │ │ │ │ │ -158#endif │ │ │ │ │ -159 │ │ │ │ │ -160#ifndef INITSOCKET │ │ │ │ │ -161#define INITSOCKET() 0 │ │ │ │ │ -162#endif /* !INITSOCKET */ │ │ │ │ │ -163 │ │ │ │ │ -164#ifndef DONESOCKET │ │ │ │ │ -165#define DONESOCKET() do { } while(0) │ │ │ │ │ -166#endif /* !DONESOCKET */ │ │ │ │ │ -167 │ │ │ │ │ -168#ifndef READSOCKET │ │ │ │ │ -169# ifdef MSG_NOSIGNAL │ │ │ │ │ -170# define READSOCKET(s,b,l) recv((s), (b), (l), MSG_NOSIGNAL) │ │ │ │ │ -171# else │ │ │ │ │ -172# define READSOCKET(s,b,l) read((s), (b), (l)) │ │ │ │ │ -173# endif │ │ │ │ │ -174#endif /* !READSOCKET */ │ │ │ │ │ -175 │ │ │ │ │ -176#ifndef WRITESOCKET │ │ │ │ │ -177# ifdef MSG_NOSIGNAL │ │ │ │ │ -178# define WRITESOCKET(s,b,l) send((s), (b), (l), MSG_NOSIGNAL) │ │ │ │ │ -179# else │ │ │ │ │ -180# define WRITESOCKET(s,b,l) write((s), (b), (l)) │ │ │ │ │ -181# endif │ │ │ │ │ -182#endif /* !WRITESOCKET */ │ │ │ │ │ -183 │ │ │ │ │ -184#ifndef CLOSESOCKET │ │ │ │ │ -185#define CLOSESOCKET(s) close((s)) │ │ │ │ │ -186#endif /* !CLOSESOCKET */ │ │ │ │ │ -187 │ │ │ │ │ -188#ifndef IOCTLSOCKET │ │ │ │ │ -189#define IOCTLSOCKET(s,b,l) ioctl((s), (b), (l)) │ │ │ │ │ -190#endif /* !IOCTLSOCKET */ │ │ │ │ │ -191 │ │ │ │ │ -192#ifndef SOCKLEN_T │ │ │ │ │ -193# define SOCKLEN_T socklen_t │ │ │ │ │ -194#endif │ │ │ │ │ -195 │ │ │ │ │ -196#if !defined(__WIN32__) && !defined(_WIN32) && !defined(WIN32) │ │ │ │ │ -197typedef int TDS_SYS_SOCKET; │ │ │ │ │ -198#define INVALID_SOCKET -1 │ │ │ │ │ -199#define TDS_IS_SOCKET_INVALID(s) ((s) < 0) │ │ │ │ │ -200#else │ │ │ │ │ -201typedef SOCKET TDS_SYS_SOCKET; │ │ │ │ │ -202#define TDS_IS_SOCKET_INVALID(s) ((s) == INVALID_SOCKET) │ │ │ │ │ -203#endif │ │ │ │ │ -204 │ │ │ │ │ -205#define tds_accept accept │ │ │ │ │ -206#define tds_getpeername getpeername │ │ │ │ │ -207#define tds_getsockopt getsockopt │ │ │ │ │ -208#define tds_getsockname getsockname │ │ │ │ │ -209#define tds_recvfrom recvfrom │ │ │ │ │ -210 │ │ │ │ │ -211#if defined(__hpux__) && SIZEOF_VOID_P == 8 && SIZEOF_INT == 4 │ │ │ │ │ -212# if HAVE__XPG_ACCEPT │ │ │ │ │ -213# undef tds_accept │ │ │ │ │ -214# define tds_accept _xpg_accept │ │ │ │ │ -215# elif HAVE___ACCEPT │ │ │ │ │ -216# undef tds_accept │ │ │ │ │ -217# define tds_accept __accept │ │ │ │ │ -218# endif │ │ │ │ │ -219# if HAVE__XPG_GETPEERNAME │ │ │ │ │ -220# undef tds_getpeername │ │ │ │ │ -221# define tds_getpeername _xpg_getpeername │ │ │ │ │ -222# elif HAVE___GETPEERNAME │ │ │ │ │ -223# undef tds_getpeername │ │ │ │ │ -224# define tds_getpeername __getpeername │ │ │ │ │ -225# endif │ │ │ │ │ -226# if HAVE__XPG_GETSOCKOPT │ │ │ │ │ -227# undef tds_getsockopt │ │ │ │ │ -228# define tds_getsockopt _xpg_getsockopt │ │ │ │ │ -229# elif HAVE___GETSOCKOPT │ │ │ │ │ -230# undef tds_getsockopt │ │ │ │ │ -231# define tds_getsockopt __getsockopt │ │ │ │ │ -232# endif │ │ │ │ │ -233# if HAVE__XPG_GETSOCKNAME │ │ │ │ │ -234# undef tds_getsockname │ │ │ │ │ -235# define tds_getsockname _xpg_getsockname │ │ │ │ │ -236# elif HAVE___GETSOCKNAME │ │ │ │ │ -237# undef tds_getsockname │ │ │ │ │ -238# define tds_getsockname __getsockname │ │ │ │ │ -239# endif │ │ │ │ │ -240# if HAVE__XPG_RECVFROM │ │ │ │ │ -241# undef tds_recvfrom │ │ │ │ │ -242# define tds_recvfrom _xpg_recvfrom │ │ │ │ │ -243# elif HAVE___RECVFROM │ │ │ │ │ -244# undef tds_recvfrom │ │ │ │ │ -245# define tds_recvfrom __recvfrom │ │ │ │ │ -246# endif │ │ │ │ │ -247#endif │ │ │ │ │ -248 │ │ │ │ │ -249#ifndef TDS_SDIR_SEPARATOR │ │ │ │ │ -250#define TDS_SDIR_SEPARATOR "/" │ │ │ │ │ -251#endif /* !TDS_SDIR_SEPARATOR */ │ │ │ │ │ -252 │ │ │ │ │ -253#ifdef HAVE_INTTYPES_H │ │ │ │ │ -254#include │ │ │ │ │ -255#endif │ │ │ │ │ -256 │ │ │ │ │ -257#ifndef PRId64 │ │ │ │ │ -258#define PRId64 TDS_I64_PREFIX "d" │ │ │ │ │ -259#endif │ │ │ │ │ -260#ifndef PRIu64 │ │ │ │ │ -261#define PRIu64 TDS_I64_PREFIX "u" │ │ │ │ │ -262#endif │ │ │ │ │ -263#ifndef PRIx64 │ │ │ │ │ -264#define PRIx64 TDS_I64_PREFIX "x" │ │ │ │ │ -265#endif │ │ │ │ │ -266 │ │ │ │ │ -267#ifdef __cplusplus │ │ │ │ │ -268#if 0 │ │ │ │ │ -269{ │ │ │ │ │ -270#endif │ │ │ │ │ -271} │ │ │ │ │ -272#endif │ │ │ │ │ -273 │ │ │ │ │ -274#endif /* _tds_sysdep_private_h_ */ │ │ │ │ │ +59static inline int │ │ │ │ │ +_6_0_t_d_s___d_s_t_r___i_s_e_m_p_t_y(const _D_S_T_R * s) │ │ │ │ │ +61{ │ │ │ │ │ +62 return (*s)->dstr_size == 0; │ │ │ │ │ +63} │ │ │ │ │ +64 │ │ │ │ │ +70static inline char * │ │ │ │ │ +_7_1_t_d_s___d_s_t_r___b_u_f(_D_S_T_R * s) │ │ │ │ │ +72{ │ │ │ │ │ +73 return (*s)->dstr_s; │ │ │ │ │ +74} │ │ │ │ │ +75 │ │ │ │ │ +77static inline const char * │ │ │ │ │ +_7_8_t_d_s___d_s_t_r___c_s_t_r(const _D_S_T_R * s) │ │ │ │ │ +79{ │ │ │ │ │ +80 return (*s)->dstr_s; │ │ │ │ │ +81} │ │ │ │ │ +82 │ │ │ │ │ +84static inline size_t │ │ │ │ │ +_8_5_t_d_s___d_s_t_r___l_e_n(const _D_S_T_R * s) │ │ │ │ │ +86{ │ │ │ │ │ +87 return (*s)->dstr_size; │ │ │ │ │ +88} │ │ │ │ │ +89 │ │ │ │ │ +_9_1#define tds_dstr_empty(s) \ │ │ │ │ │ +92 tds_dstr_free(s) │ │ │ │ │ +93 │ │ │ │ │ +94void _t_d_s___d_s_t_r___z_e_r_o(_D_S_T_R * s); │ │ │ │ │ +95void _t_d_s___d_s_t_r___f_r_e_e(_D_S_T_R * s); │ │ │ │ │ +96 │ │ │ │ │ +97_D_S_T_R* _t_d_s___d_s_t_r___d_u_p(_D_S_T_R * s, const _D_S_T_R * src) TDS_WUR; │ │ │ │ │ +98_D_S_T_R* _t_d_s___d_s_t_r___c_o_p_y(_D_S_T_R * s, const char *src) TDS_WUR; │ │ │ │ │ +99_D_S_T_R* _t_d_s___d_s_t_r___c_o_p_y_n(_D_S_T_R * s, const char *src, size_t length) TDS_WUR; │ │ │ │ │ +100_D_S_T_R* _t_d_s___d_s_t_r___s_e_t(_D_S_T_R * s, char *src) TDS_WUR; │ │ │ │ │ +101 │ │ │ │ │ +102_D_S_T_R* _t_d_s___d_s_t_r___s_e_t_l_e_n(_D_S_T_R *s, size_t length); │ │ │ │ │ +103_D_S_T_R* _t_d_s___d_s_t_r___a_l_l_o_c(_D_S_T_R *s, size_t length) TDS_WUR; │ │ │ │ │ +104 │ │ │ │ │ +107#include │ │ │ │ │ +108 │ │ │ │ │ +109#endif /* _tdsstring_h_ */ │ │ │ │ │ +_t_d_s___d_s_t_r___s_e_t_l_e_n │ │ │ │ │ +DSTR * tds_dstr_setlen(DSTR *s, size_t length) │ │ │ │ │ +limit length of string, MUST be <= current length │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:145 │ │ │ │ │ +_t_d_s___d_s_t_r___i_s_e_m_p_t_y │ │ │ │ │ +static int tds_dstr_isempty(const DSTR *s) │ │ │ │ │ +test if string is empty │ │ │ │ │ +DDeeffiinniittiioonn string.h:60 │ │ │ │ │ +_t_d_s___d_s_t_r___z_e_r_o │ │ │ │ │ +void tds_dstr_zero(DSTR *s) │ │ │ │ │ +clear all string filling with zeroes (mainly for security reason) │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:55 │ │ │ │ │ +_t_d_s___d_s_t_r___l_e_n │ │ │ │ │ +static size_t tds_dstr_len(const DSTR *s) │ │ │ │ │ +Returns the length of the string in bytes. │ │ │ │ │ +DDeeffiinniittiioonn string.h:85 │ │ │ │ │ +_t_d_s___d_s_t_r___d_u_p │ │ │ │ │ +DSTR * tds_dstr_dup(DSTR *s, const DSTR *src) │ │ │ │ │ +Duplicate a string from another dynamic string. │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:134 │ │ │ │ │ +_D_S_T_R___I_N_I_T_I_A_L_I_Z_E_R │ │ │ │ │ +#define DSTR_INITIALIZER │ │ │ │ │ +Initializer, used to initialize string like in the following example. │ │ │ │ │ +DDeeffiinniittiioonn string.h:49 │ │ │ │ │ +_t_d_s___d_s_t_r___c_o_p_y_n │ │ │ │ │ +DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length) │ │ │ │ │ +Set string to a given buffer of characters. │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:77 │ │ │ │ │ +_t_d_s___s_t_r___e_m_p_t_y │ │ │ │ │ +const struct tds_dstr tds_str_empty │ │ │ │ │ +Internal representation for an empty string. │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:45 │ │ │ │ │ +_t_d_s___d_s_t_r___a_l_l_o_c │ │ │ │ │ +DSTR * tds_dstr_alloc(DSTR *s, size_t length) │ │ │ │ │ +allocate space for length char │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:165 │ │ │ │ │ +_t_d_s___d_s_t_r___i_n_i_t │ │ │ │ │ +static void tds_dstr_init(DSTR *s) │ │ │ │ │ +init a string with empty │ │ │ │ │ +DDeeffiinniittiioonn string.h:53 │ │ │ │ │ +_t_d_s___d_s_t_r___s_e_t │ │ │ │ │ +DSTR * tds_dstr_set(DSTR *s, char *src) │ │ │ │ │ +set a string from another buffer. │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:107 │ │ │ │ │ +_t_d_s___d_s_t_r___c_s_t_r │ │ │ │ │ +static const char * tds_dstr_cstr(const DSTR *s) │ │ │ │ │ +Returns a C version (NUL terminated string) of dstr. │ │ │ │ │ +DDeeffiinniittiioonn string.h:78 │ │ │ │ │ +_t_d_s___d_s_t_r___f_r_e_e │ │ │ │ │ +void tds_dstr_free(DSTR *s) │ │ │ │ │ +free string │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:62 │ │ │ │ │ +_t_d_s___d_s_t_r___c_o_p_y │ │ │ │ │ +DSTR * tds_dstr_copy(DSTR *s, const char *src) │ │ │ │ │ +copy a string from another │ │ │ │ │ +DDeeffiinniittiioonn tdsstring.c:122 │ │ │ │ │ +_t_d_s___d_s_t_r___b_u_f │ │ │ │ │ +static char * tds_dstr_buf(DSTR *s) │ │ │ │ │ +Returns a buffer to edit the string. │ │ │ │ │ +DDeeffiinniittiioonn string.h:71 │ │ │ │ │ +_D_S_T_R │ │ │ │ │ +struct tds_dstr * DSTR │ │ │ │ │ +Structure to hold a string. │ │ │ │ │ +_t_d_s___d_s_t_r │ │ │ │ │ +Structure to hold a string. │ │ │ │ │ +DDeeffiinniittiioonn string.h:36 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00386_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/popvis.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/dlist.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,24 +70,72 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
popvis.h
│ │ │ │ +
dlist.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
│ │ │ │ -
2#pragma GCC visibility pop
│ │ │ │ -
3#endif
│ │ │ │ +
1/* Dlist - dynamic list
│ │ │ │ +
2 * Copyright (C) 2016 Frediano Ziglio
│ │ │ │ +
3 *
│ │ │ │ +
4 * This program is free software; you can redistribute it and/or modify
│ │ │ │ +
5 * it under the terms of the GNU General Public License as published by
│ │ │ │ +
6 * the Free Software Foundation; either version 2 of the License, or
│ │ │ │ +
7 * (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This program is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +
12 * GNU General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU General Public License
│ │ │ │ +
15 * along with this program; if not, write to the Free Software
│ │ │ │ +
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
│ │ │ │ +
17 *
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef TDS_DLIST_H
│ │ │ │ +
21#define TDS_DLIST_H
│ │ │ │ +
22
│ │ │ │ +
│ │ │ │ +
23typedef struct dlist_ring {
│ │ │ │ +
24 struct dlist_ring *next;
│ │ │ │ +
25 struct dlist_ring *prev;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
27
│ │ │ │ +
28#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
29void dlist_ring_check(dlist_ring *ring);
│ │ │ │ +
30#endif
│ │ │ │ +
31
│ │ │ │ +
32#define DLIST_FIELDS(name) \
│ │ │ │ +
33 dlist_ring name
│ │ │ │ +
34
│ │ │ │ +
35#define DLIST_FOREACH(prefix, list, p) \
│ │ │ │ +
36 for (p = prefix ## _ ## first(list); p != NULL; p = prefix ## _ ## next(list, p))
│ │ │ │ +
37
│ │ │ │ +
38static inline void dlist_insert_after(dlist_ring *ring_pos, dlist_ring *ring_item)
│ │ │ │ +
39{
│ │ │ │ +
40 assert(!ring_item->next && !ring_item->prev);
│ │ │ │ +
41 ring_pos->next->prev = ring_item;
│ │ │ │ +
42 ring_item->prev = ring_pos;
│ │ │ │ +
43 ring_item->next = ring_pos->next;
│ │ │ │ +
44 ring_pos->next = ring_item;
│ │ │ │ +
45 assert(ring_item->next && ring_item->prev);
│ │ │ │ +
46}
│ │ │ │ +
47
│ │ │ │ +
48#endif /* TDS_DLIST_H */
│ │ │ │ +
Definition dlist.h:23
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,12 +1,62 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -popvis.h │ │ │ │ │ -1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__) │ │ │ │ │ -2#pragma GCC visibility pop │ │ │ │ │ -3#endif │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +dlist.h │ │ │ │ │ +1/* Dlist - dynamic list │ │ │ │ │ +2 * Copyright (C) 2016 Frediano Ziglio │ │ │ │ │ +3 * │ │ │ │ │ +4 * This program is free software; you can redistribute it and/or modify │ │ │ │ │ +5 * it under the terms of the GNU General Public License as published by │ │ │ │ │ +6 * the Free Software Foundation; either version 2 of the License, or │ │ │ │ │ +7 * (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This program is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ +12 * GNU General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU General Public License │ │ │ │ │ +15 * along with this program; if not, write to the Free Software │ │ │ │ │ +16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA │ │ │ │ │ +17 * │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef TDS_DLIST_H │ │ │ │ │ +21#define TDS_DLIST_H │ │ │ │ │ +22 │ │ │ │ │ +_2_3typedef struct _d_l_i_s_t___r_i_n_g { │ │ │ │ │ +24 struct _d_l_i_s_t___r_i_n_g *next; │ │ │ │ │ +25 struct _d_l_i_s_t___r_i_n_g *prev; │ │ │ │ │ +26} _d_l_i_s_t___r_i_n_g; │ │ │ │ │ +27 │ │ │ │ │ +28#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +29void dlist_ring_check(_d_l_i_s_t___r_i_n_g *ring); │ │ │ │ │ +30#endif │ │ │ │ │ +31 │ │ │ │ │ +32#define DLIST_FIELDS(name) \ │ │ │ │ │ +33 dlist_ring name │ │ │ │ │ +34 │ │ │ │ │ +35#define DLIST_FOREACH(prefix, list, p) \ │ │ │ │ │ +36 for (p = prefix ## _ ## first(list); p != NULL; p = prefix ## _ ## next │ │ │ │ │ +(list, p)) │ │ │ │ │ +37 │ │ │ │ │ +38static inline void dlist_insert_after(_d_l_i_s_t___r_i_n_g *ring_pos, _d_l_i_s_t___r_i_n_g │ │ │ │ │ +*ring_item) │ │ │ │ │ +39{ │ │ │ │ │ +40 assert(!ring_item->next && !ring_item->prev); │ │ │ │ │ +41 ring_pos->next->prev = ring_item; │ │ │ │ │ +42 ring_item->prev = ring_pos; │ │ │ │ │ +43 ring_item->next = ring_pos->next; │ │ │ │ │ +44 ring_pos->next = ring_item; │ │ │ │ │ +45 assert(ring_item->next && ring_item->prev); │ │ │ │ │ +46} │ │ │ │ │ +47 │ │ │ │ │ +48#endif /* TDS_DLIST_H */ │ │ │ │ │ +_d_l_i_s_t___r_i_n_g │ │ │ │ │ +DDeeffiinniittiioonn dlist.h:23 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00389_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/tls.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/dlist.tmpl.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,148 +70,143 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
tls.h
│ │ │ │ +
dlist.tmpl.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2015 Frediano Ziglio
│ │ │ │ +
1/* Dlist - dynamic list
│ │ │ │ +
2 * Copyright (C) 2016 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
4 * This program is free software; you can redistribute it and/or modify
│ │ │ │ +
5 * it under the terms of the GNU General Public License as published by
│ │ │ │ +
6 * the Free Software Foundation; either version 2 of the License, or
│ │ │ │ +
7 * (at your option) any later version.
│ │ │ │
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
9 * This program is distributed in the hope that it will be useful,
│ │ │ │
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ +
12 * GNU General Public License for more details.
│ │ │ │
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
14 * You should have received a copy of the GNU General Public License
│ │ │ │ +
15 * along with this program; if not, write to the Free Software
│ │ │ │ +
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
│ │ │ │ +
17 *
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _freetds_tls_h_
│ │ │ │ -
21#define _freetds_tls_h_
│ │ │ │ -
22
│ │ │ │ -
23#ifndef _tds_h_
│ │ │ │ -
24#error tds.h must be included before tls.h
│ │ │ │ -
25#endif
│ │ │ │ -
26
│ │ │ │ -
27#ifdef HAVE_GNUTLS
│ │ │ │ -
28# if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX)
│ │ │ │ -
29# include <freetds/thread.h>
│ │ │ │ -
30# ifndef GNUTLS_USE_NETTLE
│ │ │ │ -
31# include <gcrypt.h>
│ │ │ │ -
32# endif
│ │ │ │ -
33# endif
│ │ │ │ -
34# include <gnutls/gnutls.h>
│ │ │ │ -
35# include <gnutls/x509.h>
│ │ │ │ -
36#elif defined(HAVE_OPENSSL)
│ │ │ │ -
37# include <openssl/ssl.h>
│ │ │ │ -
38# include <openssl/x509v3.h>
│ │ │ │ -
39# include <openssl/err.h>
│ │ │ │ -
40#endif
│ │ │ │ -
41
│ │ │ │ -
42#include <freetds/pushvis.h>
│ │ │ │ +
20#include <freetds/bool.h>
│ │ │ │ +
21#include <freetds/utils.h>
│ │ │ │ +
22#include <freetds/macros.h>
│ │ │ │ +
23
│ │ │ │ +
24#if !defined(DLIST_PREFIX) || !defined(DLIST_ITEM_TYPE) || !defined(DLIST_LIST_TYPE)
│ │ │ │ +
25#error Required defines for dlist missing!
│ │ │ │ +
26#endif
│ │ │ │ +
27
│ │ │ │ +
28#if defined(DLIST_NAME) || defined(DLIST_PASTER) || \
│ │ │ │ +
29 defined(DLIST_EVALUATOR) || defined(DLIST_ITEM)
│ │ │ │ +
30#error Some internal dlist macros already defined
│ │ │ │ +
31#endif
│ │ │ │ +
32
│ │ │ │ +
│ │ │ │ +
33typedef struct
│ │ │ │ +
34{
│ │ │ │ +
35 dlist_ring ring;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
37
│ │ │ │ +
38#define DLIST_PASTER(x,y) x ## _ ## y
│ │ │ │ +
39#define DLIST_EVALUATOR(x,y) DLIST_PASTER(x,y)
│ │ │ │ +
40#define DLIST_NAME(suffix) DLIST_EVALUATOR(DLIST_PREFIX, suffix)
│ │ │ │ +
41#define DLIST_ITEM(ring) \
│ │ │ │ +
42 ((DLIST_ITEM_TYPE *) (((char *) (ring)) - TDS_OFFSET(DLIST_ITEM_TYPE, DLIST_NAME(item))))
│ │ │ │
43
│ │ │ │ -
44#if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
│ │ │ │ -
45TDSRET tds_ssl_init(TDSSOCKET *tds);
│ │ │ │ -
46void tds_ssl_deinit(TDSCONNECTION *conn);
│ │ │ │ -
47
│ │ │ │ -
48# ifdef HAVE_GNUTLS
│ │ │ │ -
49
│ │ │ │ -
50static inline int
│ │ │ │ -
51tds_ssl_pending(TDSCONNECTION *conn)
│ │ │ │ -
52{
│ │ │ │ -
53 return gnutls_record_check_pending((gnutls_session_t) conn->tls_session);
│ │ │ │ -
54}
│ │ │ │ -
55
│ │ │ │ -
56static inline int
│ │ │ │ -
57tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
│ │ │ │ -
58{
│ │ │ │ -
59 return gnutls_record_recv((gnutls_session_t) conn->tls_session, buf, buflen);
│ │ │ │ -
60}
│ │ │ │ -
61
│ │ │ │ -
62static inline int
│ │ │ │ -
63tds_ssl_write(TDSCONNECTION *conn, const unsigned char *buf, int buflen)
│ │ │ │ +
44static inline void DLIST_NAME(check)(DLIST_LIST_TYPE *list)
│ │ │ │ +
45{
│ │ │ │ +
46#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
47 assert(list != NULL);
│ │ │ │ +
48 dlist_ring_check(&list->ring);
│ │ │ │ +
49#endif
│ │ │ │ +
50}
│ │ │ │ +
51
│ │ │ │ +
52static inline void DLIST_NAME(init)(DLIST_LIST_TYPE *list)
│ │ │ │ +
53{
│ │ │ │ +
54 list->ring.next = list->ring.prev = &list->ring;
│ │ │ │ +
55 DLIST_NAME(check)(list);
│ │ │ │ +
56}
│ │ │ │ +
57
│ │ │ │ +
58static inline DLIST_ITEM_TYPE *DLIST_NAME(first)(DLIST_LIST_TYPE *list)
│ │ │ │ +
59{
│ │ │ │ +
60 return list->ring.next == &list->ring ? NULL : DLIST_ITEM(list->ring.next);
│ │ │ │ +
61}
│ │ │ │ +
62
│ │ │ │ +
63static inline DLIST_ITEM_TYPE *DLIST_NAME(last)(DLIST_LIST_TYPE *list)
│ │ │ │
64{
│ │ │ │ -
65 return gnutls_record_send((gnutls_session_t) conn->tls_session, buf, buflen);
│ │ │ │ +
65 return list->ring.prev == &list->ring ? NULL : DLIST_ITEM(list->ring.prev);
│ │ │ │
66}
│ │ │ │ -
67# else
│ │ │ │ -
68
│ │ │ │ -
69/* compatibility for LibreSSL 2.7 */
│ │ │ │ -
70#ifdef LIBRESSL_VERSION_NUMBER
│ │ │ │ -
71#define TLS_ST_OK SSL_ST_OK
│ │ │ │ -
72#endif
│ │ │ │ -
73
│ │ │ │ -
74static inline int
│ │ │ │ -
75tds_ssl_pending(TDSCONNECTION *conn)
│ │ │ │ -
76{
│ │ │ │ -
77 return SSL_pending((SSL *) conn->tls_session);
│ │ │ │ -
78}
│ │ │ │ -
79
│ │ │ │ -
80static inline int
│ │ │ │ -
81tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
│ │ │ │ -
82{
│ │ │ │ -
83 return SSL_read((SSL *) conn->tls_session, buf, buflen);
│ │ │ │ -
84}
│ │ │ │ -
85
│ │ │ │ -
86static inline int
│ │ │ │ -
87tds_ssl_write(TDSCONNECTION *conn, const unsigned char *buf, int buflen)
│ │ │ │ -
88{
│ │ │ │ -
89 return SSL_write((SSL *) conn->tls_session, buf, buflen);
│ │ │ │ +
67
│ │ │ │ +
68static inline DLIST_ITEM_TYPE *DLIST_NAME(next)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ +
69{
│ │ │ │ +
70 return item->DLIST_NAME(item).next == &list->ring ? NULL : DLIST_ITEM(item->DLIST_NAME(item).next);
│ │ │ │ +
71}
│ │ │ │ +
72
│ │ │ │ +
73static inline DLIST_ITEM_TYPE *DLIST_NAME(prev)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ +
74{
│ │ │ │ +
75 return item->DLIST_NAME(item).prev == &list->ring ? NULL : DLIST_ITEM(item->DLIST_NAME(item).prev);
│ │ │ │ +
76}
│ │ │ │ +
77
│ │ │ │ +
78static inline void DLIST_NAME(prepend)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ +
79{
│ │ │ │ +
80 DLIST_NAME(check)(list);
│ │ │ │ +
81 dlist_insert_after(&list->ring, &item->DLIST_NAME(item));
│ │ │ │ +
82 DLIST_NAME(check)(list);
│ │ │ │ +
83}
│ │ │ │ +
84
│ │ │ │ +
85static inline void DLIST_NAME(append)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ +
86{
│ │ │ │ +
87 DLIST_NAME(check)(list);
│ │ │ │ +
88 dlist_insert_after(list->ring.prev, &item->DLIST_NAME(item));
│ │ │ │ +
89 DLIST_NAME(check)(list);
│ │ │ │
90}
│ │ │ │ -
91# endif
│ │ │ │ -
92#else
│ │ │ │ -
93static inline TDSRET
│ │ │ │ -
94tds_ssl_init(TDSSOCKET *tds)
│ │ │ │ -
95{
│ │ │ │ -
96 return TDS_FAIL;
│ │ │ │ -
97}
│ │ │ │ -
98
│ │ │ │ -
99static inline void
│ │ │ │ -
100tds_ssl_deinit(TDSCONNECTION *conn)
│ │ │ │ -
101{
│ │ │ │ -
102}
│ │ │ │ -
103
│ │ │ │ -
104static inline int
│ │ │ │ -
105tds_ssl_pending(TDSCONNECTION *conn)
│ │ │ │ +
91
│ │ │ │ +
92static inline void DLIST_NAME(remove)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ +
93{
│ │ │ │ +
94 dlist_ring *prev = item->DLIST_NAME(item).prev, *next = item->DLIST_NAME(item).next;
│ │ │ │ +
95 DLIST_NAME(check)(list);
│ │ │ │ +
96 if (prev) {
│ │ │ │ +
97 prev->next = next;
│ │ │ │ +
98 next->prev = prev;
│ │ │ │ +
99 }
│ │ │ │ +
100 item->DLIST_NAME(item).prev = NULL;
│ │ │ │ +
101 item->DLIST_NAME(item).next = NULL;
│ │ │ │ +
102 DLIST_NAME(check)(list);
│ │ │ │ +
103}
│ │ │ │ +
104
│ │ │ │ +
105static inline bool DLIST_NAME(in_list)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │
106{
│ │ │ │ -
107 return 0;
│ │ │ │ -
108}
│ │ │ │ -
109
│ │ │ │ -
110static inline int
│ │ │ │ -
111tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
│ │ │ │ -
112{
│ │ │ │ -
113 return -1;
│ │ │ │ -
114}
│ │ │ │ -
115
│ │ │ │ -
116static inline int
│ │ │ │ -
117tds_ssl_write(TDSCONNECTION *conn, const unsigned char *buf, int buflen)
│ │ │ │ -
118{
│ │ │ │ -
119 return -1;
│ │ │ │ -
120}
│ │ │ │ -
121#endif
│ │ │ │ -
122
│ │ │ │ -
123#include <freetds/popvis.h>
│ │ │ │ -
124
│ │ │ │ -
125#endif /* _freetds_tls_h_ */
│ │ │ │ -
Definition tds.h:1091
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
107 DLIST_NAME(check)(list);
│ │ │ │ +
108 return item->DLIST_NAME(item).prev != NULL || item->DLIST_NAME(item).next != NULL;
│ │ │ │ +
109}
│ │ │ │ +
110
│ │ │ │ +
111#undef DLIST_ITEM
│ │ │ │ +
112#undef DLIST_NAME
│ │ │ │ +
113#undef DLIST_ITEM_TYPE
│ │ │ │ +
114#undef DLIST_LIST_TYPE
│ │ │ │ +
115#undef DLIST_PREFIX
│ │ │ │ +
116#undef DLIST_PASTER
│ │ │ │ +
117#undef DLIST_EVALUATOR
│ │ │ │ +
118
│ │ │ │ +
Definition dlist.h:23
│ │ │ │ +
Definition dlist.tmpl.h:34
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,141 +1,144 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -tls.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2015 Frediano Ziglio │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +dlist.tmpl.h │ │ │ │ │ +1/* Dlist - dynamic list │ │ │ │ │ +2 * Copyright (C) 2016 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +4 * This program is free software; you can redistribute it and/or modify │ │ │ │ │ +5 * it under the terms of the GNU General Public License as published by │ │ │ │ │ +6 * the Free Software Foundation; either version 2 of the License, or │ │ │ │ │ +7 * (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +9 * This program is distributed in the hope that it will be useful, │ │ │ │ │ 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ +12 * GNU General Public License for more details. │ │ │ │ │ 13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +14 * You should have received a copy of the GNU General Public License │ │ │ │ │ +15 * along with this program; if not, write to the Free Software │ │ │ │ │ +16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA │ │ │ │ │ +17 * │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _freetds_tls_h_ │ │ │ │ │ -21#define _freetds_tls_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#ifndef _tds_h_ │ │ │ │ │ -24#error tds.h must be included before tls.h │ │ │ │ │ -25#endif │ │ │ │ │ -26 │ │ │ │ │ -27#ifdef HAVE_GNUTLS │ │ │ │ │ -28# if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX) │ │ │ │ │ -29# include │ │ │ │ │ -30# ifndef GNUTLS_USE_NETTLE │ │ │ │ │ -31# include │ │ │ │ │ -32# endif │ │ │ │ │ -33# endif │ │ │ │ │ -34# include │ │ │ │ │ -35# include │ │ │ │ │ -36#elif defined(HAVE_OPENSSL) │ │ │ │ │ -37# include │ │ │ │ │ -38# include │ │ │ │ │ -39# include │ │ │ │ │ -40#endif │ │ │ │ │ -41 │ │ │ │ │ -42#include │ │ │ │ │ +20#include │ │ │ │ │ +21#include │ │ │ │ │ +22#include │ │ │ │ │ +23 │ │ │ │ │ +24#if !defined(DLIST_PREFIX) || !defined(DLIST_ITEM_TYPE) || !defined │ │ │ │ │ +(DLIST_LIST_TYPE) │ │ │ │ │ +25#error Required defines for dlist missing! │ │ │ │ │ +26#endif │ │ │ │ │ +27 │ │ │ │ │ +28#if defined(DLIST_NAME) || defined(DLIST_PASTER) || \ │ │ │ │ │ +29 defined(DLIST_EVALUATOR) || defined(DLIST_ITEM) │ │ │ │ │ +30#error Some internal dlist macros already defined │ │ │ │ │ +31#endif │ │ │ │ │ +32 │ │ │ │ │ +_3_3typedef struct │ │ │ │ │ +34{ │ │ │ │ │ +35 _d_l_i_s_t___r_i_n_g ring; │ │ │ │ │ +36} _D_L_I_S_T___L_I_S_T___T_Y_P_E; │ │ │ │ │ +37 │ │ │ │ │ +38#define DLIST_PASTER(x,y) x ## _ ## y │ │ │ │ │ +39#define DLIST_EVALUATOR(x,y) DLIST_PASTER(x,y) │ │ │ │ │ +40#define DLIST_NAME(suffix) DLIST_EVALUATOR(DLIST_PREFIX, suffix) │ │ │ │ │ +41#define DLIST_ITEM(ring) \ │ │ │ │ │ +42 ((DLIST_ITEM_TYPE *) (((char *) (ring)) - TDS_OFFSET(DLIST_ITEM_TYPE, │ │ │ │ │ +DLIST_NAME(item)))) │ │ │ │ │ 43 │ │ │ │ │ -44#if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL) │ │ │ │ │ -45TDSRET tds_ssl_init(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -46void tds_ssl_deinit(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ -47 │ │ │ │ │ -48# ifdef HAVE_GNUTLS │ │ │ │ │ -49 │ │ │ │ │ -50static inline int │ │ │ │ │ -51tds_ssl_pending(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ -52{ │ │ │ │ │ -53 return gnutls_record_check_pending((gnutls_session_t) conn->tls_session); │ │ │ │ │ -54} │ │ │ │ │ -55 │ │ │ │ │ -56static inline int │ │ │ │ │ -57tds_ssl_read(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, unsigned char *buf, int buflen) │ │ │ │ │ -58{ │ │ │ │ │ -59 return gnutls_record_recv((gnutls_session_t) conn->tls_session, buf, │ │ │ │ │ -buflen); │ │ │ │ │ -60} │ │ │ │ │ -61 │ │ │ │ │ -62static inline int │ │ │ │ │ -63tds_ssl_write(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, const unsigned char *buf, int buflen) │ │ │ │ │ +44static inline void DLIST_NAME(check)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ +45{ │ │ │ │ │ +46#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +47 assert(list != NULL); │ │ │ │ │ +48 dlist_ring_check(&list->ring); │ │ │ │ │ +49#endif │ │ │ │ │ +50} │ │ │ │ │ +51 │ │ │ │ │ +52static inline void DLIST_NAME(init)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ +53{ │ │ │ │ │ +54 list->ring.next = list->ring.prev = &list->ring; │ │ │ │ │ +55 DLIST_NAME(check)(list); │ │ │ │ │ +56} │ │ │ │ │ +57 │ │ │ │ │ +58static inline DLIST_ITEM_TYPE *DLIST_NAME(first)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ +59{ │ │ │ │ │ +60 return list->ring.next == &list->ring ? NULL : DLIST_ITEM(list->ring.next); │ │ │ │ │ +61} │ │ │ │ │ +62 │ │ │ │ │ +63static inline DLIST_ITEM_TYPE *DLIST_NAME(last)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ 64{ │ │ │ │ │ -65 return gnutls_record_send((gnutls_session_t) conn->tls_session, buf, │ │ │ │ │ -buflen); │ │ │ │ │ +65 return list->ring.prev == &list->ring ? NULL : DLIST_ITEM(list->ring.prev); │ │ │ │ │ 66} │ │ │ │ │ -67# else │ │ │ │ │ -68 │ │ │ │ │ -69/* compatibility for LibreSSL 2.7 */ │ │ │ │ │ -70#ifdef LIBRESSL_VERSION_NUMBER │ │ │ │ │ -71#define TLS_ST_OK SSL_ST_OK │ │ │ │ │ -72#endif │ │ │ │ │ -73 │ │ │ │ │ -74static inline int │ │ │ │ │ -75tds_ssl_pending(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ -76{ │ │ │ │ │ -77 return SSL_pending((SSL *) conn->tls_session); │ │ │ │ │ -78} │ │ │ │ │ -79 │ │ │ │ │ -80static inline int │ │ │ │ │ -81tds_ssl_read(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, unsigned char *buf, int buflen) │ │ │ │ │ -82{ │ │ │ │ │ -83 return SSL_read((SSL *) conn->tls_session, buf, buflen); │ │ │ │ │ -84} │ │ │ │ │ -85 │ │ │ │ │ -86static inline int │ │ │ │ │ -87tds_ssl_write(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, const unsigned char *buf, int buflen) │ │ │ │ │ -88{ │ │ │ │ │ -89 return SSL_write((SSL *) conn->tls_session, buf, buflen); │ │ │ │ │ +67 │ │ │ │ │ +68static inline DLIST_ITEM_TYPE *DLIST_NAME(next)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, │ │ │ │ │ +DLIST_ITEM_TYPE *item) │ │ │ │ │ +69{ │ │ │ │ │ +70 return item->DLIST_NAME(item).next == &list->ring ? NULL : DLIST_ITEM(item- │ │ │ │ │ +>DLIST_NAME(item).next); │ │ │ │ │ +71} │ │ │ │ │ +72 │ │ │ │ │ +73static inline DLIST_ITEM_TYPE *DLIST_NAME(prev)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, │ │ │ │ │ +DLIST_ITEM_TYPE *item) │ │ │ │ │ +74{ │ │ │ │ │ +75 return item->DLIST_NAME(item).prev == &list->ring ? NULL : DLIST_ITEM(item- │ │ │ │ │ +>DLIST_NAME(item).prev); │ │ │ │ │ +76} │ │ │ │ │ +77 │ │ │ │ │ +78static inline void DLIST_NAME(prepend)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, DLIST_ITEM_TYPE │ │ │ │ │ +*item) │ │ │ │ │ +79{ │ │ │ │ │ +80 DLIST_NAME(check)(list); │ │ │ │ │ +81 dlist_insert_after(&list->ring, &item->DLIST_NAME(item)); │ │ │ │ │ +82 DLIST_NAME(check)(list); │ │ │ │ │ +83} │ │ │ │ │ +84 │ │ │ │ │ +85static inline void DLIST_NAME(append)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, DLIST_ITEM_TYPE │ │ │ │ │ +*item) │ │ │ │ │ +86{ │ │ │ │ │ +87 DLIST_NAME(check)(list); │ │ │ │ │ +88 dlist_insert_after(list->ring.prev, &item->DLIST_NAME(item)); │ │ │ │ │ +89 DLIST_NAME(check)(list); │ │ │ │ │ 90} │ │ │ │ │ -91# endif │ │ │ │ │ -92#else │ │ │ │ │ -93static inline TDSRET │ │ │ │ │ -94tds_ssl_init(_T_D_S_S_O_C_K_E_T *tds) │ │ │ │ │ -95{ │ │ │ │ │ -96 return TDS_FAIL; │ │ │ │ │ -97} │ │ │ │ │ -98 │ │ │ │ │ -99static inline void │ │ │ │ │ -100tds_ssl_deinit(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ -101{ │ │ │ │ │ -102} │ │ │ │ │ -103 │ │ │ │ │ -104static inline int │ │ │ │ │ -105tds_ssl_pending(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ +91 │ │ │ │ │ +92static inline void DLIST_NAME(remove)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, DLIST_ITEM_TYPE │ │ │ │ │ +*item) │ │ │ │ │ +93{ │ │ │ │ │ +94 _d_l_i_s_t___r_i_n_g *prev = item->DLIST_NAME(item).prev, *next = item->DLIST_NAME │ │ │ │ │ +(item).next; │ │ │ │ │ +95 DLIST_NAME(check)(list); │ │ │ │ │ +96 if (prev) { │ │ │ │ │ +97 prev->next = next; │ │ │ │ │ +98 next->prev = prev; │ │ │ │ │ +99 } │ │ │ │ │ +100 item->DLIST_NAME(item).prev = NULL; │ │ │ │ │ +101 item->DLIST_NAME(item).next = NULL; │ │ │ │ │ +102 DLIST_NAME(check)(list); │ │ │ │ │ +103} │ │ │ │ │ +104 │ │ │ │ │ +105static inline bool DLIST_NAME(in_list)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, │ │ │ │ │ +DLIST_ITEM_TYPE *item) │ │ │ │ │ 106{ │ │ │ │ │ -107 return 0; │ │ │ │ │ -108} │ │ │ │ │ -109 │ │ │ │ │ -110static inline int │ │ │ │ │ -111tds_ssl_read(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, unsigned char *buf, int buflen) │ │ │ │ │ -112{ │ │ │ │ │ -113 return -1; │ │ │ │ │ -114} │ │ │ │ │ -115 │ │ │ │ │ -116static inline int │ │ │ │ │ -117tds_ssl_write(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, const unsigned char *buf, int buflen) │ │ │ │ │ -118{ │ │ │ │ │ -119 return -1; │ │ │ │ │ -120} │ │ │ │ │ -121#endif │ │ │ │ │ -122 │ │ │ │ │ -123#include │ │ │ │ │ -124 │ │ │ │ │ -125#endif /* _freetds_tls_h_ */ │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +107 DLIST_NAME(check)(list); │ │ │ │ │ +108 return item->DLIST_NAME(item).prev != NULL || item->DLIST_NAME(item).next │ │ │ │ │ +!= NULL; │ │ │ │ │ +109} │ │ │ │ │ +110 │ │ │ │ │ +111#undef DLIST_ITEM │ │ │ │ │ +112#undef DLIST_NAME │ │ │ │ │ +113#undef DLIST_ITEM_TYPE │ │ │ │ │ +114#undef DLIST_LIST_TYPE │ │ │ │ │ +115#undef DLIST_PREFIX │ │ │ │ │ +116#undef DLIST_PASTER │ │ │ │ │ +117#undef DLIST_EVALUATOR │ │ │ │ │ +118 │ │ │ │ │ +_d_l_i_s_t___r_i_n_g │ │ │ │ │ +DDeeffiinniittiioonn dlist.h:23 │ │ │ │ │ +_D_L_I_S_T___L_I_S_T___T_Y_P_E │ │ │ │ │ +DDeeffiinniittiioonn dlist.tmpl.h:34 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00392_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/bytes.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/md4.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,287 +70,71 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
bytes.h
│ │ │ │ +
md4.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2005-2008 Frediano Ziglio
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef _tdsbytes_h_
│ │ │ │ -
21#define _tdsbytes_h_
│ │ │ │ +
1#ifndef MD4_H
│ │ │ │ +
2#define MD4_H
│ │ │ │ +
3
│ │ │ │ +
4#ifndef HAVE_NETTLE
│ │ │ │ +
5
│ │ │ │ +
6#include <freetds/pushvis.h>
│ │ │ │ +
7
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
9{
│ │ │ │ +
10 uint32_t buf[4];
│ │ │ │ +
11 uint64_t bytes;
│ │ │ │ +
12 uint32_t in[16];
│ │ │ │ +
13};
│ │ │ │ +
│ │ │ │ +
14
│ │ │ │ +
15void MD4Init(struct MD4Context *context);
│ │ │ │ +
16void MD4Update(struct MD4Context *context, const uint8_t *buf, size_t len);
│ │ │ │ +
17void MD4Final(struct MD4Context *context, uint8_t *digest);
│ │ │ │ +
18
│ │ │ │ +
19typedef struct MD4Context MD4_CTX;
│ │ │ │ +
20
│ │ │ │ +
21#include <freetds/popvis.h>
│ │ │ │
22
│ │ │ │ -
23/*
│ │ │ │ -
24 * read a word of n bytes aligned, architecture dependent endian
│ │ │ │ -
25 * TDS_GET_An
│ │ │ │ -
26 * read a word of n bytes aligned, little endian
│ │ │ │ -
27 * TDS_GET_AnLE
│ │ │ │ -
28 * read a word of n bytes aligned, big endian
│ │ │ │ -
29 * TDS_GET_AnBE
│ │ │ │ -
30 * read a word of n bytes unaligned, architecture dependent endian
│ │ │ │ -
31 * TDS_GET_UAn
│ │ │ │ -
32 * read a word of n bytes unaligned, little endian
│ │ │ │ -
33 * TDS_GET_UAnLE
│ │ │ │ -
34 * read a word of n bytes unaligned, big endian
│ │ │ │ -
35 * TDS_GET_UAnBE
│ │ │ │ -
36 */
│ │ │ │ -
37
│ │ │ │ -
38/* one byte, easy... */
│ │ │ │ -
39#define TDS_GET_A1LE(ptr) (((uint8_t *)(ptr))[0])
│ │ │ │ -
40#define TDS_GET_A1BE(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ -
41#define TDS_GET_UA1LE(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ -
42#define TDS_GET_UA1BE(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ +
23#else
│ │ │ │ +
24
│ │ │ │ +
25#include <nettle/md4.h>
│ │ │ │ +
26
│ │ │ │ +
27typedef struct md4_ctx MD4_CTX;
│ │ │ │ +
28
│ │ │ │ +
29static inline void MD4Init(MD4_CTX *ctx)
│ │ │ │ +
30{
│ │ │ │ +
31 nettle_md4_init(ctx);
│ │ │ │ +
32}
│ │ │ │ +
33
│ │ │ │ +
34static inline void MD4Update(MD4_CTX *ctx, const uint8_t *buf, size_t len)
│ │ │ │ +
35{
│ │ │ │ +
36 nettle_md4_update(ctx, len, buf);
│ │ │ │ +
37}
│ │ │ │ +
38
│ │ │ │ +
39static inline void MD4Final(MD4_CTX *ctx, uint8_t *digest)
│ │ │ │ +
40{
│ │ │ │ +
41 nettle_md4_digest(ctx, 16, digest);
│ │ │ │ +
42}
│ │ │ │
43
│ │ │ │ -
44#define TDS_PUT_A1LE(ptr,val) do { ((uint8_t *)(ptr))[0] = (val); } while(0)
│ │ │ │ -
45#define TDS_PUT_A1BE(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ -
46#define TDS_PUT_UA1LE(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ -
47#define TDS_PUT_UA1BE(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ -
48
│ │ │ │ -
49/* two bytes */
│ │ │ │ -
50#define TDS_GET_UA2LE(ptr) (((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0])
│ │ │ │ -
51#define TDS_GET_UA2BE(ptr) (((uint8_t *)(ptr))[0] * 0x100u + ((uint8_t *)(ptr))[1])
│ │ │ │ -
52#define TDS_GET_A2LE(ptr) TDS_GET_UA2LE(ptr)
│ │ │ │ -
53#define TDS_GET_A2BE(ptr) TDS_GET_UA2BE(ptr)
│ │ │ │ -
54
│ │ │ │ -
55#define TDS_PUT_UA2LE(ptr,val) do {\
│ │ │ │ -
56 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = (uint8_t)(val); } while(0)
│ │ │ │ -
57#define TDS_PUT_UA2BE(ptr,val) do {\
│ │ │ │ -
58 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[1] = (uint8_t)(val); } while(0)
│ │ │ │ -
59#define TDS_PUT_A2LE(ptr,val) TDS_PUT_UA2LE(ptr,val)
│ │ │ │ -
60#define TDS_PUT_A2BE(ptr,val) TDS_PUT_UA2BE(ptr,val)
│ │ │ │ -
61
│ │ │ │ -
62/* four bytes */
│ │ │ │ -
63#define TDS_GET_UA4LE(ptr) \
│ │ │ │ -
64 (((uint8_t *)(ptr))[3] * 0x1000000u + ((uint8_t *)(ptr))[2] * 0x10000u +\
│ │ │ │ -
65 ((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0])
│ │ │ │ -
66#define TDS_GET_UA4BE(ptr) \
│ │ │ │ -
67 (((uint8_t *)(ptr))[0] * 0x1000000u + ((uint8_t *)(ptr))[1] * 0x10000u +\
│ │ │ │ -
68 ((uint8_t *)(ptr))[2] * 0x100u + ((uint8_t *)(ptr))[3])
│ │ │ │ -
69#define TDS_GET_A4LE(ptr) TDS_GET_UA4LE(ptr)
│ │ │ │ -
70#define TDS_GET_A4BE(ptr) TDS_GET_UA4BE(ptr)
│ │ │ │ -
71
│ │ │ │ -
72#define TDS_PUT_UA4LE(ptr,val) do {\
│ │ │ │ -
73 ((uint8_t *)(ptr))[3] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>16);\
│ │ │ │ -
74 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = (uint8_t)(val); } while(0)
│ │ │ │ -
75#define TDS_PUT_UA4BE(ptr,val) do {\
│ │ │ │ -
76 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>16);\
│ │ │ │ -
77 ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[3] = (uint8_t)(val); } while(0)
│ │ │ │ -
78#define TDS_PUT_A4LE(ptr,val) TDS_PUT_UA4LE(ptr,val)
│ │ │ │ -
79#define TDS_PUT_A4BE(ptr,val) TDS_PUT_UA4BE(ptr,val)
│ │ │ │ -
80
│ │ │ │ -
81#if defined(__GNUC__)
│ │ │ │ -
82# define TDS_MAY_ALIAS __attribute__((__may_alias__))
│ │ │ │ -
83#else
│ │ │ │ -
84# define TDS_MAY_ALIAS
│ │ │ │ -
85#endif
│ │ │ │ -
86
│ │ │ │ -
│ │ │ │ -
87typedef union {
│ │ │ │ -
88 uint16_t usi;
│ │ │ │ -
89 uint8_t uc[2];
│ │ │ │ -
90} TDS_MAY_ALIAS TDS_BYTE_CONVERT2;
│ │ │ │ -
│ │ │ │ -
91
│ │ │ │ -
92typedef union {
│ │ │ │ -
93 uint32_t ui;
│ │ │ │ -
94 uint8_t uc[4];
│ │ │ │ -
95} TDS_MAY_ALIAS TDS_BYTE_CONVERT4;
│ │ │ │ -
96
│ │ │ │ -
97/* architecture dependent */
│ │ │ │ -
98/* map to generic macros or redefine for aligned and same endianess */
│ │ │ │ -
99#ifdef WORDS_BIGENDIAN
│ │ │ │ -
100# define TDS_GET_A1(ptr) TDS_GET_A1BE(ptr)
│ │ │ │ -
101# define TDS_GET_UA1(ptr) TDS_GET_UA1BE(ptr)
│ │ │ │ -
102# define TDS_GET_A2(ptr) TDS_GET_A2BE(ptr)
│ │ │ │ -
103# define TDS_GET_UA2(ptr) TDS_GET_UA2BE(ptr)
│ │ │ │ -
104# define TDS_GET_A4(ptr) TDS_GET_A4BE(ptr)
│ │ │ │ -
105# define TDS_GET_UA4(ptr) TDS_GET_UA4BE(ptr)
│ │ │ │ -
106# undef TDS_GET_A2BE
│ │ │ │ -
107# undef TDS_GET_A4BE
│ │ │ │ -
108# define TDS_GET_A2BE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi)
│ │ │ │ -
109# define TDS_GET_A4BE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui)
│ │ │ │ -
110
│ │ │ │ -
111# define TDS_PUT_A1(ptr,val) TDS_PUT_A1BE(ptr,val)
│ │ │ │ -
112# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1BE(ptr,val)
│ │ │ │ -
113# define TDS_PUT_A2(ptr,val) TDS_PUT_A2BE(ptr,val)
│ │ │ │ -
114# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2BE(ptr,val)
│ │ │ │ -
115# define TDS_PUT_A4(ptr,val) TDS_PUT_A4BE(ptr,val)
│ │ │ │ -
116# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4BE(ptr,val)
│ │ │ │ -
117# undef TDS_PUT_A2BE
│ │ │ │ -
118# undef TDS_PUT_A4BE
│ │ │ │ -
119# define TDS_PUT_A2BE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val))
│ │ │ │ -
120# define TDS_PUT_A4BE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val))
│ │ │ │ -
121# define TDS_HOST2LE(val) TDS_BYTE_SWAP16(val)
│ │ │ │ -
122# define TDS_HOST4LE(val) TDS_BYTE_SWAP32(val)
│ │ │ │ -
123# define TDS_HOST2BE(val) (val)
│ │ │ │ -
124# define TDS_HOST4BE(val) (val)
│ │ │ │ -
125#else
│ │ │ │ -
126# define TDS_GET_A1(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ -
127# define TDS_GET_UA1(ptr) TDS_GET_UA1LE(ptr)
│ │ │ │ -
128# define TDS_GET_A2(ptr) TDS_GET_A2LE(ptr)
│ │ │ │ -
129# define TDS_GET_UA2(ptr) TDS_GET_UA2LE(ptr)
│ │ │ │ -
130# define TDS_GET_A4(ptr) TDS_GET_A4LE(ptr)
│ │ │ │ -
131# define TDS_GET_UA4(ptr) TDS_GET_UA4LE(ptr)
│ │ │ │ -
132# undef TDS_GET_A2LE
│ │ │ │ -
133# undef TDS_GET_A4LE
│ │ │ │ -
134# define TDS_GET_A2LE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi)
│ │ │ │ -
135# define TDS_GET_A4LE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui)
│ │ │ │ -
136
│ │ │ │ -
137# define TDS_PUT_A1(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ -
138# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1LE(ptr,val)
│ │ │ │ -
139# define TDS_PUT_A2(ptr,val) TDS_PUT_A2LE(ptr,val)
│ │ │ │ -
140# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2LE(ptr,val)
│ │ │ │ -
141# define TDS_PUT_A4(ptr,val) TDS_PUT_A4LE(ptr,val)
│ │ │ │ -
142# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4LE(ptr,val)
│ │ │ │ -
143# undef TDS_PUT_A2LE
│ │ │ │ -
144# undef TDS_PUT_A4LE
│ │ │ │ -
145# define TDS_PUT_A2LE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val))
│ │ │ │ -
146# define TDS_PUT_A4LE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val))
│ │ │ │ -
147# define TDS_HOST2LE(val) (val)
│ │ │ │ -
148# define TDS_HOST4LE(val) (val)
│ │ │ │ -
149# define TDS_HOST2BE(val) TDS_BYTE_SWAP16(val)
│ │ │ │ -
150# define TDS_HOST4BE(val) TDS_BYTE_SWAP32(val)
│ │ │ │ -
151#endif
│ │ │ │ -
152
│ │ │ │ -
153/* these platform support unaligned fetch/store */
│ │ │ │ -
154/* map unaligned macro to aligned ones */
│ │ │ │ -
155#if defined(__i386__) || defined(__amd64__) || defined(__CRIS__) ||\
│ │ │ │ -
156 defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__) ||\
│ │ │ │ -
157 defined(__s390__) || defined(__s390x__) || defined(__m68k__) ||\
│ │ │ │ -
158 (defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_IX86) || defined(_M_X64))) ||\
│ │ │ │ -
159 defined(__ARM_FEATURE_UNALIGNED) ||\
│ │ │ │ -
160 defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) ||\
│ │ │ │ -
161 (defined(_M_ARM) && (_M_ARM >= 7))
│ │ │ │ -
162# ifdef WORDS_BIGENDIAN
│ │ │ │ -
163# undef TDS_GET_UA2BE
│ │ │ │ -
164# undef TDS_GET_UA4BE
│ │ │ │ -
165# define TDS_GET_UA2BE(ptr) TDS_GET_A2BE(ptr)
│ │ │ │ -
166# define TDS_GET_UA4BE(ptr) TDS_GET_A4BE(ptr)
│ │ │ │ -
167
│ │ │ │ -
168# undef TDS_PUT_UA2BE
│ │ │ │ -
169# undef TDS_PUT_UA4BE
│ │ │ │ -
170# define TDS_PUT_UA2BE(ptr,val) TDS_PUT_A2BE(ptr,val)
│ │ │ │ -
171# define TDS_PUT_UA4BE(ptr,val) TDS_PUT_A4BE(ptr,val)
│ │ │ │ -
172# else
│ │ │ │ -
173# undef TDS_GET_UA2LE
│ │ │ │ -
174# undef TDS_GET_UA4LE
│ │ │ │ -
175# define TDS_GET_UA2LE(ptr) TDS_GET_A2LE(ptr)
│ │ │ │ -
176# define TDS_GET_UA4LE(ptr) TDS_GET_A4LE(ptr)
│ │ │ │ -
177
│ │ │ │ -
178# undef TDS_PUT_UA2LE
│ │ │ │ -
179# undef TDS_PUT_UA4LE
│ │ │ │ -
180# define TDS_PUT_UA2LE(ptr,val) TDS_PUT_A2LE(ptr,val)
│ │ │ │ -
181# define TDS_PUT_UA4LE(ptr,val) TDS_PUT_A4LE(ptr,val)
│ │ │ │ -
182# endif
│ │ │ │ -
183#endif
│ │ │ │ -
184
│ │ │ │ -
185#undef TDS_BSWAP16
│ │ │ │ -
186#undef TDS_BSWAP32
│ │ │ │ -
187/* __builtin_bswap16 was introduced in GCC 4.8 */
│ │ │ │ -
188#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && defined(__OPTIMIZE__)
│ │ │ │ -
189# define TDS_BSWAP16(val) __builtin_bswap16(val)
│ │ │ │ -
190# define TDS_BSWAP32(val) __builtin_bswap32(val)
│ │ │ │ -
191/* __builtin_bswap32 was introduced in GCC 4.3 */
│ │ │ │ -
192#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && defined(__OPTIMIZE__)
│ │ │ │ -
193# define TDS_BSWAP32(val) __builtin_bswap32(val)
│ │ │ │ -
194#elif defined(_MSC_VER)
│ │ │ │ -
195# define TDS_BSWAP16(val) _byteswap_ushort(val)
│ │ │ │ -
196# define TDS_BSWAP32(val) _byteswap_ulong(val)
│ │ │ │ -
197#endif
│ │ │ │ -
198
│ │ │ │ -
199#if defined(TDS_BSWAP16) && !defined(WORDS_BIGENDIAN)
│ │ │ │ -
200# undef TDS_GET_UA2BE
│ │ │ │ -
201# define TDS_GET_UA2BE(ptr) TDS_BSWAP16(TDS_GET_UA2LE(ptr))
│ │ │ │ -
202
│ │ │ │ -
203# undef TDS_PUT_UA2BE
│ │ │ │ -
204# define TDS_PUT_UA2BE(ptr,val) do {\
│ │ │ │ -
205 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0)
│ │ │ │ -
206#elif defined(TDS_BSWAP16) && defined(WORDS_BIGENDIAN)
│ │ │ │ -
207# undef TDS_GET_UA2LE
│ │ │ │ -
208# define TDS_GET_UA2LE(ptr) TDS_BSWAP16(TDS_GET_UA2BE(ptr))
│ │ │ │ -
209
│ │ │ │ -
210# undef TDS_PUT_UA2LE
│ │ │ │ -
211# define TDS_PUT_UA2LE(ptr,val) do {\
│ │ │ │ -
212 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2BE(ptr,_tds_si); } while(0)
│ │ │ │ -
213#endif
│ │ │ │ -
214
│ │ │ │ -
215#if defined(TDS_BSWAP32) && !defined(WORDS_BIGENDIAN)
│ │ │ │ -
216# undef TDS_GET_UA4BE
│ │ │ │ -
217# define TDS_GET_UA4BE(ptr) TDS_BSWAP32(TDS_GET_UA4LE(ptr))
│ │ │ │ -
218
│ │ │ │ -
219# undef TDS_PUT_UA4BE
│ │ │ │ -
220# define TDS_PUT_UA4BE(ptr,val) do {\
│ │ │ │ -
221 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0)
│ │ │ │ -
222#elif defined(TDS_BSWAP32) && defined(WORDS_BIGENDIAN)
│ │ │ │ -
223# undef TDS_GET_UA4LE
│ │ │ │ -
224# define TDS_GET_UA4LE(ptr) TDS_BSWAP32(TDS_GET_UA4BE(ptr))
│ │ │ │ -
225
│ │ │ │ -
226# undef TDS_PUT_UA4LE
│ │ │ │ -
227# define TDS_PUT_UA4LE(ptr,val) do {\
│ │ │ │ -
228 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4BE(ptr,_tds_i); } while(0)
│ │ │ │ -
229#endif
│ │ │ │ -
230
│ │ │ │ -
231#if defined(__GNUC__) && defined(__powerpc__) && defined(WORDS_BIGENDIAN)
│ │ │ │ -
232# undef TDS_GET_UA2LE
│ │ │ │ -
233# undef TDS_GET_UA4LE
│ │ │ │ -
234static inline uint16_t
│ │ │ │ -
235TDS_GET_UA2LE(void *ptr)
│ │ │ │ -
236{
│ │ │ │ -
237 unsigned long res;
│ │ │ │ -
238 __asm__ ("lhbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint16_t *)ptr));
│ │ │ │ -
239 return (uint16_t) res;
│ │ │ │ -
240}
│ │ │ │ -
241static inline uint32_t
│ │ │ │ -
242TDS_GET_UA4LE(void *ptr)
│ │ │ │ -
243{
│ │ │ │ -
244 unsigned long res;
│ │ │ │ -
245 __asm__ ("lwbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint32_t *)ptr));
│ │ │ │ -
246 return (uint32_t) res;
│ │ │ │ -
247}
│ │ │ │ -
248
│ │ │ │ -
249# undef TDS_PUT_UA2LE
│ │ │ │ -
250# undef TDS_PUT_UA4LE
│ │ │ │ -
251static inline void
│ │ │ │ -
252TDS_PUT_UA2LE(void *ptr, unsigned data)
│ │ │ │ -
253{
│ │ │ │ -
254 __asm__ ("sthbrx %1,0,%2\n" : "=m" (*(uint16_t *)ptr) : "r" (data), "r" (ptr));
│ │ │ │ -
255}
│ │ │ │ -
256static inline void
│ │ │ │ -
257TDS_PUT_UA4LE(void *ptr, unsigned data)
│ │ │ │ -
258{
│ │ │ │ -
259 __asm__ ("stwbrx %1,0,%2\n" : "=m" (*(uint32_t *)ptr) : "r" (data), "r" (ptr));
│ │ │ │ -
260}
│ │ │ │ -
261#endif
│ │ │ │ -
262
│ │ │ │ -
263#endif
│ │ │ │ -
Definition bytes.h:87
│ │ │ │ +
44
│ │ │ │ +
45#endif
│ │ │ │ +
46
│ │ │ │ +
47#endif /* !MD4_H */
│ │ │ │ +
Definition md4.h:9
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,290 +1,59 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -bytes.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2005-2008 Frediano Ziglio │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef _tdsbytes_h_ │ │ │ │ │ -21#define _tdsbytes_h_ │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +md4.h │ │ │ │ │ +1#ifndef MD4_H │ │ │ │ │ +2#define MD4_H │ │ │ │ │ +3 │ │ │ │ │ +4#ifndef HAVE_NETTLE │ │ │ │ │ +5 │ │ │ │ │ +6#include │ │ │ │ │ +7 │ │ │ │ │ +_8struct _M_D_4_C_o_n_t_e_x_t │ │ │ │ │ +9{ │ │ │ │ │ +10 uint32_t buf[4]; │ │ │ │ │ +11 uint64_t bytes; │ │ │ │ │ +12 uint32_t in[16]; │ │ │ │ │ +13}; │ │ │ │ │ +14 │ │ │ │ │ +15void MD4Init(struct _M_D_4_C_o_n_t_e_x_t *context); │ │ │ │ │ +16void MD4Update(struct _M_D_4_C_o_n_t_e_x_t *context, const uint8_t *buf, size_t len); │ │ │ │ │ +17void MD4Final(struct _M_D_4_C_o_n_t_e_x_t *context, uint8_t *digest); │ │ │ │ │ +18 │ │ │ │ │ +19typedef struct _M_D_4_C_o_n_t_e_x_t _M_D_4___C_T_X; │ │ │ │ │ +20 │ │ │ │ │ +21#include │ │ │ │ │ 22 │ │ │ │ │ -23/* │ │ │ │ │ -24 * read a word of n bytes aligned, architecture dependent endian │ │ │ │ │ -25 * TDS_GET_An │ │ │ │ │ -26 * read a word of n bytes aligned, little endian │ │ │ │ │ -27 * TDS_GET_AnLE │ │ │ │ │ -28 * read a word of n bytes aligned, big endian │ │ │ │ │ -29 * TDS_GET_AnBE │ │ │ │ │ -30 * read a word of n bytes unaligned, architecture dependent endian │ │ │ │ │ -31 * TDS_GET_UAn │ │ │ │ │ -32 * read a word of n bytes unaligned, little endian │ │ │ │ │ -33 * TDS_GET_UAnLE │ │ │ │ │ -34 * read a word of n bytes unaligned, big endian │ │ │ │ │ -35 * TDS_GET_UAnBE │ │ │ │ │ -36 */ │ │ │ │ │ -37 │ │ │ │ │ -38/* one byte, easy... */ │ │ │ │ │ -39#define TDS_GET_A1LE(ptr) (((uint8_t *)(ptr))[0]) │ │ │ │ │ -40#define TDS_GET_A1BE(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ -41#define TDS_GET_UA1LE(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ -42#define TDS_GET_UA1BE(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ +23#else │ │ │ │ │ +24 │ │ │ │ │ +25#include │ │ │ │ │ +26 │ │ │ │ │ +27typedef struct md4_ctx _M_D_4___C_T_X; │ │ │ │ │ +28 │ │ │ │ │ +29static inline void MD4Init(_M_D_4___C_T_X *ctx) │ │ │ │ │ +30{ │ │ │ │ │ +31 nettle_md4_init(ctx); │ │ │ │ │ +32} │ │ │ │ │ +33 │ │ │ │ │ +34static inline void MD4Update(_M_D_4___C_T_X *ctx, const uint8_t *buf, size_t len) │ │ │ │ │ +35{ │ │ │ │ │ +36 nettle_md4_update(ctx, len, buf); │ │ │ │ │ +37} │ │ │ │ │ +38 │ │ │ │ │ +39static inline void MD4Final(_M_D_4___C_T_X *ctx, uint8_t *digest) │ │ │ │ │ +40{ │ │ │ │ │ +41 nettle_md4_digest(ctx, 16, digest); │ │ │ │ │ +42} │ │ │ │ │ 43 │ │ │ │ │ -44#define TDS_PUT_A1LE(ptr,val) do { ((uint8_t *)(ptr))[0] = (val); } while(0) │ │ │ │ │ -45#define TDS_PUT_A1BE(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ -46#define TDS_PUT_UA1LE(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ -47#define TDS_PUT_UA1BE(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ -48 │ │ │ │ │ -49/* two bytes */ │ │ │ │ │ -50#define TDS_GET_UA2LE(ptr) (((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *) │ │ │ │ │ -(ptr))[0]) │ │ │ │ │ -51#define TDS_GET_UA2BE(ptr) (((uint8_t *)(ptr))[0] * 0x100u + ((uint8_t *) │ │ │ │ │ -(ptr))[1]) │ │ │ │ │ -52#define TDS_GET_A2LE(ptr) TDS_GET_UA2LE(ptr) │ │ │ │ │ -53#define TDS_GET_A2BE(ptr) TDS_GET_UA2BE(ptr) │ │ │ │ │ -54 │ │ │ │ │ -55#define TDS_PUT_UA2LE(ptr,val) do {\ │ │ │ │ │ -56 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = │ │ │ │ │ -(uint8_t)(val); } while(0) │ │ │ │ │ -57#define TDS_PUT_UA2BE(ptr,val) do {\ │ │ │ │ │ -58 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[1] = │ │ │ │ │ -(uint8_t)(val); } while(0) │ │ │ │ │ -59#define TDS_PUT_A2LE(ptr,val) TDS_PUT_UA2LE(ptr,val) │ │ │ │ │ -60#define TDS_PUT_A2BE(ptr,val) TDS_PUT_UA2BE(ptr,val) │ │ │ │ │ -61 │ │ │ │ │ -62/* four bytes */ │ │ │ │ │ -63#define TDS_GET_UA4LE(ptr) \ │ │ │ │ │ -64 (((uint8_t *)(ptr))[3] * 0x1000000u + ((uint8_t *)(ptr))[2] * 0x10000u +\ │ │ │ │ │ -65 ((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0]) │ │ │ │ │ -66#define TDS_GET_UA4BE(ptr) \ │ │ │ │ │ -67 (((uint8_t *)(ptr))[0] * 0x1000000u + ((uint8_t *)(ptr))[1] * 0x10000u +\ │ │ │ │ │ -68 ((uint8_t *)(ptr))[2] * 0x100u + ((uint8_t *)(ptr))[3]) │ │ │ │ │ -69#define TDS_GET_A4LE(ptr) TDS_GET_UA4LE(ptr) │ │ │ │ │ -70#define TDS_GET_A4BE(ptr) TDS_GET_UA4BE(ptr) │ │ │ │ │ -71 │ │ │ │ │ -72#define TDS_PUT_UA4LE(ptr,val) do {\ │ │ │ │ │ -73 ((uint8_t *)(ptr))[3] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[2] = │ │ │ │ │ -(uint8_t)((val)>>16);\ │ │ │ │ │ -74 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = │ │ │ │ │ -(uint8_t)(val); } while(0) │ │ │ │ │ -75#define TDS_PUT_UA4BE(ptr,val) do {\ │ │ │ │ │ -76 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[1] = │ │ │ │ │ -(uint8_t)((val)>>16);\ │ │ │ │ │ -77 ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[3] = │ │ │ │ │ -(uint8_t)(val); } while(0) │ │ │ │ │ -78#define TDS_PUT_A4LE(ptr,val) TDS_PUT_UA4LE(ptr,val) │ │ │ │ │ -79#define TDS_PUT_A4BE(ptr,val) TDS_PUT_UA4BE(ptr,val) │ │ │ │ │ -80 │ │ │ │ │ -81#if defined(__GNUC__) │ │ │ │ │ -82# define TDS_MAY_ALIAS __attribute__((__may_alias__)) │ │ │ │ │ -83#else │ │ │ │ │ -84# define TDS_MAY_ALIAS │ │ │ │ │ -85#endif │ │ │ │ │ -86 │ │ │ │ │ -_8_7typedef union { │ │ │ │ │ -88 uint16_t usi; │ │ │ │ │ -89 uint8_t uc[2]; │ │ │ │ │ -90} _T_D_S___M_A_Y___A_L_I_A_S TDS_BYTE_CONVERT2; │ │ │ │ │ -91 │ │ │ │ │ -92typedef union { │ │ │ │ │ -93 uint32_t ui; │ │ │ │ │ -94 uint8_t uc[4]; │ │ │ │ │ -95} _T_D_S___M_A_Y___A_L_I_A_S TDS_BYTE_CONVERT4; │ │ │ │ │ -96 │ │ │ │ │ -97/* architecture dependent */ │ │ │ │ │ -98/* map to generic macros or redefine for aligned and same endianess */ │ │ │ │ │ -99#ifdef WORDS_BIGENDIAN │ │ │ │ │ -100# define TDS_GET_A1(ptr) TDS_GET_A1BE(ptr) │ │ │ │ │ -101# define TDS_GET_UA1(ptr) TDS_GET_UA1BE(ptr) │ │ │ │ │ -102# define TDS_GET_A2(ptr) TDS_GET_A2BE(ptr) │ │ │ │ │ -103# define TDS_GET_UA2(ptr) TDS_GET_UA2BE(ptr) │ │ │ │ │ -104# define TDS_GET_A4(ptr) TDS_GET_A4BE(ptr) │ │ │ │ │ -105# define TDS_GET_UA4(ptr) TDS_GET_UA4BE(ptr) │ │ │ │ │ -106# undef TDS_GET_A2BE │ │ │ │ │ -107# undef TDS_GET_A4BE │ │ │ │ │ -108# define TDS_GET_A2BE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi) │ │ │ │ │ -109# define TDS_GET_A4BE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui) │ │ │ │ │ -110 │ │ │ │ │ -111# define TDS_PUT_A1(ptr,val) TDS_PUT_A1BE(ptr,val) │ │ │ │ │ -112# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1BE(ptr,val) │ │ │ │ │ -113# define TDS_PUT_A2(ptr,val) TDS_PUT_A2BE(ptr,val) │ │ │ │ │ -114# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2BE(ptr,val) │ │ │ │ │ -115# define TDS_PUT_A4(ptr,val) TDS_PUT_A4BE(ptr,val) │ │ │ │ │ -116# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4BE(ptr,val) │ │ │ │ │ -117# undef TDS_PUT_A2BE │ │ │ │ │ -118# undef TDS_PUT_A4BE │ │ │ │ │ -119# define TDS_PUT_A2BE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val)) │ │ │ │ │ -120# define TDS_PUT_A4BE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val)) │ │ │ │ │ -121# define TDS_HOST2LE(val) TDS_BYTE_SWAP16(val) │ │ │ │ │ -122# define TDS_HOST4LE(val) TDS_BYTE_SWAP32(val) │ │ │ │ │ -123# define TDS_HOST2BE(val) (val) │ │ │ │ │ -124# define TDS_HOST4BE(val) (val) │ │ │ │ │ -125#else │ │ │ │ │ -126# define TDS_GET_A1(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ -127# define TDS_GET_UA1(ptr) TDS_GET_UA1LE(ptr) │ │ │ │ │ -128# define TDS_GET_A2(ptr) TDS_GET_A2LE(ptr) │ │ │ │ │ -129# define TDS_GET_UA2(ptr) TDS_GET_UA2LE(ptr) │ │ │ │ │ -130# define TDS_GET_A4(ptr) TDS_GET_A4LE(ptr) │ │ │ │ │ -131# define TDS_GET_UA4(ptr) TDS_GET_UA4LE(ptr) │ │ │ │ │ -132# undef TDS_GET_A2LE │ │ │ │ │ -133# undef TDS_GET_A4LE │ │ │ │ │ -134# define TDS_GET_A2LE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi) │ │ │ │ │ -135# define TDS_GET_A4LE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui) │ │ │ │ │ -136 │ │ │ │ │ -137# define TDS_PUT_A1(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ -138# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1LE(ptr,val) │ │ │ │ │ -139# define TDS_PUT_A2(ptr,val) TDS_PUT_A2LE(ptr,val) │ │ │ │ │ -140# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2LE(ptr,val) │ │ │ │ │ -141# define TDS_PUT_A4(ptr,val) TDS_PUT_A4LE(ptr,val) │ │ │ │ │ -142# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4LE(ptr,val) │ │ │ │ │ -143# undef TDS_PUT_A2LE │ │ │ │ │ -144# undef TDS_PUT_A4LE │ │ │ │ │ -145# define TDS_PUT_A2LE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val)) │ │ │ │ │ -146# define TDS_PUT_A4LE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val)) │ │ │ │ │ -147# define TDS_HOST2LE(val) (val) │ │ │ │ │ -148# define TDS_HOST4LE(val) (val) │ │ │ │ │ -149# define TDS_HOST2BE(val) TDS_BYTE_SWAP16(val) │ │ │ │ │ -150# define TDS_HOST4BE(val) TDS_BYTE_SWAP32(val) │ │ │ │ │ -151#endif │ │ │ │ │ -152 │ │ │ │ │ -153/* these platform support unaligned fetch/store */ │ │ │ │ │ -154/* map unaligned macro to aligned ones */ │ │ │ │ │ -155#if defined(__i386__) || defined(__amd64__) || defined(__CRIS__) ||\ │ │ │ │ │ -156 defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || │ │ │ │ │ -defined(__ppc64__) ||\ │ │ │ │ │ -157 defined(__s390__) || defined(__s390x__) || defined(__m68k__) ||\ │ │ │ │ │ -158 (defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_IX86) || defined │ │ │ │ │ -(_M_X64))) ||\ │ │ │ │ │ -159 defined(__ARM_FEATURE_UNALIGNED) ||\ │ │ │ │ │ -160 defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) ||\ │ │ │ │ │ -161 (defined(_M_ARM) && (_M_ARM >= 7)) │ │ │ │ │ -162# ifdef WORDS_BIGENDIAN │ │ │ │ │ -163# undef TDS_GET_UA2BE │ │ │ │ │ -164# undef TDS_GET_UA4BE │ │ │ │ │ -165# define TDS_GET_UA2BE(ptr) TDS_GET_A2BE(ptr) │ │ │ │ │ -166# define TDS_GET_UA4BE(ptr) TDS_GET_A4BE(ptr) │ │ │ │ │ -167 │ │ │ │ │ -168# undef TDS_PUT_UA2BE │ │ │ │ │ -169# undef TDS_PUT_UA4BE │ │ │ │ │ -170# define TDS_PUT_UA2BE(ptr,val) TDS_PUT_A2BE(ptr,val) │ │ │ │ │ -171# define TDS_PUT_UA4BE(ptr,val) TDS_PUT_A4BE(ptr,val) │ │ │ │ │ -172# else │ │ │ │ │ -173# undef TDS_GET_UA2LE │ │ │ │ │ -174# undef TDS_GET_UA4LE │ │ │ │ │ -175# define TDS_GET_UA2LE(ptr) TDS_GET_A2LE(ptr) │ │ │ │ │ -176# define TDS_GET_UA4LE(ptr) TDS_GET_A4LE(ptr) │ │ │ │ │ -177 │ │ │ │ │ -178# undef TDS_PUT_UA2LE │ │ │ │ │ -179# undef TDS_PUT_UA4LE │ │ │ │ │ -180# define TDS_PUT_UA2LE(ptr,val) TDS_PUT_A2LE(ptr,val) │ │ │ │ │ -181# define TDS_PUT_UA4LE(ptr,val) TDS_PUT_A4LE(ptr,val) │ │ │ │ │ -182# endif │ │ │ │ │ -183#endif │ │ │ │ │ -184 │ │ │ │ │ -185#undef TDS_BSWAP16 │ │ │ │ │ -186#undef TDS_BSWAP32 │ │ │ │ │ -187/* __builtin_bswap16 was introduced in GCC 4.8 */ │ │ │ │ │ -188#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ │ │ │ │ │ ->= 8)) && defined(__OPTIMIZE__) │ │ │ │ │ -189# define TDS_BSWAP16(val) __builtin_bswap16(val) │ │ │ │ │ -190# define TDS_BSWAP32(val) __builtin_bswap32(val) │ │ │ │ │ -191/* __builtin_bswap32 was introduced in GCC 4.3 */ │ │ │ │ │ -192#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ │ │ │ │ │ ->= 3)) && defined(__OPTIMIZE__) │ │ │ │ │ -193# define TDS_BSWAP32(val) __builtin_bswap32(val) │ │ │ │ │ -194#elif defined(_MSC_VER) │ │ │ │ │ -195# define TDS_BSWAP16(val) _byteswap_ushort(val) │ │ │ │ │ -196# define TDS_BSWAP32(val) _byteswap_ulong(val) │ │ │ │ │ -197#endif │ │ │ │ │ -198 │ │ │ │ │ -199#if defined(TDS_BSWAP16) && !defined(WORDS_BIGENDIAN) │ │ │ │ │ -200# undef TDS_GET_UA2BE │ │ │ │ │ -201# define TDS_GET_UA2BE(ptr) TDS_BSWAP16(TDS_GET_UA2LE(ptr)) │ │ │ │ │ -202 │ │ │ │ │ -203# undef TDS_PUT_UA2BE │ │ │ │ │ -204# define TDS_PUT_UA2BE(ptr,val) do {\ │ │ │ │ │ -205 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0) │ │ │ │ │ -206#elif defined(TDS_BSWAP16) && defined(WORDS_BIGENDIAN) │ │ │ │ │ -207# undef TDS_GET_UA2LE │ │ │ │ │ -208# define TDS_GET_UA2LE(ptr) TDS_BSWAP16(TDS_GET_UA2BE(ptr)) │ │ │ │ │ -209 │ │ │ │ │ -210# undef TDS_PUT_UA2LE │ │ │ │ │ -211# define TDS_PUT_UA2LE(ptr,val) do {\ │ │ │ │ │ -212 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2BE(ptr,_tds_si); } while(0) │ │ │ │ │ -213#endif │ │ │ │ │ -214 │ │ │ │ │ -215#if defined(TDS_BSWAP32) && !defined(WORDS_BIGENDIAN) │ │ │ │ │ -216# undef TDS_GET_UA4BE │ │ │ │ │ -217# define TDS_GET_UA4BE(ptr) TDS_BSWAP32(TDS_GET_UA4LE(ptr)) │ │ │ │ │ -218 │ │ │ │ │ -219# undef TDS_PUT_UA4BE │ │ │ │ │ -220# define TDS_PUT_UA4BE(ptr,val) do {\ │ │ │ │ │ -221 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0) │ │ │ │ │ -222#elif defined(TDS_BSWAP32) && defined(WORDS_BIGENDIAN) │ │ │ │ │ -223# undef TDS_GET_UA4LE │ │ │ │ │ -224# define TDS_GET_UA4LE(ptr) TDS_BSWAP32(TDS_GET_UA4BE(ptr)) │ │ │ │ │ -225 │ │ │ │ │ -226# undef TDS_PUT_UA4LE │ │ │ │ │ -227# define TDS_PUT_UA4LE(ptr,val) do {\ │ │ │ │ │ -228 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4BE(ptr,_tds_i); } while(0) │ │ │ │ │ -229#endif │ │ │ │ │ -230 │ │ │ │ │ -231#if defined(__GNUC__) && defined(__powerpc__) && defined(WORDS_BIGENDIAN) │ │ │ │ │ -232# undef TDS_GET_UA2LE │ │ │ │ │ -233# undef TDS_GET_UA4LE │ │ │ │ │ -234static inline uint16_t │ │ │ │ │ -235TDS_GET_UA2LE(void *ptr) │ │ │ │ │ -236{ │ │ │ │ │ -237 unsigned long res; │ │ │ │ │ -238 __asm__ ("lhbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint16_t │ │ │ │ │ -*)ptr)); │ │ │ │ │ -239 return (uint16_t) res; │ │ │ │ │ -240} │ │ │ │ │ -241static inline uint32_t │ │ │ │ │ -242TDS_GET_UA4LE(void *ptr) │ │ │ │ │ -243{ │ │ │ │ │ -244 unsigned long res; │ │ │ │ │ -245 __asm__ ("lwbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint32_t │ │ │ │ │ -*)ptr)); │ │ │ │ │ -246 return (uint32_t) res; │ │ │ │ │ -247} │ │ │ │ │ -248 │ │ │ │ │ -249# undef TDS_PUT_UA2LE │ │ │ │ │ -250# undef TDS_PUT_UA4LE │ │ │ │ │ -251static inline void │ │ │ │ │ -252TDS_PUT_UA2LE(void *ptr, unsigned data) │ │ │ │ │ -253{ │ │ │ │ │ -254 __asm__ ("sthbrx %1,0,%2\n" : "=m" (*(uint16_t *)ptr) : "r" (data), "r" │ │ │ │ │ -(ptr)); │ │ │ │ │ -255} │ │ │ │ │ -256static inline void │ │ │ │ │ -257TDS_PUT_UA4LE(void *ptr, unsigned data) │ │ │ │ │ -258{ │ │ │ │ │ -259 __asm__ ("stwbrx %1,0,%2\n" : "=m" (*(uint32_t *)ptr) : "r" (data), "r" │ │ │ │ │ -(ptr)); │ │ │ │ │ -260} │ │ │ │ │ -261#endif │ │ │ │ │ -262 │ │ │ │ │ -263#endif │ │ │ │ │ -_T_D_S___M_A_Y___A_L_I_A_S │ │ │ │ │ -DDeeffiinniittiioonn bytes.h:87 │ │ │ │ │ +44 │ │ │ │ │ +45#endif │ │ │ │ │ +46 │ │ │ │ │ +47#endif /* !MD4_H */ │ │ │ │ │ +_M_D_4_C_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn md4.h:9 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00395_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/configs.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/hmac_md5.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,23 +70,23 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
configs.h
│ │ │ │ +
hmac_md5.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 2008 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,43 +96,24 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _tds_configs_h_
│ │ │ │ -
21#define _tds_configs_h_
│ │ │ │ +
20#ifndef _hmac_md5_h_
│ │ │ │ +
21#define _hmac_md5_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/sysconfdir.h>
│ │ │ │ -
24
│ │ │ │ -
25#ifndef _tds_h_
│ │ │ │ -
26#error freetds/tds.h must be included before freetds/configs.h
│ │ │ │ -
27#endif
│ │ │ │ +
23#include <freetds/pushvis.h>
│ │ │ │ +
24void hmac_md5(const unsigned char key[16],
│ │ │ │ +
25 const unsigned char* data, size_t data_len,
│ │ │ │ +
26 unsigned char* digest);
│ │ │ │ +
27#include <freetds/popvis.h>
│ │ │ │
28
│ │ │ │ -
29#ifdef __cplusplus
│ │ │ │ -
30extern "C"
│ │ │ │ -
31{
│ │ │ │ -
32#if 0
│ │ │ │ -
33}
│ │ │ │ -
34#endif
│ │ │ │ -
35#endif
│ │ │ │ -
36
│ │ │ │ -
37#define FREETDS_SYSCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR "freetds.conf"
│ │ │ │ -
38#define FREETDS_POOLCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR "pool.conf"
│ │ │ │ -
39#define FREETDS_LOCALECONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR "locales.conf"
│ │ │ │ -
40
│ │ │ │ -
41#ifdef __cplusplus
│ │ │ │ -
42#if 0
│ │ │ │ -
43{
│ │ │ │ -
44#endif
│ │ │ │ -
45}
│ │ │ │ -
46#endif
│ │ │ │ -
47
│ │ │ │ -
48#endif /* _tds_configs_h_ */
│ │ │ │ +
29#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,16 +1,17 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -configs.h │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +hmac_md5.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 2008 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -20,41 +21,19 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _tds_configs_h_ │ │ │ │ │ -21#define _tds_configs_h_ │ │ │ │ │ +20#ifndef _hmac_md5_h_ │ │ │ │ │ +21#define _hmac_md5_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#ifndef _tds_h_ │ │ │ │ │ -26#error freetds/tds.h must be included before freetds/configs.h │ │ │ │ │ -27#endif │ │ │ │ │ +23#include │ │ │ │ │ +24void hmac_md5(const unsigned char key[16], │ │ │ │ │ +25 const unsigned char* data, size_t data_len, │ │ │ │ │ +26 unsigned char* digest); │ │ │ │ │ +27#include │ │ │ │ │ 28 │ │ │ │ │ -29#ifdef __cplusplus │ │ │ │ │ -30extern "C" │ │ │ │ │ -31{ │ │ │ │ │ -32#if 0 │ │ │ │ │ -33} │ │ │ │ │ -34#endif │ │ │ │ │ -35#endif │ │ │ │ │ -36 │ │ │ │ │ -37#define FREETDS_SYSCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR │ │ │ │ │ -"freetds.conf" │ │ │ │ │ -38#define FREETDS_POOLCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR │ │ │ │ │ -"pool.conf" │ │ │ │ │ -39#define FREETDS_LOCALECONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR │ │ │ │ │ -"locales.conf" │ │ │ │ │ -40 │ │ │ │ │ -41#ifdef __cplusplus │ │ │ │ │ -42#if 0 │ │ │ │ │ -43{ │ │ │ │ │ -44#endif │ │ │ │ │ -45} │ │ │ │ │ -46#endif │ │ │ │ │ -47 │ │ │ │ │ -48#endif /* _tds_configs_h_ */ │ │ │ │ │ +29#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00398_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/stream.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/bjoern-utf8.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,145 +70,52 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
stream.h
│ │ │ │ +
bjoern-utf8.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2013 Frediano Ziglio
│ │ │ │ +
1/*
│ │ │ │ +
2 * Copyright (c) 2008-2010 Bjoern Hoehrmann <bjoern@hoehrmann.de>
│ │ │ │
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ +
4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
│ │ │ │ +
5 *
│ │ │ │ +
6 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
│ │ │ │ +
7 *
│ │ │ │ +
8 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
│ │ │ │ +
9 *
│ │ │ │ +
10 * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details.
│ │ │ │ +
11 */
│ │ │ │ +
12
│ │ │ │ +
13#include <tds_sysdep_public.h>
│ │ │ │ +
14
│ │ │ │ +
15#define UTF8_ACCEPT 0
│ │ │ │ +
16#define UTF8_REJECT 12
│ │ │ │ +
17
│ │ │ │ +
18extern const uint8_t utf8_table[];
│ │ │ │
19
│ │ │ │ -
20#ifndef _freetds_stream_h_
│ │ │ │ -
21#define _freetds_stream_h_
│ │ │ │ -
22
│ │ │ │ -
23#ifndef _tds_h_
│ │ │ │ -
24#error Include tds.h first
│ │ │ │ -
25#endif
│ │ │ │ -
26
│ │ │ │ -
27#include <freetds/pushvis.h>
│ │ │ │ +
20static inline uint32_t
│ │ │ │ +
21decode_utf8(uint32_t* state, uint32_t* codep, uint32_t byte)
│ │ │ │ +
22{
│ │ │ │ +
23 uint32_t type = utf8_table[byte];
│ │ │ │ +
24
│ │ │ │ +
25 *codep = (*state != UTF8_ACCEPT) ?
│ │ │ │ +
26 (byte & 0x3fu) | (*codep << 6) :
│ │ │ │ +
27 (0xff >> type) & (byte);
│ │ │ │
28
│ │ │ │ -
│ │ │ │ -
30typedef struct tds_input_stream {
│ │ │ │ -
35 int (*read)(struct tds_input_stream *stream, void *ptr, size_t len);
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
37
│ │ │ │ -
│ │ │ │ -
39typedef struct tds_output_stream {
│ │ │ │ -
41 int (*write)(struct tds_output_stream *stream, size_t len);
│ │ │ │ -
50 char *buffer;
│ │ │ │ -
51 size_t buf_len;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
53
│ │ │ │ -
55TDSRET tds_convert_stream(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION direction,
│ │ │ │ -
56 TDSINSTREAM * istream, TDSOUTSTREAM *ostream);
│ │ │ │ -
58TDSRET tds_copy_stream(TDSINSTREAM * istream, TDSOUTSTREAM * ostream);
│ │ │ │ -
59
│ │ │ │ -
60/* Additional streams */
│ │ │ │ -
61
│ │ │ │ -
│ │ │ │ -
63typedef struct tds_datain_stream {
│ │ │ │ -
64 TDSINSTREAM stream;
│ │ │ │ -
65 size_t wire_size;
│ │ │ │ -
66 TDSSOCKET *tds;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
68
│ │ │ │ -
69void tds_datain_stream_init(TDSDATAINSTREAM * stream, TDSSOCKET * tds, size_t wire_size);
│ │ │ │ -
70
│ │ │ │ -
│ │ │ │ -
72typedef struct tds_dataout_stream {
│ │ │ │ -
73 TDSOUTSTREAM stream;
│ │ │ │ -
74 TDSSOCKET *tds;
│ │ │ │ -
75 size_t written;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
77
│ │ │ │ - │ │ │ │ -
79
│ │ │ │ -
│ │ │ │ -
81typedef struct tds_staticin_stream {
│ │ │ │ -
82 TDSINSTREAM stream;
│ │ │ │ -
83 const char *buffer;
│ │ │ │ -
84 size_t buf_left;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
86
│ │ │ │ -
87void tds_staticin_stream_init(TDSSTATICINSTREAM * stream, const void *ptr, size_t len);
│ │ │ │ -
88
│ │ │ │ -
│ │ │ │ -
92typedef struct tds_staticout_stream {
│ │ │ │ -
93 TDSOUTSTREAM stream;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
95
│ │ │ │ -
96void tds_staticout_stream_init(TDSSTATICOUTSTREAM * stream, void *ptr, size_t len);
│ │ │ │ -
97
│ │ │ │ -
│ │ │ │ -
99typedef struct tds_dynamic_stream {
│ │ │ │ -
100 TDSOUTSTREAM stream;
│ │ │ │ -
102 void **buf;
│ │ │ │ -
104 size_t allocated;
│ │ │ │ -
106 size_t size;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
108
│ │ │ │ -
109TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM * stream, void **ptr, size_t allocated);
│ │ │ │ -
110
│ │ │ │ -
111#include <freetds/popvis.h>
│ │ │ │ -
112
│ │ │ │ -
113#endif
│ │ │ │ -
114
│ │ │ │ -
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition stream.c:354
│ │ │ │ -
TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream to another.
Definition stream.c:163
│ │ │ │ -
TDSRET tds_convert_stream(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream converting characters.
Definition stream.c:71
│ │ │ │ -
void tds_staticout_stream_init(TDSSTATICOUTSTREAM *stream, void *ptr, size_t len)
Initialize an output stream for write into a static allocated buffer.
Definition stream.c:313
│ │ │ │ -
void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
Initialize a data output stream.
Definition stream.c:244
│ │ │ │ -
void tds_staticin_stream_init(TDSSTATICINSTREAM *stream, const void *ptr, size_t len)
Initialize an input stream for read from a static allocated buffer.
Definition stream.c:286
│ │ │ │ -
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition stream.c:204
│ │ │ │ -
Definition iconv.h:92
│ │ │ │ -
define a stream of data used for input
Definition stream.h:30
│ │ │ │ -
int(* read)(struct tds_input_stream *stream, void *ptr, size_t len)
read some data Return 0 if end of stream Return <0 if error (actually not defined)
Definition stream.h:35
│ │ │ │ -
define a stream of data used for output
Definition stream.h:39
│ │ │ │ -
char * buffer
write buffer.
Definition stream.h:50
│ │ │ │ -
int(* write)(struct tds_output_stream *stream, size_t len)
write len bytes from buffer, return <0 if error or len
Definition stream.h:41
│ │ │ │ -
input stream to read data from tds protocol
Definition stream.h:63
│ │ │ │ -
size_t wire_size
bytes still to read
Definition stream.h:65
│ │ │ │ -
output stream to write data to tds protocol
Definition stream.h:72
│ │ │ │ -
input stream to read data from a static buffer
Definition stream.h:81
│ │ │ │ -
output stream to write data to a static buffer.
Definition stream.h:92
│ │ │ │ -
output stream to write data to a dynamic buffer
Definition stream.h:99
│ │ │ │ -
void ** buf
where is stored the pointer
Definition stream.h:102
│ │ │ │ -
size_t size
size of data inside buffer
Definition stream.h:106
│ │ │ │ -
size_t allocated
currently allocated buffer
Definition stream.h:104
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
29 *state = utf8_table[256 + *state + type];
│ │ │ │ +
30 return *state;
│ │ │ │ +
31}
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,189 +1,53 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -stream.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2013 Frediano Ziglio │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +bjoern-utf8.h │ │ │ │ │ +1/* │ │ │ │ │ +2 * Copyright (c) 2008-2010 Bjoern Hoehrmann │ │ │ │ │ 3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ +4 * Permission is hereby granted, free of charge, to any person obtaining a │ │ │ │ │ +copy of this software and associated documentation files (the "Software"), to │ │ │ │ │ +deal in the Software without restriction, including without limitation the │ │ │ │ │ +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or │ │ │ │ │ +sell copies of the Software, and to permit persons to whom the Software is │ │ │ │ │ +furnished to do so, subject to the following conditions: │ │ │ │ │ +5 * │ │ │ │ │ +6 * The above copyright notice and this permission notice shall be included in │ │ │ │ │ +all copies or substantial portions of the Software. │ │ │ │ │ +7 * │ │ │ │ │ +8 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR │ │ │ │ │ +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, │ │ │ │ │ +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE │ │ │ │ │ +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER │ │ │ │ │ +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, │ │ │ │ │ +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE │ │ │ │ │ +SOFTWARE. │ │ │ │ │ +9 * │ │ │ │ │ +10 * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. │ │ │ │ │ +11 */ │ │ │ │ │ +12 │ │ │ │ │ +13#include │ │ │ │ │ +14 │ │ │ │ │ +15#define UTF8_ACCEPT 0 │ │ │ │ │ +16#define UTF8_REJECT 12 │ │ │ │ │ +17 │ │ │ │ │ +18extern const uint8_t utf8_table[]; │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _freetds_stream_h_ │ │ │ │ │ -21#define _freetds_stream_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#ifndef _tds_h_ │ │ │ │ │ -24#error Include tds.h first │ │ │ │ │ -25#endif │ │ │ │ │ -26 │ │ │ │ │ -27#include │ │ │ │ │ +20static inline uint32_t │ │ │ │ │ +21decode_utf8(uint32_t* state, uint32_t* codep, uint32_t byte) │ │ │ │ │ +22{ │ │ │ │ │ +23 uint32_t type = utf8_table[byte]; │ │ │ │ │ +24 │ │ │ │ │ +25 *codep = (*state != UTF8_ACCEPT) ? │ │ │ │ │ +26 (byte & 0x3fu) | (*codep << 6) : │ │ │ │ │ +27 (0xff >> type) & (byte); │ │ │ │ │ 28 │ │ │ │ │ -_3_0typedef struct _t_d_s___i_n_p_u_t___s_t_r_e_a_m { │ │ │ │ │ -_3_5 int (*_r_e_a_d)(struct _t_d_s___i_n_p_u_t___s_t_r_e_a_m *stream, void *ptr, size_t len); │ │ │ │ │ -36} _T_D_S_I_N_S_T_R_E_A_M; │ │ │ │ │ -37 │ │ │ │ │ -_3_9typedef struct _t_d_s___o_u_t_p_u_t___s_t_r_e_a_m { │ │ │ │ │ -_4_1 int (*_w_r_i_t_e)(struct _t_d_s___o_u_t_p_u_t___s_t_r_e_a_m *stream, size_t len); │ │ │ │ │ -_5_0 char *_b_u_f_f_e_r; │ │ │ │ │ -51 size_t buf_len; │ │ │ │ │ -52} _T_D_S_O_U_T_S_T_R_E_A_M; │ │ │ │ │ -53 │ │ │ │ │ -55TDSRET _t_d_s___c_o_n_v_e_r_t___s_t_r_e_a_m(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * char_conv, │ │ │ │ │ -TDS_ICONV_DIRECTION direction, │ │ │ │ │ -56 _T_D_S_I_N_S_T_R_E_A_M * istream, _T_D_S_O_U_T_S_T_R_E_A_M *ostream); │ │ │ │ │ -58TDSRET _t_d_s___c_o_p_y___s_t_r_e_a_m(_T_D_S_I_N_S_T_R_E_A_M * istream, _T_D_S_O_U_T_S_T_R_E_A_M * ostream); │ │ │ │ │ -59 │ │ │ │ │ -60/* Additional streams */ │ │ │ │ │ -61 │ │ │ │ │ -_6_3typedef struct _t_d_s___d_a_t_a_i_n___s_t_r_e_a_m { │ │ │ │ │ -64 _T_D_S_I_N_S_T_R_E_A_M stream; │ │ │ │ │ -_6_5 size_t _w_i_r_e___s_i_z_e; │ │ │ │ │ -66 _T_D_S_S_O_C_K_E_T *tds; │ │ │ │ │ -67} _T_D_S_D_A_T_A_I_N_S_T_R_E_A_M; │ │ │ │ │ -68 │ │ │ │ │ -69void _t_d_s___d_a_t_a_i_n___s_t_r_e_a_m___i_n_i_t(_T_D_S_D_A_T_A_I_N_S_T_R_E_A_M * stream, _T_D_S_S_O_C_K_E_T * tds, size_t │ │ │ │ │ -wire_size); │ │ │ │ │ -70 │ │ │ │ │ -_7_2typedef struct _t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m { │ │ │ │ │ -73 _T_D_S_O_U_T_S_T_R_E_A_M stream; │ │ │ │ │ -74 _T_D_S_S_O_C_K_E_T *tds; │ │ │ │ │ -75 size_t written; │ │ │ │ │ -76} _T_D_S_D_A_T_A_O_U_T_S_T_R_E_A_M; │ │ │ │ │ -77 │ │ │ │ │ -78void _t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m___i_n_i_t(_T_D_S_D_A_T_A_O_U_T_S_T_R_E_A_M * stream, _T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -79 │ │ │ │ │ -_8_1typedef struct _t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m { │ │ │ │ │ -82 _T_D_S_I_N_S_T_R_E_A_M stream; │ │ │ │ │ -83 const char *buffer; │ │ │ │ │ -84 size_t buf_left; │ │ │ │ │ -85} _T_D_S_S_T_A_T_I_C_I_N_S_T_R_E_A_M; │ │ │ │ │ -86 │ │ │ │ │ -87void _t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m___i_n_i_t(_T_D_S_S_T_A_T_I_C_I_N_S_T_R_E_A_M * stream, const void *ptr, │ │ │ │ │ -size_t len); │ │ │ │ │ -88 │ │ │ │ │ -_9_2typedef struct _t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m { │ │ │ │ │ -93 _T_D_S_O_U_T_S_T_R_E_A_M stream; │ │ │ │ │ -94} _T_D_S_S_T_A_T_I_C_O_U_T_S_T_R_E_A_M; │ │ │ │ │ -95 │ │ │ │ │ -96void _t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m___i_n_i_t(_T_D_S_S_T_A_T_I_C_O_U_T_S_T_R_E_A_M * stream, void *ptr, size_t │ │ │ │ │ -len); │ │ │ │ │ -97 │ │ │ │ │ -_9_9typedef struct _t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m { │ │ │ │ │ -100 _T_D_S_O_U_T_S_T_R_E_A_M stream; │ │ │ │ │ -_1_0_2 void **_b_u_f; │ │ │ │ │ -_1_0_4 size_t _a_l_l_o_c_a_t_e_d; │ │ │ │ │ -_1_0_6 size_t _s_i_z_e; │ │ │ │ │ -107} _T_D_S_D_Y_N_A_M_I_C_S_T_R_E_A_M; │ │ │ │ │ -108 │ │ │ │ │ -109TDSRET _t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m___i_n_i_t(_T_D_S_D_Y_N_A_M_I_C_S_T_R_E_A_M * stream, void **ptr, size_t │ │ │ │ │ -allocated); │ │ │ │ │ -110 │ │ │ │ │ -111#include │ │ │ │ │ -112 │ │ │ │ │ -113#endif │ │ │ │ │ -114 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ -TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t │ │ │ │ │ -allocated) │ │ │ │ │ -Initialize a dynamic output stream. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:354 │ │ │ │ │ -_t_d_s___c_o_p_y___s_t_r_e_a_m │ │ │ │ │ -TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream) │ │ │ │ │ -Reads and writes from a stream to another. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:163 │ │ │ │ │ -_t_d_s___c_o_n_v_e_r_t___s_t_r_e_a_m │ │ │ │ │ -TDSRET tds_convert_stream(TDSSOCKET *tds, TDSICONV *char_conv, │ │ │ │ │ -TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream) │ │ │ │ │ -Reads and writes from a stream converting characters. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:71 │ │ │ │ │ -_t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ -void tds_staticout_stream_init(TDSSTATICOUTSTREAM *stream, void *ptr, size_t │ │ │ │ │ -len) │ │ │ │ │ -Initialize an output stream for write into a static allocated buffer. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:313 │ │ │ │ │ -_t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ -void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds) │ │ │ │ │ -Initialize a data output stream. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:244 │ │ │ │ │ -_t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ -void tds_staticin_stream_init(TDSSTATICINSTREAM *stream, const void *ptr, │ │ │ │ │ -size_t len) │ │ │ │ │ -Initialize an input stream for read from a static allocated buffer. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:286 │ │ │ │ │ -_t_d_s___d_a_t_a_i_n___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ -void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t │ │ │ │ │ -wire_size) │ │ │ │ │ -Initialize a data input stream. │ │ │ │ │ -DDeeffiinniittiioonn stream.c:204 │ │ │ │ │ -_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ -_t_d_s___i_n_p_u_t___s_t_r_e_a_m │ │ │ │ │ -define a stream of data used for input │ │ │ │ │ -DDeeffiinniittiioonn stream.h:30 │ │ │ │ │ -_t_d_s___i_n_p_u_t___s_t_r_e_a_m_:_:_r_e_a_d │ │ │ │ │ -int(* read)(struct tds_input_stream *stream, void *ptr, size_t len) │ │ │ │ │ -read some data Return 0 if end of stream Return <0 if error (actually not │ │ │ │ │ -defined) │ │ │ │ │ -DDeeffiinniittiioonn stream.h:35 │ │ │ │ │ -_t_d_s___o_u_t_p_u_t___s_t_r_e_a_m │ │ │ │ │ -define a stream of data used for output │ │ │ │ │ -DDeeffiinniittiioonn stream.h:39 │ │ │ │ │ -_t_d_s___o_u_t_p_u_t___s_t_r_e_a_m_:_:_b_u_f_f_e_r │ │ │ │ │ -char * buffer │ │ │ │ │ -write buffer. │ │ │ │ │ -DDeeffiinniittiioonn stream.h:50 │ │ │ │ │ -_t_d_s___o_u_t_p_u_t___s_t_r_e_a_m_:_:_w_r_i_t_e │ │ │ │ │ -int(* write)(struct tds_output_stream *stream, size_t len) │ │ │ │ │ -write len bytes from buffer, return <0 if error or len │ │ │ │ │ -DDeeffiinniittiioonn stream.h:41 │ │ │ │ │ -_t_d_s___d_a_t_a_i_n___s_t_r_e_a_m │ │ │ │ │ -input stream to read data from tds protocol │ │ │ │ │ -DDeeffiinniittiioonn stream.h:63 │ │ │ │ │ -_t_d_s___d_a_t_a_i_n___s_t_r_e_a_m_:_:_w_i_r_e___s_i_z_e │ │ │ │ │ -size_t wire_size │ │ │ │ │ -bytes still to read │ │ │ │ │ -DDeeffiinniittiioonn stream.h:65 │ │ │ │ │ -_t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m │ │ │ │ │ -output stream to write data to tds protocol │ │ │ │ │ -DDeeffiinniittiioonn stream.h:72 │ │ │ │ │ -_t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m │ │ │ │ │ -input stream to read data from a static buffer │ │ │ │ │ -DDeeffiinniittiioonn stream.h:81 │ │ │ │ │ -_t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m │ │ │ │ │ -output stream to write data to a static buffer. │ │ │ │ │ -DDeeffiinniittiioonn stream.h:92 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m │ │ │ │ │ -output stream to write data to a dynamic buffer │ │ │ │ │ -DDeeffiinniittiioonn stream.h:99 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m_:_:_b_u_f │ │ │ │ │ -void ** buf │ │ │ │ │ -where is stored the pointer │ │ │ │ │ -DDeeffiinniittiioonn stream.h:102 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m_:_:_s_i_z_e │ │ │ │ │ -size_t size │ │ │ │ │ -size of data inside buffer │ │ │ │ │ -DDeeffiinniittiioonn stream.h:106 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m_:_:_a_l_l_o_c_a_t_e_d │ │ │ │ │ -size_t allocated │ │ │ │ │ -currently allocated buffer │ │ │ │ │ -DDeeffiinniittiioonn stream.h:104 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +29 *state = utf8_table[256 + *state + type]; │ │ │ │ │ +30 return *state; │ │ │ │ │ +31} │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00401_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/time.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/des.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,32 +70,68 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
time.h
│ │ │ │ +
des.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#if TIME_WITH_SYS_TIME
│ │ │ │ -
2# include <sys/time.h>
│ │ │ │ -
3# include <time.h>
│ │ │ │ -
4#else
│ │ │ │ -
5# if HAVE_SYS_TIME_H
│ │ │ │ -
6# include <sys/time.h>
│ │ │ │ -
7# else
│ │ │ │ -
8# include <time.h>
│ │ │ │ -
9# endif
│ │ │ │ -
10#endif
│ │ │ │ +
1#ifndef DES_H
│ │ │ │ +
2#define DES_H
│ │ │ │ +
3
│ │ │ │ +
4#ifdef HAVE_NETTLE
│ │ │ │ +
5#include <nettle/des.h>
│ │ │ │ +
6
│ │ │ │ +
7typedef struct des_ctx DES_KEY;
│ │ │ │ +
8#endif
│ │ │ │ +
9
│ │ │ │ +
10#include <freetds/pushvis.h>
│ │ │ │
11
│ │ │ │ +
12typedef uint8_t des_cblock[8];
│ │ │ │ +
13
│ │ │ │ +
14#ifndef HAVE_NETTLE
│ │ │ │ +
│ │ │ │ +
15typedef struct des_key
│ │ │ │ +
16{
│ │ │ │ +
17 uint8_t kn[16][8];
│ │ │ │ +
18 uint32_t sp[8][64];
│ │ │ │ +
19 uint8_t iperm[16][16][8];
│ │ │ │ +
20 uint8_t fperm[16][16][8];
│ │ │ │ +
21} DES_KEY;
│ │ │ │ +
│ │ │ │ +
22
│ │ │ │ +
23int tds_des_set_key(DES_KEY * dkey, const des_cblock user_key, int len);
│ │ │ │ +
24void tds_des_encrypt(const DES_KEY * key, des_cblock block);
│ │ │ │ +
25#endif
│ │ │ │ +
26
│ │ │ │ +
27void tds_des_set_odd_parity(des_cblock key);
│ │ │ │ +
28int tds_des_ecb_encrypt(const void *plaintext, int len, DES_KEY * akey, uint8_t *output);
│ │ │ │ +
29
│ │ │ │ +
30#include <freetds/popvis.h>
│ │ │ │ +
31
│ │ │ │ +
32#ifdef HAVE_NETTLE
│ │ │ │ +
33static inline void tds_des_encrypt(const DES_KEY * key, des_cblock block)
│ │ │ │ +
34{
│ │ │ │ +
35 nettle_des_encrypt(key, sizeof(des_cblock), block, block);
│ │ │ │ +
36}
│ │ │ │ +
37
│ │ │ │ +
38static inline int tds_des_set_key(DES_KEY * dkey, const des_cblock user_key, int len)
│ │ │ │ +
39{
│ │ │ │ +
40 return nettle_des_set_key(dkey, user_key);
│ │ │ │ +
41}
│ │ │ │ +
42#endif
│ │ │ │ +
43
│ │ │ │ +
44#endif /* !DES_H */
│ │ │ │ +
Definition des.h:16
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,20 +1,58 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -time.h │ │ │ │ │ -1#if TIME_WITH_SYS_TIME │ │ │ │ │ -2# include │ │ │ │ │ -3# include │ │ │ │ │ -4#else │ │ │ │ │ -5# if HAVE_SYS_TIME_H │ │ │ │ │ -6# include │ │ │ │ │ -7# else │ │ │ │ │ -8# include │ │ │ │ │ -9# endif │ │ │ │ │ -10#endif │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +des.h │ │ │ │ │ +1#ifndef DES_H │ │ │ │ │ +2#define DES_H │ │ │ │ │ +3 │ │ │ │ │ +4#ifdef HAVE_NETTLE │ │ │ │ │ +5#include │ │ │ │ │ +6 │ │ │ │ │ +7typedef struct des_ctx _D_E_S___K_E_Y; │ │ │ │ │ +8#endif │ │ │ │ │ +9 │ │ │ │ │ +10#include │ │ │ │ │ 11 │ │ │ │ │ +12typedef uint8_t des_cblock[8]; │ │ │ │ │ +13 │ │ │ │ │ +14#ifndef HAVE_NETTLE │ │ │ │ │ +_1_5typedef struct _d_e_s___k_e_y │ │ │ │ │ +16{ │ │ │ │ │ +17 uint8_t kn[16][8]; │ │ │ │ │ +18 uint32_t sp[8][64]; │ │ │ │ │ +19 uint8_t iperm[16][16][8]; │ │ │ │ │ +20 uint8_t fperm[16][16][8]; │ │ │ │ │ +21} _D_E_S___K_E_Y; │ │ │ │ │ +22 │ │ │ │ │ +23int tds_des_set_key(_D_E_S___K_E_Y * dkey, const des_cblock user_key, int len); │ │ │ │ │ +24void tds_des_encrypt(const _D_E_S___K_E_Y * key, des_cblock block); │ │ │ │ │ +25#endif │ │ │ │ │ +26 │ │ │ │ │ +27void tds_des_set_odd_parity(des_cblock key); │ │ │ │ │ +28int tds_des_ecb_encrypt(const void *plaintext, int len, _D_E_S___K_E_Y * akey, │ │ │ │ │ +uint8_t *output); │ │ │ │ │ +29 │ │ │ │ │ +30#include │ │ │ │ │ +31 │ │ │ │ │ +32#ifdef HAVE_NETTLE │ │ │ │ │ +33static inline void tds_des_encrypt(const _D_E_S___K_E_Y * key, des_cblock block) │ │ │ │ │ +34{ │ │ │ │ │ +35 nettle_des_encrypt(key, sizeof(des_cblock), block, block); │ │ │ │ │ +36} │ │ │ │ │ +37 │ │ │ │ │ +38static inline int tds_des_set_key(_D_E_S___K_E_Y * dkey, const des_cblock user_key, │ │ │ │ │ +int len) │ │ │ │ │ +39{ │ │ │ │ │ +40 return nettle_des_set_key(dkey, user_key); │ │ │ │ │ +41} │ │ │ │ │ +42#endif │ │ │ │ │ +43 │ │ │ │ │ +44#endif /* !DES_H */ │ │ │ │ │ +_d_e_s___k_e_y │ │ │ │ │ +DDeeffiinniittiioonn des.h:16 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00404_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/bool.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils/md5.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,64 +70,72 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
bool.h
│ │ │ │ +
md5.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2015 Frediano Ziglio
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef freetds_bool_h_
│ │ │ │ -
21#define freetds_bool_h_
│ │ │ │ +
1#ifndef MD5_H
│ │ │ │ +
2#define MD5_H
│ │ │ │ +
3
│ │ │ │ +
4#ifndef HAVE_NETTLE
│ │ │ │ +
5
│ │ │ │ +
6#include <freetds/pushvis.h>
│ │ │ │ +
7
│ │ │ │ +
│ │ │ │ +
8struct MD5Context {
│ │ │ │ +
9 uint32_t buf[4];
│ │ │ │ +
10 uint64_t bytes;
│ │ │ │ +
11 uint32_t in[16];
│ │ │ │ +
12};
│ │ │ │ +
│ │ │ │ +
13
│ │ │ │ +
14void MD5Init(struct MD5Context *context);
│ │ │ │ +
15void MD5Update(struct MD5Context *context, const uint8_t *buf, size_t len);
│ │ │ │ +
16void MD5Final(struct MD5Context *context, uint8_t *digest);
│ │ │ │ +
17
│ │ │ │ +
18/*
│ │ │ │ +
19 * This is needed to make RSAREF happy on some MS-DOS compilers.
│ │ │ │ +
20 */
│ │ │ │ +
21typedef struct MD5Context MD5_CTX;
│ │ │ │
22
│ │ │ │ -
23#ifndef __cplusplus
│ │ │ │ +
23#include <freetds/popvis.h>
│ │ │ │
24
│ │ │ │ -
25#ifdef HAVE_STDBOOL_H
│ │ │ │ +
25#else
│ │ │ │
26
│ │ │ │ -
27#include <stdbool.h>
│ │ │ │ +
27#include <nettle/md5.h>
│ │ │ │
28
│ │ │ │ -
29#else
│ │ │ │ +
29typedef struct md5_ctx MD5_CTX;
│ │ │ │
30
│ │ │ │ -
31#undef true
│ │ │ │ -
32#undef false
│ │ │ │ -
33#undef bool
│ │ │ │ -
34typedef unsigned char freetds_boolean_t;
│ │ │ │ -
35#define bool freetds_boolean_t
│ │ │ │ -
36#define true 1
│ │ │ │ -
37#define false 0
│ │ │ │ -
38
│ │ │ │ -
39#endif
│ │ │ │ +
31static inline void MD5Init(MD5_CTX *ctx)
│ │ │ │ +
32{
│ │ │ │ +
33 nettle_md5_init(ctx);
│ │ │ │ +
34}
│ │ │ │ +
35
│ │ │ │ +
36static inline void MD5Update(MD5_CTX *ctx, const uint8_t *buf, size_t len)
│ │ │ │ +
37{
│ │ │ │ +
38 nettle_md5_update(ctx, len, buf);
│ │ │ │ +
39}
│ │ │ │
40
│ │ │ │ -
41#endif
│ │ │ │ -
42
│ │ │ │ -
43#endif /* freetds_bool_h_ */
│ │ │ │ +
41static inline void MD5Final(MD5_CTX *ctx, uint8_t *digest)
│ │ │ │ +
42{
│ │ │ │ +
43 nettle_md5_digest(ctx, 16, digest);
│ │ │ │ +
44}
│ │ │ │ +
45
│ │ │ │ +
46#endif
│ │ │ │ +
47
│ │ │ │ +
48#endif /* !MD5_H */
│ │ │ │ +
Definition md5.h:8
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,52 +1,60 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -bool.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2015 Frediano Ziglio │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef freetds_bool_h_ │ │ │ │ │ -21#define freetds_bool_h_ │ │ │ │ │ + * _u_t_i_l_s │ │ │ │ │ +md5.h │ │ │ │ │ +1#ifndef MD5_H │ │ │ │ │ +2#define MD5_H │ │ │ │ │ +3 │ │ │ │ │ +4#ifndef HAVE_NETTLE │ │ │ │ │ +5 │ │ │ │ │ +6#include │ │ │ │ │ +7 │ │ │ │ │ +_8struct _M_D_5_C_o_n_t_e_x_t { │ │ │ │ │ +9 uint32_t buf[4]; │ │ │ │ │ +10 uint64_t bytes; │ │ │ │ │ +11 uint32_t in[16]; │ │ │ │ │ +12}; │ │ │ │ │ +13 │ │ │ │ │ +14void MD5Init(struct _M_D_5_C_o_n_t_e_x_t *context); │ │ │ │ │ +15void MD5Update(struct _M_D_5_C_o_n_t_e_x_t *context, const uint8_t *buf, size_t len); │ │ │ │ │ +16void MD5Final(struct _M_D_5_C_o_n_t_e_x_t *context, uint8_t *digest); │ │ │ │ │ +17 │ │ │ │ │ +18/* │ │ │ │ │ +19 * This is needed to make RSAREF happy on some MS-DOS compilers. │ │ │ │ │ +20 */ │ │ │ │ │ +21typedef struct _M_D_5_C_o_n_t_e_x_t _M_D_5___C_T_X; │ │ │ │ │ 22 │ │ │ │ │ -23#ifndef __cplusplus │ │ │ │ │ +23#include │ │ │ │ │ 24 │ │ │ │ │ -25#ifdef HAVE_STDBOOL_H │ │ │ │ │ +25#else │ │ │ │ │ 26 │ │ │ │ │ -27#include │ │ │ │ │ +27#include │ │ │ │ │ 28 │ │ │ │ │ -29#else │ │ │ │ │ +29typedef struct md5_ctx _M_D_5___C_T_X; │ │ │ │ │ 30 │ │ │ │ │ -31#undef true │ │ │ │ │ -32#undef false │ │ │ │ │ -33#undef bool │ │ │ │ │ -34typedef unsigned char freetds_boolean_t; │ │ │ │ │ -35#define bool freetds_boolean_t │ │ │ │ │ -36#define true 1 │ │ │ │ │ -37#define false 0 │ │ │ │ │ -38 │ │ │ │ │ -39#endif │ │ │ │ │ +31static inline void MD5Init(_M_D_5___C_T_X *ctx) │ │ │ │ │ +32{ │ │ │ │ │ +33 nettle_md5_init(ctx); │ │ │ │ │ +34} │ │ │ │ │ +35 │ │ │ │ │ +36static inline void MD5Update(_M_D_5___C_T_X *ctx, const uint8_t *buf, size_t len) │ │ │ │ │ +37{ │ │ │ │ │ +38 nettle_md5_update(ctx, len, buf); │ │ │ │ │ +39} │ │ │ │ │ 40 │ │ │ │ │ -41#endif │ │ │ │ │ -42 │ │ │ │ │ -43#endif /* freetds_bool_h_ */ │ │ │ │ │ +41static inline void MD5Final(_M_D_5___C_T_X *ctx, uint8_t *digest) │ │ │ │ │ +42{ │ │ │ │ │ +43 nettle_md5_digest(ctx, 16, digest); │ │ │ │ │ +44} │ │ │ │ │ +45 │ │ │ │ │ +46#endif │ │ │ │ │ +47 │ │ │ │ │ +48#endif /* !MD5_H */ │ │ │ │ │ +_M_D_5_C_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn md5.h:8 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00407_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/md5.h Source File │ │ │ │ +FreeTDS API: include/freetds/configs.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,72 +70,69 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
md5.h
│ │ │ │ +
configs.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#ifndef MD5_H
│ │ │ │ -
2#define MD5_H
│ │ │ │ -
3
│ │ │ │ -
4#ifndef HAVE_NETTLE
│ │ │ │ -
5
│ │ │ │ -
6#include <freetds/pushvis.h>
│ │ │ │ -
7
│ │ │ │ -
│ │ │ │ -
8struct MD5Context {
│ │ │ │ -
9 uint32_t buf[4];
│ │ │ │ -
10 uint64_t bytes;
│ │ │ │ -
11 uint32_t in[16];
│ │ │ │ -
12};
│ │ │ │ -
│ │ │ │ -
13
│ │ │ │ -
14void MD5Init(struct MD5Context *context);
│ │ │ │ -
15void MD5Update(struct MD5Context *context, const uint8_t *buf, size_t len);
│ │ │ │ -
16void MD5Final(struct MD5Context *context, uint8_t *digest);
│ │ │ │ -
17
│ │ │ │ -
18/*
│ │ │ │ -
19 * This is needed to make RSAREF happy on some MS-DOS compilers.
│ │ │ │ -
20 */
│ │ │ │ -
21typedef struct MD5Context MD5_CTX;
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _tds_configs_h_
│ │ │ │ +
21#define _tds_configs_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/popvis.h>
│ │ │ │ +
23#include <freetds/sysconfdir.h>
│ │ │ │
24
│ │ │ │ -
25#else
│ │ │ │ -
26
│ │ │ │ -
27#include <nettle/md5.h>
│ │ │ │ +
25#ifndef _tds_h_
│ │ │ │ +
26#error freetds/tds.h must be included before freetds/configs.h
│ │ │ │ +
27#endif
│ │ │ │
28
│ │ │ │ -
29typedef struct md5_ctx MD5_CTX;
│ │ │ │ -
30
│ │ │ │ -
31static inline void MD5Init(MD5_CTX *ctx)
│ │ │ │ -
32{
│ │ │ │ -
33 nettle_md5_init(ctx);
│ │ │ │ -
34}
│ │ │ │ -
35
│ │ │ │ -
36static inline void MD5Update(MD5_CTX *ctx, const uint8_t *buf, size_t len)
│ │ │ │ -
37{
│ │ │ │ -
38 nettle_md5_update(ctx, len, buf);
│ │ │ │ -
39}
│ │ │ │ +
29#ifdef __cplusplus
│ │ │ │ +
30extern "C"
│ │ │ │ +
31{
│ │ │ │ +
32#if 0
│ │ │ │ +
33}
│ │ │ │ +
34#endif
│ │ │ │ +
35#endif
│ │ │ │ +
36
│ │ │ │ +
37#define FREETDS_SYSCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR "freetds.conf"
│ │ │ │ +
38#define FREETDS_POOLCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR "pool.conf"
│ │ │ │ +
39#define FREETDS_LOCALECONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR "locales.conf"
│ │ │ │
40
│ │ │ │ -
41static inline void MD5Final(MD5_CTX *ctx, uint8_t *digest)
│ │ │ │ -
42{
│ │ │ │ -
43 nettle_md5_digest(ctx, 16, digest);
│ │ │ │ -
44}
│ │ │ │ -
45
│ │ │ │ +
41#ifdef __cplusplus
│ │ │ │ +
42#if 0
│ │ │ │ +
43{
│ │ │ │ +
44#endif
│ │ │ │ +
45}
│ │ │ │
46#endif
│ │ │ │
47
│ │ │ │ -
48#endif /* !MD5_H */
│ │ │ │ -
Definition md5.h:8
│ │ │ │ +
48#endif /* _tds_configs_h_ */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,60 +1,60 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -md5.h │ │ │ │ │ -1#ifndef MD5_H │ │ │ │ │ -2#define MD5_H │ │ │ │ │ -3 │ │ │ │ │ -4#ifndef HAVE_NETTLE │ │ │ │ │ -5 │ │ │ │ │ -6#include │ │ │ │ │ -7 │ │ │ │ │ -_8struct _M_D_5_C_o_n_t_e_x_t { │ │ │ │ │ -9 uint32_t buf[4]; │ │ │ │ │ -10 uint64_t bytes; │ │ │ │ │ -11 uint32_t in[16]; │ │ │ │ │ -12}; │ │ │ │ │ -13 │ │ │ │ │ -14void MD5Init(struct _M_D_5_C_o_n_t_e_x_t *context); │ │ │ │ │ -15void MD5Update(struct _M_D_5_C_o_n_t_e_x_t *context, const uint8_t *buf, size_t len); │ │ │ │ │ -16void MD5Final(struct _M_D_5_C_o_n_t_e_x_t *context, uint8_t *digest); │ │ │ │ │ -17 │ │ │ │ │ -18/* │ │ │ │ │ -19 * This is needed to make RSAREF happy on some MS-DOS compilers. │ │ │ │ │ -20 */ │ │ │ │ │ -21typedef struct _M_D_5_C_o_n_t_e_x_t _M_D_5___C_T_X; │ │ │ │ │ +configs.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _tds_configs_h_ │ │ │ │ │ +21#define _tds_configs_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ +23#include │ │ │ │ │ 24 │ │ │ │ │ -25#else │ │ │ │ │ -26 │ │ │ │ │ -27#include │ │ │ │ │ +25#ifndef _tds_h_ │ │ │ │ │ +26#error freetds/tds.h must be included before freetds/configs.h │ │ │ │ │ +27#endif │ │ │ │ │ 28 │ │ │ │ │ -29typedef struct md5_ctx _M_D_5___C_T_X; │ │ │ │ │ -30 │ │ │ │ │ -31static inline void MD5Init(_M_D_5___C_T_X *ctx) │ │ │ │ │ -32{ │ │ │ │ │ -33 nettle_md5_init(ctx); │ │ │ │ │ -34} │ │ │ │ │ -35 │ │ │ │ │ -36static inline void MD5Update(_M_D_5___C_T_X *ctx, const uint8_t *buf, size_t len) │ │ │ │ │ -37{ │ │ │ │ │ -38 nettle_md5_update(ctx, len, buf); │ │ │ │ │ -39} │ │ │ │ │ +29#ifdef __cplusplus │ │ │ │ │ +30extern "C" │ │ │ │ │ +31{ │ │ │ │ │ +32#if 0 │ │ │ │ │ +33} │ │ │ │ │ +34#endif │ │ │ │ │ +35#endif │ │ │ │ │ +36 │ │ │ │ │ +37#define FREETDS_SYSCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR │ │ │ │ │ +"freetds.conf" │ │ │ │ │ +38#define FREETDS_POOLCONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR │ │ │ │ │ +"pool.conf" │ │ │ │ │ +39#define FREETDS_LOCALECONFFILE FREETDS_SYSCONFDIR TDS_SDIR_SEPARATOR │ │ │ │ │ +"locales.conf" │ │ │ │ │ 40 │ │ │ │ │ -41static inline void MD5Final(_M_D_5___C_T_X *ctx, uint8_t *digest) │ │ │ │ │ -42{ │ │ │ │ │ -43 nettle_md5_digest(ctx, 16, digest); │ │ │ │ │ -44} │ │ │ │ │ -45 │ │ │ │ │ +41#ifdef __cplusplus │ │ │ │ │ +42#if 0 │ │ │ │ │ +43{ │ │ │ │ │ +44#endif │ │ │ │ │ +45} │ │ │ │ │ 46#endif │ │ │ │ │ 47 │ │ │ │ │ -48#endif /* !MD5_H */ │ │ │ │ │ -_M_D_5_C_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn md5.h:8 │ │ │ │ │ +48#endif /* _tds_configs_h_ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00410_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/des.h Source File │ │ │ │ +FreeTDS API: include/freetds/pushvis.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,68 +70,24 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
des.h
│ │ │ │ +
pushvis.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#ifndef DES_H
│ │ │ │ -
2#define DES_H
│ │ │ │ -
3
│ │ │ │ -
4#ifdef HAVE_NETTLE
│ │ │ │ -
5#include <nettle/des.h>
│ │ │ │ -
6
│ │ │ │ -
7typedef struct des_ctx DES_KEY;
│ │ │ │ -
8#endif
│ │ │ │ -
9
│ │ │ │ -
10#include <freetds/pushvis.h>
│ │ │ │ -
11
│ │ │ │ -
12typedef uint8_t des_cblock[8];
│ │ │ │ -
13
│ │ │ │ -
14#ifndef HAVE_NETTLE
│ │ │ │ -
│ │ │ │ -
15typedef struct des_key
│ │ │ │ -
16{
│ │ │ │ -
17 uint8_t kn[16][8];
│ │ │ │ -
18 uint32_t sp[8][64];
│ │ │ │ -
19 uint8_t iperm[16][16][8];
│ │ │ │ -
20 uint8_t fperm[16][16][8];
│ │ │ │ -
21} DES_KEY;
│ │ │ │ -
│ │ │ │ -
22
│ │ │ │ -
23int tds_des_set_key(DES_KEY * dkey, const des_cblock user_key, int len);
│ │ │ │ -
24void tds_des_encrypt(const DES_KEY * key, des_cblock block);
│ │ │ │ -
25#endif
│ │ │ │ -
26
│ │ │ │ -
27void tds_des_set_odd_parity(des_cblock key);
│ │ │ │ -
28int tds_des_ecb_encrypt(const void *plaintext, int len, DES_KEY * akey, uint8_t *output);
│ │ │ │ -
29
│ │ │ │ -
30#include <freetds/popvis.h>
│ │ │ │ -
31
│ │ │ │ -
32#ifdef HAVE_NETTLE
│ │ │ │ -
33static inline void tds_des_encrypt(const DES_KEY * key, des_cblock block)
│ │ │ │ -
34{
│ │ │ │ -
35 nettle_des_encrypt(key, sizeof(des_cblock), block, block);
│ │ │ │ -
36}
│ │ │ │ -
37
│ │ │ │ -
38static inline int tds_des_set_key(DES_KEY * dkey, const des_cblock user_key, int len)
│ │ │ │ -
39{
│ │ │ │ -
40 return nettle_des_set_key(dkey, user_key);
│ │ │ │ -
41}
│ │ │ │ -
42#endif
│ │ │ │ -
43
│ │ │ │ -
44#endif /* !DES_H */
│ │ │ │ -
Definition des.h:16
│ │ │ │ +
1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
│ │ │ │ +
2#pragma GCC visibility push(hidden)
│ │ │ │ +
3#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,58 +1,12 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -des.h │ │ │ │ │ -1#ifndef DES_H │ │ │ │ │ -2#define DES_H │ │ │ │ │ -3 │ │ │ │ │ -4#ifdef HAVE_NETTLE │ │ │ │ │ -5#include │ │ │ │ │ -6 │ │ │ │ │ -7typedef struct des_ctx _D_E_S___K_E_Y; │ │ │ │ │ -8#endif │ │ │ │ │ -9 │ │ │ │ │ -10#include │ │ │ │ │ -11 │ │ │ │ │ -12typedef uint8_t des_cblock[8]; │ │ │ │ │ -13 │ │ │ │ │ -14#ifndef HAVE_NETTLE │ │ │ │ │ -_1_5typedef struct _d_e_s___k_e_y │ │ │ │ │ -16{ │ │ │ │ │ -17 uint8_t kn[16][8]; │ │ │ │ │ -18 uint32_t sp[8][64]; │ │ │ │ │ -19 uint8_t iperm[16][16][8]; │ │ │ │ │ -20 uint8_t fperm[16][16][8]; │ │ │ │ │ -21} _D_E_S___K_E_Y; │ │ │ │ │ -22 │ │ │ │ │ -23int tds_des_set_key(_D_E_S___K_E_Y * dkey, const des_cblock user_key, int len); │ │ │ │ │ -24void tds_des_encrypt(const _D_E_S___K_E_Y * key, des_cblock block); │ │ │ │ │ -25#endif │ │ │ │ │ -26 │ │ │ │ │ -27void tds_des_set_odd_parity(des_cblock key); │ │ │ │ │ -28int tds_des_ecb_encrypt(const void *plaintext, int len, _D_E_S___K_E_Y * akey, │ │ │ │ │ -uint8_t *output); │ │ │ │ │ -29 │ │ │ │ │ -30#include │ │ │ │ │ -31 │ │ │ │ │ -32#ifdef HAVE_NETTLE │ │ │ │ │ -33static inline void tds_des_encrypt(const _D_E_S___K_E_Y * key, des_cblock block) │ │ │ │ │ -34{ │ │ │ │ │ -35 nettle_des_encrypt(key, sizeof(des_cblock), block, block); │ │ │ │ │ -36} │ │ │ │ │ -37 │ │ │ │ │ -38static inline int tds_des_set_key(_D_E_S___K_E_Y * dkey, const des_cblock user_key, │ │ │ │ │ -int len) │ │ │ │ │ -39{ │ │ │ │ │ -40 return nettle_des_set_key(dkey, user_key); │ │ │ │ │ -41} │ │ │ │ │ -42#endif │ │ │ │ │ -43 │ │ │ │ │ -44#endif /* !DES_H */ │ │ │ │ │ -_d_e_s___k_e_y │ │ │ │ │ -DDeeffiinniittiioonn des.h:16 │ │ │ │ │ +pushvis.h │ │ │ │ │ +1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__) │ │ │ │ │ +2#pragma GCC visibility push(hidden) │ │ │ │ │ +3#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00413_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/bjoern-utf8.h Source File │ │ │ │ +FreeTDS API: include/freetds/odbc.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,52 +70,795 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
bjoern-utf8.h
│ │ │ │ +
odbc.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/*
│ │ │ │ -
2 * Copyright (c) 2008-2010 Bjoern Hoehrmann <bjoern@hoehrmann.de>
│ │ │ │ -
3 *
│ │ │ │ -
4 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
│ │ │ │ -
5 *
│ │ │ │ -
6 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
│ │ │ │ -
7 *
│ │ │ │ -
8 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ +
3 * Copyright (C) 2004-2010 Frediano Ziglio
│ │ │ │ +
4 *
│ │ │ │ +
5 * This library is free software; you can redistribute it and/or
│ │ │ │ +
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
7 * License as published by the Free Software Foundation; either
│ │ │ │ +
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │
9 *
│ │ │ │ -
10 * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details.
│ │ │ │ -
11 */
│ │ │ │ -
12
│ │ │ │ -
13#include <tds_sysdep_public.h>
│ │ │ │ -
14
│ │ │ │ -
15#define UTF8_ACCEPT 0
│ │ │ │ -
16#define UTF8_REJECT 12
│ │ │ │ -
17
│ │ │ │ -
18extern const uint8_t utf8_table[];
│ │ │ │ -
19
│ │ │ │ -
20static inline uint32_t
│ │ │ │ -
21decode_utf8(uint32_t* state, uint32_t* codep, uint32_t byte)
│ │ │ │ -
22{
│ │ │ │ -
23 uint32_t type = utf8_table[byte];
│ │ │ │ -
24
│ │ │ │ -
25 *codep = (*state != UTF8_ACCEPT) ?
│ │ │ │ -
26 (byte & 0x3fu) | (*codep << 6) :
│ │ │ │ -
27 (0xff >> type) & (byte);
│ │ │ │ +
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
13 * Library General Public License for more details.
│ │ │ │ +
14 *
│ │ │ │ +
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
16 * License along with this library; if not, write to the
│ │ │ │ +
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
18 * Boston, MA 02111-1307, USA.
│ │ │ │ +
19 */
│ │ │ │ +
20
│ │ │ │ +
21#ifndef _sql_h_
│ │ │ │ +
22#define _sql_h_
│ │ │ │ +
23
│ │ │ │ +
24#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
│ │ │ │ +
25#include <freetds/tds.h>
│ │ │ │ +
26#include <freetds/thread.h>
│ │ │ │ +
27#include <freetds/data.h>
│ │ │ │
28
│ │ │ │ -
29 *state = utf8_table[256 + *state + type];
│ │ │ │ -
30 return *state;
│ │ │ │ -
31}
│ │ │ │ +
29#if defined(UNIXODBC) || defined(_WIN32) || defined(TDS_NO_DM)
│ │ │ │ +
30#include <sql.h>
│ │ │ │ +
31#include <sqlext.h>
│ │ │ │ +
32#if defined(UNIXODBC) || defined(_WIN32)
│ │ │ │ +
33#include <odbcinst.h>
│ │ │ │ +
34#endif
│ │ │ │ +
35#else /* IODBC */
│ │ │ │ +
36#include <isql.h>
│ │ │ │ +
37#include <isqlext.h>
│ │ │ │ +
38#ifdef HAVE_IODBCINST_H
│ │ │ │ +
39#include <iodbcinst.h>
│ │ │ │ +
40#endif /* HAVE_IODBCINST_H */
│ │ │ │ +
41#endif
│ │ │ │ +
42
│ │ │ │ +
43#ifdef HAVE_WCHAR_H
│ │ │ │ +
44#include <wchar.h>
│ │ │ │ +
45#endif
│ │ │ │ +
46
│ │ │ │ +
47#ifndef HAVE_SQLLEN
│ │ │ │ +
48#ifndef SQLULEN
│ │ │ │ +
49#define SQLULEN SQLUINTEGER
│ │ │ │ +
50#endif
│ │ │ │ +
51#ifndef SQLLEN
│ │ │ │ +
52#define SQLLEN SQLINTEGER
│ │ │ │ +
53#endif
│ │ │ │ +
54#endif
│ │ │ │ +
55
│ │ │ │ +
56#ifndef HAVE_SQLSETPOSIROW
│ │ │ │ +
57#define SQLSETPOSIROW SQLUSMALLINT
│ │ │ │ +
58#endif
│ │ │ │ +
59
│ │ │ │ +
60#ifndef HAVE_SQLROWOFFSET
│ │ │ │ +
61#define SQLROWOFFSET SQLLEN
│ │ │ │ +
62#endif
│ │ │ │ +
63
│ │ │ │ +
64#ifndef HAVE_SQLROWSETSIZE
│ │ │ │ +
65#define SQLROWSETSIZE SQLULEN
│ │ │ │ +
66#endif
│ │ │ │ +
67
│ │ │ │ +
68#ifdef __cplusplus
│ │ │ │ +
69extern "C"
│ │ │ │ +
70{
│ │ │ │ +
71#if 0
│ │ │ │ +
72}
│ │ │ │ +
73#endif
│ │ │ │ +
74#endif
│ │ │ │ +
75
│ │ │ │ +
76#include <freetds/pushvis.h>
│ │ │ │ +
77#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
│ │ │ │ +
78#define ODBC_API SQL_API __attribute__((externally_visible))
│ │ │ │ +
79#else
│ │ │ │ +
80#define ODBC_API SQL_API
│ │ │ │ +
81#endif
│ │ │ │ +
82
│ │ │ │ +
83#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(__GNUC__)
│ │ │ │ +
84# define ODBC_PUBLIC __attribute__((dllexport))
│ │ │ │ +
85#else
│ │ │ │ +
86# define ODBC_PUBLIC
│ │ │ │ +
87#endif
│ │ │ │ +
88
│ │ │ │ +
89#define ODBC_MAX(a,b) ( (a) > (b) ? (a) : (b) )
│ │ │ │ +
90#define ODBC_MIN(a,b) ( (a) < (b) ? (a) : (b) )
│ │ │ │ +
91#define ODBC_CLAMP(x,a,b) ( (x) < (a) ? (a) : (x) > (b) ? (b) : (x) )
│ │ │ │ +
92
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
94{
│ │ │ │ +
95 const char *msg;
│ │ │ │ +
96 char state2[6];
│ │ │ │ +
97 char state3[6];
│ │ │ │ +
98 TDS_UINT native;
│ │ │ │ +
99 char *server;
│ │ │ │ +
100 int linenum;
│ │ │ │ +
101 int msgstate;
│ │ │ │ +
102 int row;
│ │ │ │ +
103};
│ │ │ │ +
│ │ │ │ +
104
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
106{
│ │ │ │ +
107 struct _sql_error *errs;
│ │ │ │ +
108 int num_errors;
│ │ │ │ +
109 SQLRETURN lastrc;
│ │ │ │ +
110 char ranked;
│ │ │ │ +
111};
│ │ │ │ +
│ │ │ │ +
112
│ │ │ │ +
113typedef struct _sql_errors TDS_ERRS;
│ │ │ │ +
114
│ │ │ │ +
115#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
116void odbc_check_struct_extra(void *p);
│ │ │ │ +
117#else
│ │ │ │ +
118static inline void odbc_check_struct_extra(void *p) {}
│ │ │ │ +
119#endif
│ │ │ │ +
120
│ │ │ │ +
121#define ODBC_RETURN(handle, rc) \
│ │ │ │ +
122 do { odbc_check_struct_extra(handle); \
│ │ │ │ +
123 return handle->errs.lastrc = (rc); } while(0)
│ │ │ │ +
124#define ODBC_RETURN_(handle) \
│ │ │ │ +
125 do { odbc_check_struct_extra(handle); \
│ │ │ │ +
126 return handle->errs.lastrc; } while(0)
│ │ │ │ +
127
│ │ │ │ +
128#define ODBC_EXIT(handle, rc) \
│ │ │ │ +
129 do { SQLRETURN _odbc_rc = handle->errs.lastrc = (rc); \
│ │ │ │ +
130 odbc_check_struct_extra(handle); \
│ │ │ │ +
131 tds_mutex_unlock(&handle->mtx); \
│ │ │ │ +
132 return _odbc_rc; } while(0)
│ │ │ │ +
133#define ODBC_EXIT_(handle) \
│ │ │ │ +
134 do { SQLRETURN _odbc_rc = handle->errs.lastrc; \
│ │ │ │ +
135 odbc_check_struct_extra(handle); \
│ │ │ │ +
136 tds_mutex_unlock(&handle->mtx); \
│ │ │ │ +
137 return _odbc_rc; } while(0)
│ │ │ │ +
138
│ │ │ │ +
139
│ │ │ │ +
141void odbc_errs_reset(struct _sql_errors *errs);
│ │ │ │ +
142
│ │ │ │ +
144void odbc_errs_add(struct _sql_errors *errs, const char *sqlstate, const char *msg);
│ │ │ │ +
145
│ │ │ │ +
147void odbc_errs_add_rdbms(struct _sql_errors *errs, TDS_UINT native, const char *sqlstate, const char *msg, int linenum,
│ │ │ │ +
148 int msgstate, const char *server, int row);
│ │ │ │ +
149
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
151{
│ │ │ │ +
152 SQLSMALLINT sql_desc_alloc_type;
│ │ │ │ +
153 SQLINTEGER sql_desc_bind_type;
│ │ │ │ +
154 SQLULEN sql_desc_array_size;
│ │ │ │ +
155 /* TODO SQLLEN ?? see http://support.microsoft.com/default.aspx?scid=kb;en-us;298678 */
│ │ │ │ +
156 SQLSMALLINT sql_desc_count;
│ │ │ │ +
157 SQLUSMALLINT *sql_desc_array_status_ptr;
│ │ │ │ +
158 SQLULEN *sql_desc_rows_processed_ptr;
│ │ │ │ +
159 SQLLEN *sql_desc_bind_offset_ptr;
│ │ │ │ +
160};
│ │ │ │ +
│ │ │ │ +
161
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
163{
│ │ │ │ +
164 SQLUINTEGER sql_desc_auto_unique_value;
│ │ │ │ +
165 DSTR sql_desc_base_column_name;
│ │ │ │ +
166 DSTR sql_desc_base_table_name;
│ │ │ │ +
167 SQLINTEGER sql_desc_case_sensitive;
│ │ │ │ +
168 DSTR sql_desc_catalog_name;
│ │ │ │ +
169 SQLSMALLINT sql_desc_concise_type;
│ │ │ │ +
170 SQLPOINTER sql_desc_data_ptr;
│ │ │ │ +
171 SQLSMALLINT sql_desc_datetime_interval_code;
│ │ │ │ +
172 SQLINTEGER sql_desc_datetime_interval_precision;
│ │ │ │ +
173 SQLLEN sql_desc_display_size;
│ │ │ │ +
174 SQLSMALLINT sql_desc_fixed_prec_scale;
│ │ │ │ +
175 SQLLEN *sql_desc_indicator_ptr;
│ │ │ │ +
176 DSTR sql_desc_label;
│ │ │ │ +
177 SQLULEN sql_desc_length;
│ │ │ │ +
178 /* this point to a constant buffer, do not free or modify */
│ │ │ │ +
179 const char *sql_desc_literal_prefix;
│ │ │ │ +
180 /* this point to a constant buffer, do not free or modify */
│ │ │ │ +
181 const char *sql_desc_literal_suffix;
│ │ │ │ +
182 DSTR sql_desc_local_type_name;
│ │ │ │ +
183 DSTR sql_desc_name;
│ │ │ │ +
184 SQLSMALLINT sql_desc_nullable;
│ │ │ │ +
185 SQLINTEGER sql_desc_num_prec_radix;
│ │ │ │ +
186 SQLLEN sql_desc_octet_length;
│ │ │ │ +
187 SQLLEN *sql_desc_octet_length_ptr;
│ │ │ │ +
188 SQLSMALLINT sql_desc_parameter_type;
│ │ │ │ +
189 SQLSMALLINT sql_desc_precision;
│ │ │ │ +
190 SQLSMALLINT sql_desc_rowver;
│ │ │ │ +
191 SQLSMALLINT sql_desc_scale;
│ │ │ │ +
192 DSTR sql_desc_schema_name;
│ │ │ │ +
193 SQLSMALLINT sql_desc_searchable;
│ │ │ │ +
194 DSTR sql_desc_table_name;
│ │ │ │ +
195 SQLSMALLINT sql_desc_type;
│ │ │ │ +
196 /* this point to a constant buffer, do not free or modify */
│ │ │ │ +
197 const char *sql_desc_type_name;
│ │ │ │ +
198 SQLSMALLINT sql_desc_unnamed;
│ │ │ │ +
199 SQLSMALLINT sql_desc_unsigned;
│ │ │ │ +
200 SQLSMALLINT sql_desc_updatable;
│ │ │ │ +
201};
│ │ │ │ +
│ │ │ │ +
202
│ │ │ │ +
│ │ │ │ +
203struct _hdesc
│ │ │ │ +
204{
│ │ │ │ +
205 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ +
206 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ +
207 tds_mutex mtx;
│ │ │ │ +
208 int type;
│ │ │ │ +
209 SQLHANDLE parent;
│ │ │ │ +
210 struct _dheader header;
│ │ │ │ +
211 struct _drecord *records;
│ │ │ │ +
212};
│ │ │ │ +
│ │ │ │ +
213
│ │ │ │ +
214typedef struct _hdesc TDS_DESC;
│ │ │ │ +
215
│ │ │ │ +
216#define DESC_IRD 1
│ │ │ │ +
217#define DESC_IPD 2
│ │ │ │ +
218#define DESC_ARD 3
│ │ │ │ +
219#define DESC_APD 4
│ │ │ │ +
220
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
222{
│ │ │ │ +
223 SQLUINTEGER connection_pooling;
│ │ │ │ +
224 SQLUINTEGER cp_match;
│ │ │ │ +
225 SQLINTEGER odbc_version;
│ │ │ │ +
226 SQLINTEGER output_nts;
│ │ │ │ +
227};
│ │ │ │ +
│ │ │ │ +
228
│ │ │ │ +
│ │ │ │ +
229struct _hchk
│ │ │ │ +
230{
│ │ │ │ +
231 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ +
232 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ +
233 tds_mutex mtx;
│ │ │ │ +
234};
│ │ │ │ +
│ │ │ │ +
235
│ │ │ │ +
│ │ │ │ +
236struct _henv
│ │ │ │ +
237{
│ │ │ │ +
238 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ +
239 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ +
240 tds_mutex mtx;
│ │ │ │ +
241 TDSCONTEXT *tds_ctx;
│ │ │ │ +
242 struct _heattr attr;
│ │ │ │ +
243};
│ │ │ │ +
│ │ │ │ +
244
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
246{
│ │ │ │ +
247 SQLUINTEGER access_mode;
│ │ │ │ +
248 SQLUINTEGER async_enable;
│ │ │ │ +
249 SQLUINTEGER auto_ipd;
│ │ │ │ +
250 SQLUINTEGER autocommit;
│ │ │ │ +
251 SQLUINTEGER connection_dead;
│ │ │ │ +
252 SQLUINTEGER connection_timeout;
│ │ │ │ +
253 DSTR current_catalog;
│ │ │ │ +
254 SQLUINTEGER login_timeout;
│ │ │ │ +
255 SQLUINTEGER metadata_id;
│ │ │ │ +
256 SQLUINTEGER odbc_cursors;
│ │ │ │ +
257 SQLUINTEGER packet_size;
│ │ │ │ +
258 SQLHWND quite_mode;
│ │ │ │ +
259 DSTR translate_lib;
│ │ │ │ +
260 SQLUINTEGER translate_option;
│ │ │ │ +
261 SQLUINTEGER txn_isolation;
│ │ │ │ +
262 SQLUINTEGER mars_enabled;
│ │ │ │ +
263 SQLUINTEGER cursor_type;
│ │ │ │ +
264 SQLUINTEGER bulk_enabled;
│ │ │ │ +
265#ifdef TDS_NO_DM
│ │ │ │ +
266 SQLUINTEGER trace;
│ │ │ │ +
267 DSTR tracefile;
│ │ │ │ +
268#endif
│ │ │ │ +
269};
│ │ │ │ +
│ │ │ │ +
270
│ │ │ │ +
271#define TDS_MAX_APP_DESC 100
│ │ │ │ +
272
│ │ │ │ +
273struct _hstmt;
│ │ │ │ +
│ │ │ │ +
274struct _hdbc
│ │ │ │ +
275{
│ │ │ │ +
276 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ +
277 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ +
278 tds_mutex mtx;
│ │ │ │ +
279 struct _henv *env;
│ │ │ │ + │ │ │ │ +
281 DSTR dsn;
│ │ │ │ +
282 DSTR oldpwd;
│ │ │ │ +
283#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
284 int original_charset_num;
│ │ │ │ +
285 TDSICONV *mb_conv;
│ │ │ │ +
286#endif
│ │ │ │ +
287
│ │ │ │ + │ │ │ │ + │ │ │ │ +
296 struct _hcattr attr;
│ │ │ │ +
298 TDS_DESC *uad[TDS_MAX_APP_DESC];
│ │ │ │ +
300 unsigned int cursor_support:1;
│ │ │ │ +
301 unsigned int use_oldpwd:1;
│ │ │ │ +
302 TDS_INT default_query_timeout;
│ │ │ │ +
303
│ │ │ │ +
304 TDSBCPINFO *bcpinfo;
│ │ │ │ +
305 char *bcphint;
│ │ │ │ +
306};
│ │ │ │ +
│ │ │ │ +
307
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
309{
│ │ │ │ +
310 /* TODO remove IRD, ARD, IPD, APD from statement, do not duplicate */
│ │ │ │ +
311/* TDS_DESC *app_row_desc; */
│ │ │ │ +
312/* TDS_DESC *app_param_desc; */
│ │ │ │ +
313 SQLUINTEGER async_enable;
│ │ │ │ +
314 SQLUINTEGER concurrency;
│ │ │ │ +
315 SQLUINTEGER cursor_scrollable;
│ │ │ │ +
316 SQLUINTEGER cursor_sensitivity;
│ │ │ │ +
317 SQLUINTEGER cursor_type;
│ │ │ │ +
318 SQLUINTEGER enable_auto_ipd;
│ │ │ │ +
319 SQLPOINTER fetch_bookmark_ptr;
│ │ │ │ +
320 SQLULEN keyset_size;
│ │ │ │ +
321 SQLULEN max_length;
│ │ │ │ +
322 SQLULEN max_rows;
│ │ │ │ +
323 SQLUINTEGER metadata_id;
│ │ │ │ +
324 SQLUINTEGER noscan;
│ │ │ │ +
325 /* apd->sql_desc_bind_offset_ptr */
│ │ │ │ +
326 /* SQLUINTEGER *param_bind_offset_ptr; */
│ │ │ │ +
327 /* apd->sql_desc_bind_type */
│ │ │ │ +
328 /* SQLUINTEGER param_bind_type; */
│ │ │ │ +
329 /* apd->sql_desc_array_status_ptr */
│ │ │ │ +
330 /* SQLUSMALLINT *param_operation_ptr; */
│ │ │ │ +
331 /* ipd->sql_desc_array_status_ptr */
│ │ │ │ +
332 /* SQLUSMALLINT *param_status_ptr; */
│ │ │ │ +
333 /* ipd->sql_desc_rows_processed_ptr */
│ │ │ │ +
334 /* SQLUSMALLINT *params_processed_ptr; */
│ │ │ │ +
335 /* apd->sql_desc_array_size */
│ │ │ │ +
336 /* SQLUINTEGER paramset_size; */
│ │ │ │ +
337 SQLUINTEGER query_timeout;
│ │ │ │ +
338 SQLUINTEGER retrieve_data;
│ │ │ │ +
339 /* ard->sql_desc_bind_offset_ptr */
│ │ │ │ +
340 /* SQLUINTEGER *row_bind_offset_ptr; */
│ │ │ │ +
341 /* ard->sql_desc_array_size */
│ │ │ │ +
342 /* SQLUINTEGER row_array_size; */
│ │ │ │ +
343 /* ard->sql_desc_bind_type */
│ │ │ │ +
344 /* SQLUINTEGER row_bind_type; */
│ │ │ │ +
345 SQLULEN row_number;
│ │ │ │ +
346 /* ard->sql_desc_array_status_ptr */
│ │ │ │ +
347 /* SQLUINTEGER *row_operation_ptr; */
│ │ │ │ +
348 /* ird->sql_desc_array_status_ptr */
│ │ │ │ +
349 /* SQLUINTEGER *row_status_ptr; */
│ │ │ │ +
350 /* ird->sql_desc_rows_processed_ptr */
│ │ │ │ +
351 /* SQLUINTEGER *rows_fetched_ptr; */
│ │ │ │ +
352 SQLUINTEGER simulate_cursor;
│ │ │ │ +
353 SQLUINTEGER use_bookmarks;
│ │ │ │ +
354 /* SQLGetStmtAttr only */
│ │ │ │ +
355/* TDS_DESC *imp_row_desc; */
│ │ │ │ +
356/* TDS_DESC *imp_param_desc; */
│ │ │ │ +
357 DSTR qn_msgtext;
│ │ │ │ +
358 DSTR qn_options;
│ │ │ │ +
359 SQLUINTEGER qn_timeout;
│ │ │ │ +
360};
│ │ │ │ +
│ │ │ │ +
361
│ │ │ │ +
362typedef enum
│ │ │ │ +
363{
│ │ │ │ +
364 NOT_IN_ROW,
│ │ │ │ +
365 IN_NORMAL_ROW,
│ │ │ │ +
366 IN_COMPUTE_ROW,
│ │ │ │ +
367 AFTER_COMPUTE_ROW,
│ │ │ │ +
368 PRE_NORMAL_ROW
│ │ │ │ +
369} TDS_ODBC_ROW_STATUS;
│ │ │ │ +
370
│ │ │ │ +
371typedef enum
│ │ │ │ +
372{
│ │ │ │ +
373 ODBC_SPECIAL_NONE = 0,
│ │ │ │ +
374 ODBC_SPECIAL_GETTYPEINFO = 1,
│ │ │ │ +
375 ODBC_SPECIAL_COLUMNS = 2,
│ │ │ │ +
376 ODBC_SPECIAL_PROCEDURECOLUMNS = 3,
│ │ │ │ +
377 ODBC_SPECIAL_SPECIALCOLUMNS = 4
│ │ │ │ +
378} TDS_ODBC_SPECIAL_ROWS;
│ │ │ │ +
379
│ │ │ │ +
│ │ │ │ +
380struct _hstmt
│ │ │ │ +
381{
│ │ │ │ +
382 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ +
383 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ +
384 tds_mutex mtx;
│ │ │ │ +
385 struct _hdbc *dbc;
│ │ │ │ + │ │ │ │ + │ │ │ │ +
390
│ │ │ │ +
392 struct _hstmt *next;
│ │ │ │ +
394 struct _hstmt *prev;
│ │ │ │ +
395
│ │ │ │ +
396 /* begin prepared query stuff */
│ │ │ │ +
397 unsigned is_prepared_query:1;
│ │ │ │ +
398 unsigned prepared_query_is_func:1;
│ │ │ │ +
399 unsigned prepared_query_is_rpc:1;
│ │ │ │ +
404 unsigned need_reprepare:1;
│ │ │ │ +
405 unsigned param_data_called:1;
│ │ │ │ +
406 /* end prepared query stuff */
│ │ │ │ +
407
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
414
│ │ │ │ +
415 unsigned int curr_param_row, num_param_rows;
│ │ │ │ +
416
│ │ │ │ +
418 unsigned int param_count;
│ │ │ │ +
419 int row;
│ │ │ │ +
421 TDS_INT8 row_count;
│ │ │ │ +
423 TDS_ODBC_ROW_STATUS row_status;
│ │ │ │ +
424 /* do NOT free dynamic, free from socket or attach to connection */
│ │ │ │ +
425 TDSDYNAMIC *dyn;
│ │ │ │ +
426 TDS_DESC *ard, *ird, *apd, *ipd;
│ │ │ │ +
427 TDS_DESC *orig_ard, *orig_apd;
│ │ │ │ +
428 SQLULEN sql_rowset_size;
│ │ │ │ +
429 struct _hsattr attr;
│ │ │ │ +
430 DSTR cursor_name; /* auto generated cursor name */
│ │ │ │ +
431 TDS_ODBC_SPECIAL_ROWS special_row;
│ │ │ │ +
432 /* do NOT free cursor, free from socket or attach to connection */
│ │ │ │ +
433 TDSCURSOR *cursor;
│ │ │ │ +
434};
│ │ │ │ +
│ │ │ │ +
435
│ │ │ │ +
436typedef struct _henv TDS_ENV;
│ │ │ │ +
437typedef struct _hdbc TDS_DBC;
│ │ │ │ +
438typedef struct _hstmt TDS_STMT;
│ │ │ │ +
439typedef struct _hchk TDS_CHK;
│ │ │ │ +
440
│ │ │ │ +
│ │ │ │ +
441typedef struct {
│ │ │ │ +
442 /* this must be the first member */
│ │ │ │ +
443 TDSCOLUMNFUNCS common;
│ │ │ │ +
444 void (*set_type_info)(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver);
│ │ │ │ +
445} TDS_FUNCS;
│ │ │ │ +
│ │ │ │ +
446
│ │ │ │ +
447#define IS_HENV(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_ENV)
│ │ │ │ +
448#define IS_HDBC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DBC)
│ │ │ │ +
449#define IS_HSTMT(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_STMT)
│ │ │ │ +
450#define IS_HDESC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DESC)
│ │ │ │ +
451
│ │ │ │ +
452/* fix a bug in MingW headers */
│ │ │ │ +
453#ifdef __MINGW32__
│ │ │ │ +
454#if SQL_INTERVAL_YEAR == (100 + SQL_CODE_SECOND)
│ │ │ │ +
455
│ │ │ │ +
456#undef SQL_INTERVAL_YEAR
│ │ │ │ +
457#undef SQL_INTERVAL_MONTH
│ │ │ │ +
458#undef SQL_INTERVAL_DAY
│ │ │ │ +
459#undef SQL_INTERVAL_HOUR
│ │ │ │ +
460#undef SQL_INTERVAL_MINUTE
│ │ │ │ +
461#undef SQL_INTERVAL_SECOND
│ │ │ │ +
462#undef SQL_INTERVAL_YEAR_TO_MONTH
│ │ │ │ +
463#undef SQL_INTERVAL_DAY_TO_HOUR
│ │ │ │ +
464#undef SQL_INTERVAL_DAY_TO_MINUTE
│ │ │ │ +
465#undef SQL_INTERVAL_DAY_TO_SECOND
│ │ │ │ +
466#undef SQL_INTERVAL_HOUR_TO_MINUTE
│ │ │ │ +
467#undef SQL_INTERVAL_HOUR_TO_SECOND
│ │ │ │ +
468#undef SQL_INTERVAL_MINUTE_TO_SECOND
│ │ │ │ +
469
│ │ │ │ +
470#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
│ │ │ │ +
471#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
│ │ │ │ +
472#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
│ │ │ │ +
473#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
│ │ │ │ +
474#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
│ │ │ │ +
475#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
│ │ │ │ +
476#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
│ │ │ │ +
477#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
│ │ │ │ +
478#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
│ │ │ │ +
479#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
│ │ │ │ +
480#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
│ │ │ │ +
481#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
│ │ │ │ +
482#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
│ │ │ │ +
483
│ │ │ │ +
484#endif
│ │ │ │ +
485#endif
│ │ │ │ +
486
│ │ │ │ +
487#ifdef _WIN32
│ │ │ │ +
488bool get_login_info(HWND hwndParent, TDSLOGIN * login);
│ │ │ │ +
489#endif
│ │ │ │ +
490
│ │ │ │ +
491#define ODBC_PARAM_LIST \
│ │ │ │ +
492 ODBC_PARAM(Servername) \
│ │ │ │ +
493 ODBC_PARAM(Server) \
│ │ │ │ +
494 ODBC_PARAM(DSN) \
│ │ │ │ +
495 ODBC_PARAM(UID) \
│ │ │ │ +
496 ODBC_PARAM(PWD) \
│ │ │ │ +
497 ODBC_PARAM(Address) \
│ │ │ │ +
498 ODBC_PARAM(Port) \
│ │ │ │ +
499 ODBC_PARAM(TDS_Version) \
│ │ │ │ +
500 ODBC_PARAM(Language) \
│ │ │ │ +
501 ODBC_PARAM(Database) \
│ │ │ │ +
502 ODBC_PARAM(TextSize) \
│ │ │ │ +
503 ODBC_PARAM(PacketSize) \
│ │ │ │ +
504 ODBC_PARAM(ClientCharset) \
│ │ │ │ +
505 ODBC_PARAM(DumpFile) \
│ │ │ │ +
506 ODBC_PARAM(DumpFileAppend) \
│ │ │ │ +
507 ODBC_PARAM(DebugFlags) \
│ │ │ │ +
508 ODBC_PARAM(Encryption) \
│ │ │ │ +
509 ODBC_PARAM(Trusted_Connection) \
│ │ │ │ +
510 ODBC_PARAM(APP) \
│ │ │ │ +
511 ODBC_PARAM(WSID) \
│ │ │ │ +
512 ODBC_PARAM(UseNTLMv2) \
│ │ │ │ +
513 ODBC_PARAM(MARS_Connection) \
│ │ │ │ +
514 ODBC_PARAM(REALM) \
│ │ │ │ +
515 ODBC_PARAM(ServerSPN) \
│ │ │ │ +
516 ODBC_PARAM(AttachDbFilename) \
│ │ │ │ +
517 ODBC_PARAM(ApplicationIntent) \
│ │ │ │ +
518 ODBC_PARAM(Timeout)
│ │ │ │ +
519
│ │ │ │ +
520#define ODBC_PARAM(p) ODBC_PARAM_##p,
│ │ │ │ +
521enum {
│ │ │ │ +
522 ODBC_PARAM_LIST
│ │ │ │ +
523 ODBC_PARAM_SIZE
│ │ │ │ +
524};
│ │ │ │ +
525#undef ODBC_PARAM
│ │ │ │ +
526
│ │ │ │ +
527
│ │ │ │ +
528/*
│ │ │ │ +
529 * connectparams.h
│ │ │ │ +
530 */
│ │ │ │ +
531
│ │ │ │ +
│ │ │ │ +
532typedef struct {
│ │ │ │ +
533 const char *p;
│ │ │ │ +
534 size_t len;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
536
│ │ │ │ +
544int odbc_parse_connect_string(TDS_ERRS *errs, const char *connect_string, const char *connect_string_end, TDSLOGIN * login, TDS_PARSED_PARAM *parsed_params);
│ │ │ │ +
545int odbc_get_dsn_info(TDS_ERRS *errs, const char *DSN, TDSLOGIN * login);
│ │ │ │ +
546#ifdef _WIN32
│ │ │ │ +
547int odbc_build_connect_string(TDS_ERRS *errs, TDS_PARSED_PARAM *params, char **out);
│ │ │ │ +
548#endif
│ │ │ │ +
549
│ │ │ │ +
550/*
│ │ │ │ +
551 * convert_tds2sql.c
│ │ │ │ +
552 */
│ │ │ │ +
553SQLLEN odbc_tds2sql_col(TDS_STMT * stmt, TDSCOLUMN *curcol, int desttype, TDS_CHAR * dest, SQLULEN destlen, const struct _drecord *drec_ixd);
│ │ │ │ +
554SQLLEN odbc_tds2sql_int4(TDS_STMT * stmt, TDS_INT *src, int desttype, TDS_CHAR * dest, SQLULEN destlen);
│ │ │ │ +
555
│ │ │ │ +
556
│ │ │ │ +
557
│ │ │ │ +
558/*
│ │ │ │ +
559 * descriptor.c
│ │ │ │ +
560 */
│ │ │ │ +
561TDS_DESC *desc_alloc(SQLHANDLE parent, int desc_type, int alloc_type);
│ │ │ │ +
562SQLRETURN desc_free(TDS_DESC * desc);
│ │ │ │ +
563SQLRETURN desc_alloc_records(TDS_DESC * desc, unsigned count);
│ │ │ │ +
564SQLRETURN desc_copy(TDS_DESC * dest, TDS_DESC * src);
│ │ │ │ +
565SQLRETURN desc_free_records(TDS_DESC * desc);
│ │ │ │ +
566TDS_DBC *desc_get_dbc(TDS_DESC *desc);
│ │ │ │ +
567
│ │ │ │ +
568/*
│ │ │ │ +
569 * odbc.c
│ │ │ │ +
570 */
│ │ │ │ +
571SQLRETURN _SQLRowCount(SQLHSTMT hstmt, SQLLEN FAR * pcrow);
│ │ │ │ +
572
│ │ │ │ +
573/*
│ │ │ │ +
574 * odbc_checks.h
│ │ │ │ +
575 */
│ │ │ │ +
576#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
577/* macro */
│ │ │ │ +
578#define CHECK_ENV_EXTRA(env) odbc_check_env_extra(env)
│ │ │ │ +
579#define CHECK_DBC_EXTRA(dbc) odbc_check_dbc_extra(dbc)
│ │ │ │ +
580#define CHECK_STMT_EXTRA(stmt) odbc_check_stmt_extra(stmt)
│ │ │ │ +
581#define CHECK_DESC_EXTRA(desc) odbc_check_desc_extra(desc)
│ │ │ │ +
582/* declarations*/
│ │ │ │ +
583void odbc_check_env_extra(TDS_ENV * env);
│ │ │ │ +
584void odbc_check_dbc_extra(TDS_DBC * dbc);
│ │ │ │ +
585void odbc_check_stmt_extra(TDS_STMT * stmt);
│ │ │ │ +
586void odbc_check_desc_extra(TDS_DESC * desc);
│ │ │ │ +
587#else
│ │ │ │ +
588/* macro */
│ │ │ │ +
589#define CHECK_ENV_EXTRA(env)
│ │ │ │ +
590#define CHECK_DBC_EXTRA(dbc)
│ │ │ │ +
591#define CHECK_STMT_EXTRA(stmt)
│ │ │ │ +
592#define CHECK_DESC_EXTRA(desc)
│ │ │ │ +
593#endif
│ │ │ │ +
594
│ │ │ │ +
595/*
│ │ │ │ +
596 * odbc_util.h
│ │ │ │ +
597 */
│ │ │ │ +
598
│ │ │ │ +
599/* helpers for ODBC wide string support */
│ │ │ │ +
600#undef _wide
│ │ │ │ +
601#undef _WIDE
│ │ │ │ +
602#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
603typedef union {
│ │ │ │ +
604 char mb[1];
│ │ │ │ +
605 SQLWCHAR wide[1];
│ │ │ │ +
606} ODBC_CHAR;
│ │ │ │ +
607# define _wide ,wide
│ │ │ │ +
608# define _wide0 ,0
│ │ │ │ +
609# define _WIDE ,int wide
│ │ │ │ +
610#else
│ │ │ │ +
611# define _wide
│ │ │ │ +
612# define _wide0
│ │ │ │ +
613# define _WIDE
│ │ │ │ +
614# define ODBC_CHAR SQLCHAR
│ │ │ │ +
615#endif
│ │ │ │ +
616int odbc_set_stmt_query(struct _hstmt *stmt, const ODBC_CHAR *sql, int sql_len _WIDE);
│ │ │ │ +
617void odbc_set_return_status(struct _hstmt *stmt, unsigned int n_row);
│ │ │ │ +
618void odbc_set_return_params(struct _hstmt *stmt, unsigned int n_row);
│ │ │ │ +
619
│ │ │ │ +
620void odbc_set_sql_type_info(TDSCOLUMN * col, struct _drecord *drec, SQLINTEGER odbc_ver);
│ │ │ │ +
621
│ │ │ │ +
622int odbc_sql_to_c_type_default(int sql_type);
│ │ │ │ +
623TDS_SERVER_TYPE odbc_sql_to_server_type(TDSCONNECTION * conn, int sql_type, int sql_unsigned);
│ │ │ │ +
624TDS_SERVER_TYPE odbc_c_to_server_type(int c_type);
│ │ │ │ +
625
│ │ │ │ +
626unsigned int odbc_get_string_size(int size, const ODBC_CHAR * str _WIDE);
│ │ │ │ +
627void odbc_rdbms_version(TDSSOCKET * tds_socket, char *pversion_string);
│ │ │ │ +
628SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct _drecord *drec_ixd, const TDS_DESC* axd, unsigned int n_row);
│ │ │ │ +
629
│ │ │ │ +
630#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
631DSTR* odbc_dstr_copy_flag(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str, int flag);
│ │ │ │ +
632#define odbc_dstr_copy(dbc, s, len, out) \
│ │ │ │ +
633 odbc_dstr_copy_flag(dbc, s, len, sizeof((out)->mb) ? (out) : (out), wide)
│ │ │ │ +
634#define odbc_dstr_copy_oct(dbc, s, len, out) \
│ │ │ │ +
635 odbc_dstr_copy_flag(dbc, s, len, out, wide|0x20)
│ │ │ │ +
636#else
│ │ │ │ +
637DSTR* odbc_dstr_copy(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str);
│ │ │ │ +
638#define odbc_dstr_copy_oct odbc_dstr_copy
│ │ │ │ +
639#endif
│ │ │ │ +
640
│ │ │ │ +
641
│ │ │ │ +
642SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR * pcbBuffer, const char *s, int len, int flag);
│ │ │ │ +
643#ifdef ENABLE_ODBC_WIDE
│ │ │ │ +
644#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ +
645 odbc_set_string_flag(dbc, sizeof((buf)->mb) ? (buf) : (buf), buf_len, out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10))
│ │ │ │ +
646#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ +
647 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
│ │ │ │ +
648#else
│ │ │ │ +
649#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ +
650 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10))
│ │ │ │ +
651#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ +
652 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
│ │ │ │ +
653#endif
│ │ │ │ +
654
│ │ │ │ +
655#define odbc_set_dstr_oct(dbc, buf, buf_len, out_len, s) odbc_set_string_oct(dbc, buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s))
│ │ │ │ +
656#define odbc_set_dstr(dbc, buf, buf_len, out_len, s) odbc_set_string(dbc, buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s))
│ │ │ │ +
657
│ │ │ │ +
658SQLSMALLINT odbc_get_concise_sql_type(SQLSMALLINT type, SQLSMALLINT interval);
│ │ │ │ +
659SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
│ │ │ │ +
660SQLSMALLINT odbc_get_concise_c_type(SQLSMALLINT type, SQLSMALLINT interval);
│ │ │ │ +
661SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
│ │ │ │ +
662
│ │ │ │ +
663SQLLEN odbc_get_octet_len(int c_type, const struct _drecord *drec);
│ │ │ │ +
664void odbc_convert_err_set(struct _sql_errors *errs, TDS_INT err);
│ │ │ │ +
665
│ │ │ │ +
666/*
│ │ │ │ +
667 * prepare_query.c
│ │ │ │ +
668 */
│ │ │ │ +
669SQLRETURN prepare_call(struct _hstmt *stmt);
│ │ │ │ +
670SQLRETURN native_sql(struct _hdbc *dbc, DSTR *s);
│ │ │ │ +
671int parse_prepared_query(struct _hstmt *stmt, bool compute_row);
│ │ │ │ +
672int start_parse_prepared_query(struct _hstmt *stmt, bool compute_row);
│ │ │ │ +
673int continue_parse_prepared_query(struct _hstmt *stmt, SQLPOINTER DataPtr, SQLLEN StrLen_or_Ind);
│ │ │ │ +
674const char *parse_const_param(const char * s, TDS_SERVER_TYPE *type);
│ │ │ │ +
675const char *odbc_skip_rpc_name(const char *s);
│ │ │ │ +
676
│ │ │ │ +
677/*
│ │ │ │ +
678 * sql2tds.c
│ │ │ │ +
679 */
│ │ │ │ +
680SQLRETURN odbc_sql2tds(TDS_STMT * stmt, const struct _drecord *drec_ixd, const struct _drecord *drec_axd, TDSCOLUMN *curcol, bool compute_row, const TDS_DESC* axd, unsigned int n_row);
│ │ │ │ +
681TDS_INT convert_datetime2server(int bindtype, const void *src, TDS_DATETIMEALL * dta);
│ │ │ │ +
682
│ │ │ │ +
683/*
│ │ │ │ +
684 * bcp.c
│ │ │ │ +
685 */
│ │ │ │ +
686void odbc_bcp_free_storage(TDS_DBC *dbc);
│ │ │ │ +
687void odbc_bcp_init(TDS_DBC *dbc, const ODBC_CHAR *tblname, const ODBC_CHAR *hfile, const ODBC_CHAR *errfile, int direction _WIDE);
│ │ │ │ +
688void odbc_bcp_control(TDS_DBC *dbc, int field, void *value);
│ │ │ │ +
689void odbc_bcp_colptr(TDS_DBC *dbc, const void * colptr, int table_column);
│ │ │ │ +
690void odbc_bcp_sendrow(TDS_DBC *dbc);
│ │ │ │ +
691int odbc_bcp_batch(TDS_DBC *dbc);
│ │ │ │ +
692int odbc_bcp_done(TDS_DBC *dbc);
│ │ │ │ +
693void odbc_bcp_bind(TDS_DBC *dbc, const void * varaddr, int prefixlen, int varlen, const void * terminator, int termlen, int vartype, int table_column);
│ │ │ │ +
694
│ │ │ │ +
695/*
│ │ │ │ +
696 * sqlwchar.c
│ │ │ │ +
697 */
│ │ │ │ +
698#if SIZEOF_SQLWCHAR != SIZEOF_WCHAR_T
│ │ │ │ +
699size_t sqlwcslen(const SQLWCHAR * s);
│ │ │ │ +
700
│ │ │ │ +
701typedef struct sqlwstr_buf {
│ │ │ │ +
702 struct sqlwstr_buf *next;
│ │ │ │ +
703 wchar_t buf[256];
│ │ │ │ +
704} SQLWSTRBUF;
│ │ │ │ +
705const wchar_t *sqlwstr(const SQLWCHAR * s, SQLWSTRBUF **bufs);
│ │ │ │ +
706void sqlwstr_free(SQLWSTRBUF *bufs);
│ │ │ │ +
707#define SQLWSTR_BUFS(n) SQLWSTRBUF *bufs = NULL
│ │ │ │ +
708#define SQLWSTR(s) sqlwstr(s, &bufs)
│ │ │ │ +
709#define SQLWSTR_FREE() sqlwstr_free(bufs)
│ │ │ │ +
710#else
│ │ │ │ +
711#define sqlwcslen(s) wcslen(s)
│ │ │ │ +
712
│ │ │ │ +
713#define SQLWSTR_BUFS(n) do {} while(0)
│ │ │ │ +
714#define SQLWSTR(s) ((const wchar_t*)(s))
│ │ │ │ +
715#define SQLWSTR_FREE() do {} while(0)
│ │ │ │ +
716#endif
│ │ │ │ +
717
│ │ │ │ +
718int odbc_get_wide_canonic(TDSCONNECTION *conn);
│ │ │ │ +
719
│ │ │ │ +
720#include <freetds/popvis.h>
│ │ │ │ +
721
│ │ │ │ +
722#ifdef __cplusplus
│ │ │ │ +
723#if 0
│ │ │ │ +
724{
│ │ │ │ +
725#endif
│ │ │ │ +
726}
│ │ │ │ +
727#endif
│ │ │ │ +
728
│ │ │ │ +
729#endif
│ │ │ │ +
Main include file for libtds.
│ │ │ │ +
SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
Set concise type and all cascading field.
Definition odbc_util.c:976
│ │ │ │ +
SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
Set concise type and all cascading field.
Definition odbc_util.c:1098
│ │ │ │ +
SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct _drecord *drec_ixd, const TDS_DESC *axd, unsigned int n_row)
Return length of parameter from parameter information.
Definition odbc_util.c:861
│ │ │ │ +
TDS_SERVER_TYPE odbc_c_to_server_type(int c_type)
Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to the SQL_C_* type.
Definition odbc_util.c:601
│ │ │ │ +
SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR *pcbBuffer, const char *s, int len, int flag)
Copy a string to client setting size according to ODBC convenction.
Definition odbc_util.c:301
│ │ │ │ +
void odbc_rdbms_version(TDSSOCKET *tds_socket, char *pversion_string)
Returns the version of the RDBMS in the ODBC format.
Definition odbc_util.c:852
│ │ │ │ +
Definition iconv.h:92
│ │ │ │ +
Definition odbc.h:94
│ │ │ │ +
Definition odbc.h:106
│ │ │ │ +
Definition odbc.h:151
│ │ │ │ +
Definition odbc.h:163
│ │ │ │ +
Definition odbc.h:204
│ │ │ │ +
Definition odbc.h:222
│ │ │ │ +
Definition odbc.h:230
│ │ │ │ +
Definition odbc.h:237
│ │ │ │ +
Definition odbc.h:246
│ │ │ │ +
Definition odbc.h:275
│ │ │ │ +
struct _hstmt * stmt_list
list of all statements allocated from this connection
Definition odbc.h:295
│ │ │ │ +
TDS_DESC * uad[TDS_MAX_APP_DESC]
descriptors associated to connection
Definition odbc.h:298
│ │ │ │ +
struct _hstmt * current_statement
Statement executing.
Definition odbc.h:293
│ │ │ │ +
unsigned int cursor_support
<>0 if server handle cursors
Definition odbc.h:300
│ │ │ │ +
Definition odbc.h:309
│ │ │ │ +
Definition odbc.h:381
│ │ │ │ +
unsigned int param_count
number of parameter in current query
Definition odbc.h:418
│ │ │ │ +
TDS_ODBC_ROW_STATUS row_status
status of row, it can happen that this flag mark that we are still parsing row, this it's normal
Definition odbc.h:423
│ │ │ │ +
size_t prepared_pos
position in prepared query to check parameters, used only in RPC
Definition odbc.h:413
│ │ │ │ +
TDS_INT8 row_count
row count to return
Definition odbc.h:421
│ │ │ │ +
int param_num
last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
Definition odbc.h:411
│ │ │ │ +
DSTR query
query to execute
Definition odbc.h:387
│ │ │ │ +
unsigned need_reprepare
Prepared statement needs to be prepared again.
Definition odbc.h:404
│ │ │ │ +
struct _hstmt * next
next in list
Definition odbc.h:392
│ │ │ │ +
TDSSOCKET * tds
socket (only if active)
Definition odbc.h:389
│ │ │ │ +
struct _hstmt * prev
previous in list
Definition odbc.h:394
│ │ │ │ +
TDSPARAMINFO * params
parameters saved
Definition odbc.h:409
│ │ │ │ +
Definition odbc.h:441
│ │ │ │ +
Definition odbc.h:532
│ │ │ │ +
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition tds.h:146
│ │ │ │ +
Definition tds.h:517
│ │ │ │ +
Definition tds.h:643
│ │ │ │ +
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ +
Hold information for any results.
Definition tds.h:769
│ │ │ │ +
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ +
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ +
Definition tds.h:1029
│ │ │ │ +
Definition tds.h:1091
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
Definition tds.h:1661
│ │ │ │ +
Structure to hold a string.
Definition string.h:36
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,53 +1,892 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -bjoern-utf8.h │ │ │ │ │ -1/* │ │ │ │ │ -2 * Copyright (c) 2008-2010 Bjoern Hoehrmann │ │ │ │ │ -3 * │ │ │ │ │ -4 * Permission is hereby granted, free of charge, to any person obtaining a │ │ │ │ │ -copy of this software and associated documentation files (the "Software"), to │ │ │ │ │ -deal in the Software without restriction, including without limitation the │ │ │ │ │ -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or │ │ │ │ │ -sell copies of the Software, and to permit persons to whom the Software is │ │ │ │ │ -furnished to do so, subject to the following conditions: │ │ │ │ │ -5 * │ │ │ │ │ -6 * The above copyright notice and this permission notice shall be included in │ │ │ │ │ -all copies or substantial portions of the Software. │ │ │ │ │ -7 * │ │ │ │ │ -8 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR │ │ │ │ │ -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, │ │ │ │ │ -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE │ │ │ │ │ -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER │ │ │ │ │ -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, │ │ │ │ │ -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE │ │ │ │ │ -SOFTWARE. │ │ │ │ │ +odbc.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ +3 * Copyright (C) 2004-2010 Frediano Ziglio │ │ │ │ │ +4 * │ │ │ │ │ +5 * This library is free software; you can redistribute it and/or │ │ │ │ │ +6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +7 * License as published by the Free Software Foundation; either │ │ │ │ │ +8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 9 * │ │ │ │ │ -10 * See http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details. │ │ │ │ │ -11 */ │ │ │ │ │ -12 │ │ │ │ │ -13#include │ │ │ │ │ -14 │ │ │ │ │ -15#define UTF8_ACCEPT 0 │ │ │ │ │ -16#define UTF8_REJECT 12 │ │ │ │ │ -17 │ │ │ │ │ -18extern const uint8_t utf8_table[]; │ │ │ │ │ -19 │ │ │ │ │ -20static inline uint32_t │ │ │ │ │ -21decode_utf8(uint32_t* state, uint32_t* codep, uint32_t byte) │ │ │ │ │ -22{ │ │ │ │ │ -23 uint32_t type = utf8_table[byte]; │ │ │ │ │ -24 │ │ │ │ │ -25 *codep = (*state != UTF8_ACCEPT) ? │ │ │ │ │ -26 (byte & 0x3fu) | (*codep << 6) : │ │ │ │ │ -27 (0xff >> type) & (byte); │ │ │ │ │ +10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +13 * Library General Public License for more details. │ │ │ │ │ +14 * │ │ │ │ │ +15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +16 * License along with this library; if not, write to the │ │ │ │ │ +17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +18 * Boston, MA 02111-1307, USA. │ │ │ │ │ +19 */ │ │ │ │ │ +20 │ │ │ │ │ +21#ifndef _sql_h_ │ │ │ │ │ +22#define _sql_h_ │ │ │ │ │ +23 │ │ │ │ │ +24#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS │ │ │ │ │ +25#include <_f_r_e_e_t_d_s_/_t_d_s_._h> │ │ │ │ │ +26#include │ │ │ │ │ +27#include │ │ │ │ │ 28 │ │ │ │ │ -29 *state = utf8_table[256 + *state + type]; │ │ │ │ │ -30 return *state; │ │ │ │ │ -31} │ │ │ │ │ +29#if defined(UNIXODBC) || defined(_WIN32) || defined(TDS_NO_DM) │ │ │ │ │ +30#include │ │ │ │ │ +31#include │ │ │ │ │ +32#if defined(UNIXODBC) || defined(_WIN32) │ │ │ │ │ +33#include │ │ │ │ │ +34#endif │ │ │ │ │ +35#else /* IODBC */ │ │ │ │ │ +36#include │ │ │ │ │ +37#include │ │ │ │ │ +38#ifdef HAVE_IODBCINST_H │ │ │ │ │ +39#include │ │ │ │ │ +40#endif /* HAVE_IODBCINST_H */ │ │ │ │ │ +41#endif │ │ │ │ │ +42 │ │ │ │ │ +43#ifdef HAVE_WCHAR_H │ │ │ │ │ +44#include │ │ │ │ │ +45#endif │ │ │ │ │ +46 │ │ │ │ │ +47#ifndef HAVE_SQLLEN │ │ │ │ │ +48#ifndef SQLULEN │ │ │ │ │ +49#define SQLULEN SQLUINTEGER │ │ │ │ │ +50#endif │ │ │ │ │ +51#ifndef SQLLEN │ │ │ │ │ +52#define SQLLEN SQLINTEGER │ │ │ │ │ +53#endif │ │ │ │ │ +54#endif │ │ │ │ │ +55 │ │ │ │ │ +56#ifndef HAVE_SQLSETPOSIROW │ │ │ │ │ +57#define SQLSETPOSIROW SQLUSMALLINT │ │ │ │ │ +58#endif │ │ │ │ │ +59 │ │ │ │ │ +60#ifndef HAVE_SQLROWOFFSET │ │ │ │ │ +61#define SQLROWOFFSET SQLLEN │ │ │ │ │ +62#endif │ │ │ │ │ +63 │ │ │ │ │ +64#ifndef HAVE_SQLROWSETSIZE │ │ │ │ │ +65#define SQLROWSETSIZE SQLULEN │ │ │ │ │ +66#endif │ │ │ │ │ +67 │ │ │ │ │ +68#ifdef __cplusplus │ │ │ │ │ +69extern "C" │ │ │ │ │ +70{ │ │ │ │ │ +71#if 0 │ │ │ │ │ +72} │ │ │ │ │ +73#endif │ │ │ │ │ +74#endif │ │ │ │ │ +75 │ │ │ │ │ +76#include │ │ │ │ │ +77#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__) │ │ │ │ │ +78#define ODBC_API SQL_API __attribute__((externally_visible)) │ │ │ │ │ +79#else │ │ │ │ │ +80#define ODBC_API SQL_API │ │ │ │ │ +81#endif │ │ │ │ │ +82 │ │ │ │ │ +83#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(__GNUC__) │ │ │ │ │ +84# define ODBC_PUBLIC __attribute__((dllexport)) │ │ │ │ │ +85#else │ │ │ │ │ +86# define ODBC_PUBLIC │ │ │ │ │ +87#endif │ │ │ │ │ +88 │ │ │ │ │ +89#define ODBC_MAX(a,b) ( (a) > (b) ? (a) : (b) ) │ │ │ │ │ +90#define ODBC_MIN(a,b) ( (a) < (b) ? (a) : (b) ) │ │ │ │ │ +91#define ODBC_CLAMP(x,a,b) ( (x) < (a) ? (a) : (x) > (b) ? (b) : (x) ) │ │ │ │ │ +92 │ │ │ │ │ +_9_3struct ___s_q_l___e_r_r_o_r │ │ │ │ │ +94{ │ │ │ │ │ +95 const char *msg; │ │ │ │ │ +96 char state2[6]; │ │ │ │ │ +97 char state3[6]; │ │ │ │ │ +98 TDS_UINT native; │ │ │ │ │ +99 char *server; │ │ │ │ │ +100 int linenum; │ │ │ │ │ +101 int msgstate; │ │ │ │ │ +102 int row; │ │ │ │ │ +103}; │ │ │ │ │ +104 │ │ │ │ │ +_1_0_5struct ___s_q_l___e_r_r_o_r_s │ │ │ │ │ +106{ │ │ │ │ │ +107 struct ___s_q_l___e_r_r_o_r *errs; │ │ │ │ │ +108 int num_errors; │ │ │ │ │ +109 SQLRETURN lastrc; │ │ │ │ │ +110 char ranked; │ │ │ │ │ +111}; │ │ │ │ │ +112 │ │ │ │ │ +113typedef struct ___s_q_l___e_r_r_o_r_s _T_D_S___E_R_R_S; │ │ │ │ │ +114 │ │ │ │ │ +115#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +116void odbc_check_struct_extra(void *p); │ │ │ │ │ +117#else │ │ │ │ │ +118static inline void odbc_check_struct_extra(void *p) {} │ │ │ │ │ +119#endif │ │ │ │ │ +120 │ │ │ │ │ +121#define ODBC_RETURN(handle, rc) \ │ │ │ │ │ +122 do { odbc_check_struct_extra(handle); \ │ │ │ │ │ +123 return handle->errs.lastrc = (rc); } while(0) │ │ │ │ │ +124#define ODBC_RETURN_(handle) \ │ │ │ │ │ +125 do { odbc_check_struct_extra(handle); \ │ │ │ │ │ +126 return handle->errs.lastrc; } while(0) │ │ │ │ │ +127 │ │ │ │ │ +128#define ODBC_EXIT(handle, rc) \ │ │ │ │ │ +129 do { SQLRETURN _odbc_rc = handle->errs.lastrc = (rc); \ │ │ │ │ │ +130 odbc_check_struct_extra(handle); \ │ │ │ │ │ +131 tds_mutex_unlock(&handle->mtx); \ │ │ │ │ │ +132 return _odbc_rc; } while(0) │ │ │ │ │ +133#define ODBC_EXIT_(handle) \ │ │ │ │ │ +134 do { SQLRETURN _odbc_rc = handle->errs.lastrc; \ │ │ │ │ │ +135 odbc_check_struct_extra(handle); \ │ │ │ │ │ +136 tds_mutex_unlock(&handle->mtx); \ │ │ │ │ │ +137 return _odbc_rc; } while(0) │ │ │ │ │ +138 │ │ │ │ │ +139 │ │ │ │ │ +141void odbc_errs_reset(struct ___s_q_l___e_r_r_o_r_s *errs); │ │ │ │ │ +142 │ │ │ │ │ +144void odbc_errs_add(struct ___s_q_l___e_r_r_o_r_s *errs, const char *sqlstate, const │ │ │ │ │ +char *msg); │ │ │ │ │ +145 │ │ │ │ │ +147void odbc_errs_add_rdbms(struct ___s_q_l___e_r_r_o_r_s *errs, TDS_UINT native, const │ │ │ │ │ +char *sqlstate, const char *msg, int linenum, │ │ │ │ │ +148 int msgstate, const char *server, int row); │ │ │ │ │ +149 │ │ │ │ │ +_1_5_0struct ___d_h_e_a_d_e_r │ │ │ │ │ +151{ │ │ │ │ │ +152 SQLSMALLINT sql_desc_alloc_type; │ │ │ │ │ +153 SQLINTEGER sql_desc_bind_type; │ │ │ │ │ +154 SQLULEN sql_desc_array_size; │ │ │ │ │ +155 /* TODO SQLLEN ?? see http://support.microsoft.com/default.aspx?scid=kb;en- │ │ │ │ │ +us;298678 */ │ │ │ │ │ +156 SQLSMALLINT sql_desc_count; │ │ │ │ │ +157 SQLUSMALLINT *sql_desc_array_status_ptr; │ │ │ │ │ +158 SQLULEN *sql_desc_rows_processed_ptr; │ │ │ │ │ +159 SQLLEN *sql_desc_bind_offset_ptr; │ │ │ │ │ +160}; │ │ │ │ │ +161 │ │ │ │ │ +_1_6_2struct ___d_r_e_c_o_r_d │ │ │ │ │ +163{ │ │ │ │ │ +164 SQLUINTEGER sql_desc_auto_unique_value; │ │ │ │ │ +165 _D_S_T_R sql_desc_base_column_name; │ │ │ │ │ +166 _D_S_T_R sql_desc_base_table_name; │ │ │ │ │ +167 SQLINTEGER sql_desc_case_sensitive; │ │ │ │ │ +168 _D_S_T_R sql_desc_catalog_name; │ │ │ │ │ +169 SQLSMALLINT sql_desc_concise_type; │ │ │ │ │ +170 SQLPOINTER sql_desc_data_ptr; │ │ │ │ │ +171 SQLSMALLINT sql_desc_datetime_interval_code; │ │ │ │ │ +172 SQLINTEGER sql_desc_datetime_interval_precision; │ │ │ │ │ +173 SQLLEN sql_desc_display_size; │ │ │ │ │ +174 SQLSMALLINT sql_desc_fixed_prec_scale; │ │ │ │ │ +175 SQLLEN *sql_desc_indicator_ptr; │ │ │ │ │ +176 _D_S_T_R sql_desc_label; │ │ │ │ │ +177 SQLULEN sql_desc_length; │ │ │ │ │ +178 /* this point to a constant buffer, do not free or modify */ │ │ │ │ │ +179 const char *sql_desc_literal_prefix; │ │ │ │ │ +180 /* this point to a constant buffer, do not free or modify */ │ │ │ │ │ +181 const char *sql_desc_literal_suffix; │ │ │ │ │ +182 _D_S_T_R sql_desc_local_type_name; │ │ │ │ │ +183 _D_S_T_R sql_desc_name; │ │ │ │ │ +184 SQLSMALLINT sql_desc_nullable; │ │ │ │ │ +185 SQLINTEGER sql_desc_num_prec_radix; │ │ │ │ │ +186 SQLLEN sql_desc_octet_length; │ │ │ │ │ +187 SQLLEN *sql_desc_octet_length_ptr; │ │ │ │ │ +188 SQLSMALLINT sql_desc_parameter_type; │ │ │ │ │ +189 SQLSMALLINT sql_desc_precision; │ │ │ │ │ +190 SQLSMALLINT sql_desc_rowver; │ │ │ │ │ +191 SQLSMALLINT sql_desc_scale; │ │ │ │ │ +192 _D_S_T_R sql_desc_schema_name; │ │ │ │ │ +193 SQLSMALLINT sql_desc_searchable; │ │ │ │ │ +194 _D_S_T_R sql_desc_table_name; │ │ │ │ │ +195 SQLSMALLINT sql_desc_type; │ │ │ │ │ +196 /* this point to a constant buffer, do not free or modify */ │ │ │ │ │ +197 const char *sql_desc_type_name; │ │ │ │ │ +198 SQLSMALLINT sql_desc_unnamed; │ │ │ │ │ +199 SQLSMALLINT sql_desc_unsigned; │ │ │ │ │ +200 SQLSMALLINT sql_desc_updatable; │ │ │ │ │ +201}; │ │ │ │ │ +202 │ │ │ │ │ +_2_0_3struct ___h_d_e_s_c │ │ │ │ │ +204{ │ │ │ │ │ +205 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ +206 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ +207 tds_mutex mtx; │ │ │ │ │ +208 int type; │ │ │ │ │ +209 SQLHANDLE parent; │ │ │ │ │ +210 struct ___d_h_e_a_d_e_r header; │ │ │ │ │ +211 struct ___d_r_e_c_o_r_d *records; │ │ │ │ │ +212}; │ │ │ │ │ +213 │ │ │ │ │ +214typedef struct ___h_d_e_s_c _T_D_S___D_E_S_C; │ │ │ │ │ +215 │ │ │ │ │ +216#define DESC_IRD 1 │ │ │ │ │ +217#define DESC_IPD 2 │ │ │ │ │ +218#define DESC_ARD 3 │ │ │ │ │ +219#define DESC_APD 4 │ │ │ │ │ +220 │ │ │ │ │ +_2_2_1struct ___h_e_a_t_t_r │ │ │ │ │ +222{ │ │ │ │ │ +223 SQLUINTEGER connection_pooling; │ │ │ │ │ +224 SQLUINTEGER cp_match; │ │ │ │ │ +225 SQLINTEGER odbc_version; │ │ │ │ │ +226 SQLINTEGER output_nts; │ │ │ │ │ +227}; │ │ │ │ │ +228 │ │ │ │ │ +_2_2_9struct ___h_c_h_k │ │ │ │ │ +230{ │ │ │ │ │ +231 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ +232 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ +233 tds_mutex mtx; │ │ │ │ │ +234}; │ │ │ │ │ +235 │ │ │ │ │ +_2_3_6struct ___h_e_n_v │ │ │ │ │ +237{ │ │ │ │ │ +238 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ +239 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ +240 tds_mutex mtx; │ │ │ │ │ +241 _T_D_S_C_O_N_T_E_X_T *tds_ctx; │ │ │ │ │ +242 struct ___h_e_a_t_t_r attr; │ │ │ │ │ +243}; │ │ │ │ │ +244 │ │ │ │ │ +_2_4_5struct ___h_c_a_t_t_r │ │ │ │ │ +246{ │ │ │ │ │ +247 SQLUINTEGER access_mode; │ │ │ │ │ +248 SQLUINTEGER async_enable; │ │ │ │ │ +249 SQLUINTEGER auto_ipd; │ │ │ │ │ +250 SQLUINTEGER autocommit; │ │ │ │ │ +251 SQLUINTEGER connection_dead; │ │ │ │ │ +252 SQLUINTEGER connection_timeout; │ │ │ │ │ +253 _D_S_T_R current_catalog; │ │ │ │ │ +254 SQLUINTEGER login_timeout; │ │ │ │ │ +255 SQLUINTEGER metadata_id; │ │ │ │ │ +256 SQLUINTEGER odbc_cursors; │ │ │ │ │ +257 SQLUINTEGER packet_size; │ │ │ │ │ +258 SQLHWND quite_mode; │ │ │ │ │ +259 _D_S_T_R translate_lib; │ │ │ │ │ +260 SQLUINTEGER translate_option; │ │ │ │ │ +261 SQLUINTEGER txn_isolation; │ │ │ │ │ +262 SQLUINTEGER mars_enabled; │ │ │ │ │ +263 SQLUINTEGER cursor_type; │ │ │ │ │ +264 SQLUINTEGER bulk_enabled; │ │ │ │ │ +265#ifdef TDS_NO_DM │ │ │ │ │ +266 SQLUINTEGER trace; │ │ │ │ │ +267 _D_S_T_R tracefile; │ │ │ │ │ +268#endif │ │ │ │ │ +269}; │ │ │ │ │ +270 │ │ │ │ │ +271#define TDS_MAX_APP_DESC 100 │ │ │ │ │ +272 │ │ │ │ │ +273struct ___h_s_t_m_t; │ │ │ │ │ +_2_7_4struct ___h_d_b_c │ │ │ │ │ +275{ │ │ │ │ │ +276 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ +277 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ +278 tds_mutex mtx; │ │ │ │ │ +279 struct ___h_e_n_v *env; │ │ │ │ │ +280 _T_D_S_S_O_C_K_E_T *_t_d_s___s_o_c_k_e_t; │ │ │ │ │ +281 _D_S_T_R dsn; │ │ │ │ │ +282 _D_S_T_R oldpwd; │ │ │ │ │ +283#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +284 int original_charset_num; │ │ │ │ │ +285 _T_D_S_I_C_O_N_V *mb_conv; │ │ │ │ │ +286#endif │ │ │ │ │ +287 │ │ │ │ │ +_2_9_3 struct ___h_s_t_m_t *_c_u_r_r_e_n_t___s_t_a_t_e_m_e_n_t; │ │ │ │ │ +_2_9_5 struct ___h_s_t_m_t *_s_t_m_t___l_i_s_t; │ │ │ │ │ +296 struct ___h_c_a_t_t_r attr; │ │ │ │ │ +_2_9_8 _T_D_S___D_E_S_C *_u_a_d[TDS_MAX_APP_DESC]; │ │ │ │ │ +_3_0_0 unsigned int _c_u_r_s_o_r___s_u_p_p_o_r_t:1; │ │ │ │ │ +301 unsigned int use_oldpwd:1; │ │ │ │ │ +302 TDS_INT default_query_timeout; │ │ │ │ │ +303 │ │ │ │ │ +304 _T_D_S_B_C_P_I_N_F_O *bcpinfo; │ │ │ │ │ +305 char *bcphint; │ │ │ │ │ +306}; │ │ │ │ │ +307 │ │ │ │ │ +_3_0_8struct ___h_s_a_t_t_r │ │ │ │ │ +309{ │ │ │ │ │ +310 /* TODO remove IRD, ARD, IPD, APD from statement, do not duplicate */ │ │ │ │ │ +311/* TDS_DESC *app_row_desc; */ │ │ │ │ │ +312/* TDS_DESC *app_param_desc; */ │ │ │ │ │ +313 SQLUINTEGER async_enable; │ │ │ │ │ +314 SQLUINTEGER concurrency; │ │ │ │ │ +315 SQLUINTEGER cursor_scrollable; │ │ │ │ │ +316 SQLUINTEGER cursor_sensitivity; │ │ │ │ │ +317 SQLUINTEGER cursor_type; │ │ │ │ │ +318 SQLUINTEGER enable_auto_ipd; │ │ │ │ │ +319 SQLPOINTER fetch_bookmark_ptr; │ │ │ │ │ +320 SQLULEN keyset_size; │ │ │ │ │ +321 SQLULEN max_length; │ │ │ │ │ +322 SQLULEN max_rows; │ │ │ │ │ +323 SQLUINTEGER metadata_id; │ │ │ │ │ +324 SQLUINTEGER noscan; │ │ │ │ │ +325 /* apd->sql_desc_bind_offset_ptr */ │ │ │ │ │ +326 /* SQLUINTEGER *param_bind_offset_ptr; */ │ │ │ │ │ +327 /* apd->sql_desc_bind_type */ │ │ │ │ │ +328 /* SQLUINTEGER param_bind_type; */ │ │ │ │ │ +329 /* apd->sql_desc_array_status_ptr */ │ │ │ │ │ +330 /* SQLUSMALLINT *param_operation_ptr; */ │ │ │ │ │ +331 /* ipd->sql_desc_array_status_ptr */ │ │ │ │ │ +332 /* SQLUSMALLINT *param_status_ptr; */ │ │ │ │ │ +333 /* ipd->sql_desc_rows_processed_ptr */ │ │ │ │ │ +334 /* SQLUSMALLINT *params_processed_ptr; */ │ │ │ │ │ +335 /* apd->sql_desc_array_size */ │ │ │ │ │ +336 /* SQLUINTEGER paramset_size; */ │ │ │ │ │ +337 SQLUINTEGER query_timeout; │ │ │ │ │ +338 SQLUINTEGER retrieve_data; │ │ │ │ │ +339 /* ard->sql_desc_bind_offset_ptr */ │ │ │ │ │ +340 /* SQLUINTEGER *row_bind_offset_ptr; */ │ │ │ │ │ +341 /* ard->sql_desc_array_size */ │ │ │ │ │ +342 /* SQLUINTEGER row_array_size; */ │ │ │ │ │ +343 /* ard->sql_desc_bind_type */ │ │ │ │ │ +344 /* SQLUINTEGER row_bind_type; */ │ │ │ │ │ +345 SQLULEN row_number; │ │ │ │ │ +346 /* ard->sql_desc_array_status_ptr */ │ │ │ │ │ +347 /* SQLUINTEGER *row_operation_ptr; */ │ │ │ │ │ +348 /* ird->sql_desc_array_status_ptr */ │ │ │ │ │ +349 /* SQLUINTEGER *row_status_ptr; */ │ │ │ │ │ +350 /* ird->sql_desc_rows_processed_ptr */ │ │ │ │ │ +351 /* SQLUINTEGER *rows_fetched_ptr; */ │ │ │ │ │ +352 SQLUINTEGER simulate_cursor; │ │ │ │ │ +353 SQLUINTEGER use_bookmarks; │ │ │ │ │ +354 /* SQLGetStmtAttr only */ │ │ │ │ │ +355/* TDS_DESC *imp_row_desc; */ │ │ │ │ │ +356/* TDS_DESC *imp_param_desc; */ │ │ │ │ │ +357 _D_S_T_R qn_msgtext; │ │ │ │ │ +358 _D_S_T_R qn_options; │ │ │ │ │ +359 SQLUINTEGER qn_timeout; │ │ │ │ │ +360}; │ │ │ │ │ +361 │ │ │ │ │ +362typedef enum │ │ │ │ │ +363{ │ │ │ │ │ +364 NOT_IN_ROW, │ │ │ │ │ +365 IN_NORMAL_ROW, │ │ │ │ │ +366 IN_COMPUTE_ROW, │ │ │ │ │ +367 AFTER_COMPUTE_ROW, │ │ │ │ │ +368 PRE_NORMAL_ROW │ │ │ │ │ +369} TDS_ODBC_ROW_STATUS; │ │ │ │ │ +370 │ │ │ │ │ +371typedef enum │ │ │ │ │ +372{ │ │ │ │ │ +373 ODBC_SPECIAL_NONE = 0, │ │ │ │ │ +374 ODBC_SPECIAL_GETTYPEINFO = 1, │ │ │ │ │ +375 ODBC_SPECIAL_COLUMNS = 2, │ │ │ │ │ +376 ODBC_SPECIAL_PROCEDURECOLUMNS = 3, │ │ │ │ │ +377 ODBC_SPECIAL_SPECIALCOLUMNS = 4 │ │ │ │ │ +378} TDS_ODBC_SPECIAL_ROWS; │ │ │ │ │ +379 │ │ │ │ │ +_3_8_0struct ___h_s_t_m_t │ │ │ │ │ +381{ │ │ │ │ │ +382 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ +383 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ +384 tds_mutex mtx; │ │ │ │ │ +385 struct ___h_d_b_c *dbc; │ │ │ │ │ +_3_8_7 _D_S_T_R _q_u_e_r_y; │ │ │ │ │ +_3_8_9 _T_D_S_S_O_C_K_E_T *_t_d_s; │ │ │ │ │ +390 │ │ │ │ │ +_3_9_2 struct ___h_s_t_m_t *_n_e_x_t; │ │ │ │ │ +_3_9_4 struct ___h_s_t_m_t *_p_r_e_v; │ │ │ │ │ +395 │ │ │ │ │ +396 /* begin prepared query stuff */ │ │ │ │ │ +397 unsigned is_prepared_query:1; │ │ │ │ │ +398 unsigned prepared_query_is_func:1; │ │ │ │ │ +399 unsigned prepared_query_is_rpc:1; │ │ │ │ │ +_4_0_4 unsigned _n_e_e_d___r_e_p_r_e_p_a_r_e:1; │ │ │ │ │ +405 unsigned param_data_called:1; │ │ │ │ │ +406 /* end prepared query stuff */ │ │ │ │ │ +407 │ │ │ │ │ +_4_0_9 _T_D_S_P_A_R_A_M_I_N_F_O *_p_a_r_a_m_s; │ │ │ │ │ +_4_1_1 int _p_a_r_a_m___n_u_m; │ │ │ │ │ +_4_1_3 size_t _p_r_e_p_a_r_e_d___p_o_s; │ │ │ │ │ +414 │ │ │ │ │ +415 unsigned int curr_param_row, num_param_rows; │ │ │ │ │ +416 │ │ │ │ │ +_4_1_8 unsigned int _p_a_r_a_m___c_o_u_n_t; │ │ │ │ │ +419 int row; │ │ │ │ │ +_4_2_1 TDS_INT8 _r_o_w___c_o_u_n_t; │ │ │ │ │ +_4_2_3 TDS_ODBC_ROW_STATUS _r_o_w___s_t_a_t_u_s; │ │ │ │ │ +424 /* do NOT free dynamic, free from socket or attach to connection */ │ │ │ │ │ +425 _T_D_S_D_Y_N_A_M_I_C *dyn; │ │ │ │ │ +426 _T_D_S___D_E_S_C *ard, *ird, *apd, *ipd; │ │ │ │ │ +427 _T_D_S___D_E_S_C *orig_ard, *orig_apd; │ │ │ │ │ +428 SQLULEN sql_rowset_size; │ │ │ │ │ +429 struct ___h_s_a_t_t_r attr; │ │ │ │ │ +430 _D_S_T_R cursor_name; /* auto generated cursor name */ │ │ │ │ │ +431 TDS_ODBC_SPECIAL_ROWS special_row; │ │ │ │ │ +432 /* do NOT free cursor, free from socket or attach to connection */ │ │ │ │ │ +433 _T_D_S_C_U_R_S_O_R *cursor; │ │ │ │ │ +434}; │ │ │ │ │ +435 │ │ │ │ │ +436typedef struct ___h_e_n_v _T_D_S___E_N_V; │ │ │ │ │ +437typedef struct ___h_d_b_c _T_D_S___D_B_C; │ │ │ │ │ +438typedef struct ___h_s_t_m_t _T_D_S___S_T_M_T; │ │ │ │ │ +439typedef struct ___h_c_h_k _T_D_S___C_H_K; │ │ │ │ │ +440 │ │ │ │ │ +_4_4_1typedef struct { │ │ │ │ │ +442 /* this must be the first member */ │ │ │ │ │ +443 _T_D_S_C_O_L_U_M_N_F_U_N_C_S common; │ │ │ │ │ +444 void (*set_type_info)(_T_D_S_C_O_L_U_M_N *col, struct ___d_r_e_c_o_r_d *drec, SQLINTEGER │ │ │ │ │ +odbc_ver); │ │ │ │ │ +445} _T_D_S___F_U_N_C_S; │ │ │ │ │ +446 │ │ │ │ │ +447#define IS_HENV(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_ENV) │ │ │ │ │ +448#define IS_HDBC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DBC) │ │ │ │ │ +449#define IS_HSTMT(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_STMT) │ │ │ │ │ +450#define IS_HDESC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DESC) │ │ │ │ │ +451 │ │ │ │ │ +452/* fix a bug in MingW headers */ │ │ │ │ │ +453#ifdef __MINGW32__ │ │ │ │ │ +454#if SQL_INTERVAL_YEAR == (100 + SQL_CODE_SECOND) │ │ │ │ │ +455 │ │ │ │ │ +456#undef SQL_INTERVAL_YEAR │ │ │ │ │ +457#undef SQL_INTERVAL_MONTH │ │ │ │ │ +458#undef SQL_INTERVAL_DAY │ │ │ │ │ +459#undef SQL_INTERVAL_HOUR │ │ │ │ │ +460#undef SQL_INTERVAL_MINUTE │ │ │ │ │ +461#undef SQL_INTERVAL_SECOND │ │ │ │ │ +462#undef SQL_INTERVAL_YEAR_TO_MONTH │ │ │ │ │ +463#undef SQL_INTERVAL_DAY_TO_HOUR │ │ │ │ │ +464#undef SQL_INTERVAL_DAY_TO_MINUTE │ │ │ │ │ +465#undef SQL_INTERVAL_DAY_TO_SECOND │ │ │ │ │ +466#undef SQL_INTERVAL_HOUR_TO_MINUTE │ │ │ │ │ +467#undef SQL_INTERVAL_HOUR_TO_SECOND │ │ │ │ │ +468#undef SQL_INTERVAL_MINUTE_TO_SECOND │ │ │ │ │ +469 │ │ │ │ │ +470#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR) │ │ │ │ │ +471#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH) │ │ │ │ │ +472#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY) │ │ │ │ │ +473#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR) │ │ │ │ │ +474#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE) │ │ │ │ │ +475#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND) │ │ │ │ │ +476#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH) │ │ │ │ │ +477#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR) │ │ │ │ │ +478#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE) │ │ │ │ │ +479#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND) │ │ │ │ │ +480#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE) │ │ │ │ │ +481#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND) │ │ │ │ │ +482#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND) │ │ │ │ │ +483 │ │ │ │ │ +484#endif │ │ │ │ │ +485#endif │ │ │ │ │ +486 │ │ │ │ │ +487#ifdef _WIN32 │ │ │ │ │ +488bool get_login_info(HWND hwndParent, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ +489#endif │ │ │ │ │ +490 │ │ │ │ │ +491#define ODBC_PARAM_LIST \ │ │ │ │ │ +492 ODBC_PARAM(Servername) \ │ │ │ │ │ +493 ODBC_PARAM(Server) \ │ │ │ │ │ +494 ODBC_PARAM(DSN) \ │ │ │ │ │ +495 ODBC_PARAM(UID) \ │ │ │ │ │ +496 ODBC_PARAM(PWD) \ │ │ │ │ │ +497 ODBC_PARAM(Address) \ │ │ │ │ │ +498 ODBC_PARAM(Port) \ │ │ │ │ │ +499 ODBC_PARAM(TDS_Version) \ │ │ │ │ │ +500 ODBC_PARAM(Language) \ │ │ │ │ │ +501 ODBC_PARAM(Database) \ │ │ │ │ │ +502 ODBC_PARAM(TextSize) \ │ │ │ │ │ +503 ODBC_PARAM(PacketSize) \ │ │ │ │ │ +504 ODBC_PARAM(ClientCharset) \ │ │ │ │ │ +505 ODBC_PARAM(DumpFile) \ │ │ │ │ │ +506 ODBC_PARAM(DumpFileAppend) \ │ │ │ │ │ +507 ODBC_PARAM(DebugFlags) \ │ │ │ │ │ +508 ODBC_PARAM(Encryption) \ │ │ │ │ │ +509 ODBC_PARAM(Trusted_Connection) \ │ │ │ │ │ +510 ODBC_PARAM(APP) \ │ │ │ │ │ +511 ODBC_PARAM(WSID) \ │ │ │ │ │ +512 ODBC_PARAM(UseNTLMv2) \ │ │ │ │ │ +513 ODBC_PARAM(MARS_Connection) \ │ │ │ │ │ +514 ODBC_PARAM(REALM) \ │ │ │ │ │ +515 ODBC_PARAM(ServerSPN) \ │ │ │ │ │ +516 ODBC_PARAM(AttachDbFilename) \ │ │ │ │ │ +517 ODBC_PARAM(ApplicationIntent) \ │ │ │ │ │ +518 ODBC_PARAM(Timeout) │ │ │ │ │ +519 │ │ │ │ │ +520#define ODBC_PARAM(p) ODBC_PARAM_##p, │ │ │ │ │ +521enum { │ │ │ │ │ +522 ODBC_PARAM_LIST │ │ │ │ │ +523 ODBC_PARAM_SIZE │ │ │ │ │ +524}; │ │ │ │ │ +525#undef ODBC_PARAM │ │ │ │ │ +526 │ │ │ │ │ +527 │ │ │ │ │ +528/* │ │ │ │ │ +529 * connectparams.h │ │ │ │ │ +530 */ │ │ │ │ │ +531 │ │ │ │ │ +_5_3_2typedef struct { │ │ │ │ │ +533 const char *p; │ │ │ │ │ +534 size_t len; │ │ │ │ │ +535} _T_D_S___P_A_R_S_E_D___P_A_R_A_M; │ │ │ │ │ +536 │ │ │ │ │ +544int odbc_parse_connect_string(_T_D_S___E_R_R_S *errs, const char *connect_string, │ │ │ │ │ +const char *connect_string_end, _T_D_S_L_O_G_I_N * login, _T_D_S___P_A_R_S_E_D___P_A_R_A_M │ │ │ │ │ +*parsed_params); │ │ │ │ │ +545int odbc_get_dsn_info(_T_D_S___E_R_R_S *errs, const char *DSN, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ +546#ifdef _WIN32 │ │ │ │ │ +547int odbc_build_connect_string(_T_D_S___E_R_R_S *errs, _T_D_S___P_A_R_S_E_D___P_A_R_A_M *params, char │ │ │ │ │ +**out); │ │ │ │ │ +548#endif │ │ │ │ │ +549 │ │ │ │ │ +550/* │ │ │ │ │ +551 * convert_tds2sql.c │ │ │ │ │ +552 */ │ │ │ │ │ +553SQLLEN odbc_tds2sql_col(_T_D_S___S_T_M_T * stmt, _T_D_S_C_O_L_U_M_N *curcol, int desttype, │ │ │ │ │ +TDS_CHAR * dest, SQLULEN destlen, const struct ___d_r_e_c_o_r_d *drec_ixd); │ │ │ │ │ +554SQLLEN odbc_tds2sql_int4(_T_D_S___S_T_M_T * stmt, TDS_INT *src, int desttype, │ │ │ │ │ +TDS_CHAR * dest, SQLULEN destlen); │ │ │ │ │ +555 │ │ │ │ │ +556 │ │ │ │ │ +557 │ │ │ │ │ +558/* │ │ │ │ │ +559 * descriptor.c │ │ │ │ │ +560 */ │ │ │ │ │ +561_T_D_S___D_E_S_C *desc_alloc(SQLHANDLE parent, int desc_type, int alloc_type); │ │ │ │ │ +562SQLRETURN desc_free(_T_D_S___D_E_S_C * desc); │ │ │ │ │ +563SQLRETURN desc_alloc_records(_T_D_S___D_E_S_C * desc, unsigned count); │ │ │ │ │ +564SQLRETURN desc_copy(_T_D_S___D_E_S_C * dest, _T_D_S___D_E_S_C * src); │ │ │ │ │ +565SQLRETURN desc_free_records(_T_D_S___D_E_S_C * desc); │ │ │ │ │ +566_T_D_S___D_B_C *desc_get_dbc(_T_D_S___D_E_S_C *desc); │ │ │ │ │ +567 │ │ │ │ │ +568/* │ │ │ │ │ +569 * odbc.c │ │ │ │ │ +570 */ │ │ │ │ │ +571SQLRETURN _SQLRowCount(SQLHSTMT hstmt, SQLLEN FAR * pcrow); │ │ │ │ │ +572 │ │ │ │ │ +573/* │ │ │ │ │ +574 * odbc_checks.h │ │ │ │ │ +575 */ │ │ │ │ │ +576#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +577/* macro */ │ │ │ │ │ +578#define CHECK_ENV_EXTRA(env) odbc_check_env_extra(env) │ │ │ │ │ +579#define CHECK_DBC_EXTRA(dbc) odbc_check_dbc_extra(dbc) │ │ │ │ │ +580#define CHECK_STMT_EXTRA(stmt) odbc_check_stmt_extra(stmt) │ │ │ │ │ +581#define CHECK_DESC_EXTRA(desc) odbc_check_desc_extra(desc) │ │ │ │ │ +582/* declarations*/ │ │ │ │ │ +583void odbc_check_env_extra(_T_D_S___E_N_V * env); │ │ │ │ │ +584void odbc_check_dbc_extra(_T_D_S___D_B_C * dbc); │ │ │ │ │ +585void odbc_check_stmt_extra(_T_D_S___S_T_M_T * stmt); │ │ │ │ │ +586void odbc_check_desc_extra(_T_D_S___D_E_S_C * desc); │ │ │ │ │ +587#else │ │ │ │ │ +588/* macro */ │ │ │ │ │ +589#define CHECK_ENV_EXTRA(env) │ │ │ │ │ +590#define CHECK_DBC_EXTRA(dbc) │ │ │ │ │ +591#define CHECK_STMT_EXTRA(stmt) │ │ │ │ │ +592#define CHECK_DESC_EXTRA(desc) │ │ │ │ │ +593#endif │ │ │ │ │ +594 │ │ │ │ │ +595/* │ │ │ │ │ +596 * odbc_util.h │ │ │ │ │ +597 */ │ │ │ │ │ +598 │ │ │ │ │ +599/* helpers for ODBC wide string support */ │ │ │ │ │ +600#undef _wide │ │ │ │ │ +601#undef _WIDE │ │ │ │ │ +602#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +603typedef union { │ │ │ │ │ +604 char mb[1]; │ │ │ │ │ +605 SQLWCHAR wide[1]; │ │ │ │ │ +606} ODBC_CHAR; │ │ │ │ │ +607# define _wide ,wide │ │ │ │ │ +608# define _wide0 ,0 │ │ │ │ │ +609# define _WIDE ,int wide │ │ │ │ │ +610#else │ │ │ │ │ +611# define _wide │ │ │ │ │ +612# define _wide0 │ │ │ │ │ +613# define _WIDE │ │ │ │ │ +614# define ODBC_CHAR SQLCHAR │ │ │ │ │ +615#endif │ │ │ │ │ +616int odbc_set_stmt_query(struct ___h_s_t_m_t *stmt, const ODBC_CHAR *sql, int │ │ │ │ │ +sql_len _WIDE); │ │ │ │ │ +617void odbc_set_return_status(struct ___h_s_t_m_t *stmt, unsigned int n_row); │ │ │ │ │ +618void odbc_set_return_params(struct ___h_s_t_m_t *stmt, unsigned int n_row); │ │ │ │ │ +619 │ │ │ │ │ +620void odbc_set_sql_type_info(_T_D_S_C_O_L_U_M_N * col, struct ___d_r_e_c_o_r_d *drec, │ │ │ │ │ +SQLINTEGER odbc_ver); │ │ │ │ │ +621 │ │ │ │ │ +622int odbc_sql_to_c_type_default(int sql_type); │ │ │ │ │ +623TDS_SERVER_TYPE odbc_sql_to_server_type(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, int sql_type, │ │ │ │ │ +int sql_unsigned); │ │ │ │ │ +624TDS_SERVER_TYPE _o_d_b_c___c___t_o___s_e_r_v_e_r___t_y_p_e(int c_type); │ │ │ │ │ +625 │ │ │ │ │ +626unsigned int odbc_get_string_size(int size, const ODBC_CHAR * str _WIDE); │ │ │ │ │ +627void _o_d_b_c___r_d_b_m_s___v_e_r_s_i_o_n(_T_D_S_S_O_C_K_E_T * _t_d_s___s_o_c_k_e_t, char *pversion_string); │ │ │ │ │ +628SQLINTEGER _o_d_b_c___g_e_t___p_a_r_a_m___l_e_n(const struct ___d_r_e_c_o_r_d *drec_axd, const struct │ │ │ │ │ +___d_r_e_c_o_r_d *drec_ixd, const _T_D_S___D_E_S_C* axd, unsigned int n_row); │ │ │ │ │ +629 │ │ │ │ │ +630#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +631_D_S_T_R* odbc_dstr_copy_flag(_T_D_S___D_B_C *dbc, _D_S_T_R *s, int size, const ODBC_CHAR * │ │ │ │ │ +str, int flag); │ │ │ │ │ +632#define odbc_dstr_copy(dbc, s, len, out) \ │ │ │ │ │ +633 odbc_dstr_copy_flag(dbc, s, len, sizeof((out)->mb) ? (out) : (out), wide) │ │ │ │ │ +634#define odbc_dstr_copy_oct(dbc, s, len, out) \ │ │ │ │ │ +635 odbc_dstr_copy_flag(dbc, s, len, out, wide|0x20) │ │ │ │ │ +636#else │ │ │ │ │ +637_D_S_T_R* odbc_dstr_copy(_T_D_S___D_B_C *dbc, _D_S_T_R *s, int size, const ODBC_CHAR * │ │ │ │ │ +str); │ │ │ │ │ +638#define odbc_dstr_copy_oct odbc_dstr_copy │ │ │ │ │ +639#endif │ │ │ │ │ +640 │ │ │ │ │ +641 │ │ │ │ │ +642SQLRETURN _o_d_b_c___s_e_t___s_t_r_i_n_g___f_l_a_g(_T_D_S___D_B_C *dbc, SQLPOINTER buffer, SQLINTEGER │ │ │ │ │ +cbBuffer, void FAR * pcbBuffer, const char *s, int len, int flag); │ │ │ │ │ +643#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ +644#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ +645 odbc_set_string_flag(dbc, sizeof((buf)->mb) ? (buf) : (buf), buf_len, │ │ │ │ │ +out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10)) │ │ │ │ │ +646#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ +647 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (wide) | (sizeof │ │ │ │ │ +(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30)) │ │ │ │ │ +648#else │ │ │ │ │ +649#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ +650 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(* │ │ │ │ │ +(out_len)) == sizeof(SQLSMALLINT)?0:0x10)) │ │ │ │ │ +651#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ +652 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(* │ │ │ │ │ +(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30)) │ │ │ │ │ +653#endif │ │ │ │ │ +654 │ │ │ │ │ +655#define odbc_set_dstr_oct(dbc, buf, buf_len, out_len, s) odbc_set_string_oct │ │ │ │ │ +(dbc, buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s)) │ │ │ │ │ +656#define odbc_set_dstr(dbc, buf, buf_len, out_len, s) odbc_set_string(dbc, │ │ │ │ │ +buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s)) │ │ │ │ │ +657 │ │ │ │ │ +658SQLSMALLINT odbc_get_concise_sql_type(SQLSMALLINT type, SQLSMALLINT │ │ │ │ │ +interval); │ │ │ │ │ +659SQLRETURN _o_d_b_c___s_e_t___c_o_n_c_i_s_e___s_q_l___t_y_p_e(SQLSMALLINT concise_type, struct │ │ │ │ │ +___d_r_e_c_o_r_d *drec, int check_only); │ │ │ │ │ +660SQLSMALLINT odbc_get_concise_c_type(SQLSMALLINT type, SQLSMALLINT interval); │ │ │ │ │ +661SQLRETURN _o_d_b_c___s_e_t___c_o_n_c_i_s_e___c___t_y_p_e(SQLSMALLINT concise_type, struct ___d_r_e_c_o_r_d │ │ │ │ │ +*drec, int check_only); │ │ │ │ │ +662 │ │ │ │ │ +663SQLLEN odbc_get_octet_len(int c_type, const struct ___d_r_e_c_o_r_d *drec); │ │ │ │ │ +664void odbc_convert_err_set(struct ___s_q_l___e_r_r_o_r_s *errs, TDS_INT err); │ │ │ │ │ +665 │ │ │ │ │ +666/* │ │ │ │ │ +667 * prepare_query.c │ │ │ │ │ +668 */ │ │ │ │ │ +669SQLRETURN prepare_call(struct ___h_s_t_m_t *stmt); │ │ │ │ │ +670SQLRETURN native_sql(struct ___h_d_b_c *dbc, _D_S_T_R *s); │ │ │ │ │ +671int parse_prepared_query(struct ___h_s_t_m_t *stmt, bool compute_row); │ │ │ │ │ +672int start_parse_prepared_query(struct ___h_s_t_m_t *stmt, bool compute_row); │ │ │ │ │ +673int continue_parse_prepared_query(struct ___h_s_t_m_t *stmt, SQLPOINTER DataPtr, │ │ │ │ │ +SQLLEN StrLen_or_Ind); │ │ │ │ │ +674const char *parse_const_param(const char * s, TDS_SERVER_TYPE *type); │ │ │ │ │ +675const char *odbc_skip_rpc_name(const char *s); │ │ │ │ │ +676 │ │ │ │ │ +677/* │ │ │ │ │ +678 * sql2tds.c │ │ │ │ │ +679 */ │ │ │ │ │ +680SQLRETURN odbc_sql2tds(_T_D_S___S_T_M_T * stmt, const struct ___d_r_e_c_o_r_d *drec_ixd, │ │ │ │ │ +const struct ___d_r_e_c_o_r_d *drec_axd, _T_D_S_C_O_L_U_M_N *curcol, bool compute_row, const │ │ │ │ │ +_T_D_S___D_E_S_C* axd, unsigned int n_row); │ │ │ │ │ +681TDS_INT convert_datetime2server(int bindtype, const void *src, │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L * dta); │ │ │ │ │ +682 │ │ │ │ │ +683/* │ │ │ │ │ +684 * bcp.c │ │ │ │ │ +685 */ │ │ │ │ │ +686void odbc_bcp_free_storage(_T_D_S___D_B_C *dbc); │ │ │ │ │ +687void odbc_bcp_init(_T_D_S___D_B_C *dbc, const ODBC_CHAR *tblname, const ODBC_CHAR │ │ │ │ │ +*hfile, const ODBC_CHAR *errfile, int direction _WIDE); │ │ │ │ │ +688void odbc_bcp_control(_T_D_S___D_B_C *dbc, int field, void *value); │ │ │ │ │ +689void odbc_bcp_colptr(_T_D_S___D_B_C *dbc, const void * colptr, int table_column); │ │ │ │ │ +690void odbc_bcp_sendrow(_T_D_S___D_B_C *dbc); │ │ │ │ │ +691int odbc_bcp_batch(_T_D_S___D_B_C *dbc); │ │ │ │ │ +692int odbc_bcp_done(_T_D_S___D_B_C *dbc); │ │ │ │ │ +693void odbc_bcp_bind(_T_D_S___D_B_C *dbc, const void * varaddr, int prefixlen, int │ │ │ │ │ +varlen, const void * terminator, int termlen, int vartype, int table_column); │ │ │ │ │ +694 │ │ │ │ │ +695/* │ │ │ │ │ +696 * sqlwchar.c │ │ │ │ │ +697 */ │ │ │ │ │ +698#if SIZEOF_SQLWCHAR != SIZEOF_WCHAR_T │ │ │ │ │ +699size_t sqlwcslen(const SQLWCHAR * s); │ │ │ │ │ +700 │ │ │ │ │ +701typedef struct sqlwstr_buf { │ │ │ │ │ +702 struct sqlwstr_buf *next; │ │ │ │ │ +703 wchar_t buf[256]; │ │ │ │ │ +704} SQLWSTRBUF; │ │ │ │ │ +705const wchar_t *sqlwstr(const SQLWCHAR * s, SQLWSTRBUF **bufs); │ │ │ │ │ +706void sqlwstr_free(SQLWSTRBUF *bufs); │ │ │ │ │ +707#define SQLWSTR_BUFS(n) SQLWSTRBUF *bufs = NULL │ │ │ │ │ +708#define SQLWSTR(s) sqlwstr(s, &bufs) │ │ │ │ │ +709#define SQLWSTR_FREE() sqlwstr_free(bufs) │ │ │ │ │ +710#else │ │ │ │ │ +711#define sqlwcslen(s) wcslen(s) │ │ │ │ │ +712 │ │ │ │ │ +713#define SQLWSTR_BUFS(n) do {} while(0) │ │ │ │ │ +714#define SQLWSTR(s) ((const wchar_t*)(s)) │ │ │ │ │ +715#define SQLWSTR_FREE() do {} while(0) │ │ │ │ │ +716#endif │ │ │ │ │ +717 │ │ │ │ │ +718int odbc_get_wide_canonic(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ +719 │ │ │ │ │ +720#include │ │ │ │ │ +721 │ │ │ │ │ +722#ifdef __cplusplus │ │ │ │ │ +723#if 0 │ │ │ │ │ +724{ │ │ │ │ │ +725#endif │ │ │ │ │ +726} │ │ │ │ │ +727#endif │ │ │ │ │ +728 │ │ │ │ │ +729#endif │ │ │ │ │ +_t_d_s_._h │ │ │ │ │ +Main include file for libtds. │ │ │ │ │ +_o_d_b_c___s_e_t___c_o_n_c_i_s_e___s_q_l___t_y_p_e │ │ │ │ │ +SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord │ │ │ │ │ +*drec, int check_only) │ │ │ │ │ +Set concise type and all cascading field. │ │ │ │ │ +DDeeffiinniittiioonn odbc_util.c:976 │ │ │ │ │ +_o_d_b_c___s_e_t___c_o_n_c_i_s_e___c___t_y_p_e │ │ │ │ │ +SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord │ │ │ │ │ +*drec, int check_only) │ │ │ │ │ +Set concise type and all cascading field. │ │ │ │ │ +DDeeffiinniittiioonn odbc_util.c:1098 │ │ │ │ │ +_o_d_b_c___g_e_t___p_a_r_a_m___l_e_n │ │ │ │ │ +SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct │ │ │ │ │ +_drecord *drec_ixd, const TDS_DESC *axd, unsigned int n_row) │ │ │ │ │ +Return length of parameter from parameter information. │ │ │ │ │ +DDeeffiinniittiioonn odbc_util.c:861 │ │ │ │ │ +_o_d_b_c___c___t_o___s_e_r_v_e_r___t_y_p_e │ │ │ │ │ +TDS_SERVER_TYPE odbc_c_to_server_type(int c_type) │ │ │ │ │ +Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to │ │ │ │ │ +the SQL_C_* type. │ │ │ │ │ +DDeeffiinniittiioonn odbc_util.c:601 │ │ │ │ │ +_o_d_b_c___s_e_t___s_t_r_i_n_g___f_l_a_g │ │ │ │ │ +SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER │ │ │ │ │ +cbBuffer, void FAR *pcbBuffer, const char *s, int len, int flag) │ │ │ │ │ +Copy a string to client setting size according to ODBC convenction. │ │ │ │ │ +DDeeffiinniittiioonn odbc_util.c:301 │ │ │ │ │ +_o_d_b_c___r_d_b_m_s___v_e_r_s_i_o_n │ │ │ │ │ +void odbc_rdbms_version(TDSSOCKET *tds_socket, char *pversion_string) │ │ │ │ │ +Returns the version of the RDBMS in the ODBC format. │ │ │ │ │ +DDeeffiinniittiioonn odbc_util.c:852 │ │ │ │ │ +_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ +___s_q_l___e_r_r_o_r │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:94 │ │ │ │ │ +___s_q_l___e_r_r_o_r_s │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:106 │ │ │ │ │ +___d_h_e_a_d_e_r │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:151 │ │ │ │ │ +___d_r_e_c_o_r_d │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:163 │ │ │ │ │ +___h_d_e_s_c │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:204 │ │ │ │ │ +___h_e_a_t_t_r │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:222 │ │ │ │ │ +___h_c_h_k │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:230 │ │ │ │ │ +___h_e_n_v │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:237 │ │ │ │ │ +___h_c_a_t_t_r │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:246 │ │ │ │ │ +___h_d_b_c │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:275 │ │ │ │ │ +___h_d_b_c_:_:_s_t_m_t___l_i_s_t │ │ │ │ │ +struct _hstmt * stmt_list │ │ │ │ │ +list of all statements allocated from this connection │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:295 │ │ │ │ │ +___h_d_b_c_:_:_u_a_d │ │ │ │ │ +TDS_DESC * uad[TDS_MAX_APP_DESC] │ │ │ │ │ +descriptors associated to connection │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:298 │ │ │ │ │ +___h_d_b_c_:_:_c_u_r_r_e_n_t___s_t_a_t_e_m_e_n_t │ │ │ │ │ +struct _hstmt * current_statement │ │ │ │ │ +Statement executing. │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:293 │ │ │ │ │ +___h_d_b_c_:_:_c_u_r_s_o_r___s_u_p_p_o_r_t │ │ │ │ │ +unsigned int cursor_support │ │ │ │ │ +<>0 if server handle cursors │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:300 │ │ │ │ │ +___h_s_a_t_t_r │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:309 │ │ │ │ │ +___h_s_t_m_t │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:381 │ │ │ │ │ +___h_s_t_m_t_:_:_p_a_r_a_m___c_o_u_n_t │ │ │ │ │ +unsigned int param_count │ │ │ │ │ +number of parameter in current query │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:418 │ │ │ │ │ +___h_s_t_m_t_:_:_r_o_w___s_t_a_t_u_s │ │ │ │ │ +TDS_ODBC_ROW_STATUS row_status │ │ │ │ │ +status of row, it can happen that this flag mark that we are still parsing row, │ │ │ │ │ +this it's normal │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:423 │ │ │ │ │ +___h_s_t_m_t_:_:_p_r_e_p_a_r_e_d___p_o_s │ │ │ │ │ +size_t prepared_pos │ │ │ │ │ +position in prepared query to check parameters, used only in RPC │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:413 │ │ │ │ │ +___h_s_t_m_t_:_:_r_o_w___c_o_u_n_t │ │ │ │ │ +TDS_INT8 row_count │ │ │ │ │ +row count to return │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:421 │ │ │ │ │ +___h_s_t_m_t_:_:_p_a_r_a_m___n_u_m │ │ │ │ │ +int param_num │ │ │ │ │ +last valid parameter in params, it's a ODBC index (from 1 relative to │ │ │ │ │ +descriptor) │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:411 │ │ │ │ │ +___h_s_t_m_t_:_:_q_u_e_r_y │ │ │ │ │ +DSTR query │ │ │ │ │ +query to execute │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:387 │ │ │ │ │ +___h_s_t_m_t_:_:_n_e_e_d___r_e_p_r_e_p_a_r_e │ │ │ │ │ +unsigned need_reprepare │ │ │ │ │ +Prepared statement needs to be prepared again. │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:404 │ │ │ │ │ +___h_s_t_m_t_:_:_n_e_x_t │ │ │ │ │ +struct _hstmt * next │ │ │ │ │ +next in list │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:392 │ │ │ │ │ +___h_s_t_m_t_:_:_t_d_s │ │ │ │ │ +TDSSOCKET * tds │ │ │ │ │ +socket (only if active) │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:389 │ │ │ │ │ +___h_s_t_m_t_:_:_p_r_e_v │ │ │ │ │ +struct _hstmt * prev │ │ │ │ │ +previous in list │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:394 │ │ │ │ │ +___h_s_t_m_t_:_:_p_a_r_a_m_s │ │ │ │ │ +TDSPARAMINFO * params │ │ │ │ │ +parameters saved │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:409 │ │ │ │ │ +_T_D_S___F_U_N_C_S │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:441 │ │ │ │ │ +_T_D_S___P_A_R_S_E_D___P_A_R_A_M │ │ │ │ │ +DDeeffiinniittiioonn odbc.h:532 │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L │ │ │ │ │ +this structure is not directed connected to a TDS protocol but keeps any DATE/ │ │ │ │ │ +TIME information. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:146 │ │ │ │ │ +_t_d_s___l_o_g_i_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n___f_u_n_c_s │ │ │ │ │ +DDeeffiinniittiioonn tds.h:643 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n │ │ │ │ │ +Metadata about columns in regular and compute rows. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ +_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ +Hold information for any results. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r │ │ │ │ │ +Holds informations about a cursor. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ +Holds information for a dynamic (also called prepared) query. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ +_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +_t_d_s___b_c_p_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ +_t_d_s___d_s_t_r │ │ │ │ │ +Structure to hold a string. │ │ │ │ │ +DDeeffiinniittiioonn string.h:36 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00416_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/md4.h Source File │ │ │ │ +FreeTDS API: include/freetds/alloca.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,71 +70,47 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
md4.h
│ │ │ │ +
alloca.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1#ifndef MD4_H
│ │ │ │ -
2#define MD4_H
│ │ │ │ -
3
│ │ │ │ -
4#ifndef HAVE_NETTLE
│ │ │ │ -
5
│ │ │ │ -
6#include <freetds/pushvis.h>
│ │ │ │ -
7
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
9{
│ │ │ │ -
10 uint32_t buf[4];
│ │ │ │ -
11 uint64_t bytes;
│ │ │ │ -
12 uint32_t in[16];
│ │ │ │ -
13};
│ │ │ │ -
│ │ │ │ -
14
│ │ │ │ -
15void MD4Init(struct MD4Context *context);
│ │ │ │ -
16void MD4Update(struct MD4Context *context, const uint8_t *buf, size_t len);
│ │ │ │ -
17void MD4Final(struct MD4Context *context, uint8_t *digest);
│ │ │ │ -
18
│ │ │ │ -
19typedef struct MD4Context MD4_CTX;
│ │ │ │ -
20
│ │ │ │ -
21#include <freetds/popvis.h>
│ │ │ │ -
22
│ │ │ │ -
23#else
│ │ │ │ -
24
│ │ │ │ -
25#include <nettle/md4.h>
│ │ │ │ -
26
│ │ │ │ -
27typedef struct md4_ctx MD4_CTX;
│ │ │ │ -
28
│ │ │ │ -
29static inline void MD4Init(MD4_CTX *ctx)
│ │ │ │ -
30{
│ │ │ │ -
31 nettle_md4_init(ctx);
│ │ │ │ -
32}
│ │ │ │ -
33
│ │ │ │ -
34static inline void MD4Update(MD4_CTX *ctx, const uint8_t *buf, size_t len)
│ │ │ │ -
35{
│ │ │ │ -
36 nettle_md4_update(ctx, len, buf);
│ │ │ │ -
37}
│ │ │ │ -
38
│ │ │ │ -
39static inline void MD4Final(MD4_CTX *ctx, uint8_t *digest)
│ │ │ │ -
40{
│ │ │ │ -
41 nettle_md4_digest(ctx, 16, digest);
│ │ │ │ -
42}
│ │ │ │ -
43
│ │ │ │ -
44
│ │ │ │ -
45#endif
│ │ │ │ -
46
│ │ │ │ -
47#endif /* !MD4_H */
│ │ │ │ -
Definition md4.h:9
│ │ │ │ +
1/* Cfr https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Particular-Functions.html */
│ │ │ │ +
2#ifdef STDC_HEADERS
│ │ │ │ +
3# include <stdlib.h>
│ │ │ │ +
4# include <stddef.h>
│ │ │ │ +
5#else
│ │ │ │ +
6# ifdef HAVE_STDLIB_H
│ │ │ │ +
7# include <stdlib.h>
│ │ │ │ +
8# endif
│ │ │ │ +
9#endif
│ │ │ │ +
10#ifdef HAVE_ALLOCA_H
│ │ │ │ +
11# include <alloca.h>
│ │ │ │ +
12#elif !defined alloca
│ │ │ │ +
13# ifdef __GNUC__
│ │ │ │ +
14# define alloca __builtin_alloca
│ │ │ │ +
15# elif defined _AIX
│ │ │ │ +
16# define alloca __alloca
│ │ │ │ +
17# elif defined _MSC_VER
│ │ │ │ +
18# include <malloc.h>
│ │ │ │ +
19# define alloca _alloca
│ │ │ │ +
20# elif !defined HAVE_ALLOCA
│ │ │ │ +
21# ifdef __cplusplus
│ │ │ │ +
22extern "C"
│ │ │ │ +
23# endif
│ │ │ │ +
24void *alloca (size_t);
│ │ │ │ +
25# endif
│ │ │ │ +
26#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,59 +1,36 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -md4.h │ │ │ │ │ -1#ifndef MD4_H │ │ │ │ │ -2#define MD4_H │ │ │ │ │ -3 │ │ │ │ │ -4#ifndef HAVE_NETTLE │ │ │ │ │ -5 │ │ │ │ │ -6#include │ │ │ │ │ -7 │ │ │ │ │ -_8struct _M_D_4_C_o_n_t_e_x_t │ │ │ │ │ -9{ │ │ │ │ │ -10 uint32_t buf[4]; │ │ │ │ │ -11 uint64_t bytes; │ │ │ │ │ -12 uint32_t in[16]; │ │ │ │ │ -13}; │ │ │ │ │ -14 │ │ │ │ │ -15void MD4Init(struct _M_D_4_C_o_n_t_e_x_t *context); │ │ │ │ │ -16void MD4Update(struct _M_D_4_C_o_n_t_e_x_t *context, const uint8_t *buf, size_t len); │ │ │ │ │ -17void MD4Final(struct _M_D_4_C_o_n_t_e_x_t *context, uint8_t *digest); │ │ │ │ │ -18 │ │ │ │ │ -19typedef struct _M_D_4_C_o_n_t_e_x_t _M_D_4___C_T_X; │ │ │ │ │ -20 │ │ │ │ │ -21#include │ │ │ │ │ -22 │ │ │ │ │ -23#else │ │ │ │ │ -24 │ │ │ │ │ -25#include │ │ │ │ │ -26 │ │ │ │ │ -27typedef struct md4_ctx _M_D_4___C_T_X; │ │ │ │ │ -28 │ │ │ │ │ -29static inline void MD4Init(_M_D_4___C_T_X *ctx) │ │ │ │ │ -30{ │ │ │ │ │ -31 nettle_md4_init(ctx); │ │ │ │ │ -32} │ │ │ │ │ -33 │ │ │ │ │ -34static inline void MD4Update(_M_D_4___C_T_X *ctx, const uint8_t *buf, size_t len) │ │ │ │ │ -35{ │ │ │ │ │ -36 nettle_md4_update(ctx, len, buf); │ │ │ │ │ -37} │ │ │ │ │ -38 │ │ │ │ │ -39static inline void MD4Final(_M_D_4___C_T_X *ctx, uint8_t *digest) │ │ │ │ │ -40{ │ │ │ │ │ -41 nettle_md4_digest(ctx, 16, digest); │ │ │ │ │ -42} │ │ │ │ │ -43 │ │ │ │ │ -44 │ │ │ │ │ -45#endif │ │ │ │ │ -46 │ │ │ │ │ -47#endif /* !MD4_H */ │ │ │ │ │ -_M_D_4_C_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn md4.h:9 │ │ │ │ │ +alloca.h │ │ │ │ │ +1/* Cfr https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf- │ │ │ │ │ +2.69/html_node/Particular-Functions.html */ │ │ │ │ │ +2#ifdef STDC_HEADERS │ │ │ │ │ +3# include │ │ │ │ │ +4# include │ │ │ │ │ +5#else │ │ │ │ │ +6# ifdef HAVE_STDLIB_H │ │ │ │ │ +7# include │ │ │ │ │ +8# endif │ │ │ │ │ +9#endif │ │ │ │ │ +10#ifdef HAVE_ALLOCA_H │ │ │ │ │ +11# include │ │ │ │ │ +12#elif !defined alloca │ │ │ │ │ +13# ifdef __GNUC__ │ │ │ │ │ +14# define alloca __builtin_alloca │ │ │ │ │ +15# elif defined _AIX │ │ │ │ │ +16# define alloca __alloca │ │ │ │ │ +17# elif defined _MSC_VER │ │ │ │ │ +18# include │ │ │ │ │ +19# define alloca _alloca │ │ │ │ │ +20# elif !defined HAVE_ALLOCA │ │ │ │ │ +21# ifdef __cplusplus │ │ │ │ │ +22extern "C" │ │ │ │ │ +23# endif │ │ │ │ │ +24void *alloca (size_t); │ │ │ │ │ +25# endif │ │ │ │ │ +26#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00419_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/hmac_md5.h Source File │ │ │ │ +FreeTDS API: include/freetds/version.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,23 +70,23 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
hmac_md5.h
│ │ │ │ +
version.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2008 Frediano Ziglio
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,24 +96,27 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _hmac_md5_h_
│ │ │ │ -
21#define _hmac_md5_h_
│ │ │ │ +
20#ifndef _tdsversion_h_
│ │ │ │ +
21#define _tdsversion_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/pushvis.h>
│ │ │ │ -
24void hmac_md5(const unsigned char key[16],
│ │ │ │ -
25 const unsigned char* data, size_t data_len,
│ │ │ │ -
26 unsigned char* digest);
│ │ │ │ -
27#include <freetds/popvis.h>
│ │ │ │ -
28
│ │ │ │ -
29#endif
│ │ │ │ +
23/* $Id: 9640daf619734147e3b5ff6a1dad56ad305ffa51 $ */
│ │ │ │ +
24
│ │ │ │ +
25#define TDS_VERSION_NO "freetds v1.3.17"
│ │ │ │ +
26
│ │ │ │ +
27#define TDS_VERSION_MAJOR 1
│ │ │ │ +
28#define TDS_VERSION_MINOR 3
│ │ │ │ +
29#define TDS_VERSION_SUBVERSION 17
│ │ │ │ +
30#define TDS_VERSION_BUILD_NUMBER 1438
│ │ │ │ +
31
│ │ │ │ +
32#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,17 +1,16 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -hmac_md5.h │ │ │ │ │ +version.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2008 Frediano Ziglio │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -21,19 +20,22 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _hmac_md5_h_ │ │ │ │ │ -21#define _hmac_md5_h_ │ │ │ │ │ +20#ifndef _tdsversion_h_ │ │ │ │ │ +21#define _tdsversion_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24void hmac_md5(const unsigned char key[16], │ │ │ │ │ -25 const unsigned char* data, size_t data_len, │ │ │ │ │ -26 unsigned char* digest); │ │ │ │ │ -27#include │ │ │ │ │ -28 │ │ │ │ │ -29#endif │ │ │ │ │ +23/* $Id: 9640daf619734147e3b5ff6a1dad56ad305ffa51 $ */ │ │ │ │ │ +24 │ │ │ │ │ +25#define TDS_VERSION_NO "freetds v1.3.17" │ │ │ │ │ +26 │ │ │ │ │ +27#define TDS_VERSION_MAJOR 1 │ │ │ │ │ +28#define TDS_VERSION_MINOR 3 │ │ │ │ │ +29#define TDS_VERSION_SUBVERSION 17 │ │ │ │ │ +30#define TDS_VERSION_BUILD_NUMBER 1438 │ │ │ │ │ +31 │ │ │ │ │ +32#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00422_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/string.h Source File │ │ │ │ +FreeTDS API: include/freetds/bytes.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,23 +70,23 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
string.h
│ │ │ │ +
bytes.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 2005-2008 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,108 +96,261 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _tdsstring_h_
│ │ │ │ -
21#define _tdsstring_h_
│ │ │ │ +
20#ifndef _tdsbytes_h_
│ │ │ │ +
21#define _tdsbytes_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/macros.h>
│ │ │ │ -
24
│ │ │ │ -
25#include <freetds/pushvis.h>
│ │ │ │ -
26
│ │ │ │ -
│ │ │ │ -
36typedef struct tds_dstr {
│ │ │ │ -
37 size_t dstr_size;
│ │ │ │ -
38 char dstr_s[1];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
40
│ │ │ │ -
42extern const struct tds_dstr tds_str_empty;
│ │ │ │ +
23/*
│ │ │ │ +
24 * read a word of n bytes aligned, architecture dependent endian
│ │ │ │ +
25 * TDS_GET_An
│ │ │ │ +
26 * read a word of n bytes aligned, little endian
│ │ │ │ +
27 * TDS_GET_AnLE
│ │ │ │ +
28 * read a word of n bytes aligned, big endian
│ │ │ │ +
29 * TDS_GET_AnBE
│ │ │ │ +
30 * read a word of n bytes unaligned, architecture dependent endian
│ │ │ │ +
31 * TDS_GET_UAn
│ │ │ │ +
32 * read a word of n bytes unaligned, little endian
│ │ │ │ +
33 * TDS_GET_UAnLE
│ │ │ │ +
34 * read a word of n bytes unaligned, big endian
│ │ │ │ +
35 * TDS_GET_UAnBE
│ │ │ │ +
36 */
│ │ │ │ +
37
│ │ │ │ +
38/* one byte, easy... */
│ │ │ │ +
39#define TDS_GET_A1LE(ptr) (((uint8_t *)(ptr))[0])
│ │ │ │ +
40#define TDS_GET_A1BE(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ +
41#define TDS_GET_UA1LE(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ +
42#define TDS_GET_UA1BE(ptr) TDS_GET_A1LE(ptr)
│ │ │ │
43
│ │ │ │ -
49#define DSTR_INITIALIZER ((struct tds_dstr*) &tds_str_empty)
│ │ │ │ -
50
│ │ │ │ -
52static inline void
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
54{
│ │ │ │ -
55 *(s) = DSTR_INITIALIZER;
│ │ │ │ -
56}
│ │ │ │ -
│ │ │ │ -
57
│ │ │ │ -
59static inline int
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
61{
│ │ │ │ -
62 return (*s)->dstr_size == 0;
│ │ │ │ -
63}
│ │ │ │ -
│ │ │ │ -
64
│ │ │ │ -
70static inline char *
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
72{
│ │ │ │ -
73 return (*s)->dstr_s;
│ │ │ │ -
74}
│ │ │ │ -
│ │ │ │ -
75
│ │ │ │ -
77static inline const char *
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
79{
│ │ │ │ -
80 return (*s)->dstr_s;
│ │ │ │ -
81}
│ │ │ │ -
│ │ │ │ -
82
│ │ │ │ -
84static inline size_t
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
86{
│ │ │ │ -
87 return (*s)->dstr_size;
│ │ │ │ -
88}
│ │ │ │ -
│ │ │ │ -
89
│ │ │ │ -
│ │ │ │ -
91#define tds_dstr_empty(s) \
│ │ │ │ -
92 tds_dstr_free(s)
│ │ │ │ -
│ │ │ │ -
93
│ │ │ │ -
94void tds_dstr_zero(DSTR * s);
│ │ │ │ -
95void tds_dstr_free(DSTR * s);
│ │ │ │ +
44#define TDS_PUT_A1LE(ptr,val) do { ((uint8_t *)(ptr))[0] = (val); } while(0)
│ │ │ │ +
45#define TDS_PUT_A1BE(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ +
46#define TDS_PUT_UA1LE(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ +
47#define TDS_PUT_UA1BE(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ +
48
│ │ │ │ +
49/* two bytes */
│ │ │ │ +
50#define TDS_GET_UA2LE(ptr) (((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0])
│ │ │ │ +
51#define TDS_GET_UA2BE(ptr) (((uint8_t *)(ptr))[0] * 0x100u + ((uint8_t *)(ptr))[1])
│ │ │ │ +
52#define TDS_GET_A2LE(ptr) TDS_GET_UA2LE(ptr)
│ │ │ │ +
53#define TDS_GET_A2BE(ptr) TDS_GET_UA2BE(ptr)
│ │ │ │ +
54
│ │ │ │ +
55#define TDS_PUT_UA2LE(ptr,val) do {\
│ │ │ │ +
56 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = (uint8_t)(val); } while(0)
│ │ │ │ +
57#define TDS_PUT_UA2BE(ptr,val) do {\
│ │ │ │ +
58 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[1] = (uint8_t)(val); } while(0)
│ │ │ │ +
59#define TDS_PUT_A2LE(ptr,val) TDS_PUT_UA2LE(ptr,val)
│ │ │ │ +
60#define TDS_PUT_A2BE(ptr,val) TDS_PUT_UA2BE(ptr,val)
│ │ │ │ +
61
│ │ │ │ +
62/* four bytes */
│ │ │ │ +
63#define TDS_GET_UA4LE(ptr) \
│ │ │ │ +
64 (((uint8_t *)(ptr))[3] * 0x1000000u + ((uint8_t *)(ptr))[2] * 0x10000u +\
│ │ │ │ +
65 ((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0])
│ │ │ │ +
66#define TDS_GET_UA4BE(ptr) \
│ │ │ │ +
67 (((uint8_t *)(ptr))[0] * 0x1000000u + ((uint8_t *)(ptr))[1] * 0x10000u +\
│ │ │ │ +
68 ((uint8_t *)(ptr))[2] * 0x100u + ((uint8_t *)(ptr))[3])
│ │ │ │ +
69#define TDS_GET_A4LE(ptr) TDS_GET_UA4LE(ptr)
│ │ │ │ +
70#define TDS_GET_A4BE(ptr) TDS_GET_UA4BE(ptr)
│ │ │ │ +
71
│ │ │ │ +
72#define TDS_PUT_UA4LE(ptr,val) do {\
│ │ │ │ +
73 ((uint8_t *)(ptr))[3] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>16);\
│ │ │ │ +
74 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = (uint8_t)(val); } while(0)
│ │ │ │ +
75#define TDS_PUT_UA4BE(ptr,val) do {\
│ │ │ │ +
76 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>16);\
│ │ │ │ +
77 ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[3] = (uint8_t)(val); } while(0)
│ │ │ │ +
78#define TDS_PUT_A4LE(ptr,val) TDS_PUT_UA4LE(ptr,val)
│ │ │ │ +
79#define TDS_PUT_A4BE(ptr,val) TDS_PUT_UA4BE(ptr,val)
│ │ │ │ +
80
│ │ │ │ +
81#if defined(__GNUC__)
│ │ │ │ +
82# define TDS_MAY_ALIAS __attribute__((__may_alias__))
│ │ │ │ +
83#else
│ │ │ │ +
84# define TDS_MAY_ALIAS
│ │ │ │ +
85#endif
│ │ │ │ +
86
│ │ │ │ +
│ │ │ │ +
87typedef union {
│ │ │ │ +
88 uint16_t usi;
│ │ │ │ +
89 uint8_t uc[2];
│ │ │ │ +
90} TDS_MAY_ALIAS TDS_BYTE_CONVERT2;
│ │ │ │ +
│ │ │ │ +
91
│ │ │ │ +
92typedef union {
│ │ │ │ +
93 uint32_t ui;
│ │ │ │ +
94 uint8_t uc[4];
│ │ │ │ +
95} TDS_MAY_ALIAS TDS_BYTE_CONVERT4;
│ │ │ │
96
│ │ │ │ -
97DSTR* tds_dstr_dup(DSTR * s, const DSTR * src) TDS_WUR;
│ │ │ │ -
98DSTR* tds_dstr_copy(DSTR * s, const char *src) TDS_WUR;
│ │ │ │ -
99DSTR* tds_dstr_copyn(DSTR * s, const char *src, size_t length) TDS_WUR;
│ │ │ │ -
100DSTR* tds_dstr_set(DSTR * s, char *src) TDS_WUR;
│ │ │ │ -
101
│ │ │ │ -
102DSTR* tds_dstr_setlen(DSTR *s, size_t length);
│ │ │ │ -
103DSTR* tds_dstr_alloc(DSTR *s, size_t length) TDS_WUR;
│ │ │ │ -
104
│ │ │ │ -
107#include <freetds/popvis.h>
│ │ │ │ -
108
│ │ │ │ -
109#endif /* _tdsstring_h_ */
│ │ │ │ -
DSTR * tds_dstr_setlen(DSTR *s, size_t length)
limit length of string, MUST be <= current length
Definition tdsstring.c:145
│ │ │ │ -
static int tds_dstr_isempty(const DSTR *s)
test if string is empty
Definition string.h:60
│ │ │ │ -
void tds_dstr_zero(DSTR *s)
clear all string filling with zeroes (mainly for security reason)
Definition tdsstring.c:55
│ │ │ │ -
static size_t tds_dstr_len(const DSTR *s)
Returns the length of the string in bytes.
Definition string.h:85
│ │ │ │ -
DSTR * tds_dstr_dup(DSTR *s, const DSTR *src)
Duplicate a string from another dynamic string.
Definition tdsstring.c:134
│ │ │ │ -
#define DSTR_INITIALIZER
Initializer, used to initialize string like in the following example.
Definition string.h:49
│ │ │ │ -
DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length)
Set string to a given buffer of characters.
Definition tdsstring.c:77
│ │ │ │ -
const struct tds_dstr tds_str_empty
Internal representation for an empty string.
Definition tdsstring.c:45
│ │ │ │ -
DSTR * tds_dstr_alloc(DSTR *s, size_t length)
allocate space for length char
Definition tdsstring.c:165
│ │ │ │ -
static void tds_dstr_init(DSTR *s)
init a string with empty
Definition string.h:53
│ │ │ │ -
DSTR * tds_dstr_set(DSTR *s, char *src)
set a string from another buffer.
Definition tdsstring.c:107
│ │ │ │ -
static const char * tds_dstr_cstr(const DSTR *s)
Returns a C version (NUL terminated string) of dstr.
Definition string.h:78
│ │ │ │ -
void tds_dstr_free(DSTR *s)
free string
Definition tdsstring.c:62
│ │ │ │ -
DSTR * tds_dstr_copy(DSTR *s, const char *src)
copy a string from another
Definition tdsstring.c:122
│ │ │ │ -
static char * tds_dstr_buf(DSTR *s)
Returns a buffer to edit the string.
Definition string.h:71
│ │ │ │ -
struct tds_dstr * DSTR
Structure to hold a string.
│ │ │ │ -
Structure to hold a string.
Definition string.h:36
│ │ │ │ +
97/* architecture dependent */
│ │ │ │ +
98/* map to generic macros or redefine for aligned and same endianess */
│ │ │ │ +
99#ifdef WORDS_BIGENDIAN
│ │ │ │ +
100# define TDS_GET_A1(ptr) TDS_GET_A1BE(ptr)
│ │ │ │ +
101# define TDS_GET_UA1(ptr) TDS_GET_UA1BE(ptr)
│ │ │ │ +
102# define TDS_GET_A2(ptr) TDS_GET_A2BE(ptr)
│ │ │ │ +
103# define TDS_GET_UA2(ptr) TDS_GET_UA2BE(ptr)
│ │ │ │ +
104# define TDS_GET_A4(ptr) TDS_GET_A4BE(ptr)
│ │ │ │ +
105# define TDS_GET_UA4(ptr) TDS_GET_UA4BE(ptr)
│ │ │ │ +
106# undef TDS_GET_A2BE
│ │ │ │ +
107# undef TDS_GET_A4BE
│ │ │ │ +
108# define TDS_GET_A2BE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi)
│ │ │ │ +
109# define TDS_GET_A4BE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui)
│ │ │ │ +
110
│ │ │ │ +
111# define TDS_PUT_A1(ptr,val) TDS_PUT_A1BE(ptr,val)
│ │ │ │ +
112# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1BE(ptr,val)
│ │ │ │ +
113# define TDS_PUT_A2(ptr,val) TDS_PUT_A2BE(ptr,val)
│ │ │ │ +
114# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2BE(ptr,val)
│ │ │ │ +
115# define TDS_PUT_A4(ptr,val) TDS_PUT_A4BE(ptr,val)
│ │ │ │ +
116# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4BE(ptr,val)
│ │ │ │ +
117# undef TDS_PUT_A2BE
│ │ │ │ +
118# undef TDS_PUT_A4BE
│ │ │ │ +
119# define TDS_PUT_A2BE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val))
│ │ │ │ +
120# define TDS_PUT_A4BE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val))
│ │ │ │ +
121# define TDS_HOST2LE(val) TDS_BYTE_SWAP16(val)
│ │ │ │ +
122# define TDS_HOST4LE(val) TDS_BYTE_SWAP32(val)
│ │ │ │ +
123# define TDS_HOST2BE(val) (val)
│ │ │ │ +
124# define TDS_HOST4BE(val) (val)
│ │ │ │ +
125#else
│ │ │ │ +
126# define TDS_GET_A1(ptr) TDS_GET_A1LE(ptr)
│ │ │ │ +
127# define TDS_GET_UA1(ptr) TDS_GET_UA1LE(ptr)
│ │ │ │ +
128# define TDS_GET_A2(ptr) TDS_GET_A2LE(ptr)
│ │ │ │ +
129# define TDS_GET_UA2(ptr) TDS_GET_UA2LE(ptr)
│ │ │ │ +
130# define TDS_GET_A4(ptr) TDS_GET_A4LE(ptr)
│ │ │ │ +
131# define TDS_GET_UA4(ptr) TDS_GET_UA4LE(ptr)
│ │ │ │ +
132# undef TDS_GET_A2LE
│ │ │ │ +
133# undef TDS_GET_A4LE
│ │ │ │ +
134# define TDS_GET_A2LE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi)
│ │ │ │ +
135# define TDS_GET_A4LE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui)
│ │ │ │ +
136
│ │ │ │ +
137# define TDS_PUT_A1(ptr,val) TDS_PUT_A1LE(ptr,val)
│ │ │ │ +
138# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1LE(ptr,val)
│ │ │ │ +
139# define TDS_PUT_A2(ptr,val) TDS_PUT_A2LE(ptr,val)
│ │ │ │ +
140# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2LE(ptr,val)
│ │ │ │ +
141# define TDS_PUT_A4(ptr,val) TDS_PUT_A4LE(ptr,val)
│ │ │ │ +
142# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4LE(ptr,val)
│ │ │ │ +
143# undef TDS_PUT_A2LE
│ │ │ │ +
144# undef TDS_PUT_A4LE
│ │ │ │ +
145# define TDS_PUT_A2LE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val))
│ │ │ │ +
146# define TDS_PUT_A4LE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val))
│ │ │ │ +
147# define TDS_HOST2LE(val) (val)
│ │ │ │ +
148# define TDS_HOST4LE(val) (val)
│ │ │ │ +
149# define TDS_HOST2BE(val) TDS_BYTE_SWAP16(val)
│ │ │ │ +
150# define TDS_HOST4BE(val) TDS_BYTE_SWAP32(val)
│ │ │ │ +
151#endif
│ │ │ │ +
152
│ │ │ │ +
153/* these platform support unaligned fetch/store */
│ │ │ │ +
154/* map unaligned macro to aligned ones */
│ │ │ │ +
155#if defined(__i386__) || defined(__amd64__) || defined(__CRIS__) ||\
│ │ │ │ +
156 defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__) ||\
│ │ │ │ +
157 defined(__s390__) || defined(__s390x__) || defined(__m68k__) ||\
│ │ │ │ +
158 (defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_IX86) || defined(_M_X64))) ||\
│ │ │ │ +
159 defined(__ARM_FEATURE_UNALIGNED) ||\
│ │ │ │ +
160 defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) ||\
│ │ │ │ +
161 (defined(_M_ARM) && (_M_ARM >= 7))
│ │ │ │ +
162# ifdef WORDS_BIGENDIAN
│ │ │ │ +
163# undef TDS_GET_UA2BE
│ │ │ │ +
164# undef TDS_GET_UA4BE
│ │ │ │ +
165# define TDS_GET_UA2BE(ptr) TDS_GET_A2BE(ptr)
│ │ │ │ +
166# define TDS_GET_UA4BE(ptr) TDS_GET_A4BE(ptr)
│ │ │ │ +
167
│ │ │ │ +
168# undef TDS_PUT_UA2BE
│ │ │ │ +
169# undef TDS_PUT_UA4BE
│ │ │ │ +
170# define TDS_PUT_UA2BE(ptr,val) TDS_PUT_A2BE(ptr,val)
│ │ │ │ +
171# define TDS_PUT_UA4BE(ptr,val) TDS_PUT_A4BE(ptr,val)
│ │ │ │ +
172# else
│ │ │ │ +
173# undef TDS_GET_UA2LE
│ │ │ │ +
174# undef TDS_GET_UA4LE
│ │ │ │ +
175# define TDS_GET_UA2LE(ptr) TDS_GET_A2LE(ptr)
│ │ │ │ +
176# define TDS_GET_UA4LE(ptr) TDS_GET_A4LE(ptr)
│ │ │ │ +
177
│ │ │ │ +
178# undef TDS_PUT_UA2LE
│ │ │ │ +
179# undef TDS_PUT_UA4LE
│ │ │ │ +
180# define TDS_PUT_UA2LE(ptr,val) TDS_PUT_A2LE(ptr,val)
│ │ │ │ +
181# define TDS_PUT_UA4LE(ptr,val) TDS_PUT_A4LE(ptr,val)
│ │ │ │ +
182# endif
│ │ │ │ +
183#endif
│ │ │ │ +
184
│ │ │ │ +
185#undef TDS_BSWAP16
│ │ │ │ +
186#undef TDS_BSWAP32
│ │ │ │ +
187/* __builtin_bswap16 was introduced in GCC 4.8 */
│ │ │ │ +
188#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) && defined(__OPTIMIZE__)
│ │ │ │ +
189# define TDS_BSWAP16(val) __builtin_bswap16(val)
│ │ │ │ +
190# define TDS_BSWAP32(val) __builtin_bswap32(val)
│ │ │ │ +
191/* __builtin_bswap32 was introduced in GCC 4.3 */
│ │ │ │ +
192#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) && defined(__OPTIMIZE__)
│ │ │ │ +
193# define TDS_BSWAP32(val) __builtin_bswap32(val)
│ │ │ │ +
194#elif defined(_MSC_VER)
│ │ │ │ +
195# define TDS_BSWAP16(val) _byteswap_ushort(val)
│ │ │ │ +
196# define TDS_BSWAP32(val) _byteswap_ulong(val)
│ │ │ │ +
197#endif
│ │ │ │ +
198
│ │ │ │ +
199#if defined(TDS_BSWAP16) && !defined(WORDS_BIGENDIAN)
│ │ │ │ +
200# undef TDS_GET_UA2BE
│ │ │ │ +
201# define TDS_GET_UA2BE(ptr) TDS_BSWAP16(TDS_GET_UA2LE(ptr))
│ │ │ │ +
202
│ │ │ │ +
203# undef TDS_PUT_UA2BE
│ │ │ │ +
204# define TDS_PUT_UA2BE(ptr,val) do {\
│ │ │ │ +
205 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0)
│ │ │ │ +
206#elif defined(TDS_BSWAP16) && defined(WORDS_BIGENDIAN)
│ │ │ │ +
207# undef TDS_GET_UA2LE
│ │ │ │ +
208# define TDS_GET_UA2LE(ptr) TDS_BSWAP16(TDS_GET_UA2BE(ptr))
│ │ │ │ +
209
│ │ │ │ +
210# undef TDS_PUT_UA2LE
│ │ │ │ +
211# define TDS_PUT_UA2LE(ptr,val) do {\
│ │ │ │ +
212 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2BE(ptr,_tds_si); } while(0)
│ │ │ │ +
213#endif
│ │ │ │ +
214
│ │ │ │ +
215#if defined(TDS_BSWAP32) && !defined(WORDS_BIGENDIAN)
│ │ │ │ +
216# undef TDS_GET_UA4BE
│ │ │ │ +
217# define TDS_GET_UA4BE(ptr) TDS_BSWAP32(TDS_GET_UA4LE(ptr))
│ │ │ │ +
218
│ │ │ │ +
219# undef TDS_PUT_UA4BE
│ │ │ │ +
220# define TDS_PUT_UA4BE(ptr,val) do {\
│ │ │ │ +
221 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0)
│ │ │ │ +
222#elif defined(TDS_BSWAP32) && defined(WORDS_BIGENDIAN)
│ │ │ │ +
223# undef TDS_GET_UA4LE
│ │ │ │ +
224# define TDS_GET_UA4LE(ptr) TDS_BSWAP32(TDS_GET_UA4BE(ptr))
│ │ │ │ +
225
│ │ │ │ +
226# undef TDS_PUT_UA4LE
│ │ │ │ +
227# define TDS_PUT_UA4LE(ptr,val) do {\
│ │ │ │ +
228 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4BE(ptr,_tds_i); } while(0)
│ │ │ │ +
229#endif
│ │ │ │ +
230
│ │ │ │ +
231#if defined(__GNUC__) && defined(__powerpc__) && defined(WORDS_BIGENDIAN)
│ │ │ │ +
232# undef TDS_GET_UA2LE
│ │ │ │ +
233# undef TDS_GET_UA4LE
│ │ │ │ +
234static inline uint16_t
│ │ │ │ +
235TDS_GET_UA2LE(void *ptr)
│ │ │ │ +
236{
│ │ │ │ +
237 unsigned long res;
│ │ │ │ +
238 __asm__ ("lhbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint16_t *)ptr));
│ │ │ │ +
239 return (uint16_t) res;
│ │ │ │ +
240}
│ │ │ │ +
241static inline uint32_t
│ │ │ │ +
242TDS_GET_UA4LE(void *ptr)
│ │ │ │ +
243{
│ │ │ │ +
244 unsigned long res;
│ │ │ │ +
245 __asm__ ("lwbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint32_t *)ptr));
│ │ │ │ +
246 return (uint32_t) res;
│ │ │ │ +
247}
│ │ │ │ +
248
│ │ │ │ +
249# undef TDS_PUT_UA2LE
│ │ │ │ +
250# undef TDS_PUT_UA4LE
│ │ │ │ +
251static inline void
│ │ │ │ +
252TDS_PUT_UA2LE(void *ptr, unsigned data)
│ │ │ │ +
253{
│ │ │ │ +
254 __asm__ ("sthbrx %1,0,%2\n" : "=m" (*(uint16_t *)ptr) : "r" (data), "r" (ptr));
│ │ │ │ +
255}
│ │ │ │ +
256static inline void
│ │ │ │ +
257TDS_PUT_UA4LE(void *ptr, unsigned data)
│ │ │ │ +
258{
│ │ │ │ +
259 __asm__ ("stwbrx %1,0,%2\n" : "=m" (*(uint32_t *)ptr) : "r" (data), "r" (ptr));
│ │ │ │ +
260}
│ │ │ │ +
261#endif
│ │ │ │ +
262
│ │ │ │ +
263#endif
│ │ │ │ +
Definition bytes.h:87
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,17 +1,16 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -string.h │ │ │ │ │ +bytes.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 2005-2008 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -21,138 +20,271 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _tdsstring_h_ │ │ │ │ │ -21#define _tdsstring_h_ │ │ │ │ │ +20#ifndef _tdsbytes_h_ │ │ │ │ │ +21#define _tdsbytes_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#include │ │ │ │ │ -26 │ │ │ │ │ -_3_6typedef struct _t_d_s___d_s_t_r { │ │ │ │ │ -37 size_t dstr_size; │ │ │ │ │ -38 char dstr_s[1]; │ │ │ │ │ -_3_9} *_D_S_T_R; │ │ │ │ │ -40 │ │ │ │ │ -42extern const struct _t_d_s___d_s_t_r _t_d_s___s_t_r___e_m_p_t_y; │ │ │ │ │ +23/* │ │ │ │ │ +24 * read a word of n bytes aligned, architecture dependent endian │ │ │ │ │ +25 * TDS_GET_An │ │ │ │ │ +26 * read a word of n bytes aligned, little endian │ │ │ │ │ +27 * TDS_GET_AnLE │ │ │ │ │ +28 * read a word of n bytes aligned, big endian │ │ │ │ │ +29 * TDS_GET_AnBE │ │ │ │ │ +30 * read a word of n bytes unaligned, architecture dependent endian │ │ │ │ │ +31 * TDS_GET_UAn │ │ │ │ │ +32 * read a word of n bytes unaligned, little endian │ │ │ │ │ +33 * TDS_GET_UAnLE │ │ │ │ │ +34 * read a word of n bytes unaligned, big endian │ │ │ │ │ +35 * TDS_GET_UAnBE │ │ │ │ │ +36 */ │ │ │ │ │ +37 │ │ │ │ │ +38/* one byte, easy... */ │ │ │ │ │ +39#define TDS_GET_A1LE(ptr) (((uint8_t *)(ptr))[0]) │ │ │ │ │ +40#define TDS_GET_A1BE(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ +41#define TDS_GET_UA1LE(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ +42#define TDS_GET_UA1BE(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ 43 │ │ │ │ │ -_4_9#define DSTR_INITIALIZER ((struct tds_dstr*) &tds_str_empty) │ │ │ │ │ -50 │ │ │ │ │ -52static inline void │ │ │ │ │ -_5_3_t_d_s___d_s_t_r___i_n_i_t(_D_S_T_R * s) │ │ │ │ │ -54{ │ │ │ │ │ -55 *(s) = _D_S_T_R___I_N_I_T_I_A_L_I_Z_E_R; │ │ │ │ │ -56} │ │ │ │ │ -57 │ │ │ │ │ -59static inline int │ │ │ │ │ -_6_0_t_d_s___d_s_t_r___i_s_e_m_p_t_y(const _D_S_T_R * s) │ │ │ │ │ -61{ │ │ │ │ │ -62 return (*s)->dstr_size == 0; │ │ │ │ │ -63} │ │ │ │ │ -64 │ │ │ │ │ -70static inline char * │ │ │ │ │ -_7_1_t_d_s___d_s_t_r___b_u_f(_D_S_T_R * s) │ │ │ │ │ -72{ │ │ │ │ │ -73 return (*s)->dstr_s; │ │ │ │ │ -74} │ │ │ │ │ -75 │ │ │ │ │ -77static inline const char * │ │ │ │ │ -_7_8_t_d_s___d_s_t_r___c_s_t_r(const _D_S_T_R * s) │ │ │ │ │ -79{ │ │ │ │ │ -80 return (*s)->dstr_s; │ │ │ │ │ -81} │ │ │ │ │ -82 │ │ │ │ │ -84static inline size_t │ │ │ │ │ -_8_5_t_d_s___d_s_t_r___l_e_n(const _D_S_T_R * s) │ │ │ │ │ -86{ │ │ │ │ │ -87 return (*s)->dstr_size; │ │ │ │ │ -88} │ │ │ │ │ -89 │ │ │ │ │ -_9_1#define tds_dstr_empty(s) \ │ │ │ │ │ -92 tds_dstr_free(s) │ │ │ │ │ -93 │ │ │ │ │ -94void _t_d_s___d_s_t_r___z_e_r_o(_D_S_T_R * s); │ │ │ │ │ -95void _t_d_s___d_s_t_r___f_r_e_e(_D_S_T_R * s); │ │ │ │ │ +44#define TDS_PUT_A1LE(ptr,val) do { ((uint8_t *)(ptr))[0] = (val); } while(0) │ │ │ │ │ +45#define TDS_PUT_A1BE(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ +46#define TDS_PUT_UA1LE(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ +47#define TDS_PUT_UA1BE(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ +48 │ │ │ │ │ +49/* two bytes */ │ │ │ │ │ +50#define TDS_GET_UA2LE(ptr) (((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *) │ │ │ │ │ +(ptr))[0]) │ │ │ │ │ +51#define TDS_GET_UA2BE(ptr) (((uint8_t *)(ptr))[0] * 0x100u + ((uint8_t *) │ │ │ │ │ +(ptr))[1]) │ │ │ │ │ +52#define TDS_GET_A2LE(ptr) TDS_GET_UA2LE(ptr) │ │ │ │ │ +53#define TDS_GET_A2BE(ptr) TDS_GET_UA2BE(ptr) │ │ │ │ │ +54 │ │ │ │ │ +55#define TDS_PUT_UA2LE(ptr,val) do {\ │ │ │ │ │ +56 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = │ │ │ │ │ +(uint8_t)(val); } while(0) │ │ │ │ │ +57#define TDS_PUT_UA2BE(ptr,val) do {\ │ │ │ │ │ +58 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[1] = │ │ │ │ │ +(uint8_t)(val); } while(0) │ │ │ │ │ +59#define TDS_PUT_A2LE(ptr,val) TDS_PUT_UA2LE(ptr,val) │ │ │ │ │ +60#define TDS_PUT_A2BE(ptr,val) TDS_PUT_UA2BE(ptr,val) │ │ │ │ │ +61 │ │ │ │ │ +62/* four bytes */ │ │ │ │ │ +63#define TDS_GET_UA4LE(ptr) \ │ │ │ │ │ +64 (((uint8_t *)(ptr))[3] * 0x1000000u + ((uint8_t *)(ptr))[2] * 0x10000u +\ │ │ │ │ │ +65 ((uint8_t *)(ptr))[1] * 0x100u + ((uint8_t *)(ptr))[0]) │ │ │ │ │ +66#define TDS_GET_UA4BE(ptr) \ │ │ │ │ │ +67 (((uint8_t *)(ptr))[0] * 0x1000000u + ((uint8_t *)(ptr))[1] * 0x10000u +\ │ │ │ │ │ +68 ((uint8_t *)(ptr))[2] * 0x100u + ((uint8_t *)(ptr))[3]) │ │ │ │ │ +69#define TDS_GET_A4LE(ptr) TDS_GET_UA4LE(ptr) │ │ │ │ │ +70#define TDS_GET_A4BE(ptr) TDS_GET_UA4BE(ptr) │ │ │ │ │ +71 │ │ │ │ │ +72#define TDS_PUT_UA4LE(ptr,val) do {\ │ │ │ │ │ +73 ((uint8_t *)(ptr))[3] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[2] = │ │ │ │ │ +(uint8_t)((val)>>16);\ │ │ │ │ │ +74 ((uint8_t *)(ptr))[1] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[0] = │ │ │ │ │ +(uint8_t)(val); } while(0) │ │ │ │ │ +75#define TDS_PUT_UA4BE(ptr,val) do {\ │ │ │ │ │ +76 ((uint8_t *)(ptr))[0] = (uint8_t)((val)>>24); ((uint8_t *)(ptr))[1] = │ │ │ │ │ +(uint8_t)((val)>>16);\ │ │ │ │ │ +77 ((uint8_t *)(ptr))[2] = (uint8_t)((val)>>8); ((uint8_t *)(ptr))[3] = │ │ │ │ │ +(uint8_t)(val); } while(0) │ │ │ │ │ +78#define TDS_PUT_A4LE(ptr,val) TDS_PUT_UA4LE(ptr,val) │ │ │ │ │ +79#define TDS_PUT_A4BE(ptr,val) TDS_PUT_UA4BE(ptr,val) │ │ │ │ │ +80 │ │ │ │ │ +81#if defined(__GNUC__) │ │ │ │ │ +82# define TDS_MAY_ALIAS __attribute__((__may_alias__)) │ │ │ │ │ +83#else │ │ │ │ │ +84# define TDS_MAY_ALIAS │ │ │ │ │ +85#endif │ │ │ │ │ +86 │ │ │ │ │ +_8_7typedef union { │ │ │ │ │ +88 uint16_t usi; │ │ │ │ │ +89 uint8_t uc[2]; │ │ │ │ │ +90} _T_D_S___M_A_Y___A_L_I_A_S TDS_BYTE_CONVERT2; │ │ │ │ │ +91 │ │ │ │ │ +92typedef union { │ │ │ │ │ +93 uint32_t ui; │ │ │ │ │ +94 uint8_t uc[4]; │ │ │ │ │ +95} _T_D_S___M_A_Y___A_L_I_A_S TDS_BYTE_CONVERT4; │ │ │ │ │ 96 │ │ │ │ │ -97_D_S_T_R* _t_d_s___d_s_t_r___d_u_p(_D_S_T_R * s, const _D_S_T_R * src) TDS_WUR; │ │ │ │ │ -98_D_S_T_R* _t_d_s___d_s_t_r___c_o_p_y(_D_S_T_R * s, const char *src) TDS_WUR; │ │ │ │ │ -99_D_S_T_R* _t_d_s___d_s_t_r___c_o_p_y_n(_D_S_T_R * s, const char *src, size_t length) TDS_WUR; │ │ │ │ │ -100_D_S_T_R* _t_d_s___d_s_t_r___s_e_t(_D_S_T_R * s, char *src) TDS_WUR; │ │ │ │ │ -101 │ │ │ │ │ -102_D_S_T_R* _t_d_s___d_s_t_r___s_e_t_l_e_n(_D_S_T_R *s, size_t length); │ │ │ │ │ -103_D_S_T_R* _t_d_s___d_s_t_r___a_l_l_o_c(_D_S_T_R *s, size_t length) TDS_WUR; │ │ │ │ │ -104 │ │ │ │ │ -107#include │ │ │ │ │ -108 │ │ │ │ │ -109#endif /* _tdsstring_h_ */ │ │ │ │ │ -_t_d_s___d_s_t_r___s_e_t_l_e_n │ │ │ │ │ -DSTR * tds_dstr_setlen(DSTR *s, size_t length) │ │ │ │ │ -limit length of string, MUST be <= current length │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:145 │ │ │ │ │ -_t_d_s___d_s_t_r___i_s_e_m_p_t_y │ │ │ │ │ -static int tds_dstr_isempty(const DSTR *s) │ │ │ │ │ -test if string is empty │ │ │ │ │ -DDeeffiinniittiioonn string.h:60 │ │ │ │ │ -_t_d_s___d_s_t_r___z_e_r_o │ │ │ │ │ -void tds_dstr_zero(DSTR *s) │ │ │ │ │ -clear all string filling with zeroes (mainly for security reason) │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:55 │ │ │ │ │ -_t_d_s___d_s_t_r___l_e_n │ │ │ │ │ -static size_t tds_dstr_len(const DSTR *s) │ │ │ │ │ -Returns the length of the string in bytes. │ │ │ │ │ -DDeeffiinniittiioonn string.h:85 │ │ │ │ │ -_t_d_s___d_s_t_r___d_u_p │ │ │ │ │ -DSTR * tds_dstr_dup(DSTR *s, const DSTR *src) │ │ │ │ │ -Duplicate a string from another dynamic string. │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:134 │ │ │ │ │ -_D_S_T_R___I_N_I_T_I_A_L_I_Z_E_R │ │ │ │ │ -#define DSTR_INITIALIZER │ │ │ │ │ -Initializer, used to initialize string like in the following example. │ │ │ │ │ -DDeeffiinniittiioonn string.h:49 │ │ │ │ │ -_t_d_s___d_s_t_r___c_o_p_y_n │ │ │ │ │ -DSTR * tds_dstr_copyn(DSTR *s, const char *src, size_t length) │ │ │ │ │ -Set string to a given buffer of characters. │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:77 │ │ │ │ │ -_t_d_s___s_t_r___e_m_p_t_y │ │ │ │ │ -const struct tds_dstr tds_str_empty │ │ │ │ │ -Internal representation for an empty string. │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:45 │ │ │ │ │ -_t_d_s___d_s_t_r___a_l_l_o_c │ │ │ │ │ -DSTR * tds_dstr_alloc(DSTR *s, size_t length) │ │ │ │ │ -allocate space for length char │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:165 │ │ │ │ │ -_t_d_s___d_s_t_r___i_n_i_t │ │ │ │ │ -static void tds_dstr_init(DSTR *s) │ │ │ │ │ -init a string with empty │ │ │ │ │ -DDeeffiinniittiioonn string.h:53 │ │ │ │ │ -_t_d_s___d_s_t_r___s_e_t │ │ │ │ │ -DSTR * tds_dstr_set(DSTR *s, char *src) │ │ │ │ │ -set a string from another buffer. │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:107 │ │ │ │ │ -_t_d_s___d_s_t_r___c_s_t_r │ │ │ │ │ -static const char * tds_dstr_cstr(const DSTR *s) │ │ │ │ │ -Returns a C version (NUL terminated string) of dstr. │ │ │ │ │ -DDeeffiinniittiioonn string.h:78 │ │ │ │ │ -_t_d_s___d_s_t_r___f_r_e_e │ │ │ │ │ -void tds_dstr_free(DSTR *s) │ │ │ │ │ -free string │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:62 │ │ │ │ │ -_t_d_s___d_s_t_r___c_o_p_y │ │ │ │ │ -DSTR * tds_dstr_copy(DSTR *s, const char *src) │ │ │ │ │ -copy a string from another │ │ │ │ │ -DDeeffiinniittiioonn tdsstring.c:122 │ │ │ │ │ -_t_d_s___d_s_t_r___b_u_f │ │ │ │ │ -static char * tds_dstr_buf(DSTR *s) │ │ │ │ │ -Returns a buffer to edit the string. │ │ │ │ │ -DDeeffiinniittiioonn string.h:71 │ │ │ │ │ -_D_S_T_R │ │ │ │ │ -struct tds_dstr * DSTR │ │ │ │ │ -Structure to hold a string. │ │ │ │ │ -_t_d_s___d_s_t_r │ │ │ │ │ -Structure to hold a string. │ │ │ │ │ -DDeeffiinniittiioonn string.h:36 │ │ │ │ │ +97/* architecture dependent */ │ │ │ │ │ +98/* map to generic macros or redefine for aligned and same endianess */ │ │ │ │ │ +99#ifdef WORDS_BIGENDIAN │ │ │ │ │ +100# define TDS_GET_A1(ptr) TDS_GET_A1BE(ptr) │ │ │ │ │ +101# define TDS_GET_UA1(ptr) TDS_GET_UA1BE(ptr) │ │ │ │ │ +102# define TDS_GET_A2(ptr) TDS_GET_A2BE(ptr) │ │ │ │ │ +103# define TDS_GET_UA2(ptr) TDS_GET_UA2BE(ptr) │ │ │ │ │ +104# define TDS_GET_A4(ptr) TDS_GET_A4BE(ptr) │ │ │ │ │ +105# define TDS_GET_UA4(ptr) TDS_GET_UA4BE(ptr) │ │ │ │ │ +106# undef TDS_GET_A2BE │ │ │ │ │ +107# undef TDS_GET_A4BE │ │ │ │ │ +108# define TDS_GET_A2BE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi) │ │ │ │ │ +109# define TDS_GET_A4BE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui) │ │ │ │ │ +110 │ │ │ │ │ +111# define TDS_PUT_A1(ptr,val) TDS_PUT_A1BE(ptr,val) │ │ │ │ │ +112# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1BE(ptr,val) │ │ │ │ │ +113# define TDS_PUT_A2(ptr,val) TDS_PUT_A2BE(ptr,val) │ │ │ │ │ +114# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2BE(ptr,val) │ │ │ │ │ +115# define TDS_PUT_A4(ptr,val) TDS_PUT_A4BE(ptr,val) │ │ │ │ │ +116# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4BE(ptr,val) │ │ │ │ │ +117# undef TDS_PUT_A2BE │ │ │ │ │ +118# undef TDS_PUT_A4BE │ │ │ │ │ +119# define TDS_PUT_A2BE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val)) │ │ │ │ │ +120# define TDS_PUT_A4BE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val)) │ │ │ │ │ +121# define TDS_HOST2LE(val) TDS_BYTE_SWAP16(val) │ │ │ │ │ +122# define TDS_HOST4LE(val) TDS_BYTE_SWAP32(val) │ │ │ │ │ +123# define TDS_HOST2BE(val) (val) │ │ │ │ │ +124# define TDS_HOST4BE(val) (val) │ │ │ │ │ +125#else │ │ │ │ │ +126# define TDS_GET_A1(ptr) TDS_GET_A1LE(ptr) │ │ │ │ │ +127# define TDS_GET_UA1(ptr) TDS_GET_UA1LE(ptr) │ │ │ │ │ +128# define TDS_GET_A2(ptr) TDS_GET_A2LE(ptr) │ │ │ │ │ +129# define TDS_GET_UA2(ptr) TDS_GET_UA2LE(ptr) │ │ │ │ │ +130# define TDS_GET_A4(ptr) TDS_GET_A4LE(ptr) │ │ │ │ │ +131# define TDS_GET_UA4(ptr) TDS_GET_UA4LE(ptr) │ │ │ │ │ +132# undef TDS_GET_A2LE │ │ │ │ │ +133# undef TDS_GET_A4LE │ │ │ │ │ +134# define TDS_GET_A2LE(ptr) (((TDS_BYTE_CONVERT2*)(ptr))->usi) │ │ │ │ │ +135# define TDS_GET_A4LE(ptr) (((TDS_BYTE_CONVERT4*)(ptr))->ui) │ │ │ │ │ +136 │ │ │ │ │ +137# define TDS_PUT_A1(ptr,val) TDS_PUT_A1LE(ptr,val) │ │ │ │ │ +138# define TDS_PUT_UA1(ptr,val) TDS_PUT_UA1LE(ptr,val) │ │ │ │ │ +139# define TDS_PUT_A2(ptr,val) TDS_PUT_A2LE(ptr,val) │ │ │ │ │ +140# define TDS_PUT_UA2(ptr,val) TDS_PUT_UA2LE(ptr,val) │ │ │ │ │ +141# define TDS_PUT_A4(ptr,val) TDS_PUT_A4LE(ptr,val) │ │ │ │ │ +142# define TDS_PUT_UA4(ptr,val) TDS_PUT_UA4LE(ptr,val) │ │ │ │ │ +143# undef TDS_PUT_A2LE │ │ │ │ │ +144# undef TDS_PUT_A4LE │ │ │ │ │ +145# define TDS_PUT_A2LE(ptr,val) (((TDS_BYTE_CONVERT2*)(ptr))->usi = (val)) │ │ │ │ │ +146# define TDS_PUT_A4LE(ptr,val) (((TDS_BYTE_CONVERT4*)(ptr))->ui = (val)) │ │ │ │ │ +147# define TDS_HOST2LE(val) (val) │ │ │ │ │ +148# define TDS_HOST4LE(val) (val) │ │ │ │ │ +149# define TDS_HOST2BE(val) TDS_BYTE_SWAP16(val) │ │ │ │ │ +150# define TDS_HOST4BE(val) TDS_BYTE_SWAP32(val) │ │ │ │ │ +151#endif │ │ │ │ │ +152 │ │ │ │ │ +153/* these platform support unaligned fetch/store */ │ │ │ │ │ +154/* map unaligned macro to aligned ones */ │ │ │ │ │ +155#if defined(__i386__) || defined(__amd64__) || defined(__CRIS__) ||\ │ │ │ │ │ +156 defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || │ │ │ │ │ +defined(__ppc64__) ||\ │ │ │ │ │ +157 defined(__s390__) || defined(__s390x__) || defined(__m68k__) ||\ │ │ │ │ │ +158 (defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_IX86) || defined │ │ │ │ │ +(_M_X64))) ||\ │ │ │ │ │ +159 defined(__ARM_FEATURE_UNALIGNED) ||\ │ │ │ │ │ +160 defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_8__) ||\ │ │ │ │ │ +161 (defined(_M_ARM) && (_M_ARM >= 7)) │ │ │ │ │ +162# ifdef WORDS_BIGENDIAN │ │ │ │ │ +163# undef TDS_GET_UA2BE │ │ │ │ │ +164# undef TDS_GET_UA4BE │ │ │ │ │ +165# define TDS_GET_UA2BE(ptr) TDS_GET_A2BE(ptr) │ │ │ │ │ +166# define TDS_GET_UA4BE(ptr) TDS_GET_A4BE(ptr) │ │ │ │ │ +167 │ │ │ │ │ +168# undef TDS_PUT_UA2BE │ │ │ │ │ +169# undef TDS_PUT_UA4BE │ │ │ │ │ +170# define TDS_PUT_UA2BE(ptr,val) TDS_PUT_A2BE(ptr,val) │ │ │ │ │ +171# define TDS_PUT_UA4BE(ptr,val) TDS_PUT_A4BE(ptr,val) │ │ │ │ │ +172# else │ │ │ │ │ +173# undef TDS_GET_UA2LE │ │ │ │ │ +174# undef TDS_GET_UA4LE │ │ │ │ │ +175# define TDS_GET_UA2LE(ptr) TDS_GET_A2LE(ptr) │ │ │ │ │ +176# define TDS_GET_UA4LE(ptr) TDS_GET_A4LE(ptr) │ │ │ │ │ +177 │ │ │ │ │ +178# undef TDS_PUT_UA2LE │ │ │ │ │ +179# undef TDS_PUT_UA4LE │ │ │ │ │ +180# define TDS_PUT_UA2LE(ptr,val) TDS_PUT_A2LE(ptr,val) │ │ │ │ │ +181# define TDS_PUT_UA4LE(ptr,val) TDS_PUT_A4LE(ptr,val) │ │ │ │ │ +182# endif │ │ │ │ │ +183#endif │ │ │ │ │ +184 │ │ │ │ │ +185#undef TDS_BSWAP16 │ │ │ │ │ +186#undef TDS_BSWAP32 │ │ │ │ │ +187/* __builtin_bswap16 was introduced in GCC 4.8 */ │ │ │ │ │ +188#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ │ │ │ │ │ +>= 8)) && defined(__OPTIMIZE__) │ │ │ │ │ +189# define TDS_BSWAP16(val) __builtin_bswap16(val) │ │ │ │ │ +190# define TDS_BSWAP32(val) __builtin_bswap32(val) │ │ │ │ │ +191/* __builtin_bswap32 was introduced in GCC 4.3 */ │ │ │ │ │ +192#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ │ │ │ │ │ +>= 3)) && defined(__OPTIMIZE__) │ │ │ │ │ +193# define TDS_BSWAP32(val) __builtin_bswap32(val) │ │ │ │ │ +194#elif defined(_MSC_VER) │ │ │ │ │ +195# define TDS_BSWAP16(val) _byteswap_ushort(val) │ │ │ │ │ +196# define TDS_BSWAP32(val) _byteswap_ulong(val) │ │ │ │ │ +197#endif │ │ │ │ │ +198 │ │ │ │ │ +199#if defined(TDS_BSWAP16) && !defined(WORDS_BIGENDIAN) │ │ │ │ │ +200# undef TDS_GET_UA2BE │ │ │ │ │ +201# define TDS_GET_UA2BE(ptr) TDS_BSWAP16(TDS_GET_UA2LE(ptr)) │ │ │ │ │ +202 │ │ │ │ │ +203# undef TDS_PUT_UA2BE │ │ │ │ │ +204# define TDS_PUT_UA2BE(ptr,val) do {\ │ │ │ │ │ +205 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2LE(ptr,_tds_si); } while(0) │ │ │ │ │ +206#elif defined(TDS_BSWAP16) && defined(WORDS_BIGENDIAN) │ │ │ │ │ +207# undef TDS_GET_UA2LE │ │ │ │ │ +208# define TDS_GET_UA2LE(ptr) TDS_BSWAP16(TDS_GET_UA2BE(ptr)) │ │ │ │ │ +209 │ │ │ │ │ +210# undef TDS_PUT_UA2LE │ │ │ │ │ +211# define TDS_PUT_UA2LE(ptr,val) do {\ │ │ │ │ │ +212 uint16_t _tds_si = TDS_BSWAP16(val); TDS_PUT_UA2BE(ptr,_tds_si); } while(0) │ │ │ │ │ +213#endif │ │ │ │ │ +214 │ │ │ │ │ +215#if defined(TDS_BSWAP32) && !defined(WORDS_BIGENDIAN) │ │ │ │ │ +216# undef TDS_GET_UA4BE │ │ │ │ │ +217# define TDS_GET_UA4BE(ptr) TDS_BSWAP32(TDS_GET_UA4LE(ptr)) │ │ │ │ │ +218 │ │ │ │ │ +219# undef TDS_PUT_UA4BE │ │ │ │ │ +220# define TDS_PUT_UA4BE(ptr,val) do {\ │ │ │ │ │ +221 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4LE(ptr,_tds_i); } while(0) │ │ │ │ │ +222#elif defined(TDS_BSWAP32) && defined(WORDS_BIGENDIAN) │ │ │ │ │ +223# undef TDS_GET_UA4LE │ │ │ │ │ +224# define TDS_GET_UA4LE(ptr) TDS_BSWAP32(TDS_GET_UA4BE(ptr)) │ │ │ │ │ +225 │ │ │ │ │ +226# undef TDS_PUT_UA4LE │ │ │ │ │ +227# define TDS_PUT_UA4LE(ptr,val) do {\ │ │ │ │ │ +228 uint32_t _tds_i = TDS_BSWAP32(val); TDS_PUT_UA4BE(ptr,_tds_i); } while(0) │ │ │ │ │ +229#endif │ │ │ │ │ +230 │ │ │ │ │ +231#if defined(__GNUC__) && defined(__powerpc__) && defined(WORDS_BIGENDIAN) │ │ │ │ │ +232# undef TDS_GET_UA2LE │ │ │ │ │ +233# undef TDS_GET_UA4LE │ │ │ │ │ +234static inline uint16_t │ │ │ │ │ +235TDS_GET_UA2LE(void *ptr) │ │ │ │ │ +236{ │ │ │ │ │ +237 unsigned long res; │ │ │ │ │ +238 __asm__ ("lhbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint16_t │ │ │ │ │ +*)ptr)); │ │ │ │ │ +239 return (uint16_t) res; │ │ │ │ │ +240} │ │ │ │ │ +241static inline uint32_t │ │ │ │ │ +242TDS_GET_UA4LE(void *ptr) │ │ │ │ │ +243{ │ │ │ │ │ +244 unsigned long res; │ │ │ │ │ +245 __asm__ ("lwbrx %0,0,%1\n" : "=r" (res) : "r" (ptr), "m"(*(uint32_t │ │ │ │ │ +*)ptr)); │ │ │ │ │ +246 return (uint32_t) res; │ │ │ │ │ +247} │ │ │ │ │ +248 │ │ │ │ │ +249# undef TDS_PUT_UA2LE │ │ │ │ │ +250# undef TDS_PUT_UA4LE │ │ │ │ │ +251static inline void │ │ │ │ │ +252TDS_PUT_UA2LE(void *ptr, unsigned data) │ │ │ │ │ +253{ │ │ │ │ │ +254 __asm__ ("sthbrx %1,0,%2\n" : "=m" (*(uint16_t *)ptr) : "r" (data), "r" │ │ │ │ │ +(ptr)); │ │ │ │ │ +255} │ │ │ │ │ +256static inline void │ │ │ │ │ +257TDS_PUT_UA4LE(void *ptr, unsigned data) │ │ │ │ │ +258{ │ │ │ │ │ +259 __asm__ ("stwbrx %1,0,%2\n" : "=m" (*(uint32_t *)ptr) : "r" (data), "r" │ │ │ │ │ +(ptr)); │ │ │ │ │ +260} │ │ │ │ │ +261#endif │ │ │ │ │ +262 │ │ │ │ │ +263#endif │ │ │ │ │ +_T_D_S___M_A_Y___A_L_I_A_S │ │ │ │ │ +DDeeffiinniittiioonn bytes.h:87 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00425_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/dlist.h Source File │ │ │ │ +FreeTDS API: include/freetds/enum_cap.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,72 +70,179 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
dlist.h
│ │ │ │ +
enum_cap.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* Dlist - dynamic list
│ │ │ │ -
2 * Copyright (C) 2016 Frediano Ziglio
│ │ │ │ -
3 *
│ │ │ │ -
4 * This program is free software; you can redistribute it and/or modify
│ │ │ │ -
5 * it under the terms of the GNU General Public License as published by
│ │ │ │ -
6 * the Free Software Foundation; either version 2 of the License, or
│ │ │ │ -
7 * (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This program is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -
12 * GNU General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU General Public License
│ │ │ │ -
15 * along with this program; if not, write to the Free Software
│ │ │ │ -
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
│ │ │ │ -
17 *
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef TDS_DLIST_H
│ │ │ │ -
21#define TDS_DLIST_H
│ │ │ │ -
22
│ │ │ │ -
│ │ │ │ -
23typedef struct dlist_ring {
│ │ │ │ -
24 struct dlist_ring *next;
│ │ │ │ -
25 struct dlist_ring *prev;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
27
│ │ │ │ -
28#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
29void dlist_ring_check(dlist_ring *ring);
│ │ │ │ -
30#endif
│ │ │ │ -
31
│ │ │ │ -
32#define DLIST_FIELDS(name) \
│ │ │ │ -
33 dlist_ring name
│ │ │ │ -
34
│ │ │ │ -
35#define DLIST_FOREACH(prefix, list, p) \
│ │ │ │ -
36 for (p = prefix ## _ ## first(list); p != NULL; p = prefix ## _ ## next(list, p))
│ │ │ │ -
37
│ │ │ │ -
38static inline void dlist_insert_after(dlist_ring *ring_pos, dlist_ring *ring_item)
│ │ │ │ -
39{
│ │ │ │ -
40 assert(!ring_item->next && !ring_item->prev);
│ │ │ │ -
41 ring_pos->next->prev = ring_item;
│ │ │ │ -
42 ring_item->prev = ring_pos;
│ │ │ │ -
43 ring_item->next = ring_pos->next;
│ │ │ │ -
44 ring_pos->next = ring_item;
│ │ │ │ -
45 assert(ring_item->next && ring_item->prev);
│ │ │ │ -
46}
│ │ │ │ -
47
│ │ │ │ -
48#endif /* TDS_DLIST_H */
│ │ │ │ -
Definition dlist.h:23
│ │ │ │ +
1typedef enum tds_request_capability
│ │ │ │ +
2 { TDS_REQ_LANG = 1
│ │ │ │ +
3 , TDS_REQ_RPC = 2
│ │ │ │ +
4 , TDS_REQ_EVT = 3
│ │ │ │ +
5 , TDS_REQ_MSTMT = 4
│ │ │ │ +
6 , TDS_REQ_BCP = 5
│ │ │ │ +
7 , TDS_REQ_CURSOR = 6
│ │ │ │ +
8 , TDS_REQ_DYNF = 7
│ │ │ │ +
9 , TDS_REQ_MSG = 8
│ │ │ │ +
10 , TDS_REQ_PARAM = 9
│ │ │ │ +
11 , TDS_REQ_DATA_INT1 = 10
│ │ │ │ +
12 , TDS_REQ_DATA_INT2 = 11
│ │ │ │ +
13 , TDS_REQ_DATA_INT4 = 12
│ │ │ │ +
14 , TDS_REQ_DATA_BIT = 13
│ │ │ │ +
15 , TDS_REQ_DATA_CHAR = 14
│ │ │ │ +
16 , TDS_REQ_DATA_VCHAR = 15
│ │ │ │ +
17 , TDS_REQ_DATA_BIN = 16
│ │ │ │ +
18 , TDS_REQ_DATA_VBIN = 17
│ │ │ │ +
19 , TDS_REQ_DATA_MNY8 = 18
│ │ │ │ +
20 , TDS_REQ_DATA_MNY4 = 19
│ │ │ │ +
21 , TDS_REQ_DATA_DATE8 = 20
│ │ │ │ +
22 , TDS_REQ_DATA_DATE4 = 21
│ │ │ │ +
23 , TDS_REQ_DATA_FLT4 = 22
│ │ │ │ +
24 , TDS_REQ_DATA_FLT8 = 23
│ │ │ │ +
25 , TDS_REQ_DATA_NUM = 24
│ │ │ │ +
26 , TDS_REQ_DATA_TEXT = 25
│ │ │ │ +
27 , TDS_REQ_DATA_IMAGE = 26
│ │ │ │ +
28 , TDS_REQ_DATA_DEC = 27
│ │ │ │ +
29 , TDS_REQ_DATA_LCHAR = 28
│ │ │ │ +
30 , TDS_REQ_DATA_LBIN = 29
│ │ │ │ +
31 , TDS_REQ_DATA_INTN = 30
│ │ │ │ +
32 , TDS_REQ_DATA_DATETIMEN = 31
│ │ │ │ +
33 , TDS_REQ_DATA_MONEYN = 32
│ │ │ │ +
34 , TDS_REQ_CSR_PREV = 33
│ │ │ │ +
35 , TDS_REQ_CSR_FIRST = 34
│ │ │ │ +
36 , TDS_REQ_CSR_LAST = 35
│ │ │ │ +
37 , TDS_REQ_CSR_ABS = 36
│ │ │ │ +
38 , TDS_REQ_CSR_REL = 37
│ │ │ │ +
39 , TDS_REQ_CSR_MULTI = 38
│ │ │ │ +
40 , TDS_REQ_CON_OOB = 39
│ │ │ │ +
41 , TDS_REQ_CON_INBAND = 40
│ │ │ │ +
42 , TDS_REQ_CON_LOGICAL = 41
│ │ │ │ +
43 , TDS_REQ_PROTO_TEXT = 42
│ │ │ │ +
44 , TDS_REQ_PROTO_BULK = 43
│ │ │ │ +
45 , TDS_REQ_URGEVT = 44
│ │ │ │ +
46 , TDS_REQ_DATA_SENSITIVITY = 45
│ │ │ │ +
47 , TDS_REQ_DATA_BOUNDARY = 46
│ │ │ │ +
48 , TDS_REQ_PROTO_DYNAMIC = 47
│ │ │ │ +
49 , TDS_REQ_PROTO_DYNPROC = 48
│ │ │ │ +
50 , TDS_REQ_DATA_FLTN = 49
│ │ │ │ +
51 , TDS_REQ_DATA_BITN = 50
│ │ │ │ +
52 , TDS_REQ_DATA_INT8 = 51
│ │ │ │ +
53 , TDS_REQ_DATA_VOID = 52
│ │ │ │ +
54 , TDS_REQ_DOL_BULK = 53
│ │ │ │ +
55 , TDS_REQ_OBJECT_JAVA1 = 54
│ │ │ │ +
56 , TDS_REQ_OBJECT_CHAR = 55
│ │ │ │ +
57 , TDS_REQ_OBJECT_BINARY = 57
│ │ │ │ +
58 , TDS_REQ_DATA_COLUMNSTATUS = 58
│ │ │ │ +
59 , TDS_REQ_WIDETABLE = 59
│ │ │ │ +
60 , TDS_REQ_DATA_UINT2 = 61
│ │ │ │ +
61 , TDS_REQ_DATA_UINT4 = 62
│ │ │ │ +
62 , TDS_REQ_DATA_UINT8 = 63
│ │ │ │ +
63 , TDS_REQ_DATA_UINTN = 64
│ │ │ │ +
64 , TDS_REQ_CUR_IMPLICIT = 65
│ │ │ │ +
65 , TDS_REQ_DATA_NLBIN = 66
│ │ │ │ +
66 , TDS_REQ_IMAGE_NCHAR = 67
│ │ │ │ +
67 , TDS_OBS_BLOB_NCHAR_16 = 68 /* obsolete */
│ │ │ │ +
68 , TDS_REQ_BLOB_NCHAR_8 = 69
│ │ │ │ +
69 , TDS_REQ_BLOB_NCHAR_SCSU = 70
│ │ │ │ +
70 , TDS_REQ_DATA_DATE = 71
│ │ │ │ +
71 , TDS_REQ_DATA_TIME = 72
│ │ │ │ +
72 , TDS_REQ_DATA_INTERVAL = 73
│ │ │ │ +
73 , TDS_REQ_CSR_SCROLL = 74
│ │ │ │ +
74 , TDS_REQ_CSR_SENSITIVE = 75
│ │ │ │ +
75 , TDS_REQ_CSR_INSENSITIVE = 76
│ │ │ │ +
76 , TDS_REQ_CSR_SEMISENSITIVE = 77
│ │ │ │ +
77 , TDS_REQ_CSR_KEYSETDRIVEN = 78
│ │ │ │ +
78 , TDS_REQ_SRVPKTSIZE = 79
│ │ │ │ +
79 , TDS_REQ_DATA_UNITEXT = 80
│ │ │ │ +
80 , TDS_REQ_CAP_CLUSTERFAILOVER = 81
│ │ │ │ +
81 , TDS_REQ_DATA_SINT1 = 82
│ │ │ │ +
82 , TDS_REQ_LARGEIDENT = 83
│ │ │ │ +
83 , TDS_REQ_BLOB_NCHAR_16 = 84
│ │ │ │ +
84 , TDS_REQ_DATA_XML = 85
│ │ │ │ +
85 , TDS_REQ_CURINFO3 = 86
│ │ │ │ +
86 , TDS_REQ_DBRPC2 = 87
│ │ │ │ +
87 , TDS_REQ_MIGRATE = 89
│ │ │ │ +
88 , TDS_REQ_DATA_BIGDATETIME = 93
│ │ │ │ +
89 , TDS_REQ_DATA_BIGTIME = 94
│ │ │ │ +
90 , TDS_REQ_CAP_MAX = 94 /* repeats last enum */
│ │ │ │ +
91 } TDS_REQUEST_CAPABILITY;
│ │ │ │ +
92
│ │ │ │ +
93typedef enum tds_response_capability
│ │ │ │ +
94 { TDS_RES_NOMSG = 1
│ │ │ │ +
95 , TDS_RES_NOEED = 2
│ │ │ │ +
96 , TDS_RES_NOPARAM = 3
│ │ │ │ +
97 , TDS_RES_DATA_NOINT1 = 4
│ │ │ │ +
98 , TDS_RES_DATA_NOINT2 = 5
│ │ │ │ +
99 , TDS_RES_DATA_NOINT4 = 6
│ │ │ │ +
100 , TDS_RES_DATA_NOBIT = 7
│ │ │ │ +
101 , TDS_RES_DATA_NOCHAR = 8
│ │ │ │ +
102 , TDS_RES_DATA_NOVCHAR = 9
│ │ │ │ +
103 , TDS_RES_DATA_NOBIN = 10
│ │ │ │ +
104 , TDS_RES_DATA_NOVBIN = 11
│ │ │ │ +
105 , TDS_RES_DATA_NOMNY8 = 12
│ │ │ │ +
106 , TDS_RES_DATA_NOMNY4 = 13
│ │ │ │ +
107 , TDS_RES_DATA_NODATE8 = 14
│ │ │ │ +
108 , TDS_RES_DATA_NODATE4 = 15
│ │ │ │ +
109 , TDS_RES_DATA_NOFLT4 = 16
│ │ │ │ +
110 , TDS_RES_DATA_NOFLT8 = 17
│ │ │ │ +
111 , TDS_RES_DATA_NONUM = 18
│ │ │ │ +
112 , TDS_RES_DATA_NOTEXT = 19
│ │ │ │ +
113 , TDS_RES_DATA_NOIMAGE = 20
│ │ │ │ +
114 , TDS_RES_DATA_NODEC = 21
│ │ │ │ +
115 , TDS_RES_DATA_NOLCHAR = 22
│ │ │ │ +
116 , TDS_RES_DATA_NOLBIN = 23
│ │ │ │ +
117 , TDS_RES_DATA_INTN = 24
│ │ │ │ +
118 , TDS_RES_DATA_NODATETIMEN = 25
│ │ │ │ +
119 , TDS_RES_DATA_NOMONEYN = 26
│ │ │ │ +
120 , TDS_RES_CON_NOOOB = 27
│ │ │ │ +
121 , TDS_RES_CON_NOINBAND = 28
│ │ │ │ +
122 , TDS_RES_PROTO_NOTEXT = 29
│ │ │ │ +
123 , TDS_RES_PROTO_NOBULK = 30
│ │ │ │ +
124 , TDS_RES_DATA_NOSENSITIVITY = 31
│ │ │ │ +
125 , TDS_RES_DATA_NOBOUNDARY = 32
│ │ │ │ +
126 , TDS_RES_NOTDSDEBUG = 33
│ │ │ │ +
127 , TDS_RES_NOSTRIPBLANKS = 34
│ │ │ │ +
128 , TDS_RES_DATA_NOINT8 = 35
│ │ │ │ +
129 , TDS_RES_OBJECT_NOJAVA1 = 36
│ │ │ │ +
130 , TDS_RES_OBJECT_NOCHAR = 37
│ │ │ │ +
131 , TDS_RES_DATA_NOCOLUMNSTATUS = 38
│ │ │ │ +
132 , TDS_RES_OBJECT_NOBINARY = 39
│ │ │ │ +
133 , TDS_RES_DATA_NOUINT2 = 41
│ │ │ │ +
134 , TDS_RES_DATA_NOUINT4 = 42
│ │ │ │ +
135 , TDS_RES_DATA_NOUINT8 = 43
│ │ │ │ +
136 , TDS_RES_DATA_NOUINTN = 44
│ │ │ │ +
137 , TDS_RES_NO_WIDETABLES = 45
│ │ │ │ +
138 , TDS_RES_DATA_NONLBIN = 46
│ │ │ │ +
139 , TDS_RES_IMAGE_NONCHAR = 47
│ │ │ │ +
140 , TDS_RES_BLOB_NONCHAR_16 = 48
│ │ │ │ +
141 , TDS_RES_BLOB_NONCHAR_8 = 49
│ │ │ │ +
142 , TDS_RES_BLOB_NONCHAR_SCSU = 50
│ │ │ │ +
143 , TDS_RES_DATA_NODATE = 51
│ │ │ │ +
144 , TDS_RES_DATA_NOTIME = 52
│ │ │ │ +
145 , TDS_RES_DATA_NOINTERVAL = 53
│ │ │ │ +
146 , TDS_RES_DATA_NOUNITEXT = 54
│ │ │ │ +
147 , TDS_RES_DATA_NOSINT1 = 55
│ │ │ │ +
148 , TDS_RES_NO_LARGEIDENT = 56
│ │ │ │ +
149 , TDS_RES_NO_BLOB_NCHAR_16 = 57
│ │ │ │ +
150 , TDS_RES_NO_SRVPKTSIZE = 58
│ │ │ │ +
151 , TDS_RES_DATA_NOXML = 59
│ │ │ │ +
152 , TDS_RES_NONINT_RETURN_VALUE = 60
│ │ │ │ +
153 , TDS_RES_NOXNLDATA = 61
│ │ │ │ +
154 , TDS_RES_SUPPRESS_FMT = 62
│ │ │ │ +
155 , TDS_RES_SUPPRESS_DONEINPROC = 63
│ │ │ │ +
156 , TDS_RES_FORCE_ROWFMT2 = 64
│ │ │ │ +
157 , TDS_RES_CAP_MAX = 64 /* repeats last enum */
│ │ │ │ +
158 } TDS_RESPONSE_CAPABILITY;
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,62 +1,167 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -dlist.h │ │ │ │ │ -1/* Dlist - dynamic list │ │ │ │ │ -2 * Copyright (C) 2016 Frediano Ziglio │ │ │ │ │ -3 * │ │ │ │ │ -4 * This program is free software; you can redistribute it and/or modify │ │ │ │ │ -5 * it under the terms of the GNU General Public License as published by │ │ │ │ │ -6 * the Free Software Foundation; either version 2 of the License, or │ │ │ │ │ -7 * (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This program is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ -12 * GNU General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU General Public License │ │ │ │ │ -15 * along with this program; if not, write to the Free Software │ │ │ │ │ -16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA │ │ │ │ │ -17 * │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef TDS_DLIST_H │ │ │ │ │ -21#define TDS_DLIST_H │ │ │ │ │ -22 │ │ │ │ │ -_2_3typedef struct _d_l_i_s_t___r_i_n_g { │ │ │ │ │ -24 struct _d_l_i_s_t___r_i_n_g *next; │ │ │ │ │ -25 struct _d_l_i_s_t___r_i_n_g *prev; │ │ │ │ │ -26} _d_l_i_s_t___r_i_n_g; │ │ │ │ │ -27 │ │ │ │ │ -28#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -29void dlist_ring_check(_d_l_i_s_t___r_i_n_g *ring); │ │ │ │ │ -30#endif │ │ │ │ │ -31 │ │ │ │ │ -32#define DLIST_FIELDS(name) \ │ │ │ │ │ -33 dlist_ring name │ │ │ │ │ -34 │ │ │ │ │ -35#define DLIST_FOREACH(prefix, list, p) \ │ │ │ │ │ -36 for (p = prefix ## _ ## first(list); p != NULL; p = prefix ## _ ## next │ │ │ │ │ -(list, p)) │ │ │ │ │ -37 │ │ │ │ │ -38static inline void dlist_insert_after(_d_l_i_s_t___r_i_n_g *ring_pos, _d_l_i_s_t___r_i_n_g │ │ │ │ │ -*ring_item) │ │ │ │ │ -39{ │ │ │ │ │ -40 assert(!ring_item->next && !ring_item->prev); │ │ │ │ │ -41 ring_pos->next->prev = ring_item; │ │ │ │ │ -42 ring_item->prev = ring_pos; │ │ │ │ │ -43 ring_item->next = ring_pos->next; │ │ │ │ │ -44 ring_pos->next = ring_item; │ │ │ │ │ -45 assert(ring_item->next && ring_item->prev); │ │ │ │ │ -46} │ │ │ │ │ -47 │ │ │ │ │ -48#endif /* TDS_DLIST_H */ │ │ │ │ │ -_d_l_i_s_t___r_i_n_g │ │ │ │ │ -DDeeffiinniittiioonn dlist.h:23 │ │ │ │ │ +enum_cap.h │ │ │ │ │ +1typedef enum tds_request_capability │ │ │ │ │ +2 { TDS_REQ_LANG = 1 │ │ │ │ │ +3 , TDS_REQ_RPC = 2 │ │ │ │ │ +4 , TDS_REQ_EVT = 3 │ │ │ │ │ +5 , TDS_REQ_MSTMT = 4 │ │ │ │ │ +6 , TDS_REQ_BCP = 5 │ │ │ │ │ +7 , TDS_REQ_CURSOR = 6 │ │ │ │ │ +8 , TDS_REQ_DYNF = 7 │ │ │ │ │ +9 , TDS_REQ_MSG = 8 │ │ │ │ │ +10 , TDS_REQ_PARAM = 9 │ │ │ │ │ +11 , TDS_REQ_DATA_INT1 = 10 │ │ │ │ │ +12 , TDS_REQ_DATA_INT2 = 11 │ │ │ │ │ +13 , TDS_REQ_DATA_INT4 = 12 │ │ │ │ │ +14 , TDS_REQ_DATA_BIT = 13 │ │ │ │ │ +15 , TDS_REQ_DATA_CHAR = 14 │ │ │ │ │ +16 , TDS_REQ_DATA_VCHAR = 15 │ │ │ │ │ +17 , TDS_REQ_DATA_BIN = 16 │ │ │ │ │ +18 , TDS_REQ_DATA_VBIN = 17 │ │ │ │ │ +19 , TDS_REQ_DATA_MNY8 = 18 │ │ │ │ │ +20 , TDS_REQ_DATA_MNY4 = 19 │ │ │ │ │ +21 , TDS_REQ_DATA_DATE8 = 20 │ │ │ │ │ +22 , TDS_REQ_DATA_DATE4 = 21 │ │ │ │ │ +23 , TDS_REQ_DATA_FLT4 = 22 │ │ │ │ │ +24 , TDS_REQ_DATA_FLT8 = 23 │ │ │ │ │ +25 , TDS_REQ_DATA_NUM = 24 │ │ │ │ │ +26 , TDS_REQ_DATA_TEXT = 25 │ │ │ │ │ +27 , TDS_REQ_DATA_IMAGE = 26 │ │ │ │ │ +28 , TDS_REQ_DATA_DEC = 27 │ │ │ │ │ +29 , TDS_REQ_DATA_LCHAR = 28 │ │ │ │ │ +30 , TDS_REQ_DATA_LBIN = 29 │ │ │ │ │ +31 , TDS_REQ_DATA_INTN = 30 │ │ │ │ │ +32 , TDS_REQ_DATA_DATETIMEN = 31 │ │ │ │ │ +33 , TDS_REQ_DATA_MONEYN = 32 │ │ │ │ │ +34 , TDS_REQ_CSR_PREV = 33 │ │ │ │ │ +35 , TDS_REQ_CSR_FIRST = 34 │ │ │ │ │ +36 , TDS_REQ_CSR_LAST = 35 │ │ │ │ │ +37 , TDS_REQ_CSR_ABS = 36 │ │ │ │ │ +38 , TDS_REQ_CSR_REL = 37 │ │ │ │ │ +39 , TDS_REQ_CSR_MULTI = 38 │ │ │ │ │ +40 , TDS_REQ_CON_OOB = 39 │ │ │ │ │ +41 , TDS_REQ_CON_INBAND = 40 │ │ │ │ │ +42 , TDS_REQ_CON_LOGICAL = 41 │ │ │ │ │ +43 , TDS_REQ_PROTO_TEXT = 42 │ │ │ │ │ +44 , TDS_REQ_PROTO_BULK = 43 │ │ │ │ │ +45 , TDS_REQ_URGEVT = 44 │ │ │ │ │ +46 , TDS_REQ_DATA_SENSITIVITY = 45 │ │ │ │ │ +47 , TDS_REQ_DATA_BOUNDARY = 46 │ │ │ │ │ +48 , TDS_REQ_PROTO_DYNAMIC = 47 │ │ │ │ │ +49 , TDS_REQ_PROTO_DYNPROC = 48 │ │ │ │ │ +50 , TDS_REQ_DATA_FLTN = 49 │ │ │ │ │ +51 , TDS_REQ_DATA_BITN = 50 │ │ │ │ │ +52 , TDS_REQ_DATA_INT8 = 51 │ │ │ │ │ +53 , TDS_REQ_DATA_VOID = 52 │ │ │ │ │ +54 , TDS_REQ_DOL_BULK = 53 │ │ │ │ │ +55 , TDS_REQ_OBJECT_JAVA1 = 54 │ │ │ │ │ +56 , TDS_REQ_OBJECT_CHAR = 55 │ │ │ │ │ +57 , TDS_REQ_OBJECT_BINARY = 57 │ │ │ │ │ +58 , TDS_REQ_DATA_COLUMNSTATUS = 58 │ │ │ │ │ +59 , TDS_REQ_WIDETABLE = 59 │ │ │ │ │ +60 , TDS_REQ_DATA_UINT2 = 61 │ │ │ │ │ +61 , TDS_REQ_DATA_UINT4 = 62 │ │ │ │ │ +62 , TDS_REQ_DATA_UINT8 = 63 │ │ │ │ │ +63 , TDS_REQ_DATA_UINTN = 64 │ │ │ │ │ +64 , TDS_REQ_CUR_IMPLICIT = 65 │ │ │ │ │ +65 , TDS_REQ_DATA_NLBIN = 66 │ │ │ │ │ +66 , TDS_REQ_IMAGE_NCHAR = 67 │ │ │ │ │ +67 , TDS_OBS_BLOB_NCHAR_16 = 68 /* obsolete */ │ │ │ │ │ +68 , TDS_REQ_BLOB_NCHAR_8 = 69 │ │ │ │ │ +69 , TDS_REQ_BLOB_NCHAR_SCSU = 70 │ │ │ │ │ +70 , TDS_REQ_DATA_DATE = 71 │ │ │ │ │ +71 , TDS_REQ_DATA_TIME = 72 │ │ │ │ │ +72 , TDS_REQ_DATA_INTERVAL = 73 │ │ │ │ │ +73 , TDS_REQ_CSR_SCROLL = 74 │ │ │ │ │ +74 , TDS_REQ_CSR_SENSITIVE = 75 │ │ │ │ │ +75 , TDS_REQ_CSR_INSENSITIVE = 76 │ │ │ │ │ +76 , TDS_REQ_CSR_SEMISENSITIVE = 77 │ │ │ │ │ +77 , TDS_REQ_CSR_KEYSETDRIVEN = 78 │ │ │ │ │ +78 , TDS_REQ_SRVPKTSIZE = 79 │ │ │ │ │ +79 , TDS_REQ_DATA_UNITEXT = 80 │ │ │ │ │ +80 , TDS_REQ_CAP_CLUSTERFAILOVER = 81 │ │ │ │ │ +81 , TDS_REQ_DATA_SINT1 = 82 │ │ │ │ │ +82 , TDS_REQ_LARGEIDENT = 83 │ │ │ │ │ +83 , TDS_REQ_BLOB_NCHAR_16 = 84 │ │ │ │ │ +84 , TDS_REQ_DATA_XML = 85 │ │ │ │ │ +85 , TDS_REQ_CURINFO3 = 86 │ │ │ │ │ +86 , TDS_REQ_DBRPC2 = 87 │ │ │ │ │ +87 , TDS_REQ_MIGRATE = 89 │ │ │ │ │ +88 , TDS_REQ_DATA_BIGDATETIME = 93 │ │ │ │ │ +89 , TDS_REQ_DATA_BIGTIME = 94 │ │ │ │ │ +90 , TDS_REQ_CAP_MAX = 94 /* repeats last enum */ │ │ │ │ │ +91 } TDS_REQUEST_CAPABILITY; │ │ │ │ │ +92 │ │ │ │ │ +93typedef enum tds_response_capability │ │ │ │ │ +94 { TDS_RES_NOMSG = 1 │ │ │ │ │ +95 , TDS_RES_NOEED = 2 │ │ │ │ │ +96 , TDS_RES_NOPARAM = 3 │ │ │ │ │ +97 , TDS_RES_DATA_NOINT1 = 4 │ │ │ │ │ +98 , TDS_RES_DATA_NOINT2 = 5 │ │ │ │ │ +99 , TDS_RES_DATA_NOINT4 = 6 │ │ │ │ │ +100 , TDS_RES_DATA_NOBIT = 7 │ │ │ │ │ +101 , TDS_RES_DATA_NOCHAR = 8 │ │ │ │ │ +102 , TDS_RES_DATA_NOVCHAR = 9 │ │ │ │ │ +103 , TDS_RES_DATA_NOBIN = 10 │ │ │ │ │ +104 , TDS_RES_DATA_NOVBIN = 11 │ │ │ │ │ +105 , TDS_RES_DATA_NOMNY8 = 12 │ │ │ │ │ +106 , TDS_RES_DATA_NOMNY4 = 13 │ │ │ │ │ +107 , TDS_RES_DATA_NODATE8 = 14 │ │ │ │ │ +108 , TDS_RES_DATA_NODATE4 = 15 │ │ │ │ │ +109 , TDS_RES_DATA_NOFLT4 = 16 │ │ │ │ │ +110 , TDS_RES_DATA_NOFLT8 = 17 │ │ │ │ │ +111 , TDS_RES_DATA_NONUM = 18 │ │ │ │ │ +112 , TDS_RES_DATA_NOTEXT = 19 │ │ │ │ │ +113 , TDS_RES_DATA_NOIMAGE = 20 │ │ │ │ │ +114 , TDS_RES_DATA_NODEC = 21 │ │ │ │ │ +115 , TDS_RES_DATA_NOLCHAR = 22 │ │ │ │ │ +116 , TDS_RES_DATA_NOLBIN = 23 │ │ │ │ │ +117 , TDS_RES_DATA_INTN = 24 │ │ │ │ │ +118 , TDS_RES_DATA_NODATETIMEN = 25 │ │ │ │ │ +119 , TDS_RES_DATA_NOMONEYN = 26 │ │ │ │ │ +120 , TDS_RES_CON_NOOOB = 27 │ │ │ │ │ +121 , TDS_RES_CON_NOINBAND = 28 │ │ │ │ │ +122 , TDS_RES_PROTO_NOTEXT = 29 │ │ │ │ │ +123 , TDS_RES_PROTO_NOBULK = 30 │ │ │ │ │ +124 , TDS_RES_DATA_NOSENSITIVITY = 31 │ │ │ │ │ +125 , TDS_RES_DATA_NOBOUNDARY = 32 │ │ │ │ │ +126 , TDS_RES_NOTDSDEBUG = 33 │ │ │ │ │ +127 , TDS_RES_NOSTRIPBLANKS = 34 │ │ │ │ │ +128 , TDS_RES_DATA_NOINT8 = 35 │ │ │ │ │ +129 , TDS_RES_OBJECT_NOJAVA1 = 36 │ │ │ │ │ +130 , TDS_RES_OBJECT_NOCHAR = 37 │ │ │ │ │ +131 , TDS_RES_DATA_NOCOLUMNSTATUS = 38 │ │ │ │ │ +132 , TDS_RES_OBJECT_NOBINARY = 39 │ │ │ │ │ +133 , TDS_RES_DATA_NOUINT2 = 41 │ │ │ │ │ +134 , TDS_RES_DATA_NOUINT4 = 42 │ │ │ │ │ +135 , TDS_RES_DATA_NOUINT8 = 43 │ │ │ │ │ +136 , TDS_RES_DATA_NOUINTN = 44 │ │ │ │ │ +137 , TDS_RES_NO_WIDETABLES = 45 │ │ │ │ │ +138 , TDS_RES_DATA_NONLBIN = 46 │ │ │ │ │ +139 , TDS_RES_IMAGE_NONCHAR = 47 │ │ │ │ │ +140 , TDS_RES_BLOB_NONCHAR_16 = 48 │ │ │ │ │ +141 , TDS_RES_BLOB_NONCHAR_8 = 49 │ │ │ │ │ +142 , TDS_RES_BLOB_NONCHAR_SCSU = 50 │ │ │ │ │ +143 , TDS_RES_DATA_NODATE = 51 │ │ │ │ │ +144 , TDS_RES_DATA_NOTIME = 52 │ │ │ │ │ +145 , TDS_RES_DATA_NOINTERVAL = 53 │ │ │ │ │ +146 , TDS_RES_DATA_NOUNITEXT = 54 │ │ │ │ │ +147 , TDS_RES_DATA_NOSINT1 = 55 │ │ │ │ │ +148 , TDS_RES_NO_LARGEIDENT = 56 │ │ │ │ │ +149 , TDS_RES_NO_BLOB_NCHAR_16 = 57 │ │ │ │ │ +150 , TDS_RES_NO_SRVPKTSIZE = 58 │ │ │ │ │ +151 , TDS_RES_DATA_NOXML = 59 │ │ │ │ │ +152 , TDS_RES_NONINT_RETURN_VALUE = 60 │ │ │ │ │ +153 , TDS_RES_NOXNLDATA = 61 │ │ │ │ │ +154 , TDS_RES_SUPPRESS_FMT = 62 │ │ │ │ │ +155 , TDS_RES_SUPPRESS_DONEINPROC = 63 │ │ │ │ │ +156 , TDS_RES_FORCE_ROWFMT2 = 64 │ │ │ │ │ +157 , TDS_RES_CAP_MAX = 64 /* repeats last enum */ │ │ │ │ │ +158 } TDS_RESPONSE_CAPABILITY; │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00428_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/utils/dlist.tmpl.h Source File │ │ │ │ +FreeTDS API: include/freetds/utils.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,143 +70,76 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
dlist.tmpl.h
│ │ │ │ +
utils.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* Dlist - dynamic list
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 2016 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │ -
4 * This program is free software; you can redistribute it and/or modify
│ │ │ │ -
5 * it under the terms of the GNU General Public License as published by
│ │ │ │ -
6 * the Free Software Foundation; either version 2 of the License, or
│ │ │ │ -
7 * (at your option) any later version.
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │ -
9 * This program is distributed in the hope that it will be useful,
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
│ │ │ │ -
12 * GNU General Public License for more details.
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU General Public License
│ │ │ │ -
15 * along with this program; if not, write to the Free Software
│ │ │ │ -
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
│ │ │ │ -
17 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#include <freetds/bool.h>
│ │ │ │ -
21#include <freetds/utils.h>
│ │ │ │ -
22#include <freetds/macros.h>
│ │ │ │ -
23
│ │ │ │ -
24#if !defined(DLIST_PREFIX) || !defined(DLIST_ITEM_TYPE) || !defined(DLIST_LIST_TYPE)
│ │ │ │ -
25#error Required defines for dlist missing!
│ │ │ │ -
26#endif
│ │ │ │ -
27
│ │ │ │ -
28#if defined(DLIST_NAME) || defined(DLIST_PASTER) || \
│ │ │ │ -
29 defined(DLIST_EVALUATOR) || defined(DLIST_ITEM)
│ │ │ │ -
30#error Some internal dlist macros already defined
│ │ │ │ -
31#endif
│ │ │ │ -
32
│ │ │ │ -
│ │ │ │ -
33typedef struct
│ │ │ │ -
34{
│ │ │ │ -
35 dlist_ring ring;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
37
│ │ │ │ -
38#define DLIST_PASTER(x,y) x ## _ ## y
│ │ │ │ -
39#define DLIST_EVALUATOR(x,y) DLIST_PASTER(x,y)
│ │ │ │ -
40#define DLIST_NAME(suffix) DLIST_EVALUATOR(DLIST_PREFIX, suffix)
│ │ │ │ -
41#define DLIST_ITEM(ring) \
│ │ │ │ -
42 ((DLIST_ITEM_TYPE *) (((char *) (ring)) - TDS_OFFSET(DLIST_ITEM_TYPE, DLIST_NAME(item))))
│ │ │ │ -
43
│ │ │ │ -
44static inline void DLIST_NAME(check)(DLIST_LIST_TYPE *list)
│ │ │ │ -
45{
│ │ │ │ -
46#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
47 assert(list != NULL);
│ │ │ │ -
48 dlist_ring_check(&list->ring);
│ │ │ │ -
49#endif
│ │ │ │ -
50}
│ │ │ │ +
20#ifndef _freetds_utils_h_
│ │ │ │ +
21#define _freetds_utils_h_
│ │ │ │ +
22
│ │ │ │ +
23#if HAVE_STDDEF_H
│ │ │ │ +
24#include <stddef.h>
│ │ │ │ +
25#endif /* HAVE_STDDEF_H */
│ │ │ │ +
26
│ │ │ │ +
27#include <freetds/time.h>
│ │ │ │ +
28#include <freetds/sysdep_private.h>
│ │ │ │ +
29
│ │ │ │ +
30#include <freetds/pushvis.h>
│ │ │ │ +
31
│ │ │ │ +
32#ifdef __cplusplus
│ │ │ │ +
33extern "C" {
│ │ │ │ +
34#endif
│ │ │ │ +
35
│ │ │ │ +
36void tds_sleep_s(unsigned sec);
│ │ │ │ +
37void tds_sleep_ms(unsigned ms);
│ │ │ │ +
38
│ │ │ │ +
39char *tds_getpassarg(char *arg);
│ │ │ │ +
40
│ │ │ │ +
41char *tds_timestamp_str(char *str, int maxlen);
│ │ │ │ +
42struct tm *tds_localtime_r(const time_t *timep, struct tm *result);
│ │ │ │ +
43int tds_getservice(const char *name);
│ │ │ │ +
44char *tds_get_homedir(void);
│ │ │ │ +
45
│ │ │ │ +
46int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on);
│ │ │ │ +
47
│ │ │ │ +
48#ifdef __cplusplus
│ │ │ │ +
49}
│ │ │ │ +
50#endif
│ │ │ │
51
│ │ │ │ -
52static inline void DLIST_NAME(init)(DLIST_LIST_TYPE *list)
│ │ │ │ -
53{
│ │ │ │ -
54 list->ring.next = list->ring.prev = &list->ring;
│ │ │ │ -
55 DLIST_NAME(check)(list);
│ │ │ │ -
56}
│ │ │ │ -
57
│ │ │ │ -
58static inline DLIST_ITEM_TYPE *DLIST_NAME(first)(DLIST_LIST_TYPE *list)
│ │ │ │ -
59{
│ │ │ │ -
60 return list->ring.next == &list->ring ? NULL : DLIST_ITEM(list->ring.next);
│ │ │ │ -
61}
│ │ │ │ -
62
│ │ │ │ -
63static inline DLIST_ITEM_TYPE *DLIST_NAME(last)(DLIST_LIST_TYPE *list)
│ │ │ │ -
64{
│ │ │ │ -
65 return list->ring.prev == &list->ring ? NULL : DLIST_ITEM(list->ring.prev);
│ │ │ │ -
66}
│ │ │ │ -
67
│ │ │ │ -
68static inline DLIST_ITEM_TYPE *DLIST_NAME(next)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ -
69{
│ │ │ │ -
70 return item->DLIST_NAME(item).next == &list->ring ? NULL : DLIST_ITEM(item->DLIST_NAME(item).next);
│ │ │ │ -
71}
│ │ │ │ -
72
│ │ │ │ -
73static inline DLIST_ITEM_TYPE *DLIST_NAME(prev)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ -
74{
│ │ │ │ -
75 return item->DLIST_NAME(item).prev == &list->ring ? NULL : DLIST_ITEM(item->DLIST_NAME(item).prev);
│ │ │ │ -
76}
│ │ │ │ -
77
│ │ │ │ -
78static inline void DLIST_NAME(prepend)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ -
79{
│ │ │ │ -
80 DLIST_NAME(check)(list);
│ │ │ │ -
81 dlist_insert_after(&list->ring, &item->DLIST_NAME(item));
│ │ │ │ -
82 DLIST_NAME(check)(list);
│ │ │ │ -
83}
│ │ │ │ -
84
│ │ │ │ -
85static inline void DLIST_NAME(append)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ -
86{
│ │ │ │ -
87 DLIST_NAME(check)(list);
│ │ │ │ -
88 dlist_insert_after(list->ring.prev, &item->DLIST_NAME(item));
│ │ │ │ -
89 DLIST_NAME(check)(list);
│ │ │ │ -
90}
│ │ │ │ -
91
│ │ │ │ -
92static inline void DLIST_NAME(remove)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ -
93{
│ │ │ │ -
94 dlist_ring *prev = item->DLIST_NAME(item).prev, *next = item->DLIST_NAME(item).next;
│ │ │ │ -
95 DLIST_NAME(check)(list);
│ │ │ │ -
96 if (prev) {
│ │ │ │ -
97 prev->next = next;
│ │ │ │ -
98 next->prev = prev;
│ │ │ │ -
99 }
│ │ │ │ -
100 item->DLIST_NAME(item).prev = NULL;
│ │ │ │ -
101 item->DLIST_NAME(item).next = NULL;
│ │ │ │ -
102 DLIST_NAME(check)(list);
│ │ │ │ -
103}
│ │ │ │ -
104
│ │ │ │ -
105static inline bool DLIST_NAME(in_list)(DLIST_LIST_TYPE *list, DLIST_ITEM_TYPE *item)
│ │ │ │ -
106{
│ │ │ │ -
107 DLIST_NAME(check)(list);
│ │ │ │ -
108 return item->DLIST_NAME(item).prev != NULL || item->DLIST_NAME(item).next != NULL;
│ │ │ │ -
109}
│ │ │ │ -
110
│ │ │ │ -
111#undef DLIST_ITEM
│ │ │ │ -
112#undef DLIST_NAME
│ │ │ │ -
113#undef DLIST_ITEM_TYPE
│ │ │ │ -
114#undef DLIST_LIST_TYPE
│ │ │ │ -
115#undef DLIST_PREFIX
│ │ │ │ -
116#undef DLIST_PASTER
│ │ │ │ -
117#undef DLIST_EVALUATOR
│ │ │ │ -
118
│ │ │ │ -
Definition dlist.h:23
│ │ │ │ -
Definition dlist.tmpl.h:34
│ │ │ │ +
52#include <freetds/popvis.h>
│ │ │ │ +
53
│ │ │ │ +
54#endif
│ │ │ │ +
int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on)
Set socket to not throw SIGPIPE.
Definition net.c:72
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,144 +1,67 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _u_t_i_l_s │ │ │ │ │ -dlist.tmpl.h │ │ │ │ │ -1/* Dlist - dynamic list │ │ │ │ │ +utils.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 2016 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ -4 * This program is free software; you can redistribute it and/or modify │ │ │ │ │ -5 * it under the terms of the GNU General Public License as published by │ │ │ │ │ -6 * the Free Software Foundation; either version 2 of the License, or │ │ │ │ │ -7 * (at your option) any later version. │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ -9 * This program is distributed in the hope that it will be useful, │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the │ │ │ │ │ -12 * GNU General Public License for more details. │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ 13 * │ │ │ │ │ -14 * You should have received a copy of the GNU General Public License │ │ │ │ │ -15 * along with this program; if not, write to the Free Software │ │ │ │ │ -16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA │ │ │ │ │ -17 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#include │ │ │ │ │ -21#include │ │ │ │ │ -22#include │ │ │ │ │ -23 │ │ │ │ │ -24#if !defined(DLIST_PREFIX) || !defined(DLIST_ITEM_TYPE) || !defined │ │ │ │ │ -(DLIST_LIST_TYPE) │ │ │ │ │ -25#error Required defines for dlist missing! │ │ │ │ │ -26#endif │ │ │ │ │ -27 │ │ │ │ │ -28#if defined(DLIST_NAME) || defined(DLIST_PASTER) || \ │ │ │ │ │ -29 defined(DLIST_EVALUATOR) || defined(DLIST_ITEM) │ │ │ │ │ -30#error Some internal dlist macros already defined │ │ │ │ │ -31#endif │ │ │ │ │ -32 │ │ │ │ │ -_3_3typedef struct │ │ │ │ │ -34{ │ │ │ │ │ -35 _d_l_i_s_t___r_i_n_g ring; │ │ │ │ │ -36} _D_L_I_S_T___L_I_S_T___T_Y_P_E; │ │ │ │ │ -37 │ │ │ │ │ -38#define DLIST_PASTER(x,y) x ## _ ## y │ │ │ │ │ -39#define DLIST_EVALUATOR(x,y) DLIST_PASTER(x,y) │ │ │ │ │ -40#define DLIST_NAME(suffix) DLIST_EVALUATOR(DLIST_PREFIX, suffix) │ │ │ │ │ -41#define DLIST_ITEM(ring) \ │ │ │ │ │ -42 ((DLIST_ITEM_TYPE *) (((char *) (ring)) - TDS_OFFSET(DLIST_ITEM_TYPE, │ │ │ │ │ -DLIST_NAME(item)))) │ │ │ │ │ -43 │ │ │ │ │ -44static inline void DLIST_NAME(check)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ -45{ │ │ │ │ │ -46#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -47 assert(list != NULL); │ │ │ │ │ -48 dlist_ring_check(&list->ring); │ │ │ │ │ -49#endif │ │ │ │ │ -50} │ │ │ │ │ +20#ifndef _freetds_utils_h_ │ │ │ │ │ +21#define _freetds_utils_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#if HAVE_STDDEF_H │ │ │ │ │ +24#include │ │ │ │ │ +25#endif /* HAVE_STDDEF_H */ │ │ │ │ │ +26 │ │ │ │ │ +27#include │ │ │ │ │ +28#include │ │ │ │ │ +29 │ │ │ │ │ +30#include │ │ │ │ │ +31 │ │ │ │ │ +32#ifdef __cplusplus │ │ │ │ │ +33extern "C" { │ │ │ │ │ +34#endif │ │ │ │ │ +35 │ │ │ │ │ +36void tds_sleep_s(unsigned sec); │ │ │ │ │ +37void tds_sleep_ms(unsigned ms); │ │ │ │ │ +38 │ │ │ │ │ +39char *tds_getpassarg(char *arg); │ │ │ │ │ +40 │ │ │ │ │ +41char *tds_timestamp_str(char *str, int maxlen); │ │ │ │ │ +42struct tm *tds_localtime_r(const time_t *timep, struct tm *result); │ │ │ │ │ +43int tds_getservice(const char *name); │ │ │ │ │ +44char *tds_get_homedir(void); │ │ │ │ │ +45 │ │ │ │ │ +46int _t_d_s___s_o_c_k_e_t___s_e_t___n_o_s_i_g_p_i_p_e(TDS_SYS_SOCKET sock, int on); │ │ │ │ │ +47 │ │ │ │ │ +48#ifdef __cplusplus │ │ │ │ │ +49} │ │ │ │ │ +50#endif │ │ │ │ │ 51 │ │ │ │ │ -52static inline void DLIST_NAME(init)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ -53{ │ │ │ │ │ -54 list->ring.next = list->ring.prev = &list->ring; │ │ │ │ │ -55 DLIST_NAME(check)(list); │ │ │ │ │ -56} │ │ │ │ │ -57 │ │ │ │ │ -58static inline DLIST_ITEM_TYPE *DLIST_NAME(first)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ -59{ │ │ │ │ │ -60 return list->ring.next == &list->ring ? NULL : DLIST_ITEM(list->ring.next); │ │ │ │ │ -61} │ │ │ │ │ -62 │ │ │ │ │ -63static inline DLIST_ITEM_TYPE *DLIST_NAME(last)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list) │ │ │ │ │ -64{ │ │ │ │ │ -65 return list->ring.prev == &list->ring ? NULL : DLIST_ITEM(list->ring.prev); │ │ │ │ │ -66} │ │ │ │ │ -67 │ │ │ │ │ -68static inline DLIST_ITEM_TYPE *DLIST_NAME(next)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, │ │ │ │ │ -DLIST_ITEM_TYPE *item) │ │ │ │ │ -69{ │ │ │ │ │ -70 return item->DLIST_NAME(item).next == &list->ring ? NULL : DLIST_ITEM(item- │ │ │ │ │ ->DLIST_NAME(item).next); │ │ │ │ │ -71} │ │ │ │ │ -72 │ │ │ │ │ -73static inline DLIST_ITEM_TYPE *DLIST_NAME(prev)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, │ │ │ │ │ -DLIST_ITEM_TYPE *item) │ │ │ │ │ -74{ │ │ │ │ │ -75 return item->DLIST_NAME(item).prev == &list->ring ? NULL : DLIST_ITEM(item- │ │ │ │ │ ->DLIST_NAME(item).prev); │ │ │ │ │ -76} │ │ │ │ │ -77 │ │ │ │ │ -78static inline void DLIST_NAME(prepend)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, DLIST_ITEM_TYPE │ │ │ │ │ -*item) │ │ │ │ │ -79{ │ │ │ │ │ -80 DLIST_NAME(check)(list); │ │ │ │ │ -81 dlist_insert_after(&list->ring, &item->DLIST_NAME(item)); │ │ │ │ │ -82 DLIST_NAME(check)(list); │ │ │ │ │ -83} │ │ │ │ │ -84 │ │ │ │ │ -85static inline void DLIST_NAME(append)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, DLIST_ITEM_TYPE │ │ │ │ │ -*item) │ │ │ │ │ -86{ │ │ │ │ │ -87 DLIST_NAME(check)(list); │ │ │ │ │ -88 dlist_insert_after(list->ring.prev, &item->DLIST_NAME(item)); │ │ │ │ │ -89 DLIST_NAME(check)(list); │ │ │ │ │ -90} │ │ │ │ │ -91 │ │ │ │ │ -92static inline void DLIST_NAME(remove)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, DLIST_ITEM_TYPE │ │ │ │ │ -*item) │ │ │ │ │ -93{ │ │ │ │ │ -94 _d_l_i_s_t___r_i_n_g *prev = item->DLIST_NAME(item).prev, *next = item->DLIST_NAME │ │ │ │ │ -(item).next; │ │ │ │ │ -95 DLIST_NAME(check)(list); │ │ │ │ │ -96 if (prev) { │ │ │ │ │ -97 prev->next = next; │ │ │ │ │ -98 next->prev = prev; │ │ │ │ │ -99 } │ │ │ │ │ -100 item->DLIST_NAME(item).prev = NULL; │ │ │ │ │ -101 item->DLIST_NAME(item).next = NULL; │ │ │ │ │ -102 DLIST_NAME(check)(list); │ │ │ │ │ -103} │ │ │ │ │ -104 │ │ │ │ │ -105static inline bool DLIST_NAME(in_list)(_D_L_I_S_T___L_I_S_T___T_Y_P_E *list, │ │ │ │ │ -DLIST_ITEM_TYPE *item) │ │ │ │ │ -106{ │ │ │ │ │ -107 DLIST_NAME(check)(list); │ │ │ │ │ -108 return item->DLIST_NAME(item).prev != NULL || item->DLIST_NAME(item).next │ │ │ │ │ -!= NULL; │ │ │ │ │ -109} │ │ │ │ │ -110 │ │ │ │ │ -111#undef DLIST_ITEM │ │ │ │ │ -112#undef DLIST_NAME │ │ │ │ │ -113#undef DLIST_ITEM_TYPE │ │ │ │ │ -114#undef DLIST_LIST_TYPE │ │ │ │ │ -115#undef DLIST_PREFIX │ │ │ │ │ -116#undef DLIST_PASTER │ │ │ │ │ -117#undef DLIST_EVALUATOR │ │ │ │ │ -118 │ │ │ │ │ -_d_l_i_s_t___r_i_n_g │ │ │ │ │ -DDeeffiinniittiioonn dlist.h:23 │ │ │ │ │ -_D_L_I_S_T___L_I_S_T___T_Y_P_E │ │ │ │ │ -DDeeffiinniittiioonn dlist.tmpl.h:34 │ │ │ │ │ +52#include │ │ │ │ │ +53 │ │ │ │ │ +54#endif │ │ │ │ │ +_t_d_s___s_o_c_k_e_t___s_e_t___n_o_s_i_g_p_i_p_e │ │ │ │ │ +int tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on) │ │ │ │ │ +Set socket to not throw SIGPIPE. │ │ │ │ │ +DDeeffiinniittiioonn net.c:72 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00431_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/charset_lookup.h Source File │ │ │ │ +FreeTDS API: include/freetds/popvis.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,1887 +74,20 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
charset_lookup.h
│ │ │ │ +
popvis.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* ANSI-C code produced by gperf version 3.1 */
│ │ │ │ -
2/* Command-line: /usr/pkg/bin/gperf -m 100 -C -K alias_pos -t -F ,-1 -P -H hash_charset -N charset_lookup -L ANSI-C charset_lookup.gperf */
│ │ │ │ -
3/* Computed positions: -k'1,3-11,$' */
│ │ │ │ -
4
│ │ │ │ -
5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
│ │ │ │ -
6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
│ │ │ │ -
7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
│ │ │ │ -
8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
│ │ │ │ -
9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
│ │ │ │ -
10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
│ │ │ │ -
11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
│ │ │ │ -
12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
│ │ │ │ -
13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
│ │ │ │ -
14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
│ │ │ │ -
15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
│ │ │ │ -
16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
│ │ │ │ -
17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
│ │ │ │ -
18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
│ │ │ │ -
19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
│ │ │ │ -
20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
│ │ │ │ -
21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
│ │ │ │ -
22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
│ │ │ │ -
23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
│ │ │ │ -
24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
│ │ │ │ -
25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
│ │ │ │ -
26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
│ │ │ │ -
27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
│ │ │ │ -
28/* The character set is not based on ISO-646. */
│ │ │ │ -
29#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
│ │ │ │ -
30#endif
│ │ │ │ -
31
│ │ │ │ -
32#line 3 "charset_lookup.gperf"
│ │ │ │ -
33
│ │ │ │ -
34static const struct charset_alias *charset_lookup(register const char *str, register size_t len);
│ │ │ │ -
35#line 2 "charset_lookup.gperf"
│ │ │ │ -
36struct charset_alias { short int alias_pos; short int canonic; };
│ │ │ │ -
37
│ │ │ │ -
38#define TOTAL_KEYWORDS 374
│ │ │ │ -
39#define MIN_WORD_LENGTH 2
│ │ │ │ -
40#define MAX_WORD_LENGTH 45
│ │ │ │ -
41#define MIN_HASH_VALUE 15
│ │ │ │ -
42#define MAX_HASH_VALUE 1079
│ │ │ │ -
43/* maximum key range = 1065, duplicates = 0 */
│ │ │ │ -
44
│ │ │ │ -
45#ifdef __GNUC__
│ │ │ │ -
46__inline
│ │ │ │ -
47#else
│ │ │ │ -
48#ifdef __cplusplus
│ │ │ │ -
49inline
│ │ │ │ -
50#endif
│ │ │ │ -
51#endif
│ │ │ │ -
52static unsigned int
│ │ │ │ -
53hash_charset (register const char *str, register size_t len)
│ │ │ │ -
54{
│ │ │ │ -
55 static const unsigned short asso_values[] =
│ │ │ │ -
56 {
│ │ │ │ -
57 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
58 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
59 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
60 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
61 1080, 1080, 1080, 1080, 1080, 7, 132, 1080, 56, 6,
│ │ │ │ -
62 47, 83, 35, 8, 18, 63, 7, 9, 363, 1080,
│ │ │ │ -
63 1080, 1080, 1080, 1080, 1080, 7, 99, 128, 6, 22,
│ │ │ │ -
64 141, 116, 95, 6, 34, 68, 7, 159, 6, 6,
│ │ │ │ -
65 80, 1080, 26, 6, 115, 191, 39, 162, 231, 14,
│ │ │ │ -
66 8, 1080, 1080, 1080, 1080, 37, 1080, 10, 16, 147,
│ │ │ │ -
67 1080, 16, 8, 12, 13, 6, 1080, 6, 1080, 8,
│ │ │ │ -
68 6, 6, 1080, 1080, 6, 7, 6, 19, 1080, 1080,
│ │ │ │ -
69 1080, 6, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
70 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
71 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
72 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
73 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
74 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
75 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
76 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
77 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
78 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
79 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
80 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
81 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ -
82 1080, 1080, 1080, 1080, 1080, 1080
│ │ │ │ -
83 };
│ │ │ │ -
84 register unsigned int hval = len;
│ │ │ │ -
85
│ │ │ │ -
86 switch (hval)
│ │ │ │ -
87 {
│ │ │ │ -
88 default:
│ │ │ │ -
89 hval += asso_values[(unsigned char)str[10]];
│ │ │ │ -
90 /*FALLTHROUGH*/
│ │ │ │ -
91 case 10:
│ │ │ │ -
92 hval += asso_values[(unsigned char)str[9]];
│ │ │ │ -
93 /*FALLTHROUGH*/
│ │ │ │ -
94 case 9:
│ │ │ │ -
95 hval += asso_values[(unsigned char)str[8]];
│ │ │ │ -
96 /*FALLTHROUGH*/
│ │ │ │ -
97 case 8:
│ │ │ │ -
98 hval += asso_values[(unsigned char)str[7]];
│ │ │ │ -
99 /*FALLTHROUGH*/
│ │ │ │ -
100 case 7:
│ │ │ │ -
101 hval += asso_values[(unsigned char)str[6]];
│ │ │ │ -
102 /*FALLTHROUGH*/
│ │ │ │ -
103 case 6:
│ │ │ │ -
104 hval += asso_values[(unsigned char)str[5]];
│ │ │ │ -
105 /*FALLTHROUGH*/
│ │ │ │ -
106 case 5:
│ │ │ │ -
107 hval += asso_values[(unsigned char)str[4]];
│ │ │ │ -
108 /*FALLTHROUGH*/
│ │ │ │ -
109 case 4:
│ │ │ │ -
110 hval += asso_values[(unsigned char)str[3]];
│ │ │ │ -
111 /*FALLTHROUGH*/
│ │ │ │ -
112 case 3:
│ │ │ │ -
113 hval += asso_values[(unsigned char)str[2]];
│ │ │ │ -
114 /*FALLTHROUGH*/
│ │ │ │ -
115 case 2:
│ │ │ │ -
116 case 1:
│ │ │ │ -
117 hval += asso_values[(unsigned char)str[0]];
│ │ │ │ -
118 break;
│ │ │ │ -
119 }
│ │ │ │ -
120 return hval + asso_values[(unsigned char)str[len - 1]];
│ │ │ │ -
121}
│ │ │ │ -
122
│ │ │ │ -
│ │ │ │ -
123struct stringpool_t
│ │ │ │ -
124 {
│ │ │ │ -
125 char stringpool_str15[sizeof("L1")];
│ │ │ │ -
126 char stringpool_str16[sizeof("L8")];
│ │ │ │ -
127 char stringpool_str17[sizeof("L5")];
│ │ │ │ -
128 char stringpool_str27[sizeof("L6")];
│ │ │ │ -
129 char stringpool_str28[sizeof("SJIS")];
│ │ │ │ -
130 char stringpool_str30[sizeof("koi8")];
│ │ │ │ -
131 char stringpool_str31[sizeof("sjis")];
│ │ │ │ -
132 char stringpool_str35[sizeof("R8")];
│ │ │ │ -
133 char stringpool_str36[sizeof("iso81")];
│ │ │ │ -
134 char stringpool_str38[sizeof("iso88")];
│ │ │ │ -
135 char stringpool_str39[sizeof("iso15")];
│ │ │ │ -
136 char stringpool_str40[sizeof("iso85")];
│ │ │ │ -
137 char stringpool_str41[sizeof("thai8")];
│ │ │ │ -
138 char stringpool_str42[sizeof("iso89")];
│ │ │ │ -
139 char stringpool_str43[sizeof("roma8")];
│ │ │ │ -
140 char stringpool_str44[sizeof("L4")];
│ │ │ │ -
141 char stringpool_str45[sizeof("utf8")];
│ │ │ │ -
142 char stringpool_str46[sizeof("866")];
│ │ │ │ -
143 char stringpool_str47[sizeof("iso815")];
│ │ │ │ -
144 char stringpool_str48[sizeof("big5")];
│ │ │ │ -
145 char stringpool_str50[sizeof("roman8")];
│ │ │ │ -
146 char stringpool_str56[sizeof("L2")];
│ │ │ │ -
147 char stringpool_str57[sizeof("646")];
│ │ │ │ -
148 char stringpool_str60[sizeof("iso86")];
│ │ │ │ -
149 char stringpool_str63[sizeof("iso88591")];
│ │ │ │ -
150 char stringpool_str65[sizeof("iso88598")];
│ │ │ │ -
151 char stringpool_str66[sizeof("iso_1")];
│ │ │ │ -
152 char stringpool_str67[sizeof("iso88595")];
│ │ │ │ -
153 char stringpool_str69[sizeof("iso88599")];
│ │ │ │ -
154 char stringpool_str70[sizeof("greek8")];
│ │ │ │ -
155 char stringpool_str71[sizeof("ISO8859-1")];
│ │ │ │ -
156 char stringpool_str72[sizeof("L7")];
│ │ │ │ -
157 char stringpool_str73[sizeof("ISO8859-8")];
│ │ │ │ -
158 char stringpool_str74[sizeof("iso885915")];
│ │ │ │ -
159 char stringpool_str75[sizeof("ISO8859-5")];
│ │ │ │ -
160 char stringpool_str77[sizeof("ISO8859-9")];
│ │ │ │ -
161 char stringpool_str79[sizeof("ISO-8859-1")];
│ │ │ │ -
162 char stringpool_str81[sizeof("ISO-8859-8")];
│ │ │ │ -
163 char stringpool_str82[sizeof("ISO8859-15")];
│ │ │ │ -
164 char stringpool_str83[sizeof("ISO-8859-5")];
│ │ │ │ -
165 char stringpool_str85[sizeof("ISO-8859-9")];
│ │ │ │ -
166 char stringpool_str87[sizeof("iso88596")];
│ │ │ │ -
167 char stringpool_str89[sizeof("ISO-IR-58")];
│ │ │ │ -
168 char stringpool_str90[sizeof("ISO-8859-15")];
│ │ │ │ -
169 char stringpool_str91[sizeof("JAVA")];
│ │ │ │ -
170 char stringpool_str92[sizeof("L3")];
│ │ │ │ -
171 char stringpool_str93[sizeof("iso14")];
│ │ │ │ -
172 char stringpool_str94[sizeof("iso84")];
│ │ │ │ -
173 char stringpool_str95[sizeof("ISO8859-6")];
│ │ │ │ -
174 char stringpool_str100[sizeof("ISO-IR-159")];
│ │ │ │ -
175 char stringpool_str101[sizeof("ISO-IR-199")];
│ │ │ │ -
176 char stringpool_str102[sizeof("ISO-IR-6")];
│ │ │ │ -
177 char stringpool_str103[sizeof("ISO-8859-6")];
│ │ │ │ -
178 char stringpool_str104[sizeof("862")];
│ │ │ │ -
179 char stringpool_str105[sizeof("HZ")];
│ │ │ │ -
180 char stringpool_str107[sizeof("iso646")];
│ │ │ │ -
181 char stringpool_str108[sizeof("ISO-IR-165")];
│ │ │ │ -
182 char stringpool_str109[sizeof("ISO_8859-1")];
│ │ │ │ -
183 char stringpool_str110[sizeof("ISO-8859-16")];
│ │ │ │ -
184 char stringpool_str111[sizeof("ISO_8859-8")];
│ │ │ │ -
185 char stringpool_str113[sizeof("ISO_8859-5")];
│ │ │ │ -
186 char stringpool_str115[sizeof("ISO_8859-9")];
│ │ │ │ -
187 char stringpool_str116[sizeof("JP")];
│ │ │ │ -
188 char stringpool_str118[sizeof("iso82")];
│ │ │ │ -
189 char stringpool_str120[sizeof("ISO_8859-15")];
│ │ │ │ -
190 char stringpool_str121[sizeof("iso88594")];
│ │ │ │ -
191 char stringpool_str122[sizeof("850")];
│ │ │ │ -
192 char stringpool_str123[sizeof("ISO-IR-148")];
│ │ │ │ -
193 char stringpool_str124[sizeof("ISO_8859-15:1998")];
│ │ │ │ -
194 char stringpool_str127[sizeof("ISO-IR-149")];
│ │ │ │ -
195 char stringpool_str128[sizeof("ISO-IR-166")];
│ │ │ │ -
196 char stringpool_str129[sizeof("ISO8859-4")];
│ │ │ │ -
197 char stringpool_str133[sizeof("ISO_8859-6")];
│ │ │ │ -
198 char stringpool_str135[sizeof("iso10")];
│ │ │ │ -
199 char stringpool_str136[sizeof("CN")];
│ │ │ │ -
200 char stringpool_str137[sizeof("ISO-8859-4")];
│ │ │ │ -
201 char stringpool_str140[sizeof("ISO_8859-16")];
│ │ │ │ -
202 char stringpool_str141[sizeof("KOREAN")];
│ │ │ │ -
203 char stringpool_str142[sizeof("ISO-IR-101")];
│ │ │ │ -
204 char stringpool_str143[sizeof("ISO-IR-14")];
│ │ │ │ -
205 char stringpool_str144[sizeof("ISO-8859-14")];
│ │ │ │ -
206 char stringpool_str145[sizeof("iso88592")];
│ │ │ │ -
207 char stringpool_str146[sizeof("KOI8-R")];
│ │ │ │ -
208 char stringpool_str148[sizeof("ISO-IR-109")];
│ │ │ │ -
209 char stringpool_str149[sizeof("C99")];
│ │ │ │ -
210 char stringpool_str150[sizeof("iso87")];
│ │ │ │ -
211 char stringpool_str151[sizeof("ISO_8859-14:1998")];
│ │ │ │ -
212 char stringpool_str152[sizeof("LATIN1")];
│ │ │ │ -
213 char stringpool_str153[sizeof("ISO8859-2")];
│ │ │ │ -
214 char stringpool_str154[sizeof("LATIN8")];
│ │ │ │ -
215 char stringpool_str155[sizeof("ISO-IR-179")];
│ │ │ │ -
216 char stringpool_str156[sizeof("LATIN5")];
│ │ │ │ -
217 char stringpool_str157[sizeof("ISO-IR-126")];
│ │ │ │ -
218 char stringpool_str158[sizeof("ASCII")];
│ │ │ │ -
219 char stringpool_str161[sizeof("ISO-8859-2")];
│ │ │ │ -
220 char stringpool_str164[sizeof("CP819")];
│ │ │ │ -
221 char stringpool_str167[sizeof("ISO_8859-4")];
│ │ │ │ -
222 char stringpool_str170[sizeof("TCVN")];
│ │ │ │ -
223 char stringpool_str171[sizeof("ISO-IR-138")];
│ │ │ │ -
224 char stringpool_str173[sizeof("hp15CN")];
│ │ │ │ -
225 char stringpool_str174[sizeof("ISO_8859-14")];
│ │ │ │ -
226 char stringpool_str176[sizeof("LATIN6")];
│ │ │ │ -
227 char stringpool_str177[sizeof("iso88597")];
│ │ │ │ -
228 char stringpool_str178[sizeof("ISO8859-10")];
│ │ │ │ -
229 char stringpool_str179[sizeof("ISO-IR-144")];
│ │ │ │ -
230 char stringpool_str183[sizeof("ISO_8859-16:2000")];
│ │ │ │ -
231 char stringpool_str185[sizeof("ISO8859-7")];
│ │ │ │ -
232 char stringpool_str186[sizeof("ISO-8859-10")];
│ │ │ │ -
233 char stringpool_str189[sizeof("iso13")];
│ │ │ │ -
234 char stringpool_str190[sizeof("iso83")];
│ │ │ │ -
235 char stringpool_str191[sizeof("ISO_8859-2")];
│ │ │ │ -
236 char stringpool_str192[sizeof("ISO-IR-110")];
│ │ │ │ -
237 char stringpool_str193[sizeof("ISO-8859-7")];
│ │ │ │ -
238 char stringpool_str194[sizeof("CP866")];
│ │ │ │ -
239 char stringpool_str195[sizeof("CP949")];
│ │ │ │ -
240 char stringpool_str196[sizeof("tis620")];
│ │ │ │ -
241 char stringpool_str197[sizeof("VISCII")];
│ │ │ │ -
242 char stringpool_str198[sizeof("ISO-IR-226")];
│ │ │ │ -
243 char stringpool_str199[sizeof("US")];
│ │ │ │ -
244 char stringpool_str200[sizeof("ISO-IR-87")];
│ │ │ │ -
245 char stringpool_str201[sizeof("ISO-IR-57")];
│ │ │ │ -
246 char stringpool_str202[sizeof("IBM819")];
│ │ │ │ -
247 char stringpool_str203[sizeof("macthai")];
│ │ │ │ -
248 char stringpool_str204[sizeof("MS-ANSI")];
│ │ │ │ -
249 char stringpool_str205[sizeof("macturk")];
│ │ │ │ -
250 char stringpool_str207[sizeof("CP1251")];
│ │ │ │ -
251 char stringpool_str208[sizeof("ISO-IR-157")];
│ │ │ │ -
252 char stringpool_str209[sizeof("CP1258")];
│ │ │ │ -
253 char stringpool_str210[sizeof("LATIN4")];
│ │ │ │ -
254 char stringpool_str211[sizeof("CP1255")];
│ │ │ │ -
255 char stringpool_str212[sizeof("ISO_8859-10:1992")];
│ │ │ │ -
256 char stringpool_str213[sizeof("cp866")];
│ │ │ │ -
257 char stringpool_str214[sizeof("cp949")];
│ │ │ │ -
258 char stringpool_str216[sizeof("ISO_8859-10")];
│ │ │ │ -
259 char stringpool_str217[sizeof("iso88593")];
│ │ │ │ -
260 char stringpool_str218[sizeof("ROMAN8")];
│ │ │ │ -
261 char stringpool_str219[sizeof("CHINESE")];
│ │ │ │ -
262 char stringpool_str220[sizeof("JIS0208")];
│ │ │ │ -
263 char stringpool_str223[sizeof("ISO_8859-7")];
│ │ │ │ -
264 char stringpool_str225[sizeof("macgreek")];
│ │ │ │ -
265 char stringpool_str226[sizeof("cp1251")];
│ │ │ │ -
266 char stringpool_str227[sizeof("ascii_8")];
│ │ │ │ -
267 char stringpool_str228[sizeof("cp1258")];
│ │ │ │ -
268 char stringpool_str229[sizeof("ECMA-118")];
│ │ │ │ -
269 char stringpool_str230[sizeof("cp1255")];
│ │ │ │ -
270 char stringpool_str231[sizeof("CP1256")];
│ │ │ │ -
271 char stringpool_str232[sizeof("IBM866")];
│ │ │ │ -
272 char stringpool_str233[sizeof("ISO-8859-3")];
│ │ │ │ -
273 char stringpool_str234[sizeof("LATIN2")];
│ │ │ │ -
274 char stringpool_str235[sizeof("BIG5")];
│ │ │ │ -
275 char stringpool_str236[sizeof("MULELAO-1")];
│ │ │ │ -
276 char stringpool_str237[sizeof("MS-EE")];
│ │ │ │ -
277 char stringpool_str239[sizeof("ISO646-CN")];
│ │ │ │ -
278 char stringpool_str240[sizeof("ISO-8859-13")];
│ │ │ │ -
279 char stringpool_str242[sizeof("ISO-IR-100")];
│ │ │ │ -
280 char stringpool_str243[sizeof("BIG-5")];
│ │ │ │ -
281 char stringpool_str247[sizeof("ISO-IR-127")];
│ │ │ │ -
282 char stringpool_str248[sizeof("GREEK8")];
│ │ │ │ -
283 char stringpool_str250[sizeof("cp1256")];
│ │ │ │ -
284 char stringpool_str252[sizeof("CP862")];
│ │ │ │ -
285 char stringpool_str253[sizeof("CP1361")];
│ │ │ │ -
286 char stringpool_str255[sizeof("GBK")];
│ │ │ │ -
287 char stringpool_str258[sizeof("ELOT_928")];
│ │ │ │ -
288 char stringpool_str260[sizeof("CP850")];
│ │ │ │ -
289 char stringpool_str261[sizeof("CP936")];
│ │ │ │ -
290 char stringpool_str262[sizeof("CP950")];
│ │ │ │ -
291 char stringpool_str263[sizeof("ISO_8859-3")];
│ │ │ │ -
292 char stringpool_str265[sizeof("CP1254")];
│ │ │ │ -
293 char stringpool_str266[sizeof("LATIN7")];
│ │ │ │ -
294 char stringpool_str270[sizeof("ISO_8859-13")];
│ │ │ │ -
295 char stringpool_str271[sizeof("cp862")];
│ │ │ │ -
296 char stringpool_str273[sizeof("CP874")];
│ │ │ │ -
297 char stringpool_str274[sizeof("CSKOI8R")];
│ │ │ │ -
298 char stringpool_str275[sizeof("EUCKR")];
│ │ │ │ -
299 char stringpool_str279[sizeof("cp850")];
│ │ │ │ -
300 char stringpool_str280[sizeof("cp936")];
│ │ │ │ -
301 char stringpool_str281[sizeof("cp950")];
│ │ │ │ -
302 char stringpool_str283[sizeof("EUC-KR")];
│ │ │ │ -
303 char stringpool_str284[sizeof("cp1254")];
│ │ │ │ -
304 char stringpool_str285[sizeof("ECMA-114")];
│ │ │ │ -
305 char stringpool_str288[sizeof("eucKR")];
│ │ │ │ -
306 char stringpool_str289[sizeof("CP1252")];
│ │ │ │ -
307 char stringpool_str290[sizeof("IBM862")];
│ │ │ │ -
308 char stringpool_str291[sizeof("CSISO159JISX02121990")];
│ │ │ │ -
309 char stringpool_str292[sizeof("cp874")];
│ │ │ │ -
310 char stringpool_str293[sizeof("ISO646-JP")];
│ │ │ │ -
311 char stringpool_str294[sizeof("CSASCII")];
│ │ │ │ -
312 char stringpool_str295[sizeof("EUCCN")];
│ │ │ │ -
313 char stringpool_str297[sizeof("UCS-4LE")];
│ │ │ │ -
314 char stringpool_str298[sizeof("IBM850")];
│ │ │ │ -
315 char stringpool_str301[sizeof("GREEK")];
│ │ │ │ -
316 char stringpool_str302[sizeof("ISO646-US")];
│ │ │ │ -
317 char stringpool_str303[sizeof("EUC-CN")];
│ │ │ │ -
318 char stringpool_str304[sizeof("TIS620")];
│ │ │ │ -
319 char stringpool_str305[sizeof("mac")];
│ │ │ │ -
320 char stringpool_str306[sizeof("LATIN3")];
│ │ │ │ -
321 char stringpool_str307[sizeof("CP1250")];
│ │ │ │ -
322 char stringpool_str308[sizeof("cp1252")];
│ │ │ │ -
323 char stringpool_str309[sizeof("UCS-2LE")];
│ │ │ │ -
324 char stringpool_str310[sizeof("CSISOLATIN1")];
│ │ │ │ -
325 char stringpool_str312[sizeof("TIS-620")];
│ │ │ │ -
326 char stringpool_str313[sizeof("TCVN5712-1")];
│ │ │ │ -
327 char stringpool_str314[sizeof("CSISOLATIN5")];
│ │ │ │ -
328 char stringpool_str318[sizeof("GB_1988-80")];
│ │ │ │ -
329 char stringpool_str319[sizeof("CP932")];
│ │ │ │ -
330 char stringpool_str320[sizeof("ASMO-708")];
│ │ │ │ -
331 char stringpool_str321[sizeof("CP1257")];
│ │ │ │ -
332 char stringpool_str324[sizeof("KOI8-T")];
│ │ │ │ -
333 char stringpool_str326[sizeof("cp1250")];
│ │ │ │ -
334 char stringpool_str329[sizeof("HP-ROMAN8")];
│ │ │ │ -
335 char stringpool_str331[sizeof("MS_KANJI")];
│ │ │ │ -
336 char stringpool_str333[sizeof("CSVISCII")];
│ │ │ │ -
337 char stringpool_str334[sizeof("CSISOLATIN6")];
│ │ │ │ -
338 char stringpool_str335[sizeof("KSC_5601")];
│ │ │ │ -
339 char stringpool_str336[sizeof("SHIFT-JIS")];
│ │ │ │ -
340 char stringpool_str337[sizeof("ISO-IR-203")];
│ │ │ │ -
341 char stringpool_str338[sizeof("cp932")];
│ │ │ │ -
342 char stringpool_str339[sizeof("JOHAB")];
│ │ │ │ -
343 char stringpool_str340[sizeof("cp1257")];
│ │ │ │ -
344 char stringpool_str342[sizeof("ARMSCII-8")];
│ │ │ │ -
345 char stringpool_str345[sizeof("ISO_646.IRV:1991")];
│ │ │ │ -
346 char stringpool_str347[sizeof("TCVN-5712")];
│ │ │ │ -
347 char stringpool_str349[sizeof("EUCJP")];
│ │ │ │ -
348 char stringpool_str350[sizeof("UTF8")];
│ │ │ │ -
349 char stringpool_str351[sizeof("X0201")];
│ │ │ │ -
350 char stringpool_str352[sizeof("GB2312")];
│ │ │ │ -
351 char stringpool_str353[sizeof("X0208")];
│ │ │ │ -
352 char stringpool_str354[sizeof("ISO-2022-KR")];
│ │ │ │ -
353 char stringpool_str355[sizeof("MS-CYRL")];
│ │ │ │ -
354 char stringpool_str356[sizeof("ISO-2022-JP-1")];
│ │ │ │ -
355 char stringpool_str357[sizeof("EUC-JP")];
│ │ │ │ -
356 char stringpool_str358[sizeof("UTF-8")];
│ │ │ │ -
357 char stringpool_str359[sizeof("VISCII1.1-1")];
│ │ │ │ -
358 char stringpool_str360[sizeof("CP367")];
│ │ │ │ -
359 char stringpool_str361[sizeof("CP1253")];
│ │ │ │ -
360 char stringpool_str362[sizeof("eucJP")];
│ │ │ │ -
361 char stringpool_str364[sizeof("mac_cyr")];
│ │ │ │ -
362 char stringpool_str365[sizeof("US-ASCII")];
│ │ │ │ -
363 char stringpool_str366[sizeof("SHIFT_JIS")];
│ │ │ │ -
364 char stringpool_str368[sizeof("CSISOLATIN4")];
│ │ │ │ -
365 char stringpool_str369[sizeof("TIS620-0")];
│ │ │ │ -
366 char stringpool_str371[sizeof("CSBIG5")];
│ │ │ │ -
367 char stringpool_str374[sizeof("ISO-2022-CN")];
│ │ │ │ -
368 char stringpool_str377[sizeof("CP437")];
│ │ │ │ -
369 char stringpool_str379[sizeof("CN-BIG5")];
│ │ │ │ -
370 char stringpool_str380[sizeof("cp1253")];
│ │ │ │ -
371 char stringpool_str381[sizeof("ARABIC")];
│ │ │ │ -
372 char stringpool_str383[sizeof("X0212")];
│ │ │ │ -
373 char stringpool_str384[sizeof("CSISO14JISC6220RO")];
│ │ │ │ -
374 char stringpool_str387[sizeof("GB18030")];
│ │ │ │ -
375 char stringpool_str389[sizeof("UCS-4BE")];
│ │ │ │ -
376 char stringpool_str392[sizeof("CSISOLATIN2")];
│ │ │ │ -
377 char stringpool_str393[sizeof("GEORGIAN-PS")];
│ │ │ │ -
378 char stringpool_str394[sizeof("KS_C_5601-1989")];
│ │ │ │ -
379 char stringpool_str395[sizeof("CP1133")];
│ │ │ │ -
380 char stringpool_str396[sizeof("cp437")];
│ │ │ │ -
381 char stringpool_str397[sizeof("ISO-2022-JP-2")];
│ │ │ │ -
382 char stringpool_str398[sizeof("IBM367")];
│ │ │ │ -
383 char stringpool_str401[sizeof("UCS-2BE")];
│ │ │ │ -
384 char stringpool_str402[sizeof("UNICODE-1-1")];
│ │ │ │ -
385 char stringpool_str409[sizeof("JIS_C6220-1969-RO")];
│ │ │ │ -
386 char stringpool_str411[sizeof("MS-ARAB")];
│ │ │ │ -
387 char stringpool_str415[sizeof("IBM437")];
│ │ │ │ -
388 char stringpool_str418[sizeof("MAC")];
│ │ │ │ -
389 char stringpool_str422[sizeof("UTF-16LE")];
│ │ │ │ -
390 char stringpool_str428[sizeof("ISO-2022-JP")];
│ │ │ │ -
391 char stringpool_str429[sizeof("CN-GB-ISOIR165")];
│ │ │ │ -
392 char stringpool_str434[sizeof("WINDOWS-1251")];
│ │ │ │ -
393 char stringpool_str435[sizeof("WINDOWS-1258")];
│ │ │ │ -
394 char stringpool_str436[sizeof("WINDOWS-1255")];
│ │ │ │ -
395 char stringpool_str438[sizeof("CSISOLATINARABIC")];
│ │ │ │ -
396 char stringpool_str441[sizeof("MS-HEBR")];
│ │ │ │ -
397 char stringpool_str444[sizeof("CYRILLIC")];
│ │ │ │ -
398 char stringpool_str445[sizeof("JIS_C6226-1983")];
│ │ │ │ -
399 char stringpool_str446[sizeof("WINDOWS-1256")];
│ │ │ │ -
400 char stringpool_str448[sizeof("KS_C_5601-1987")];
│ │ │ │ -
401 char stringpool_str450[sizeof("UHC")];
│ │ │ │ -
402 char stringpool_str452[sizeof("BIGFIVE")];
│ │ │ │ -
403 char stringpool_str454[sizeof("CN-GB")];
│ │ │ │ -
404 char stringpool_str455[sizeof("GEORGIAN-ACADEMY")];
│ │ │ │ -
405 char stringpool_str460[sizeof("BIG-FIVE")];
│ │ │ │ -
406 char stringpool_str461[sizeof("CSIBM866")];
│ │ │ │ -
407 char stringpool_str462[sizeof("UTF7")];
│ │ │ │ -
408 char stringpool_str463[sizeof("WINDOWS-1254")];
│ │ │ │ -
409 char stringpool_str464[sizeof("CSISOLATIN3")];
│ │ │ │ -
410 char stringpool_str465[sizeof("UNICODE-1-1-UTF-7")];
│ │ │ │ -
411 char stringpool_str467[sizeof("CSISO57GB1988")];
│ │ │ │ -
412 char stringpool_str470[sizeof("UTF-7")];
│ │ │ │ -
413 char stringpool_str472[sizeof("GB_2312-80")];
│ │ │ │ -
414 char stringpool_str474[sizeof("CSISO2022KR")];
│ │ │ │ -
415 char stringpool_str475[sizeof("WINDOWS-1252")];
│ │ │ │ -
416 char stringpool_str476[sizeof("KOI8-U")];
│ │ │ │ -
417 char stringpool_str479[sizeof("ISO_8859-8:1988")];
│ │ │ │ -
418 char stringpool_str480[sizeof("ISO_8859-5:1988")];
│ │ │ │ -
419 char stringpool_str483[sizeof("ISO_8859-9:1989")];
│ │ │ │ -
420 char stringpool_str484[sizeof("WINDOWS-1250")];
│ │ │ │ -
421 char stringpool_str485[sizeof("MACICELAND")];
│ │ │ │ -
422 char stringpool_str486[sizeof("CSISOLATINGREEK")];
│ │ │ │ -
423 char stringpool_str487[sizeof("ISO-2022-CN-EXT")];
│ │ │ │ -
424 char stringpool_str488[sizeof("JIS_X0201")];
│ │ │ │ -
425 char stringpool_str489[sizeof("JISX0201-1976")];
│ │ │ │ -
426 char stringpool_str490[sizeof("JIS_X0208")];
│ │ │ │ -
427 char stringpool_str491[sizeof("WINDOWS-1257")];
│ │ │ │ -
428 char stringpool_str494[sizeof("CSISO2022CN")];
│ │ │ │ -
429 char stringpool_str496[sizeof("MS-GREEK")];
│ │ │ │ -
430 char stringpool_str500[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")];
│ │ │ │ -
431 char stringpool_str503[sizeof("KOI8-RU")];
│ │ │ │ -
432 char stringpool_str504[sizeof("TIS620.2529-1")];
│ │ │ │ -
433 char stringpool_str505[sizeof("MACROMAN")];
│ │ │ │ -
434 char stringpool_str506[sizeof("WINDOWS-874")];
│ │ │ │ -
435 char stringpool_str507[sizeof("ISO_8859-4:1988")];
│ │ │ │ -
436 char stringpool_str509[sizeof("CSKSC56011987")];
│ │ │ │ -
437 char stringpool_str511[sizeof("WINDOWS-1253")];
│ │ │ │ -
438 char stringpool_str514[sizeof("UTF-16BE")];
│ │ │ │ -
439 char stringpool_str515[sizeof("CSISO87JISX0208")];
│ │ │ │ -
440 char stringpool_str516[sizeof("CSISO2022JP2")];
│ │ │ │ -
441 char stringpool_str520[sizeof("JIS_X0212")];
│ │ │ │ -
442 char stringpool_str521[sizeof("MACROMANIA")];
│ │ │ │ -
443 char stringpool_str522[sizeof("CSUNICODE11")];
│ │ │ │ -
444 char stringpool_str523[sizeof("MACTHAI")];
│ │ │ │ -
445 char stringpool_str528[sizeof("UTF-32LE")];
│ │ │ │ -
446 char stringpool_str531[sizeof("CSHPROMAN8")];
│ │ │ │ -
447 char stringpool_str534[sizeof("ISO_8859-1:1987")];
│ │ │ │ -
448 char stringpool_str541[sizeof("BIG5HKSCS")];
│ │ │ │ -
449 char stringpool_str546[sizeof("ISO_8859-6:1987")];
│ │ │ │ -
450 char stringpool_str547[sizeof("JIS_X0212-1990")];
│ │ │ │ -
451 char stringpool_str548[sizeof("CSISO2022JP")];
│ │ │ │ -
452 char stringpool_str549[sizeof("BIG5-HKSCS")];
│ │ │ │ -
453 char stringpool_str553[sizeof("CSSHIFTJIS")];
│ │ │ │ -
454 char stringpool_str555[sizeof("ISO_8859-3:1988")];
│ │ │ │ -
455 char stringpool_str557[sizeof("JIS_X0208-1990")];
│ │ │ │ -
456 char stringpool_str560[sizeof("CSISOLATINHEBREW")];
│ │ │ │ -
457 char stringpool_str561[sizeof("CSISOLATINCYRILLIC")];
│ │ │ │ -
458 char stringpool_str563[sizeof("ISO-CELTIC")];
│ │ │ │ -
459 char stringpool_str564[sizeof("HZ-GB-2312")];
│ │ │ │ -
460 char stringpool_str571[sizeof("ANSI_X3.4-1968")];
│ │ │ │ -
461 char stringpool_str572[sizeof("HEBREW")];
│ │ │ │ -
462 char stringpool_str575[sizeof("ISO_8859-2:1987")];
│ │ │ │ -
463 char stringpool_str577[sizeof("CSISO58GB231280")];
│ │ │ │ -
464 char stringpool_str581[sizeof("CSGB2312")];
│ │ │ │ -
465 char stringpool_str582[sizeof("ANSI_X3.4-1986")];
│ │ │ │ -
466 char stringpool_str583[sizeof("CSUNICODE11UTF7")];
│ │ │ │ -
467 char stringpool_str584[sizeof("JIS_X0208-1983")];
│ │ │ │ -
468 char stringpool_str591[sizeof("ISO_8859-7:1987")];
│ │ │ │ -
469 char stringpool_str594[sizeof("EUCTW")];
│ │ │ │ -
470 char stringpool_str596[sizeof("CSEUCKR")];
│ │ │ │ -
471 char stringpool_str602[sizeof("EUC-TW")];
│ │ │ │ -
472 char stringpool_str605[sizeof("MACCROATIAN")];
│ │ │ │ -
473 char stringpool_str607[sizeof("eucTW")];
│ │ │ │ -
474 char stringpool_str614[sizeof("TIS620.2533-1")];
│ │ │ │ -
475 char stringpool_str617[sizeof("MACGREEK")];
│ │ │ │ -
476 char stringpool_str620[sizeof("UTF-32BE")];
│ │ │ │ -
477 char stringpool_str625[sizeof("MACINTOSH")];
│ │ │ │ -
478 char stringpool_str637[sizeof("UNICODELITTLE")];
│ │ │ │ -
479 char stringpool_str641[sizeof("MS-TURK")];
│ │ │ │ -
480 char stringpool_str645[sizeof("MACUKRAINE")];
│ │ │ │ -
481 char stringpool_str651[sizeof("IBM-CP1133")];
│ │ │ │ -
482 char stringpool_str658[sizeof("MACCENTRALEUROPE")];
│ │ │ │ -
483 char stringpool_str663[sizeof("NEXTSTEP")];
│ │ │ │ -
484 char stringpool_str664[sizeof("TIS620.2533-0")];
│ │ │ │ -
485 char stringpool_str674[sizeof("JIS_X0212.1990-0")];
│ │ │ │ -
486 char stringpool_str697[sizeof("MACARABIC")];
│ │ │ │ -
487 char stringpool_str706[sizeof("UNICODEBIG")];
│ │ │ │ -
488 char stringpool_str723[sizeof("CSPC862LATINHEBREW")];
│ │ │ │ -
489 char stringpool_str748[sizeof("MACCYRILLIC")];
│ │ │ │ -
490 char stringpool_str756[sizeof("WINBALTRIM")];
│ │ │ │ -
491 char stringpool_str758[sizeof("TCVN5712-1:1993")];
│ │ │ │ -
492 char stringpool_str762[sizeof("CSMACINTOSH")];
│ │ │ │ -
493 char stringpool_str788[sizeof("CSHALFWIDTHKATAKANA")];
│ │ │ │ -
494 char stringpool_str884[sizeof("MACHEBREW")];
│ │ │ │ -
495 char stringpool_str899[sizeof("MACTURKISH")];
│ │ │ │ -
496 char stringpool_str905[sizeof("CSPC850MULTILINGUAL")];
│ │ │ │ -
497 char stringpool_str915[sizeof("CSEUCTW")];
│ │ │ │ -
498 char stringpool_str1079[sizeof("CSEUCPKDFMTJAPANESE")];
│ │ │ │ -
499 };
│ │ │ │ -
│ │ │ │ -
500static const struct stringpool_t stringpool_contents =
│ │ │ │ -
501 {
│ │ │ │ -
502 "L1",
│ │ │ │ -
503 "L8",
│ │ │ │ -
504 "L5",
│ │ │ │ -
505 "L6",
│ │ │ │ -
506 "SJIS",
│ │ │ │ -
507 "koi8",
│ │ │ │ -
508 "sjis",
│ │ │ │ -
509 "R8",
│ │ │ │ -
510 "iso81",
│ │ │ │ -
511 "iso88",
│ │ │ │ -
512 "iso15",
│ │ │ │ -
513 "iso85",
│ │ │ │ -
514 "thai8",
│ │ │ │ -
515 "iso89",
│ │ │ │ -
516 "roma8",
│ │ │ │ -
517 "L4",
│ │ │ │ -
518 "utf8",
│ │ │ │ -
519 "866",
│ │ │ │ -
520 "iso815",
│ │ │ │ -
521 "big5",
│ │ │ │ -
522 "roman8",
│ │ │ │ -
523 "L2",
│ │ │ │ -
524 "646",
│ │ │ │ -
525 "iso86",
│ │ │ │ -
526 "iso88591",
│ │ │ │ -
527 "iso88598",
│ │ │ │ -
528 "iso_1",
│ │ │ │ -
529 "iso88595",
│ │ │ │ -
530 "iso88599",
│ │ │ │ -
531 "greek8",
│ │ │ │ -
532 "ISO8859-1",
│ │ │ │ -
533 "L7",
│ │ │ │ -
534 "ISO8859-8",
│ │ │ │ -
535 "iso885915",
│ │ │ │ -
536 "ISO8859-5",
│ │ │ │ -
537 "ISO8859-9",
│ │ │ │ -
538 "ISO-8859-1",
│ │ │ │ -
539 "ISO-8859-8",
│ │ │ │ -
540 "ISO8859-15",
│ │ │ │ -
541 "ISO-8859-5",
│ │ │ │ -
542 "ISO-8859-9",
│ │ │ │ -
543 "iso88596",
│ │ │ │ -
544 "ISO-IR-58",
│ │ │ │ -
545 "ISO-8859-15",
│ │ │ │ -
546 "JAVA",
│ │ │ │ -
547 "L3",
│ │ │ │ -
548 "iso14",
│ │ │ │ -
549 "iso84",
│ │ │ │ -
550 "ISO8859-6",
│ │ │ │ -
551 "ISO-IR-159",
│ │ │ │ -
552 "ISO-IR-199",
│ │ │ │ -
553 "ISO-IR-6",
│ │ │ │ -
554 "ISO-8859-6",
│ │ │ │ -
555 "862",
│ │ │ │ -
556 "HZ",
│ │ │ │ -
557 "iso646",
│ │ │ │ -
558 "ISO-IR-165",
│ │ │ │ -
559 "ISO_8859-1",
│ │ │ │ -
560 "ISO-8859-16",
│ │ │ │ -
561 "ISO_8859-8",
│ │ │ │ -
562 "ISO_8859-5",
│ │ │ │ -
563 "ISO_8859-9",
│ │ │ │ -
564 "JP",
│ │ │ │ -
565 "iso82",
│ │ │ │ -
566 "ISO_8859-15",
│ │ │ │ -
567 "iso88594",
│ │ │ │ -
568 "850",
│ │ │ │ -
569 "ISO-IR-148",
│ │ │ │ -
570 "ISO_8859-15:1998",
│ │ │ │ -
571 "ISO-IR-149",
│ │ │ │ -
572 "ISO-IR-166",
│ │ │ │ -
573 "ISO8859-4",
│ │ │ │ -
574 "ISO_8859-6",
│ │ │ │ -
575 "iso10",
│ │ │ │ -
576 "CN",
│ │ │ │ -
577 "ISO-8859-4",
│ │ │ │ -
578 "ISO_8859-16",
│ │ │ │ -
579 "KOREAN",
│ │ │ │ -
580 "ISO-IR-101",
│ │ │ │ -
581 "ISO-IR-14",
│ │ │ │ -
582 "ISO-8859-14",
│ │ │ │ -
583 "iso88592",
│ │ │ │ -
584 "KOI8-R",
│ │ │ │ -
585 "ISO-IR-109",
│ │ │ │ -
586 "C99",
│ │ │ │ -
587 "iso87",
│ │ │ │ -
588 "ISO_8859-14:1998",
│ │ │ │ -
589 "LATIN1",
│ │ │ │ -
590 "ISO8859-2",
│ │ │ │ -
591 "LATIN8",
│ │ │ │ -
592 "ISO-IR-179",
│ │ │ │ -
593 "LATIN5",
│ │ │ │ -
594 "ISO-IR-126",
│ │ │ │ -
595 "ASCII",
│ │ │ │ -
596 "ISO-8859-2",
│ │ │ │ -
597 "CP819",
│ │ │ │ -
598 "ISO_8859-4",
│ │ │ │ -
599 "TCVN",
│ │ │ │ -
600 "ISO-IR-138",
│ │ │ │ -
601 "hp15CN",
│ │ │ │ -
602 "ISO_8859-14",
│ │ │ │ -
603 "LATIN6",
│ │ │ │ -
604 "iso88597",
│ │ │ │ -
605 "ISO8859-10",
│ │ │ │ -
606 "ISO-IR-144",
│ │ │ │ -
607 "ISO_8859-16:2000",
│ │ │ │ -
608 "ISO8859-7",
│ │ │ │ -
609 "ISO-8859-10",
│ │ │ │ -
610 "iso13",
│ │ │ │ -
611 "iso83",
│ │ │ │ -
612 "ISO_8859-2",
│ │ │ │ -
613 "ISO-IR-110",
│ │ │ │ -
614 "ISO-8859-7",
│ │ │ │ -
615 "CP866",
│ │ │ │ -
616 "CP949",
│ │ │ │ -
617 "tis620",
│ │ │ │ -
618 "VISCII",
│ │ │ │ -
619 "ISO-IR-226",
│ │ │ │ -
620 "US",
│ │ │ │ -
621 "ISO-IR-87",
│ │ │ │ -
622 "ISO-IR-57",
│ │ │ │ -
623 "IBM819",
│ │ │ │ -
624 "macthai",
│ │ │ │ -
625 "MS-ANSI",
│ │ │ │ -
626 "macturk",
│ │ │ │ -
627 "CP1251",
│ │ │ │ -
628 "ISO-IR-157",
│ │ │ │ -
629 "CP1258",
│ │ │ │ -
630 "LATIN4",
│ │ │ │ -
631 "CP1255",
│ │ │ │ -
632 "ISO_8859-10:1992",
│ │ │ │ -
633 "cp866",
│ │ │ │ -
634 "cp949",
│ │ │ │ -
635 "ISO_8859-10",
│ │ │ │ -
636 "iso88593",
│ │ │ │ -
637 "ROMAN8",
│ │ │ │ -
638 "CHINESE",
│ │ │ │ -
639 "JIS0208",
│ │ │ │ -
640 "ISO_8859-7",
│ │ │ │ -
641 "macgreek",
│ │ │ │ -
642 "cp1251",
│ │ │ │ -
643 "ascii_8",
│ │ │ │ -
644 "cp1258",
│ │ │ │ -
645 "ECMA-118",
│ │ │ │ -
646 "cp1255",
│ │ │ │ -
647 "CP1256",
│ │ │ │ -
648 "IBM866",
│ │ │ │ -
649 "ISO-8859-3",
│ │ │ │ -
650 "LATIN2",
│ │ │ │ -
651 "BIG5",
│ │ │ │ -
652 "MULELAO-1",
│ │ │ │ -
653 "MS-EE",
│ │ │ │ -
654 "ISO646-CN",
│ │ │ │ -
655 "ISO-8859-13",
│ │ │ │ -
656 "ISO-IR-100",
│ │ │ │ -
657 "BIG-5",
│ │ │ │ -
658 "ISO-IR-127",
│ │ │ │ -
659 "GREEK8",
│ │ │ │ -
660 "cp1256",
│ │ │ │ -
661 "CP862",
│ │ │ │ -
662 "CP1361",
│ │ │ │ -
663 "GBK",
│ │ │ │ -
664 "ELOT_928",
│ │ │ │ -
665 "CP850",
│ │ │ │ -
666 "CP936",
│ │ │ │ -
667 "CP950",
│ │ │ │ -
668 "ISO_8859-3",
│ │ │ │ -
669 "CP1254",
│ │ │ │ -
670 "LATIN7",
│ │ │ │ -
671 "ISO_8859-13",
│ │ │ │ -
672 "cp862",
│ │ │ │ -
673 "CP874",
│ │ │ │ -
674 "CSKOI8R",
│ │ │ │ -
675 "EUCKR",
│ │ │ │ -
676 "cp850",
│ │ │ │ -
677 "cp936",
│ │ │ │ -
678 "cp950",
│ │ │ │ -
679 "EUC-KR",
│ │ │ │ -
680 "cp1254",
│ │ │ │ -
681 "ECMA-114",
│ │ │ │ -
682 "eucKR",
│ │ │ │ -
683 "CP1252",
│ │ │ │ -
684 "IBM862",
│ │ │ │ -
685 "CSISO159JISX02121990",
│ │ │ │ -
686 "cp874",
│ │ │ │ -
687 "ISO646-JP",
│ │ │ │ -
688 "CSASCII",
│ │ │ │ -
689 "EUCCN",
│ │ │ │ -
690 "UCS-4LE",
│ │ │ │ -
691 "IBM850",
│ │ │ │ -
692 "GREEK",
│ │ │ │ -
693 "ISO646-US",
│ │ │ │ -
694 "EUC-CN",
│ │ │ │ -
695 "TIS620",
│ │ │ │ -
696 "mac",
│ │ │ │ -
697 "LATIN3",
│ │ │ │ -
698 "CP1250",
│ │ │ │ -
699 "cp1252",
│ │ │ │ -
700 "UCS-2LE",
│ │ │ │ -
701 "CSISOLATIN1",
│ │ │ │ -
702 "TIS-620",
│ │ │ │ -
703 "TCVN5712-1",
│ │ │ │ -
704 "CSISOLATIN5",
│ │ │ │ -
705 "GB_1988-80",
│ │ │ │ -
706 "CP932",
│ │ │ │ -
707 "ASMO-708",
│ │ │ │ -
708 "CP1257",
│ │ │ │ -
709 "KOI8-T",
│ │ │ │ -
710 "cp1250",
│ │ │ │ -
711 "HP-ROMAN8",
│ │ │ │ -
712 "MS_KANJI",
│ │ │ │ -
713 "CSVISCII",
│ │ │ │ -
714 "CSISOLATIN6",
│ │ │ │ -
715 "KSC_5601",
│ │ │ │ -
716 "SHIFT-JIS",
│ │ │ │ -
717 "ISO-IR-203",
│ │ │ │ -
718 "cp932",
│ │ │ │ -
719 "JOHAB",
│ │ │ │ -
720 "cp1257",
│ │ │ │ -
721 "ARMSCII-8",
│ │ │ │ -
722 "ISO_646.IRV:1991",
│ │ │ │ -
723 "TCVN-5712",
│ │ │ │ -
724 "EUCJP",
│ │ │ │ -
725 "UTF8",
│ │ │ │ -
726 "X0201",
│ │ │ │ -
727 "GB2312",
│ │ │ │ -
728 "X0208",
│ │ │ │ -
729 "ISO-2022-KR",
│ │ │ │ -
730 "MS-CYRL",
│ │ │ │ -
731 "ISO-2022-JP-1",
│ │ │ │ -
732 "EUC-JP",
│ │ │ │ -
733 "UTF-8",
│ │ │ │ -
734 "VISCII1.1-1",
│ │ │ │ -
735 "CP367",
│ │ │ │ -
736 "CP1253",
│ │ │ │ -
737 "eucJP",
│ │ │ │ -
738 "mac_cyr",
│ │ │ │ -
739 "US-ASCII",
│ │ │ │ -
740 "SHIFT_JIS",
│ │ │ │ -
741 "CSISOLATIN4",
│ │ │ │ -
742 "TIS620-0",
│ │ │ │ -
743 "CSBIG5",
│ │ │ │ -
744 "ISO-2022-CN",
│ │ │ │ -
745 "CP437",
│ │ │ │ -
746 "CN-BIG5",
│ │ │ │ -
747 "cp1253",
│ │ │ │ -
748 "ARABIC",
│ │ │ │ -
749 "X0212",
│ │ │ │ -
750 "CSISO14JISC6220RO",
│ │ │ │ -
751 "GB18030",
│ │ │ │ -
752 "UCS-4BE",
│ │ │ │ -
753 "CSISOLATIN2",
│ │ │ │ -
754 "GEORGIAN-PS",
│ │ │ │ -
755 "KS_C_5601-1989",
│ │ │ │ -
756 "CP1133",
│ │ │ │ -
757 "cp437",
│ │ │ │ -
758 "ISO-2022-JP-2",
│ │ │ │ -
759 "IBM367",
│ │ │ │ -
760 "UCS-2BE",
│ │ │ │ -
761 "UNICODE-1-1",
│ │ │ │ -
762 "JIS_C6220-1969-RO",
│ │ │ │ -
763 "MS-ARAB",
│ │ │ │ -
764 "IBM437",
│ │ │ │ -
765 "MAC",
│ │ │ │ -
766 "UTF-16LE",
│ │ │ │ -
767 "ISO-2022-JP",
│ │ │ │ -
768 "CN-GB-ISOIR165",
│ │ │ │ -
769 "WINDOWS-1251",
│ │ │ │ -
770 "WINDOWS-1258",
│ │ │ │ -
771 "WINDOWS-1255",
│ │ │ │ -
772 "CSISOLATINARABIC",
│ │ │ │ -
773 "MS-HEBR",
│ │ │ │ -
774 "CYRILLIC",
│ │ │ │ -
775 "JIS_C6226-1983",
│ │ │ │ -
776 "WINDOWS-1256",
│ │ │ │ -
777 "KS_C_5601-1987",
│ │ │ │ -
778 "UHC",
│ │ │ │ -
779 "BIGFIVE",
│ │ │ │ -
780 "CN-GB",
│ │ │ │ -
781 "GEORGIAN-ACADEMY",
│ │ │ │ -
782 "BIG-FIVE",
│ │ │ │ -
783 "CSIBM866",
│ │ │ │ -
784 "UTF7",
│ │ │ │ -
785 "WINDOWS-1254",
│ │ │ │ -
786 "CSISOLATIN3",
│ │ │ │ -
787 "UNICODE-1-1-UTF-7",
│ │ │ │ -
788 "CSISO57GB1988",
│ │ │ │ -
789 "UTF-7",
│ │ │ │ -
790 "GB_2312-80",
│ │ │ │ -
791 "CSISO2022KR",
│ │ │ │ -
792 "WINDOWS-1252",
│ │ │ │ -
793 "KOI8-U",
│ │ │ │ -
794 "ISO_8859-8:1988",
│ │ │ │ -
795 "ISO_8859-5:1988",
│ │ │ │ -
796 "ISO_8859-9:1989",
│ │ │ │ -
797 "WINDOWS-1250",
│ │ │ │ -
798 "MACICELAND",
│ │ │ │ -
799 "CSISOLATINGREEK",
│ │ │ │ -
800 "ISO-2022-CN-EXT",
│ │ │ │ -
801 "JIS_X0201",
│ │ │ │ -
802 "JISX0201-1976",
│ │ │ │ -
803 "JIS_X0208",
│ │ │ │ -
804 "WINDOWS-1257",
│ │ │ │ -
805 "CSISO2022CN",
│ │ │ │ -
806 "MS-GREEK",
│ │ │ │ -
807 "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
│ │ │ │ -
808 "KOI8-RU",
│ │ │ │ -
809 "TIS620.2529-1",
│ │ │ │ -
810 "MACROMAN",
│ │ │ │ -
811 "WINDOWS-874",
│ │ │ │ -
812 "ISO_8859-4:1988",
│ │ │ │ -
813 "CSKSC56011987",
│ │ │ │ -
814 "WINDOWS-1253",
│ │ │ │ -
815 "UTF-16BE",
│ │ │ │ -
816 "CSISO87JISX0208",
│ │ │ │ -
817 "CSISO2022JP2",
│ │ │ │ -
818 "JIS_X0212",
│ │ │ │ -
819 "MACROMANIA",
│ │ │ │ -
820 "CSUNICODE11",
│ │ │ │ -
821 "MACTHAI",
│ │ │ │ -
822 "UTF-32LE",
│ │ │ │ -
823 "CSHPROMAN8",
│ │ │ │ -
824 "ISO_8859-1:1987",
│ │ │ │ -
825 "BIG5HKSCS",
│ │ │ │ -
826 "ISO_8859-6:1987",
│ │ │ │ -
827 "JIS_X0212-1990",
│ │ │ │ -
828 "CSISO2022JP",
│ │ │ │ -
829 "BIG5-HKSCS",
│ │ │ │ -
830 "CSSHIFTJIS",
│ │ │ │ -
831 "ISO_8859-3:1988",
│ │ │ │ -
832 "JIS_X0208-1990",
│ │ │ │ -
833 "CSISOLATINHEBREW",
│ │ │ │ -
834 "CSISOLATINCYRILLIC",
│ │ │ │ -
835 "ISO-CELTIC",
│ │ │ │ -
836 "HZ-GB-2312",
│ │ │ │ -
837 "ANSI_X3.4-1968",
│ │ │ │ -
838 "HEBREW",
│ │ │ │ -
839 "ISO_8859-2:1987",
│ │ │ │ -
840 "CSISO58GB231280",
│ │ │ │ -
841 "CSGB2312",
│ │ │ │ -
842 "ANSI_X3.4-1986",
│ │ │ │ -
843 "CSUNICODE11UTF7",
│ │ │ │ -
844 "JIS_X0208-1983",
│ │ │ │ -
845 "ISO_8859-7:1987",
│ │ │ │ -
846 "EUCTW",
│ │ │ │ -
847 "CSEUCKR",
│ │ │ │ -
848 "EUC-TW",
│ │ │ │ -
849 "MACCROATIAN",
│ │ │ │ -
850 "eucTW",
│ │ │ │ -
851 "TIS620.2533-1",
│ │ │ │ -
852 "MACGREEK",
│ │ │ │ -
853 "UTF-32BE",
│ │ │ │ -
854 "MACINTOSH",
│ │ │ │ -
855 "UNICODELITTLE",
│ │ │ │ -
856 "MS-TURK",
│ │ │ │ -
857 "MACUKRAINE",
│ │ │ │ -
858 "IBM-CP1133",
│ │ │ │ -
859 "MACCENTRALEUROPE",
│ │ │ │ -
860 "NEXTSTEP",
│ │ │ │ -
861 "TIS620.2533-0",
│ │ │ │ -
862 "JIS_X0212.1990-0",
│ │ │ │ -
863 "MACARABIC",
│ │ │ │ -
864 "UNICODEBIG",
│ │ │ │ -
865 "CSPC862LATINHEBREW",
│ │ │ │ -
866 "MACCYRILLIC",
│ │ │ │ -
867 "WINBALTRIM",
│ │ │ │ -
868 "TCVN5712-1:1993",
│ │ │ │ -
869 "CSMACINTOSH",
│ │ │ │ -
870 "CSHALFWIDTHKATAKANA",
│ │ │ │ -
871 "MACHEBREW",
│ │ │ │ -
872 "MACTURKISH",
│ │ │ │ -
873 "CSPC850MULTILINGUAL",
│ │ │ │ -
874 "CSEUCTW",
│ │ │ │ -
875 "CSEUCPKDFMTJAPANESE"
│ │ │ │ -
876 };
│ │ │ │ -
877#define stringpool ((const char *) &stringpool_contents)
│ │ │ │ -
878const struct charset_alias *
│ │ │ │ -
879charset_lookup (register const char *str, register size_t len)
│ │ │ │ -
880{
│ │ │ │ -
881 static const struct charset_alias wordlist[] =
│ │ │ │ -
882 {
│ │ │ │ -
883 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
884 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
885 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
886#line 228 "charset_lookup.gperf"
│ │ │ │ -
887 {(int)offsetof(struct stringpool_t, stringpool_str15), 0},
│ │ │ │ -
888#line 235 "charset_lookup.gperf"
│ │ │ │ -
889 {(int)offsetof(struct stringpool_t, stringpool_str16), 47},
│ │ │ │ -
890#line 232 "charset_lookup.gperf"
│ │ │ │ -
891 {(int)offsetof(struct stringpool_t, stringpool_str17), 57},
│ │ │ │ -
892 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
893 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
894#line 233 "charset_lookup.gperf"
│ │ │ │ -
895 {(int)offsetof(struct stringpool_t, stringpool_str27), 45},
│ │ │ │ -
896#line 272 "charset_lookup.gperf"
│ │ │ │ -
897 {(int)offsetof(struct stringpool_t, stringpool_str28), 84},
│ │ │ │ -
898 {-1,-1},
│ │ │ │ -
899#line 375 "charset_lookup.gperf"
│ │ │ │ -
900 {(int)offsetof(struct stringpool_t, stringpool_str30), 65},
│ │ │ │ -
901#line 359 "charset_lookup.gperf"
│ │ │ │ -
902 {(int)offsetof(struct stringpool_t, stringpool_str31), 84},
│ │ │ │ -
903 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
904#line 268 "charset_lookup.gperf"
│ │ │ │ -
905 {(int)offsetof(struct stringpool_t, stringpool_str35), 83},
│ │ │ │ -
906#line 337 "charset_lookup.gperf"
│ │ │ │ -
907 {(int)offsetof(struct stringpool_t, stringpool_str36), 0},
│ │ │ │ -
908 {-1,-1},
│ │ │ │ -
909#line 345 "charset_lookup.gperf"
│ │ │ │ -
910 {(int)offsetof(struct stringpool_t, stringpool_str38), 56},
│ │ │ │ -
911#line 372 "charset_lookup.gperf"
│ │ │ │ -
912 {(int)offsetof(struct stringpool_t, stringpool_str39), 48},
│ │ │ │ -
913#line 342 "charset_lookup.gperf"
│ │ │ │ -
914 {(int)offsetof(struct stringpool_t, stringpool_str40), 53},
│ │ │ │ -
915#line 360 "charset_lookup.gperf"
│ │ │ │ -
916 {(int)offsetof(struct stringpool_t, stringpool_str41), 61},
│ │ │ │ -
917#line 356 "charset_lookup.gperf"
│ │ │ │ -
918 {(int)offsetof(struct stringpool_t, stringpool_str42), 57},
│ │ │ │ -
919#line 357 "charset_lookup.gperf"
│ │ │ │ -
920 {(int)offsetof(struct stringpool_t, stringpool_str43), 83},
│ │ │ │ -
921#line 231 "charset_lookup.gperf"
│ │ │ │ -
922 {(int)offsetof(struct stringpool_t, stringpool_str44), 52},
│ │ │ │ -
923#line 362 "charset_lookup.gperf"
│ │ │ │ -
924 {(int)offsetof(struct stringpool_t, stringpool_str45), 1},
│ │ │ │ -
925#line 10 "charset_lookup.gperf"
│ │ │ │ -
926 {(int)offsetof(struct stringpool_t, stringpool_str46), 26},
│ │ │ │ -
927#line 338 "charset_lookup.gperf"
│ │ │ │ -
928 {(int)offsetof(struct stringpool_t, stringpool_str47), 48},
│ │ │ │ -
929#line 318 "charset_lookup.gperf"
│ │ │ │ -
930 {(int)offsetof(struct stringpool_t, stringpool_str48), 5},
│ │ │ │ -
931 {-1,-1},
│ │ │ │ -
932#line 358 "charset_lookup.gperf"
│ │ │ │ -
933 {(int)offsetof(struct stringpool_t, stringpool_str50), 83},
│ │ │ │ -
934 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
935#line 229 "charset_lookup.gperf"
│ │ │ │ -
936 {(int)offsetof(struct stringpool_t, stringpool_str56), 50},
│ │ │ │ -
937#line 7 "charset_lookup.gperf"
│ │ │ │ -
938 {(int)offsetof(struct stringpool_t, stringpool_str57), 88},
│ │ │ │ -
939 {-1,-1}, {-1,-1},
│ │ │ │ -
940#line 343 "charset_lookup.gperf"
│ │ │ │ -
941 {(int)offsetof(struct stringpool_t, stringpool_str60), 54},
│ │ │ │ -
942 {-1,-1}, {-1,-1},
│ │ │ │ -
943#line 346 "charset_lookup.gperf"
│ │ │ │ -
944 {(int)offsetof(struct stringpool_t, stringpool_str63), 0},
│ │ │ │ -
945 {-1,-1},
│ │ │ │ -
946#line 354 "charset_lookup.gperf"
│ │ │ │ -
947 {(int)offsetof(struct stringpool_t, stringpool_str65), 56},
│ │ │ │ -
948#line 374 "charset_lookup.gperf"
│ │ │ │ -
949 {(int)offsetof(struct stringpool_t, stringpool_str66), 0},
│ │ │ │ -
950#line 351 "charset_lookup.gperf"
│ │ │ │ -
951 {(int)offsetof(struct stringpool_t, stringpool_str67), 53},
│ │ │ │ -
952 {-1,-1},
│ │ │ │ -
953#line 355 "charset_lookup.gperf"
│ │ │ │ -
954 {(int)offsetof(struct stringpool_t, stringpool_str69), 57},
│ │ │ │ -
955#line 368 "charset_lookup.gperf"
│ │ │ │ -
956 {(int)offsetof(struct stringpool_t, stringpool_str70), 55},
│ │ │ │ -
957#line 168 "charset_lookup.gperf"
│ │ │ │ -
958 {(int)offsetof(struct stringpool_t, stringpool_str71), 0},
│ │ │ │ -
959#line 234 "charset_lookup.gperf"
│ │ │ │ -
960 {(int)offsetof(struct stringpool_t, stringpool_str72), 46},
│ │ │ │ -
961#line 176 "charset_lookup.gperf"
│ │ │ │ -
962 {(int)offsetof(struct stringpool_t, stringpool_str73), 56},
│ │ │ │ -
963#line 347 "charset_lookup.gperf"
│ │ │ │ -
964 {(int)offsetof(struct stringpool_t, stringpool_str74), 48},
│ │ │ │ -
965#line 173 "charset_lookup.gperf"
│ │ │ │ -
966 {(int)offsetof(struct stringpool_t, stringpool_str75), 53},
│ │ │ │ -
967 {-1,-1},
│ │ │ │ -
968#line 177 "charset_lookup.gperf"
│ │ │ │ -
969 {(int)offsetof(struct stringpool_t, stringpool_str77), 57},
│ │ │ │ -
970 {-1,-1},
│ │ │ │ -
971#line 127 "charset_lookup.gperf"
│ │ │ │ -
972 {(int)offsetof(struct stringpool_t, stringpool_str79), 0},
│ │ │ │ -
973 {-1,-1},
│ │ │ │ -
974#line 139 "charset_lookup.gperf"
│ │ │ │ -
975 {(int)offsetof(struct stringpool_t, stringpool_str81), 56},
│ │ │ │ -
976#line 170 "charset_lookup.gperf"
│ │ │ │ -
977 {(int)offsetof(struct stringpool_t, stringpool_str82), 48},
│ │ │ │ -
978#line 136 "charset_lookup.gperf"
│ │ │ │ -
979 {(int)offsetof(struct stringpool_t, stringpool_str83), 53},
│ │ │ │ -
980 {-1,-1},
│ │ │ │ -
981#line 140 "charset_lookup.gperf"
│ │ │ │ -
982 {(int)offsetof(struct stringpool_t, stringpool_str85), 57},
│ │ │ │ -
983 {-1,-1},
│ │ │ │ -
984#line 352 "charset_lookup.gperf"
│ │ │ │ -
985 {(int)offsetof(struct stringpool_t, stringpool_str87), 54},
│ │ │ │ -
986 {-1,-1},
│ │ │ │ -
987#line 162 "charset_lookup.gperf"
│ │ │ │ -
988 {(int)offsetof(struct stringpool_t, stringpool_str89), 8},
│ │ │ │ -
989#line 131 "charset_lookup.gperf"
│ │ │ │ -
990 {(int)offsetof(struct stringpool_t, stringpool_str90), 48},
│ │ │ │ -
991#line 206 "charset_lookup.gperf"
│ │ │ │ -
992 {(int)offsetof(struct stringpool_t, stringpool_str91), 63},
│ │ │ │ -
993#line 230 "charset_lookup.gperf"
│ │ │ │ -
994 {(int)offsetof(struct stringpool_t, stringpool_str92), 51},
│ │ │ │ -
995#line 371 "charset_lookup.gperf"
│ │ │ │ -
996 {(int)offsetof(struct stringpool_t, stringpool_str93), 47},
│ │ │ │ -
997#line 341 "charset_lookup.gperf"
│ │ │ │ -
998 {(int)offsetof(struct stringpool_t, stringpool_str94), 52},
│ │ │ │ -
999#line 174 "charset_lookup.gperf"
│ │ │ │ -
1000 {(int)offsetof(struct stringpool_t, stringpool_str95), 54},
│ │ │ │ -
1001 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1002#line 154 "charset_lookup.gperf"
│ │ │ │ -
1003 {(int)offsetof(struct stringpool_t, stringpool_str100), 60},
│ │ │ │ -
1004#line 158 "charset_lookup.gperf"
│ │ │ │ -
1005 {(int)offsetof(struct stringpool_t, stringpool_str101), 47},
│ │ │ │ -
1006#line 163 "charset_lookup.gperf"
│ │ │ │ -
1007 {(int)offsetof(struct stringpool_t, stringpool_str102), 88},
│ │ │ │ -
1008#line 137 "charset_lookup.gperf"
│ │ │ │ -
1009 {(int)offsetof(struct stringpool_t, stringpool_str103), 54},
│ │ │ │ -
1010#line 9 "charset_lookup.gperf"
│ │ │ │ -
1011 {(int)offsetof(struct stringpool_t, stringpool_str104), 25},
│ │ │ │ -
1012#line 112 "charset_lookup.gperf"
│ │ │ │ -
1013 {(int)offsetof(struct stringpool_t, stringpool_str105), 38},
│ │ │ │ -
1014 {-1,-1},
│ │ │ │ -
1015#line 373 "charset_lookup.gperf"
│ │ │ │ -
1016 {(int)offsetof(struct stringpool_t, stringpool_str107), 88},
│ │ │ │ -
1017#line 155 "charset_lookup.gperf"
│ │ │ │ -
1018 {(int)offsetof(struct stringpool_t, stringpool_str108), 11},
│ │ │ │ -
1019#line 179 "charset_lookup.gperf"
│ │ │ │ -
1020 {(int)offsetof(struct stringpool_t, stringpool_str109), 0},
│ │ │ │ -
1021#line 132 "charset_lookup.gperf"
│ │ │ │ -
1022 {(int)offsetof(struct stringpool_t, stringpool_str110), 49},
│ │ │ │ -
1023#line 202 "charset_lookup.gperf"
│ │ │ │ -
1024 {(int)offsetof(struct stringpool_t, stringpool_str111), 56},
│ │ │ │ -
1025 {-1,-1},
│ │ │ │ -
1026#line 196 "charset_lookup.gperf"
│ │ │ │ -
1027 {(int)offsetof(struct stringpool_t, stringpool_str113), 53},
│ │ │ │ -
1028 {-1,-1},
│ │ │ │ -
1029#line 204 "charset_lookup.gperf"
│ │ │ │ -
1030 {(int)offsetof(struct stringpool_t, stringpool_str115), 57},
│ │ │ │ -
1031#line 219 "charset_lookup.gperf"
│ │ │ │ -
1032 {(int)offsetof(struct stringpool_t, stringpool_str116), 58},
│ │ │ │ -
1033 {-1,-1},
│ │ │ │ -
1034#line 339 "charset_lookup.gperf"
│ │ │ │ -
1035 {(int)offsetof(struct stringpool_t, stringpool_str118), 50},
│ │ │ │ -
1036 {-1,-1},
│ │ │ │ -
1037#line 185 "charset_lookup.gperf"
│ │ │ │ -
1038 {(int)offsetof(struct stringpool_t, stringpool_str120), 48},
│ │ │ │ -
1039#line 350 "charset_lookup.gperf"
│ │ │ │ -
1040 {(int)offsetof(struct stringpool_t, stringpool_str121), 52},
│ │ │ │ -
1041#line 8 "charset_lookup.gperf"
│ │ │ │ -
1042 {(int)offsetof(struct stringpool_t, stringpool_str122), 24},
│ │ │ │ -
1043#line 151 "charset_lookup.gperf"
│ │ │ │ -
1044 {(int)offsetof(struct stringpool_t, stringpool_str123), 57},
│ │ │ │ -
1045#line 186 "charset_lookup.gperf"
│ │ │ │ -
1046 {(int)offsetof(struct stringpool_t, stringpool_str124), 48},
│ │ │ │ -
1047 {-1,-1}, {-1,-1},
│ │ │ │ -
1048#line 152 "charset_lookup.gperf"
│ │ │ │ -
1049 {(int)offsetof(struct stringpool_t, stringpool_str127), 59},
│ │ │ │ -
1050#line 156 "charset_lookup.gperf"
│ │ │ │ -
1051 {(int)offsetof(struct stringpool_t, stringpool_str128), 61},
│ │ │ │ -
1052#line 172 "charset_lookup.gperf"
│ │ │ │ -
1053 {(int)offsetof(struct stringpool_t, stringpool_str129), 52},
│ │ │ │ -
1054 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1055#line 198 "charset_lookup.gperf"
│ │ │ │ -
1056 {(int)offsetof(struct stringpool_t, stringpool_str133), 54},
│ │ │ │ -
1057 {-1,-1},
│ │ │ │ -
1058#line 369 "charset_lookup.gperf"
│ │ │ │ -
1059 {(int)offsetof(struct stringpool_t, stringpool_str135), 45},
│ │ │ │ -
1060#line 25 "charset_lookup.gperf"
│ │ │ │ -
1061 {(int)offsetof(struct stringpool_t, stringpool_str136), 9},
│ │ │ │ -
1062#line 135 "charset_lookup.gperf"
│ │ │ │ -
1063 {(int)offsetof(struct stringpool_t, stringpool_str137), 52},
│ │ │ │ -
1064 {-1,-1}, {-1,-1},
│ │ │ │ -
1065#line 187 "charset_lookup.gperf"
│ │ │ │ -
1066 {(int)offsetof(struct stringpool_t, stringpool_str140), 49},
│ │ │ │ -
1067#line 224 "charset_lookup.gperf"
│ │ │ │ -
1068 {(int)offsetof(struct stringpool_t, stringpool_str141), 59},
│ │ │ │ -
1069#line 143 "charset_lookup.gperf"
│ │ │ │ -
1070 {(int)offsetof(struct stringpool_t, stringpool_str142), 50},
│ │ │ │ -
1071#line 149 "charset_lookup.gperf"
│ │ │ │ -
1072 {(int)offsetof(struct stringpool_t, stringpool_str143), 58},
│ │ │ │ -
1073#line 130 "charset_lookup.gperf"
│ │ │ │ -
1074 {(int)offsetof(struct stringpool_t, stringpool_str144), 47},
│ │ │ │ -
1075#line 348 "charset_lookup.gperf"
│ │ │ │ -
1076 {(int)offsetof(struct stringpool_t, stringpool_str145), 50},
│ │ │ │ -
1077#line 220 "charset_lookup.gperf"
│ │ │ │ -
1078 {(int)offsetof(struct stringpool_t, stringpool_str146), 65},
│ │ │ │ -
1079 {-1,-1},
│ │ │ │ -
1080#line 144 "charset_lookup.gperf"
│ │ │ │ -
1081 {(int)offsetof(struct stringpool_t, stringpool_str148), 51},
│ │ │ │ -
1082#line 23 "charset_lookup.gperf"
│ │ │ │ -
1083 {(int)offsetof(struct stringpool_t, stringpool_str149), 7},
│ │ │ │ -
1084#line 344 "charset_lookup.gperf"
│ │ │ │ -
1085 {(int)offsetof(struct stringpool_t, stringpool_str150), 55},
│ │ │ │ -
1086#line 184 "charset_lookup.gperf"
│ │ │ │ -
1087 {(int)offsetof(struct stringpool_t, stringpool_str151), 47},
│ │ │ │ -
1088#line 236 "charset_lookup.gperf"
│ │ │ │ -
1089 {(int)offsetof(struct stringpool_t, stringpool_str152), 0},
│ │ │ │ -
1090#line 171 "charset_lookup.gperf"
│ │ │ │ -
1091 {(int)offsetof(struct stringpool_t, stringpool_str153), 50},
│ │ │ │ -
1092#line 243 "charset_lookup.gperf"
│ │ │ │ -
1093 {(int)offsetof(struct stringpool_t, stringpool_str154), 47},
│ │ │ │ -
1094#line 157 "charset_lookup.gperf"
│ │ │ │ -
1095 {(int)offsetof(struct stringpool_t, stringpool_str155), 46},
│ │ │ │ -
1096#line 240 "charset_lookup.gperf"
│ │ │ │ -
1097 {(int)offsetof(struct stringpool_t, stringpool_str156), 57},
│ │ │ │ -
1098#line 146 "charset_lookup.gperf"
│ │ │ │ -
1099 {(int)offsetof(struct stringpool_t, stringpool_str157), 55},
│ │ │ │ -
1100#line 15 "charset_lookup.gperf"
│ │ │ │ -
1101 {(int)offsetof(struct stringpool_t, stringpool_str158), 88},
│ │ │ │ -
1102 {-1,-1}, {-1,-1},
│ │ │ │ -
1103#line 133 "charset_lookup.gperf"
│ │ │ │ -
1104 {(int)offsetof(struct stringpool_t, stringpool_str161), 50},
│ │ │ │ -
1105 {-1,-1}, {-1,-1},
│ │ │ │ -
1106#line 42 "charset_lookup.gperf"
│ │ │ │ -
1107 {(int)offsetof(struct stringpool_t, stringpool_str164), 0},
│ │ │ │ -
1108 {-1,-1}, {-1,-1},
│ │ │ │ -
1109#line 194 "charset_lookup.gperf"
│ │ │ │ -
1110 {(int)offsetof(struct stringpool_t, stringpool_str167), 52},
│ │ │ │ -
1111 {-1,-1}, {-1,-1},
│ │ │ │ -
1112#line 273 "charset_lookup.gperf"
│ │ │ │ -
1113 {(int)offsetof(struct stringpool_t, stringpool_str170), 85},
│ │ │ │ -
1114#line 148 "charset_lookup.gperf"
│ │ │ │ -
1115 {(int)offsetof(struct stringpool_t, stringpool_str171), 56},
│ │ │ │ -
1116 {-1,-1},
│ │ │ │ -
1117#line 336 "charset_lookup.gperf"
│ │ │ │ -
1118 {(int)offsetof(struct stringpool_t, stringpool_str173), 8},
│ │ │ │ -
1119#line 183 "charset_lookup.gperf"
│ │ │ │ -
1120 {(int)offsetof(struct stringpool_t, stringpool_str174), 47},
│ │ │ │ -
1121 {-1,-1},
│ │ │ │ -
1122#line 241 "charset_lookup.gperf"
│ │ │ │ -
1123 {(int)offsetof(struct stringpool_t, stringpool_str176), 45},
│ │ │ │ -
1124#line 353 "charset_lookup.gperf"
│ │ │ │ -
1125 {(int)offsetof(struct stringpool_t, stringpool_str177), 55},
│ │ │ │ -
1126#line 169 "charset_lookup.gperf"
│ │ │ │ -
1127 {(int)offsetof(struct stringpool_t, stringpool_str178), 45},
│ │ │ │ -
1128#line 150 "charset_lookup.gperf"
│ │ │ │ -
1129 {(int)offsetof(struct stringpool_t, stringpool_str179), 53},
│ │ │ │ -
1130 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1131#line 188 "charset_lookup.gperf"
│ │ │ │ -
1132 {(int)offsetof(struct stringpool_t, stringpool_str183), 49},
│ │ │ │ -
1133 {-1,-1},
│ │ │ │ -
1134#line 175 "charset_lookup.gperf"
│ │ │ │ -
1135 {(int)offsetof(struct stringpool_t, stringpool_str185), 55},
│ │ │ │ -
1136#line 128 "charset_lookup.gperf"
│ │ │ │ -
1137 {(int)offsetof(struct stringpool_t, stringpool_str186), 45},
│ │ │ │ -
1138 {-1,-1}, {-1,-1},
│ │ │ │ -
1139#line 370 "charset_lookup.gperf"
│ │ │ │ -
1140 {(int)offsetof(struct stringpool_t, stringpool_str189), 46},
│ │ │ │ -
1141#line 340 "charset_lookup.gperf"
│ │ │ │ -
1142 {(int)offsetof(struct stringpool_t, stringpool_str190), 51},
│ │ │ │ -
1143#line 190 "charset_lookup.gperf"
│ │ │ │ -
1144 {(int)offsetof(struct stringpool_t, stringpool_str191), 50},
│ │ │ │ -
1145#line 145 "charset_lookup.gperf"
│ │ │ │ -
1146 {(int)offsetof(struct stringpool_t, stringpool_str192), 52},
│ │ │ │ -
1147#line 138 "charset_lookup.gperf"
│ │ │ │ -
1148 {(int)offsetof(struct stringpool_t, stringpool_str193), 55},
│ │ │ │ -
1149#line 45 "charset_lookup.gperf"
│ │ │ │ -
1150 {(int)offsetof(struct stringpool_t, stringpool_str194), 26},
│ │ │ │ -
1151#line 49 "charset_lookup.gperf"
│ │ │ │ -
1152 {(int)offsetof(struct stringpool_t, stringpool_str195), 30},
│ │ │ │ -
1153#line 361 "charset_lookup.gperf"
│ │ │ │ -
1154 {(int)offsetof(struct stringpool_t, stringpool_str196), 61},
│ │ │ │ -
1155#line 302 "charset_lookup.gperf"
│ │ │ │ -
1156 {(int)offsetof(struct stringpool_t, stringpool_str197), 94},
│ │ │ │ -
1157#line 160 "charset_lookup.gperf"
│ │ │ │ -
1158 {(int)offsetof(struct stringpool_t, stringpool_str198), 49},
│ │ │ │ -
1159#line 292 "charset_lookup.gperf"
│ │ │ │ -
1160 {(int)offsetof(struct stringpool_t, stringpool_str199), 88},
│ │ │ │ -
1161#line 164 "charset_lookup.gperf"
│ │ │ │ -
1162 {(int)offsetof(struct stringpool_t, stringpool_str200), 62},
│ │ │ │ -
1163#line 161 "charset_lookup.gperf"
│ │ │ │ -
1164 {(int)offsetof(struct stringpool_t, stringpool_str201), 9},
│ │ │ │ -
1165#line 117 "charset_lookup.gperf"
│ │ │ │ -
1166 {(int)offsetof(struct stringpool_t, stringpool_str202), 0},
│ │ │ │ -
1167#line 379 "charset_lookup.gperf"
│ │ │ │ -
1168 {(int)offsetof(struct stringpool_t, stringpool_str203), 78},
│ │ │ │ -
1169#line 258 "charset_lookup.gperf"
│ │ │ │ -
1170 {(int)offsetof(struct stringpool_t, stringpool_str204), 15},
│ │ │ │ -
1171#line 380 "charset_lookup.gperf"
│ │ │ │ -
1172 {(int)offsetof(struct stringpool_t, stringpool_str205), 79},
│ │ │ │ -
1173 {-1,-1},
│ │ │ │ -
1174#line 31 "charset_lookup.gperf"
│ │ │ │ -
1175 {(int)offsetof(struct stringpool_t, stringpool_str207), 14},
│ │ │ │ -
1176#line 153 "charset_lookup.gperf"
│ │ │ │ -
1177 {(int)offsetof(struct stringpool_t, stringpool_str208), 45},
│ │ │ │ -
1178#line 38 "charset_lookup.gperf"
│ │ │ │ -
1179 {(int)offsetof(struct stringpool_t, stringpool_str209), 21},
│ │ │ │ -
1180#line 239 "charset_lookup.gperf"
│ │ │ │ -
1181 {(int)offsetof(struct stringpool_t, stringpool_str210), 52},
│ │ │ │ -
1182#line 35 "charset_lookup.gperf"
│ │ │ │ -
1183 {(int)offsetof(struct stringpool_t, stringpool_str211), 18},
│ │ │ │ -
1184#line 181 "charset_lookup.gperf"
│ │ │ │ -
1185 {(int)offsetof(struct stringpool_t, stringpool_str212), 45},
│ │ │ │ -
1186#line 331 "charset_lookup.gperf"
│ │ │ │ -
1187 {(int)offsetof(struct stringpool_t, stringpool_str213), 26},
│ │ │ │ -
1188#line 366 "charset_lookup.gperf"
│ │ │ │ -
1189 {(int)offsetof(struct stringpool_t, stringpool_str214), 30},
│ │ │ │ -
1190 {-1,-1},
│ │ │ │ -
1191#line 180 "charset_lookup.gperf"
│ │ │ │ -
1192 {(int)offsetof(struct stringpool_t, stringpool_str216), 45},
│ │ │ │ -
1193#line 349 "charset_lookup.gperf"
│ │ │ │ -
1194 {(int)offsetof(struct stringpool_t, stringpool_str217), 51},
│ │ │ │ -
1195#line 269 "charset_lookup.gperf"
│ │ │ │ -
1196 {(int)offsetof(struct stringpool_t, stringpool_str218), 83},
│ │ │ │ -
1197#line 24 "charset_lookup.gperf"
│ │ │ │ -
1198 {(int)offsetof(struct stringpool_t, stringpool_str219), 8},
│ │ │ │ -
1199#line 207 "charset_lookup.gperf"
│ │ │ │ -
1200 {(int)offsetof(struct stringpool_t, stringpool_str220), 62},
│ │ │ │ -
1201 {-1,-1}, {-1,-1},
│ │ │ │ -
1202#line 200 "charset_lookup.gperf"
│ │ │ │ -
1203 {(int)offsetof(struct stringpool_t, stringpool_str223), 55},
│ │ │ │ -
1204 {-1,-1},
│ │ │ │ -
1205#line 378 "charset_lookup.gperf"
│ │ │ │ -
1206 {(int)offsetof(struct stringpool_t, stringpool_str225), 74},
│ │ │ │ -
1207#line 320 "charset_lookup.gperf"
│ │ │ │ -
1208 {(int)offsetof(struct stringpool_t, stringpool_str226), 14},
│ │ │ │ -
1209#line 363 "charset_lookup.gperf"
│ │ │ │ -
1210 {(int)offsetof(struct stringpool_t, stringpool_str227), 0},
│ │ │ │ -
1211#line 327 "charset_lookup.gperf"
│ │ │ │ -
1212 {(int)offsetof(struct stringpool_t, stringpool_str228), 21},
│ │ │ │ -
1213#line 90 "charset_lookup.gperf"
│ │ │ │ -
1214 {(int)offsetof(struct stringpool_t, stringpool_str229), 55},
│ │ │ │ -
1215#line 324 "charset_lookup.gperf"
│ │ │ │ -
1216 {(int)offsetof(struct stringpool_t, stringpool_str230), 18},
│ │ │ │ -
1217#line 36 "charset_lookup.gperf"
│ │ │ │ -
1218 {(int)offsetof(struct stringpool_t, stringpool_str231), 19},
│ │ │ │ -
1219#line 120 "charset_lookup.gperf"
│ │ │ │ -
1220 {(int)offsetof(struct stringpool_t, stringpool_str232), 26},
│ │ │ │ -
1221#line 134 "charset_lookup.gperf"
│ │ │ │ -
1222 {(int)offsetof(struct stringpool_t, stringpool_str233), 51},
│ │ │ │ -
1223#line 237 "charset_lookup.gperf"
│ │ │ │ -
1224 {(int)offsetof(struct stringpool_t, stringpool_str234), 50},
│ │ │ │ -
1225#line 19 "charset_lookup.gperf"
│ │ │ │ -
1226 {(int)offsetof(struct stringpool_t, stringpool_str235), 5},
│ │ │ │ -
1227#line 266 "charset_lookup.gperf"
│ │ │ │ -
1228 {(int)offsetof(struct stringpool_t, stringpool_str236), 81},
│ │ │ │ -
1229#line 261 "charset_lookup.gperf"
│ │ │ │ -
1230 {(int)offsetof(struct stringpool_t, stringpool_str237), 13},
│ │ │ │ -
1231 {-1,-1},
│ │ │ │ -
1232#line 165 "charset_lookup.gperf"
│ │ │ │ -
1233 {(int)offsetof(struct stringpool_t, stringpool_str239), 9},
│ │ │ │ -
1234#line 129 "charset_lookup.gperf"
│ │ │ │ -
1235 {(int)offsetof(struct stringpool_t, stringpool_str240), 46},
│ │ │ │ -
1236 {-1,-1},
│ │ │ │ -
1237#line 142 "charset_lookup.gperf"
│ │ │ │ -
1238 {(int)offsetof(struct stringpool_t, stringpool_str242), 0},
│ │ │ │ -
1239#line 17 "charset_lookup.gperf"
│ │ │ │ -
1240 {(int)offsetof(struct stringpool_t, stringpool_str243), 5},
│ │ │ │ -
1241 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1242#line 147 "charset_lookup.gperf"
│ │ │ │ -
1243 {(int)offsetof(struct stringpool_t, stringpool_str247), 54},
│ │ │ │ -
1244#line 109 "charset_lookup.gperf"
│ │ │ │ -
1245 {(int)offsetof(struct stringpool_t, stringpool_str248), 55},
│ │ │ │ -
1246 {-1,-1},
│ │ │ │ -
1247#line 325 "charset_lookup.gperf"
│ │ │ │ -
1248 {(int)offsetof(struct stringpool_t, stringpool_str250), 19},
│ │ │ │ -
1249 {-1,-1},
│ │ │ │ -
1250#line 44 "charset_lookup.gperf"
│ │ │ │ -
1251 {(int)offsetof(struct stringpool_t, stringpool_str252), 25},
│ │ │ │ -
1252#line 39 "charset_lookup.gperf"
│ │ │ │ -
1253 {(int)offsetof(struct stringpool_t, stringpool_str253), 22},
│ │ │ │ -
1254 {-1,-1},
│ │ │ │ -
1255#line 103 "charset_lookup.gperf"
│ │ │ │ -
1256 {(int)offsetof(struct stringpool_t, stringpool_str255), 29},
│ │ │ │ -
1257 {-1,-1}, {-1,-1},
│ │ │ │ -
1258#line 91 "charset_lookup.gperf"
│ │ │ │ -
1259 {(int)offsetof(struct stringpool_t, stringpool_str258), 55},
│ │ │ │ -
1260 {-1,-1},
│ │ │ │ -
1261#line 43 "charset_lookup.gperf"
│ │ │ │ -
1262 {(int)offsetof(struct stringpool_t, stringpool_str260), 24},
│ │ │ │ -
1263#line 48 "charset_lookup.gperf"
│ │ │ │ -
1264 {(int)offsetof(struct stringpool_t, stringpool_str261), 29},
│ │ │ │ -
1265#line 50 "charset_lookup.gperf"
│ │ │ │ -
1266 {(int)offsetof(struct stringpool_t, stringpool_str262), 31},
│ │ │ │ -
1267#line 192 "charset_lookup.gperf"
│ │ │ │ -
1268 {(int)offsetof(struct stringpool_t, stringpool_str263), 51},
│ │ │ │ -
1269 {-1,-1},
│ │ │ │ -
1270#line 34 "charset_lookup.gperf"
│ │ │ │ -
1271 {(int)offsetof(struct stringpool_t, stringpool_str265), 17},
│ │ │ │ -
1272#line 242 "charset_lookup.gperf"
│ │ │ │ -
1273 {(int)offsetof(struct stringpool_t, stringpool_str266), 46},
│ │ │ │ -
1274 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1275#line 182 "charset_lookup.gperf"
│ │ │ │ -
1276 {(int)offsetof(struct stringpool_t, stringpool_str270), 46},
│ │ │ │ -
1277#line 330 "charset_lookup.gperf"
│ │ │ │ -
1278 {(int)offsetof(struct stringpool_t, stringpool_str271), 25},
│ │ │ │ -
1279 {-1,-1},
│ │ │ │ -
1280#line 46 "charset_lookup.gperf"
│ │ │ │ -
1281 {(int)offsetof(struct stringpool_t, stringpool_str273), 27},
│ │ │ │ -
1282#line 79 "charset_lookup.gperf"
│ │ │ │ -
1283 {(int)offsetof(struct stringpool_t, stringpool_str274), 65},
│ │ │ │ -
1284#line 98 "charset_lookup.gperf"
│ │ │ │ -
1285 {(int)offsetof(struct stringpool_t, stringpool_str275), 33},
│ │ │ │ -
1286 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1287#line 329 "charset_lookup.gperf"
│ │ │ │ -
1288 {(int)offsetof(struct stringpool_t, stringpool_str279), 24},
│ │ │ │ -
1289#line 365 "charset_lookup.gperf"
│ │ │ │ -
1290 {(int)offsetof(struct stringpool_t, stringpool_str280), 29},
│ │ │ │ -
1291#line 367 "charset_lookup.gperf"
│ │ │ │ -
1292 {(int)offsetof(struct stringpool_t, stringpool_str281), 31},
│ │ │ │ -
1293 {-1,-1},
│ │ │ │ -
1294#line 94 "charset_lookup.gperf"
│ │ │ │ -
1295 {(int)offsetof(struct stringpool_t, stringpool_str283), 33},
│ │ │ │ -
1296#line 323 "charset_lookup.gperf"
│ │ │ │ -
1297 {(int)offsetof(struct stringpool_t, stringpool_str284), 17},
│ │ │ │ -
1298#line 89 "charset_lookup.gperf"
│ │ │ │ -
1299 {(int)offsetof(struct stringpool_t, stringpool_str285), 54},
│ │ │ │ -
1300 {-1,-1}, {-1,-1},
│ │ │ │ -
1301#line 334 "charset_lookup.gperf"
│ │ │ │ -
1302 {(int)offsetof(struct stringpool_t, stringpool_str288), 33},
│ │ │ │ -
1303#line 32 "charset_lookup.gperf"
│ │ │ │ -
1304 {(int)offsetof(struct stringpool_t, stringpool_str289), 15},
│ │ │ │ -
1305#line 119 "charset_lookup.gperf"
│ │ │ │ -
1306 {(int)offsetof(struct stringpool_t, stringpool_str290), 25},
│ │ │ │ -
1307#line 61 "charset_lookup.gperf"
│ │ │ │ -
1308 {(int)offsetof(struct stringpool_t, stringpool_str291), 60},
│ │ │ │ -
1309#line 332 "charset_lookup.gperf"
│ │ │ │ -
1310 {(int)offsetof(struct stringpool_t, stringpool_str292), 27},
│ │ │ │ -
1311#line 166 "charset_lookup.gperf"
│ │ │ │ -
1312 {(int)offsetof(struct stringpool_t, stringpool_str293), 58},
│ │ │ │ -
1313#line 51 "charset_lookup.gperf"
│ │ │ │ -
1314 {(int)offsetof(struct stringpool_t, stringpool_str294), 88},
│ │ │ │ -
1315#line 96 "charset_lookup.gperf"
│ │ │ │ -
1316 {(int)offsetof(struct stringpool_t, stringpool_str295), 10},
│ │ │ │ -
1317 {-1,-1},
│ │ │ │ -
1318#line 286 "charset_lookup.gperf"
│ │ │ │ -
1319 {(int)offsetof(struct stringpool_t, stringpool_str297), 87},
│ │ │ │ -
1320#line 118 "charset_lookup.gperf"
│ │ │ │ -
1321 {(int)offsetof(struct stringpool_t, stringpool_str298), 24},
│ │ │ │ -
1322 {-1,-1}, {-1,-1},
│ │ │ │ -
1323#line 108 "charset_lookup.gperf"
│ │ │ │ -
1324 {(int)offsetof(struct stringpool_t, stringpool_str301), 55},
│ │ │ │ -
1325#line 167 "charset_lookup.gperf"
│ │ │ │ -
1326 {(int)offsetof(struct stringpool_t, stringpool_str302), 88},
│ │ │ │ -
1327#line 92 "charset_lookup.gperf"
│ │ │ │ -
1328 {(int)offsetof(struct stringpool_t, stringpool_str303), 10},
│ │ │ │ -
1329#line 278 "charset_lookup.gperf"
│ │ │ │ -
1330 {(int)offsetof(struct stringpool_t, stringpool_str304), 61},
│ │ │ │ -
1331#line 376 "charset_lookup.gperf"
│ │ │ │ -
1332 {(int)offsetof(struct stringpool_t, stringpool_str305), 69},
│ │ │ │ -
1333#line 238 "charset_lookup.gperf"
│ │ │ │ -
1334 {(int)offsetof(struct stringpool_t, stringpool_str306), 51},
│ │ │ │ -
1335#line 30 "charset_lookup.gperf"
│ │ │ │ -
1336 {(int)offsetof(struct stringpool_t, stringpool_str307), 13},
│ │ │ │ -
1337#line 321 "charset_lookup.gperf"
│ │ │ │ -
1338 {(int)offsetof(struct stringpool_t, stringpool_str308), 15},
│ │ │ │ -
1339#line 284 "charset_lookup.gperf"
│ │ │ │ -
1340 {(int)offsetof(struct stringpool_t, stringpool_str309), 2},
│ │ │ │ -
1341#line 69 "charset_lookup.gperf"
│ │ │ │ -
1342 {(int)offsetof(struct stringpool_t, stringpool_str310), 0},
│ │ │ │ -
1343 {-1,-1},
│ │ │ │ -
1344#line 277 "charset_lookup.gperf"
│ │ │ │ -
1345 {(int)offsetof(struct stringpool_t, stringpool_str312), 61},
│ │ │ │ -
1346#line 275 "charset_lookup.gperf"
│ │ │ │ -
1347 {(int)offsetof(struct stringpool_t, stringpool_str313), 85},
│ │ │ │ -
1348#line 73 "charset_lookup.gperf"
│ │ │ │ -
1349 {(int)offsetof(struct stringpool_t, stringpool_str314), 57},
│ │ │ │ -
1350 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1351#line 104 "charset_lookup.gperf"
│ │ │ │ -
1352 {(int)offsetof(struct stringpool_t, stringpool_str318), 9},
│ │ │ │ -
1353#line 47 "charset_lookup.gperf"
│ │ │ │ -
1354 {(int)offsetof(struct stringpool_t, stringpool_str319), 28},
│ │ │ │ -
1355#line 16 "charset_lookup.gperf"
│ │ │ │ -
1356 {(int)offsetof(struct stringpool_t, stringpool_str320), 54},
│ │ │ │ -
1357#line 37 "charset_lookup.gperf"
│ │ │ │ -
1358 {(int)offsetof(struct stringpool_t, stringpool_str321), 20},
│ │ │ │ -
1359 {-1,-1}, {-1,-1},
│ │ │ │ -
1360#line 222 "charset_lookup.gperf"
│ │ │ │ -
1361 {(int)offsetof(struct stringpool_t, stringpool_str324), 67},
│ │ │ │ -
1362 {-1,-1},
│ │ │ │ -
1363#line 319 "charset_lookup.gperf"
│ │ │ │ -
1364 {(int)offsetof(struct stringpool_t, stringpool_str326), 13},
│ │ │ │ -
1365 {-1,-1}, {-1,-1},
│ │ │ │ -
1366#line 111 "charset_lookup.gperf"
│ │ │ │ -
1367 {(int)offsetof(struct stringpool_t, stringpool_str329), 83},
│ │ │ │ -
1368 {-1,-1},
│ │ │ │ -
1369#line 265 "charset_lookup.gperf"
│ │ │ │ -
1370 {(int)offsetof(struct stringpool_t, stringpool_str331), 84},
│ │ │ │ -
1371 {-1,-1},
│ │ │ │ -
1372#line 87 "charset_lookup.gperf"
│ │ │ │ -
1373 {(int)offsetof(struct stringpool_t, stringpool_str333), 94},
│ │ │ │ -
1374#line 74 "charset_lookup.gperf"
│ │ │ │ -
1375 {(int)offsetof(struct stringpool_t, stringpool_str334), 45},
│ │ │ │ -
1376#line 225 "charset_lookup.gperf"
│ │ │ │ -
1377 {(int)offsetof(struct stringpool_t, stringpool_str335), 59},
│ │ │ │ -
1378#line 270 "charset_lookup.gperf"
│ │ │ │ -
1379 {(int)offsetof(struct stringpool_t, stringpool_str336), 84},
│ │ │ │ -
1380#line 159 "charset_lookup.gperf"
│ │ │ │ -
1381 {(int)offsetof(struct stringpool_t, stringpool_str337), 48},
│ │ │ │ -
1382#line 364 "charset_lookup.gperf"
│ │ │ │ -
1383 {(int)offsetof(struct stringpool_t, stringpool_str338), 28},
│ │ │ │ -
1384#line 218 "charset_lookup.gperf"
│ │ │ │ -
1385 {(int)offsetof(struct stringpool_t, stringpool_str339), 22},
│ │ │ │ -
1386#line 326 "charset_lookup.gperf"
│ │ │ │ -
1387 {(int)offsetof(struct stringpool_t, stringpool_str340), 20},
│ │ │ │ -
1388 {-1,-1},
│ │ │ │ -
1389#line 14 "charset_lookup.gperf"
│ │ │ │ -
1390 {(int)offsetof(struct stringpool_t, stringpool_str342), 4},
│ │ │ │ -
1391 {-1,-1}, {-1,-1},
│ │ │ │ -
1392#line 178 "charset_lookup.gperf"
│ │ │ │ -
1393 {(int)offsetof(struct stringpool_t, stringpool_str345), 88},
│ │ │ │ -
1394 {-1,-1},
│ │ │ │ -
1395#line 274 "charset_lookup.gperf"
│ │ │ │ -
1396 {(int)offsetof(struct stringpool_t, stringpool_str347), 85},
│ │ │ │ -
1397 {-1,-1},
│ │ │ │ -
1398#line 97 "charset_lookup.gperf"
│ │ │ │ -
1399 {(int)offsetof(struct stringpool_t, stringpool_str349), 32},
│ │ │ │ -
1400#line 301 "charset_lookup.gperf"
│ │ │ │ -
1401 {(int)offsetof(struct stringpool_t, stringpool_str350), 1},
│ │ │ │ -
1402#line 315 "charset_lookup.gperf"
│ │ │ │ -
1403 {(int)offsetof(struct stringpool_t, stringpool_str351), 64},
│ │ │ │ -
1404#line 102 "charset_lookup.gperf"
│ │ │ │ -
1405 {(int)offsetof(struct stringpool_t, stringpool_str352), 10},
│ │ │ │ -
1406#line 316 "charset_lookup.gperf"
│ │ │ │ -
1407 {(int)offsetof(struct stringpool_t, stringpool_str353), 62},
│ │ │ │ -
1408#line 126 "charset_lookup.gperf"
│ │ │ │ -
1409 {(int)offsetof(struct stringpool_t, stringpool_str354), 44},
│ │ │ │ -
1410#line 260 "charset_lookup.gperf"
│ │ │ │ -
1411 {(int)offsetof(struct stringpool_t, stringpool_str355), 14},
│ │ │ │ -
1412#line 124 "charset_lookup.gperf"
│ │ │ │ -
1413 {(int)offsetof(struct stringpool_t, stringpool_str356), 42},
│ │ │ │ -
1414#line 93 "charset_lookup.gperf"
│ │ │ │ -
1415 {(int)offsetof(struct stringpool_t, stringpool_str357), 32},
│ │ │ │ -
1416#line 299 "charset_lookup.gperf"
│ │ │ │ -
1417 {(int)offsetof(struct stringpool_t, stringpool_str358), 1},
│ │ │ │ -
1418#line 303 "charset_lookup.gperf"
│ │ │ │ -
1419 {(int)offsetof(struct stringpool_t, stringpool_str359), 94},
│ │ │ │ -
1420#line 40 "charset_lookup.gperf"
│ │ │ │ -
1421 {(int)offsetof(struct stringpool_t, stringpool_str360), 88},
│ │ │ │ -
1422#line 33 "charset_lookup.gperf"
│ │ │ │ -
1423 {(int)offsetof(struct stringpool_t, stringpool_str361), 16},
│ │ │ │ -
1424#line 333 "charset_lookup.gperf"
│ │ │ │ -
1425 {(int)offsetof(struct stringpool_t, stringpool_str362), 32},
│ │ │ │ -
1426 {-1,-1},
│ │ │ │ -
1427#line 377 "charset_lookup.gperf"
│ │ │ │ -
1428 {(int)offsetof(struct stringpool_t, stringpool_str364), 73},
│ │ │ │ -
1429#line 293 "charset_lookup.gperf"
│ │ │ │ -
1430 {(int)offsetof(struct stringpool_t, stringpool_str365), 88},
│ │ │ │ -
1431#line 271 "charset_lookup.gperf"
│ │ │ │ -
1432 {(int)offsetof(struct stringpool_t, stringpool_str366), 84},
│ │ │ │ -
1433 {-1,-1},
│ │ │ │ -
1434#line 72 "charset_lookup.gperf"
│ │ │ │ -
1435 {(int)offsetof(struct stringpool_t, stringpool_str368), 52},
│ │ │ │ -
1436#line 279 "charset_lookup.gperf"
│ │ │ │ -
1437 {(int)offsetof(struct stringpool_t, stringpool_str369), 61},
│ │ │ │ -
1438 {-1,-1},
│ │ │ │ -
1439#line 52 "charset_lookup.gperf"
│ │ │ │ -
1440 {(int)offsetof(struct stringpool_t, stringpool_str371), 5},
│ │ │ │ -
1441 {-1,-1}, {-1,-1},
│ │ │ │ -
1442#line 121 "charset_lookup.gperf"
│ │ │ │ -
1443 {(int)offsetof(struct stringpool_t, stringpool_str374), 39},
│ │ │ │ -
1444 {-1,-1}, {-1,-1},
│ │ │ │ -
1445#line 41 "charset_lookup.gperf"
│ │ │ │ -
1446 {(int)offsetof(struct stringpool_t, stringpool_str377), 23},
│ │ │ │ -
1447 {-1,-1},
│ │ │ │ -
1448#line 26 "charset_lookup.gperf"
│ │ │ │ -
1449 {(int)offsetof(struct stringpool_t, stringpool_str379), 5},
│ │ │ │ -
1450#line 322 "charset_lookup.gperf"
│ │ │ │ -
1451 {(int)offsetof(struct stringpool_t, stringpool_str380), 16},
│ │ │ │ -
1452#line 13 "charset_lookup.gperf"
│ │ │ │ -
1453 {(int)offsetof(struct stringpool_t, stringpool_str381), 54},
│ │ │ │ -
1454 {-1,-1},
│ │ │ │ -
1455#line 317 "charset_lookup.gperf"
│ │ │ │ -
1456 {(int)offsetof(struct stringpool_t, stringpool_str383), 60},
│ │ │ │ -
1457#line 60 "charset_lookup.gperf"
│ │ │ │ -
1458 {(int)offsetof(struct stringpool_t, stringpool_str384), 58},
│ │ │ │ -
1459 {-1,-1}, {-1,-1},
│ │ │ │ -
1460#line 101 "charset_lookup.gperf"
│ │ │ │ -
1461 {(int)offsetof(struct stringpool_t, stringpool_str387), 35},
│ │ │ │ -
1462 {-1,-1},
│ │ │ │ -
1463#line 285 "charset_lookup.gperf"
│ │ │ │ -
1464 {(int)offsetof(struct stringpool_t, stringpool_str389), 86},
│ │ │ │ -
1465 {-1,-1}, {-1,-1},
│ │ │ │ -
1466#line 70 "charset_lookup.gperf"
│ │ │ │ -
1467 {(int)offsetof(struct stringpool_t, stringpool_str392), 50},
│ │ │ │ -
1468#line 107 "charset_lookup.gperf"
│ │ │ │ -
1469 {(int)offsetof(struct stringpool_t, stringpool_str393), 37},
│ │ │ │ -
1470#line 227 "charset_lookup.gperf"
│ │ │ │ -
1471 {(int)offsetof(struct stringpool_t, stringpool_str394), 59},
│ │ │ │ -
1472#line 29 "charset_lookup.gperf"
│ │ │ │ -
1473 {(int)offsetof(struct stringpool_t, stringpool_str395), 12},
│ │ │ │ -
1474#line 328 "charset_lookup.gperf"
│ │ │ │ -
1475 {(int)offsetof(struct stringpool_t, stringpool_str396), 23},
│ │ │ │ -
1476#line 125 "charset_lookup.gperf"
│ │ │ │ -
1477 {(int)offsetof(struct stringpool_t, stringpool_str397), 43},
│ │ │ │ -
1478#line 115 "charset_lookup.gperf"
│ │ │ │ -
1479 {(int)offsetof(struct stringpool_t, stringpool_str398), 88},
│ │ │ │ -
1480 {-1,-1}, {-1,-1},
│ │ │ │ -
1481#line 283 "charset_lookup.gperf"
│ │ │ │ -
1482 {(int)offsetof(struct stringpool_t, stringpool_str401), 3},
│ │ │ │ -
1483#line 288 "charset_lookup.gperf"
│ │ │ │ -
1484 {(int)offsetof(struct stringpool_t, stringpool_str402), 3},
│ │ │ │ -
1485 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1486#line 209 "charset_lookup.gperf"
│ │ │ │ -
1487 {(int)offsetof(struct stringpool_t, stringpool_str409), 58},
│ │ │ │ -
1488 {-1,-1},
│ │ │ │ -
1489#line 259 "charset_lookup.gperf"
│ │ │ │ -
1490 {(int)offsetof(struct stringpool_t, stringpool_str411), 19},
│ │ │ │ -
1491 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1492#line 116 "charset_lookup.gperf"
│ │ │ │ -
1493 {(int)offsetof(struct stringpool_t, stringpool_str415), 23},
│ │ │ │ -
1494 {-1,-1}, {-1,-1},
│ │ │ │ -
1495#line 244 "charset_lookup.gperf"
│ │ │ │ -
1496 {(int)offsetof(struct stringpool_t, stringpool_str418), 69},
│ │ │ │ -
1497 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1498#line 295 "charset_lookup.gperf"
│ │ │ │ -
1499 {(int)offsetof(struct stringpool_t, stringpool_str422), 90},
│ │ │ │ -
1500 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1501#line 123 "charset_lookup.gperf"
│ │ │ │ -
1502 {(int)offsetof(struct stringpool_t, stringpool_str428), 41},
│ │ │ │ -
1503#line 28 "charset_lookup.gperf"
│ │ │ │ -
1504 {(int)offsetof(struct stringpool_t, stringpool_str429), 11},
│ │ │ │ -
1505 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1506#line 306 "charset_lookup.gperf"
│ │ │ │ -
1507 {(int)offsetof(struct stringpool_t, stringpool_str434), 14},
│ │ │ │ -
1508#line 313 "charset_lookup.gperf"
│ │ │ │ -
1509 {(int)offsetof(struct stringpool_t, stringpool_str435), 21},
│ │ │ │ -
1510#line 310 "charset_lookup.gperf"
│ │ │ │ -
1511 {(int)offsetof(struct stringpool_t, stringpool_str436), 18},
│ │ │ │ -
1512 {-1,-1},
│ │ │ │ -
1513#line 75 "charset_lookup.gperf"
│ │ │ │ -
1514 {(int)offsetof(struct stringpool_t, stringpool_str438), 54},
│ │ │ │ -
1515 {-1,-1}, {-1,-1},
│ │ │ │ -
1516#line 263 "charset_lookup.gperf"
│ │ │ │ -
1517 {(int)offsetof(struct stringpool_t, stringpool_str441), 18},
│ │ │ │ -
1518 {-1,-1}, {-1,-1},
│ │ │ │ -
1519#line 88 "charset_lookup.gperf"
│ │ │ │ -
1520 {(int)offsetof(struct stringpool_t, stringpool_str444), 53},
│ │ │ │ -
1521#line 210 "charset_lookup.gperf"
│ │ │ │ -
1522 {(int)offsetof(struct stringpool_t, stringpool_str445), 62},
│ │ │ │ -
1523#line 311 "charset_lookup.gperf"
│ │ │ │ -
1524 {(int)offsetof(struct stringpool_t, stringpool_str446), 19},
│ │ │ │ -
1525 {-1,-1},
│ │ │ │ -
1526#line 226 "charset_lookup.gperf"
│ │ │ │ -
1527 {(int)offsetof(struct stringpool_t, stringpool_str448), 59},
│ │ │ │ -
1528 {-1,-1},
│ │ │ │ -
1529#line 287 "charset_lookup.gperf"
│ │ │ │ -
1530 {(int)offsetof(struct stringpool_t, stringpool_str450), 30},
│ │ │ │ -
1531 {-1,-1},
│ │ │ │ -
1532#line 22 "charset_lookup.gperf"
│ │ │ │ -
1533 {(int)offsetof(struct stringpool_t, stringpool_str452), 5},
│ │ │ │ -
1534 {-1,-1},
│ │ │ │ -
1535#line 27 "charset_lookup.gperf"
│ │ │ │ -
1536 {(int)offsetof(struct stringpool_t, stringpool_str454), 10},
│ │ │ │ -
1537#line 106 "charset_lookup.gperf"
│ │ │ │ -
1538 {(int)offsetof(struct stringpool_t, stringpool_str455), 36},
│ │ │ │ -
1539 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1540#line 18 "charset_lookup.gperf"
│ │ │ │ -
1541 {(int)offsetof(struct stringpool_t, stringpool_str460), 5},
│ │ │ │ -
1542#line 59 "charset_lookup.gperf"
│ │ │ │ -
1543 {(int)offsetof(struct stringpool_t, stringpool_str461), 26},
│ │ │ │ -
1544#line 300 "charset_lookup.gperf"
│ │ │ │ -
1545 {(int)offsetof(struct stringpool_t, stringpool_str462), 93},
│ │ │ │ -
1546#line 309 "charset_lookup.gperf"
│ │ │ │ -
1547 {(int)offsetof(struct stringpool_t, stringpool_str463), 17},
│ │ │ │ -
1548#line 71 "charset_lookup.gperf"
│ │ │ │ -
1549 {(int)offsetof(struct stringpool_t, stringpool_str464), 51},
│ │ │ │ -
1550#line 289 "charset_lookup.gperf"
│ │ │ │ -
1551 {(int)offsetof(struct stringpool_t, stringpool_str465), 93},
│ │ │ │ -
1552 {-1,-1},
│ │ │ │ -
1553#line 66 "charset_lookup.gperf"
│ │ │ │ -
1554 {(int)offsetof(struct stringpool_t, stringpool_str467), 9},
│ │ │ │ -
1555 {-1,-1}, {-1,-1},
│ │ │ │ -
1556#line 298 "charset_lookup.gperf"
│ │ │ │ -
1557 {(int)offsetof(struct stringpool_t, stringpool_str470), 93},
│ │ │ │ -
1558 {-1,-1},
│ │ │ │ -
1559#line 105 "charset_lookup.gperf"
│ │ │ │ -
1560 {(int)offsetof(struct stringpool_t, stringpool_str472), 8},
│ │ │ │ -
1561 {-1,-1},
│ │ │ │ -
1562#line 65 "charset_lookup.gperf"
│ │ │ │ -
1563 {(int)offsetof(struct stringpool_t, stringpool_str474), 44},
│ │ │ │ -
1564#line 307 "charset_lookup.gperf"
│ │ │ │ -
1565 {(int)offsetof(struct stringpool_t, stringpool_str475), 15},
│ │ │ │ -
1566#line 223 "charset_lookup.gperf"
│ │ │ │ -
1567 {(int)offsetof(struct stringpool_t, stringpool_str476), 68},
│ │ │ │ -
1568 {-1,-1}, {-1,-1},
│ │ │ │ -
1569#line 203 "charset_lookup.gperf"
│ │ │ │ -
1570 {(int)offsetof(struct stringpool_t, stringpool_str479), 56},
│ │ │ │ -
1571#line 197 "charset_lookup.gperf"
│ │ │ │ -
1572 {(int)offsetof(struct stringpool_t, stringpool_str480), 53},
│ │ │ │ -
1573 {-1,-1}, {-1,-1},
│ │ │ │ -
1574#line 205 "charset_lookup.gperf"
│ │ │ │ -
1575 {(int)offsetof(struct stringpool_t, stringpool_str483), 57},
│ │ │ │ -
1576#line 305 "charset_lookup.gperf"
│ │ │ │ -
1577 {(int)offsetof(struct stringpool_t, stringpool_str484), 13},
│ │ │ │ -
1578#line 251 "charset_lookup.gperf"
│ │ │ │ -
1579 {(int)offsetof(struct stringpool_t, stringpool_str485), 76},
│ │ │ │ -
1580#line 77 "charset_lookup.gperf"
│ │ │ │ -
1581 {(int)offsetof(struct stringpool_t, stringpool_str486), 55},
│ │ │ │ -
1582#line 122 "charset_lookup.gperf"
│ │ │ │ -
1583 {(int)offsetof(struct stringpool_t, stringpool_str487), 40},
│ │ │ │ -
1584#line 211 "charset_lookup.gperf"
│ │ │ │ -
1585 {(int)offsetof(struct stringpool_t, stringpool_str488), 64},
│ │ │ │ -
1586#line 208 "charset_lookup.gperf"
│ │ │ │ -
1587 {(int)offsetof(struct stringpool_t, stringpool_str489), 64},
│ │ │ │ -
1588#line 212 "charset_lookup.gperf"
│ │ │ │ -
1589 {(int)offsetof(struct stringpool_t, stringpool_str490), 62},
│ │ │ │ -
1590#line 312 "charset_lookup.gperf"
│ │ │ │ -
1591 {(int)offsetof(struct stringpool_t, stringpool_str491), 20},
│ │ │ │ -
1592 {-1,-1}, {-1,-1},
│ │ │ │ -
1593#line 62 "charset_lookup.gperf"
│ │ │ │ -
1594 {(int)offsetof(struct stringpool_t, stringpool_str494), 39},
│ │ │ │ -
1595 {-1,-1},
│ │ │ │ -
1596#line 262 "charset_lookup.gperf"
│ │ │ │ -
1597 {(int)offsetof(struct stringpool_t, stringpool_str496), 16},
│ │ │ │ -
1598 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1599#line 100 "charset_lookup.gperf"
│ │ │ │ -
1600 {(int)offsetof(struct stringpool_t, stringpool_str500), 32},
│ │ │ │ -
1601 {-1,-1}, {-1,-1},
│ │ │ │ -
1602#line 221 "charset_lookup.gperf"
│ │ │ │ -
1603 {(int)offsetof(struct stringpool_t, stringpool_str503), 66},
│ │ │ │ -
1604#line 280 "charset_lookup.gperf"
│ │ │ │ -
1605 {(int)offsetof(struct stringpool_t, stringpool_str504), 61},
│ │ │ │ -
1606#line 253 "charset_lookup.gperf"
│ │ │ │ -
1607 {(int)offsetof(struct stringpool_t, stringpool_str505), 69},
│ │ │ │ -
1608#line 314 "charset_lookup.gperf"
│ │ │ │ -
1609 {(int)offsetof(struct stringpool_t, stringpool_str506), 27},
│ │ │ │ -
1610#line 195 "charset_lookup.gperf"
│ │ │ │ -
1611 {(int)offsetof(struct stringpool_t, stringpool_str507), 52},
│ │ │ │ -
1612 {-1,-1},
│ │ │ │ -
1613#line 80 "charset_lookup.gperf"
│ │ │ │ -
1614 {(int)offsetof(struct stringpool_t, stringpool_str509), 59},
│ │ │ │ -
1615 {-1,-1},
│ │ │ │ -
1616#line 308 "charset_lookup.gperf"
│ │ │ │ -
1617 {(int)offsetof(struct stringpool_t, stringpool_str511), 16},
│ │ │ │ -
1618 {-1,-1}, {-1,-1},
│ │ │ │ -
1619#line 294 "charset_lookup.gperf"
│ │ │ │ -
1620 {(int)offsetof(struct stringpool_t, stringpool_str514), 89},
│ │ │ │ -
1621#line 68 "charset_lookup.gperf"
│ │ │ │ -
1622 {(int)offsetof(struct stringpool_t, stringpool_str515), 62},
│ │ │ │ -
1623#line 64 "charset_lookup.gperf"
│ │ │ │ -
1624 {(int)offsetof(struct stringpool_t, stringpool_str516), 43},
│ │ │ │ -
1625 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1626#line 215 "charset_lookup.gperf"
│ │ │ │ -
1627 {(int)offsetof(struct stringpool_t, stringpool_str520), 60},
│ │ │ │ -
1628#line 254 "charset_lookup.gperf"
│ │ │ │ -
1629 {(int)offsetof(struct stringpool_t, stringpool_str521), 77},
│ │ │ │ -
1630#line 85 "charset_lookup.gperf"
│ │ │ │ -
1631 {(int)offsetof(struct stringpool_t, stringpool_str522), 3},
│ │ │ │ -
1632#line 255 "charset_lookup.gperf"
│ │ │ │ -
1633 {(int)offsetof(struct stringpool_t, stringpool_str523), 78},
│ │ │ │ -
1634 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1635#line 297 "charset_lookup.gperf"
│ │ │ │ -
1636 {(int)offsetof(struct stringpool_t, stringpool_str528), 92},
│ │ │ │ -
1637 {-1,-1}, {-1,-1},
│ │ │ │ -
1638#line 58 "charset_lookup.gperf"
│ │ │ │ -
1639 {(int)offsetof(struct stringpool_t, stringpool_str531), 83},
│ │ │ │ -
1640 {-1,-1}, {-1,-1},
│ │ │ │ -
1641#line 189 "charset_lookup.gperf"
│ │ │ │ -
1642 {(int)offsetof(struct stringpool_t, stringpool_str534), 0},
│ │ │ │ -
1643 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1644#line 21 "charset_lookup.gperf"
│ │ │ │ -
1645 {(int)offsetof(struct stringpool_t, stringpool_str541), 6},
│ │ │ │ -
1646 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1647#line 199 "charset_lookup.gperf"
│ │ │ │ -
1648 {(int)offsetof(struct stringpool_t, stringpool_str546), 54},
│ │ │ │ -
1649#line 216 "charset_lookup.gperf"
│ │ │ │ -
1650 {(int)offsetof(struct stringpool_t, stringpool_str547), 60},
│ │ │ │ -
1651#line 63 "charset_lookup.gperf"
│ │ │ │ -
1652 {(int)offsetof(struct stringpool_t, stringpool_str548), 41},
│ │ │ │ -
1653#line 20 "charset_lookup.gperf"
│ │ │ │ -
1654 {(int)offsetof(struct stringpool_t, stringpool_str549), 6},
│ │ │ │ -
1655 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1656#line 84 "charset_lookup.gperf"
│ │ │ │ -
1657 {(int)offsetof(struct stringpool_t, stringpool_str553), 84},
│ │ │ │ -
1658 {-1,-1},
│ │ │ │ -
1659#line 193 "charset_lookup.gperf"
│ │ │ │ -
1660 {(int)offsetof(struct stringpool_t, stringpool_str555), 51},
│ │ │ │ -
1661 {-1,-1},
│ │ │ │ -
1662#line 214 "charset_lookup.gperf"
│ │ │ │ -
1663 {(int)offsetof(struct stringpool_t, stringpool_str557), 62},
│ │ │ │ -
1664 {-1,-1}, {-1,-1},
│ │ │ │ -
1665#line 78 "charset_lookup.gperf"
│ │ │ │ -
1666 {(int)offsetof(struct stringpool_t, stringpool_str560), 56},
│ │ │ │ -
1667#line 76 "charset_lookup.gperf"
│ │ │ │ -
1668 {(int)offsetof(struct stringpool_t, stringpool_str561), 53},
│ │ │ │ -
1669 {-1,-1},
│ │ │ │ -
1670#line 141 "charset_lookup.gperf"
│ │ │ │ -
1671 {(int)offsetof(struct stringpool_t, stringpool_str563), 47},
│ │ │ │ -
1672#line 113 "charset_lookup.gperf"
│ │ │ │ -
1673 {(int)offsetof(struct stringpool_t, stringpool_str564), 38},
│ │ │ │ -
1674 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1675#line 11 "charset_lookup.gperf"
│ │ │ │ -
1676 {(int)offsetof(struct stringpool_t, stringpool_str571), 88},
│ │ │ │ -
1677#line 110 "charset_lookup.gperf"
│ │ │ │ -
1678 {(int)offsetof(struct stringpool_t, stringpool_str572), 56},
│ │ │ │ -
1679 {-1,-1}, {-1,-1},
│ │ │ │ -
1680#line 191 "charset_lookup.gperf"
│ │ │ │ -
1681 {(int)offsetof(struct stringpool_t, stringpool_str575), 50},
│ │ │ │ -
1682 {-1,-1},
│ │ │ │ -
1683#line 67 "charset_lookup.gperf"
│ │ │ │ -
1684 {(int)offsetof(struct stringpool_t, stringpool_str577), 8},
│ │ │ │ -
1685 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1686#line 56 "charset_lookup.gperf"
│ │ │ │ -
1687 {(int)offsetof(struct stringpool_t, stringpool_str581), 10},
│ │ │ │ -
1688#line 12 "charset_lookup.gperf"
│ │ │ │ -
1689 {(int)offsetof(struct stringpool_t, stringpool_str582), 88},
│ │ │ │ -
1690#line 86 "charset_lookup.gperf"
│ │ │ │ -
1691 {(int)offsetof(struct stringpool_t, stringpool_str583), 93},
│ │ │ │ -
1692#line 213 "charset_lookup.gperf"
│ │ │ │ -
1693 {(int)offsetof(struct stringpool_t, stringpool_str584), 62},
│ │ │ │ -
1694 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1695#line 201 "charset_lookup.gperf"
│ │ │ │ -
1696 {(int)offsetof(struct stringpool_t, stringpool_str591), 55},
│ │ │ │ -
1697 {-1,-1}, {-1,-1},
│ │ │ │ -
1698#line 99 "charset_lookup.gperf"
│ │ │ │ -
1699 {(int)offsetof(struct stringpool_t, stringpool_str594), 34},
│ │ │ │ -
1700 {-1,-1},
│ │ │ │ -
1701#line 53 "charset_lookup.gperf"
│ │ │ │ -
1702 {(int)offsetof(struct stringpool_t, stringpool_str596), 33},
│ │ │ │ -
1703 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1704#line 95 "charset_lookup.gperf"
│ │ │ │ -
1705 {(int)offsetof(struct stringpool_t, stringpool_str602), 34},
│ │ │ │ -
1706 {-1,-1}, {-1,-1},
│ │ │ │ -
1707#line 247 "charset_lookup.gperf"
│ │ │ │ -
1708 {(int)offsetof(struct stringpool_t, stringpool_str605), 72},
│ │ │ │ -
1709 {-1,-1},
│ │ │ │ -
1710#line 335 "charset_lookup.gperf"
│ │ │ │ -
1711 {(int)offsetof(struct stringpool_t, stringpool_str607), 34},
│ │ │ │ -
1712 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1713#line 282 "charset_lookup.gperf"
│ │ │ │ -
1714 {(int)offsetof(struct stringpool_t, stringpool_str614), 61},
│ │ │ │ -
1715 {-1,-1}, {-1,-1},
│ │ │ │ -
1716#line 249 "charset_lookup.gperf"
│ │ │ │ -
1717 {(int)offsetof(struct stringpool_t, stringpool_str617), 74},
│ │ │ │ -
1718 {-1,-1}, {-1,-1},
│ │ │ │ -
1719#line 296 "charset_lookup.gperf"
│ │ │ │ -
1720 {(int)offsetof(struct stringpool_t, stringpool_str620), 91},
│ │ │ │ -
1721 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1722#line 252 "charset_lookup.gperf"
│ │ │ │ -
1723 {(int)offsetof(struct stringpool_t, stringpool_str625), 69},
│ │ │ │ -
1724 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1725 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1726#line 291 "charset_lookup.gperf"
│ │ │ │ -
1727 {(int)offsetof(struct stringpool_t, stringpool_str637), 2},
│ │ │ │ -
1728 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1729#line 264 "charset_lookup.gperf"
│ │ │ │ -
1730 {(int)offsetof(struct stringpool_t, stringpool_str641), 17},
│ │ │ │ -
1731 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1732#line 257 "charset_lookup.gperf"
│ │ │ │ -
1733 {(int)offsetof(struct stringpool_t, stringpool_str645), 80},
│ │ │ │ -
1734 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1735#line 114 "charset_lookup.gperf"
│ │ │ │ -
1736 {(int)offsetof(struct stringpool_t, stringpool_str651), 12},
│ │ │ │ -
1737 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1738#line 246 "charset_lookup.gperf"
│ │ │ │ -
1739 {(int)offsetof(struct stringpool_t, stringpool_str658), 71},
│ │ │ │ -
1740 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1741#line 267 "charset_lookup.gperf"
│ │ │ │ -
1742 {(int)offsetof(struct stringpool_t, stringpool_str663), 82},
│ │ │ │ -
1743#line 281 "charset_lookup.gperf"
│ │ │ │ -
1744 {(int)offsetof(struct stringpool_t, stringpool_str664), 61},
│ │ │ │ -
1745 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1746 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1747#line 217 "charset_lookup.gperf"
│ │ │ │ -
1748 {(int)offsetof(struct stringpool_t, stringpool_str674), 60},
│ │ │ │ -
1749 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1750 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1751 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1752 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1753#line 245 "charset_lookup.gperf"
│ │ │ │ -
1754 {(int)offsetof(struct stringpool_t, stringpool_str697), 70},
│ │ │ │ -
1755 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1756 {-1,-1}, {-1,-1},
│ │ │ │ -
1757#line 290 "charset_lookup.gperf"
│ │ │ │ -
1758 {(int)offsetof(struct stringpool_t, stringpool_str706), 3},
│ │ │ │ -
1759 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1760 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1761 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1762#line 83 "charset_lookup.gperf"
│ │ │ │ -
1763 {(int)offsetof(struct stringpool_t, stringpool_str723), 25},
│ │ │ │ -
1764 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1765 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1766 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1767 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1768#line 248 "charset_lookup.gperf"
│ │ │ │ -
1769 {(int)offsetof(struct stringpool_t, stringpool_str748), 73},
│ │ │ │ -
1770 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1771 {-1,-1},
│ │ │ │ -
1772#line 304 "charset_lookup.gperf"
│ │ │ │ -
1773 {(int)offsetof(struct stringpool_t, stringpool_str756), 20},
│ │ │ │ -
1774 {-1,-1},
│ │ │ │ -
1775#line 276 "charset_lookup.gperf"
│ │ │ │ -
1776 {(int)offsetof(struct stringpool_t, stringpool_str758), 85},
│ │ │ │ -
1777 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1778#line 81 "charset_lookup.gperf"
│ │ │ │ -
1779 {(int)offsetof(struct stringpool_t, stringpool_str762), 69},
│ │ │ │ -
1780 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1781 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1782 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1783 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1784 {-1,-1},
│ │ │ │ -
1785#line 57 "charset_lookup.gperf"
│ │ │ │ -
1786 {(int)offsetof(struct stringpool_t, stringpool_str788), 64},
│ │ │ │ -
1787 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1788 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1789 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1790 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1791 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1792 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1793 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1794 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1795 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1796 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1797 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1798 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1799 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1800 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1801 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1802 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1803#line 250 "charset_lookup.gperf"
│ │ │ │ -
1804 {(int)offsetof(struct stringpool_t, stringpool_str884), 75},
│ │ │ │ -
1805 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1806 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1807 {-1,-1}, {-1,-1},
│ │ │ │ -
1808#line 256 "charset_lookup.gperf"
│ │ │ │ -
1809 {(int)offsetof(struct stringpool_t, stringpool_str899), 79},
│ │ │ │ -
1810 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1811#line 82 "charset_lookup.gperf"
│ │ │ │ -
1812 {(int)offsetof(struct stringpool_t, stringpool_str905), 24},
│ │ │ │ -
1813 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1814 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1815#line 55 "charset_lookup.gperf"
│ │ │ │ -
1816 {(int)offsetof(struct stringpool_t, stringpool_str915), 34},
│ │ │ │ -
1817 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1818 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1819 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1820 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1821 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1822 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1823 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1824 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1825 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1826 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1827 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1828 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1829 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1830 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1831 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1832 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1833 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1834 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1835 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1836 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1837 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1838 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1839 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1840 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1841 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1842 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1843 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ -
1844 {-1,-1},
│ │ │ │ -
1845#line 54 "charset_lookup.gperf"
│ │ │ │ -
1846 {(int)offsetof(struct stringpool_t, stringpool_str1079), 32}
│ │ │ │ -
1847 };
│ │ │ │ -
1848
│ │ │ │ -
1849 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
│ │ │ │ -
1850 {
│ │ │ │ -
1851 register unsigned int key = hash_charset (str, len);
│ │ │ │ -
1852
│ │ │ │ -
1853 if (key <= MAX_HASH_VALUE)
│ │ │ │ -
1854 {
│ │ │ │ -
1855 register int o = wordlist[key].alias_pos;
│ │ │ │ -
1856 if (o >= 0)
│ │ │ │ -
1857 {
│ │ │ │ -
1858 register const char *s = o + stringpool;
│ │ │ │ -
1859
│ │ │ │ -
1860 if (*str == *s && !strcmp (str + 1, s + 1))
│ │ │ │ -
1861 return &wordlist[key];
│ │ │ │ -
1862 }
│ │ │ │ -
1863 }
│ │ │ │ -
1864 }
│ │ │ │ -
1865 return 0;
│ │ │ │ -
1866}
│ │ │ │ -
1867#line 381 "charset_lookup.gperf"
│ │ │ │ -
1868
│ │ │ │ +
1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
│ │ │ │ +
2#pragma GCC visibility pop
│ │ │ │ +
3#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,1881 +1,12 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -charset_lookup.h │ │ │ │ │ -1/* ANSI-C code produced by gperf version 3.1 */ │ │ │ │ │ -2/* Command-line: /usr/pkg/bin/gperf -m 100 -C -K alias_pos -t -F ,-1 -P - │ │ │ │ │ -H hash_charset -N charset_lookup -L ANSI-C charset_lookup.gperf */ │ │ │ │ │ -3/* Computed positions: -k'1,3-11,$' */ │ │ │ │ │ -4 │ │ │ │ │ -5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ │ │ │ │ │ -6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ │ │ │ │ │ -7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ │ │ │ │ │ -8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ │ │ │ │ │ -9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ │ │ │ │ │ -10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ │ │ │ │ │ -11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ │ │ │ │ │ -12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ │ │ │ │ │ -13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ │ │ │ │ │ -14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ │ │ │ │ │ -15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ │ │ │ │ │ -16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ │ │ │ │ │ -17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ │ │ │ │ │ -18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ │ │ │ │ │ -19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ │ │ │ │ │ -20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ │ │ │ │ │ -21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ │ │ │ │ │ -22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ │ │ │ │ │ -23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ │ │ │ │ │ -24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ │ │ │ │ │ -25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ │ │ │ │ │ -26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ │ │ │ │ │ -27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) │ │ │ │ │ -28/* The character set is not based on ISO-646. */ │ │ │ │ │ -29#error "gperf generated tables don't work with this execution character set. │ │ │ │ │ -Please report a bug to ." │ │ │ │ │ -30#endif │ │ │ │ │ -31 │ │ │ │ │ -32#line 3 "charset_lookup.gperf" │ │ │ │ │ -33 │ │ │ │ │ -34static const struct charset_alias *charset_lookup(register const char *str, │ │ │ │ │ -register size_t len); │ │ │ │ │ -35#line 2 "charset_lookup.gperf" │ │ │ │ │ -_3_6struct charset_alias { short int alias_pos; short int canonic; }; │ │ │ │ │ -37 │ │ │ │ │ -38#define TOTAL_KEYWORDS 374 │ │ │ │ │ -39#define MIN_WORD_LENGTH 2 │ │ │ │ │ -40#define MAX_WORD_LENGTH 45 │ │ │ │ │ -41#define MIN_HASH_VALUE 15 │ │ │ │ │ -42#define MAX_HASH_VALUE 1079 │ │ │ │ │ -43/* maximum key range = 1065, duplicates = 0 */ │ │ │ │ │ -44 │ │ │ │ │ -45#ifdef __GNUC__ │ │ │ │ │ -46__inline │ │ │ │ │ -47#else │ │ │ │ │ -48#ifdef __cplusplus │ │ │ │ │ -49inline │ │ │ │ │ -50#endif │ │ │ │ │ -51#endif │ │ │ │ │ -52static unsigned int │ │ │ │ │ -53hash_charset (register const char *str, register size_t len) │ │ │ │ │ -54{ │ │ │ │ │ -55 static const unsigned short asso_values[] = │ │ │ │ │ -56 { │ │ │ │ │ -57 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -58 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -59 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -60 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -61 1080, 1080, 1080, 1080, 1080, 7, 132, 1080, 56, 6, │ │ │ │ │ -62 47, 83, 35, 8, 18, 63, 7, 9, 363, 1080, │ │ │ │ │ -63 1080, 1080, 1080, 1080, 1080, 7, 99, 128, 6, 22, │ │ │ │ │ -64 141, 116, 95, 6, 34, 68, 7, 159, 6, 6, │ │ │ │ │ -65 80, 1080, 26, 6, 115, 191, 39, 162, 231, 14, │ │ │ │ │ -66 8, 1080, 1080, 1080, 1080, 37, 1080, 10, 16, 147, │ │ │ │ │ -67 1080, 16, 8, 12, 13, 6, 1080, 6, 1080, 8, │ │ │ │ │ -68 6, 6, 1080, 1080, 6, 7, 6, 19, 1080, 1080, │ │ │ │ │ -69 1080, 6, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -70 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -71 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -72 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -73 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -74 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -75 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -76 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -77 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -78 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -79 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -80 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -81 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ -82 1080, 1080, 1080, 1080, 1080, 1080 │ │ │ │ │ -83 }; │ │ │ │ │ -84 register unsigned int hval = len; │ │ │ │ │ -85 │ │ │ │ │ -86 switch (hval) │ │ │ │ │ -87 { │ │ │ │ │ -88 default: │ │ │ │ │ -89 hval += asso_values[(unsigned char)str[10]]; │ │ │ │ │ -90 /*FALLTHROUGH*/ │ │ │ │ │ -91 case 10: │ │ │ │ │ -92 hval += asso_values[(unsigned char)str[9]]; │ │ │ │ │ -93 /*FALLTHROUGH*/ │ │ │ │ │ -94 case 9: │ │ │ │ │ -95 hval += asso_values[(unsigned char)str[8]]; │ │ │ │ │ -96 /*FALLTHROUGH*/ │ │ │ │ │ -97 case 8: │ │ │ │ │ -98 hval += asso_values[(unsigned char)str[7]]; │ │ │ │ │ -99 /*FALLTHROUGH*/ │ │ │ │ │ -100 case 7: │ │ │ │ │ -101 hval += asso_values[(unsigned char)str[6]]; │ │ │ │ │ -102 /*FALLTHROUGH*/ │ │ │ │ │ -103 case 6: │ │ │ │ │ -104 hval += asso_values[(unsigned char)str[5]]; │ │ │ │ │ -105 /*FALLTHROUGH*/ │ │ │ │ │ -106 case 5: │ │ │ │ │ -107 hval += asso_values[(unsigned char)str[4]]; │ │ │ │ │ -108 /*FALLTHROUGH*/ │ │ │ │ │ -109 case 4: │ │ │ │ │ -110 hval += asso_values[(unsigned char)str[3]]; │ │ │ │ │ -111 /*FALLTHROUGH*/ │ │ │ │ │ -112 case 3: │ │ │ │ │ -113 hval += asso_values[(unsigned char)str[2]]; │ │ │ │ │ -114 /*FALLTHROUGH*/ │ │ │ │ │ -115 case 2: │ │ │ │ │ -116 case 1: │ │ │ │ │ -117 hval += asso_values[(unsigned char)str[0]]; │ │ │ │ │ -118 break; │ │ │ │ │ -119 } │ │ │ │ │ -120 return hval + asso_values[(unsigned char)str[len - 1]]; │ │ │ │ │ -121} │ │ │ │ │ -122 │ │ │ │ │ -_1_2_3struct stringpool_t │ │ │ │ │ -124 { │ │ │ │ │ -125 char stringpool_str15[sizeof("L1")]; │ │ │ │ │ -126 char stringpool_str16[sizeof("L8")]; │ │ │ │ │ -127 char stringpool_str17[sizeof("L5")]; │ │ │ │ │ -128 char stringpool_str27[sizeof("L6")]; │ │ │ │ │ -129 char stringpool_str28[sizeof("SJIS")]; │ │ │ │ │ -130 char stringpool_str30[sizeof("koi8")]; │ │ │ │ │ -131 char stringpool_str31[sizeof("sjis")]; │ │ │ │ │ -132 char stringpool_str35[sizeof("R8")]; │ │ │ │ │ -133 char stringpool_str36[sizeof("iso81")]; │ │ │ │ │ -134 char stringpool_str38[sizeof("iso88")]; │ │ │ │ │ -135 char stringpool_str39[sizeof("iso15")]; │ │ │ │ │ -136 char stringpool_str40[sizeof("iso85")]; │ │ │ │ │ -137 char stringpool_str41[sizeof("thai8")]; │ │ │ │ │ -138 char stringpool_str42[sizeof("iso89")]; │ │ │ │ │ -139 char stringpool_str43[sizeof("roma8")]; │ │ │ │ │ -140 char stringpool_str44[sizeof("L4")]; │ │ │ │ │ -141 char stringpool_str45[sizeof("utf8")]; │ │ │ │ │ -142 char stringpool_str46[sizeof("866")]; │ │ │ │ │ -143 char stringpool_str47[sizeof("iso815")]; │ │ │ │ │ -144 char stringpool_str48[sizeof("big5")]; │ │ │ │ │ -145 char stringpool_str50[sizeof("roman8")]; │ │ │ │ │ -146 char stringpool_str56[sizeof("L2")]; │ │ │ │ │ -147 char stringpool_str57[sizeof("646")]; │ │ │ │ │ -148 char stringpool_str60[sizeof("iso86")]; │ │ │ │ │ -149 char stringpool_str63[sizeof("iso88591")]; │ │ │ │ │ -150 char stringpool_str65[sizeof("iso88598")]; │ │ │ │ │ -151 char stringpool_str66[sizeof("iso_1")]; │ │ │ │ │ -152 char stringpool_str67[sizeof("iso88595")]; │ │ │ │ │ -153 char stringpool_str69[sizeof("iso88599")]; │ │ │ │ │ -154 char stringpool_str70[sizeof("greek8")]; │ │ │ │ │ -155 char stringpool_str71[sizeof("ISO8859-1")]; │ │ │ │ │ -156 char stringpool_str72[sizeof("L7")]; │ │ │ │ │ -157 char stringpool_str73[sizeof("ISO8859-8")]; │ │ │ │ │ -158 char stringpool_str74[sizeof("iso885915")]; │ │ │ │ │ -159 char stringpool_str75[sizeof("ISO8859-5")]; │ │ │ │ │ -160 char stringpool_str77[sizeof("ISO8859-9")]; │ │ │ │ │ -161 char stringpool_str79[sizeof("ISO-8859-1")]; │ │ │ │ │ -162 char stringpool_str81[sizeof("ISO-8859-8")]; │ │ │ │ │ -163 char stringpool_str82[sizeof("ISO8859-15")]; │ │ │ │ │ -164 char stringpool_str83[sizeof("ISO-8859-5")]; │ │ │ │ │ -165 char stringpool_str85[sizeof("ISO-8859-9")]; │ │ │ │ │ -166 char stringpool_str87[sizeof("iso88596")]; │ │ │ │ │ -167 char stringpool_str89[sizeof("ISO-IR-58")]; │ │ │ │ │ -168 char stringpool_str90[sizeof("ISO-8859-15")]; │ │ │ │ │ -169 char stringpool_str91[sizeof("JAVA")]; │ │ │ │ │ -170 char stringpool_str92[sizeof("L3")]; │ │ │ │ │ -171 char stringpool_str93[sizeof("iso14")]; │ │ │ │ │ -172 char stringpool_str94[sizeof("iso84")]; │ │ │ │ │ -173 char stringpool_str95[sizeof("ISO8859-6")]; │ │ │ │ │ -174 char stringpool_str100[sizeof("ISO-IR-159")]; │ │ │ │ │ -175 char stringpool_str101[sizeof("ISO-IR-199")]; │ │ │ │ │ -176 char stringpool_str102[sizeof("ISO-IR-6")]; │ │ │ │ │ -177 char stringpool_str103[sizeof("ISO-8859-6")]; │ │ │ │ │ -178 char stringpool_str104[sizeof("862")]; │ │ │ │ │ -179 char stringpool_str105[sizeof("HZ")]; │ │ │ │ │ -180 char stringpool_str107[sizeof("iso646")]; │ │ │ │ │ -181 char stringpool_str108[sizeof("ISO-IR-165")]; │ │ │ │ │ -182 char stringpool_str109[sizeof("ISO_8859-1")]; │ │ │ │ │ -183 char stringpool_str110[sizeof("ISO-8859-16")]; │ │ │ │ │ -184 char stringpool_str111[sizeof("ISO_8859-8")]; │ │ │ │ │ -185 char stringpool_str113[sizeof("ISO_8859-5")]; │ │ │ │ │ -186 char stringpool_str115[sizeof("ISO_8859-9")]; │ │ │ │ │ -187 char stringpool_str116[sizeof("JP")]; │ │ │ │ │ -188 char stringpool_str118[sizeof("iso82")]; │ │ │ │ │ -189 char stringpool_str120[sizeof("ISO_8859-15")]; │ │ │ │ │ -190 char stringpool_str121[sizeof("iso88594")]; │ │ │ │ │ -191 char stringpool_str122[sizeof("850")]; │ │ │ │ │ -192 char stringpool_str123[sizeof("ISO-IR-148")]; │ │ │ │ │ -193 char stringpool_str124[sizeof("ISO_8859-15:1998")]; │ │ │ │ │ -194 char stringpool_str127[sizeof("ISO-IR-149")]; │ │ │ │ │ -195 char stringpool_str128[sizeof("ISO-IR-166")]; │ │ │ │ │ -196 char stringpool_str129[sizeof("ISO8859-4")]; │ │ │ │ │ -197 char stringpool_str133[sizeof("ISO_8859-6")]; │ │ │ │ │ -198 char stringpool_str135[sizeof("iso10")]; │ │ │ │ │ -199 char stringpool_str136[sizeof("CN")]; │ │ │ │ │ -200 char stringpool_str137[sizeof("ISO-8859-4")]; │ │ │ │ │ -201 char stringpool_str140[sizeof("ISO_8859-16")]; │ │ │ │ │ -202 char stringpool_str141[sizeof("KOREAN")]; │ │ │ │ │ -203 char stringpool_str142[sizeof("ISO-IR-101")]; │ │ │ │ │ -204 char stringpool_str143[sizeof("ISO-IR-14")]; │ │ │ │ │ -205 char stringpool_str144[sizeof("ISO-8859-14")]; │ │ │ │ │ -206 char stringpool_str145[sizeof("iso88592")]; │ │ │ │ │ -207 char stringpool_str146[sizeof("KOI8-R")]; │ │ │ │ │ -208 char stringpool_str148[sizeof("ISO-IR-109")]; │ │ │ │ │ -209 char stringpool_str149[sizeof("C99")]; │ │ │ │ │ -210 char stringpool_str150[sizeof("iso87")]; │ │ │ │ │ -211 char stringpool_str151[sizeof("ISO_8859-14:1998")]; │ │ │ │ │ -212 char stringpool_str152[sizeof("LATIN1")]; │ │ │ │ │ -213 char stringpool_str153[sizeof("ISO8859-2")]; │ │ │ │ │ -214 char stringpool_str154[sizeof("LATIN8")]; │ │ │ │ │ -215 char stringpool_str155[sizeof("ISO-IR-179")]; │ │ │ │ │ -216 char stringpool_str156[sizeof("LATIN5")]; │ │ │ │ │ -217 char stringpool_str157[sizeof("ISO-IR-126")]; │ │ │ │ │ -218 char stringpool_str158[sizeof("ASCII")]; │ │ │ │ │ -219 char stringpool_str161[sizeof("ISO-8859-2")]; │ │ │ │ │ -220 char stringpool_str164[sizeof("CP819")]; │ │ │ │ │ -221 char stringpool_str167[sizeof("ISO_8859-4")]; │ │ │ │ │ -222 char stringpool_str170[sizeof("TCVN")]; │ │ │ │ │ -223 char stringpool_str171[sizeof("ISO-IR-138")]; │ │ │ │ │ -224 char stringpool_str173[sizeof("hp15CN")]; │ │ │ │ │ -225 char stringpool_str174[sizeof("ISO_8859-14")]; │ │ │ │ │ -226 char stringpool_str176[sizeof("LATIN6")]; │ │ │ │ │ -227 char stringpool_str177[sizeof("iso88597")]; │ │ │ │ │ -228 char stringpool_str178[sizeof("ISO8859-10")]; │ │ │ │ │ -229 char stringpool_str179[sizeof("ISO-IR-144")]; │ │ │ │ │ -230 char stringpool_str183[sizeof("ISO_8859-16:2000")]; │ │ │ │ │ -231 char stringpool_str185[sizeof("ISO8859-7")]; │ │ │ │ │ -232 char stringpool_str186[sizeof("ISO-8859-10")]; │ │ │ │ │ -233 char stringpool_str189[sizeof("iso13")]; │ │ │ │ │ -234 char stringpool_str190[sizeof("iso83")]; │ │ │ │ │ -235 char stringpool_str191[sizeof("ISO_8859-2")]; │ │ │ │ │ -236 char stringpool_str192[sizeof("ISO-IR-110")]; │ │ │ │ │ -237 char stringpool_str193[sizeof("ISO-8859-7")]; │ │ │ │ │ -238 char stringpool_str194[sizeof("CP866")]; │ │ │ │ │ -239 char stringpool_str195[sizeof("CP949")]; │ │ │ │ │ -240 char stringpool_str196[sizeof("tis620")]; │ │ │ │ │ -241 char stringpool_str197[sizeof("VISCII")]; │ │ │ │ │ -242 char stringpool_str198[sizeof("ISO-IR-226")]; │ │ │ │ │ -243 char stringpool_str199[sizeof("US")]; │ │ │ │ │ -244 char stringpool_str200[sizeof("ISO-IR-87")]; │ │ │ │ │ -245 char stringpool_str201[sizeof("ISO-IR-57")]; │ │ │ │ │ -246 char stringpool_str202[sizeof("IBM819")]; │ │ │ │ │ -247 char stringpool_str203[sizeof("macthai")]; │ │ │ │ │ -248 char stringpool_str204[sizeof("MS-ANSI")]; │ │ │ │ │ -249 char stringpool_str205[sizeof("macturk")]; │ │ │ │ │ -250 char stringpool_str207[sizeof("CP1251")]; │ │ │ │ │ -251 char stringpool_str208[sizeof("ISO-IR-157")]; │ │ │ │ │ -252 char stringpool_str209[sizeof("CP1258")]; │ │ │ │ │ -253 char stringpool_str210[sizeof("LATIN4")]; │ │ │ │ │ -254 char stringpool_str211[sizeof("CP1255")]; │ │ │ │ │ -255 char stringpool_str212[sizeof("ISO_8859-10:1992")]; │ │ │ │ │ -256 char stringpool_str213[sizeof("cp866")]; │ │ │ │ │ -257 char stringpool_str214[sizeof("cp949")]; │ │ │ │ │ -258 char stringpool_str216[sizeof("ISO_8859-10")]; │ │ │ │ │ -259 char stringpool_str217[sizeof("iso88593")]; │ │ │ │ │ -260 char stringpool_str218[sizeof("ROMAN8")]; │ │ │ │ │ -261 char stringpool_str219[sizeof("CHINESE")]; │ │ │ │ │ -262 char stringpool_str220[sizeof("JIS0208")]; │ │ │ │ │ -263 char stringpool_str223[sizeof("ISO_8859-7")]; │ │ │ │ │ -264 char stringpool_str225[sizeof("macgreek")]; │ │ │ │ │ -265 char stringpool_str226[sizeof("cp1251")]; │ │ │ │ │ -266 char stringpool_str227[sizeof("ascii_8")]; │ │ │ │ │ -267 char stringpool_str228[sizeof("cp1258")]; │ │ │ │ │ -268 char stringpool_str229[sizeof("ECMA-118")]; │ │ │ │ │ -269 char stringpool_str230[sizeof("cp1255")]; │ │ │ │ │ -270 char stringpool_str231[sizeof("CP1256")]; │ │ │ │ │ -271 char stringpool_str232[sizeof("IBM866")]; │ │ │ │ │ -272 char stringpool_str233[sizeof("ISO-8859-3")]; │ │ │ │ │ -273 char stringpool_str234[sizeof("LATIN2")]; │ │ │ │ │ -274 char stringpool_str235[sizeof("BIG5")]; │ │ │ │ │ -275 char stringpool_str236[sizeof("MULELAO-1")]; │ │ │ │ │ -276 char stringpool_str237[sizeof("MS-EE")]; │ │ │ │ │ -277 char stringpool_str239[sizeof("ISO646-CN")]; │ │ │ │ │ -278 char stringpool_str240[sizeof("ISO-8859-13")]; │ │ │ │ │ -279 char stringpool_str242[sizeof("ISO-IR-100")]; │ │ │ │ │ -280 char stringpool_str243[sizeof("BIG-5")]; │ │ │ │ │ -281 char stringpool_str247[sizeof("ISO-IR-127")]; │ │ │ │ │ -282 char stringpool_str248[sizeof("GREEK8")]; │ │ │ │ │ -283 char stringpool_str250[sizeof("cp1256")]; │ │ │ │ │ -284 char stringpool_str252[sizeof("CP862")]; │ │ │ │ │ -285 char stringpool_str253[sizeof("CP1361")]; │ │ │ │ │ -286 char stringpool_str255[sizeof("GBK")]; │ │ │ │ │ -287 char stringpool_str258[sizeof("ELOT_928")]; │ │ │ │ │ -288 char stringpool_str260[sizeof("CP850")]; │ │ │ │ │ -289 char stringpool_str261[sizeof("CP936")]; │ │ │ │ │ -290 char stringpool_str262[sizeof("CP950")]; │ │ │ │ │ -291 char stringpool_str263[sizeof("ISO_8859-3")]; │ │ │ │ │ -292 char stringpool_str265[sizeof("CP1254")]; │ │ │ │ │ -293 char stringpool_str266[sizeof("LATIN7")]; │ │ │ │ │ -294 char stringpool_str270[sizeof("ISO_8859-13")]; │ │ │ │ │ -295 char stringpool_str271[sizeof("cp862")]; │ │ │ │ │ -296 char stringpool_str273[sizeof("CP874")]; │ │ │ │ │ -297 char stringpool_str274[sizeof("CSKOI8R")]; │ │ │ │ │ -298 char stringpool_str275[sizeof("EUCKR")]; │ │ │ │ │ -299 char stringpool_str279[sizeof("cp850")]; │ │ │ │ │ -300 char stringpool_str280[sizeof("cp936")]; │ │ │ │ │ -301 char stringpool_str281[sizeof("cp950")]; │ │ │ │ │ -302 char stringpool_str283[sizeof("EUC-KR")]; │ │ │ │ │ -303 char stringpool_str284[sizeof("cp1254")]; │ │ │ │ │ -304 char stringpool_str285[sizeof("ECMA-114")]; │ │ │ │ │ -305 char stringpool_str288[sizeof("eucKR")]; │ │ │ │ │ -306 char stringpool_str289[sizeof("CP1252")]; │ │ │ │ │ -307 char stringpool_str290[sizeof("IBM862")]; │ │ │ │ │ -308 char stringpool_str291[sizeof("CSISO159JISX02121990")]; │ │ │ │ │ -309 char stringpool_str292[sizeof("cp874")]; │ │ │ │ │ -310 char stringpool_str293[sizeof("ISO646-JP")]; │ │ │ │ │ -311 char stringpool_str294[sizeof("CSASCII")]; │ │ │ │ │ -312 char stringpool_str295[sizeof("EUCCN")]; │ │ │ │ │ -313 char stringpool_str297[sizeof("UCS-4LE")]; │ │ │ │ │ -314 char stringpool_str298[sizeof("IBM850")]; │ │ │ │ │ -315 char stringpool_str301[sizeof("GREEK")]; │ │ │ │ │ -316 char stringpool_str302[sizeof("ISO646-US")]; │ │ │ │ │ -317 char stringpool_str303[sizeof("EUC-CN")]; │ │ │ │ │ -318 char stringpool_str304[sizeof("TIS620")]; │ │ │ │ │ -319 char stringpool_str305[sizeof("mac")]; │ │ │ │ │ -320 char stringpool_str306[sizeof("LATIN3")]; │ │ │ │ │ -321 char stringpool_str307[sizeof("CP1250")]; │ │ │ │ │ -322 char stringpool_str308[sizeof("cp1252")]; │ │ │ │ │ -323 char stringpool_str309[sizeof("UCS-2LE")]; │ │ │ │ │ -324 char stringpool_str310[sizeof("CSISOLATIN1")]; │ │ │ │ │ -325 char stringpool_str312[sizeof("TIS-620")]; │ │ │ │ │ -326 char stringpool_str313[sizeof("TCVN5712-1")]; │ │ │ │ │ -327 char stringpool_str314[sizeof("CSISOLATIN5")]; │ │ │ │ │ -328 char stringpool_str318[sizeof("GB_1988-80")]; │ │ │ │ │ -329 char stringpool_str319[sizeof("CP932")]; │ │ │ │ │ -330 char stringpool_str320[sizeof("ASMO-708")]; │ │ │ │ │ -331 char stringpool_str321[sizeof("CP1257")]; │ │ │ │ │ -332 char stringpool_str324[sizeof("KOI8-T")]; │ │ │ │ │ -333 char stringpool_str326[sizeof("cp1250")]; │ │ │ │ │ -334 char stringpool_str329[sizeof("HP-ROMAN8")]; │ │ │ │ │ -335 char stringpool_str331[sizeof("MS_KANJI")]; │ │ │ │ │ -336 char stringpool_str333[sizeof("CSVISCII")]; │ │ │ │ │ -337 char stringpool_str334[sizeof("CSISOLATIN6")]; │ │ │ │ │ -338 char stringpool_str335[sizeof("KSC_5601")]; │ │ │ │ │ -339 char stringpool_str336[sizeof("SHIFT-JIS")]; │ │ │ │ │ -340 char stringpool_str337[sizeof("ISO-IR-203")]; │ │ │ │ │ -341 char stringpool_str338[sizeof("cp932")]; │ │ │ │ │ -342 char stringpool_str339[sizeof("JOHAB")]; │ │ │ │ │ -343 char stringpool_str340[sizeof("cp1257")]; │ │ │ │ │ -344 char stringpool_str342[sizeof("ARMSCII-8")]; │ │ │ │ │ -345 char stringpool_str345[sizeof("ISO_646.IRV:1991")]; │ │ │ │ │ -346 char stringpool_str347[sizeof("TCVN-5712")]; │ │ │ │ │ -347 char stringpool_str349[sizeof("EUCJP")]; │ │ │ │ │ -348 char stringpool_str350[sizeof("UTF8")]; │ │ │ │ │ -349 char stringpool_str351[sizeof("X0201")]; │ │ │ │ │ -350 char stringpool_str352[sizeof("GB2312")]; │ │ │ │ │ -351 char stringpool_str353[sizeof("X0208")]; │ │ │ │ │ -352 char stringpool_str354[sizeof("ISO-2022-KR")]; │ │ │ │ │ -353 char stringpool_str355[sizeof("MS-CYRL")]; │ │ │ │ │ -354 char stringpool_str356[sizeof("ISO-2022-JP-1")]; │ │ │ │ │ -355 char stringpool_str357[sizeof("EUC-JP")]; │ │ │ │ │ -356 char stringpool_str358[sizeof("UTF-8")]; │ │ │ │ │ -357 char stringpool_str359[sizeof("VISCII1.1-1")]; │ │ │ │ │ -358 char stringpool_str360[sizeof("CP367")]; │ │ │ │ │ -359 char stringpool_str361[sizeof("CP1253")]; │ │ │ │ │ -360 char stringpool_str362[sizeof("eucJP")]; │ │ │ │ │ -361 char stringpool_str364[sizeof("mac_cyr")]; │ │ │ │ │ -362 char stringpool_str365[sizeof("US-ASCII")]; │ │ │ │ │ -363 char stringpool_str366[sizeof("SHIFT_JIS")]; │ │ │ │ │ -364 char stringpool_str368[sizeof("CSISOLATIN4")]; │ │ │ │ │ -365 char stringpool_str369[sizeof("TIS620-0")]; │ │ │ │ │ -366 char stringpool_str371[sizeof("CSBIG5")]; │ │ │ │ │ -367 char stringpool_str374[sizeof("ISO-2022-CN")]; │ │ │ │ │ -368 char stringpool_str377[sizeof("CP437")]; │ │ │ │ │ -369 char stringpool_str379[sizeof("CN-BIG5")]; │ │ │ │ │ -370 char stringpool_str380[sizeof("cp1253")]; │ │ │ │ │ -371 char stringpool_str381[sizeof("ARABIC")]; │ │ │ │ │ -372 char stringpool_str383[sizeof("X0212")]; │ │ │ │ │ -373 char stringpool_str384[sizeof("CSISO14JISC6220RO")]; │ │ │ │ │ -374 char stringpool_str387[sizeof("GB18030")]; │ │ │ │ │ -375 char stringpool_str389[sizeof("UCS-4BE")]; │ │ │ │ │ -376 char stringpool_str392[sizeof("CSISOLATIN2")]; │ │ │ │ │ -377 char stringpool_str393[sizeof("GEORGIAN-PS")]; │ │ │ │ │ -378 char stringpool_str394[sizeof("KS_C_5601-1989")]; │ │ │ │ │ -379 char stringpool_str395[sizeof("CP1133")]; │ │ │ │ │ -380 char stringpool_str396[sizeof("cp437")]; │ │ │ │ │ -381 char stringpool_str397[sizeof("ISO-2022-JP-2")]; │ │ │ │ │ -382 char stringpool_str398[sizeof("IBM367")]; │ │ │ │ │ -383 char stringpool_str401[sizeof("UCS-2BE")]; │ │ │ │ │ -384 char stringpool_str402[sizeof("UNICODE-1-1")]; │ │ │ │ │ -385 char stringpool_str409[sizeof("JIS_C6220-1969-RO")]; │ │ │ │ │ -386 char stringpool_str411[sizeof("MS-ARAB")]; │ │ │ │ │ -387 char stringpool_str415[sizeof("IBM437")]; │ │ │ │ │ -388 char stringpool_str418[sizeof("MAC")]; │ │ │ │ │ -389 char stringpool_str422[sizeof("UTF-16LE")]; │ │ │ │ │ -390 char stringpool_str428[sizeof("ISO-2022-JP")]; │ │ │ │ │ -391 char stringpool_str429[sizeof("CN-GB-ISOIR165")]; │ │ │ │ │ -392 char stringpool_str434[sizeof("WINDOWS-1251")]; │ │ │ │ │ -393 char stringpool_str435[sizeof("WINDOWS-1258")]; │ │ │ │ │ -394 char stringpool_str436[sizeof("WINDOWS-1255")]; │ │ │ │ │ -395 char stringpool_str438[sizeof("CSISOLATINARABIC")]; │ │ │ │ │ -396 char stringpool_str441[sizeof("MS-HEBR")]; │ │ │ │ │ -397 char stringpool_str444[sizeof("CYRILLIC")]; │ │ │ │ │ -398 char stringpool_str445[sizeof("JIS_C6226-1983")]; │ │ │ │ │ -399 char stringpool_str446[sizeof("WINDOWS-1256")]; │ │ │ │ │ -400 char stringpool_str448[sizeof("KS_C_5601-1987")]; │ │ │ │ │ -401 char stringpool_str450[sizeof("UHC")]; │ │ │ │ │ -402 char stringpool_str452[sizeof("BIGFIVE")]; │ │ │ │ │ -403 char stringpool_str454[sizeof("CN-GB")]; │ │ │ │ │ -404 char stringpool_str455[sizeof("GEORGIAN-ACADEMY")]; │ │ │ │ │ -405 char stringpool_str460[sizeof("BIG-FIVE")]; │ │ │ │ │ -406 char stringpool_str461[sizeof("CSIBM866")]; │ │ │ │ │ -407 char stringpool_str462[sizeof("UTF7")]; │ │ │ │ │ -408 char stringpool_str463[sizeof("WINDOWS-1254")]; │ │ │ │ │ -409 char stringpool_str464[sizeof("CSISOLATIN3")]; │ │ │ │ │ -410 char stringpool_str465[sizeof("UNICODE-1-1-UTF-7")]; │ │ │ │ │ -411 char stringpool_str467[sizeof("CSISO57GB1988")]; │ │ │ │ │ -412 char stringpool_str470[sizeof("UTF-7")]; │ │ │ │ │ -413 char stringpool_str472[sizeof("GB_2312-80")]; │ │ │ │ │ -414 char stringpool_str474[sizeof("CSISO2022KR")]; │ │ │ │ │ -415 char stringpool_str475[sizeof("WINDOWS-1252")]; │ │ │ │ │ -416 char stringpool_str476[sizeof("KOI8-U")]; │ │ │ │ │ -417 char stringpool_str479[sizeof("ISO_8859-8:1988")]; │ │ │ │ │ -418 char stringpool_str480[sizeof("ISO_8859-5:1988")]; │ │ │ │ │ -419 char stringpool_str483[sizeof("ISO_8859-9:1989")]; │ │ │ │ │ -420 char stringpool_str484[sizeof("WINDOWS-1250")]; │ │ │ │ │ -421 char stringpool_str485[sizeof("MACICELAND")]; │ │ │ │ │ -422 char stringpool_str486[sizeof("CSISOLATINGREEK")]; │ │ │ │ │ -423 char stringpool_str487[sizeof("ISO-2022-CN-EXT")]; │ │ │ │ │ -424 char stringpool_str488[sizeof("JIS_X0201")]; │ │ │ │ │ -425 char stringpool_str489[sizeof("JISX0201-1976")]; │ │ │ │ │ -426 char stringpool_str490[sizeof("JIS_X0208")]; │ │ │ │ │ -427 char stringpool_str491[sizeof("WINDOWS-1257")]; │ │ │ │ │ -428 char stringpool_str494[sizeof("CSISO2022CN")]; │ │ │ │ │ -429 char stringpool_str496[sizeof("MS-GREEK")]; │ │ │ │ │ -430 char stringpool_str500[sizeof │ │ │ │ │ -("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; │ │ │ │ │ -431 char stringpool_str503[sizeof("KOI8-RU")]; │ │ │ │ │ -432 char stringpool_str504[sizeof("TIS620.2529-1")]; │ │ │ │ │ -433 char stringpool_str505[sizeof("MACROMAN")]; │ │ │ │ │ -434 char stringpool_str506[sizeof("WINDOWS-874")]; │ │ │ │ │ -435 char stringpool_str507[sizeof("ISO_8859-4:1988")]; │ │ │ │ │ -436 char stringpool_str509[sizeof("CSKSC56011987")]; │ │ │ │ │ -437 char stringpool_str511[sizeof("WINDOWS-1253")]; │ │ │ │ │ -438 char stringpool_str514[sizeof("UTF-16BE")]; │ │ │ │ │ -439 char stringpool_str515[sizeof("CSISO87JISX0208")]; │ │ │ │ │ -440 char stringpool_str516[sizeof("CSISO2022JP2")]; │ │ │ │ │ -441 char stringpool_str520[sizeof("JIS_X0212")]; │ │ │ │ │ -442 char stringpool_str521[sizeof("MACROMANIA")]; │ │ │ │ │ -443 char stringpool_str522[sizeof("CSUNICODE11")]; │ │ │ │ │ -444 char stringpool_str523[sizeof("MACTHAI")]; │ │ │ │ │ -445 char stringpool_str528[sizeof("UTF-32LE")]; │ │ │ │ │ -446 char stringpool_str531[sizeof("CSHPROMAN8")]; │ │ │ │ │ -447 char stringpool_str534[sizeof("ISO_8859-1:1987")]; │ │ │ │ │ -448 char stringpool_str541[sizeof("BIG5HKSCS")]; │ │ │ │ │ -449 char stringpool_str546[sizeof("ISO_8859-6:1987")]; │ │ │ │ │ -450 char stringpool_str547[sizeof("JIS_X0212-1990")]; │ │ │ │ │ -451 char stringpool_str548[sizeof("CSISO2022JP")]; │ │ │ │ │ -452 char stringpool_str549[sizeof("BIG5-HKSCS")]; │ │ │ │ │ -453 char stringpool_str553[sizeof("CSSHIFTJIS")]; │ │ │ │ │ -454 char stringpool_str555[sizeof("ISO_8859-3:1988")]; │ │ │ │ │ -455 char stringpool_str557[sizeof("JIS_X0208-1990")]; │ │ │ │ │ -456 char stringpool_str560[sizeof("CSISOLATINHEBREW")]; │ │ │ │ │ -457 char stringpool_str561[sizeof("CSISOLATINCYRILLIC")]; │ │ │ │ │ -458 char stringpool_str563[sizeof("ISO-CELTIC")]; │ │ │ │ │ -459 char stringpool_str564[sizeof("HZ-GB-2312")]; │ │ │ │ │ -460 char stringpool_str571[sizeof("ANSI_X3.4-1968")]; │ │ │ │ │ -461 char stringpool_str572[sizeof("HEBREW")]; │ │ │ │ │ -462 char stringpool_str575[sizeof("ISO_8859-2:1987")]; │ │ │ │ │ -463 char stringpool_str577[sizeof("CSISO58GB231280")]; │ │ │ │ │ -464 char stringpool_str581[sizeof("CSGB2312")]; │ │ │ │ │ -465 char stringpool_str582[sizeof("ANSI_X3.4-1986")]; │ │ │ │ │ -466 char stringpool_str583[sizeof("CSUNICODE11UTF7")]; │ │ │ │ │ -467 char stringpool_str584[sizeof("JIS_X0208-1983")]; │ │ │ │ │ -468 char stringpool_str591[sizeof("ISO_8859-7:1987")]; │ │ │ │ │ -469 char stringpool_str594[sizeof("EUCTW")]; │ │ │ │ │ -470 char stringpool_str596[sizeof("CSEUCKR")]; │ │ │ │ │ -471 char stringpool_str602[sizeof("EUC-TW")]; │ │ │ │ │ -472 char stringpool_str605[sizeof("MACCROATIAN")]; │ │ │ │ │ -473 char stringpool_str607[sizeof("eucTW")]; │ │ │ │ │ -474 char stringpool_str614[sizeof("TIS620.2533-1")]; │ │ │ │ │ -475 char stringpool_str617[sizeof("MACGREEK")]; │ │ │ │ │ -476 char stringpool_str620[sizeof("UTF-32BE")]; │ │ │ │ │ -477 char stringpool_str625[sizeof("MACINTOSH")]; │ │ │ │ │ -478 char stringpool_str637[sizeof("UNICODELITTLE")]; │ │ │ │ │ -479 char stringpool_str641[sizeof("MS-TURK")]; │ │ │ │ │ -480 char stringpool_str645[sizeof("MACUKRAINE")]; │ │ │ │ │ -481 char stringpool_str651[sizeof("IBM-CP1133")]; │ │ │ │ │ -482 char stringpool_str658[sizeof("MACCENTRALEUROPE")]; │ │ │ │ │ -483 char stringpool_str663[sizeof("NEXTSTEP")]; │ │ │ │ │ -484 char stringpool_str664[sizeof("TIS620.2533-0")]; │ │ │ │ │ -485 char stringpool_str674[sizeof("JIS_X0212.1990-0")]; │ │ │ │ │ -486 char stringpool_str697[sizeof("MACARABIC")]; │ │ │ │ │ -487 char stringpool_str706[sizeof("UNICODEBIG")]; │ │ │ │ │ -488 char stringpool_str723[sizeof("CSPC862LATINHEBREW")]; │ │ │ │ │ -489 char stringpool_str748[sizeof("MACCYRILLIC")]; │ │ │ │ │ -490 char stringpool_str756[sizeof("WINBALTRIM")]; │ │ │ │ │ -491 char stringpool_str758[sizeof("TCVN5712-1:1993")]; │ │ │ │ │ -492 char stringpool_str762[sizeof("CSMACINTOSH")]; │ │ │ │ │ -493 char stringpool_str788[sizeof("CSHALFWIDTHKATAKANA")]; │ │ │ │ │ -494 char stringpool_str884[sizeof("MACHEBREW")]; │ │ │ │ │ -495 char stringpool_str899[sizeof("MACTURKISH")]; │ │ │ │ │ -496 char stringpool_str905[sizeof("CSPC850MULTILINGUAL")]; │ │ │ │ │ -497 char stringpool_str915[sizeof("CSEUCTW")]; │ │ │ │ │ -498 char stringpool_str1079[sizeof("CSEUCPKDFMTJAPANESE")]; │ │ │ │ │ -499 }; │ │ │ │ │ -500static const struct stringpool_t stringpool_contents = │ │ │ │ │ -501 { │ │ │ │ │ -502 "L1", │ │ │ │ │ -503 "L8", │ │ │ │ │ -504 "L5", │ │ │ │ │ -505 "L6", │ │ │ │ │ -506 "SJIS", │ │ │ │ │ -507 "koi8", │ │ │ │ │ -508 "sjis", │ │ │ │ │ -509 "R8", │ │ │ │ │ -510 "iso81", │ │ │ │ │ -511 "iso88", │ │ │ │ │ -512 "iso15", │ │ │ │ │ -513 "iso85", │ │ │ │ │ -514 "thai8", │ │ │ │ │ -515 "iso89", │ │ │ │ │ -516 "roma8", │ │ │ │ │ -517 "L4", │ │ │ │ │ -518 "utf8", │ │ │ │ │ -519 "866", │ │ │ │ │ -520 "iso815", │ │ │ │ │ -521 "big5", │ │ │ │ │ -522 "roman8", │ │ │ │ │ -523 "L2", │ │ │ │ │ -524 "646", │ │ │ │ │ -525 "iso86", │ │ │ │ │ -526 "iso88591", │ │ │ │ │ -527 "iso88598", │ │ │ │ │ -528 "iso_1", │ │ │ │ │ -529 "iso88595", │ │ │ │ │ -530 "iso88599", │ │ │ │ │ -531 "greek8", │ │ │ │ │ -532 "ISO8859-1", │ │ │ │ │ -533 "L7", │ │ │ │ │ -534 "ISO8859-8", │ │ │ │ │ -535 "iso885915", │ │ │ │ │ -536 "ISO8859-5", │ │ │ │ │ -537 "ISO8859-9", │ │ │ │ │ -538 "ISO-8859-1", │ │ │ │ │ -539 "ISO-8859-8", │ │ │ │ │ -540 "ISO8859-15", │ │ │ │ │ -541 "ISO-8859-5", │ │ │ │ │ -542 "ISO-8859-9", │ │ │ │ │ -543 "iso88596", │ │ │ │ │ -544 "ISO-IR-58", │ │ │ │ │ -545 "ISO-8859-15", │ │ │ │ │ -546 "JAVA", │ │ │ │ │ -547 "L3", │ │ │ │ │ -548 "iso14", │ │ │ │ │ -549 "iso84", │ │ │ │ │ -550 "ISO8859-6", │ │ │ │ │ -551 "ISO-IR-159", │ │ │ │ │ -552 "ISO-IR-199", │ │ │ │ │ -553 "ISO-IR-6", │ │ │ │ │ -554 "ISO-8859-6", │ │ │ │ │ -555 "862", │ │ │ │ │ -556 "HZ", │ │ │ │ │ -557 "iso646", │ │ │ │ │ -558 "ISO-IR-165", │ │ │ │ │ -559 "ISO_8859-1", │ │ │ │ │ -560 "ISO-8859-16", │ │ │ │ │ -561 "ISO_8859-8", │ │ │ │ │ -562 "ISO_8859-5", │ │ │ │ │ -563 "ISO_8859-9", │ │ │ │ │ -564 "JP", │ │ │ │ │ -565 "iso82", │ │ │ │ │ -566 "ISO_8859-15", │ │ │ │ │ -567 "iso88594", │ │ │ │ │ -568 "850", │ │ │ │ │ -569 "ISO-IR-148", │ │ │ │ │ -570 "ISO_8859-15:1998", │ │ │ │ │ -571 "ISO-IR-149", │ │ │ │ │ -572 "ISO-IR-166", │ │ │ │ │ -573 "ISO8859-4", │ │ │ │ │ -574 "ISO_8859-6", │ │ │ │ │ -575 "iso10", │ │ │ │ │ -576 "CN", │ │ │ │ │ -577 "ISO-8859-4", │ │ │ │ │ -578 "ISO_8859-16", │ │ │ │ │ -579 "KOREAN", │ │ │ │ │ -580 "ISO-IR-101", │ │ │ │ │ -581 "ISO-IR-14", │ │ │ │ │ -582 "ISO-8859-14", │ │ │ │ │ -583 "iso88592", │ │ │ │ │ -584 "KOI8-R", │ │ │ │ │ -585 "ISO-IR-109", │ │ │ │ │ -586 "C99", │ │ │ │ │ -587 "iso87", │ │ │ │ │ -588 "ISO_8859-14:1998", │ │ │ │ │ -589 "LATIN1", │ │ │ │ │ -590 "ISO8859-2", │ │ │ │ │ -591 "LATIN8", │ │ │ │ │ -592 "ISO-IR-179", │ │ │ │ │ -593 "LATIN5", │ │ │ │ │ -594 "ISO-IR-126", │ │ │ │ │ -595 "ASCII", │ │ │ │ │ -596 "ISO-8859-2", │ │ │ │ │ -597 "CP819", │ │ │ │ │ -598 "ISO_8859-4", │ │ │ │ │ -599 "TCVN", │ │ │ │ │ -600 "ISO-IR-138", │ │ │ │ │ -601 "hp15CN", │ │ │ │ │ -602 "ISO_8859-14", │ │ │ │ │ -603 "LATIN6", │ │ │ │ │ -604 "iso88597", │ │ │ │ │ -605 "ISO8859-10", │ │ │ │ │ -606 "ISO-IR-144", │ │ │ │ │ -607 "ISO_8859-16:2000", │ │ │ │ │ -608 "ISO8859-7", │ │ │ │ │ -609 "ISO-8859-10", │ │ │ │ │ -610 "iso13", │ │ │ │ │ -611 "iso83", │ │ │ │ │ -612 "ISO_8859-2", │ │ │ │ │ -613 "ISO-IR-110", │ │ │ │ │ -614 "ISO-8859-7", │ │ │ │ │ -615 "CP866", │ │ │ │ │ -616 "CP949", │ │ │ │ │ -617 "tis620", │ │ │ │ │ -618 "VISCII", │ │ │ │ │ -619 "ISO-IR-226", │ │ │ │ │ -620 "US", │ │ │ │ │ -621 "ISO-IR-87", │ │ │ │ │ -622 "ISO-IR-57", │ │ │ │ │ -623 "IBM819", │ │ │ │ │ -624 "macthai", │ │ │ │ │ -625 "MS-ANSI", │ │ │ │ │ -626 "macturk", │ │ │ │ │ -627 "CP1251", │ │ │ │ │ -628 "ISO-IR-157", │ │ │ │ │ -629 "CP1258", │ │ │ │ │ -630 "LATIN4", │ │ │ │ │ -631 "CP1255", │ │ │ │ │ -632 "ISO_8859-10:1992", │ │ │ │ │ -633 "cp866", │ │ │ │ │ -634 "cp949", │ │ │ │ │ -635 "ISO_8859-10", │ │ │ │ │ -636 "iso88593", │ │ │ │ │ -637 "ROMAN8", │ │ │ │ │ -638 "CHINESE", │ │ │ │ │ -639 "JIS0208", │ │ │ │ │ -640 "ISO_8859-7", │ │ │ │ │ -641 "macgreek", │ │ │ │ │ -642 "cp1251", │ │ │ │ │ -643 "ascii_8", │ │ │ │ │ -644 "cp1258", │ │ │ │ │ -645 "ECMA-118", │ │ │ │ │ -646 "cp1255", │ │ │ │ │ -647 "CP1256", │ │ │ │ │ -648 "IBM866", │ │ │ │ │ -649 "ISO-8859-3", │ │ │ │ │ -650 "LATIN2", │ │ │ │ │ -651 "BIG5", │ │ │ │ │ -652 "MULELAO-1", │ │ │ │ │ -653 "MS-EE", │ │ │ │ │ -654 "ISO646-CN", │ │ │ │ │ -655 "ISO-8859-13", │ │ │ │ │ -656 "ISO-IR-100", │ │ │ │ │ -657 "BIG-5", │ │ │ │ │ -658 "ISO-IR-127", │ │ │ │ │ -659 "GREEK8", │ │ │ │ │ -660 "cp1256", │ │ │ │ │ -661 "CP862", │ │ │ │ │ -662 "CP1361", │ │ │ │ │ -663 "GBK", │ │ │ │ │ -664 "ELOT_928", │ │ │ │ │ -665 "CP850", │ │ │ │ │ -666 "CP936", │ │ │ │ │ -667 "CP950", │ │ │ │ │ -668 "ISO_8859-3", │ │ │ │ │ -669 "CP1254", │ │ │ │ │ -670 "LATIN7", │ │ │ │ │ -671 "ISO_8859-13", │ │ │ │ │ -672 "cp862", │ │ │ │ │ -673 "CP874", │ │ │ │ │ -674 "CSKOI8R", │ │ │ │ │ -675 "EUCKR", │ │ │ │ │ -676 "cp850", │ │ │ │ │ -677 "cp936", │ │ │ │ │ -678 "cp950", │ │ │ │ │ -679 "EUC-KR", │ │ │ │ │ -680 "cp1254", │ │ │ │ │ -681 "ECMA-114", │ │ │ │ │ -682 "eucKR", │ │ │ │ │ -683 "CP1252", │ │ │ │ │ -684 "IBM862", │ │ │ │ │ -685 "CSISO159JISX02121990", │ │ │ │ │ -686 "cp874", │ │ │ │ │ -687 "ISO646-JP", │ │ │ │ │ -688 "CSASCII", │ │ │ │ │ -689 "EUCCN", │ │ │ │ │ -690 "UCS-4LE", │ │ │ │ │ -691 "IBM850", │ │ │ │ │ -692 "GREEK", │ │ │ │ │ -693 "ISO646-US", │ │ │ │ │ -694 "EUC-CN", │ │ │ │ │ -695 "TIS620", │ │ │ │ │ -696 "mac", │ │ │ │ │ -697 "LATIN3", │ │ │ │ │ -698 "CP1250", │ │ │ │ │ -699 "cp1252", │ │ │ │ │ -700 "UCS-2LE", │ │ │ │ │ -701 "CSISOLATIN1", │ │ │ │ │ -702 "TIS-620", │ │ │ │ │ -703 "TCVN5712-1", │ │ │ │ │ -704 "CSISOLATIN5", │ │ │ │ │ -705 "GB_1988-80", │ │ │ │ │ -706 "CP932", │ │ │ │ │ -707 "ASMO-708", │ │ │ │ │ -708 "CP1257", │ │ │ │ │ -709 "KOI8-T", │ │ │ │ │ -710 "cp1250", │ │ │ │ │ -711 "HP-ROMAN8", │ │ │ │ │ -712 "MS_KANJI", │ │ │ │ │ -713 "CSVISCII", │ │ │ │ │ -714 "CSISOLATIN6", │ │ │ │ │ -715 "KSC_5601", │ │ │ │ │ -716 "SHIFT-JIS", │ │ │ │ │ -717 "ISO-IR-203", │ │ │ │ │ -718 "cp932", │ │ │ │ │ -719 "JOHAB", │ │ │ │ │ -720 "cp1257", │ │ │ │ │ -721 "ARMSCII-8", │ │ │ │ │ -722 "ISO_646.IRV:1991", │ │ │ │ │ -723 "TCVN-5712", │ │ │ │ │ -724 "EUCJP", │ │ │ │ │ -725 "UTF8", │ │ │ │ │ -726 "X0201", │ │ │ │ │ -727 "GB2312", │ │ │ │ │ -728 "X0208", │ │ │ │ │ -729 "ISO-2022-KR", │ │ │ │ │ -730 "MS-CYRL", │ │ │ │ │ -731 "ISO-2022-JP-1", │ │ │ │ │ -732 "EUC-JP", │ │ │ │ │ -733 "UTF-8", │ │ │ │ │ -734 "VISCII1.1-1", │ │ │ │ │ -735 "CP367", │ │ │ │ │ -736 "CP1253", │ │ │ │ │ -737 "eucJP", │ │ │ │ │ -738 "mac_cyr", │ │ │ │ │ -739 "US-ASCII", │ │ │ │ │ -740 "SHIFT_JIS", │ │ │ │ │ -741 "CSISOLATIN4", │ │ │ │ │ -742 "TIS620-0", │ │ │ │ │ -743 "CSBIG5", │ │ │ │ │ -744 "ISO-2022-CN", │ │ │ │ │ -745 "CP437", │ │ │ │ │ -746 "CN-BIG5", │ │ │ │ │ -747 "cp1253", │ │ │ │ │ -748 "ARABIC", │ │ │ │ │ -749 "X0212", │ │ │ │ │ -750 "CSISO14JISC6220RO", │ │ │ │ │ -751 "GB18030", │ │ │ │ │ -752 "UCS-4BE", │ │ │ │ │ -753 "CSISOLATIN2", │ │ │ │ │ -754 "GEORGIAN-PS", │ │ │ │ │ -755 "KS_C_5601-1989", │ │ │ │ │ -756 "CP1133", │ │ │ │ │ -757 "cp437", │ │ │ │ │ -758 "ISO-2022-JP-2", │ │ │ │ │ -759 "IBM367", │ │ │ │ │ -760 "UCS-2BE", │ │ │ │ │ -761 "UNICODE-1-1", │ │ │ │ │ -762 "JIS_C6220-1969-RO", │ │ │ │ │ -763 "MS-ARAB", │ │ │ │ │ -764 "IBM437", │ │ │ │ │ -765 "MAC", │ │ │ │ │ -766 "UTF-16LE", │ │ │ │ │ -767 "ISO-2022-JP", │ │ │ │ │ -768 "CN-GB-ISOIR165", │ │ │ │ │ -769 "WINDOWS-1251", │ │ │ │ │ -770 "WINDOWS-1258", │ │ │ │ │ -771 "WINDOWS-1255", │ │ │ │ │ -772 "CSISOLATINARABIC", │ │ │ │ │ -773 "MS-HEBR", │ │ │ │ │ -774 "CYRILLIC", │ │ │ │ │ -775 "JIS_C6226-1983", │ │ │ │ │ -776 "WINDOWS-1256", │ │ │ │ │ -777 "KS_C_5601-1987", │ │ │ │ │ -778 "UHC", │ │ │ │ │ -779 "BIGFIVE", │ │ │ │ │ -780 "CN-GB", │ │ │ │ │ -781 "GEORGIAN-ACADEMY", │ │ │ │ │ -782 "BIG-FIVE", │ │ │ │ │ -783 "CSIBM866", │ │ │ │ │ -784 "UTF7", │ │ │ │ │ -785 "WINDOWS-1254", │ │ │ │ │ -786 "CSISOLATIN3", │ │ │ │ │ -787 "UNICODE-1-1-UTF-7", │ │ │ │ │ -788 "CSISO57GB1988", │ │ │ │ │ -789 "UTF-7", │ │ │ │ │ -790 "GB_2312-80", │ │ │ │ │ -791 "CSISO2022KR", │ │ │ │ │ -792 "WINDOWS-1252", │ │ │ │ │ -793 "KOI8-U", │ │ │ │ │ -794 "ISO_8859-8:1988", │ │ │ │ │ -795 "ISO_8859-5:1988", │ │ │ │ │ -796 "ISO_8859-9:1989", │ │ │ │ │ -797 "WINDOWS-1250", │ │ │ │ │ -798 "MACICELAND", │ │ │ │ │ -799 "CSISOLATINGREEK", │ │ │ │ │ -800 "ISO-2022-CN-EXT", │ │ │ │ │ -801 "JIS_X0201", │ │ │ │ │ -802 "JISX0201-1976", │ │ │ │ │ -803 "JIS_X0208", │ │ │ │ │ -804 "WINDOWS-1257", │ │ │ │ │ -805 "CSISO2022CN", │ │ │ │ │ -806 "MS-GREEK", │ │ │ │ │ -807 "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", │ │ │ │ │ -808 "KOI8-RU", │ │ │ │ │ -809 "TIS620.2529-1", │ │ │ │ │ -810 "MACROMAN", │ │ │ │ │ -811 "WINDOWS-874", │ │ │ │ │ -812 "ISO_8859-4:1988", │ │ │ │ │ -813 "CSKSC56011987", │ │ │ │ │ -814 "WINDOWS-1253", │ │ │ │ │ -815 "UTF-16BE", │ │ │ │ │ -816 "CSISO87JISX0208", │ │ │ │ │ -817 "CSISO2022JP2", │ │ │ │ │ -818 "JIS_X0212", │ │ │ │ │ -819 "MACROMANIA", │ │ │ │ │ -820 "CSUNICODE11", │ │ │ │ │ -821 "MACTHAI", │ │ │ │ │ -822 "UTF-32LE", │ │ │ │ │ -823 "CSHPROMAN8", │ │ │ │ │ -824 "ISO_8859-1:1987", │ │ │ │ │ -825 "BIG5HKSCS", │ │ │ │ │ -826 "ISO_8859-6:1987", │ │ │ │ │ -827 "JIS_X0212-1990", │ │ │ │ │ -828 "CSISO2022JP", │ │ │ │ │ -829 "BIG5-HKSCS", │ │ │ │ │ -830 "CSSHIFTJIS", │ │ │ │ │ -831 "ISO_8859-3:1988", │ │ │ │ │ -832 "JIS_X0208-1990", │ │ │ │ │ -833 "CSISOLATINHEBREW", │ │ │ │ │ -834 "CSISOLATINCYRILLIC", │ │ │ │ │ -835 "ISO-CELTIC", │ │ │ │ │ -836 "HZ-GB-2312", │ │ │ │ │ -837 "ANSI_X3.4-1968", │ │ │ │ │ -838 "HEBREW", │ │ │ │ │ -839 "ISO_8859-2:1987", │ │ │ │ │ -840 "CSISO58GB231280", │ │ │ │ │ -841 "CSGB2312", │ │ │ │ │ -842 "ANSI_X3.4-1986", │ │ │ │ │ -843 "CSUNICODE11UTF7", │ │ │ │ │ -844 "JIS_X0208-1983", │ │ │ │ │ -845 "ISO_8859-7:1987", │ │ │ │ │ -846 "EUCTW", │ │ │ │ │ -847 "CSEUCKR", │ │ │ │ │ -848 "EUC-TW", │ │ │ │ │ -849 "MACCROATIAN", │ │ │ │ │ -850 "eucTW", │ │ │ │ │ -851 "TIS620.2533-1", │ │ │ │ │ -852 "MACGREEK", │ │ │ │ │ -853 "UTF-32BE", │ │ │ │ │ -854 "MACINTOSH", │ │ │ │ │ -855 "UNICODELITTLE", │ │ │ │ │ -856 "MS-TURK", │ │ │ │ │ -857 "MACUKRAINE", │ │ │ │ │ -858 "IBM-CP1133", │ │ │ │ │ -859 "MACCENTRALEUROPE", │ │ │ │ │ -860 "NEXTSTEP", │ │ │ │ │ -861 "TIS620.2533-0", │ │ │ │ │ -862 "JIS_X0212.1990-0", │ │ │ │ │ -863 "MACARABIC", │ │ │ │ │ -864 "UNICODEBIG", │ │ │ │ │ -865 "CSPC862LATINHEBREW", │ │ │ │ │ -866 "MACCYRILLIC", │ │ │ │ │ -867 "WINBALTRIM", │ │ │ │ │ -868 "TCVN5712-1:1993", │ │ │ │ │ -869 "CSMACINTOSH", │ │ │ │ │ -870 "CSHALFWIDTHKATAKANA", │ │ │ │ │ -871 "MACHEBREW", │ │ │ │ │ -872 "MACTURKISH", │ │ │ │ │ -873 "CSPC850MULTILINGUAL", │ │ │ │ │ -874 "CSEUCTW", │ │ │ │ │ -875 "CSEUCPKDFMTJAPANESE" │ │ │ │ │ -876 }; │ │ │ │ │ -877#define stringpool ((const char *) &stringpool_contents) │ │ │ │ │ -878const struct charset_alias * │ │ │ │ │ -879charset_lookup (register const char *str, register size_t len) │ │ │ │ │ -880{ │ │ │ │ │ -881 static const struct charset_alias wordlist[] = │ │ │ │ │ -882 { │ │ │ │ │ -883 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -884 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -885 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -886#line 228 "charset_lookup.gperf" │ │ │ │ │ -887 {(int)offsetof(struct stringpool_t, stringpool_str15), 0}, │ │ │ │ │ -888#line 235 "charset_lookup.gperf" │ │ │ │ │ -889 {(int)offsetof(struct stringpool_t, stringpool_str16), 47}, │ │ │ │ │ -890#line 232 "charset_lookup.gperf" │ │ │ │ │ -891 {(int)offsetof(struct stringpool_t, stringpool_str17), 57}, │ │ │ │ │ -892 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -893 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -894#line 233 "charset_lookup.gperf" │ │ │ │ │ -895 {(int)offsetof(struct stringpool_t, stringpool_str27), 45}, │ │ │ │ │ -896#line 272 "charset_lookup.gperf" │ │ │ │ │ -897 {(int)offsetof(struct stringpool_t, stringpool_str28), 84}, │ │ │ │ │ -898 {-1,-1}, │ │ │ │ │ -899#line 375 "charset_lookup.gperf" │ │ │ │ │ -900 {(int)offsetof(struct stringpool_t, stringpool_str30), 65}, │ │ │ │ │ -901#line 359 "charset_lookup.gperf" │ │ │ │ │ -902 {(int)offsetof(struct stringpool_t, stringpool_str31), 84}, │ │ │ │ │ -903 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -904#line 268 "charset_lookup.gperf" │ │ │ │ │ -905 {(int)offsetof(struct stringpool_t, stringpool_str35), 83}, │ │ │ │ │ -906#line 337 "charset_lookup.gperf" │ │ │ │ │ -907 {(int)offsetof(struct stringpool_t, stringpool_str36), 0}, │ │ │ │ │ -908 {-1,-1}, │ │ │ │ │ -909#line 345 "charset_lookup.gperf" │ │ │ │ │ -910 {(int)offsetof(struct stringpool_t, stringpool_str38), 56}, │ │ │ │ │ -911#line 372 "charset_lookup.gperf" │ │ │ │ │ -912 {(int)offsetof(struct stringpool_t, stringpool_str39), 48}, │ │ │ │ │ -913#line 342 "charset_lookup.gperf" │ │ │ │ │ -914 {(int)offsetof(struct stringpool_t, stringpool_str40), 53}, │ │ │ │ │ -915#line 360 "charset_lookup.gperf" │ │ │ │ │ -916 {(int)offsetof(struct stringpool_t, stringpool_str41), 61}, │ │ │ │ │ -917#line 356 "charset_lookup.gperf" │ │ │ │ │ -918 {(int)offsetof(struct stringpool_t, stringpool_str42), 57}, │ │ │ │ │ -919#line 357 "charset_lookup.gperf" │ │ │ │ │ -920 {(int)offsetof(struct stringpool_t, stringpool_str43), 83}, │ │ │ │ │ -921#line 231 "charset_lookup.gperf" │ │ │ │ │ -922 {(int)offsetof(struct stringpool_t, stringpool_str44), 52}, │ │ │ │ │ -923#line 362 "charset_lookup.gperf" │ │ │ │ │ -924 {(int)offsetof(struct stringpool_t, stringpool_str45), 1}, │ │ │ │ │ -925#line 10 "charset_lookup.gperf" │ │ │ │ │ -926 {(int)offsetof(struct stringpool_t, stringpool_str46), 26}, │ │ │ │ │ -927#line 338 "charset_lookup.gperf" │ │ │ │ │ -928 {(int)offsetof(struct stringpool_t, stringpool_str47), 48}, │ │ │ │ │ -929#line 318 "charset_lookup.gperf" │ │ │ │ │ -930 {(int)offsetof(struct stringpool_t, stringpool_str48), 5}, │ │ │ │ │ -931 {-1,-1}, │ │ │ │ │ -932#line 358 "charset_lookup.gperf" │ │ │ │ │ -933 {(int)offsetof(struct stringpool_t, stringpool_str50), 83}, │ │ │ │ │ -934 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -935#line 229 "charset_lookup.gperf" │ │ │ │ │ -936 {(int)offsetof(struct stringpool_t, stringpool_str56), 50}, │ │ │ │ │ -937#line 7 "charset_lookup.gperf" │ │ │ │ │ -938 {(int)offsetof(struct stringpool_t, stringpool_str57), 88}, │ │ │ │ │ -939 {-1,-1}, {-1,-1}, │ │ │ │ │ -940#line 343 "charset_lookup.gperf" │ │ │ │ │ -941 {(int)offsetof(struct stringpool_t, stringpool_str60), 54}, │ │ │ │ │ -942 {-1,-1}, {-1,-1}, │ │ │ │ │ -943#line 346 "charset_lookup.gperf" │ │ │ │ │ -944 {(int)offsetof(struct stringpool_t, stringpool_str63), 0}, │ │ │ │ │ -945 {-1,-1}, │ │ │ │ │ -946#line 354 "charset_lookup.gperf" │ │ │ │ │ -947 {(int)offsetof(struct stringpool_t, stringpool_str65), 56}, │ │ │ │ │ -948#line 374 "charset_lookup.gperf" │ │ │ │ │ -949 {(int)offsetof(struct stringpool_t, stringpool_str66), 0}, │ │ │ │ │ -950#line 351 "charset_lookup.gperf" │ │ │ │ │ -951 {(int)offsetof(struct stringpool_t, stringpool_str67), 53}, │ │ │ │ │ -952 {-1,-1}, │ │ │ │ │ -953#line 355 "charset_lookup.gperf" │ │ │ │ │ -954 {(int)offsetof(struct stringpool_t, stringpool_str69), 57}, │ │ │ │ │ -955#line 368 "charset_lookup.gperf" │ │ │ │ │ -956 {(int)offsetof(struct stringpool_t, stringpool_str70), 55}, │ │ │ │ │ -957#line 168 "charset_lookup.gperf" │ │ │ │ │ -958 {(int)offsetof(struct stringpool_t, stringpool_str71), 0}, │ │ │ │ │ -959#line 234 "charset_lookup.gperf" │ │ │ │ │ -960 {(int)offsetof(struct stringpool_t, stringpool_str72), 46}, │ │ │ │ │ -961#line 176 "charset_lookup.gperf" │ │ │ │ │ -962 {(int)offsetof(struct stringpool_t, stringpool_str73), 56}, │ │ │ │ │ -963#line 347 "charset_lookup.gperf" │ │ │ │ │ -964 {(int)offsetof(struct stringpool_t, stringpool_str74), 48}, │ │ │ │ │ -965#line 173 "charset_lookup.gperf" │ │ │ │ │ -966 {(int)offsetof(struct stringpool_t, stringpool_str75), 53}, │ │ │ │ │ -967 {-1,-1}, │ │ │ │ │ -968#line 177 "charset_lookup.gperf" │ │ │ │ │ -969 {(int)offsetof(struct stringpool_t, stringpool_str77), 57}, │ │ │ │ │ -970 {-1,-1}, │ │ │ │ │ -971#line 127 "charset_lookup.gperf" │ │ │ │ │ -972 {(int)offsetof(struct stringpool_t, stringpool_str79), 0}, │ │ │ │ │ -973 {-1,-1}, │ │ │ │ │ -974#line 139 "charset_lookup.gperf" │ │ │ │ │ -975 {(int)offsetof(struct stringpool_t, stringpool_str81), 56}, │ │ │ │ │ -976#line 170 "charset_lookup.gperf" │ │ │ │ │ -977 {(int)offsetof(struct stringpool_t, stringpool_str82), 48}, │ │ │ │ │ -978#line 136 "charset_lookup.gperf" │ │ │ │ │ -979 {(int)offsetof(struct stringpool_t, stringpool_str83), 53}, │ │ │ │ │ -980 {-1,-1}, │ │ │ │ │ -981#line 140 "charset_lookup.gperf" │ │ │ │ │ -982 {(int)offsetof(struct stringpool_t, stringpool_str85), 57}, │ │ │ │ │ -983 {-1,-1}, │ │ │ │ │ -984#line 352 "charset_lookup.gperf" │ │ │ │ │ -985 {(int)offsetof(struct stringpool_t, stringpool_str87), 54}, │ │ │ │ │ -986 {-1,-1}, │ │ │ │ │ -987#line 162 "charset_lookup.gperf" │ │ │ │ │ -988 {(int)offsetof(struct stringpool_t, stringpool_str89), 8}, │ │ │ │ │ -989#line 131 "charset_lookup.gperf" │ │ │ │ │ -990 {(int)offsetof(struct stringpool_t, stringpool_str90), 48}, │ │ │ │ │ -991#line 206 "charset_lookup.gperf" │ │ │ │ │ -992 {(int)offsetof(struct stringpool_t, stringpool_str91), 63}, │ │ │ │ │ -993#line 230 "charset_lookup.gperf" │ │ │ │ │ -994 {(int)offsetof(struct stringpool_t, stringpool_str92), 51}, │ │ │ │ │ -995#line 371 "charset_lookup.gperf" │ │ │ │ │ -996 {(int)offsetof(struct stringpool_t, stringpool_str93), 47}, │ │ │ │ │ -997#line 341 "charset_lookup.gperf" │ │ │ │ │ -998 {(int)offsetof(struct stringpool_t, stringpool_str94), 52}, │ │ │ │ │ -999#line 174 "charset_lookup.gperf" │ │ │ │ │ -1000 {(int)offsetof(struct stringpool_t, stringpool_str95), 54}, │ │ │ │ │ -1001 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1002#line 154 "charset_lookup.gperf" │ │ │ │ │ -1003 {(int)offsetof(struct stringpool_t, stringpool_str100), 60}, │ │ │ │ │ -1004#line 158 "charset_lookup.gperf" │ │ │ │ │ -1005 {(int)offsetof(struct stringpool_t, stringpool_str101), 47}, │ │ │ │ │ -1006#line 163 "charset_lookup.gperf" │ │ │ │ │ -1007 {(int)offsetof(struct stringpool_t, stringpool_str102), 88}, │ │ │ │ │ -1008#line 137 "charset_lookup.gperf" │ │ │ │ │ -1009 {(int)offsetof(struct stringpool_t, stringpool_str103), 54}, │ │ │ │ │ -1010#line 9 "charset_lookup.gperf" │ │ │ │ │ -1011 {(int)offsetof(struct stringpool_t, stringpool_str104), 25}, │ │ │ │ │ -1012#line 112 "charset_lookup.gperf" │ │ │ │ │ -1013 {(int)offsetof(struct stringpool_t, stringpool_str105), 38}, │ │ │ │ │ -1014 {-1,-1}, │ │ │ │ │ -1015#line 373 "charset_lookup.gperf" │ │ │ │ │ -1016 {(int)offsetof(struct stringpool_t, stringpool_str107), 88}, │ │ │ │ │ -1017#line 155 "charset_lookup.gperf" │ │ │ │ │ -1018 {(int)offsetof(struct stringpool_t, stringpool_str108), 11}, │ │ │ │ │ -1019#line 179 "charset_lookup.gperf" │ │ │ │ │ -1020 {(int)offsetof(struct stringpool_t, stringpool_str109), 0}, │ │ │ │ │ -1021#line 132 "charset_lookup.gperf" │ │ │ │ │ -1022 {(int)offsetof(struct stringpool_t, stringpool_str110), 49}, │ │ │ │ │ -1023#line 202 "charset_lookup.gperf" │ │ │ │ │ -1024 {(int)offsetof(struct stringpool_t, stringpool_str111), 56}, │ │ │ │ │ -1025 {-1,-1}, │ │ │ │ │ -1026#line 196 "charset_lookup.gperf" │ │ │ │ │ -1027 {(int)offsetof(struct stringpool_t, stringpool_str113), 53}, │ │ │ │ │ -1028 {-1,-1}, │ │ │ │ │ -1029#line 204 "charset_lookup.gperf" │ │ │ │ │ -1030 {(int)offsetof(struct stringpool_t, stringpool_str115), 57}, │ │ │ │ │ -1031#line 219 "charset_lookup.gperf" │ │ │ │ │ -1032 {(int)offsetof(struct stringpool_t, stringpool_str116), 58}, │ │ │ │ │ -1033 {-1,-1}, │ │ │ │ │ -1034#line 339 "charset_lookup.gperf" │ │ │ │ │ -1035 {(int)offsetof(struct stringpool_t, stringpool_str118), 50}, │ │ │ │ │ -1036 {-1,-1}, │ │ │ │ │ -1037#line 185 "charset_lookup.gperf" │ │ │ │ │ -1038 {(int)offsetof(struct stringpool_t, stringpool_str120), 48}, │ │ │ │ │ -1039#line 350 "charset_lookup.gperf" │ │ │ │ │ -1040 {(int)offsetof(struct stringpool_t, stringpool_str121), 52}, │ │ │ │ │ -1041#line 8 "charset_lookup.gperf" │ │ │ │ │ -1042 {(int)offsetof(struct stringpool_t, stringpool_str122), 24}, │ │ │ │ │ -1043#line 151 "charset_lookup.gperf" │ │ │ │ │ -1044 {(int)offsetof(struct stringpool_t, stringpool_str123), 57}, │ │ │ │ │ -1045#line 186 "charset_lookup.gperf" │ │ │ │ │ -1046 {(int)offsetof(struct stringpool_t, stringpool_str124), 48}, │ │ │ │ │ -1047 {-1,-1}, {-1,-1}, │ │ │ │ │ -1048#line 152 "charset_lookup.gperf" │ │ │ │ │ -1049 {(int)offsetof(struct stringpool_t, stringpool_str127), 59}, │ │ │ │ │ -1050#line 156 "charset_lookup.gperf" │ │ │ │ │ -1051 {(int)offsetof(struct stringpool_t, stringpool_str128), 61}, │ │ │ │ │ -1052#line 172 "charset_lookup.gperf" │ │ │ │ │ -1053 {(int)offsetof(struct stringpool_t, stringpool_str129), 52}, │ │ │ │ │ -1054 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1055#line 198 "charset_lookup.gperf" │ │ │ │ │ -1056 {(int)offsetof(struct stringpool_t, stringpool_str133), 54}, │ │ │ │ │ -1057 {-1,-1}, │ │ │ │ │ -1058#line 369 "charset_lookup.gperf" │ │ │ │ │ -1059 {(int)offsetof(struct stringpool_t, stringpool_str135), 45}, │ │ │ │ │ -1060#line 25 "charset_lookup.gperf" │ │ │ │ │ -1061 {(int)offsetof(struct stringpool_t, stringpool_str136), 9}, │ │ │ │ │ -1062#line 135 "charset_lookup.gperf" │ │ │ │ │ -1063 {(int)offsetof(struct stringpool_t, stringpool_str137), 52}, │ │ │ │ │ -1064 {-1,-1}, {-1,-1}, │ │ │ │ │ -1065#line 187 "charset_lookup.gperf" │ │ │ │ │ -1066 {(int)offsetof(struct stringpool_t, stringpool_str140), 49}, │ │ │ │ │ -1067#line 224 "charset_lookup.gperf" │ │ │ │ │ -1068 {(int)offsetof(struct stringpool_t, stringpool_str141), 59}, │ │ │ │ │ -1069#line 143 "charset_lookup.gperf" │ │ │ │ │ -1070 {(int)offsetof(struct stringpool_t, stringpool_str142), 50}, │ │ │ │ │ -1071#line 149 "charset_lookup.gperf" │ │ │ │ │ -1072 {(int)offsetof(struct stringpool_t, stringpool_str143), 58}, │ │ │ │ │ -1073#line 130 "charset_lookup.gperf" │ │ │ │ │ -1074 {(int)offsetof(struct stringpool_t, stringpool_str144), 47}, │ │ │ │ │ -1075#line 348 "charset_lookup.gperf" │ │ │ │ │ -1076 {(int)offsetof(struct stringpool_t, stringpool_str145), 50}, │ │ │ │ │ -1077#line 220 "charset_lookup.gperf" │ │ │ │ │ -1078 {(int)offsetof(struct stringpool_t, stringpool_str146), 65}, │ │ │ │ │ -1079 {-1,-1}, │ │ │ │ │ -1080#line 144 "charset_lookup.gperf" │ │ │ │ │ -1081 {(int)offsetof(struct stringpool_t, stringpool_str148), 51}, │ │ │ │ │ -1082#line 23 "charset_lookup.gperf" │ │ │ │ │ -1083 {(int)offsetof(struct stringpool_t, stringpool_str149), 7}, │ │ │ │ │ -1084#line 344 "charset_lookup.gperf" │ │ │ │ │ -1085 {(int)offsetof(struct stringpool_t, stringpool_str150), 55}, │ │ │ │ │ -1086#line 184 "charset_lookup.gperf" │ │ │ │ │ -1087 {(int)offsetof(struct stringpool_t, stringpool_str151), 47}, │ │ │ │ │ -1088#line 236 "charset_lookup.gperf" │ │ │ │ │ -1089 {(int)offsetof(struct stringpool_t, stringpool_str152), 0}, │ │ │ │ │ -1090#line 171 "charset_lookup.gperf" │ │ │ │ │ -1091 {(int)offsetof(struct stringpool_t, stringpool_str153), 50}, │ │ │ │ │ -1092#line 243 "charset_lookup.gperf" │ │ │ │ │ -1093 {(int)offsetof(struct stringpool_t, stringpool_str154), 47}, │ │ │ │ │ -1094#line 157 "charset_lookup.gperf" │ │ │ │ │ -1095 {(int)offsetof(struct stringpool_t, stringpool_str155), 46}, │ │ │ │ │ -1096#line 240 "charset_lookup.gperf" │ │ │ │ │ -1097 {(int)offsetof(struct stringpool_t, stringpool_str156), 57}, │ │ │ │ │ -1098#line 146 "charset_lookup.gperf" │ │ │ │ │ -1099 {(int)offsetof(struct stringpool_t, stringpool_str157), 55}, │ │ │ │ │ -1100#line 15 "charset_lookup.gperf" │ │ │ │ │ -1101 {(int)offsetof(struct stringpool_t, stringpool_str158), 88}, │ │ │ │ │ -1102 {-1,-1}, {-1,-1}, │ │ │ │ │ -1103#line 133 "charset_lookup.gperf" │ │ │ │ │ -1104 {(int)offsetof(struct stringpool_t, stringpool_str161), 50}, │ │ │ │ │ -1105 {-1,-1}, {-1,-1}, │ │ │ │ │ -1106#line 42 "charset_lookup.gperf" │ │ │ │ │ -1107 {(int)offsetof(struct stringpool_t, stringpool_str164), 0}, │ │ │ │ │ -1108 {-1,-1}, {-1,-1}, │ │ │ │ │ -1109#line 194 "charset_lookup.gperf" │ │ │ │ │ -1110 {(int)offsetof(struct stringpool_t, stringpool_str167), 52}, │ │ │ │ │ -1111 {-1,-1}, {-1,-1}, │ │ │ │ │ -1112#line 273 "charset_lookup.gperf" │ │ │ │ │ -1113 {(int)offsetof(struct stringpool_t, stringpool_str170), 85}, │ │ │ │ │ -1114#line 148 "charset_lookup.gperf" │ │ │ │ │ -1115 {(int)offsetof(struct stringpool_t, stringpool_str171), 56}, │ │ │ │ │ -1116 {-1,-1}, │ │ │ │ │ -1117#line 336 "charset_lookup.gperf" │ │ │ │ │ -1118 {(int)offsetof(struct stringpool_t, stringpool_str173), 8}, │ │ │ │ │ -1119#line 183 "charset_lookup.gperf" │ │ │ │ │ -1120 {(int)offsetof(struct stringpool_t, stringpool_str174), 47}, │ │ │ │ │ -1121 {-1,-1}, │ │ │ │ │ -1122#line 241 "charset_lookup.gperf" │ │ │ │ │ -1123 {(int)offsetof(struct stringpool_t, stringpool_str176), 45}, │ │ │ │ │ -1124#line 353 "charset_lookup.gperf" │ │ │ │ │ -1125 {(int)offsetof(struct stringpool_t, stringpool_str177), 55}, │ │ │ │ │ -1126#line 169 "charset_lookup.gperf" │ │ │ │ │ -1127 {(int)offsetof(struct stringpool_t, stringpool_str178), 45}, │ │ │ │ │ -1128#line 150 "charset_lookup.gperf" │ │ │ │ │ -1129 {(int)offsetof(struct stringpool_t, stringpool_str179), 53}, │ │ │ │ │ -1130 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1131#line 188 "charset_lookup.gperf" │ │ │ │ │ -1132 {(int)offsetof(struct stringpool_t, stringpool_str183), 49}, │ │ │ │ │ -1133 {-1,-1}, │ │ │ │ │ -1134#line 175 "charset_lookup.gperf" │ │ │ │ │ -1135 {(int)offsetof(struct stringpool_t, stringpool_str185), 55}, │ │ │ │ │ -1136#line 128 "charset_lookup.gperf" │ │ │ │ │ -1137 {(int)offsetof(struct stringpool_t, stringpool_str186), 45}, │ │ │ │ │ -1138 {-1,-1}, {-1,-1}, │ │ │ │ │ -1139#line 370 "charset_lookup.gperf" │ │ │ │ │ -1140 {(int)offsetof(struct stringpool_t, stringpool_str189), 46}, │ │ │ │ │ -1141#line 340 "charset_lookup.gperf" │ │ │ │ │ -1142 {(int)offsetof(struct stringpool_t, stringpool_str190), 51}, │ │ │ │ │ -1143#line 190 "charset_lookup.gperf" │ │ │ │ │ -1144 {(int)offsetof(struct stringpool_t, stringpool_str191), 50}, │ │ │ │ │ -1145#line 145 "charset_lookup.gperf" │ │ │ │ │ -1146 {(int)offsetof(struct stringpool_t, stringpool_str192), 52}, │ │ │ │ │ -1147#line 138 "charset_lookup.gperf" │ │ │ │ │ -1148 {(int)offsetof(struct stringpool_t, stringpool_str193), 55}, │ │ │ │ │ -1149#line 45 "charset_lookup.gperf" │ │ │ │ │ -1150 {(int)offsetof(struct stringpool_t, stringpool_str194), 26}, │ │ │ │ │ -1151#line 49 "charset_lookup.gperf" │ │ │ │ │ -1152 {(int)offsetof(struct stringpool_t, stringpool_str195), 30}, │ │ │ │ │ -1153#line 361 "charset_lookup.gperf" │ │ │ │ │ -1154 {(int)offsetof(struct stringpool_t, stringpool_str196), 61}, │ │ │ │ │ -1155#line 302 "charset_lookup.gperf" │ │ │ │ │ -1156 {(int)offsetof(struct stringpool_t, stringpool_str197), 94}, │ │ │ │ │ -1157#line 160 "charset_lookup.gperf" │ │ │ │ │ -1158 {(int)offsetof(struct stringpool_t, stringpool_str198), 49}, │ │ │ │ │ -1159#line 292 "charset_lookup.gperf" │ │ │ │ │ -1160 {(int)offsetof(struct stringpool_t, stringpool_str199), 88}, │ │ │ │ │ -1161#line 164 "charset_lookup.gperf" │ │ │ │ │ -1162 {(int)offsetof(struct stringpool_t, stringpool_str200), 62}, │ │ │ │ │ -1163#line 161 "charset_lookup.gperf" │ │ │ │ │ -1164 {(int)offsetof(struct stringpool_t, stringpool_str201), 9}, │ │ │ │ │ -1165#line 117 "charset_lookup.gperf" │ │ │ │ │ -1166 {(int)offsetof(struct stringpool_t, stringpool_str202), 0}, │ │ │ │ │ -1167#line 379 "charset_lookup.gperf" │ │ │ │ │ -1168 {(int)offsetof(struct stringpool_t, stringpool_str203), 78}, │ │ │ │ │ -1169#line 258 "charset_lookup.gperf" │ │ │ │ │ -1170 {(int)offsetof(struct stringpool_t, stringpool_str204), 15}, │ │ │ │ │ -1171#line 380 "charset_lookup.gperf" │ │ │ │ │ -1172 {(int)offsetof(struct stringpool_t, stringpool_str205), 79}, │ │ │ │ │ -1173 {-1,-1}, │ │ │ │ │ -1174#line 31 "charset_lookup.gperf" │ │ │ │ │ -1175 {(int)offsetof(struct stringpool_t, stringpool_str207), 14}, │ │ │ │ │ -1176#line 153 "charset_lookup.gperf" │ │ │ │ │ -1177 {(int)offsetof(struct stringpool_t, stringpool_str208), 45}, │ │ │ │ │ -1178#line 38 "charset_lookup.gperf" │ │ │ │ │ -1179 {(int)offsetof(struct stringpool_t, stringpool_str209), 21}, │ │ │ │ │ -1180#line 239 "charset_lookup.gperf" │ │ │ │ │ -1181 {(int)offsetof(struct stringpool_t, stringpool_str210), 52}, │ │ │ │ │ -1182#line 35 "charset_lookup.gperf" │ │ │ │ │ -1183 {(int)offsetof(struct stringpool_t, stringpool_str211), 18}, │ │ │ │ │ -1184#line 181 "charset_lookup.gperf" │ │ │ │ │ -1185 {(int)offsetof(struct stringpool_t, stringpool_str212), 45}, │ │ │ │ │ -1186#line 331 "charset_lookup.gperf" │ │ │ │ │ -1187 {(int)offsetof(struct stringpool_t, stringpool_str213), 26}, │ │ │ │ │ -1188#line 366 "charset_lookup.gperf" │ │ │ │ │ -1189 {(int)offsetof(struct stringpool_t, stringpool_str214), 30}, │ │ │ │ │ -1190 {-1,-1}, │ │ │ │ │ -1191#line 180 "charset_lookup.gperf" │ │ │ │ │ -1192 {(int)offsetof(struct stringpool_t, stringpool_str216), 45}, │ │ │ │ │ -1193#line 349 "charset_lookup.gperf" │ │ │ │ │ -1194 {(int)offsetof(struct stringpool_t, stringpool_str217), 51}, │ │ │ │ │ -1195#line 269 "charset_lookup.gperf" │ │ │ │ │ -1196 {(int)offsetof(struct stringpool_t, stringpool_str218), 83}, │ │ │ │ │ -1197#line 24 "charset_lookup.gperf" │ │ │ │ │ -1198 {(int)offsetof(struct stringpool_t, stringpool_str219), 8}, │ │ │ │ │ -1199#line 207 "charset_lookup.gperf" │ │ │ │ │ -1200 {(int)offsetof(struct stringpool_t, stringpool_str220), 62}, │ │ │ │ │ -1201 {-1,-1}, {-1,-1}, │ │ │ │ │ -1202#line 200 "charset_lookup.gperf" │ │ │ │ │ -1203 {(int)offsetof(struct stringpool_t, stringpool_str223), 55}, │ │ │ │ │ -1204 {-1,-1}, │ │ │ │ │ -1205#line 378 "charset_lookup.gperf" │ │ │ │ │ -1206 {(int)offsetof(struct stringpool_t, stringpool_str225), 74}, │ │ │ │ │ -1207#line 320 "charset_lookup.gperf" │ │ │ │ │ -1208 {(int)offsetof(struct stringpool_t, stringpool_str226), 14}, │ │ │ │ │ -1209#line 363 "charset_lookup.gperf" │ │ │ │ │ -1210 {(int)offsetof(struct stringpool_t, stringpool_str227), 0}, │ │ │ │ │ -1211#line 327 "charset_lookup.gperf" │ │ │ │ │ -1212 {(int)offsetof(struct stringpool_t, stringpool_str228), 21}, │ │ │ │ │ -1213#line 90 "charset_lookup.gperf" │ │ │ │ │ -1214 {(int)offsetof(struct stringpool_t, stringpool_str229), 55}, │ │ │ │ │ -1215#line 324 "charset_lookup.gperf" │ │ │ │ │ -1216 {(int)offsetof(struct stringpool_t, stringpool_str230), 18}, │ │ │ │ │ -1217#line 36 "charset_lookup.gperf" │ │ │ │ │ -1218 {(int)offsetof(struct stringpool_t, stringpool_str231), 19}, │ │ │ │ │ -1219#line 120 "charset_lookup.gperf" │ │ │ │ │ -1220 {(int)offsetof(struct stringpool_t, stringpool_str232), 26}, │ │ │ │ │ -1221#line 134 "charset_lookup.gperf" │ │ │ │ │ -1222 {(int)offsetof(struct stringpool_t, stringpool_str233), 51}, │ │ │ │ │ -1223#line 237 "charset_lookup.gperf" │ │ │ │ │ -1224 {(int)offsetof(struct stringpool_t, stringpool_str234), 50}, │ │ │ │ │ -1225#line 19 "charset_lookup.gperf" │ │ │ │ │ -1226 {(int)offsetof(struct stringpool_t, stringpool_str235), 5}, │ │ │ │ │ -1227#line 266 "charset_lookup.gperf" │ │ │ │ │ -1228 {(int)offsetof(struct stringpool_t, stringpool_str236), 81}, │ │ │ │ │ -1229#line 261 "charset_lookup.gperf" │ │ │ │ │ -1230 {(int)offsetof(struct stringpool_t, stringpool_str237), 13}, │ │ │ │ │ -1231 {-1,-1}, │ │ │ │ │ -1232#line 165 "charset_lookup.gperf" │ │ │ │ │ -1233 {(int)offsetof(struct stringpool_t, stringpool_str239), 9}, │ │ │ │ │ -1234#line 129 "charset_lookup.gperf" │ │ │ │ │ -1235 {(int)offsetof(struct stringpool_t, stringpool_str240), 46}, │ │ │ │ │ -1236 {-1,-1}, │ │ │ │ │ -1237#line 142 "charset_lookup.gperf" │ │ │ │ │ -1238 {(int)offsetof(struct stringpool_t, stringpool_str242), 0}, │ │ │ │ │ -1239#line 17 "charset_lookup.gperf" │ │ │ │ │ -1240 {(int)offsetof(struct stringpool_t, stringpool_str243), 5}, │ │ │ │ │ -1241 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1242#line 147 "charset_lookup.gperf" │ │ │ │ │ -1243 {(int)offsetof(struct stringpool_t, stringpool_str247), 54}, │ │ │ │ │ -1244#line 109 "charset_lookup.gperf" │ │ │ │ │ -1245 {(int)offsetof(struct stringpool_t, stringpool_str248), 55}, │ │ │ │ │ -1246 {-1,-1}, │ │ │ │ │ -1247#line 325 "charset_lookup.gperf" │ │ │ │ │ -1248 {(int)offsetof(struct stringpool_t, stringpool_str250), 19}, │ │ │ │ │ -1249 {-1,-1}, │ │ │ │ │ -1250#line 44 "charset_lookup.gperf" │ │ │ │ │ -1251 {(int)offsetof(struct stringpool_t, stringpool_str252), 25}, │ │ │ │ │ -1252#line 39 "charset_lookup.gperf" │ │ │ │ │ -1253 {(int)offsetof(struct stringpool_t, stringpool_str253), 22}, │ │ │ │ │ -1254 {-1,-1}, │ │ │ │ │ -1255#line 103 "charset_lookup.gperf" │ │ │ │ │ -1256 {(int)offsetof(struct stringpool_t, stringpool_str255), 29}, │ │ │ │ │ -1257 {-1,-1}, {-1,-1}, │ │ │ │ │ -1258#line 91 "charset_lookup.gperf" │ │ │ │ │ -1259 {(int)offsetof(struct stringpool_t, stringpool_str258), 55}, │ │ │ │ │ -1260 {-1,-1}, │ │ │ │ │ -1261#line 43 "charset_lookup.gperf" │ │ │ │ │ -1262 {(int)offsetof(struct stringpool_t, stringpool_str260), 24}, │ │ │ │ │ -1263#line 48 "charset_lookup.gperf" │ │ │ │ │ -1264 {(int)offsetof(struct stringpool_t, stringpool_str261), 29}, │ │ │ │ │ -1265#line 50 "charset_lookup.gperf" │ │ │ │ │ -1266 {(int)offsetof(struct stringpool_t, stringpool_str262), 31}, │ │ │ │ │ -1267#line 192 "charset_lookup.gperf" │ │ │ │ │ -1268 {(int)offsetof(struct stringpool_t, stringpool_str263), 51}, │ │ │ │ │ -1269 {-1,-1}, │ │ │ │ │ -1270#line 34 "charset_lookup.gperf" │ │ │ │ │ -1271 {(int)offsetof(struct stringpool_t, stringpool_str265), 17}, │ │ │ │ │ -1272#line 242 "charset_lookup.gperf" │ │ │ │ │ -1273 {(int)offsetof(struct stringpool_t, stringpool_str266), 46}, │ │ │ │ │ -1274 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1275#line 182 "charset_lookup.gperf" │ │ │ │ │ -1276 {(int)offsetof(struct stringpool_t, stringpool_str270), 46}, │ │ │ │ │ -1277#line 330 "charset_lookup.gperf" │ │ │ │ │ -1278 {(int)offsetof(struct stringpool_t, stringpool_str271), 25}, │ │ │ │ │ -1279 {-1,-1}, │ │ │ │ │ -1280#line 46 "charset_lookup.gperf" │ │ │ │ │ -1281 {(int)offsetof(struct stringpool_t, stringpool_str273), 27}, │ │ │ │ │ -1282#line 79 "charset_lookup.gperf" │ │ │ │ │ -1283 {(int)offsetof(struct stringpool_t, stringpool_str274), 65}, │ │ │ │ │ -1284#line 98 "charset_lookup.gperf" │ │ │ │ │ -1285 {(int)offsetof(struct stringpool_t, stringpool_str275), 33}, │ │ │ │ │ -1286 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1287#line 329 "charset_lookup.gperf" │ │ │ │ │ -1288 {(int)offsetof(struct stringpool_t, stringpool_str279), 24}, │ │ │ │ │ -1289#line 365 "charset_lookup.gperf" │ │ │ │ │ -1290 {(int)offsetof(struct stringpool_t, stringpool_str280), 29}, │ │ │ │ │ -1291#line 367 "charset_lookup.gperf" │ │ │ │ │ -1292 {(int)offsetof(struct stringpool_t, stringpool_str281), 31}, │ │ │ │ │ -1293 {-1,-1}, │ │ │ │ │ -1294#line 94 "charset_lookup.gperf" │ │ │ │ │ -1295 {(int)offsetof(struct stringpool_t, stringpool_str283), 33}, │ │ │ │ │ -1296#line 323 "charset_lookup.gperf" │ │ │ │ │ -1297 {(int)offsetof(struct stringpool_t, stringpool_str284), 17}, │ │ │ │ │ -1298#line 89 "charset_lookup.gperf" │ │ │ │ │ -1299 {(int)offsetof(struct stringpool_t, stringpool_str285), 54}, │ │ │ │ │ -1300 {-1,-1}, {-1,-1}, │ │ │ │ │ -1301#line 334 "charset_lookup.gperf" │ │ │ │ │ -1302 {(int)offsetof(struct stringpool_t, stringpool_str288), 33}, │ │ │ │ │ -1303#line 32 "charset_lookup.gperf" │ │ │ │ │ -1304 {(int)offsetof(struct stringpool_t, stringpool_str289), 15}, │ │ │ │ │ -1305#line 119 "charset_lookup.gperf" │ │ │ │ │ -1306 {(int)offsetof(struct stringpool_t, stringpool_str290), 25}, │ │ │ │ │ -1307#line 61 "charset_lookup.gperf" │ │ │ │ │ -1308 {(int)offsetof(struct stringpool_t, stringpool_str291), 60}, │ │ │ │ │ -1309#line 332 "charset_lookup.gperf" │ │ │ │ │ -1310 {(int)offsetof(struct stringpool_t, stringpool_str292), 27}, │ │ │ │ │ -1311#line 166 "charset_lookup.gperf" │ │ │ │ │ -1312 {(int)offsetof(struct stringpool_t, stringpool_str293), 58}, │ │ │ │ │ -1313#line 51 "charset_lookup.gperf" │ │ │ │ │ -1314 {(int)offsetof(struct stringpool_t, stringpool_str294), 88}, │ │ │ │ │ -1315#line 96 "charset_lookup.gperf" │ │ │ │ │ -1316 {(int)offsetof(struct stringpool_t, stringpool_str295), 10}, │ │ │ │ │ -1317 {-1,-1}, │ │ │ │ │ -1318#line 286 "charset_lookup.gperf" │ │ │ │ │ -1319 {(int)offsetof(struct stringpool_t, stringpool_str297), 87}, │ │ │ │ │ -1320#line 118 "charset_lookup.gperf" │ │ │ │ │ -1321 {(int)offsetof(struct stringpool_t, stringpool_str298), 24}, │ │ │ │ │ -1322 {-1,-1}, {-1,-1}, │ │ │ │ │ -1323#line 108 "charset_lookup.gperf" │ │ │ │ │ -1324 {(int)offsetof(struct stringpool_t, stringpool_str301), 55}, │ │ │ │ │ -1325#line 167 "charset_lookup.gperf" │ │ │ │ │ -1326 {(int)offsetof(struct stringpool_t, stringpool_str302), 88}, │ │ │ │ │ -1327#line 92 "charset_lookup.gperf" │ │ │ │ │ -1328 {(int)offsetof(struct stringpool_t, stringpool_str303), 10}, │ │ │ │ │ -1329#line 278 "charset_lookup.gperf" │ │ │ │ │ -1330 {(int)offsetof(struct stringpool_t, stringpool_str304), 61}, │ │ │ │ │ -1331#line 376 "charset_lookup.gperf" │ │ │ │ │ -1332 {(int)offsetof(struct stringpool_t, stringpool_str305), 69}, │ │ │ │ │ -1333#line 238 "charset_lookup.gperf" │ │ │ │ │ -1334 {(int)offsetof(struct stringpool_t, stringpool_str306), 51}, │ │ │ │ │ -1335#line 30 "charset_lookup.gperf" │ │ │ │ │ -1336 {(int)offsetof(struct stringpool_t, stringpool_str307), 13}, │ │ │ │ │ -1337#line 321 "charset_lookup.gperf" │ │ │ │ │ -1338 {(int)offsetof(struct stringpool_t, stringpool_str308), 15}, │ │ │ │ │ -1339#line 284 "charset_lookup.gperf" │ │ │ │ │ -1340 {(int)offsetof(struct stringpool_t, stringpool_str309), 2}, │ │ │ │ │ -1341#line 69 "charset_lookup.gperf" │ │ │ │ │ -1342 {(int)offsetof(struct stringpool_t, stringpool_str310), 0}, │ │ │ │ │ -1343 {-1,-1}, │ │ │ │ │ -1344#line 277 "charset_lookup.gperf" │ │ │ │ │ -1345 {(int)offsetof(struct stringpool_t, stringpool_str312), 61}, │ │ │ │ │ -1346#line 275 "charset_lookup.gperf" │ │ │ │ │ -1347 {(int)offsetof(struct stringpool_t, stringpool_str313), 85}, │ │ │ │ │ -1348#line 73 "charset_lookup.gperf" │ │ │ │ │ -1349 {(int)offsetof(struct stringpool_t, stringpool_str314), 57}, │ │ │ │ │ -1350 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1351#line 104 "charset_lookup.gperf" │ │ │ │ │ -1352 {(int)offsetof(struct stringpool_t, stringpool_str318), 9}, │ │ │ │ │ -1353#line 47 "charset_lookup.gperf" │ │ │ │ │ -1354 {(int)offsetof(struct stringpool_t, stringpool_str319), 28}, │ │ │ │ │ -1355#line 16 "charset_lookup.gperf" │ │ │ │ │ -1356 {(int)offsetof(struct stringpool_t, stringpool_str320), 54}, │ │ │ │ │ -1357#line 37 "charset_lookup.gperf" │ │ │ │ │ -1358 {(int)offsetof(struct stringpool_t, stringpool_str321), 20}, │ │ │ │ │ -1359 {-1,-1}, {-1,-1}, │ │ │ │ │ -1360#line 222 "charset_lookup.gperf" │ │ │ │ │ -1361 {(int)offsetof(struct stringpool_t, stringpool_str324), 67}, │ │ │ │ │ -1362 {-1,-1}, │ │ │ │ │ -1363#line 319 "charset_lookup.gperf" │ │ │ │ │ -1364 {(int)offsetof(struct stringpool_t, stringpool_str326), 13}, │ │ │ │ │ -1365 {-1,-1}, {-1,-1}, │ │ │ │ │ -1366#line 111 "charset_lookup.gperf" │ │ │ │ │ -1367 {(int)offsetof(struct stringpool_t, stringpool_str329), 83}, │ │ │ │ │ -1368 {-1,-1}, │ │ │ │ │ -1369#line 265 "charset_lookup.gperf" │ │ │ │ │ -1370 {(int)offsetof(struct stringpool_t, stringpool_str331), 84}, │ │ │ │ │ -1371 {-1,-1}, │ │ │ │ │ -1372#line 87 "charset_lookup.gperf" │ │ │ │ │ -1373 {(int)offsetof(struct stringpool_t, stringpool_str333), 94}, │ │ │ │ │ -1374#line 74 "charset_lookup.gperf" │ │ │ │ │ -1375 {(int)offsetof(struct stringpool_t, stringpool_str334), 45}, │ │ │ │ │ -1376#line 225 "charset_lookup.gperf" │ │ │ │ │ -1377 {(int)offsetof(struct stringpool_t, stringpool_str335), 59}, │ │ │ │ │ -1378#line 270 "charset_lookup.gperf" │ │ │ │ │ -1379 {(int)offsetof(struct stringpool_t, stringpool_str336), 84}, │ │ │ │ │ -1380#line 159 "charset_lookup.gperf" │ │ │ │ │ -1381 {(int)offsetof(struct stringpool_t, stringpool_str337), 48}, │ │ │ │ │ -1382#line 364 "charset_lookup.gperf" │ │ │ │ │ -1383 {(int)offsetof(struct stringpool_t, stringpool_str338), 28}, │ │ │ │ │ -1384#line 218 "charset_lookup.gperf" │ │ │ │ │ -1385 {(int)offsetof(struct stringpool_t, stringpool_str339), 22}, │ │ │ │ │ -1386#line 326 "charset_lookup.gperf" │ │ │ │ │ -1387 {(int)offsetof(struct stringpool_t, stringpool_str340), 20}, │ │ │ │ │ -1388 {-1,-1}, │ │ │ │ │ -1389#line 14 "charset_lookup.gperf" │ │ │ │ │ -1390 {(int)offsetof(struct stringpool_t, stringpool_str342), 4}, │ │ │ │ │ -1391 {-1,-1}, {-1,-1}, │ │ │ │ │ -1392#line 178 "charset_lookup.gperf" │ │ │ │ │ -1393 {(int)offsetof(struct stringpool_t, stringpool_str345), 88}, │ │ │ │ │ -1394 {-1,-1}, │ │ │ │ │ -1395#line 274 "charset_lookup.gperf" │ │ │ │ │ -1396 {(int)offsetof(struct stringpool_t, stringpool_str347), 85}, │ │ │ │ │ -1397 {-1,-1}, │ │ │ │ │ -1398#line 97 "charset_lookup.gperf" │ │ │ │ │ -1399 {(int)offsetof(struct stringpool_t, stringpool_str349), 32}, │ │ │ │ │ -1400#line 301 "charset_lookup.gperf" │ │ │ │ │ -1401 {(int)offsetof(struct stringpool_t, stringpool_str350), 1}, │ │ │ │ │ -1402#line 315 "charset_lookup.gperf" │ │ │ │ │ -1403 {(int)offsetof(struct stringpool_t, stringpool_str351), 64}, │ │ │ │ │ -1404#line 102 "charset_lookup.gperf" │ │ │ │ │ -1405 {(int)offsetof(struct stringpool_t, stringpool_str352), 10}, │ │ │ │ │ -1406#line 316 "charset_lookup.gperf" │ │ │ │ │ -1407 {(int)offsetof(struct stringpool_t, stringpool_str353), 62}, │ │ │ │ │ -1408#line 126 "charset_lookup.gperf" │ │ │ │ │ -1409 {(int)offsetof(struct stringpool_t, stringpool_str354), 44}, │ │ │ │ │ -1410#line 260 "charset_lookup.gperf" │ │ │ │ │ -1411 {(int)offsetof(struct stringpool_t, stringpool_str355), 14}, │ │ │ │ │ -1412#line 124 "charset_lookup.gperf" │ │ │ │ │ -1413 {(int)offsetof(struct stringpool_t, stringpool_str356), 42}, │ │ │ │ │ -1414#line 93 "charset_lookup.gperf" │ │ │ │ │ -1415 {(int)offsetof(struct stringpool_t, stringpool_str357), 32}, │ │ │ │ │ -1416#line 299 "charset_lookup.gperf" │ │ │ │ │ -1417 {(int)offsetof(struct stringpool_t, stringpool_str358), 1}, │ │ │ │ │ -1418#line 303 "charset_lookup.gperf" │ │ │ │ │ -1419 {(int)offsetof(struct stringpool_t, stringpool_str359), 94}, │ │ │ │ │ -1420#line 40 "charset_lookup.gperf" │ │ │ │ │ -1421 {(int)offsetof(struct stringpool_t, stringpool_str360), 88}, │ │ │ │ │ -1422#line 33 "charset_lookup.gperf" │ │ │ │ │ -1423 {(int)offsetof(struct stringpool_t, stringpool_str361), 16}, │ │ │ │ │ -1424#line 333 "charset_lookup.gperf" │ │ │ │ │ -1425 {(int)offsetof(struct stringpool_t, stringpool_str362), 32}, │ │ │ │ │ -1426 {-1,-1}, │ │ │ │ │ -1427#line 377 "charset_lookup.gperf" │ │ │ │ │ -1428 {(int)offsetof(struct stringpool_t, stringpool_str364), 73}, │ │ │ │ │ -1429#line 293 "charset_lookup.gperf" │ │ │ │ │ -1430 {(int)offsetof(struct stringpool_t, stringpool_str365), 88}, │ │ │ │ │ -1431#line 271 "charset_lookup.gperf" │ │ │ │ │ -1432 {(int)offsetof(struct stringpool_t, stringpool_str366), 84}, │ │ │ │ │ -1433 {-1,-1}, │ │ │ │ │ -1434#line 72 "charset_lookup.gperf" │ │ │ │ │ -1435 {(int)offsetof(struct stringpool_t, stringpool_str368), 52}, │ │ │ │ │ -1436#line 279 "charset_lookup.gperf" │ │ │ │ │ -1437 {(int)offsetof(struct stringpool_t, stringpool_str369), 61}, │ │ │ │ │ -1438 {-1,-1}, │ │ │ │ │ -1439#line 52 "charset_lookup.gperf" │ │ │ │ │ -1440 {(int)offsetof(struct stringpool_t, stringpool_str371), 5}, │ │ │ │ │ -1441 {-1,-1}, {-1,-1}, │ │ │ │ │ -1442#line 121 "charset_lookup.gperf" │ │ │ │ │ -1443 {(int)offsetof(struct stringpool_t, stringpool_str374), 39}, │ │ │ │ │ -1444 {-1,-1}, {-1,-1}, │ │ │ │ │ -1445#line 41 "charset_lookup.gperf" │ │ │ │ │ -1446 {(int)offsetof(struct stringpool_t, stringpool_str377), 23}, │ │ │ │ │ -1447 {-1,-1}, │ │ │ │ │ -1448#line 26 "charset_lookup.gperf" │ │ │ │ │ -1449 {(int)offsetof(struct stringpool_t, stringpool_str379), 5}, │ │ │ │ │ -1450#line 322 "charset_lookup.gperf" │ │ │ │ │ -1451 {(int)offsetof(struct stringpool_t, stringpool_str380), 16}, │ │ │ │ │ -1452#line 13 "charset_lookup.gperf" │ │ │ │ │ -1453 {(int)offsetof(struct stringpool_t, stringpool_str381), 54}, │ │ │ │ │ -1454 {-1,-1}, │ │ │ │ │ -1455#line 317 "charset_lookup.gperf" │ │ │ │ │ -1456 {(int)offsetof(struct stringpool_t, stringpool_str383), 60}, │ │ │ │ │ -1457#line 60 "charset_lookup.gperf" │ │ │ │ │ -1458 {(int)offsetof(struct stringpool_t, stringpool_str384), 58}, │ │ │ │ │ -1459 {-1,-1}, {-1,-1}, │ │ │ │ │ -1460#line 101 "charset_lookup.gperf" │ │ │ │ │ -1461 {(int)offsetof(struct stringpool_t, stringpool_str387), 35}, │ │ │ │ │ -1462 {-1,-1}, │ │ │ │ │ -1463#line 285 "charset_lookup.gperf" │ │ │ │ │ -1464 {(int)offsetof(struct stringpool_t, stringpool_str389), 86}, │ │ │ │ │ -1465 {-1,-1}, {-1,-1}, │ │ │ │ │ -1466#line 70 "charset_lookup.gperf" │ │ │ │ │ -1467 {(int)offsetof(struct stringpool_t, stringpool_str392), 50}, │ │ │ │ │ -1468#line 107 "charset_lookup.gperf" │ │ │ │ │ -1469 {(int)offsetof(struct stringpool_t, stringpool_str393), 37}, │ │ │ │ │ -1470#line 227 "charset_lookup.gperf" │ │ │ │ │ -1471 {(int)offsetof(struct stringpool_t, stringpool_str394), 59}, │ │ │ │ │ -1472#line 29 "charset_lookup.gperf" │ │ │ │ │ -1473 {(int)offsetof(struct stringpool_t, stringpool_str395), 12}, │ │ │ │ │ -1474#line 328 "charset_lookup.gperf" │ │ │ │ │ -1475 {(int)offsetof(struct stringpool_t, stringpool_str396), 23}, │ │ │ │ │ -1476#line 125 "charset_lookup.gperf" │ │ │ │ │ -1477 {(int)offsetof(struct stringpool_t, stringpool_str397), 43}, │ │ │ │ │ -1478#line 115 "charset_lookup.gperf" │ │ │ │ │ -1479 {(int)offsetof(struct stringpool_t, stringpool_str398), 88}, │ │ │ │ │ -1480 {-1,-1}, {-1,-1}, │ │ │ │ │ -1481#line 283 "charset_lookup.gperf" │ │ │ │ │ -1482 {(int)offsetof(struct stringpool_t, stringpool_str401), 3}, │ │ │ │ │ -1483#line 288 "charset_lookup.gperf" │ │ │ │ │ -1484 {(int)offsetof(struct stringpool_t, stringpool_str402), 3}, │ │ │ │ │ -1485 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1486#line 209 "charset_lookup.gperf" │ │ │ │ │ -1487 {(int)offsetof(struct stringpool_t, stringpool_str409), 58}, │ │ │ │ │ -1488 {-1,-1}, │ │ │ │ │ -1489#line 259 "charset_lookup.gperf" │ │ │ │ │ -1490 {(int)offsetof(struct stringpool_t, stringpool_str411), 19}, │ │ │ │ │ -1491 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1492#line 116 "charset_lookup.gperf" │ │ │ │ │ -1493 {(int)offsetof(struct stringpool_t, stringpool_str415), 23}, │ │ │ │ │ -1494 {-1,-1}, {-1,-1}, │ │ │ │ │ -1495#line 244 "charset_lookup.gperf" │ │ │ │ │ -1496 {(int)offsetof(struct stringpool_t, stringpool_str418), 69}, │ │ │ │ │ -1497 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1498#line 295 "charset_lookup.gperf" │ │ │ │ │ -1499 {(int)offsetof(struct stringpool_t, stringpool_str422), 90}, │ │ │ │ │ -1500 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1501#line 123 "charset_lookup.gperf" │ │ │ │ │ -1502 {(int)offsetof(struct stringpool_t, stringpool_str428), 41}, │ │ │ │ │ -1503#line 28 "charset_lookup.gperf" │ │ │ │ │ -1504 {(int)offsetof(struct stringpool_t, stringpool_str429), 11}, │ │ │ │ │ -1505 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1506#line 306 "charset_lookup.gperf" │ │ │ │ │ -1507 {(int)offsetof(struct stringpool_t, stringpool_str434), 14}, │ │ │ │ │ -1508#line 313 "charset_lookup.gperf" │ │ │ │ │ -1509 {(int)offsetof(struct stringpool_t, stringpool_str435), 21}, │ │ │ │ │ -1510#line 310 "charset_lookup.gperf" │ │ │ │ │ -1511 {(int)offsetof(struct stringpool_t, stringpool_str436), 18}, │ │ │ │ │ -1512 {-1,-1}, │ │ │ │ │ -1513#line 75 "charset_lookup.gperf" │ │ │ │ │ -1514 {(int)offsetof(struct stringpool_t, stringpool_str438), 54}, │ │ │ │ │ -1515 {-1,-1}, {-1,-1}, │ │ │ │ │ -1516#line 263 "charset_lookup.gperf" │ │ │ │ │ -1517 {(int)offsetof(struct stringpool_t, stringpool_str441), 18}, │ │ │ │ │ -1518 {-1,-1}, {-1,-1}, │ │ │ │ │ -1519#line 88 "charset_lookup.gperf" │ │ │ │ │ -1520 {(int)offsetof(struct stringpool_t, stringpool_str444), 53}, │ │ │ │ │ -1521#line 210 "charset_lookup.gperf" │ │ │ │ │ -1522 {(int)offsetof(struct stringpool_t, stringpool_str445), 62}, │ │ │ │ │ -1523#line 311 "charset_lookup.gperf" │ │ │ │ │ -1524 {(int)offsetof(struct stringpool_t, stringpool_str446), 19}, │ │ │ │ │ -1525 {-1,-1}, │ │ │ │ │ -1526#line 226 "charset_lookup.gperf" │ │ │ │ │ -1527 {(int)offsetof(struct stringpool_t, stringpool_str448), 59}, │ │ │ │ │ -1528 {-1,-1}, │ │ │ │ │ -1529#line 287 "charset_lookup.gperf" │ │ │ │ │ -1530 {(int)offsetof(struct stringpool_t, stringpool_str450), 30}, │ │ │ │ │ -1531 {-1,-1}, │ │ │ │ │ -1532#line 22 "charset_lookup.gperf" │ │ │ │ │ -1533 {(int)offsetof(struct stringpool_t, stringpool_str452), 5}, │ │ │ │ │ -1534 {-1,-1}, │ │ │ │ │ -1535#line 27 "charset_lookup.gperf" │ │ │ │ │ -1536 {(int)offsetof(struct stringpool_t, stringpool_str454), 10}, │ │ │ │ │ -1537#line 106 "charset_lookup.gperf" │ │ │ │ │ -1538 {(int)offsetof(struct stringpool_t, stringpool_str455), 36}, │ │ │ │ │ -1539 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1540#line 18 "charset_lookup.gperf" │ │ │ │ │ -1541 {(int)offsetof(struct stringpool_t, stringpool_str460), 5}, │ │ │ │ │ -1542#line 59 "charset_lookup.gperf" │ │ │ │ │ -1543 {(int)offsetof(struct stringpool_t, stringpool_str461), 26}, │ │ │ │ │ -1544#line 300 "charset_lookup.gperf" │ │ │ │ │ -1545 {(int)offsetof(struct stringpool_t, stringpool_str462), 93}, │ │ │ │ │ -1546#line 309 "charset_lookup.gperf" │ │ │ │ │ -1547 {(int)offsetof(struct stringpool_t, stringpool_str463), 17}, │ │ │ │ │ -1548#line 71 "charset_lookup.gperf" │ │ │ │ │ -1549 {(int)offsetof(struct stringpool_t, stringpool_str464), 51}, │ │ │ │ │ -1550#line 289 "charset_lookup.gperf" │ │ │ │ │ -1551 {(int)offsetof(struct stringpool_t, stringpool_str465), 93}, │ │ │ │ │ -1552 {-1,-1}, │ │ │ │ │ -1553#line 66 "charset_lookup.gperf" │ │ │ │ │ -1554 {(int)offsetof(struct stringpool_t, stringpool_str467), 9}, │ │ │ │ │ -1555 {-1,-1}, {-1,-1}, │ │ │ │ │ -1556#line 298 "charset_lookup.gperf" │ │ │ │ │ -1557 {(int)offsetof(struct stringpool_t, stringpool_str470), 93}, │ │ │ │ │ -1558 {-1,-1}, │ │ │ │ │ -1559#line 105 "charset_lookup.gperf" │ │ │ │ │ -1560 {(int)offsetof(struct stringpool_t, stringpool_str472), 8}, │ │ │ │ │ -1561 {-1,-1}, │ │ │ │ │ -1562#line 65 "charset_lookup.gperf" │ │ │ │ │ -1563 {(int)offsetof(struct stringpool_t, stringpool_str474), 44}, │ │ │ │ │ -1564#line 307 "charset_lookup.gperf" │ │ │ │ │ -1565 {(int)offsetof(struct stringpool_t, stringpool_str475), 15}, │ │ │ │ │ -1566#line 223 "charset_lookup.gperf" │ │ │ │ │ -1567 {(int)offsetof(struct stringpool_t, stringpool_str476), 68}, │ │ │ │ │ -1568 {-1,-1}, {-1,-1}, │ │ │ │ │ -1569#line 203 "charset_lookup.gperf" │ │ │ │ │ -1570 {(int)offsetof(struct stringpool_t, stringpool_str479), 56}, │ │ │ │ │ -1571#line 197 "charset_lookup.gperf" │ │ │ │ │ -1572 {(int)offsetof(struct stringpool_t, stringpool_str480), 53}, │ │ │ │ │ -1573 {-1,-1}, {-1,-1}, │ │ │ │ │ -1574#line 205 "charset_lookup.gperf" │ │ │ │ │ -1575 {(int)offsetof(struct stringpool_t, stringpool_str483), 57}, │ │ │ │ │ -1576#line 305 "charset_lookup.gperf" │ │ │ │ │ -1577 {(int)offsetof(struct stringpool_t, stringpool_str484), 13}, │ │ │ │ │ -1578#line 251 "charset_lookup.gperf" │ │ │ │ │ -1579 {(int)offsetof(struct stringpool_t, stringpool_str485), 76}, │ │ │ │ │ -1580#line 77 "charset_lookup.gperf" │ │ │ │ │ -1581 {(int)offsetof(struct stringpool_t, stringpool_str486), 55}, │ │ │ │ │ -1582#line 122 "charset_lookup.gperf" │ │ │ │ │ -1583 {(int)offsetof(struct stringpool_t, stringpool_str487), 40}, │ │ │ │ │ -1584#line 211 "charset_lookup.gperf" │ │ │ │ │ -1585 {(int)offsetof(struct stringpool_t, stringpool_str488), 64}, │ │ │ │ │ -1586#line 208 "charset_lookup.gperf" │ │ │ │ │ -1587 {(int)offsetof(struct stringpool_t, stringpool_str489), 64}, │ │ │ │ │ -1588#line 212 "charset_lookup.gperf" │ │ │ │ │ -1589 {(int)offsetof(struct stringpool_t, stringpool_str490), 62}, │ │ │ │ │ -1590#line 312 "charset_lookup.gperf" │ │ │ │ │ -1591 {(int)offsetof(struct stringpool_t, stringpool_str491), 20}, │ │ │ │ │ -1592 {-1,-1}, {-1,-1}, │ │ │ │ │ -1593#line 62 "charset_lookup.gperf" │ │ │ │ │ -1594 {(int)offsetof(struct stringpool_t, stringpool_str494), 39}, │ │ │ │ │ -1595 {-1,-1}, │ │ │ │ │ -1596#line 262 "charset_lookup.gperf" │ │ │ │ │ -1597 {(int)offsetof(struct stringpool_t, stringpool_str496), 16}, │ │ │ │ │ -1598 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1599#line 100 "charset_lookup.gperf" │ │ │ │ │ -1600 {(int)offsetof(struct stringpool_t, stringpool_str500), 32}, │ │ │ │ │ -1601 {-1,-1}, {-1,-1}, │ │ │ │ │ -1602#line 221 "charset_lookup.gperf" │ │ │ │ │ -1603 {(int)offsetof(struct stringpool_t, stringpool_str503), 66}, │ │ │ │ │ -1604#line 280 "charset_lookup.gperf" │ │ │ │ │ -1605 {(int)offsetof(struct stringpool_t, stringpool_str504), 61}, │ │ │ │ │ -1606#line 253 "charset_lookup.gperf" │ │ │ │ │ -1607 {(int)offsetof(struct stringpool_t, stringpool_str505), 69}, │ │ │ │ │ -1608#line 314 "charset_lookup.gperf" │ │ │ │ │ -1609 {(int)offsetof(struct stringpool_t, stringpool_str506), 27}, │ │ │ │ │ -1610#line 195 "charset_lookup.gperf" │ │ │ │ │ -1611 {(int)offsetof(struct stringpool_t, stringpool_str507), 52}, │ │ │ │ │ -1612 {-1,-1}, │ │ │ │ │ -1613#line 80 "charset_lookup.gperf" │ │ │ │ │ -1614 {(int)offsetof(struct stringpool_t, stringpool_str509), 59}, │ │ │ │ │ -1615 {-1,-1}, │ │ │ │ │ -1616#line 308 "charset_lookup.gperf" │ │ │ │ │ -1617 {(int)offsetof(struct stringpool_t, stringpool_str511), 16}, │ │ │ │ │ -1618 {-1,-1}, {-1,-1}, │ │ │ │ │ -1619#line 294 "charset_lookup.gperf" │ │ │ │ │ -1620 {(int)offsetof(struct stringpool_t, stringpool_str514), 89}, │ │ │ │ │ -1621#line 68 "charset_lookup.gperf" │ │ │ │ │ -1622 {(int)offsetof(struct stringpool_t, stringpool_str515), 62}, │ │ │ │ │ -1623#line 64 "charset_lookup.gperf" │ │ │ │ │ -1624 {(int)offsetof(struct stringpool_t, stringpool_str516), 43}, │ │ │ │ │ -1625 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1626#line 215 "charset_lookup.gperf" │ │ │ │ │ -1627 {(int)offsetof(struct stringpool_t, stringpool_str520), 60}, │ │ │ │ │ -1628#line 254 "charset_lookup.gperf" │ │ │ │ │ -1629 {(int)offsetof(struct stringpool_t, stringpool_str521), 77}, │ │ │ │ │ -1630#line 85 "charset_lookup.gperf" │ │ │ │ │ -1631 {(int)offsetof(struct stringpool_t, stringpool_str522), 3}, │ │ │ │ │ -1632#line 255 "charset_lookup.gperf" │ │ │ │ │ -1633 {(int)offsetof(struct stringpool_t, stringpool_str523), 78}, │ │ │ │ │ -1634 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1635#line 297 "charset_lookup.gperf" │ │ │ │ │ -1636 {(int)offsetof(struct stringpool_t, stringpool_str528), 92}, │ │ │ │ │ -1637 {-1,-1}, {-1,-1}, │ │ │ │ │ -1638#line 58 "charset_lookup.gperf" │ │ │ │ │ -1639 {(int)offsetof(struct stringpool_t, stringpool_str531), 83}, │ │ │ │ │ -1640 {-1,-1}, {-1,-1}, │ │ │ │ │ -1641#line 189 "charset_lookup.gperf" │ │ │ │ │ -1642 {(int)offsetof(struct stringpool_t, stringpool_str534), 0}, │ │ │ │ │ -1643 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1644#line 21 "charset_lookup.gperf" │ │ │ │ │ -1645 {(int)offsetof(struct stringpool_t, stringpool_str541), 6}, │ │ │ │ │ -1646 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1647#line 199 "charset_lookup.gperf" │ │ │ │ │ -1648 {(int)offsetof(struct stringpool_t, stringpool_str546), 54}, │ │ │ │ │ -1649#line 216 "charset_lookup.gperf" │ │ │ │ │ -1650 {(int)offsetof(struct stringpool_t, stringpool_str547), 60}, │ │ │ │ │ -1651#line 63 "charset_lookup.gperf" │ │ │ │ │ -1652 {(int)offsetof(struct stringpool_t, stringpool_str548), 41}, │ │ │ │ │ -1653#line 20 "charset_lookup.gperf" │ │ │ │ │ -1654 {(int)offsetof(struct stringpool_t, stringpool_str549), 6}, │ │ │ │ │ -1655 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1656#line 84 "charset_lookup.gperf" │ │ │ │ │ -1657 {(int)offsetof(struct stringpool_t, stringpool_str553), 84}, │ │ │ │ │ -1658 {-1,-1}, │ │ │ │ │ -1659#line 193 "charset_lookup.gperf" │ │ │ │ │ -1660 {(int)offsetof(struct stringpool_t, stringpool_str555), 51}, │ │ │ │ │ -1661 {-1,-1}, │ │ │ │ │ -1662#line 214 "charset_lookup.gperf" │ │ │ │ │ -1663 {(int)offsetof(struct stringpool_t, stringpool_str557), 62}, │ │ │ │ │ -1664 {-1,-1}, {-1,-1}, │ │ │ │ │ -1665#line 78 "charset_lookup.gperf" │ │ │ │ │ -1666 {(int)offsetof(struct stringpool_t, stringpool_str560), 56}, │ │ │ │ │ -1667#line 76 "charset_lookup.gperf" │ │ │ │ │ -1668 {(int)offsetof(struct stringpool_t, stringpool_str561), 53}, │ │ │ │ │ -1669 {-1,-1}, │ │ │ │ │ -1670#line 141 "charset_lookup.gperf" │ │ │ │ │ -1671 {(int)offsetof(struct stringpool_t, stringpool_str563), 47}, │ │ │ │ │ -1672#line 113 "charset_lookup.gperf" │ │ │ │ │ -1673 {(int)offsetof(struct stringpool_t, stringpool_str564), 38}, │ │ │ │ │ -1674 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1675#line 11 "charset_lookup.gperf" │ │ │ │ │ -1676 {(int)offsetof(struct stringpool_t, stringpool_str571), 88}, │ │ │ │ │ -1677#line 110 "charset_lookup.gperf" │ │ │ │ │ -1678 {(int)offsetof(struct stringpool_t, stringpool_str572), 56}, │ │ │ │ │ -1679 {-1,-1}, {-1,-1}, │ │ │ │ │ -1680#line 191 "charset_lookup.gperf" │ │ │ │ │ -1681 {(int)offsetof(struct stringpool_t, stringpool_str575), 50}, │ │ │ │ │ -1682 {-1,-1}, │ │ │ │ │ -1683#line 67 "charset_lookup.gperf" │ │ │ │ │ -1684 {(int)offsetof(struct stringpool_t, stringpool_str577), 8}, │ │ │ │ │ -1685 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1686#line 56 "charset_lookup.gperf" │ │ │ │ │ -1687 {(int)offsetof(struct stringpool_t, stringpool_str581), 10}, │ │ │ │ │ -1688#line 12 "charset_lookup.gperf" │ │ │ │ │ -1689 {(int)offsetof(struct stringpool_t, stringpool_str582), 88}, │ │ │ │ │ -1690#line 86 "charset_lookup.gperf" │ │ │ │ │ -1691 {(int)offsetof(struct stringpool_t, stringpool_str583), 93}, │ │ │ │ │ -1692#line 213 "charset_lookup.gperf" │ │ │ │ │ -1693 {(int)offsetof(struct stringpool_t, stringpool_str584), 62}, │ │ │ │ │ -1694 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1695#line 201 "charset_lookup.gperf" │ │ │ │ │ -1696 {(int)offsetof(struct stringpool_t, stringpool_str591), 55}, │ │ │ │ │ -1697 {-1,-1}, {-1,-1}, │ │ │ │ │ -1698#line 99 "charset_lookup.gperf" │ │ │ │ │ -1699 {(int)offsetof(struct stringpool_t, stringpool_str594), 34}, │ │ │ │ │ -1700 {-1,-1}, │ │ │ │ │ -1701#line 53 "charset_lookup.gperf" │ │ │ │ │ -1702 {(int)offsetof(struct stringpool_t, stringpool_str596), 33}, │ │ │ │ │ -1703 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1704#line 95 "charset_lookup.gperf" │ │ │ │ │ -1705 {(int)offsetof(struct stringpool_t, stringpool_str602), 34}, │ │ │ │ │ -1706 {-1,-1}, {-1,-1}, │ │ │ │ │ -1707#line 247 "charset_lookup.gperf" │ │ │ │ │ -1708 {(int)offsetof(struct stringpool_t, stringpool_str605), 72}, │ │ │ │ │ -1709 {-1,-1}, │ │ │ │ │ -1710#line 335 "charset_lookup.gperf" │ │ │ │ │ -1711 {(int)offsetof(struct stringpool_t, stringpool_str607), 34}, │ │ │ │ │ -1712 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1713#line 282 "charset_lookup.gperf" │ │ │ │ │ -1714 {(int)offsetof(struct stringpool_t, stringpool_str614), 61}, │ │ │ │ │ -1715 {-1,-1}, {-1,-1}, │ │ │ │ │ -1716#line 249 "charset_lookup.gperf" │ │ │ │ │ -1717 {(int)offsetof(struct stringpool_t, stringpool_str617), 74}, │ │ │ │ │ -1718 {-1,-1}, {-1,-1}, │ │ │ │ │ -1719#line 296 "charset_lookup.gperf" │ │ │ │ │ -1720 {(int)offsetof(struct stringpool_t, stringpool_str620), 91}, │ │ │ │ │ -1721 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1722#line 252 "charset_lookup.gperf" │ │ │ │ │ -1723 {(int)offsetof(struct stringpool_t, stringpool_str625), 69}, │ │ │ │ │ -1724 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1725 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1726#line 291 "charset_lookup.gperf" │ │ │ │ │ -1727 {(int)offsetof(struct stringpool_t, stringpool_str637), 2}, │ │ │ │ │ -1728 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1729#line 264 "charset_lookup.gperf" │ │ │ │ │ -1730 {(int)offsetof(struct stringpool_t, stringpool_str641), 17}, │ │ │ │ │ -1731 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1732#line 257 "charset_lookup.gperf" │ │ │ │ │ -1733 {(int)offsetof(struct stringpool_t, stringpool_str645), 80}, │ │ │ │ │ -1734 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1735#line 114 "charset_lookup.gperf" │ │ │ │ │ -1736 {(int)offsetof(struct stringpool_t, stringpool_str651), 12}, │ │ │ │ │ -1737 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1738#line 246 "charset_lookup.gperf" │ │ │ │ │ -1739 {(int)offsetof(struct stringpool_t, stringpool_str658), 71}, │ │ │ │ │ -1740 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1741#line 267 "charset_lookup.gperf" │ │ │ │ │ -1742 {(int)offsetof(struct stringpool_t, stringpool_str663), 82}, │ │ │ │ │ -1743#line 281 "charset_lookup.gperf" │ │ │ │ │ -1744 {(int)offsetof(struct stringpool_t, stringpool_str664), 61}, │ │ │ │ │ -1745 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1746 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1747#line 217 "charset_lookup.gperf" │ │ │ │ │ -1748 {(int)offsetof(struct stringpool_t, stringpool_str674), 60}, │ │ │ │ │ -1749 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1750 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1751 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1752 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1753#line 245 "charset_lookup.gperf" │ │ │ │ │ -1754 {(int)offsetof(struct stringpool_t, stringpool_str697), 70}, │ │ │ │ │ -1755 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1756 {-1,-1}, {-1,-1}, │ │ │ │ │ -1757#line 290 "charset_lookup.gperf" │ │ │ │ │ -1758 {(int)offsetof(struct stringpool_t, stringpool_str706), 3}, │ │ │ │ │ -1759 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1760 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1761 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1762#line 83 "charset_lookup.gperf" │ │ │ │ │ -1763 {(int)offsetof(struct stringpool_t, stringpool_str723), 25}, │ │ │ │ │ -1764 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1765 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1766 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1767 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1768#line 248 "charset_lookup.gperf" │ │ │ │ │ -1769 {(int)offsetof(struct stringpool_t, stringpool_str748), 73}, │ │ │ │ │ -1770 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1771 {-1,-1}, │ │ │ │ │ -1772#line 304 "charset_lookup.gperf" │ │ │ │ │ -1773 {(int)offsetof(struct stringpool_t, stringpool_str756), 20}, │ │ │ │ │ -1774 {-1,-1}, │ │ │ │ │ -1775#line 276 "charset_lookup.gperf" │ │ │ │ │ -1776 {(int)offsetof(struct stringpool_t, stringpool_str758), 85}, │ │ │ │ │ -1777 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1778#line 81 "charset_lookup.gperf" │ │ │ │ │ -1779 {(int)offsetof(struct stringpool_t, stringpool_str762), 69}, │ │ │ │ │ -1780 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1781 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1782 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1783 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1784 {-1,-1}, │ │ │ │ │ -1785#line 57 "charset_lookup.gperf" │ │ │ │ │ -1786 {(int)offsetof(struct stringpool_t, stringpool_str788), 64}, │ │ │ │ │ -1787 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1788 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1789 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1790 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1791 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1792 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1793 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1794 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1795 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1796 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1797 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1798 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1799 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1800 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1801 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1802 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1803#line 250 "charset_lookup.gperf" │ │ │ │ │ -1804 {(int)offsetof(struct stringpool_t, stringpool_str884), 75}, │ │ │ │ │ -1805 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1806 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1807 {-1,-1}, {-1,-1}, │ │ │ │ │ -1808#line 256 "charset_lookup.gperf" │ │ │ │ │ -1809 {(int)offsetof(struct stringpool_t, stringpool_str899), 79}, │ │ │ │ │ -1810 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1811#line 82 "charset_lookup.gperf" │ │ │ │ │ -1812 {(int)offsetof(struct stringpool_t, stringpool_str905), 24}, │ │ │ │ │ -1813 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1814 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1815#line 55 "charset_lookup.gperf" │ │ │ │ │ -1816 {(int)offsetof(struct stringpool_t, stringpool_str915), 34}, │ │ │ │ │ -1817 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1818 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1819 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1820 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1821 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1822 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1823 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1824 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1825 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1826 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1827 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1828 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1829 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1830 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1831 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1832 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1833 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1834 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1835 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1836 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1837 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1838 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1839 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1840 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1841 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1842 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1843 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ -1844 {-1,-1}, │ │ │ │ │ -1845#line 54 "charset_lookup.gperf" │ │ │ │ │ -1846 {(int)offsetof(struct stringpool_t, stringpool_str1079), 32} │ │ │ │ │ -1847 }; │ │ │ │ │ -1848 │ │ │ │ │ -1849 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) │ │ │ │ │ -1850 { │ │ │ │ │ -1851 register unsigned int key = hash_charset (str, len); │ │ │ │ │ -1852 │ │ │ │ │ -1853 if (key <= MAX_HASH_VALUE) │ │ │ │ │ -1854 { │ │ │ │ │ -1855 register int o = wordlist[key].alias_pos; │ │ │ │ │ -1856 if (o >= 0) │ │ │ │ │ -1857 { │ │ │ │ │ -1858 register const char *s = o + stringpool; │ │ │ │ │ -1859 │ │ │ │ │ -1860 if (*str == *s && !strcmp (str + 1, s + 1)) │ │ │ │ │ -1861 return &wordlist[key]; │ │ │ │ │ -1862 } │ │ │ │ │ -1863 } │ │ │ │ │ -1864 } │ │ │ │ │ -1865 return 0; │ │ │ │ │ -1866} │ │ │ │ │ -1867#line 381 "charset_lookup.gperf" │ │ │ │ │ -1868 │ │ │ │ │ +popvis.h │ │ │ │ │ +1#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__) │ │ │ │ │ +2#pragma GCC visibility pop │ │ │ │ │ +3#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00434_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/odbc.h Source File │ │ │ │ +FreeTDS API: include/freetds/thread.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,791 +74,458 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
odbc.h
│ │ │ │ +
thread.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ -
3 * Copyright (C) 2004-2010 Frediano Ziglio
│ │ │ │ -
4 *
│ │ │ │ -
5 * This library is free software; you can redistribute it and/or
│ │ │ │ -
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
7 * License as published by the Free Software Foundation; either
│ │ │ │ -
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
9 *
│ │ │ │ -
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
13 * Library General Public License for more details.
│ │ │ │ -
14 *
│ │ │ │ -
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
16 * License along with this library; if not, write to the
│ │ │ │ -
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
18 * Boston, MA 02111-1307, USA.
│ │ │ │ -
19 */
│ │ │ │ -
20
│ │ │ │ -
21#ifndef _sql_h_
│ │ │ │ -
22#define _sql_h_
│ │ │ │ -
23
│ │ │ │ -
24#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
│ │ │ │ -
25#include <freetds/tds.h>
│ │ │ │ -
26#include <freetds/thread.h>
│ │ │ │ -
27#include <freetds/data.h>
│ │ │ │ +
2 *
│ │ │ │ +
3 * Copyright (C) 2005 Liam Widdowson
│ │ │ │ +
4 * Copyright (C) 2010-2012 Frediano Ziglio
│ │ │ │ +
5 *
│ │ │ │ +
6 * This library is free software; you can redistribute it and/or
│ │ │ │ +
7 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
8 * License as published by the Free Software Foundation; either
│ │ │ │ +
9 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
10 *
│ │ │ │ +
11 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
14 * Library General Public License for more details.
│ │ │ │ +
15 *
│ │ │ │ +
16 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
17 * License along with this library; if not, write to the
│ │ │ │ +
18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
19 * Boston, MA 02111-1307, USA.
│ │ │ │ +
20 */
│ │ │ │ +
21
│ │ │ │ +
22#ifndef TDSTHREAD_H
│ │ │ │ +
23#define TDSTHREAD_H 1
│ │ │ │ +
24
│ │ │ │ +
25#undef TDS_HAVE_MUTEX
│ │ │ │ +
26
│ │ │ │ +
27#if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX)
│ │ │ │
28
│ │ │ │ -
29#if defined(UNIXODBC) || defined(_WIN32) || defined(TDS_NO_DM)
│ │ │ │ -
30#include <sql.h>
│ │ │ │ -
31#include <sqlext.h>
│ │ │ │ -
32#if defined(UNIXODBC) || defined(_WIN32)
│ │ │ │ -
33#include <odbcinst.h>
│ │ │ │ -
34#endif
│ │ │ │ -
35#else /* IODBC */
│ │ │ │ -
36#include <isql.h>
│ │ │ │ -
37#include <isqlext.h>
│ │ │ │ -
38#ifdef HAVE_IODBCINST_H
│ │ │ │ -
39#include <iodbcinst.h>
│ │ │ │ -
40#endif /* HAVE_IODBCINST_H */
│ │ │ │ -
41#endif
│ │ │ │ +
29#include <tds_sysdep_public.h>
│ │ │ │ +
30#include <pthread.h>
│ │ │ │ +
31#include <errno.h>
│ │ │ │ +
32
│ │ │ │ +
33#include <freetds/pushvis.h>
│ │ │ │ +
34
│ │ │ │ +
35typedef pthread_mutex_t tds_raw_mutex;
│ │ │ │ +
36#define TDS_RAW_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
│ │ │ │ +
37
│ │ │ │ +
38static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
│ │ │ │ +
39{
│ │ │ │ +
40 pthread_mutex_lock(mtx);
│ │ │ │ +
41}
│ │ │ │
42
│ │ │ │ -
43#ifdef HAVE_WCHAR_H
│ │ │ │ -
44#include <wchar.h>
│ │ │ │ -
45#endif
│ │ │ │ -
46
│ │ │ │ -
47#ifndef HAVE_SQLLEN
│ │ │ │ -
48#ifndef SQLULEN
│ │ │ │ -
49#define SQLULEN SQLUINTEGER
│ │ │ │ -
50#endif
│ │ │ │ -
51#ifndef SQLLEN
│ │ │ │ -
52#define SQLLEN SQLINTEGER
│ │ │ │ -
53#endif
│ │ │ │ -
54#endif
│ │ │ │ -
55
│ │ │ │ -
56#ifndef HAVE_SQLSETPOSIROW
│ │ │ │ -
57#define SQLSETPOSIROW SQLUSMALLINT
│ │ │ │ -
58#endif
│ │ │ │ -
59
│ │ │ │ -
60#ifndef HAVE_SQLROWOFFSET
│ │ │ │ -
61#define SQLROWOFFSET SQLLEN
│ │ │ │ -
62#endif
│ │ │ │ -
63
│ │ │ │ -
64#ifndef HAVE_SQLROWSETSIZE
│ │ │ │ -
65#define SQLROWSETSIZE SQLULEN
│ │ │ │ -
66#endif
│ │ │ │ -
67
│ │ │ │ -
68#ifdef __cplusplus
│ │ │ │ -
69extern "C"
│ │ │ │ -
70{
│ │ │ │ -
71#if 0
│ │ │ │ -
72}
│ │ │ │ -
73#endif
│ │ │ │ -
74#endif
│ │ │ │ -
75
│ │ │ │ -
76#include <freetds/pushvis.h>
│ │ │ │ -
77#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__)
│ │ │ │ -
78#define ODBC_API SQL_API __attribute__((externally_visible))
│ │ │ │ -
79#else
│ │ │ │ -
80#define ODBC_API SQL_API
│ │ │ │ -
81#endif
│ │ │ │ -
82
│ │ │ │ -
83#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(__GNUC__)
│ │ │ │ -
84# define ODBC_PUBLIC __attribute__((dllexport))
│ │ │ │ -
85#else
│ │ │ │ -
86# define ODBC_PUBLIC
│ │ │ │ -
87#endif
│ │ │ │ +
43static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
│ │ │ │ +
44{
│ │ │ │ +
45 return pthread_mutex_trylock(mtx);
│ │ │ │ +
46}
│ │ │ │ +
47
│ │ │ │ +
48static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
│ │ │ │ +
49{
│ │ │ │ +
50 pthread_mutex_unlock(mtx);
│ │ │ │ +
51}
│ │ │ │ +
52
│ │ │ │ +
53static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
│ │ │ │ +
54{
│ │ │ │ +
55 return pthread_mutex_init(mtx, NULL);
│ │ │ │ +
56}
│ │ │ │ +
57
│ │ │ │ +
58static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
│ │ │ │ +
59{
│ │ │ │ +
60 pthread_mutex_destroy(mtx);
│ │ │ │ +
61}
│ │ │ │ +
62
│ │ │ │ +
63typedef pthread_cond_t tds_condition;
│ │ │ │ +
64
│ │ │ │ +
65int tds_raw_cond_init(tds_condition *cond);
│ │ │ │ +
66static inline int tds_raw_cond_destroy(tds_condition *cond)
│ │ │ │ +
67{
│ │ │ │ +
68 return pthread_cond_destroy(cond);
│ │ │ │ +
69}
│ │ │ │ +
70static inline int tds_raw_cond_signal(tds_condition *cond)
│ │ │ │ +
71{
│ │ │ │ +
72 return pthread_cond_signal(cond);
│ │ │ │ +
73}
│ │ │ │ +
74static inline int tds_raw_cond_wait(tds_condition *cond, tds_raw_mutex *mtx)
│ │ │ │ +
75{
│ │ │ │ +
76 return pthread_cond_wait(cond, mtx);
│ │ │ │ +
77}
│ │ │ │ +
78int tds_raw_cond_timedwait(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
│ │ │ │ +
79
│ │ │ │ +
80#define TDS_HAVE_MUTEX 1
│ │ │ │ +
81
│ │ │ │ +
82typedef pthread_t tds_thread;
│ │ │ │ +
83typedef pthread_t tds_thread_id;
│ │ │ │ +
84typedef void *(*tds_thread_proc)(void *arg);
│ │ │ │ +
85#define TDS_THREAD_PROC_DECLARE(name, arg) \
│ │ │ │ +
86 void *name(void *arg)
│ │ │ │ +
87#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n))
│ │ │ │
88
│ │ │ │ -
89#define ODBC_MAX(a,b) ( (a) > (b) ? (a) : (b) )
│ │ │ │ -
90#define ODBC_MIN(a,b) ( (a) < (b) ? (a) : (b) )
│ │ │ │ -
91#define ODBC_CLAMP(x,a,b) ( (x) < (a) ? (a) : (x) > (b) ? (b) : (x) )
│ │ │ │ -
92
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
94{
│ │ │ │ -
95 const char *msg;
│ │ │ │ -
96 char state2[6];
│ │ │ │ -
97 char state3[6];
│ │ │ │ -
98 TDS_UINT native;
│ │ │ │ -
99 char *server;
│ │ │ │ -
100 int linenum;
│ │ │ │ -
101 int msgstate;
│ │ │ │ -
102 int row;
│ │ │ │ -
103};
│ │ │ │ -
│ │ │ │ -
104
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
106{
│ │ │ │ -
107 struct _sql_error *errs;
│ │ │ │ -
108 int num_errors;
│ │ │ │ -
109 SQLRETURN lastrc;
│ │ │ │ -
110 char ranked;
│ │ │ │ -
111};
│ │ │ │ -
│ │ │ │ +
89static inline int tds_thread_create(tds_thread *ret, tds_thread_proc proc, void *arg)
│ │ │ │ +
90{
│ │ │ │ +
91 return pthread_create(ret, NULL, proc, arg);
│ │ │ │ +
92}
│ │ │ │ +
93
│ │ │ │ +
94static inline int tds_thread_create_detached(tds_thread_proc proc, void *arg)
│ │ │ │ +
95{
│ │ │ │ +
96 tds_thread th;
│ │ │ │ +
97 int ret = pthread_create(&th, NULL, proc, arg);
│ │ │ │ +
98 if (!ret)
│ │ │ │ +
99 pthread_detach(th);
│ │ │ │ +
100 return ret;
│ │ │ │ +
101}
│ │ │ │ +
102
│ │ │ │ +
103static inline int tds_thread_join(tds_thread th, void **ret)
│ │ │ │ +
104{
│ │ │ │ +
105 return pthread_join(th, ret);
│ │ │ │ +
106}
│ │ │ │ +
107
│ │ │ │ +
108static inline tds_thread_id tds_thread_get_current_id(void)
│ │ │ │ +
109{
│ │ │ │ +
110 return pthread_self();
│ │ │ │ +
111}
│ │ │ │
112
│ │ │ │ -
113typedef struct _sql_errors TDS_ERRS;
│ │ │ │ -
114
│ │ │ │ -
115#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
116void odbc_check_struct_extra(void *p);
│ │ │ │ -
117#else
│ │ │ │ -
118static inline void odbc_check_struct_extra(void *p) {}
│ │ │ │ -
119#endif
│ │ │ │ -
120
│ │ │ │ -
121#define ODBC_RETURN(handle, rc) \
│ │ │ │ -
122 do { odbc_check_struct_extra(handle); \
│ │ │ │ -
123 return handle->errs.lastrc = (rc); } while(0)
│ │ │ │ -
124#define ODBC_RETURN_(handle) \
│ │ │ │ -
125 do { odbc_check_struct_extra(handle); \
│ │ │ │ -
126 return handle->errs.lastrc; } while(0)
│ │ │ │ -
127
│ │ │ │ -
128#define ODBC_EXIT(handle, rc) \
│ │ │ │ -
129 do { SQLRETURN _odbc_rc = handle->errs.lastrc = (rc); \
│ │ │ │ -
130 odbc_check_struct_extra(handle); \
│ │ │ │ -
131 tds_mutex_unlock(&handle->mtx); \
│ │ │ │ -
132 return _odbc_rc; } while(0)
│ │ │ │ -
133#define ODBC_EXIT_(handle) \
│ │ │ │ -
134 do { SQLRETURN _odbc_rc = handle->errs.lastrc; \
│ │ │ │ -
135 odbc_check_struct_extra(handle); \
│ │ │ │ -
136 tds_mutex_unlock(&handle->mtx); \
│ │ │ │ -
137 return _odbc_rc; } while(0)
│ │ │ │ +
113static inline int tds_thread_is_current(tds_thread_id th)
│ │ │ │ +
114{
│ │ │ │ +
115 return pthread_equal(th, pthread_self());
│ │ │ │ +
116}
│ │ │ │ +
117
│ │ │ │ +
118#include <freetds/popvis.h>
│ │ │ │ +
119
│ │ │ │ +
120#elif defined(_WIN32)
│ │ │ │ +
121
│ │ │ │ +
122#include <freetds/windows.h>
│ │ │ │ +
123#include <errno.h>
│ │ │ │ +
124
│ │ │ │ +
125/* old version of Windows do not define this constant */
│ │ │ │ +
126#ifndef ETIMEDOUT
│ │ │ │ +
127#define ETIMEDOUT 138
│ │ │ │ +
128#endif
│ │ │ │ +
129
│ │ │ │ +
130struct ptw32_mcs_node_t_;
│ │ │ │ +
131
│ │ │ │ +
132typedef struct {
│ │ │ │ +
133 struct ptw32_mcs_node_t_ *lock;
│ │ │ │ +
134 LONG done;
│ │ │ │ +
135 DWORD thread_id;
│ │ │ │ +
136 CRITICAL_SECTION crit;
│ │ │ │ + │ │ │ │
138
│ │ │ │ -
139
│ │ │ │ -
141void odbc_errs_reset(struct _sql_errors *errs);
│ │ │ │ -
142
│ │ │ │ -
144void odbc_errs_add(struct _sql_errors *errs, const char *sqlstate, const char *msg);
│ │ │ │ -
145
│ │ │ │ -
147void odbc_errs_add_rdbms(struct _sql_errors *errs, TDS_UINT native, const char *sqlstate, const char *msg, int linenum,
│ │ │ │ -
148 int msgstate, const char *server, int row);
│ │ │ │ +
139#define TDS_RAW_MUTEX_INITIALIZER { NULL, 0, 0 }
│ │ │ │ +
140
│ │ │ │ +
141static inline int
│ │ │ │ +
142tds_raw_mutex_init(tds_raw_mutex *mtx)
│ │ │ │ +
143{
│ │ │ │ +
144 mtx->lock = NULL;
│ │ │ │ +
145 mtx->done = 0;
│ │ │ │ +
146 mtx->thread_id = 0;
│ │ │ │ +
147 return 0;
│ │ │ │ +
148}
│ │ │ │
149
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
151{
│ │ │ │ -
152 SQLSMALLINT sql_desc_alloc_type;
│ │ │ │ -
153 SQLINTEGER sql_desc_bind_type;
│ │ │ │ -
154 SQLULEN sql_desc_array_size;
│ │ │ │ -
155 /* TODO SQLLEN ?? see http://support.microsoft.com/default.aspx?scid=kb;en-us;298678 */
│ │ │ │ -
156 SQLSMALLINT sql_desc_count;
│ │ │ │ -
157 SQLUSMALLINT *sql_desc_array_status_ptr;
│ │ │ │ -
158 SQLULEN *sql_desc_rows_processed_ptr;
│ │ │ │ -
159 SQLLEN *sql_desc_bind_offset_ptr;
│ │ │ │ -
160};
│ │ │ │ -
│ │ │ │ +
150void tds_win_mutex_lock(tds_raw_mutex *mutex);
│ │ │ │ +
151
│ │ │ │ +
152static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
│ │ │ │ +
153{
│ │ │ │ +
154 if (mtx->done) {
│ │ │ │ +
155 EnterCriticalSection(&mtx->crit);
│ │ │ │ +
156 mtx->thread_id = GetCurrentThreadId();
│ │ │ │ +
157 } else {
│ │ │ │ +
158 tds_win_mutex_lock(mtx);
│ │ │ │ +
159 }
│ │ │ │ +
160}
│ │ │ │
161
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
163{
│ │ │ │ -
164 SQLUINTEGER sql_desc_auto_unique_value;
│ │ │ │ -
165 DSTR sql_desc_base_column_name;
│ │ │ │ -
166 DSTR sql_desc_base_table_name;
│ │ │ │ -
167 SQLINTEGER sql_desc_case_sensitive;
│ │ │ │ -
168 DSTR sql_desc_catalog_name;
│ │ │ │ -
169 SQLSMALLINT sql_desc_concise_type;
│ │ │ │ -
170 SQLPOINTER sql_desc_data_ptr;
│ │ │ │ -
171 SQLSMALLINT sql_desc_datetime_interval_code;
│ │ │ │ -
172 SQLINTEGER sql_desc_datetime_interval_precision;
│ │ │ │ -
173 SQLLEN sql_desc_display_size;
│ │ │ │ -
174 SQLSMALLINT sql_desc_fixed_prec_scale;
│ │ │ │ -
175 SQLLEN *sql_desc_indicator_ptr;
│ │ │ │ -
176 DSTR sql_desc_label;
│ │ │ │ -
177 SQLULEN sql_desc_length;
│ │ │ │ -
178 /* this point to a constant buffer, do not free or modify */
│ │ │ │ -
179 const char *sql_desc_literal_prefix;
│ │ │ │ -
180 /* this point to a constant buffer, do not free or modify */
│ │ │ │ -
181 const char *sql_desc_literal_suffix;
│ │ │ │ -
182 DSTR sql_desc_local_type_name;
│ │ │ │ -
183 DSTR sql_desc_name;
│ │ │ │ -
184 SQLSMALLINT sql_desc_nullable;
│ │ │ │ -
185 SQLINTEGER sql_desc_num_prec_radix;
│ │ │ │ -
186 SQLLEN sql_desc_octet_length;
│ │ │ │ -
187 SQLLEN *sql_desc_octet_length_ptr;
│ │ │ │ -
188 SQLSMALLINT sql_desc_parameter_type;
│ │ │ │ -
189 SQLSMALLINT sql_desc_precision;
│ │ │ │ -
190 SQLSMALLINT sql_desc_rowver;
│ │ │ │ -
191 SQLSMALLINT sql_desc_scale;
│ │ │ │ -
192 DSTR sql_desc_schema_name;
│ │ │ │ -
193 SQLSMALLINT sql_desc_searchable;
│ │ │ │ -
194 DSTR sql_desc_table_name;
│ │ │ │ -
195 SQLSMALLINT sql_desc_type;
│ │ │ │ -
196 /* this point to a constant buffer, do not free or modify */
│ │ │ │ -
197 const char *sql_desc_type_name;
│ │ │ │ -
198 SQLSMALLINT sql_desc_unnamed;
│ │ │ │ -
199 SQLSMALLINT sql_desc_unsigned;
│ │ │ │ -
200 SQLSMALLINT sql_desc_updatable;
│ │ │ │ -
201};
│ │ │ │ -
│ │ │ │ +
162int tds_raw_mutex_trylock(tds_raw_mutex *mtx);
│ │ │ │ +
163
│ │ │ │ +
164static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
│ │ │ │ +
165{
│ │ │ │ +
166 mtx->thread_id = 0;
│ │ │ │ +
167 LeaveCriticalSection(&mtx->crit);
│ │ │ │ +
168}
│ │ │ │ +
169
│ │ │ │ +
170static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
│ │ │ │ +
171{
│ │ │ │ +
172 if (mtx->done) {
│ │ │ │ +
173 DeleteCriticalSection(&mtx->crit);
│ │ │ │ +
174 mtx->done = 0;
│ │ │ │ +
175 }
│ │ │ │ +
176}
│ │ │ │ +
177
│ │ │ │ +
178#define TDS_HAVE_MUTEX 1
│ │ │ │ +
179
│ │ │ │ +
180/* easy way, only single signal supported */
│ │ │ │ +
181typedef void *TDS_CONDITION_VARIABLE;
│ │ │ │ +
182typedef union {
│ │ │ │ +
183 HANDLE ev;
│ │ │ │ +
184 TDS_CONDITION_VARIABLE cv;
│ │ │ │ + │ │ │ │ +
186
│ │ │ │ +
187extern int (*tds_raw_cond_init)(tds_condition *cond);
│ │ │ │ +
188extern int (*tds_raw_cond_destroy)(tds_condition *cond);
│ │ │ │ +
189extern int (*tds_raw_cond_signal)(tds_condition *cond);
│ │ │ │ +
190extern int (*tds_raw_cond_timedwait)(tds_condition *cond, tds_raw_mutex *mtx, int timeout_sec);
│ │ │ │ +
191static inline int tds_raw_cond_wait(tds_condition *cond, tds_raw_mutex *mtx)
│ │ │ │ +
192{
│ │ │ │ +
193 return tds_raw_cond_timedwait(cond, mtx, -1);
│ │ │ │ +
194}
│ │ │ │ +
195
│ │ │ │ +
196typedef HANDLE tds_thread;
│ │ │ │ +
197typedef DWORD tds_thread_id;
│ │ │ │ +
198typedef DWORD (WINAPI *tds_thread_proc)(void *arg);
│ │ │ │ +
199#define TDS_THREAD_PROC_DECLARE(name, arg) \
│ │ │ │ +
200 DWORD WINAPI name(void *arg)
│ │ │ │ +
201#define TDS_THREAD_RESULT(n) ((DWORD)(int)(n))
│ │ │ │
202
│ │ │ │ -
│ │ │ │ -
203struct _hdesc
│ │ │ │ +
203static inline int tds_thread_create(tds_thread *ret, tds_thread_proc proc, void *arg)
│ │ │ │
204{
│ │ │ │ -
205 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ -
206 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ -
207 tds_mutex mtx;
│ │ │ │ -
208 int type;
│ │ │ │ -
209 SQLHANDLE parent;
│ │ │ │ -
210 struct _dheader header;
│ │ │ │ -
211 struct _drecord *records;
│ │ │ │ -
212};
│ │ │ │ -
│ │ │ │ -
213
│ │ │ │ -
214typedef struct _hdesc TDS_DESC;
│ │ │ │ -
215
│ │ │ │ -
216#define DESC_IRD 1
│ │ │ │ -
217#define DESC_IPD 2
│ │ │ │ -
218#define DESC_ARD 3
│ │ │ │ -
219#define DESC_APD 4
│ │ │ │ -
220
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
222{
│ │ │ │ -
223 SQLUINTEGER connection_pooling;
│ │ │ │ -
224 SQLUINTEGER cp_match;
│ │ │ │ -
225 SQLINTEGER odbc_version;
│ │ │ │ -
226 SQLINTEGER output_nts;
│ │ │ │ -
227};
│ │ │ │ -
│ │ │ │ -
228
│ │ │ │ -
│ │ │ │ -
229struct _hchk
│ │ │ │ -
230{
│ │ │ │ -
231 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ -
232 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ -
233 tds_mutex mtx;
│ │ │ │ -
234};
│ │ │ │ -
│ │ │ │ -
235
│ │ │ │ -
│ │ │ │ -
236struct _henv
│ │ │ │ -
237{
│ │ │ │ -
238 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ -
239 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ -
240 tds_mutex mtx;
│ │ │ │ -
241 TDSCONTEXT *tds_ctx;
│ │ │ │ -
242 struct _heattr attr;
│ │ │ │ -
243};
│ │ │ │ -
│ │ │ │ +
205 *ret = CreateThread(NULL, 0, proc, arg, 0, NULL);
│ │ │ │ +
206 return *ret != NULL ? 0 : 11 /* EAGAIN */;
│ │ │ │ +
207}
│ │ │ │ +
208
│ │ │ │ +
209static inline int tds_thread_create_detached(tds_thread_proc proc, void *arg)
│ │ │ │ +
210{
│ │ │ │ +
211 HANDLE h = CreateThread(NULL, 0, proc, arg, 0, NULL);
│ │ │ │ +
212 if (h)
│ │ │ │ +
213 return 0;
│ │ │ │ +
214 CloseHandle(h);
│ │ │ │ +
215 return 11 /* EAGAIN */;
│ │ │ │ +
216}
│ │ │ │ +
217
│ │ │ │ +
218static inline int tds_thread_join(tds_thread th, void **ret)
│ │ │ │ +
219{
│ │ │ │ +
220 if (WaitForSingleObject(th, INFINITE) == WAIT_OBJECT_0) {
│ │ │ │ +
221 if (ret) {
│ │ │ │ +
222 DWORD r;
│ │ │ │ +
223 if (!GetExitCodeThread(th, &r))
│ │ │ │ +
224 r = 0xffffffffu;
│ │ │ │ +
225 *ret = (void*) (((char*)0) + r);
│ │ │ │ +
226 }
│ │ │ │ +
227
│ │ │ │ +
228 CloseHandle(th);
│ │ │ │ +
229 return 0;
│ │ │ │ +
230 }
│ │ │ │ +
231 CloseHandle(th);
│ │ │ │ +
232 return 22 /* EINVAL */;
│ │ │ │ +
233}
│ │ │ │ +
234
│ │ │ │ +
235static inline tds_thread_id tds_thread_get_current_id(void)
│ │ │ │ +
236{
│ │ │ │ +
237 return GetCurrentThreadId();
│ │ │ │ +
238}
│ │ │ │ +
239
│ │ │ │ +
240static inline int tds_thread_is_current(tds_thread_id th)
│ │ │ │ +
241{
│ │ │ │ +
242 return th == GetCurrentThreadId();
│ │ │ │ +
243}
│ │ │ │
244
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
246{
│ │ │ │ -
247 SQLUINTEGER access_mode;
│ │ │ │ -
248 SQLUINTEGER async_enable;
│ │ │ │ -
249 SQLUINTEGER auto_ipd;
│ │ │ │ -
250 SQLUINTEGER autocommit;
│ │ │ │ -
251 SQLUINTEGER connection_dead;
│ │ │ │ -
252 SQLUINTEGER connection_timeout;
│ │ │ │ -
253 DSTR current_catalog;
│ │ │ │ -
254 SQLUINTEGER login_timeout;
│ │ │ │ -
255 SQLUINTEGER metadata_id;
│ │ │ │ -
256 SQLUINTEGER odbc_cursors;
│ │ │ │ -
257 SQLUINTEGER packet_size;
│ │ │ │ -
258 SQLHWND quite_mode;
│ │ │ │ -
259 DSTR translate_lib;
│ │ │ │ -
260 SQLUINTEGER translate_option;
│ │ │ │ -
261 SQLUINTEGER txn_isolation;
│ │ │ │ -
262 SQLUINTEGER mars_enabled;
│ │ │ │ -
263 SQLUINTEGER cursor_type;
│ │ │ │ -
264 SQLUINTEGER bulk_enabled;
│ │ │ │ -
265#ifdef TDS_NO_DM
│ │ │ │ -
266 SQLUINTEGER trace;
│ │ │ │ -
267 DSTR tracefile;
│ │ │ │ -
268#endif
│ │ │ │ -
269};
│ │ │ │ -
│ │ │ │ -
270
│ │ │ │ -
271#define TDS_MAX_APP_DESC 100
│ │ │ │ -
272
│ │ │ │ -
273struct _hstmt;
│ │ │ │ -
│ │ │ │ -
274struct _hdbc
│ │ │ │ +
245#else
│ │ │ │ +
246
│ │ │ │ +
247#include <tds_sysdep_public.h>
│ │ │ │ +
248
│ │ │ │ +
249/* define noops as "successful" */
│ │ │ │ +
│ │ │ │ +
250typedef struct {
│ │ │ │ +
251 char dummy[0]; /* compiler compatibility */
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
253
│ │ │ │ +
254#define TDS_RAW_MUTEX_INITIALIZER {}
│ │ │ │ +
255
│ │ │ │ +
256static inline void tds_raw_mutex_lock(tds_raw_mutex *mtx)
│ │ │ │ +
257{
│ │ │ │ +
258}
│ │ │ │ +
259
│ │ │ │ +
260static inline int tds_raw_mutex_trylock(tds_raw_mutex *mtx)
│ │ │ │ +
261{
│ │ │ │ +
262 return 0;
│ │ │ │ +
263}
│ │ │ │ +
264
│ │ │ │ +
265static inline void tds_raw_mutex_unlock(tds_raw_mutex *mtx)
│ │ │ │ +
266{
│ │ │ │ +
267}
│ │ │ │ +
268
│ │ │ │ +
269static inline int tds_raw_mutex_init(tds_raw_mutex *mtx)
│ │ │ │ +
270{
│ │ │ │ +
271 return 0;
│ │ │ │ +
272}
│ │ │ │ +
273
│ │ │ │ +
274static inline void tds_raw_mutex_free(tds_raw_mutex *mtx)
│ │ │ │
275{
│ │ │ │ -
276 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ -
277 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ -
278 tds_mutex mtx;
│ │ │ │ -
279 struct _henv *env;
│ │ │ │ - │ │ │ │ -
281 DSTR dsn;
│ │ │ │ -
282 DSTR oldpwd;
│ │ │ │ -
283#ifdef ENABLE_ODBC_WIDE
│ │ │ │ -
284 int original_charset_num;
│ │ │ │ -
285 TDSICONV *mb_conv;
│ │ │ │ -
286#endif
│ │ │ │ -
287
│ │ │ │ - │ │ │ │ - │ │ │ │ -
296 struct _hcattr attr;
│ │ │ │ -
298 TDS_DESC *uad[TDS_MAX_APP_DESC];
│ │ │ │ -
300 unsigned int cursor_support:1;
│ │ │ │ -
301 unsigned int use_oldpwd:1;
│ │ │ │ -
302 TDS_INT default_query_timeout;
│ │ │ │ -
303
│ │ │ │ -
304 TDSBCPINFO *bcpinfo;
│ │ │ │ -
305 char *bcphint;
│ │ │ │ -
306};
│ │ │ │ -
│ │ │ │ -
307
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
309{
│ │ │ │ -
310 /* TODO remove IRD, ARD, IPD, APD from statement, do not duplicate */
│ │ │ │ -
311/* TDS_DESC *app_row_desc; */
│ │ │ │ -
312/* TDS_DESC *app_param_desc; */
│ │ │ │ -
313 SQLUINTEGER async_enable;
│ │ │ │ -
314 SQLUINTEGER concurrency;
│ │ │ │ -
315 SQLUINTEGER cursor_scrollable;
│ │ │ │ -
316 SQLUINTEGER cursor_sensitivity;
│ │ │ │ -
317 SQLUINTEGER cursor_type;
│ │ │ │ -
318 SQLUINTEGER enable_auto_ipd;
│ │ │ │ -
319 SQLPOINTER fetch_bookmark_ptr;
│ │ │ │ -
320 SQLULEN keyset_size;
│ │ │ │ -
321 SQLULEN max_length;
│ │ │ │ -
322 SQLULEN max_rows;
│ │ │ │ -
323 SQLUINTEGER metadata_id;
│ │ │ │ -
324 SQLUINTEGER noscan;
│ │ │ │ -
325 /* apd->sql_desc_bind_offset_ptr */
│ │ │ │ -
326 /* SQLUINTEGER *param_bind_offset_ptr; */
│ │ │ │ -
327 /* apd->sql_desc_bind_type */
│ │ │ │ -
328 /* SQLUINTEGER param_bind_type; */
│ │ │ │ -
329 /* apd->sql_desc_array_status_ptr */
│ │ │ │ -
330 /* SQLUSMALLINT *param_operation_ptr; */
│ │ │ │ -
331 /* ipd->sql_desc_array_status_ptr */
│ │ │ │ -
332 /* SQLUSMALLINT *param_status_ptr; */
│ │ │ │ -
333 /* ipd->sql_desc_rows_processed_ptr */
│ │ │ │ -
334 /* SQLUSMALLINT *params_processed_ptr; */
│ │ │ │ -
335 /* apd->sql_desc_array_size */
│ │ │ │ -
336 /* SQLUINTEGER paramset_size; */
│ │ │ │ -
337 SQLUINTEGER query_timeout;
│ │ │ │ -
338 SQLUINTEGER retrieve_data;
│ │ │ │ -
339 /* ard->sql_desc_bind_offset_ptr */
│ │ │ │ -
340 /* SQLUINTEGER *row_bind_offset_ptr; */
│ │ │ │ -
341 /* ard->sql_desc_array_size */
│ │ │ │ -
342 /* SQLUINTEGER row_array_size; */
│ │ │ │ -
343 /* ard->sql_desc_bind_type */
│ │ │ │ -
344 /* SQLUINTEGER row_bind_type; */
│ │ │ │ -
345 SQLULEN row_number;
│ │ │ │ -
346 /* ard->sql_desc_array_status_ptr */
│ │ │ │ -
347 /* SQLUINTEGER *row_operation_ptr; */
│ │ │ │ -
348 /* ird->sql_desc_array_status_ptr */
│ │ │ │ -
349 /* SQLUINTEGER *row_status_ptr; */
│ │ │ │ -
350 /* ird->sql_desc_rows_processed_ptr */
│ │ │ │ -
351 /* SQLUINTEGER *rows_fetched_ptr; */
│ │ │ │ -
352 SQLUINTEGER simulate_cursor;
│ │ │ │ -
353 SQLUINTEGER use_bookmarks;
│ │ │ │ -
354 /* SQLGetStmtAttr only */
│ │ │ │ -
355/* TDS_DESC *imp_row_desc; */
│ │ │ │ -
356/* TDS_DESC *imp_param_desc; */
│ │ │ │ -
357 DSTR qn_msgtext;
│ │ │ │ -
358 DSTR qn_options;
│ │ │ │ -
359 SQLUINTEGER qn_timeout;
│ │ │ │ -
360};
│ │ │ │ -
│ │ │ │ -
361
│ │ │ │ -
362typedef enum
│ │ │ │ -
363{
│ │ │ │ -
364 NOT_IN_ROW,
│ │ │ │ -
365 IN_NORMAL_ROW,
│ │ │ │ -
366 IN_COMPUTE_ROW,
│ │ │ │ -
367 AFTER_COMPUTE_ROW,
│ │ │ │ -
368 PRE_NORMAL_ROW
│ │ │ │ -
369} TDS_ODBC_ROW_STATUS;
│ │ │ │ -
370
│ │ │ │ -
371typedef enum
│ │ │ │ -
372{
│ │ │ │ -
373 ODBC_SPECIAL_NONE = 0,
│ │ │ │ -
374 ODBC_SPECIAL_GETTYPEINFO = 1,
│ │ │ │ -
375 ODBC_SPECIAL_COLUMNS = 2,
│ │ │ │ -
376 ODBC_SPECIAL_PROCEDURECOLUMNS = 3,
│ │ │ │ -
377 ODBC_SPECIAL_SPECIALCOLUMNS = 4
│ │ │ │ -
378} TDS_ODBC_SPECIAL_ROWS;
│ │ │ │ -
379
│ │ │ │ -
│ │ │ │ -
380struct _hstmt
│ │ │ │ -
381{
│ │ │ │ -
382 SQLSMALLINT htype; /* do not reorder this field */
│ │ │ │ -
383 struct _sql_errors errs; /* do not reorder this field */
│ │ │ │ -
384 tds_mutex mtx;
│ │ │ │ -
385 struct _hdbc *dbc;
│ │ │ │ - │ │ │ │ - │ │ │ │ -
390
│ │ │ │ -
392 struct _hstmt *next;
│ │ │ │ -
394 struct _hstmt *prev;
│ │ │ │ -
395
│ │ │ │ -
396 /* begin prepared query stuff */
│ │ │ │ -
397 unsigned is_prepared_query:1;
│ │ │ │ -
398 unsigned prepared_query_is_func:1;
│ │ │ │ -
399 unsigned prepared_query_is_rpc:1;
│ │ │ │ -
404 unsigned need_reprepare:1;
│ │ │ │ -
405 unsigned param_data_called:1;
│ │ │ │ -
406 /* end prepared query stuff */
│ │ │ │ -
407
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
414
│ │ │ │ -
415 unsigned int curr_param_row, num_param_rows;
│ │ │ │ -
416
│ │ │ │ -
418 unsigned int param_count;
│ │ │ │ -
419 int row;
│ │ │ │ -
421 TDS_INT8 row_count;
│ │ │ │ -
423 TDS_ODBC_ROW_STATUS row_status;
│ │ │ │ -
424 /* do NOT free dynamic, free from socket or attach to connection */
│ │ │ │ -
425 TDSDYNAMIC *dyn;
│ │ │ │ -
426 TDS_DESC *ard, *ird, *apd, *ipd;
│ │ │ │ -
427 TDS_DESC *orig_ard, *orig_apd;
│ │ │ │ -
428 SQLULEN sql_rowset_size;
│ │ │ │ -
429 struct _hsattr attr;
│ │ │ │ -
430 DSTR cursor_name; /* auto generated cursor name */
│ │ │ │ -
431 TDS_ODBC_SPECIAL_ROWS special_row;
│ │ │ │ -
432 /* do NOT free cursor, free from socket or attach to connection */
│ │ │ │ -
433 TDSCURSOR *cursor;
│ │ │ │ -
434};
│ │ │ │ +
276}
│ │ │ │ +
277
│ │ │ │ +
│ │ │ │ +
278typedef struct {
│ │ │ │ +
279 char dummy[0]; /* compiler compatibility */
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
281
│ │ │ │ +
282static inline int tds_raw_cond_init(tds_condition *cond)
│ │ │ │ +
283{
│ │ │ │ +
284 return 0;
│ │ │ │ +
285}
│ │ │ │ +
286static inline int tds_raw_cond_destroy(tds_condition *cond)
│ │ │ │ +
287{
│ │ │ │ +
288 return 0;
│ │ │ │ +
289}
│ │ │ │ +
290#define tds_raw_cond_signal(cond) \
│ │ │ │ +
291 FreeTDS_Condition_not_compiled
│ │ │ │ +
292
│ │ │ │ +
293#define tds_raw_cond_wait(cond, mtx) \
│ │ │ │ +
294 FreeTDS_Condition_not_compiled
│ │ │ │ +
295
│ │ │ │ +
296#define tds_raw_cond_timedwait(cond, mtx, timeout_sec) \
│ │ │ │ +
297 FreeTDS_Condition_not_compiled
│ │ │ │ +
298
│ │ │ │ +
│ │ │ │ +
299typedef struct {
│ │ │ │ +
300 char dummy[0]; /* compiler compatibility */
│ │ │ │ +
301} tds_thread;
│ │ │ │
│ │ │ │ -
435
│ │ │ │ -
436typedef struct _henv TDS_ENV;
│ │ │ │ -
437typedef struct _hdbc TDS_DBC;
│ │ │ │ -
438typedef struct _hstmt TDS_STMT;
│ │ │ │ -
439typedef struct _hchk TDS_CHK;
│ │ │ │ -
440
│ │ │ │ -
│ │ │ │ -
441typedef struct {
│ │ │ │ -
442 /* this must be the first member */
│ │ │ │ -
443 TDSCOLUMNFUNCS common;
│ │ │ │ -
444 void (*set_type_info)(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver);
│ │ │ │ -
445} TDS_FUNCS;
│ │ │ │ -
│ │ │ │ -
446
│ │ │ │ -
447#define IS_HENV(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_ENV)
│ │ │ │ -
448#define IS_HDBC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DBC)
│ │ │ │ -
449#define IS_HSTMT(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_STMT)
│ │ │ │ -
450#define IS_HDESC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DESC)
│ │ │ │ -
451
│ │ │ │ -
452/* fix a bug in MingW headers */
│ │ │ │ -
453#ifdef __MINGW32__
│ │ │ │ -
454#if SQL_INTERVAL_YEAR == (100 + SQL_CODE_SECOND)
│ │ │ │ -
455
│ │ │ │ -
456#undef SQL_INTERVAL_YEAR
│ │ │ │ -
457#undef SQL_INTERVAL_MONTH
│ │ │ │ -
458#undef SQL_INTERVAL_DAY
│ │ │ │ -
459#undef SQL_INTERVAL_HOUR
│ │ │ │ -
460#undef SQL_INTERVAL_MINUTE
│ │ │ │ -
461#undef SQL_INTERVAL_SECOND
│ │ │ │ -
462#undef SQL_INTERVAL_YEAR_TO_MONTH
│ │ │ │ -
463#undef SQL_INTERVAL_DAY_TO_HOUR
│ │ │ │ -
464#undef SQL_INTERVAL_DAY_TO_MINUTE
│ │ │ │ -
465#undef SQL_INTERVAL_DAY_TO_SECOND
│ │ │ │ -
466#undef SQL_INTERVAL_HOUR_TO_MINUTE
│ │ │ │ -
467#undef SQL_INTERVAL_HOUR_TO_SECOND
│ │ │ │ -
468#undef SQL_INTERVAL_MINUTE_TO_SECOND
│ │ │ │ -
469
│ │ │ │ -
470#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR)
│ │ │ │ -
471#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH)
│ │ │ │ -
472#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY)
│ │ │ │ -
473#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR)
│ │ │ │ -
474#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE)
│ │ │ │ -
475#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND)
│ │ │ │ -
476#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH)
│ │ │ │ -
477#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR)
│ │ │ │ -
478#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE)
│ │ │ │ -
479#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND)
│ │ │ │ -
480#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE)
│ │ │ │ -
481#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND)
│ │ │ │ -
482#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND)
│ │ │ │ -
483
│ │ │ │ -
484#endif
│ │ │ │ -
485#endif
│ │ │ │ -
486
│ │ │ │ -
487#ifdef _WIN32
│ │ │ │ -
488bool get_login_info(HWND hwndParent, TDSLOGIN * login);
│ │ │ │ -
489#endif
│ │ │ │ -
490
│ │ │ │ -
491#define ODBC_PARAM_LIST \
│ │ │ │ -
492 ODBC_PARAM(Servername) \
│ │ │ │ -
493 ODBC_PARAM(Server) \
│ │ │ │ -
494 ODBC_PARAM(DSN) \
│ │ │ │ -
495 ODBC_PARAM(UID) \
│ │ │ │ -
496 ODBC_PARAM(PWD) \
│ │ │ │ -
497 ODBC_PARAM(Address) \
│ │ │ │ -
498 ODBC_PARAM(Port) \
│ │ │ │ -
499 ODBC_PARAM(TDS_Version) \
│ │ │ │ -
500 ODBC_PARAM(Language) \
│ │ │ │ -
501 ODBC_PARAM(Database) \
│ │ │ │ -
502 ODBC_PARAM(TextSize) \
│ │ │ │ -
503 ODBC_PARAM(PacketSize) \
│ │ │ │ -
504 ODBC_PARAM(ClientCharset) \
│ │ │ │ -
505 ODBC_PARAM(DumpFile) \
│ │ │ │ -
506 ODBC_PARAM(DumpFileAppend) \
│ │ │ │ -
507 ODBC_PARAM(DebugFlags) \
│ │ │ │ -
508 ODBC_PARAM(Encryption) \
│ │ │ │ -
509 ODBC_PARAM(Trusted_Connection) \
│ │ │ │ -
510 ODBC_PARAM(APP) \
│ │ │ │ -
511 ODBC_PARAM(WSID) \
│ │ │ │ -
512 ODBC_PARAM(UseNTLMv2) \
│ │ │ │ -
513 ODBC_PARAM(MARS_Connection) \
│ │ │ │ -
514 ODBC_PARAM(REALM) \
│ │ │ │ -
515 ODBC_PARAM(ServerSPN) \
│ │ │ │ -
516 ODBC_PARAM(AttachDbFilename) \
│ │ │ │ -
517 ODBC_PARAM(ApplicationIntent) \
│ │ │ │ -
518 ODBC_PARAM(Timeout)
│ │ │ │ -
519
│ │ │ │ -
520#define ODBC_PARAM(p) ODBC_PARAM_##p,
│ │ │ │ -
521enum {
│ │ │ │ -
522 ODBC_PARAM_LIST
│ │ │ │ -
523 ODBC_PARAM_SIZE
│ │ │ │ -
524};
│ │ │ │ -
525#undef ODBC_PARAM
│ │ │ │ -
526
│ │ │ │ -
527
│ │ │ │ -
528/*
│ │ │ │ -
529 * connectparams.h
│ │ │ │ -
530 */
│ │ │ │ -
531
│ │ │ │ -
│ │ │ │ -
532typedef struct {
│ │ │ │ -
533 const char *p;
│ │ │ │ -
534 size_t len;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
536
│ │ │ │ -
544int odbc_parse_connect_string(TDS_ERRS *errs, const char *connect_string, const char *connect_string_end, TDSLOGIN * login, TDS_PARSED_PARAM *parsed_params);
│ │ │ │ -
545int odbc_get_dsn_info(TDS_ERRS *errs, const char *DSN, TDSLOGIN * login);
│ │ │ │ -
546#ifdef _WIN32
│ │ │ │ -
547int odbc_build_connect_string(TDS_ERRS *errs, TDS_PARSED_PARAM *params, char **out);
│ │ │ │ -
548#endif
│ │ │ │ -
549
│ │ │ │ -
550/*
│ │ │ │ -
551 * convert_tds2sql.c
│ │ │ │ -
552 */
│ │ │ │ -
553SQLLEN odbc_tds2sql_col(TDS_STMT * stmt, TDSCOLUMN *curcol, int desttype, TDS_CHAR * dest, SQLULEN destlen, const struct _drecord *drec_ixd);
│ │ │ │ -
554SQLLEN odbc_tds2sql_int4(TDS_STMT * stmt, TDS_INT *src, int desttype, TDS_CHAR * dest, SQLULEN destlen);
│ │ │ │ -
555
│ │ │ │ -
556
│ │ │ │ -
557
│ │ │ │ -
558/*
│ │ │ │ -
559 * descriptor.c
│ │ │ │ -
560 */
│ │ │ │ -
561TDS_DESC *desc_alloc(SQLHANDLE parent, int desc_type, int alloc_type);
│ │ │ │ -
562SQLRETURN desc_free(TDS_DESC * desc);
│ │ │ │ -
563SQLRETURN desc_alloc_records(TDS_DESC * desc, unsigned count);
│ │ │ │ -
564SQLRETURN desc_copy(TDS_DESC * dest, TDS_DESC * src);
│ │ │ │ -
565SQLRETURN desc_free_records(TDS_DESC * desc);
│ │ │ │ -
566TDS_DBC *desc_get_dbc(TDS_DESC *desc);
│ │ │ │ -
567
│ │ │ │ -
568/*
│ │ │ │ -
569 * odbc.c
│ │ │ │ -
570 */
│ │ │ │ -
571SQLRETURN _SQLRowCount(SQLHSTMT hstmt, SQLLEN FAR * pcrow);
│ │ │ │ -
572
│ │ │ │ -
573/*
│ │ │ │ -
574 * odbc_checks.h
│ │ │ │ -
575 */
│ │ │ │ -
576#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
577/* macro */
│ │ │ │ -
578#define CHECK_ENV_EXTRA(env) odbc_check_env_extra(env)
│ │ │ │ -
579#define CHECK_DBC_EXTRA(dbc) odbc_check_dbc_extra(dbc)
│ │ │ │ -
580#define CHECK_STMT_EXTRA(stmt) odbc_check_stmt_extra(stmt)
│ │ │ │ -
581#define CHECK_DESC_EXTRA(desc) odbc_check_desc_extra(desc)
│ │ │ │ -
582/* declarations*/
│ │ │ │ -
583void odbc_check_env_extra(TDS_ENV * env);
│ │ │ │ -
584void odbc_check_dbc_extra(TDS_DBC * dbc);
│ │ │ │ -
585void odbc_check_stmt_extra(TDS_STMT * stmt);
│ │ │ │ -
586void odbc_check_desc_extra(TDS_DESC * desc);
│ │ │ │ -
587#else
│ │ │ │ -
588/* macro */
│ │ │ │ -
589#define CHECK_ENV_EXTRA(env)
│ │ │ │ -
590#define CHECK_DBC_EXTRA(dbc)
│ │ │ │ -
591#define CHECK_STMT_EXTRA(stmt)
│ │ │ │ -
592#define CHECK_DESC_EXTRA(desc)
│ │ │ │ -
593#endif
│ │ │ │ -
594
│ │ │ │ -
595/*
│ │ │ │ -
596 * odbc_util.h
│ │ │ │ -
597 */
│ │ │ │ -
598
│ │ │ │ -
599/* helpers for ODBC wide string support */
│ │ │ │ -
600#undef _wide
│ │ │ │ -
601#undef _WIDE
│ │ │ │ -
602#ifdef ENABLE_ODBC_WIDE
│ │ │ │ -
603typedef union {
│ │ │ │ -
604 char mb[1];
│ │ │ │ -
605 SQLWCHAR wide[1];
│ │ │ │ -
606} ODBC_CHAR;
│ │ │ │ -
607# define _wide ,wide
│ │ │ │ -
608# define _wide0 ,0
│ │ │ │ -
609# define _WIDE ,int wide
│ │ │ │ -
610#else
│ │ │ │ -
611# define _wide
│ │ │ │ -
612# define _wide0
│ │ │ │ -
613# define _WIDE
│ │ │ │ -
614# define ODBC_CHAR SQLCHAR
│ │ │ │ -
615#endif
│ │ │ │ -
616int odbc_set_stmt_query(struct _hstmt *stmt, const ODBC_CHAR *sql, int sql_len _WIDE);
│ │ │ │ -
617void odbc_set_return_status(struct _hstmt *stmt, unsigned int n_row);
│ │ │ │ -
618void odbc_set_return_params(struct _hstmt *stmt, unsigned int n_row);
│ │ │ │ -
619
│ │ │ │ -
620void odbc_set_sql_type_info(TDSCOLUMN * col, struct _drecord *drec, SQLINTEGER odbc_ver);
│ │ │ │ -
621
│ │ │ │ -
622int odbc_sql_to_c_type_default(int sql_type);
│ │ │ │ -
623TDS_SERVER_TYPE odbc_sql_to_server_type(TDSCONNECTION * conn, int sql_type, int sql_unsigned);
│ │ │ │ -
624TDS_SERVER_TYPE odbc_c_to_server_type(int c_type);
│ │ │ │ -
625
│ │ │ │ -
626unsigned int odbc_get_string_size(int size, const ODBC_CHAR * str _WIDE);
│ │ │ │ -
627void odbc_rdbms_version(TDSSOCKET * tds_socket, char *pversion_string);
│ │ │ │ -
628SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct _drecord *drec_ixd, const TDS_DESC* axd, unsigned int n_row);
│ │ │ │ -
629
│ │ │ │ -
630#ifdef ENABLE_ODBC_WIDE
│ │ │ │ -
631DSTR* odbc_dstr_copy_flag(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str, int flag);
│ │ │ │ -
632#define odbc_dstr_copy(dbc, s, len, out) \
│ │ │ │ -
633 odbc_dstr_copy_flag(dbc, s, len, sizeof((out)->mb) ? (out) : (out), wide)
│ │ │ │ -
634#define odbc_dstr_copy_oct(dbc, s, len, out) \
│ │ │ │ -
635 odbc_dstr_copy_flag(dbc, s, len, out, wide|0x20)
│ │ │ │ -
636#else
│ │ │ │ -
637DSTR* odbc_dstr_copy(TDS_DBC *dbc, DSTR *s, int size, const ODBC_CHAR * str);
│ │ │ │ -
638#define odbc_dstr_copy_oct odbc_dstr_copy
│ │ │ │ -
639#endif
│ │ │ │ -
640
│ │ │ │ -
641
│ │ │ │ -
642SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR * pcbBuffer, const char *s, int len, int flag);
│ │ │ │ -
643#ifdef ENABLE_ODBC_WIDE
│ │ │ │ -
644#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ -
645 odbc_set_string_flag(dbc, sizeof((buf)->mb) ? (buf) : (buf), buf_len, out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10))
│ │ │ │ -
646#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ -
647 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
│ │ │ │ -
648#else
│ │ │ │ -
649#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ -
650 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10))
│ │ │ │ -
651#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \
│ │ │ │ -
652 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30))
│ │ │ │ -
653#endif
│ │ │ │ -
654
│ │ │ │ -
655#define odbc_set_dstr_oct(dbc, buf, buf_len, out_len, s) odbc_set_string_oct(dbc, buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s))
│ │ │ │ -
656#define odbc_set_dstr(dbc, buf, buf_len, out_len, s) odbc_set_string(dbc, buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s))
│ │ │ │ -
657
│ │ │ │ -
658SQLSMALLINT odbc_get_concise_sql_type(SQLSMALLINT type, SQLSMALLINT interval);
│ │ │ │ -
659SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
│ │ │ │ -
660SQLSMALLINT odbc_get_concise_c_type(SQLSMALLINT type, SQLSMALLINT interval);
│ │ │ │ -
661SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only);
│ │ │ │ -
662
│ │ │ │ -
663SQLLEN odbc_get_octet_len(int c_type, const struct _drecord *drec);
│ │ │ │ -
664void odbc_convert_err_set(struct _sql_errors *errs, TDS_INT err);
│ │ │ │ -
665
│ │ │ │ -
666/*
│ │ │ │ -
667 * prepare_query.c
│ │ │ │ -
668 */
│ │ │ │ -
669SQLRETURN prepare_call(struct _hstmt *stmt);
│ │ │ │ -
670SQLRETURN native_sql(struct _hdbc *dbc, DSTR *s);
│ │ │ │ -
671int parse_prepared_query(struct _hstmt *stmt, bool compute_row);
│ │ │ │ -
672int start_parse_prepared_query(struct _hstmt *stmt, bool compute_row);
│ │ │ │ -
673int continue_parse_prepared_query(struct _hstmt *stmt, SQLPOINTER DataPtr, SQLLEN StrLen_or_Ind);
│ │ │ │ -
674const char *parse_const_param(const char * s, TDS_SERVER_TYPE *type);
│ │ │ │ -
675const char *odbc_skip_rpc_name(const char *s);
│ │ │ │ -
676
│ │ │ │ -
677/*
│ │ │ │ -
678 * sql2tds.c
│ │ │ │ -
679 */
│ │ │ │ -
680SQLRETURN odbc_sql2tds(TDS_STMT * stmt, const struct _drecord *drec_ixd, const struct _drecord *drec_axd, TDSCOLUMN *curcol, bool compute_row, const TDS_DESC* axd, unsigned int n_row);
│ │ │ │ -
681TDS_INT convert_datetime2server(int bindtype, const void *src, TDS_DATETIMEALL * dta);
│ │ │ │ -
682
│ │ │ │ -
683/*
│ │ │ │ -
684 * bcp.c
│ │ │ │ -
685 */
│ │ │ │ -
686void odbc_bcp_free_storage(TDS_DBC *dbc);
│ │ │ │ -
687void odbc_bcp_init(TDS_DBC *dbc, const ODBC_CHAR *tblname, const ODBC_CHAR *hfile, const ODBC_CHAR *errfile, int direction _WIDE);
│ │ │ │ -
688void odbc_bcp_control(TDS_DBC *dbc, int field, void *value);
│ │ │ │ -
689void odbc_bcp_colptr(TDS_DBC *dbc, const void * colptr, int table_column);
│ │ │ │ -
690void odbc_bcp_sendrow(TDS_DBC *dbc);
│ │ │ │ -
691int odbc_bcp_batch(TDS_DBC *dbc);
│ │ │ │ -
692int odbc_bcp_done(TDS_DBC *dbc);
│ │ │ │ -
693void odbc_bcp_bind(TDS_DBC *dbc, const void * varaddr, int prefixlen, int varlen, const void * terminator, int termlen, int vartype, int table_column);
│ │ │ │ -
694
│ │ │ │ -
695/*
│ │ │ │ -
696 * sqlwchar.c
│ │ │ │ -
697 */
│ │ │ │ -
698#if SIZEOF_SQLWCHAR != SIZEOF_WCHAR_T
│ │ │ │ -
699size_t sqlwcslen(const SQLWCHAR * s);
│ │ │ │ -
700
│ │ │ │ -
701typedef struct sqlwstr_buf {
│ │ │ │ -
702 struct sqlwstr_buf *next;
│ │ │ │ -
703 wchar_t buf[256];
│ │ │ │ -
704} SQLWSTRBUF;
│ │ │ │ -
705const wchar_t *sqlwstr(const SQLWCHAR * s, SQLWSTRBUF **bufs);
│ │ │ │ -
706void sqlwstr_free(SQLWSTRBUF *bufs);
│ │ │ │ -
707#define SQLWSTR_BUFS(n) SQLWSTRBUF *bufs = NULL
│ │ │ │ -
708#define SQLWSTR(s) sqlwstr(s, &bufs)
│ │ │ │ -
709#define SQLWSTR_FREE() sqlwstr_free(bufs)
│ │ │ │ -
710#else
│ │ │ │ -
711#define sqlwcslen(s) wcslen(s)
│ │ │ │ -
712
│ │ │ │ -
713#define SQLWSTR_BUFS(n) do {} while(0)
│ │ │ │ -
714#define SQLWSTR(s) ((const wchar_t*)(s))
│ │ │ │ -
715#define SQLWSTR_FREE() do {} while(0)
│ │ │ │ -
716#endif
│ │ │ │ -
717
│ │ │ │ -
718int odbc_get_wide_canonic(TDSCONNECTION *conn);
│ │ │ │ -
719
│ │ │ │ -
720#include <freetds/popvis.h>
│ │ │ │ -
721
│ │ │ │ -
722#ifdef __cplusplus
│ │ │ │ -
723#if 0
│ │ │ │ -
724{
│ │ │ │ -
725#endif
│ │ │ │ -
726}
│ │ │ │ -
727#endif
│ │ │ │ -
728
│ │ │ │ -
729#endif
│ │ │ │ -
Main include file for libtds.
│ │ │ │ -
SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
Set concise type and all cascading field.
Definition odbc_util.c:976
│ │ │ │ -
SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord *drec, int check_only)
Set concise type and all cascading field.
Definition odbc_util.c:1098
│ │ │ │ -
SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct _drecord *drec_ixd, const TDS_DESC *axd, unsigned int n_row)
Return length of parameter from parameter information.
Definition odbc_util.c:861
│ │ │ │ -
TDS_SERVER_TYPE odbc_c_to_server_type(int c_type)
Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to the SQL_C_* type.
Definition odbc_util.c:601
│ │ │ │ -
SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR *pcbBuffer, const char *s, int len, int flag)
Copy a string to client setting size according to ODBC convenction.
Definition odbc_util.c:301
│ │ │ │ -
void odbc_rdbms_version(TDSSOCKET *tds_socket, char *pversion_string)
Returns the version of the RDBMS in the ODBC format.
Definition odbc_util.c:852
│ │ │ │ -
Definition iconv.h:92
│ │ │ │ -
Definition odbc.h:94
│ │ │ │ -
Definition odbc.h:106
│ │ │ │ -
Definition odbc.h:151
│ │ │ │ -
Definition odbc.h:163
│ │ │ │ -
Definition odbc.h:204
│ │ │ │ -
Definition odbc.h:222
│ │ │ │ -
Definition odbc.h:230
│ │ │ │ -
Definition odbc.h:237
│ │ │ │ -
Definition odbc.h:246
│ │ │ │ -
Definition odbc.h:275
│ │ │ │ -
struct _hstmt * stmt_list
list of all statements allocated from this connection
Definition odbc.h:295
│ │ │ │ -
TDS_DESC * uad[TDS_MAX_APP_DESC]
descriptors associated to connection
Definition odbc.h:298
│ │ │ │ -
struct _hstmt * current_statement
Statement executing.
Definition odbc.h:293
│ │ │ │ -
unsigned int cursor_support
<>0 if server handle cursors
Definition odbc.h:300
│ │ │ │ -
Definition odbc.h:309
│ │ │ │ -
Definition odbc.h:381
│ │ │ │ -
unsigned int param_count
number of parameter in current query
Definition odbc.h:418
│ │ │ │ -
TDS_ODBC_ROW_STATUS row_status
status of row, it can happen that this flag mark that we are still parsing row, this it's normal
Definition odbc.h:423
│ │ │ │ -
size_t prepared_pos
position in prepared query to check parameters, used only in RPC
Definition odbc.h:413
│ │ │ │ -
TDS_INT8 row_count
row count to return
Definition odbc.h:421
│ │ │ │ -
int param_num
last valid parameter in params, it's a ODBC index (from 1 relative to descriptor)
Definition odbc.h:411
│ │ │ │ -
DSTR query
query to execute
Definition odbc.h:387
│ │ │ │ -
unsigned need_reprepare
Prepared statement needs to be prepared again.
Definition odbc.h:404
│ │ │ │ -
struct _hstmt * next
next in list
Definition odbc.h:392
│ │ │ │ -
TDSSOCKET * tds
socket (only if active)
Definition odbc.h:389
│ │ │ │ -
struct _hstmt * prev
previous in list
Definition odbc.h:394
│ │ │ │ -
TDSPARAMINFO * params
parameters saved
Definition odbc.h:409
│ │ │ │ -
Definition odbc.h:441
│ │ │ │ -
Definition odbc.h:532
│ │ │ │ -
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition tds.h:146
│ │ │ │ -
Definition tds.h:517
│ │ │ │ -
Definition tds.h:643
│ │ │ │ -
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ -
Hold information for any results.
Definition tds.h:769
│ │ │ │ -
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ -
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ -
Definition tds.h:1029
│ │ │ │ -
Definition tds.h:1091
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ -
Definition tds.h:1661
│ │ │ │ -
Structure to hold a string.
Definition string.h:36
│ │ │ │ +
302typedef int tds_thread_id;
│ │ │ │ +
303
│ │ │ │ +
304typedef void *(*tds_thread_proc)(void *arg);
│ │ │ │ +
305#define TDS_THREAD_PROC_DECLARE(name, arg) \
│ │ │ │ +
306 void *name(void *arg)
│ │ │ │ +
307#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n))
│ │ │ │ +
308
│ │ │ │ +
309#define tds_thread_create(ret, proc, arg) \
│ │ │ │ +
310 FreeTDS_Thread_not_compiled
│ │ │ │ +
311
│ │ │ │ +
312#define tds_thread_create_detached(proc, arg) \
│ │ │ │ +
313 FreeTDS_Thread_not_compiled
│ │ │ │ +
314
│ │ │ │ +
315#define tds_thread_join(th, ret) \
│ │ │ │ +
316 FreeTDS_Thread_not_compiled
│ │ │ │ +
317
│ │ │ │ +
318static inline tds_thread_id tds_thread_get_current_id(void)
│ │ │ │ +
319{
│ │ │ │ +
320 return 0;
│ │ │ │ +
321}
│ │ │ │ +
322
│ │ │ │ +
323static inline int tds_thread_is_current(tds_thread_id th)
│ │ │ │ +
324{
│ │ │ │ +
325 return 1;
│ │ │ │ +
326}
│ │ │ │ +
327
│ │ │ │ +
328#endif
│ │ │ │ +
329
│ │ │ │ +
330# define tds_cond_init tds_raw_cond_init
│ │ │ │ +
331# define tds_cond_destroy tds_raw_cond_destroy
│ │ │ │ +
332# define tds_cond_signal tds_raw_cond_signal
│ │ │ │ +
333# if !ENABLE_EXTRA_CHECKS
│ │ │ │ +
334# define TDS_MUTEX_INITIALIZER TDS_RAW_MUTEX_INITIALIZER
│ │ │ │ +
335# define tds_mutex tds_raw_mutex
│ │ │ │ +
336# define tds_mutex_lock tds_raw_mutex_lock
│ │ │ │ +
337# define tds_mutex_trylock tds_raw_mutex_trylock
│ │ │ │ +
338# define tds_mutex_unlock tds_raw_mutex_unlock
│ │ │ │ +
339# define tds_mutex_check_owned(mtx) do {} while(0)
│ │ │ │ +
340# define tds_mutex_init tds_raw_mutex_init
│ │ │ │ +
341# define tds_mutex_free tds_raw_mutex_free
│ │ │ │ +
342# define tds_cond_wait tds_raw_cond_wait
│ │ │ │ +
343# define tds_cond_timedwait tds_raw_cond_timedwait
│ │ │ │ +
344# else
│ │ │ │ +
345# include <assert.h>
│ │ │ │ +
346
│ │ │ │ +
347typedef struct tds_mutex
│ │ │ │ +
348{
│ │ │ │ +
349 tds_raw_mutex mtx;
│ │ │ │ +
350 volatile int locked;
│ │ │ │ +
351 volatile tds_thread_id locked_by;
│ │ │ │ +
352} tds_mutex;
│ │ │ │ +
353
│ │ │ │ +
354# define TDS_MUTEX_INITIALIZER { TDS_RAW_MUTEX_INITIALIZER, 0 }
│ │ │ │ +
355
│ │ │ │ +
356static inline void tds_mutex_lock(tds_mutex *mtx)
│ │ │ │ +
357{
│ │ │ │ +
358 assert(mtx);
│ │ │ │ +
359 tds_raw_mutex_lock(&mtx->mtx);
│ │ │ │ +
360 assert(!mtx->locked);
│ │ │ │ +
361 mtx->locked = 1;
│ │ │ │ +
362 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ +
363}
│ │ │ │ +
364
│ │ │ │ +
365static inline int tds_mutex_trylock(tds_mutex *mtx)
│ │ │ │ +
366{
│ │ │ │ +
367 int ret;
│ │ │ │ +
368 assert(mtx);
│ │ │ │ +
369 ret = tds_raw_mutex_trylock(&mtx->mtx);
│ │ │ │ +
370 if (!ret) {
│ │ │ │ +
371 assert(!mtx->locked);
│ │ │ │ +
372 mtx->locked = 1;
│ │ │ │ +
373 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ +
374 }
│ │ │ │ +
375 return ret;
│ │ │ │ +
376}
│ │ │ │ +
377
│ │ │ │ +
378static inline void tds_mutex_unlock(tds_mutex *mtx)
│ │ │ │ +
379{
│ │ │ │ +
380 assert(mtx && mtx->locked);
│ │ │ │ +
381 mtx->locked = 0;
│ │ │ │ +
382 tds_raw_mutex_unlock(&mtx->mtx);
│ │ │ │ +
383}
│ │ │ │ +
384
│ │ │ │ +
385static inline void tds_mutex_check_owned(tds_mutex *mtx)
│ │ │ │ +
386{
│ │ │ │ +
387 int ret;
│ │ │ │ +
388 assert(mtx);
│ │ │ │ +
389 ret = tds_raw_mutex_trylock(&mtx->mtx);
│ │ │ │ +
390 assert(ret);
│ │ │ │ +
391 assert(mtx->locked);
│ │ │ │ +
392 assert(tds_thread_is_current(mtx->locked_by));
│ │ │ │ +
393}
│ │ │ │ +
394
│ │ │ │ +
395static inline int tds_mutex_init(tds_mutex *mtx)
│ │ │ │ +
396{
│ │ │ │ +
397 mtx->locked = 0;
│ │ │ │ +
398 return tds_raw_mutex_init(&mtx->mtx);
│ │ │ │ +
399}
│ │ │ │ +
400
│ │ │ │ +
401static inline void tds_mutex_free(tds_mutex *mtx)
│ │ │ │ +
402{
│ │ │ │ +
403 assert(mtx && !mtx->locked);
│ │ │ │ +
404 tds_raw_mutex_free(&mtx->mtx);
│ │ │ │ +
405}
│ │ │ │ +
406
│ │ │ │ +
407static inline int tds_cond_wait(tds_condition *cond, tds_mutex *mtx)
│ │ │ │ +
408{
│ │ │ │ +
409 int ret;
│ │ │ │ +
410 assert(mtx && mtx->locked);
│ │ │ │ +
411 mtx->locked = 0;
│ │ │ │ +
412 ret = tds_raw_cond_wait(cond, &mtx->mtx);
│ │ │ │ +
413 mtx->locked = 1;
│ │ │ │ +
414 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ +
415 return ret;
│ │ │ │ +
416}
│ │ │ │ +
417
│ │ │ │ +
418static inline int tds_cond_timedwait(tds_condition *cond, tds_mutex *mtx, int timeout_sec)
│ │ │ │ +
419{
│ │ │ │ +
420 int ret;
│ │ │ │ +
421 assert(mtx && mtx->locked);
│ │ │ │ +
422 mtx->locked = 0;
│ │ │ │ +
423 ret = tds_raw_cond_timedwait(cond, &mtx->mtx, timeout_sec);
│ │ │ │ +
424 mtx->locked = 1;
│ │ │ │ +
425 mtx->locked_by = tds_thread_get_current_id();
│ │ │ │ +
426 return ret;
│ │ │ │ +
427}
│ │ │ │ +
428
│ │ │ │ +
429# endif
│ │ │ │ +
430
│ │ │ │ +
431#endif
│ │ │ │ +
Definition ptw32_MCS_lock.c:98
│ │ │ │ +
Definition thread.h:250
│ │ │ │ +
Definition thread.h:278
│ │ │ │ +
Definition thread.h:299
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,892 +1,454 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -odbc.h │ │ │ │ │ +thread.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ -3 * Copyright (C) 2004-2010 Frediano Ziglio │ │ │ │ │ -4 * │ │ │ │ │ -5 * This library is free software; you can redistribute it and/or │ │ │ │ │ -6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -7 * License as published by the Free Software Foundation; either │ │ │ │ │ -8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -9 * │ │ │ │ │ -10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -13 * Library General Public License for more details. │ │ │ │ │ -14 * │ │ │ │ │ -15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -16 * License along with this library; if not, write to the │ │ │ │ │ -17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -18 * Boston, MA 02111-1307, USA. │ │ │ │ │ -19 */ │ │ │ │ │ -20 │ │ │ │ │ -21#ifndef _sql_h_ │ │ │ │ │ -22#define _sql_h_ │ │ │ │ │ -23 │ │ │ │ │ -24#define TDS_DONT_DEFINE_DEFAULT_FUNCTIONS │ │ │ │ │ -25#include <_f_r_e_e_t_d_s_/_t_d_s_._h> │ │ │ │ │ -26#include │ │ │ │ │ -27#include │ │ │ │ │ +2 * │ │ │ │ │ +3 * Copyright (C) 2005 Liam Widdowson │ │ │ │ │ +4 * Copyright (C) 2010-2012 Frediano Ziglio │ │ │ │ │ +5 * │ │ │ │ │ +6 * This library is free software; you can redistribute it and/or │ │ │ │ │ +7 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +8 * License as published by the Free Software Foundation; either │ │ │ │ │ +9 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +10 * │ │ │ │ │ +11 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +12 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +14 * Library General Public License for more details. │ │ │ │ │ +15 * │ │ │ │ │ +16 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +17 * License along with this library; if not, write to the │ │ │ │ │ +18 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +19 * Boston, MA 02111-1307, USA. │ │ │ │ │ +20 */ │ │ │ │ │ +21 │ │ │ │ │ +22#ifndef TDSTHREAD_H │ │ │ │ │ +23#define TDSTHREAD_H 1 │ │ │ │ │ +24 │ │ │ │ │ +25#undef TDS_HAVE_MUTEX │ │ │ │ │ +26 │ │ │ │ │ +27#if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX) │ │ │ │ │ 28 │ │ │ │ │ -29#if defined(UNIXODBC) || defined(_WIN32) || defined(TDS_NO_DM) │ │ │ │ │ -30#include │ │ │ │ │ -31#include │ │ │ │ │ -32#if defined(UNIXODBC) || defined(_WIN32) │ │ │ │ │ -33#include │ │ │ │ │ -34#endif │ │ │ │ │ -35#else /* IODBC */ │ │ │ │ │ -36#include │ │ │ │ │ -37#include │ │ │ │ │ -38#ifdef HAVE_IODBCINST_H │ │ │ │ │ -39#include │ │ │ │ │ -40#endif /* HAVE_IODBCINST_H */ │ │ │ │ │ -41#endif │ │ │ │ │ +29#include │ │ │ │ │ +30#include │ │ │ │ │ +31#include │ │ │ │ │ +32 │ │ │ │ │ +33#include │ │ │ │ │ +34 │ │ │ │ │ +35typedef pthread_mutex_t _t_d_s___r_a_w___m_u_t_e_x; │ │ │ │ │ +36#define TDS_RAW_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER │ │ │ │ │ +37 │ │ │ │ │ +38static inline void tds_raw_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +39{ │ │ │ │ │ +40 pthread_mutex_lock(mtx); │ │ │ │ │ +41} │ │ │ │ │ 42 │ │ │ │ │ -43#ifdef HAVE_WCHAR_H │ │ │ │ │ -44#include │ │ │ │ │ -45#endif │ │ │ │ │ -46 │ │ │ │ │ -47#ifndef HAVE_SQLLEN │ │ │ │ │ -48#ifndef SQLULEN │ │ │ │ │ -49#define SQLULEN SQLUINTEGER │ │ │ │ │ -50#endif │ │ │ │ │ -51#ifndef SQLLEN │ │ │ │ │ -52#define SQLLEN SQLINTEGER │ │ │ │ │ -53#endif │ │ │ │ │ -54#endif │ │ │ │ │ -55 │ │ │ │ │ -56#ifndef HAVE_SQLSETPOSIROW │ │ │ │ │ -57#define SQLSETPOSIROW SQLUSMALLINT │ │ │ │ │ -58#endif │ │ │ │ │ -59 │ │ │ │ │ -60#ifndef HAVE_SQLROWOFFSET │ │ │ │ │ -61#define SQLROWOFFSET SQLLEN │ │ │ │ │ -62#endif │ │ │ │ │ -63 │ │ │ │ │ -64#ifndef HAVE_SQLROWSETSIZE │ │ │ │ │ -65#define SQLROWSETSIZE SQLULEN │ │ │ │ │ -66#endif │ │ │ │ │ -67 │ │ │ │ │ -68#ifdef __cplusplus │ │ │ │ │ -69extern "C" │ │ │ │ │ -70{ │ │ │ │ │ -71#if 0 │ │ │ │ │ -72} │ │ │ │ │ -73#endif │ │ │ │ │ -74#endif │ │ │ │ │ -75 │ │ │ │ │ -76#include │ │ │ │ │ -77#if defined(__GNUC__) && __GNUC__ >= 4 && !defined(__MINGW32__) │ │ │ │ │ -78#define ODBC_API SQL_API __attribute__((externally_visible)) │ │ │ │ │ -79#else │ │ │ │ │ -80#define ODBC_API SQL_API │ │ │ │ │ -81#endif │ │ │ │ │ -82 │ │ │ │ │ -83#if (defined(_WIN32) || defined(__CYGWIN__)) && defined(__GNUC__) │ │ │ │ │ -84# define ODBC_PUBLIC __attribute__((dllexport)) │ │ │ │ │ -85#else │ │ │ │ │ -86# define ODBC_PUBLIC │ │ │ │ │ -87#endif │ │ │ │ │ +43static inline int tds_raw_mutex_trylock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +44{ │ │ │ │ │ +45 return pthread_mutex_trylock(mtx); │ │ │ │ │ +46} │ │ │ │ │ +47 │ │ │ │ │ +48static inline void tds_raw_mutex_unlock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +49{ │ │ │ │ │ +50 pthread_mutex_unlock(mtx); │ │ │ │ │ +51} │ │ │ │ │ +52 │ │ │ │ │ +53static inline int tds_raw_mutex_init(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +54{ │ │ │ │ │ +55 return pthread_mutex_init(mtx, NULL); │ │ │ │ │ +56} │ │ │ │ │ +57 │ │ │ │ │ +58static inline void tds_raw_mutex_free(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +59{ │ │ │ │ │ +60 pthread_mutex_destroy(mtx); │ │ │ │ │ +61} │ │ │ │ │ +62 │ │ │ │ │ +63typedef pthread_cond_t _t_d_s___c_o_n_d_i_t_i_o_n; │ │ │ │ │ +64 │ │ │ │ │ +65int tds_raw_cond_init(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ +66static inline int tds_raw_cond_destroy(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ +67{ │ │ │ │ │ +68 return pthread_cond_destroy(cond); │ │ │ │ │ +69} │ │ │ │ │ +70static inline int tds_raw_cond_signal(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ +71{ │ │ │ │ │ +72 return pthread_cond_signal(cond); │ │ │ │ │ +73} │ │ │ │ │ +74static inline int tds_raw_cond_wait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +75{ │ │ │ │ │ +76 return pthread_cond_wait(cond, mtx); │ │ │ │ │ +77} │ │ │ │ │ +78int tds_raw_cond_timedwait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x *mtx, int │ │ │ │ │ +timeout_sec); │ │ │ │ │ +79 │ │ │ │ │ +80#define TDS_HAVE_MUTEX 1 │ │ │ │ │ +81 │ │ │ │ │ +82typedef pthread_t _t_d_s___t_h_r_e_a_d; │ │ │ │ │ +83typedef pthread_t tds_thread_id; │ │ │ │ │ +84typedef void *(*tds_thread_proc)(void *arg); │ │ │ │ │ +85#define TDS_THREAD_PROC_DECLARE(name, arg) \ │ │ │ │ │ +86 void *name(void *arg) │ │ │ │ │ +87#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n)) │ │ │ │ │ 88 │ │ │ │ │ -89#define ODBC_MAX(a,b) ( (a) > (b) ? (a) : (b) ) │ │ │ │ │ -90#define ODBC_MIN(a,b) ( (a) < (b) ? (a) : (b) ) │ │ │ │ │ -91#define ODBC_CLAMP(x,a,b) ( (x) < (a) ? (a) : (x) > (b) ? (b) : (x) ) │ │ │ │ │ -92 │ │ │ │ │ -_9_3struct ___s_q_l___e_r_r_o_r │ │ │ │ │ -94{ │ │ │ │ │ -95 const char *msg; │ │ │ │ │ -96 char state2[6]; │ │ │ │ │ -97 char state3[6]; │ │ │ │ │ -98 TDS_UINT native; │ │ │ │ │ -99 char *server; │ │ │ │ │ -100 int linenum; │ │ │ │ │ -101 int msgstate; │ │ │ │ │ -102 int row; │ │ │ │ │ -103}; │ │ │ │ │ -104 │ │ │ │ │ -_1_0_5struct ___s_q_l___e_r_r_o_r_s │ │ │ │ │ -106{ │ │ │ │ │ -107 struct ___s_q_l___e_r_r_o_r *errs; │ │ │ │ │ -108 int num_errors; │ │ │ │ │ -109 SQLRETURN lastrc; │ │ │ │ │ -110 char ranked; │ │ │ │ │ -111}; │ │ │ │ │ +89static inline int tds_thread_create(_t_d_s___t_h_r_e_a_d *ret, tds_thread_proc proc, │ │ │ │ │ +void *arg) │ │ │ │ │ +90{ │ │ │ │ │ +91 return pthread_create(ret, NULL, proc, arg); │ │ │ │ │ +92} │ │ │ │ │ +93 │ │ │ │ │ +94static inline int tds_thread_create_detached(tds_thread_proc proc, void *arg) │ │ │ │ │ +95{ │ │ │ │ │ +96 _t_d_s___t_h_r_e_a_d th; │ │ │ │ │ +97 int ret = pthread_create(&th, NULL, proc, arg); │ │ │ │ │ +98 if (!ret) │ │ │ │ │ +99 pthread_detach(th); │ │ │ │ │ +100 return ret; │ │ │ │ │ +101} │ │ │ │ │ +102 │ │ │ │ │ +103static inline int tds_thread_join(_t_d_s___t_h_r_e_a_d th, void **ret) │ │ │ │ │ +104{ │ │ │ │ │ +105 return pthread_join(th, ret); │ │ │ │ │ +106} │ │ │ │ │ +107 │ │ │ │ │ +108static inline tds_thread_id tds_thread_get_current_id(void) │ │ │ │ │ +109{ │ │ │ │ │ +110 return pthread_self(); │ │ │ │ │ +111} │ │ │ │ │ 112 │ │ │ │ │ -113typedef struct ___s_q_l___e_r_r_o_r_s _T_D_S___E_R_R_S; │ │ │ │ │ -114 │ │ │ │ │ -115#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -116void odbc_check_struct_extra(void *p); │ │ │ │ │ -117#else │ │ │ │ │ -118static inline void odbc_check_struct_extra(void *p) {} │ │ │ │ │ -119#endif │ │ │ │ │ -120 │ │ │ │ │ -121#define ODBC_RETURN(handle, rc) \ │ │ │ │ │ -122 do { odbc_check_struct_extra(handle); \ │ │ │ │ │ -123 return handle->errs.lastrc = (rc); } while(0) │ │ │ │ │ -124#define ODBC_RETURN_(handle) \ │ │ │ │ │ -125 do { odbc_check_struct_extra(handle); \ │ │ │ │ │ -126 return handle->errs.lastrc; } while(0) │ │ │ │ │ -127 │ │ │ │ │ -128#define ODBC_EXIT(handle, rc) \ │ │ │ │ │ -129 do { SQLRETURN _odbc_rc = handle->errs.lastrc = (rc); \ │ │ │ │ │ -130 odbc_check_struct_extra(handle); \ │ │ │ │ │ -131 tds_mutex_unlock(&handle->mtx); \ │ │ │ │ │ -132 return _odbc_rc; } while(0) │ │ │ │ │ -133#define ODBC_EXIT_(handle) \ │ │ │ │ │ -134 do { SQLRETURN _odbc_rc = handle->errs.lastrc; \ │ │ │ │ │ -135 odbc_check_struct_extra(handle); \ │ │ │ │ │ -136 tds_mutex_unlock(&handle->mtx); \ │ │ │ │ │ -137 return _odbc_rc; } while(0) │ │ │ │ │ +113static inline int tds_thread_is_current(tds_thread_id th) │ │ │ │ │ +114{ │ │ │ │ │ +115 return pthread_equal(th, pthread_self()); │ │ │ │ │ +116} │ │ │ │ │ +117 │ │ │ │ │ +118#include │ │ │ │ │ +119 │ │ │ │ │ +120#elif defined(_WIN32) │ │ │ │ │ +121 │ │ │ │ │ +122#include │ │ │ │ │ +123#include │ │ │ │ │ +124 │ │ │ │ │ +125/* old version of Windows do not define this constant */ │ │ │ │ │ +126#ifndef ETIMEDOUT │ │ │ │ │ +127#define ETIMEDOUT 138 │ │ │ │ │ +128#endif │ │ │ │ │ +129 │ │ │ │ │ +130struct _p_t_w_3_2___m_c_s___n_o_d_e___t__; │ │ │ │ │ +131 │ │ │ │ │ +132typedef struct { │ │ │ │ │ +133 struct _p_t_w_3_2___m_c_s___n_o_d_e___t__ *lock; │ │ │ │ │ +134 LONG done; │ │ │ │ │ +135 DWORD thread_id; │ │ │ │ │ +136 CRITICAL_SECTION crit; │ │ │ │ │ +137} _t_d_s___r_a_w___m_u_t_e_x; │ │ │ │ │ 138 │ │ │ │ │ -139 │ │ │ │ │ -141void odbc_errs_reset(struct ___s_q_l___e_r_r_o_r_s *errs); │ │ │ │ │ -142 │ │ │ │ │ -144void odbc_errs_add(struct ___s_q_l___e_r_r_o_r_s *errs, const char *sqlstate, const │ │ │ │ │ -char *msg); │ │ │ │ │ -145 │ │ │ │ │ -147void odbc_errs_add_rdbms(struct ___s_q_l___e_r_r_o_r_s *errs, TDS_UINT native, const │ │ │ │ │ -char *sqlstate, const char *msg, int linenum, │ │ │ │ │ -148 int msgstate, const char *server, int row); │ │ │ │ │ +139#define TDS_RAW_MUTEX_INITIALIZER { NULL, 0, 0 } │ │ │ │ │ +140 │ │ │ │ │ +141static inline int │ │ │ │ │ +142tds_raw_mutex_init(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +143{ │ │ │ │ │ +144 mtx->lock = NULL; │ │ │ │ │ +145 mtx->done = 0; │ │ │ │ │ +146 mtx->thread_id = 0; │ │ │ │ │ +147 return 0; │ │ │ │ │ +148} │ │ │ │ │ 149 │ │ │ │ │ -_1_5_0struct ___d_h_e_a_d_e_r │ │ │ │ │ -151{ │ │ │ │ │ -152 SQLSMALLINT sql_desc_alloc_type; │ │ │ │ │ -153 SQLINTEGER sql_desc_bind_type; │ │ │ │ │ -154 SQLULEN sql_desc_array_size; │ │ │ │ │ -155 /* TODO SQLLEN ?? see http://support.microsoft.com/default.aspx?scid=kb;en- │ │ │ │ │ -us;298678 */ │ │ │ │ │ -156 SQLSMALLINT sql_desc_count; │ │ │ │ │ -157 SQLUSMALLINT *sql_desc_array_status_ptr; │ │ │ │ │ -158 SQLULEN *sql_desc_rows_processed_ptr; │ │ │ │ │ -159 SQLLEN *sql_desc_bind_offset_ptr; │ │ │ │ │ -160}; │ │ │ │ │ +150void tds_win_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mutex); │ │ │ │ │ +151 │ │ │ │ │ +152static inline void tds_raw_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +153{ │ │ │ │ │ +154 if (mtx->done) { │ │ │ │ │ +155 EnterCriticalSection(&mtx->crit); │ │ │ │ │ +156 mtx->thread_id = GetCurrentThreadId(); │ │ │ │ │ +157 } else { │ │ │ │ │ +158 tds_win_mutex_lock(mtx); │ │ │ │ │ +159 } │ │ │ │ │ +160} │ │ │ │ │ 161 │ │ │ │ │ -_1_6_2struct ___d_r_e_c_o_r_d │ │ │ │ │ -163{ │ │ │ │ │ -164 SQLUINTEGER sql_desc_auto_unique_value; │ │ │ │ │ -165 _D_S_T_R sql_desc_base_column_name; │ │ │ │ │ -166 _D_S_T_R sql_desc_base_table_name; │ │ │ │ │ -167 SQLINTEGER sql_desc_case_sensitive; │ │ │ │ │ -168 _D_S_T_R sql_desc_catalog_name; │ │ │ │ │ -169 SQLSMALLINT sql_desc_concise_type; │ │ │ │ │ -170 SQLPOINTER sql_desc_data_ptr; │ │ │ │ │ -171 SQLSMALLINT sql_desc_datetime_interval_code; │ │ │ │ │ -172 SQLINTEGER sql_desc_datetime_interval_precision; │ │ │ │ │ -173 SQLLEN sql_desc_display_size; │ │ │ │ │ -174 SQLSMALLINT sql_desc_fixed_prec_scale; │ │ │ │ │ -175 SQLLEN *sql_desc_indicator_ptr; │ │ │ │ │ -176 _D_S_T_R sql_desc_label; │ │ │ │ │ -177 SQLULEN sql_desc_length; │ │ │ │ │ -178 /* this point to a constant buffer, do not free or modify */ │ │ │ │ │ -179 const char *sql_desc_literal_prefix; │ │ │ │ │ -180 /* this point to a constant buffer, do not free or modify */ │ │ │ │ │ -181 const char *sql_desc_literal_suffix; │ │ │ │ │ -182 _D_S_T_R sql_desc_local_type_name; │ │ │ │ │ -183 _D_S_T_R sql_desc_name; │ │ │ │ │ -184 SQLSMALLINT sql_desc_nullable; │ │ │ │ │ -185 SQLINTEGER sql_desc_num_prec_radix; │ │ │ │ │ -186 SQLLEN sql_desc_octet_length; │ │ │ │ │ -187 SQLLEN *sql_desc_octet_length_ptr; │ │ │ │ │ -188 SQLSMALLINT sql_desc_parameter_type; │ │ │ │ │ -189 SQLSMALLINT sql_desc_precision; │ │ │ │ │ -190 SQLSMALLINT sql_desc_rowver; │ │ │ │ │ -191 SQLSMALLINT sql_desc_scale; │ │ │ │ │ -192 _D_S_T_R sql_desc_schema_name; │ │ │ │ │ -193 SQLSMALLINT sql_desc_searchable; │ │ │ │ │ -194 _D_S_T_R sql_desc_table_name; │ │ │ │ │ -195 SQLSMALLINT sql_desc_type; │ │ │ │ │ -196 /* this point to a constant buffer, do not free or modify */ │ │ │ │ │ -197 const char *sql_desc_type_name; │ │ │ │ │ -198 SQLSMALLINT sql_desc_unnamed; │ │ │ │ │ -199 SQLSMALLINT sql_desc_unsigned; │ │ │ │ │ -200 SQLSMALLINT sql_desc_updatable; │ │ │ │ │ -201}; │ │ │ │ │ +162int tds_raw_mutex_trylock(_t_d_s___r_a_w___m_u_t_e_x *mtx); │ │ │ │ │ +163 │ │ │ │ │ +164static inline void tds_raw_mutex_unlock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +165{ │ │ │ │ │ +166 mtx->thread_id = 0; │ │ │ │ │ +167 LeaveCriticalSection(&mtx->crit); │ │ │ │ │ +168} │ │ │ │ │ +169 │ │ │ │ │ +170static inline void tds_raw_mutex_free(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +171{ │ │ │ │ │ +172 if (mtx->done) { │ │ │ │ │ +173 DeleteCriticalSection(&mtx->crit); │ │ │ │ │ +174 mtx->done = 0; │ │ │ │ │ +175 } │ │ │ │ │ +176} │ │ │ │ │ +177 │ │ │ │ │ +178#define TDS_HAVE_MUTEX 1 │ │ │ │ │ +179 │ │ │ │ │ +180/* easy way, only single signal supported */ │ │ │ │ │ +181typedef void *TDS_CONDITION_VARIABLE; │ │ │ │ │ +182typedef union { │ │ │ │ │ +183 HANDLE ev; │ │ │ │ │ +184 TDS_CONDITION_VARIABLE cv; │ │ │ │ │ +185} _t_d_s___c_o_n_d_i_t_i_o_n; │ │ │ │ │ +186 │ │ │ │ │ +187extern int (*tds_raw_cond_init)(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ +188extern int (*tds_raw_cond_destroy)(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ +189extern int (*tds_raw_cond_signal)(_t_d_s___c_o_n_d_i_t_i_o_n *cond); │ │ │ │ │ +190extern int (*tds_raw_cond_timedwait)(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x │ │ │ │ │ +*mtx, int timeout_sec); │ │ │ │ │ +191static inline int tds_raw_cond_wait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, _t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +192{ │ │ │ │ │ +193 return tds_raw_cond_timedwait(cond, mtx, -1); │ │ │ │ │ +194} │ │ │ │ │ +195 │ │ │ │ │ +196typedef HANDLE _t_d_s___t_h_r_e_a_d; │ │ │ │ │ +197typedef DWORD tds_thread_id; │ │ │ │ │ +198typedef DWORD (WINAPI *tds_thread_proc)(void *arg); │ │ │ │ │ +199#define TDS_THREAD_PROC_DECLARE(name, arg) \ │ │ │ │ │ +200 DWORD WINAPI name(void *arg) │ │ │ │ │ +201#define TDS_THREAD_RESULT(n) ((DWORD)(int)(n)) │ │ │ │ │ 202 │ │ │ │ │ -_2_0_3struct ___h_d_e_s_c │ │ │ │ │ +203static inline int tds_thread_create(_t_d_s___t_h_r_e_a_d *ret, tds_thread_proc proc, │ │ │ │ │ +void *arg) │ │ │ │ │ 204{ │ │ │ │ │ -205 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ -206 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ -207 tds_mutex mtx; │ │ │ │ │ -208 int type; │ │ │ │ │ -209 SQLHANDLE parent; │ │ │ │ │ -210 struct ___d_h_e_a_d_e_r header; │ │ │ │ │ -211 struct ___d_r_e_c_o_r_d *records; │ │ │ │ │ -212}; │ │ │ │ │ -213 │ │ │ │ │ -214typedef struct ___h_d_e_s_c _T_D_S___D_E_S_C; │ │ │ │ │ -215 │ │ │ │ │ -216#define DESC_IRD 1 │ │ │ │ │ -217#define DESC_IPD 2 │ │ │ │ │ -218#define DESC_ARD 3 │ │ │ │ │ -219#define DESC_APD 4 │ │ │ │ │ -220 │ │ │ │ │ -_2_2_1struct ___h_e_a_t_t_r │ │ │ │ │ -222{ │ │ │ │ │ -223 SQLUINTEGER connection_pooling; │ │ │ │ │ -224 SQLUINTEGER cp_match; │ │ │ │ │ -225 SQLINTEGER odbc_version; │ │ │ │ │ -226 SQLINTEGER output_nts; │ │ │ │ │ -227}; │ │ │ │ │ -228 │ │ │ │ │ -_2_2_9struct ___h_c_h_k │ │ │ │ │ -230{ │ │ │ │ │ -231 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ -232 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ -233 tds_mutex mtx; │ │ │ │ │ -234}; │ │ │ │ │ -235 │ │ │ │ │ -_2_3_6struct ___h_e_n_v │ │ │ │ │ -237{ │ │ │ │ │ -238 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ -239 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ -240 tds_mutex mtx; │ │ │ │ │ -241 _T_D_S_C_O_N_T_E_X_T *tds_ctx; │ │ │ │ │ -242 struct ___h_e_a_t_t_r attr; │ │ │ │ │ -243}; │ │ │ │ │ +205 *ret = CreateThread(NULL, 0, proc, arg, 0, NULL); │ │ │ │ │ +206 return *ret != NULL ? 0 : 11 /* EAGAIN */; │ │ │ │ │ +207} │ │ │ │ │ +208 │ │ │ │ │ +209static inline int tds_thread_create_detached(tds_thread_proc proc, void │ │ │ │ │ +*arg) │ │ │ │ │ +210{ │ │ │ │ │ +211 HANDLE h = CreateThread(NULL, 0, proc, arg, 0, NULL); │ │ │ │ │ +212 if (h) │ │ │ │ │ +213 return 0; │ │ │ │ │ +214 CloseHandle(h); │ │ │ │ │ +215 return 11 /* EAGAIN */; │ │ │ │ │ +216} │ │ │ │ │ +217 │ │ │ │ │ +218static inline int tds_thread_join(_t_d_s___t_h_r_e_a_d th, void **ret) │ │ │ │ │ +219{ │ │ │ │ │ +220 if (WaitForSingleObject(th, INFINITE) == WAIT_OBJECT_0) { │ │ │ │ │ +221 if (ret) { │ │ │ │ │ +222 DWORD r; │ │ │ │ │ +223 if (!GetExitCodeThread(th, &r)) │ │ │ │ │ +224 r = 0xffffffffu; │ │ │ │ │ +225 *ret = (void*) (((char*)0) + r); │ │ │ │ │ +226 } │ │ │ │ │ +227 │ │ │ │ │ +228 CloseHandle(th); │ │ │ │ │ +229 return 0; │ │ │ │ │ +230 } │ │ │ │ │ +231 CloseHandle(th); │ │ │ │ │ +232 return 22 /* EINVAL */; │ │ │ │ │ +233} │ │ │ │ │ +234 │ │ │ │ │ +235static inline tds_thread_id tds_thread_get_current_id(void) │ │ │ │ │ +236{ │ │ │ │ │ +237 return GetCurrentThreadId(); │ │ │ │ │ +238} │ │ │ │ │ +239 │ │ │ │ │ +240static inline int tds_thread_is_current(tds_thread_id th) │ │ │ │ │ +241{ │ │ │ │ │ +242 return th == GetCurrentThreadId(); │ │ │ │ │ +243} │ │ │ │ │ 244 │ │ │ │ │ -_2_4_5struct ___h_c_a_t_t_r │ │ │ │ │ -246{ │ │ │ │ │ -247 SQLUINTEGER access_mode; │ │ │ │ │ -248 SQLUINTEGER async_enable; │ │ │ │ │ -249 SQLUINTEGER auto_ipd; │ │ │ │ │ -250 SQLUINTEGER autocommit; │ │ │ │ │ -251 SQLUINTEGER connection_dead; │ │ │ │ │ -252 SQLUINTEGER connection_timeout; │ │ │ │ │ -253 _D_S_T_R current_catalog; │ │ │ │ │ -254 SQLUINTEGER login_timeout; │ │ │ │ │ -255 SQLUINTEGER metadata_id; │ │ │ │ │ -256 SQLUINTEGER odbc_cursors; │ │ │ │ │ -257 SQLUINTEGER packet_size; │ │ │ │ │ -258 SQLHWND quite_mode; │ │ │ │ │ -259 _D_S_T_R translate_lib; │ │ │ │ │ -260 SQLUINTEGER translate_option; │ │ │ │ │ -261 SQLUINTEGER txn_isolation; │ │ │ │ │ -262 SQLUINTEGER mars_enabled; │ │ │ │ │ -263 SQLUINTEGER cursor_type; │ │ │ │ │ -264 SQLUINTEGER bulk_enabled; │ │ │ │ │ -265#ifdef TDS_NO_DM │ │ │ │ │ -266 SQLUINTEGER trace; │ │ │ │ │ -267 _D_S_T_R tracefile; │ │ │ │ │ -268#endif │ │ │ │ │ -269}; │ │ │ │ │ -270 │ │ │ │ │ -271#define TDS_MAX_APP_DESC 100 │ │ │ │ │ -272 │ │ │ │ │ -273struct ___h_s_t_m_t; │ │ │ │ │ -_2_7_4struct ___h_d_b_c │ │ │ │ │ +245#else │ │ │ │ │ +246 │ │ │ │ │ +247#include │ │ │ │ │ +248 │ │ │ │ │ +249/* define noops as "successful" */ │ │ │ │ │ +_2_5_0typedef struct { │ │ │ │ │ +251 char dummy[0]; /* compiler compatibility */ │ │ │ │ │ +252} _t_d_s___r_a_w___m_u_t_e_x; │ │ │ │ │ +253 │ │ │ │ │ +254#define TDS_RAW_MUTEX_INITIALIZER {} │ │ │ │ │ +255 │ │ │ │ │ +256static inline void tds_raw_mutex_lock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +257{ │ │ │ │ │ +258} │ │ │ │ │ +259 │ │ │ │ │ +260static inline int tds_raw_mutex_trylock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +261{ │ │ │ │ │ +262 return 0; │ │ │ │ │ +263} │ │ │ │ │ +264 │ │ │ │ │ +265static inline void tds_raw_mutex_unlock(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +266{ │ │ │ │ │ +267} │ │ │ │ │ +268 │ │ │ │ │ +269static inline int tds_raw_mutex_init(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ +270{ │ │ │ │ │ +271 return 0; │ │ │ │ │ +272} │ │ │ │ │ +273 │ │ │ │ │ +274static inline void tds_raw_mutex_free(_t_d_s___r_a_w___m_u_t_e_x *mtx) │ │ │ │ │ 275{ │ │ │ │ │ -276 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ -277 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ -278 tds_mutex mtx; │ │ │ │ │ -279 struct ___h_e_n_v *env; │ │ │ │ │ -280 _T_D_S_S_O_C_K_E_T *_t_d_s___s_o_c_k_e_t; │ │ │ │ │ -281 _D_S_T_R dsn; │ │ │ │ │ -282 _D_S_T_R oldpwd; │ │ │ │ │ -283#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ -284 int original_charset_num; │ │ │ │ │ -285 _T_D_S_I_C_O_N_V *mb_conv; │ │ │ │ │ -286#endif │ │ │ │ │ -287 │ │ │ │ │ -_2_9_3 struct ___h_s_t_m_t *_c_u_r_r_e_n_t___s_t_a_t_e_m_e_n_t; │ │ │ │ │ -_2_9_5 struct ___h_s_t_m_t *_s_t_m_t___l_i_s_t; │ │ │ │ │ -296 struct ___h_c_a_t_t_r attr; │ │ │ │ │ -_2_9_8 _T_D_S___D_E_S_C *_u_a_d[TDS_MAX_APP_DESC]; │ │ │ │ │ -_3_0_0 unsigned int _c_u_r_s_o_r___s_u_p_p_o_r_t:1; │ │ │ │ │ -301 unsigned int use_oldpwd:1; │ │ │ │ │ -302 TDS_INT default_query_timeout; │ │ │ │ │ +276} │ │ │ │ │ +277 │ │ │ │ │ +_2_7_8typedef struct { │ │ │ │ │ +279 char dummy[0]; /* compiler compatibility */ │ │ │ │ │ +280} _t_d_s___c_o_n_d_i_t_i_o_n; │ │ │ │ │ +281 │ │ │ │ │ +282static inline int tds_raw_cond_init(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ +283{ │ │ │ │ │ +284 return 0; │ │ │ │ │ +285} │ │ │ │ │ +286static inline int tds_raw_cond_destroy(_t_d_s___c_o_n_d_i_t_i_o_n *cond) │ │ │ │ │ +287{ │ │ │ │ │ +288 return 0; │ │ │ │ │ +289} │ │ │ │ │ +290#define tds_raw_cond_signal(cond) \ │ │ │ │ │ +291 FreeTDS_Condition_not_compiled │ │ │ │ │ +292 │ │ │ │ │ +293#define tds_raw_cond_wait(cond, mtx) \ │ │ │ │ │ +294 FreeTDS_Condition_not_compiled │ │ │ │ │ +295 │ │ │ │ │ +296#define tds_raw_cond_timedwait(cond, mtx, timeout_sec) \ │ │ │ │ │ +297 FreeTDS_Condition_not_compiled │ │ │ │ │ +298 │ │ │ │ │ +_2_9_9typedef struct { │ │ │ │ │ +300 char dummy[0]; /* compiler compatibility */ │ │ │ │ │ +301} _t_d_s___t_h_r_e_a_d; │ │ │ │ │ +302typedef int tds_thread_id; │ │ │ │ │ 303 │ │ │ │ │ -304 _T_D_S_B_C_P_I_N_F_O *bcpinfo; │ │ │ │ │ -305 char *bcphint; │ │ │ │ │ -306}; │ │ │ │ │ -307 │ │ │ │ │ -_3_0_8struct ___h_s_a_t_t_r │ │ │ │ │ -309{ │ │ │ │ │ -310 /* TODO remove IRD, ARD, IPD, APD from statement, do not duplicate */ │ │ │ │ │ -311/* TDS_DESC *app_row_desc; */ │ │ │ │ │ -312/* TDS_DESC *app_param_desc; */ │ │ │ │ │ -313 SQLUINTEGER async_enable; │ │ │ │ │ -314 SQLUINTEGER concurrency; │ │ │ │ │ -315 SQLUINTEGER cursor_scrollable; │ │ │ │ │ -316 SQLUINTEGER cursor_sensitivity; │ │ │ │ │ -317 SQLUINTEGER cursor_type; │ │ │ │ │ -318 SQLUINTEGER enable_auto_ipd; │ │ │ │ │ -319 SQLPOINTER fetch_bookmark_ptr; │ │ │ │ │ -320 SQLULEN keyset_size; │ │ │ │ │ -321 SQLULEN max_length; │ │ │ │ │ -322 SQLULEN max_rows; │ │ │ │ │ -323 SQLUINTEGER metadata_id; │ │ │ │ │ -324 SQLUINTEGER noscan; │ │ │ │ │ -325 /* apd->sql_desc_bind_offset_ptr */ │ │ │ │ │ -326 /* SQLUINTEGER *param_bind_offset_ptr; */ │ │ │ │ │ -327 /* apd->sql_desc_bind_type */ │ │ │ │ │ -328 /* SQLUINTEGER param_bind_type; */ │ │ │ │ │ -329 /* apd->sql_desc_array_status_ptr */ │ │ │ │ │ -330 /* SQLUSMALLINT *param_operation_ptr; */ │ │ │ │ │ -331 /* ipd->sql_desc_array_status_ptr */ │ │ │ │ │ -332 /* SQLUSMALLINT *param_status_ptr; */ │ │ │ │ │ -333 /* ipd->sql_desc_rows_processed_ptr */ │ │ │ │ │ -334 /* SQLUSMALLINT *params_processed_ptr; */ │ │ │ │ │ -335 /* apd->sql_desc_array_size */ │ │ │ │ │ -336 /* SQLUINTEGER paramset_size; */ │ │ │ │ │ -337 SQLUINTEGER query_timeout; │ │ │ │ │ -338 SQLUINTEGER retrieve_data; │ │ │ │ │ -339 /* ard->sql_desc_bind_offset_ptr */ │ │ │ │ │ -340 /* SQLUINTEGER *row_bind_offset_ptr; */ │ │ │ │ │ -341 /* ard->sql_desc_array_size */ │ │ │ │ │ -342 /* SQLUINTEGER row_array_size; */ │ │ │ │ │ -343 /* ard->sql_desc_bind_type */ │ │ │ │ │ -344 /* SQLUINTEGER row_bind_type; */ │ │ │ │ │ -345 SQLULEN row_number; │ │ │ │ │ -346 /* ard->sql_desc_array_status_ptr */ │ │ │ │ │ -347 /* SQLUINTEGER *row_operation_ptr; */ │ │ │ │ │ -348 /* ird->sql_desc_array_status_ptr */ │ │ │ │ │ -349 /* SQLUINTEGER *row_status_ptr; */ │ │ │ │ │ -350 /* ird->sql_desc_rows_processed_ptr */ │ │ │ │ │ -351 /* SQLUINTEGER *rows_fetched_ptr; */ │ │ │ │ │ -352 SQLUINTEGER simulate_cursor; │ │ │ │ │ -353 SQLUINTEGER use_bookmarks; │ │ │ │ │ -354 /* SQLGetStmtAttr only */ │ │ │ │ │ -355/* TDS_DESC *imp_row_desc; */ │ │ │ │ │ -356/* TDS_DESC *imp_param_desc; */ │ │ │ │ │ -357 _D_S_T_R qn_msgtext; │ │ │ │ │ -358 _D_S_T_R qn_options; │ │ │ │ │ -359 SQLUINTEGER qn_timeout; │ │ │ │ │ -360}; │ │ │ │ │ -361 │ │ │ │ │ -362typedef enum │ │ │ │ │ -363{ │ │ │ │ │ -364 NOT_IN_ROW, │ │ │ │ │ -365 IN_NORMAL_ROW, │ │ │ │ │ -366 IN_COMPUTE_ROW, │ │ │ │ │ -367 AFTER_COMPUTE_ROW, │ │ │ │ │ -368 PRE_NORMAL_ROW │ │ │ │ │ -369} TDS_ODBC_ROW_STATUS; │ │ │ │ │ -370 │ │ │ │ │ -371typedef enum │ │ │ │ │ -372{ │ │ │ │ │ -373 ODBC_SPECIAL_NONE = 0, │ │ │ │ │ -374 ODBC_SPECIAL_GETTYPEINFO = 1, │ │ │ │ │ -375 ODBC_SPECIAL_COLUMNS = 2, │ │ │ │ │ -376 ODBC_SPECIAL_PROCEDURECOLUMNS = 3, │ │ │ │ │ -377 ODBC_SPECIAL_SPECIALCOLUMNS = 4 │ │ │ │ │ -378} TDS_ODBC_SPECIAL_ROWS; │ │ │ │ │ -379 │ │ │ │ │ -_3_8_0struct ___h_s_t_m_t │ │ │ │ │ -381{ │ │ │ │ │ -382 SQLSMALLINT htype; /* do not reorder this field */ │ │ │ │ │ -383 struct ___s_q_l___e_r_r_o_r_s errs; /* do not reorder this field */ │ │ │ │ │ -384 tds_mutex mtx; │ │ │ │ │ -385 struct ___h_d_b_c *dbc; │ │ │ │ │ -_3_8_7 _D_S_T_R _q_u_e_r_y; │ │ │ │ │ -_3_8_9 _T_D_S_S_O_C_K_E_T *_t_d_s; │ │ │ │ │ -390 │ │ │ │ │ -_3_9_2 struct ___h_s_t_m_t *_n_e_x_t; │ │ │ │ │ -_3_9_4 struct ___h_s_t_m_t *_p_r_e_v; │ │ │ │ │ -395 │ │ │ │ │ -396 /* begin prepared query stuff */ │ │ │ │ │ -397 unsigned is_prepared_query:1; │ │ │ │ │ -398 unsigned prepared_query_is_func:1; │ │ │ │ │ -399 unsigned prepared_query_is_rpc:1; │ │ │ │ │ -_4_0_4 unsigned _n_e_e_d___r_e_p_r_e_p_a_r_e:1; │ │ │ │ │ -405 unsigned param_data_called:1; │ │ │ │ │ -406 /* end prepared query stuff */ │ │ │ │ │ -407 │ │ │ │ │ -_4_0_9 _T_D_S_P_A_R_A_M_I_N_F_O *_p_a_r_a_m_s; │ │ │ │ │ -_4_1_1 int _p_a_r_a_m___n_u_m; │ │ │ │ │ -_4_1_3 size_t _p_r_e_p_a_r_e_d___p_o_s; │ │ │ │ │ -414 │ │ │ │ │ -415 unsigned int curr_param_row, num_param_rows; │ │ │ │ │ -416 │ │ │ │ │ -_4_1_8 unsigned int _p_a_r_a_m___c_o_u_n_t; │ │ │ │ │ -419 int row; │ │ │ │ │ -_4_2_1 TDS_INT8 _r_o_w___c_o_u_n_t; │ │ │ │ │ -_4_2_3 TDS_ODBC_ROW_STATUS _r_o_w___s_t_a_t_u_s; │ │ │ │ │ -424 /* do NOT free dynamic, free from socket or attach to connection */ │ │ │ │ │ -425 _T_D_S_D_Y_N_A_M_I_C *dyn; │ │ │ │ │ -426 _T_D_S___D_E_S_C *ard, *ird, *apd, *ipd; │ │ │ │ │ -427 _T_D_S___D_E_S_C *orig_ard, *orig_apd; │ │ │ │ │ -428 SQLULEN sql_rowset_size; │ │ │ │ │ -429 struct ___h_s_a_t_t_r attr; │ │ │ │ │ -430 _D_S_T_R cursor_name; /* auto generated cursor name */ │ │ │ │ │ -431 TDS_ODBC_SPECIAL_ROWS special_row; │ │ │ │ │ -432 /* do NOT free cursor, free from socket or attach to connection */ │ │ │ │ │ -433 _T_D_S_C_U_R_S_O_R *cursor; │ │ │ │ │ -434}; │ │ │ │ │ -435 │ │ │ │ │ -436typedef struct ___h_e_n_v _T_D_S___E_N_V; │ │ │ │ │ -437typedef struct ___h_d_b_c _T_D_S___D_B_C; │ │ │ │ │ -438typedef struct ___h_s_t_m_t _T_D_S___S_T_M_T; │ │ │ │ │ -439typedef struct ___h_c_h_k _T_D_S___C_H_K; │ │ │ │ │ -440 │ │ │ │ │ -_4_4_1typedef struct { │ │ │ │ │ -442 /* this must be the first member */ │ │ │ │ │ -443 _T_D_S_C_O_L_U_M_N_F_U_N_C_S common; │ │ │ │ │ -444 void (*set_type_info)(_T_D_S_C_O_L_U_M_N *col, struct ___d_r_e_c_o_r_d *drec, SQLINTEGER │ │ │ │ │ -odbc_ver); │ │ │ │ │ -445} _T_D_S___F_U_N_C_S; │ │ │ │ │ -446 │ │ │ │ │ -447#define IS_HENV(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_ENV) │ │ │ │ │ -448#define IS_HDBC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DBC) │ │ │ │ │ -449#define IS_HSTMT(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_STMT) │ │ │ │ │ -450#define IS_HDESC(x) (((TDS_CHK *)x)->htype == SQL_HANDLE_DESC) │ │ │ │ │ -451 │ │ │ │ │ -452/* fix a bug in MingW headers */ │ │ │ │ │ -453#ifdef __MINGW32__ │ │ │ │ │ -454#if SQL_INTERVAL_YEAR == (100 + SQL_CODE_SECOND) │ │ │ │ │ -455 │ │ │ │ │ -456#undef SQL_INTERVAL_YEAR │ │ │ │ │ -457#undef SQL_INTERVAL_MONTH │ │ │ │ │ -458#undef SQL_INTERVAL_DAY │ │ │ │ │ -459#undef SQL_INTERVAL_HOUR │ │ │ │ │ -460#undef SQL_INTERVAL_MINUTE │ │ │ │ │ -461#undef SQL_INTERVAL_SECOND │ │ │ │ │ -462#undef SQL_INTERVAL_YEAR_TO_MONTH │ │ │ │ │ -463#undef SQL_INTERVAL_DAY_TO_HOUR │ │ │ │ │ -464#undef SQL_INTERVAL_DAY_TO_MINUTE │ │ │ │ │ -465#undef SQL_INTERVAL_DAY_TO_SECOND │ │ │ │ │ -466#undef SQL_INTERVAL_HOUR_TO_MINUTE │ │ │ │ │ -467#undef SQL_INTERVAL_HOUR_TO_SECOND │ │ │ │ │ -468#undef SQL_INTERVAL_MINUTE_TO_SECOND │ │ │ │ │ -469 │ │ │ │ │ -470#define SQL_INTERVAL_YEAR (100 + SQL_CODE_YEAR) │ │ │ │ │ -471#define SQL_INTERVAL_MONTH (100 + SQL_CODE_MONTH) │ │ │ │ │ -472#define SQL_INTERVAL_DAY (100 + SQL_CODE_DAY) │ │ │ │ │ -473#define SQL_INTERVAL_HOUR (100 + SQL_CODE_HOUR) │ │ │ │ │ -474#define SQL_INTERVAL_MINUTE (100 + SQL_CODE_MINUTE) │ │ │ │ │ -475#define SQL_INTERVAL_SECOND (100 + SQL_CODE_SECOND) │ │ │ │ │ -476#define SQL_INTERVAL_YEAR_TO_MONTH (100 + SQL_CODE_YEAR_TO_MONTH) │ │ │ │ │ -477#define SQL_INTERVAL_DAY_TO_HOUR (100 + SQL_CODE_DAY_TO_HOUR) │ │ │ │ │ -478#define SQL_INTERVAL_DAY_TO_MINUTE (100 + SQL_CODE_DAY_TO_MINUTE) │ │ │ │ │ -479#define SQL_INTERVAL_DAY_TO_SECOND (100 + SQL_CODE_DAY_TO_SECOND) │ │ │ │ │ -480#define SQL_INTERVAL_HOUR_TO_MINUTE (100 + SQL_CODE_HOUR_TO_MINUTE) │ │ │ │ │ -481#define SQL_INTERVAL_HOUR_TO_SECOND (100 + SQL_CODE_HOUR_TO_SECOND) │ │ │ │ │ -482#define SQL_INTERVAL_MINUTE_TO_SECOND (100 + SQL_CODE_MINUTE_TO_SECOND) │ │ │ │ │ -483 │ │ │ │ │ -484#endif │ │ │ │ │ -485#endif │ │ │ │ │ -486 │ │ │ │ │ -487#ifdef _WIN32 │ │ │ │ │ -488bool get_login_info(HWND hwndParent, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ -489#endif │ │ │ │ │ -490 │ │ │ │ │ -491#define ODBC_PARAM_LIST \ │ │ │ │ │ -492 ODBC_PARAM(Servername) \ │ │ │ │ │ -493 ODBC_PARAM(Server) \ │ │ │ │ │ -494 ODBC_PARAM(DSN) \ │ │ │ │ │ -495 ODBC_PARAM(UID) \ │ │ │ │ │ -496 ODBC_PARAM(PWD) \ │ │ │ │ │ -497 ODBC_PARAM(Address) \ │ │ │ │ │ -498 ODBC_PARAM(Port) \ │ │ │ │ │ -499 ODBC_PARAM(TDS_Version) \ │ │ │ │ │ -500 ODBC_PARAM(Language) \ │ │ │ │ │ -501 ODBC_PARAM(Database) \ │ │ │ │ │ -502 ODBC_PARAM(TextSize) \ │ │ │ │ │ -503 ODBC_PARAM(PacketSize) \ │ │ │ │ │ -504 ODBC_PARAM(ClientCharset) \ │ │ │ │ │ -505 ODBC_PARAM(DumpFile) \ │ │ │ │ │ -506 ODBC_PARAM(DumpFileAppend) \ │ │ │ │ │ -507 ODBC_PARAM(DebugFlags) \ │ │ │ │ │ -508 ODBC_PARAM(Encryption) \ │ │ │ │ │ -509 ODBC_PARAM(Trusted_Connection) \ │ │ │ │ │ -510 ODBC_PARAM(APP) \ │ │ │ │ │ -511 ODBC_PARAM(WSID) \ │ │ │ │ │ -512 ODBC_PARAM(UseNTLMv2) \ │ │ │ │ │ -513 ODBC_PARAM(MARS_Connection) \ │ │ │ │ │ -514 ODBC_PARAM(REALM) \ │ │ │ │ │ -515 ODBC_PARAM(ServerSPN) \ │ │ │ │ │ -516 ODBC_PARAM(AttachDbFilename) \ │ │ │ │ │ -517 ODBC_PARAM(ApplicationIntent) \ │ │ │ │ │ -518 ODBC_PARAM(Timeout) │ │ │ │ │ -519 │ │ │ │ │ -520#define ODBC_PARAM(p) ODBC_PARAM_##p, │ │ │ │ │ -521enum { │ │ │ │ │ -522 ODBC_PARAM_LIST │ │ │ │ │ -523 ODBC_PARAM_SIZE │ │ │ │ │ -524}; │ │ │ │ │ -525#undef ODBC_PARAM │ │ │ │ │ -526 │ │ │ │ │ -527 │ │ │ │ │ -528/* │ │ │ │ │ -529 * connectparams.h │ │ │ │ │ -530 */ │ │ │ │ │ -531 │ │ │ │ │ -_5_3_2typedef struct { │ │ │ │ │ -533 const char *p; │ │ │ │ │ -534 size_t len; │ │ │ │ │ -535} _T_D_S___P_A_R_S_E_D___P_A_R_A_M; │ │ │ │ │ -536 │ │ │ │ │ -544int odbc_parse_connect_string(_T_D_S___E_R_R_S *errs, const char *connect_string, │ │ │ │ │ -const char *connect_string_end, _T_D_S_L_O_G_I_N * login, _T_D_S___P_A_R_S_E_D___P_A_R_A_M │ │ │ │ │ -*parsed_params); │ │ │ │ │ -545int odbc_get_dsn_info(_T_D_S___E_R_R_S *errs, const char *DSN, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ -546#ifdef _WIN32 │ │ │ │ │ -547int odbc_build_connect_string(_T_D_S___E_R_R_S *errs, _T_D_S___P_A_R_S_E_D___P_A_R_A_M *params, char │ │ │ │ │ -**out); │ │ │ │ │ -548#endif │ │ │ │ │ -549 │ │ │ │ │ -550/* │ │ │ │ │ -551 * convert_tds2sql.c │ │ │ │ │ -552 */ │ │ │ │ │ -553SQLLEN odbc_tds2sql_col(_T_D_S___S_T_M_T * stmt, _T_D_S_C_O_L_U_M_N *curcol, int desttype, │ │ │ │ │ -TDS_CHAR * dest, SQLULEN destlen, const struct ___d_r_e_c_o_r_d *drec_ixd); │ │ │ │ │ -554SQLLEN odbc_tds2sql_int4(_T_D_S___S_T_M_T * stmt, TDS_INT *src, int desttype, │ │ │ │ │ -TDS_CHAR * dest, SQLULEN destlen); │ │ │ │ │ -555 │ │ │ │ │ -556 │ │ │ │ │ -557 │ │ │ │ │ -558/* │ │ │ │ │ -559 * descriptor.c │ │ │ │ │ -560 */ │ │ │ │ │ -561_T_D_S___D_E_S_C *desc_alloc(SQLHANDLE parent, int desc_type, int alloc_type); │ │ │ │ │ -562SQLRETURN desc_free(_T_D_S___D_E_S_C * desc); │ │ │ │ │ -563SQLRETURN desc_alloc_records(_T_D_S___D_E_S_C * desc, unsigned count); │ │ │ │ │ -564SQLRETURN desc_copy(_T_D_S___D_E_S_C * dest, _T_D_S___D_E_S_C * src); │ │ │ │ │ -565SQLRETURN desc_free_records(_T_D_S___D_E_S_C * desc); │ │ │ │ │ -566_T_D_S___D_B_C *desc_get_dbc(_T_D_S___D_E_S_C *desc); │ │ │ │ │ -567 │ │ │ │ │ -568/* │ │ │ │ │ -569 * odbc.c │ │ │ │ │ -570 */ │ │ │ │ │ -571SQLRETURN _SQLRowCount(SQLHSTMT hstmt, SQLLEN FAR * pcrow); │ │ │ │ │ -572 │ │ │ │ │ -573/* │ │ │ │ │ -574 * odbc_checks.h │ │ │ │ │ -575 */ │ │ │ │ │ -576#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -577/* macro */ │ │ │ │ │ -578#define CHECK_ENV_EXTRA(env) odbc_check_env_extra(env) │ │ │ │ │ -579#define CHECK_DBC_EXTRA(dbc) odbc_check_dbc_extra(dbc) │ │ │ │ │ -580#define CHECK_STMT_EXTRA(stmt) odbc_check_stmt_extra(stmt) │ │ │ │ │ -581#define CHECK_DESC_EXTRA(desc) odbc_check_desc_extra(desc) │ │ │ │ │ -582/* declarations*/ │ │ │ │ │ -583void odbc_check_env_extra(_T_D_S___E_N_V * env); │ │ │ │ │ -584void odbc_check_dbc_extra(_T_D_S___D_B_C * dbc); │ │ │ │ │ -585void odbc_check_stmt_extra(_T_D_S___S_T_M_T * stmt); │ │ │ │ │ -586void odbc_check_desc_extra(_T_D_S___D_E_S_C * desc); │ │ │ │ │ -587#else │ │ │ │ │ -588/* macro */ │ │ │ │ │ -589#define CHECK_ENV_EXTRA(env) │ │ │ │ │ -590#define CHECK_DBC_EXTRA(dbc) │ │ │ │ │ -591#define CHECK_STMT_EXTRA(stmt) │ │ │ │ │ -592#define CHECK_DESC_EXTRA(desc) │ │ │ │ │ -593#endif │ │ │ │ │ -594 │ │ │ │ │ -595/* │ │ │ │ │ -596 * odbc_util.h │ │ │ │ │ -597 */ │ │ │ │ │ -598 │ │ │ │ │ -599/* helpers for ODBC wide string support */ │ │ │ │ │ -600#undef _wide │ │ │ │ │ -601#undef _WIDE │ │ │ │ │ -602#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ -603typedef union { │ │ │ │ │ -604 char mb[1]; │ │ │ │ │ -605 SQLWCHAR wide[1]; │ │ │ │ │ -606} ODBC_CHAR; │ │ │ │ │ -607# define _wide ,wide │ │ │ │ │ -608# define _wide0 ,0 │ │ │ │ │ -609# define _WIDE ,int wide │ │ │ │ │ -610#else │ │ │ │ │ -611# define _wide │ │ │ │ │ -612# define _wide0 │ │ │ │ │ -613# define _WIDE │ │ │ │ │ -614# define ODBC_CHAR SQLCHAR │ │ │ │ │ -615#endif │ │ │ │ │ -616int odbc_set_stmt_query(struct ___h_s_t_m_t *stmt, const ODBC_CHAR *sql, int │ │ │ │ │ -sql_len _WIDE); │ │ │ │ │ -617void odbc_set_return_status(struct ___h_s_t_m_t *stmt, unsigned int n_row); │ │ │ │ │ -618void odbc_set_return_params(struct ___h_s_t_m_t *stmt, unsigned int n_row); │ │ │ │ │ -619 │ │ │ │ │ -620void odbc_set_sql_type_info(_T_D_S_C_O_L_U_M_N * col, struct ___d_r_e_c_o_r_d *drec, │ │ │ │ │ -SQLINTEGER odbc_ver); │ │ │ │ │ -621 │ │ │ │ │ -622int odbc_sql_to_c_type_default(int sql_type); │ │ │ │ │ -623TDS_SERVER_TYPE odbc_sql_to_server_type(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, int sql_type, │ │ │ │ │ -int sql_unsigned); │ │ │ │ │ -624TDS_SERVER_TYPE _o_d_b_c___c___t_o___s_e_r_v_e_r___t_y_p_e(int c_type); │ │ │ │ │ -625 │ │ │ │ │ -626unsigned int odbc_get_string_size(int size, const ODBC_CHAR * str _WIDE); │ │ │ │ │ -627void _o_d_b_c___r_d_b_m_s___v_e_r_s_i_o_n(_T_D_S_S_O_C_K_E_T * _t_d_s___s_o_c_k_e_t, char *pversion_string); │ │ │ │ │ -628SQLINTEGER _o_d_b_c___g_e_t___p_a_r_a_m___l_e_n(const struct ___d_r_e_c_o_r_d *drec_axd, const struct │ │ │ │ │ -___d_r_e_c_o_r_d *drec_ixd, const _T_D_S___D_E_S_C* axd, unsigned int n_row); │ │ │ │ │ -629 │ │ │ │ │ -630#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ -631_D_S_T_R* odbc_dstr_copy_flag(_T_D_S___D_B_C *dbc, _D_S_T_R *s, int size, const ODBC_CHAR * │ │ │ │ │ -str, int flag); │ │ │ │ │ -632#define odbc_dstr_copy(dbc, s, len, out) \ │ │ │ │ │ -633 odbc_dstr_copy_flag(dbc, s, len, sizeof((out)->mb) ? (out) : (out), wide) │ │ │ │ │ -634#define odbc_dstr_copy_oct(dbc, s, len, out) \ │ │ │ │ │ -635 odbc_dstr_copy_flag(dbc, s, len, out, wide|0x20) │ │ │ │ │ -636#else │ │ │ │ │ -637_D_S_T_R* odbc_dstr_copy(_T_D_S___D_B_C *dbc, _D_S_T_R *s, int size, const ODBC_CHAR * │ │ │ │ │ -str); │ │ │ │ │ -638#define odbc_dstr_copy_oct odbc_dstr_copy │ │ │ │ │ -639#endif │ │ │ │ │ -640 │ │ │ │ │ -641 │ │ │ │ │ -642SQLRETURN _o_d_b_c___s_e_t___s_t_r_i_n_g___f_l_a_g(_T_D_S___D_B_C *dbc, SQLPOINTER buffer, SQLINTEGER │ │ │ │ │ -cbBuffer, void FAR * pcbBuffer, const char *s, int len, int flag); │ │ │ │ │ -643#ifdef ENABLE_ODBC_WIDE │ │ │ │ │ -644#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ -645 odbc_set_string_flag(dbc, sizeof((buf)->mb) ? (buf) : (buf), buf_len, │ │ │ │ │ -out_len, s, s_len, (wide) | (sizeof(*(out_len)) == sizeof(SQLSMALLINT)?0:0x10)) │ │ │ │ │ -646#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ -647 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (wide) | (sizeof │ │ │ │ │ -(*(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30)) │ │ │ │ │ -648#else │ │ │ │ │ -649#define odbc_set_string(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ -650 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(* │ │ │ │ │ -(out_len)) == sizeof(SQLSMALLINT)?0:0x10)) │ │ │ │ │ -651#define odbc_set_string_oct(dbc, buf, buf_len, out_len, s, s_len) \ │ │ │ │ │ -652 odbc_set_string_flag(dbc, buf, buf_len, out_len, s, s_len, (sizeof(* │ │ │ │ │ -(out_len)) == sizeof(SQLSMALLINT)?0x20:0x30)) │ │ │ │ │ -653#endif │ │ │ │ │ -654 │ │ │ │ │ -655#define odbc_set_dstr_oct(dbc, buf, buf_len, out_len, s) odbc_set_string_oct │ │ │ │ │ -(dbc, buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s)) │ │ │ │ │ -656#define odbc_set_dstr(dbc, buf, buf_len, out_len, s) odbc_set_string(dbc, │ │ │ │ │ -buf, buf_len, out_len, tds_dstr_cstr(s), tds_dstr_len(s)) │ │ │ │ │ -657 │ │ │ │ │ -658SQLSMALLINT odbc_get_concise_sql_type(SQLSMALLINT type, SQLSMALLINT │ │ │ │ │ -interval); │ │ │ │ │ -659SQLRETURN _o_d_b_c___s_e_t___c_o_n_c_i_s_e___s_q_l___t_y_p_e(SQLSMALLINT concise_type, struct │ │ │ │ │ -___d_r_e_c_o_r_d *drec, int check_only); │ │ │ │ │ -660SQLSMALLINT odbc_get_concise_c_type(SQLSMALLINT type, SQLSMALLINT interval); │ │ │ │ │ -661SQLRETURN _o_d_b_c___s_e_t___c_o_n_c_i_s_e___c___t_y_p_e(SQLSMALLINT concise_type, struct ___d_r_e_c_o_r_d │ │ │ │ │ -*drec, int check_only); │ │ │ │ │ -662 │ │ │ │ │ -663SQLLEN odbc_get_octet_len(int c_type, const struct ___d_r_e_c_o_r_d *drec); │ │ │ │ │ -664void odbc_convert_err_set(struct ___s_q_l___e_r_r_o_r_s *errs, TDS_INT err); │ │ │ │ │ -665 │ │ │ │ │ -666/* │ │ │ │ │ -667 * prepare_query.c │ │ │ │ │ -668 */ │ │ │ │ │ -669SQLRETURN prepare_call(struct ___h_s_t_m_t *stmt); │ │ │ │ │ -670SQLRETURN native_sql(struct ___h_d_b_c *dbc, _D_S_T_R *s); │ │ │ │ │ -671int parse_prepared_query(struct ___h_s_t_m_t *stmt, bool compute_row); │ │ │ │ │ -672int start_parse_prepared_query(struct ___h_s_t_m_t *stmt, bool compute_row); │ │ │ │ │ -673int continue_parse_prepared_query(struct ___h_s_t_m_t *stmt, SQLPOINTER DataPtr, │ │ │ │ │ -SQLLEN StrLen_or_Ind); │ │ │ │ │ -674const char *parse_const_param(const char * s, TDS_SERVER_TYPE *type); │ │ │ │ │ -675const char *odbc_skip_rpc_name(const char *s); │ │ │ │ │ -676 │ │ │ │ │ -677/* │ │ │ │ │ -678 * sql2tds.c │ │ │ │ │ -679 */ │ │ │ │ │ -680SQLRETURN odbc_sql2tds(_T_D_S___S_T_M_T * stmt, const struct ___d_r_e_c_o_r_d *drec_ixd, │ │ │ │ │ -const struct ___d_r_e_c_o_r_d *drec_axd, _T_D_S_C_O_L_U_M_N *curcol, bool compute_row, const │ │ │ │ │ -_T_D_S___D_E_S_C* axd, unsigned int n_row); │ │ │ │ │ -681TDS_INT convert_datetime2server(int bindtype, const void *src, │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L * dta); │ │ │ │ │ -682 │ │ │ │ │ -683/* │ │ │ │ │ -684 * bcp.c │ │ │ │ │ -685 */ │ │ │ │ │ -686void odbc_bcp_free_storage(_T_D_S___D_B_C *dbc); │ │ │ │ │ -687void odbc_bcp_init(_T_D_S___D_B_C *dbc, const ODBC_CHAR *tblname, const ODBC_CHAR │ │ │ │ │ -*hfile, const ODBC_CHAR *errfile, int direction _WIDE); │ │ │ │ │ -688void odbc_bcp_control(_T_D_S___D_B_C *dbc, int field, void *value); │ │ │ │ │ -689void odbc_bcp_colptr(_T_D_S___D_B_C *dbc, const void * colptr, int table_column); │ │ │ │ │ -690void odbc_bcp_sendrow(_T_D_S___D_B_C *dbc); │ │ │ │ │ -691int odbc_bcp_batch(_T_D_S___D_B_C *dbc); │ │ │ │ │ -692int odbc_bcp_done(_T_D_S___D_B_C *dbc); │ │ │ │ │ -693void odbc_bcp_bind(_T_D_S___D_B_C *dbc, const void * varaddr, int prefixlen, int │ │ │ │ │ -varlen, const void * terminator, int termlen, int vartype, int table_column); │ │ │ │ │ -694 │ │ │ │ │ -695/* │ │ │ │ │ -696 * sqlwchar.c │ │ │ │ │ -697 */ │ │ │ │ │ -698#if SIZEOF_SQLWCHAR != SIZEOF_WCHAR_T │ │ │ │ │ -699size_t sqlwcslen(const SQLWCHAR * s); │ │ │ │ │ -700 │ │ │ │ │ -701typedef struct sqlwstr_buf { │ │ │ │ │ -702 struct sqlwstr_buf *next; │ │ │ │ │ -703 wchar_t buf[256]; │ │ │ │ │ -704} SQLWSTRBUF; │ │ │ │ │ -705const wchar_t *sqlwstr(const SQLWCHAR * s, SQLWSTRBUF **bufs); │ │ │ │ │ -706void sqlwstr_free(SQLWSTRBUF *bufs); │ │ │ │ │ -707#define SQLWSTR_BUFS(n) SQLWSTRBUF *bufs = NULL │ │ │ │ │ -708#define SQLWSTR(s) sqlwstr(s, &bufs) │ │ │ │ │ -709#define SQLWSTR_FREE() sqlwstr_free(bufs) │ │ │ │ │ -710#else │ │ │ │ │ -711#define sqlwcslen(s) wcslen(s) │ │ │ │ │ -712 │ │ │ │ │ -713#define SQLWSTR_BUFS(n) do {} while(0) │ │ │ │ │ -714#define SQLWSTR(s) ((const wchar_t*)(s)) │ │ │ │ │ -715#define SQLWSTR_FREE() do {} while(0) │ │ │ │ │ -716#endif │ │ │ │ │ -717 │ │ │ │ │ -718int odbc_get_wide_canonic(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ -719 │ │ │ │ │ -720#include │ │ │ │ │ -721 │ │ │ │ │ -722#ifdef __cplusplus │ │ │ │ │ -723#if 0 │ │ │ │ │ -724{ │ │ │ │ │ -725#endif │ │ │ │ │ -726} │ │ │ │ │ -727#endif │ │ │ │ │ -728 │ │ │ │ │ -729#endif │ │ │ │ │ -_t_d_s_._h │ │ │ │ │ -Main include file for libtds. │ │ │ │ │ -_o_d_b_c___s_e_t___c_o_n_c_i_s_e___s_q_l___t_y_p_e │ │ │ │ │ -SQLRETURN odbc_set_concise_sql_type(SQLSMALLINT concise_type, struct _drecord │ │ │ │ │ -*drec, int check_only) │ │ │ │ │ -Set concise type and all cascading field. │ │ │ │ │ -DDeeffiinniittiioonn odbc_util.c:976 │ │ │ │ │ -_o_d_b_c___s_e_t___c_o_n_c_i_s_e___c___t_y_p_e │ │ │ │ │ -SQLRETURN odbc_set_concise_c_type(SQLSMALLINT concise_type, struct _drecord │ │ │ │ │ -*drec, int check_only) │ │ │ │ │ -Set concise type and all cascading field. │ │ │ │ │ -DDeeffiinniittiioonn odbc_util.c:1098 │ │ │ │ │ -_o_d_b_c___g_e_t___p_a_r_a_m___l_e_n │ │ │ │ │ -SQLINTEGER odbc_get_param_len(const struct _drecord *drec_axd, const struct │ │ │ │ │ -_drecord *drec_ixd, const TDS_DESC *axd, unsigned int n_row) │ │ │ │ │ -Return length of parameter from parameter information. │ │ │ │ │ -DDeeffiinniittiioonn odbc_util.c:861 │ │ │ │ │ -_o_d_b_c___c___t_o___s_e_r_v_e_r___t_y_p_e │ │ │ │ │ -TDS_SERVER_TYPE odbc_c_to_server_type(int c_type) │ │ │ │ │ -Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to │ │ │ │ │ -the SQL_C_* type. │ │ │ │ │ -DDeeffiinniittiioonn odbc_util.c:601 │ │ │ │ │ -_o_d_b_c___s_e_t___s_t_r_i_n_g___f_l_a_g │ │ │ │ │ -SQLRETURN odbc_set_string_flag(TDS_DBC *dbc, SQLPOINTER buffer, SQLINTEGER │ │ │ │ │ -cbBuffer, void FAR *pcbBuffer, const char *s, int len, int flag) │ │ │ │ │ -Copy a string to client setting size according to ODBC convenction. │ │ │ │ │ -DDeeffiinniittiioonn odbc_util.c:301 │ │ │ │ │ -_o_d_b_c___r_d_b_m_s___v_e_r_s_i_o_n │ │ │ │ │ -void odbc_rdbms_version(TDSSOCKET *tds_socket, char *pversion_string) │ │ │ │ │ -Returns the version of the RDBMS in the ODBC format. │ │ │ │ │ -DDeeffiinniittiioonn odbc_util.c:852 │ │ │ │ │ -_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ -___s_q_l___e_r_r_o_r │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:94 │ │ │ │ │ -___s_q_l___e_r_r_o_r_s │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:106 │ │ │ │ │ -___d_h_e_a_d_e_r │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:151 │ │ │ │ │ -___d_r_e_c_o_r_d │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:163 │ │ │ │ │ -___h_d_e_s_c │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:204 │ │ │ │ │ -___h_e_a_t_t_r │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:222 │ │ │ │ │ -___h_c_h_k │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:230 │ │ │ │ │ -___h_e_n_v │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:237 │ │ │ │ │ -___h_c_a_t_t_r │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:246 │ │ │ │ │ -___h_d_b_c │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:275 │ │ │ │ │ -___h_d_b_c_:_:_s_t_m_t___l_i_s_t │ │ │ │ │ -struct _hstmt * stmt_list │ │ │ │ │ -list of all statements allocated from this connection │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:295 │ │ │ │ │ -___h_d_b_c_:_:_u_a_d │ │ │ │ │ -TDS_DESC * uad[TDS_MAX_APP_DESC] │ │ │ │ │ -descriptors associated to connection │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:298 │ │ │ │ │ -___h_d_b_c_:_:_c_u_r_r_e_n_t___s_t_a_t_e_m_e_n_t │ │ │ │ │ -struct _hstmt * current_statement │ │ │ │ │ -Statement executing. │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:293 │ │ │ │ │ -___h_d_b_c_:_:_c_u_r_s_o_r___s_u_p_p_o_r_t │ │ │ │ │ -unsigned int cursor_support │ │ │ │ │ -<>0 if server handle cursors │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:300 │ │ │ │ │ -___h_s_a_t_t_r │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:309 │ │ │ │ │ -___h_s_t_m_t │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:381 │ │ │ │ │ -___h_s_t_m_t_:_:_p_a_r_a_m___c_o_u_n_t │ │ │ │ │ -unsigned int param_count │ │ │ │ │ -number of parameter in current query │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:418 │ │ │ │ │ -___h_s_t_m_t_:_:_r_o_w___s_t_a_t_u_s │ │ │ │ │ -TDS_ODBC_ROW_STATUS row_status │ │ │ │ │ -status of row, it can happen that this flag mark that we are still parsing row, │ │ │ │ │ -this it's normal │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:423 │ │ │ │ │ -___h_s_t_m_t_:_:_p_r_e_p_a_r_e_d___p_o_s │ │ │ │ │ -size_t prepared_pos │ │ │ │ │ -position in prepared query to check parameters, used only in RPC │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:413 │ │ │ │ │ -___h_s_t_m_t_:_:_r_o_w___c_o_u_n_t │ │ │ │ │ -TDS_INT8 row_count │ │ │ │ │ -row count to return │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:421 │ │ │ │ │ -___h_s_t_m_t_:_:_p_a_r_a_m___n_u_m │ │ │ │ │ -int param_num │ │ │ │ │ -last valid parameter in params, it's a ODBC index (from 1 relative to │ │ │ │ │ -descriptor) │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:411 │ │ │ │ │ -___h_s_t_m_t_:_:_q_u_e_r_y │ │ │ │ │ -DSTR query │ │ │ │ │ -query to execute │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:387 │ │ │ │ │ -___h_s_t_m_t_:_:_n_e_e_d___r_e_p_r_e_p_a_r_e │ │ │ │ │ -unsigned need_reprepare │ │ │ │ │ -Prepared statement needs to be prepared again. │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:404 │ │ │ │ │ -___h_s_t_m_t_:_:_n_e_x_t │ │ │ │ │ -struct _hstmt * next │ │ │ │ │ -next in list │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:392 │ │ │ │ │ -___h_s_t_m_t_:_:_t_d_s │ │ │ │ │ -TDSSOCKET * tds │ │ │ │ │ -socket (only if active) │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:389 │ │ │ │ │ -___h_s_t_m_t_:_:_p_r_e_v │ │ │ │ │ -struct _hstmt * prev │ │ │ │ │ -previous in list │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:394 │ │ │ │ │ -___h_s_t_m_t_:_:_p_a_r_a_m_s │ │ │ │ │ -TDSPARAMINFO * params │ │ │ │ │ -parameters saved │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:409 │ │ │ │ │ -_T_D_S___F_U_N_C_S │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:441 │ │ │ │ │ -_T_D_S___P_A_R_S_E_D___P_A_R_A_M │ │ │ │ │ -DDeeffiinniittiioonn odbc.h:532 │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L │ │ │ │ │ -this structure is not directed connected to a TDS protocol but keeps any DATE/ │ │ │ │ │ -TIME information. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:146 │ │ │ │ │ -_t_d_s___l_o_g_i_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n___f_u_n_c_s │ │ │ │ │ -DDeeffiinniittiioonn tds.h:643 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n │ │ │ │ │ -Metadata about columns in regular and compute rows. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ -_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ -Hold information for any results. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r │ │ │ │ │ -Holds informations about a cursor. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ -Holds information for a dynamic (also called prepared) query. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ -_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ -_t_d_s___b_c_p_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ -_t_d_s___d_s_t_r │ │ │ │ │ -Structure to hold a string. │ │ │ │ │ -DDeeffiinniittiioonn string.h:36 │ │ │ │ │ +304typedef void *(*tds_thread_proc)(void *arg); │ │ │ │ │ +305#define TDS_THREAD_PROC_DECLARE(name, arg) \ │ │ │ │ │ +306 void *name(void *arg) │ │ │ │ │ +307#define TDS_THREAD_RESULT(n) ((void*)(intptr_t)(n)) │ │ │ │ │ +308 │ │ │ │ │ +309#define tds_thread_create(ret, proc, arg) \ │ │ │ │ │ +310 FreeTDS_Thread_not_compiled │ │ │ │ │ +311 │ │ │ │ │ +312#define tds_thread_create_detached(proc, arg) \ │ │ │ │ │ +313 FreeTDS_Thread_not_compiled │ │ │ │ │ +314 │ │ │ │ │ +315#define tds_thread_join(th, ret) \ │ │ │ │ │ +316 FreeTDS_Thread_not_compiled │ │ │ │ │ +317 │ │ │ │ │ +318static inline tds_thread_id tds_thread_get_current_id(void) │ │ │ │ │ +319{ │ │ │ │ │ +320 return 0; │ │ │ │ │ +321} │ │ │ │ │ +322 │ │ │ │ │ +323static inline int tds_thread_is_current(tds_thread_id th) │ │ │ │ │ +324{ │ │ │ │ │ +325 return 1; │ │ │ │ │ +326} │ │ │ │ │ +327 │ │ │ │ │ +328#endif │ │ │ │ │ +329 │ │ │ │ │ +330# define tds_cond_init tds_raw_cond_init │ │ │ │ │ +331# define tds_cond_destroy tds_raw_cond_destroy │ │ │ │ │ +332# define tds_cond_signal tds_raw_cond_signal │ │ │ │ │ +333# if !ENABLE_EXTRA_CHECKS │ │ │ │ │ +334# define TDS_MUTEX_INITIALIZER TDS_RAW_MUTEX_INITIALIZER │ │ │ │ │ +335# define tds_mutex tds_raw_mutex │ │ │ │ │ +336# define tds_mutex_lock tds_raw_mutex_lock │ │ │ │ │ +337# define tds_mutex_trylock tds_raw_mutex_trylock │ │ │ │ │ +338# define tds_mutex_unlock tds_raw_mutex_unlock │ │ │ │ │ +339# define tds_mutex_check_owned(mtx) do {} while(0) │ │ │ │ │ +340# define tds_mutex_init tds_raw_mutex_init │ │ │ │ │ +341# define tds_mutex_free tds_raw_mutex_free │ │ │ │ │ +342# define tds_cond_wait tds_raw_cond_wait │ │ │ │ │ +343# define tds_cond_timedwait tds_raw_cond_timedwait │ │ │ │ │ +344# else │ │ │ │ │ +345# include │ │ │ │ │ +346 │ │ │ │ │ +347typedef struct tds_mutex │ │ │ │ │ +348{ │ │ │ │ │ +349 _t_d_s___r_a_w___m_u_t_e_x mtx; │ │ │ │ │ +350 volatile int locked; │ │ │ │ │ +351 volatile tds_thread_id locked_by; │ │ │ │ │ +352} tds_mutex; │ │ │ │ │ +353 │ │ │ │ │ +354# define TDS_MUTEX_INITIALIZER { TDS_RAW_MUTEX_INITIALIZER, 0 } │ │ │ │ │ +355 │ │ │ │ │ +356static inline void tds_mutex_lock(tds_mutex *mtx) │ │ │ │ │ +357{ │ │ │ │ │ +358 assert(mtx); │ │ │ │ │ +359 tds_raw_mutex_lock(&mtx->mtx); │ │ │ │ │ +360 assert(!mtx->locked); │ │ │ │ │ +361 mtx->locked = 1; │ │ │ │ │ +362 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ +363} │ │ │ │ │ +364 │ │ │ │ │ +365static inline int tds_mutex_trylock(tds_mutex *mtx) │ │ │ │ │ +366{ │ │ │ │ │ +367 int ret; │ │ │ │ │ +368 assert(mtx); │ │ │ │ │ +369 ret = tds_raw_mutex_trylock(&mtx->mtx); │ │ │ │ │ +370 if (!ret) { │ │ │ │ │ +371 assert(!mtx->locked); │ │ │ │ │ +372 mtx->locked = 1; │ │ │ │ │ +373 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ +374 } │ │ │ │ │ +375 return ret; │ │ │ │ │ +376} │ │ │ │ │ +377 │ │ │ │ │ +378static inline void tds_mutex_unlock(tds_mutex *mtx) │ │ │ │ │ +379{ │ │ │ │ │ +380 assert(mtx && mtx->locked); │ │ │ │ │ +381 mtx->locked = 0; │ │ │ │ │ +382 tds_raw_mutex_unlock(&mtx->mtx); │ │ │ │ │ +383} │ │ │ │ │ +384 │ │ │ │ │ +385static inline void tds_mutex_check_owned(tds_mutex *mtx) │ │ │ │ │ +386{ │ │ │ │ │ +387 int ret; │ │ │ │ │ +388 assert(mtx); │ │ │ │ │ +389 ret = tds_raw_mutex_trylock(&mtx->mtx); │ │ │ │ │ +390 assert(ret); │ │ │ │ │ +391 assert(mtx->locked); │ │ │ │ │ +392 assert(tds_thread_is_current(mtx->locked_by)); │ │ │ │ │ +393} │ │ │ │ │ +394 │ │ │ │ │ +395static inline int tds_mutex_init(tds_mutex *mtx) │ │ │ │ │ +396{ │ │ │ │ │ +397 mtx->locked = 0; │ │ │ │ │ +398 return tds_raw_mutex_init(&mtx->mtx); │ │ │ │ │ +399} │ │ │ │ │ +400 │ │ │ │ │ +401static inline void tds_mutex_free(tds_mutex *mtx) │ │ │ │ │ +402{ │ │ │ │ │ +403 assert(mtx && !mtx->locked); │ │ │ │ │ +404 tds_raw_mutex_free(&mtx->mtx); │ │ │ │ │ +405} │ │ │ │ │ +406 │ │ │ │ │ +407static inline int tds_cond_wait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, tds_mutex *mtx) │ │ │ │ │ +408{ │ │ │ │ │ +409 int ret; │ │ │ │ │ +410 assert(mtx && mtx->locked); │ │ │ │ │ +411 mtx->locked = 0; │ │ │ │ │ +412 ret = tds_raw_cond_wait(cond, &mtx->mtx); │ │ │ │ │ +413 mtx->locked = 1; │ │ │ │ │ +414 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ +415 return ret; │ │ │ │ │ +416} │ │ │ │ │ +417 │ │ │ │ │ +418static inline int tds_cond_timedwait(_t_d_s___c_o_n_d_i_t_i_o_n *cond, tds_mutex *mtx, │ │ │ │ │ +int timeout_sec) │ │ │ │ │ +419{ │ │ │ │ │ +420 int ret; │ │ │ │ │ +421 assert(mtx && mtx->locked); │ │ │ │ │ +422 mtx->locked = 0; │ │ │ │ │ +423 ret = tds_raw_cond_timedwait(cond, &mtx->mtx, timeout_sec); │ │ │ │ │ +424 mtx->locked = 1; │ │ │ │ │ +425 mtx->locked_by = tds_thread_get_current_id(); │ │ │ │ │ +426 return ret; │ │ │ │ │ +427} │ │ │ │ │ +428 │ │ │ │ │ +429# endif │ │ │ │ │ +430 │ │ │ │ │ +431#endif │ │ │ │ │ +_p_t_w_3_2___m_c_s___n_o_d_e___t__ │ │ │ │ │ +DDeeffiinniittiioonn ptw32_MCS_lock.c:98 │ │ │ │ │ +_t_d_s___r_a_w___m_u_t_e_x │ │ │ │ │ +DDeeffiinniittiioonn thread.h:250 │ │ │ │ │ +_t_d_s___c_o_n_d_i_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn thread.h:278 │ │ │ │ │ +_t_d_s___t_h_r_e_a_d │ │ │ │ │ +DDeeffiinniittiioonn thread.h:299 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00437_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/encodings.h Source File │ │ │ │ +FreeTDS API: include/freetds/bool.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,583 +74,60 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
encodings.h
│ │ │ │ +
bool.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/*
│ │ │ │ -
2 * This file produced from ./encodings.pl on Sat Jan 21 09:01:33 2023
│ │ │ │ -
3 */
│ │ │ │ -
4#ifdef TDS_ICONV_ENCODING_TABLES
│ │ │ │ -
5
│ │ │ │ -
6static const TDS_ENCODING canonic_charsets[] = {
│ │ │ │ -
7 { "ISO-8859-1", 1, 1, 0}, /* 0 */
│ │ │ │ -
8 { "UTF-8", 1, 4, 1}, /* 1 */
│ │ │ │ -
9 { "UCS-2LE", 2, 2, 2}, /* 2 */
│ │ │ │ -
10 { "UCS-2BE", 2, 2, 3}, /* 3 */
│ │ │ │ -
11 { "ARMSCII-8", 1, 1, 4}, /* 4 */
│ │ │ │ -
12 { "BIG-5", 1, 2, 5}, /* 5 */
│ │ │ │ -
13 { "BIG5-HKSCS", 1, 2, 6}, /* 6 */
│ │ │ │ -
14 { "C99", 1, 1, 7}, /* 7 */
│ │ │ │ -
15 { "CHINESE", 1, 1, 8}, /* 8 */
│ │ │ │ -
16 { "CN", 1, 1, 9}, /* 9 */
│ │ │ │ -
17 { "CN-GB", 1, 2, 10}, /* 10 */
│ │ │ │ -
18 { "CN-GB-ISOIR165", 1, 1, 11}, /* 11 */
│ │ │ │ -
19 { "CP1133", 1, 1, 12}, /* 12 */
│ │ │ │ -
20 { "CP1250", 1, 1, 13}, /* 13 */
│ │ │ │ -
21 { "CP1251", 1, 1, 14}, /* 14 */
│ │ │ │ -
22 { "CP1252", 1, 1, 15}, /* 15 */
│ │ │ │ -
23 { "CP1253", 1, 1, 16}, /* 16 */
│ │ │ │ -
24 { "CP1254", 1, 1, 17}, /* 17 */
│ │ │ │ -
25 { "CP1255", 1, 1, 18}, /* 18 */
│ │ │ │ -
26 { "CP1256", 1, 1, 19}, /* 19 */
│ │ │ │ -
27 { "CP1257", 1, 1, 20}, /* 20 */
│ │ │ │ -
28 { "CP1258", 1, 1, 21}, /* 21 */
│ │ │ │ -
29 { "CP1361", 1, 2, 22}, /* 22 */
│ │ │ │ -
30 { "CP437", 1, 1, 23}, /* 23 */
│ │ │ │ -
31 { "CP850", 1, 1, 24}, /* 24 */
│ │ │ │ -
32 { "CP862", 1, 1, 25}, /* 25 */
│ │ │ │ -
33 { "CP866", 1, 1, 26}, /* 26 */
│ │ │ │ -
34 { "CP874", 1, 1, 27}, /* 27 */
│ │ │ │ -
35 { "CP932", 1, 2, 28}, /* 28 */
│ │ │ │ -
36 { "CP936", 1, 2, 29}, /* 29 */
│ │ │ │ -
37 { "CP949", 1, 2, 30}, /* 30 */
│ │ │ │ -
38 { "CP950", 1, 2, 31}, /* 31 */
│ │ │ │ -
39 { "EUC-JP", 1, 3, 32}, /* 32 */
│ │ │ │ -
40 { "EUC-KR", 1, 2, 33}, /* 33 */
│ │ │ │ -
41 { "EUC-TW", 1, 4, 34}, /* 34 */
│ │ │ │ -
42 { "GB18030", 1, 4, 35}, /* 35 */
│ │ │ │ -
43 { "GEORGIAN-ACADEMY", 1, 1, 36}, /* 36 */
│ │ │ │ -
44 { "GEORGIAN-PS", 1, 1, 37}, /* 37 */
│ │ │ │ -
45 { "HZ", 1, 1, 38}, /* 38 */
│ │ │ │ -
46 { "ISO-2022-CN", 1, 4, 39}, /* 39 */
│ │ │ │ -
47 { "ISO-2022-CN-EXT", 1, 4, 40}, /* 40 */
│ │ │ │ -
48 { "ISO-2022-JP", 1, 1, 41}, /* 41 */
│ │ │ │ -
49 { "ISO-2022-JP-1", 1, 1, 42}, /* 42 */
│ │ │ │ -
50 { "ISO-2022-JP-2", 1, 1, 43}, /* 43 */
│ │ │ │ -
51 { "ISO-2022-KR", 1, 2, 44}, /* 44 */
│ │ │ │ -
52 { "ISO-8859-10", 1, 1, 45}, /* 45 */
│ │ │ │ -
53 { "ISO-8859-13", 1, 1, 46}, /* 46 */
│ │ │ │ -
54 { "ISO-8859-14", 1, 1, 47}, /* 47 */
│ │ │ │ -
55 { "ISO-8859-15", 1, 1, 48}, /* 48 */
│ │ │ │ -
56 { "ISO-8859-16", 1, 1, 49}, /* 49 */
│ │ │ │ -
57 { "ISO-8859-2", 1, 1, 50}, /* 50 */
│ │ │ │ -
58 { "ISO-8859-3", 1, 1, 51}, /* 51 */
│ │ │ │ -
59 { "ISO-8859-4", 1, 1, 52}, /* 52 */
│ │ │ │ -
60 { "ISO-8859-5", 1, 1, 53}, /* 53 */
│ │ │ │ -
61 { "ISO-8859-6", 1, 1, 54}, /* 54 */
│ │ │ │ -
62 { "ISO-8859-7", 1, 1, 55}, /* 55 */
│ │ │ │ -
63 { "ISO-8859-8", 1, 1, 56}, /* 56 */
│ │ │ │ -
64 { "ISO-8859-9", 1, 1, 57}, /* 57 */
│ │ │ │ -
65 { "ISO-IR-14", 1, 1, 58}, /* 58 */
│ │ │ │ -
66 { "ISO-IR-149", 1, 1, 59}, /* 59 */
│ │ │ │ -
67 { "ISO-IR-159", 1, 1, 60}, /* 60 */
│ │ │ │ -
68 { "ISO-IR-166", 1, 1, 61}, /* 61 */
│ │ │ │ -
69 { "ISO-IR-87", 1, 1, 62}, /* 62 */
│ │ │ │ -
70 { "JAVA", 1, 1, 63}, /* 63 */
│ │ │ │ -
71 { "JISX0201-1976", 1, 1, 64}, /* 64 */
│ │ │ │ -
72 { "KOI8-R", 1, 1, 65}, /* 65 */
│ │ │ │ -
73 { "KOI8-RU", 1, 1, 66}, /* 66 */
│ │ │ │ -
74 { "KOI8-T", 1, 1, 67}, /* 67 */
│ │ │ │ -
75 { "KOI8-U", 1, 1, 68}, /* 68 */
│ │ │ │ -
76 { "MAC", 1, 1, 69}, /* 69 */
│ │ │ │ -
77 { "MACARABIC", 1, 1, 70}, /* 70 */
│ │ │ │ -
78 { "MACCENTRALEUROPE", 1, 1, 71}, /* 71 */
│ │ │ │ -
79 { "MACCROATIAN", 1, 1, 72}, /* 72 */
│ │ │ │ -
80 { "MACCYRILLIC", 1, 1, 73}, /* 73 */
│ │ │ │ -
81 { "MACGREEK", 1, 1, 74}, /* 74 */
│ │ │ │ -
82 { "MACHEBREW", 1, 1, 75}, /* 75 */
│ │ │ │ -
83 { "MACICELAND", 1, 1, 76}, /* 76 */
│ │ │ │ -
84 { "MACROMANIA", 1, 1, 77}, /* 77 */
│ │ │ │ -
85 { "MACTHAI", 1, 1, 78}, /* 78 */
│ │ │ │ -
86 { "MACTURKISH", 1, 1, 79}, /* 79 */
│ │ │ │ -
87 { "MACUKRAINE", 1, 1, 80}, /* 80 */
│ │ │ │ -
88 { "MULELAO-1", 1, 1, 81}, /* 81 */
│ │ │ │ -
89 { "NEXTSTEP", 1, 1, 82}, /* 82 */
│ │ │ │ -
90 { "ROMAN8", 1, 1, 83}, /* 83 */
│ │ │ │ -
91 { "SJIS", 1, 2, 84}, /* 84 */
│ │ │ │ -
92 { "TCVN", 1, 1, 85}, /* 85 */
│ │ │ │ -
93 { "UCS-4BE", 4, 4, 86}, /* 86 */
│ │ │ │ -
94 { "UCS-4LE", 4, 4, 87}, /* 87 */
│ │ │ │ -
95 { "US-ASCII", 1, 1, 88}, /* 88 */
│ │ │ │ -
96 { "UTF-16BE", 2, 4, 89}, /* 89 */
│ │ │ │ -
97 { "UTF-16LE", 2, 4, 90}, /* 90 */
│ │ │ │ -
98 { "UTF-32BE", 4, 4, 91}, /* 91 */
│ │ │ │ -
99 { "UTF-32LE", 4, 4, 92}, /* 92 */
│ │ │ │ -
100 { "UTF-7", 1, 4, 93}, /* 93 */
│ │ │ │ -
101 { "VISCII", 1, 1, 94}, /* 94 */
│ │ │ │ -
102};
│ │ │ │ -
103
│ │ │ │ -
104static const CHARACTER_SET_ALIAS iconv_aliases[] = {
│ │ │ │ -
105 { "646", 88 },
│ │ │ │ -
106 { "850", 24 },
│ │ │ │ -
107 { "862", 25 },
│ │ │ │ -
108 { "866", 26 },
│ │ │ │ -
109 { "ANSI_X3.4-1968", 88 },
│ │ │ │ -
110 { "ANSI_X3.4-1986", 88 },
│ │ │ │ -
111 { "ARABIC", 54 },
│ │ │ │ -
112 { "ARMSCII-8", 4 },
│ │ │ │ -
113 { "ASCII", 88 },
│ │ │ │ -
114 { "ASMO-708", 54 },
│ │ │ │ -
115 { "BIG-5", 5 },
│ │ │ │ -
116 { "BIG-FIVE", 5 },
│ │ │ │ -
117 { "BIG5", 5 },
│ │ │ │ -
118 { "BIG5-HKSCS", 6 },
│ │ │ │ -
119 { "BIG5HKSCS", 6 },
│ │ │ │ -
120 { "BIGFIVE", 5 },
│ │ │ │ -
121 { "C99", 7 },
│ │ │ │ -
122 { "CHINESE", 8 },
│ │ │ │ -
123 { "CN", 9 },
│ │ │ │ -
124 { "CN-BIG5", 5 },
│ │ │ │ -
125 { "CN-GB", 10 },
│ │ │ │ -
126 { "CN-GB-ISOIR165", 11 },
│ │ │ │ -
127 { "CP1133", 12 },
│ │ │ │ -
128 { "CP1250", 13 },
│ │ │ │ -
129 { "CP1251", 14 },
│ │ │ │ -
130 { "CP1252", 15 },
│ │ │ │ -
131 { "CP1253", 16 },
│ │ │ │ -
132 { "CP1254", 17 },
│ │ │ │ -
133 { "CP1255", 18 },
│ │ │ │ -
134 { "CP1256", 19 },
│ │ │ │ -
135 { "CP1257", 20 },
│ │ │ │ -
136 { "CP1258", 21 },
│ │ │ │ -
137 { "CP1361", 22 },
│ │ │ │ -
138 { "CP367", 88 },
│ │ │ │ -
139 { "CP437", 23 },
│ │ │ │ -
140 { "CP819", 0 },
│ │ │ │ -
141 { "CP850", 24 },
│ │ │ │ -
142 { "CP862", 25 },
│ │ │ │ -
143 { "CP866", 26 },
│ │ │ │ -
144 { "CP874", 27 },
│ │ │ │ -
145 { "CP932", 28 },
│ │ │ │ -
146 { "CP936", 29 },
│ │ │ │ -
147 { "CP949", 30 },
│ │ │ │ -
148 { "CP950", 31 },
│ │ │ │ -
149 { "CSASCII", 88 },
│ │ │ │ -
150 { "CSBIG5", 5 },
│ │ │ │ -
151 { "CSEUCKR", 33 },
│ │ │ │ -
152 { "CSEUCPKDFMTJAPANESE", 32 },
│ │ │ │ -
153 { "CSEUCTW", 34 },
│ │ │ │ -
154 { "CSGB2312", 10 },
│ │ │ │ -
155 { "CSHALFWIDTHKATAKANA", 64 },
│ │ │ │ -
156 { "CSHPROMAN8", 83 },
│ │ │ │ -
157 { "CSIBM866", 26 },
│ │ │ │ -
158 { "CSISO14JISC6220RO", 58 },
│ │ │ │ -
159 { "CSISO159JISX02121990", 60 },
│ │ │ │ -
160 { "CSISO2022CN", 39 },
│ │ │ │ -
161 { "CSISO2022JP", 41 },
│ │ │ │ -
162 { "CSISO2022JP2", 43 },
│ │ │ │ -
163 { "CSISO2022KR", 44 },
│ │ │ │ -
164 { "CSISO57GB1988", 9 },
│ │ │ │ -
165 { "CSISO58GB231280", 8 },
│ │ │ │ -
166 { "CSISO87JISX0208", 62 },
│ │ │ │ -
167 { "CSISOLATIN1", 0 },
│ │ │ │ -
168 { "CSISOLATIN2", 50 },
│ │ │ │ -
169 { "CSISOLATIN3", 51 },
│ │ │ │ -
170 { "CSISOLATIN4", 52 },
│ │ │ │ -
171 { "CSISOLATIN5", 57 },
│ │ │ │ -
172 { "CSISOLATIN6", 45 },
│ │ │ │ -
173 { "CSISOLATINARABIC", 54 },
│ │ │ │ -
174 { "CSISOLATINCYRILLIC", 53 },
│ │ │ │ -
175 { "CSISOLATINGREEK", 55 },
│ │ │ │ -
176 { "CSISOLATINHEBREW", 56 },
│ │ │ │ -
177 { "CSKOI8R", 65 },
│ │ │ │ -
178 { "CSKSC56011987", 59 },
│ │ │ │ -
179 { "CSMACINTOSH", 69 },
│ │ │ │ -
180 { "CSPC850MULTILINGUAL", 24 },
│ │ │ │ -
181 { "CSPC862LATINHEBREW", 25 },
│ │ │ │ -
182 { "CSSHIFTJIS", 84 },
│ │ │ │ -
183 { "CSUNICODE11", 3 },
│ │ │ │ -
184 { "CSUNICODE11UTF7", 93 },
│ │ │ │ -
185 { "CSVISCII", 94 },
│ │ │ │ -
186 { "CYRILLIC", 53 },
│ │ │ │ -
187 { "ECMA-114", 54 },
│ │ │ │ -
188 { "ECMA-118", 55 },
│ │ │ │ -
189 { "ELOT_928", 55 },
│ │ │ │ -
190 { "EUC-CN", 10 },
│ │ │ │ -
191 { "EUC-JP", 32 },
│ │ │ │ -
192 { "EUC-KR", 33 },
│ │ │ │ -
193 { "EUC-TW", 34 },
│ │ │ │ -
194 { "EUCCN", 10 },
│ │ │ │ -
195 { "EUCJP", 32 },
│ │ │ │ -
196 { "EUCKR", 33 },
│ │ │ │ -
197 { "EUCTW", 34 },
│ │ │ │ -
198 {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", 32 },
│ │ │ │ -
199 { "GB18030", 35 },
│ │ │ │ -
200 { "GB2312", 10 },
│ │ │ │ -
201 { "GBK", 29 },
│ │ │ │ -
202 { "GB_1988-80", 9 },
│ │ │ │ -
203 { "GB_2312-80", 8 },
│ │ │ │ -
204 { "GEORGIAN-ACADEMY", 36 },
│ │ │ │ -
205 { "GEORGIAN-PS", 37 },
│ │ │ │ -
206 { "GREEK", 55 },
│ │ │ │ -
207 { "GREEK8", 55 },
│ │ │ │ -
208 { "HEBREW", 56 },
│ │ │ │ -
209 { "HP-ROMAN8", 83 },
│ │ │ │ -
210 { "HZ", 38 },
│ │ │ │ -
211 { "HZ-GB-2312", 38 },
│ │ │ │ -
212 { "IBM-CP1133", 12 },
│ │ │ │ -
213 { "IBM367", 88 },
│ │ │ │ -
214 { "IBM437", 23 },
│ │ │ │ -
215 { "IBM819", 0 },
│ │ │ │ -
216 { "IBM850", 24 },
│ │ │ │ -
217 { "IBM862", 25 },
│ │ │ │ -
218 { "IBM866", 26 },
│ │ │ │ -
219 { "ISO-2022-CN", 39 },
│ │ │ │ -
220 { "ISO-2022-CN-EXT", 40 },
│ │ │ │ -
221 { "ISO-2022-JP", 41 },
│ │ │ │ -
222 { "ISO-2022-JP-1", 42 },
│ │ │ │ -
223 { "ISO-2022-JP-2", 43 },
│ │ │ │ -
224 { "ISO-2022-KR", 44 },
│ │ │ │ -
225 { "ISO-8859-1", 0 },
│ │ │ │ -
226 { "ISO-8859-10", 45 },
│ │ │ │ -
227 { "ISO-8859-13", 46 },
│ │ │ │ -
228 { "ISO-8859-14", 47 },
│ │ │ │ -
229 { "ISO-8859-15", 48 },
│ │ │ │ -
230 { "ISO-8859-16", 49 },
│ │ │ │ -
231 { "ISO-8859-2", 50 },
│ │ │ │ -
232 { "ISO-8859-3", 51 },
│ │ │ │ -
233 { "ISO-8859-4", 52 },
│ │ │ │ -
234 { "ISO-8859-5", 53 },
│ │ │ │ -
235 { "ISO-8859-6", 54 },
│ │ │ │ -
236 { "ISO-8859-7", 55 },
│ │ │ │ -
237 { "ISO-8859-8", 56 },
│ │ │ │ -
238 { "ISO-8859-9", 57 },
│ │ │ │ -
239 { "ISO-CELTIC", 47 },
│ │ │ │ -
240 { "ISO-IR-100", 0 },
│ │ │ │ -
241 { "ISO-IR-101", 50 },
│ │ │ │ -
242 { "ISO-IR-109", 51 },
│ │ │ │ -
243 { "ISO-IR-110", 52 },
│ │ │ │ -
244 { "ISO-IR-126", 55 },
│ │ │ │ -
245 { "ISO-IR-127", 54 },
│ │ │ │ -
246 { "ISO-IR-138", 56 },
│ │ │ │ -
247 { "ISO-IR-14", 58 },
│ │ │ │ -
248 { "ISO-IR-144", 53 },
│ │ │ │ -
249 { "ISO-IR-148", 57 },
│ │ │ │ -
250 { "ISO-IR-149", 59 },
│ │ │ │ -
251 { "ISO-IR-157", 45 },
│ │ │ │ -
252 { "ISO-IR-159", 60 },
│ │ │ │ -
253 { "ISO-IR-165", 11 },
│ │ │ │ -
254 { "ISO-IR-166", 61 },
│ │ │ │ -
255 { "ISO-IR-179", 46 },
│ │ │ │ -
256 { "ISO-IR-199", 47 },
│ │ │ │ -
257 { "ISO-IR-203", 48 },
│ │ │ │ -
258 { "ISO-IR-226", 49 },
│ │ │ │ -
259 { "ISO-IR-57", 9 },
│ │ │ │ -
260 { "ISO-IR-58", 8 },
│ │ │ │ -
261 { "ISO-IR-6", 88 },
│ │ │ │ -
262 { "ISO-IR-87", 62 },
│ │ │ │ -
263 { "ISO646-CN", 9 },
│ │ │ │ -
264 { "ISO646-JP", 58 },
│ │ │ │ -
265 { "ISO646-US", 88 },
│ │ │ │ -
266 { "ISO8859-1", 0 },
│ │ │ │ -
267 { "ISO8859-10", 45 },
│ │ │ │ -
268 { "ISO8859-15", 48 },
│ │ │ │ -
269 { "ISO8859-2", 50 },
│ │ │ │ -
270 { "ISO8859-4", 52 },
│ │ │ │ -
271 { "ISO8859-5", 53 },
│ │ │ │ -
272 { "ISO8859-6", 54 },
│ │ │ │ -
273 { "ISO8859-7", 55 },
│ │ │ │ -
274 { "ISO8859-8", 56 },
│ │ │ │ -
275 { "ISO8859-9", 57 },
│ │ │ │ -
276 { "ISO_646.IRV:1991", 88 },
│ │ │ │ -
277 { "ISO_8859-1", 0 },
│ │ │ │ -
278 { "ISO_8859-10", 45 },
│ │ │ │ -
279 { "ISO_8859-10:1992", 45 },
│ │ │ │ -
280 { "ISO_8859-13", 46 },
│ │ │ │ -
281 { "ISO_8859-14", 47 },
│ │ │ │ -
282 { "ISO_8859-14:1998", 47 },
│ │ │ │ -
283 { "ISO_8859-15", 48 },
│ │ │ │ -
284 { "ISO_8859-15:1998", 48 },
│ │ │ │ -
285 { "ISO_8859-16", 49 },
│ │ │ │ -
286 { "ISO_8859-16:2000", 49 },
│ │ │ │ -
287 { "ISO_8859-1:1987", 0 },
│ │ │ │ -
288 { "ISO_8859-2", 50 },
│ │ │ │ -
289 { "ISO_8859-2:1987", 50 },
│ │ │ │ -
290 { "ISO_8859-3", 51 },
│ │ │ │ -
291 { "ISO_8859-3:1988", 51 },
│ │ │ │ -
292 { "ISO_8859-4", 52 },
│ │ │ │ -
293 { "ISO_8859-4:1988", 52 },
│ │ │ │ -
294 { "ISO_8859-5", 53 },
│ │ │ │ -
295 { "ISO_8859-5:1988", 53 },
│ │ │ │ -
296 { "ISO_8859-6", 54 },
│ │ │ │ -
297 { "ISO_8859-6:1987", 54 },
│ │ │ │ -
298 { "ISO_8859-7", 55 },
│ │ │ │ -
299 { "ISO_8859-7:1987", 55 },
│ │ │ │ -
300 { "ISO_8859-8", 56 },
│ │ │ │ -
301 { "ISO_8859-8:1988", 56 },
│ │ │ │ -
302 { "ISO_8859-9", 57 },
│ │ │ │ -
303 { "ISO_8859-9:1989", 57 },
│ │ │ │ -
304 { "JAVA", 63 },
│ │ │ │ -
305 { "JIS0208", 62 },
│ │ │ │ -
306 { "JISX0201-1976", 64 },
│ │ │ │ -
307 { "JIS_C6220-1969-RO", 58 },
│ │ │ │ -
308 { "JIS_C6226-1983", 62 },
│ │ │ │ -
309 { "JIS_X0201", 64 },
│ │ │ │ -
310 { "JIS_X0208", 62 },
│ │ │ │ -
311 { "JIS_X0208-1983", 62 },
│ │ │ │ -
312 { "JIS_X0208-1990", 62 },
│ │ │ │ -
313 { "JIS_X0212", 60 },
│ │ │ │ -
314 { "JIS_X0212-1990", 60 },
│ │ │ │ -
315 { "JIS_X0212.1990-0", 60 },
│ │ │ │ -
316 { "JOHAB", 22 },
│ │ │ │ -
317 { "JP", 58 },
│ │ │ │ -
318 { "KOI8-R", 65 },
│ │ │ │ -
319 { "KOI8-RU", 66 },
│ │ │ │ -
320 { "KOI8-T", 67 },
│ │ │ │ -
321 { "KOI8-U", 68 },
│ │ │ │ -
322 { "KOREAN", 59 },
│ │ │ │ -
323 { "KSC_5601", 59 },
│ │ │ │ -
324 { "KS_C_5601-1987", 59 },
│ │ │ │ -
325 { "KS_C_5601-1989", 59 },
│ │ │ │ -
326 { "L1", 0 },
│ │ │ │ -
327 { "L2", 50 },
│ │ │ │ -
328 { "L3", 51 },
│ │ │ │ -
329 { "L4", 52 },
│ │ │ │ -
330 { "L5", 57 },
│ │ │ │ -
331 { "L6", 45 },
│ │ │ │ -
332 { "L7", 46 },
│ │ │ │ -
333 { "L8", 47 },
│ │ │ │ -
334 { "LATIN1", 0 },
│ │ │ │ -
335 { "LATIN2", 50 },
│ │ │ │ -
336 { "LATIN3", 51 },
│ │ │ │ -
337 { "LATIN4", 52 },
│ │ │ │ -
338 { "LATIN5", 57 },
│ │ │ │ -
339 { "LATIN6", 45 },
│ │ │ │ -
340 { "LATIN7", 46 },
│ │ │ │ -
341 { "LATIN8", 47 },
│ │ │ │ -
342 { "MAC", 69 },
│ │ │ │ -
343 { "MACARABIC", 70 },
│ │ │ │ -
344 { "MACCENTRALEUROPE", 71 },
│ │ │ │ -
345 { "MACCROATIAN", 72 },
│ │ │ │ -
346 { "MACCYRILLIC", 73 },
│ │ │ │ -
347 { "MACGREEK", 74 },
│ │ │ │ -
348 { "MACHEBREW", 75 },
│ │ │ │ -
349 { "MACICELAND", 76 },
│ │ │ │ -
350 { "MACINTOSH", 69 },
│ │ │ │ -
351 { "MACROMAN", 69 },
│ │ │ │ -
352 { "MACROMANIA", 77 },
│ │ │ │ -
353 { "MACTHAI", 78 },
│ │ │ │ -
354 { "MACTURKISH", 79 },
│ │ │ │ -
355 { "MACUKRAINE", 80 },
│ │ │ │ -
356 { "MS-ANSI", 15 },
│ │ │ │ -
357 { "MS-ARAB", 19 },
│ │ │ │ -
358 { "MS-CYRL", 14 },
│ │ │ │ -
359 { "MS-EE", 13 },
│ │ │ │ -
360 { "MS-GREEK", 16 },
│ │ │ │ -
361 { "MS-HEBR", 18 },
│ │ │ │ -
362 { "MS-TURK", 17 },
│ │ │ │ -
363 { "MS_KANJI", 84 },
│ │ │ │ -
364 { "MULELAO-1", 81 },
│ │ │ │ -
365 { "NEXTSTEP", 82 },
│ │ │ │ -
366 { "R8", 83 },
│ │ │ │ -
367 { "ROMAN8", 83 },
│ │ │ │ -
368 { "SHIFT-JIS", 84 },
│ │ │ │ -
369 { "SHIFT_JIS", 84 },
│ │ │ │ -
370 { "SJIS", 84 },
│ │ │ │ -
371 { "TCVN", 85 },
│ │ │ │ -
372 { "TCVN-5712", 85 },
│ │ │ │ -
373 { "TCVN5712-1", 85 },
│ │ │ │ -
374 { "TCVN5712-1:1993", 85 },
│ │ │ │ -
375 { "TIS-620", 61 },
│ │ │ │ -
376 { "TIS620", 61 },
│ │ │ │ -
377 { "TIS620-0", 61 },
│ │ │ │ -
378 { "TIS620.2529-1", 61 },
│ │ │ │ -
379 { "TIS620.2533-0", 61 },
│ │ │ │ -
380 { "TIS620.2533-1", 61 },
│ │ │ │ -
381 { "UCS-2BE", 3 },
│ │ │ │ -
382 { "UCS-2LE", 2 },
│ │ │ │ -
383 { "UCS-4BE", 86 },
│ │ │ │ -
384 { "UCS-4LE", 87 },
│ │ │ │ -
385 { "UHC", 30 },
│ │ │ │ -
386 { "UNICODE-1-1", 3 },
│ │ │ │ -
387 { "UNICODE-1-1-UTF-7", 93 },
│ │ │ │ -
388 { "UNICODEBIG", 3 },
│ │ │ │ -
389 { "UNICODELITTLE", 2 },
│ │ │ │ -
390 { "US", 88 },
│ │ │ │ -
391 { "US-ASCII", 88 },
│ │ │ │ -
392 { "UTF-16BE", 89 },
│ │ │ │ -
393 { "UTF-16LE", 90 },
│ │ │ │ -
394 { "UTF-32BE", 91 },
│ │ │ │ -
395 { "UTF-32LE", 92 },
│ │ │ │ -
396 { "UTF-7", 93 },
│ │ │ │ -
397 { "UTF-8", 1 },
│ │ │ │ -
398 { "UTF7", 93 },
│ │ │ │ -
399 { "UTF8", 1 },
│ │ │ │ -
400 { "VISCII", 94 },
│ │ │ │ -
401 { "VISCII1.1-1", 94 },
│ │ │ │ -
402 { "WINBALTRIM", 20 },
│ │ │ │ -
403 { "WINDOWS-1250", 13 },
│ │ │ │ -
404 { "WINDOWS-1251", 14 },
│ │ │ │ -
405 { "WINDOWS-1252", 15 },
│ │ │ │ -
406 { "WINDOWS-1253", 16 },
│ │ │ │ -
407 { "WINDOWS-1254", 17 },
│ │ │ │ -
408 { "WINDOWS-1255", 18 },
│ │ │ │ -
409 { "WINDOWS-1256", 19 },
│ │ │ │ -
410 { "WINDOWS-1257", 20 },
│ │ │ │ -
411 { "WINDOWS-1258", 21 },
│ │ │ │ -
412 { "WINDOWS-874", 27 },
│ │ │ │ -
413 { "X0201", 64 },
│ │ │ │ -
414 { "X0208", 62 },
│ │ │ │ -
415 { "X0212", 60 },
│ │ │ │ -
416 { "big5", 5 },
│ │ │ │ -
417 { "cp1250", 13 },
│ │ │ │ -
418 { "cp1251", 14 },
│ │ │ │ -
419 { "cp1252", 15 },
│ │ │ │ -
420 { "cp1253", 16 },
│ │ │ │ -
421 { "cp1254", 17 },
│ │ │ │ -
422 { "cp1255", 18 },
│ │ │ │ -
423 { "cp1256", 19 },
│ │ │ │ -
424 { "cp1257", 20 },
│ │ │ │ -
425 { "cp1258", 21 },
│ │ │ │ -
426 { "cp437", 23 },
│ │ │ │ -
427 { "cp850", 24 },
│ │ │ │ -
428 { "cp862", 25 },
│ │ │ │ -
429 { "cp866", 26 },
│ │ │ │ -
430 { "cp874", 27 },
│ │ │ │ -
431 { "eucJP", 32 },
│ │ │ │ -
432 { "eucKR", 33 },
│ │ │ │ -
433 { "eucTW", 34 },
│ │ │ │ -
434 { "hp15CN", 8 },
│ │ │ │ -
435 { "iso81", 0 },
│ │ │ │ -
436 { "iso815", 48 },
│ │ │ │ -
437 { "iso82", 50 },
│ │ │ │ -
438 { "iso83", 51 },
│ │ │ │ -
439 { "iso84", 52 },
│ │ │ │ -
440 { "iso85", 53 },
│ │ │ │ -
441 { "iso86", 54 },
│ │ │ │ -
442 { "iso87", 55 },
│ │ │ │ -
443 { "iso88", 56 },
│ │ │ │ -
444 { "iso88591", 0 },
│ │ │ │ -
445 { "iso885915", 48 },
│ │ │ │ -
446 { "iso88592", 50 },
│ │ │ │ -
447 { "iso88593", 51 },
│ │ │ │ -
448 { "iso88594", 52 },
│ │ │ │ -
449 { "iso88595", 53 },
│ │ │ │ -
450 { "iso88596", 54 },
│ │ │ │ -
451 { "iso88597", 55 },
│ │ │ │ -
452 { "iso88598", 56 },
│ │ │ │ -
453 { "iso88599", 57 },
│ │ │ │ -
454 { "iso89", 57 },
│ │ │ │ -
455 { "roma8", 83 },
│ │ │ │ -
456 { "roman8", 83 },
│ │ │ │ -
457 { "sjis", 84 },
│ │ │ │ -
458 { "thai8", 61 },
│ │ │ │ -
459 { "tis620", 61 },
│ │ │ │ -
460 { "utf8", 1 },
│ │ │ │ -
461 {NULL, 0}
│ │ │ │ -
462};
│ │ │ │ -
463
│ │ │ │ -
464#endif
│ │ │ │ -
465
│ │ │ │ -
466enum {
│ │ │ │ -
467 TDS_CHARSET_ISO_8859_1 = 0,
│ │ │ │ -
468 TDS_CHARSET_UTF_8 = 1,
│ │ │ │ -
469 TDS_CHARSET_UCS_2LE = 2,
│ │ │ │ -
470 TDS_CHARSET_UCS_2BE = 3,
│ │ │ │ -
471 TDS_CHARSET_ARMSCII_8 = 4,
│ │ │ │ -
472 TDS_CHARSET_BIG_5 = 5,
│ │ │ │ -
473 TDS_CHARSET_BIG5_HKSCS = 6,
│ │ │ │ -
474 TDS_CHARSET_C99 = 7,
│ │ │ │ -
475 TDS_CHARSET_CHINESE = 8,
│ │ │ │ -
476 TDS_CHARSET_CN = 9,
│ │ │ │ -
477 TDS_CHARSET_CN_GB = 10,
│ │ │ │ -
478 TDS_CHARSET_CN_GB_ISOIR165 = 11,
│ │ │ │ -
479 TDS_CHARSET_CP1133 = 12,
│ │ │ │ -
480 TDS_CHARSET_CP1250 = 13,
│ │ │ │ -
481 TDS_CHARSET_CP1251 = 14,
│ │ │ │ -
482 TDS_CHARSET_CP1252 = 15,
│ │ │ │ -
483 TDS_CHARSET_CP1253 = 16,
│ │ │ │ -
484 TDS_CHARSET_CP1254 = 17,
│ │ │ │ -
485 TDS_CHARSET_CP1255 = 18,
│ │ │ │ -
486 TDS_CHARSET_CP1256 = 19,
│ │ │ │ -
487 TDS_CHARSET_CP1257 = 20,
│ │ │ │ -
488 TDS_CHARSET_CP1258 = 21,
│ │ │ │ -
489 TDS_CHARSET_CP1361 = 22,
│ │ │ │ -
490 TDS_CHARSET_CP437 = 23,
│ │ │ │ -
491 TDS_CHARSET_CP850 = 24,
│ │ │ │ -
492 TDS_CHARSET_CP862 = 25,
│ │ │ │ -
493 TDS_CHARSET_CP866 = 26,
│ │ │ │ -
494 TDS_CHARSET_CP874 = 27,
│ │ │ │ -
495 TDS_CHARSET_CP932 = 28,
│ │ │ │ -
496 TDS_CHARSET_CP936 = 29,
│ │ │ │ -
497 TDS_CHARSET_CP949 = 30,
│ │ │ │ -
498 TDS_CHARSET_CP950 = 31,
│ │ │ │ -
499 TDS_CHARSET_EUC_JP = 32,
│ │ │ │ -
500 TDS_CHARSET_EUC_KR = 33,
│ │ │ │ -
501 TDS_CHARSET_EUC_TW = 34,
│ │ │ │ -
502 TDS_CHARSET_GB18030 = 35,
│ │ │ │ -
503 TDS_CHARSET_GEORGIAN_ACADEMY = 36,
│ │ │ │ -
504 TDS_CHARSET_GEORGIAN_PS = 37,
│ │ │ │ -
505 TDS_CHARSET_HZ = 38,
│ │ │ │ -
506 TDS_CHARSET_ISO_2022_CN = 39,
│ │ │ │ -
507 TDS_CHARSET_ISO_2022_CN_EXT = 40,
│ │ │ │ -
508 TDS_CHARSET_ISO_2022_JP = 41,
│ │ │ │ -
509 TDS_CHARSET_ISO_2022_JP_1 = 42,
│ │ │ │ -
510 TDS_CHARSET_ISO_2022_JP_2 = 43,
│ │ │ │ -
511 TDS_CHARSET_ISO_2022_KR = 44,
│ │ │ │ -
512 TDS_CHARSET_ISO_8859_10 = 45,
│ │ │ │ -
513 TDS_CHARSET_ISO_8859_13 = 46,
│ │ │ │ -
514 TDS_CHARSET_ISO_8859_14 = 47,
│ │ │ │ -
515 TDS_CHARSET_ISO_8859_15 = 48,
│ │ │ │ -
516 TDS_CHARSET_ISO_8859_16 = 49,
│ │ │ │ -
517 TDS_CHARSET_ISO_8859_2 = 50,
│ │ │ │ -
518 TDS_CHARSET_ISO_8859_3 = 51,
│ │ │ │ -
519 TDS_CHARSET_ISO_8859_4 = 52,
│ │ │ │ -
520 TDS_CHARSET_ISO_8859_5 = 53,
│ │ │ │ -
521 TDS_CHARSET_ISO_8859_6 = 54,
│ │ │ │ -
522 TDS_CHARSET_ISO_8859_7 = 55,
│ │ │ │ -
523 TDS_CHARSET_ISO_8859_8 = 56,
│ │ │ │ -
524 TDS_CHARSET_ISO_8859_9 = 57,
│ │ │ │ -
525 TDS_CHARSET_ISO_IR_14 = 58,
│ │ │ │ -
526 TDS_CHARSET_ISO_IR_149 = 59,
│ │ │ │ -
527 TDS_CHARSET_ISO_IR_159 = 60,
│ │ │ │ -
528 TDS_CHARSET_ISO_IR_166 = 61,
│ │ │ │ -
529 TDS_CHARSET_ISO_IR_87 = 62,
│ │ │ │ -
530 TDS_CHARSET_JAVA = 63,
│ │ │ │ -
531 TDS_CHARSET_JISX0201_1976 = 64,
│ │ │ │ -
532 TDS_CHARSET_KOI8_R = 65,
│ │ │ │ -
533 TDS_CHARSET_KOI8_RU = 66,
│ │ │ │ -
534 TDS_CHARSET_KOI8_T = 67,
│ │ │ │ -
535 TDS_CHARSET_KOI8_U = 68,
│ │ │ │ -
536 TDS_CHARSET_MAC = 69,
│ │ │ │ -
537 TDS_CHARSET_MACARABIC = 70,
│ │ │ │ -
538 TDS_CHARSET_MACCENTRALEUROPE = 71,
│ │ │ │ -
539 TDS_CHARSET_MACCROATIAN = 72,
│ │ │ │ -
540 TDS_CHARSET_MACCYRILLIC = 73,
│ │ │ │ -
541 TDS_CHARSET_MACGREEK = 74,
│ │ │ │ -
542 TDS_CHARSET_MACHEBREW = 75,
│ │ │ │ -
543 TDS_CHARSET_MACICELAND = 76,
│ │ │ │ -
544 TDS_CHARSET_MACROMANIA = 77,
│ │ │ │ -
545 TDS_CHARSET_MACTHAI = 78,
│ │ │ │ -
546 TDS_CHARSET_MACTURKISH = 79,
│ │ │ │ -
547 TDS_CHARSET_MACUKRAINE = 80,
│ │ │ │ -
548 TDS_CHARSET_MULELAO_1 = 81,
│ │ │ │ -
549 TDS_CHARSET_NEXTSTEP = 82,
│ │ │ │ -
550 TDS_CHARSET_ROMAN8 = 83,
│ │ │ │ -
551 TDS_CHARSET_SJIS = 84,
│ │ │ │ -
552 TDS_CHARSET_TCVN = 85,
│ │ │ │ -
553 TDS_CHARSET_UCS_4BE = 86,
│ │ │ │ -
554 TDS_CHARSET_UCS_4LE = 87,
│ │ │ │ -
555 TDS_CHARSET_US_ASCII = 88,
│ │ │ │ -
556 TDS_CHARSET_UTF_16BE = 89,
│ │ │ │ -
557 TDS_CHARSET_UTF_16LE = 90,
│ │ │ │ -
558 TDS_CHARSET_UTF_32BE = 91,
│ │ │ │ -
559 TDS_CHARSET_UTF_32LE = 92,
│ │ │ │ -
560 TDS_CHARSET_UTF_7 = 93,
│ │ │ │ -
561 TDS_CHARSET_VISCII = 94,
│ │ │ │ -
562 TDS_NUM_CHARSETS = 95
│ │ │ │ -
563};
│ │ │ │ -
564
│ │ │ │ -
Definition iconv.h:73
│ │ │ │ -
Information relevant to libiconv.
Definition tds.h:618
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 2015 Frediano Ziglio
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef freetds_bool_h_
│ │ │ │ +
21#define freetds_bool_h_
│ │ │ │ +
22
│ │ │ │ +
23#ifndef __cplusplus
│ │ │ │ +
24
│ │ │ │ +
25#ifdef HAVE_STDBOOL_H
│ │ │ │ +
26
│ │ │ │ +
27#include <stdbool.h>
│ │ │ │ +
28
│ │ │ │ +
29#else
│ │ │ │ +
30
│ │ │ │ +
31#undef true
│ │ │ │ +
32#undef false
│ │ │ │ +
33#undef bool
│ │ │ │ +
34typedef unsigned char freetds_boolean_t;
│ │ │ │ +
35#define bool freetds_boolean_t
│ │ │ │ +
36#define true 1
│ │ │ │ +
37#define false 0
│ │ │ │ +
38
│ │ │ │ +
39#endif
│ │ │ │ +
40
│ │ │ │ +
41#endif
│ │ │ │ +
42
│ │ │ │ +
43#endif /* freetds_bool_h_ */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,578 +1,52 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -encodings.h │ │ │ │ │ -1/* │ │ │ │ │ -2 * This file produced from ./encodings.pl on Sat Jan 21 09:01:33 2023 │ │ │ │ │ -3 */ │ │ │ │ │ -4#ifdef TDS_ICONV_ENCODING_TABLES │ │ │ │ │ -5 │ │ │ │ │ -6static const _T_D_S___E_N_C_O_D_I_N_G canonic_charsets[] = { │ │ │ │ │ -7 { "ISO-8859-1", 1, 1, 0}, /* 0 */ │ │ │ │ │ -8 { "UTF-8", 1, 4, 1}, /* 1 */ │ │ │ │ │ -9 { "UCS-2LE", 2, 2, 2}, /* 2 */ │ │ │ │ │ -10 { "UCS-2BE", 2, 2, 3}, /* 3 */ │ │ │ │ │ -11 { "ARMSCII-8", 1, 1, 4}, /* 4 */ │ │ │ │ │ -12 { "BIG-5", 1, 2, 5}, /* 5 */ │ │ │ │ │ -13 { "BIG5-HKSCS", 1, 2, 6}, /* 6 */ │ │ │ │ │ -14 { "C99", 1, 1, 7}, /* 7 */ │ │ │ │ │ -15 { "CHINESE", 1, 1, 8}, /* 8 */ │ │ │ │ │ -16 { "CN", 1, 1, 9}, /* 9 */ │ │ │ │ │ -17 { "CN-GB", 1, 2, 10}, /* 10 */ │ │ │ │ │ -18 { "CN-GB-ISOIR165", 1, 1, 11}, /* 11 */ │ │ │ │ │ -19 { "CP1133", 1, 1, 12}, /* 12 */ │ │ │ │ │ -20 { "CP1250", 1, 1, 13}, /* 13 */ │ │ │ │ │ -21 { "CP1251", 1, 1, 14}, /* 14 */ │ │ │ │ │ -22 { "CP1252", 1, 1, 15}, /* 15 */ │ │ │ │ │ -23 { "CP1253", 1, 1, 16}, /* 16 */ │ │ │ │ │ -24 { "CP1254", 1, 1, 17}, /* 17 */ │ │ │ │ │ -25 { "CP1255", 1, 1, 18}, /* 18 */ │ │ │ │ │ -26 { "CP1256", 1, 1, 19}, /* 19 */ │ │ │ │ │ -27 { "CP1257", 1, 1, 20}, /* 20 */ │ │ │ │ │ -28 { "CP1258", 1, 1, 21}, /* 21 */ │ │ │ │ │ -29 { "CP1361", 1, 2, 22}, /* 22 */ │ │ │ │ │ -30 { "CP437", 1, 1, 23}, /* 23 */ │ │ │ │ │ -31 { "CP850", 1, 1, 24}, /* 24 */ │ │ │ │ │ -32 { "CP862", 1, 1, 25}, /* 25 */ │ │ │ │ │ -33 { "CP866", 1, 1, 26}, /* 26 */ │ │ │ │ │ -34 { "CP874", 1, 1, 27}, /* 27 */ │ │ │ │ │ -35 { "CP932", 1, 2, 28}, /* 28 */ │ │ │ │ │ -36 { "CP936", 1, 2, 29}, /* 29 */ │ │ │ │ │ -37 { "CP949", 1, 2, 30}, /* 30 */ │ │ │ │ │ -38 { "CP950", 1, 2, 31}, /* 31 */ │ │ │ │ │ -39 { "EUC-JP", 1, 3, 32}, /* 32 */ │ │ │ │ │ -40 { "EUC-KR", 1, 2, 33}, /* 33 */ │ │ │ │ │ -41 { "EUC-TW", 1, 4, 34}, /* 34 */ │ │ │ │ │ -42 { "GB18030", 1, 4, 35}, /* 35 */ │ │ │ │ │ -43 { "GEORGIAN-ACADEMY", 1, 1, 36}, /* 36 */ │ │ │ │ │ -44 { "GEORGIAN-PS", 1, 1, 37}, /* 37 */ │ │ │ │ │ -45 { "HZ", 1, 1, 38}, /* 38 */ │ │ │ │ │ -46 { "ISO-2022-CN", 1, 4, 39}, /* 39 */ │ │ │ │ │ -47 { "ISO-2022-CN-EXT", 1, 4, 40}, /* 40 */ │ │ │ │ │ -48 { "ISO-2022-JP", 1, 1, 41}, /* 41 */ │ │ │ │ │ -49 { "ISO-2022-JP-1", 1, 1, 42}, /* 42 */ │ │ │ │ │ -50 { "ISO-2022-JP-2", 1, 1, 43}, /* 43 */ │ │ │ │ │ -51 { "ISO-2022-KR", 1, 2, 44}, /* 44 */ │ │ │ │ │ -52 { "ISO-8859-10", 1, 1, 45}, /* 45 */ │ │ │ │ │ -53 { "ISO-8859-13", 1, 1, 46}, /* 46 */ │ │ │ │ │ -54 { "ISO-8859-14", 1, 1, 47}, /* 47 */ │ │ │ │ │ -55 { "ISO-8859-15", 1, 1, 48}, /* 48 */ │ │ │ │ │ -56 { "ISO-8859-16", 1, 1, 49}, /* 49 */ │ │ │ │ │ -57 { "ISO-8859-2", 1, 1, 50}, /* 50 */ │ │ │ │ │ -58 { "ISO-8859-3", 1, 1, 51}, /* 51 */ │ │ │ │ │ -59 { "ISO-8859-4", 1, 1, 52}, /* 52 */ │ │ │ │ │ -60 { "ISO-8859-5", 1, 1, 53}, /* 53 */ │ │ │ │ │ -61 { "ISO-8859-6", 1, 1, 54}, /* 54 */ │ │ │ │ │ -62 { "ISO-8859-7", 1, 1, 55}, /* 55 */ │ │ │ │ │ -63 { "ISO-8859-8", 1, 1, 56}, /* 56 */ │ │ │ │ │ -64 { "ISO-8859-9", 1, 1, 57}, /* 57 */ │ │ │ │ │ -65 { "ISO-IR-14", 1, 1, 58}, /* 58 */ │ │ │ │ │ -66 { "ISO-IR-149", 1, 1, 59}, /* 59 */ │ │ │ │ │ -67 { "ISO-IR-159", 1, 1, 60}, /* 60 */ │ │ │ │ │ -68 { "ISO-IR-166", 1, 1, 61}, /* 61 */ │ │ │ │ │ -69 { "ISO-IR-87", 1, 1, 62}, /* 62 */ │ │ │ │ │ -70 { "JAVA", 1, 1, 63}, /* 63 */ │ │ │ │ │ -71 { "JISX0201-1976", 1, 1, 64}, /* 64 */ │ │ │ │ │ -72 { "KOI8-R", 1, 1, 65}, /* 65 */ │ │ │ │ │ -73 { "KOI8-RU", 1, 1, 66}, /* 66 */ │ │ │ │ │ -74 { "KOI8-T", 1, 1, 67}, /* 67 */ │ │ │ │ │ -75 { "KOI8-U", 1, 1, 68}, /* 68 */ │ │ │ │ │ -76 { "MAC", 1, 1, 69}, /* 69 */ │ │ │ │ │ -77 { "MACARABIC", 1, 1, 70}, /* 70 */ │ │ │ │ │ -78 { "MACCENTRALEUROPE", 1, 1, 71}, /* 71 */ │ │ │ │ │ -79 { "MACCROATIAN", 1, 1, 72}, /* 72 */ │ │ │ │ │ -80 { "MACCYRILLIC", 1, 1, 73}, /* 73 */ │ │ │ │ │ -81 { "MACGREEK", 1, 1, 74}, /* 74 */ │ │ │ │ │ -82 { "MACHEBREW", 1, 1, 75}, /* 75 */ │ │ │ │ │ -83 { "MACICELAND", 1, 1, 76}, /* 76 */ │ │ │ │ │ -84 { "MACROMANIA", 1, 1, 77}, /* 77 */ │ │ │ │ │ -85 { "MACTHAI", 1, 1, 78}, /* 78 */ │ │ │ │ │ -86 { "MACTURKISH", 1, 1, 79}, /* 79 */ │ │ │ │ │ -87 { "MACUKRAINE", 1, 1, 80}, /* 80 */ │ │ │ │ │ -88 { "MULELAO-1", 1, 1, 81}, /* 81 */ │ │ │ │ │ -89 { "NEXTSTEP", 1, 1, 82}, /* 82 */ │ │ │ │ │ -90 { "ROMAN8", 1, 1, 83}, /* 83 */ │ │ │ │ │ -91 { "SJIS", 1, 2, 84}, /* 84 */ │ │ │ │ │ -92 { "TCVN", 1, 1, 85}, /* 85 */ │ │ │ │ │ -93 { "UCS-4BE", 4, 4, 86}, /* 86 */ │ │ │ │ │ -94 { "UCS-4LE", 4, 4, 87}, /* 87 */ │ │ │ │ │ -95 { "US-ASCII", 1, 1, 88}, /* 88 */ │ │ │ │ │ -96 { "UTF-16BE", 2, 4, 89}, /* 89 */ │ │ │ │ │ -97 { "UTF-16LE", 2, 4, 90}, /* 90 */ │ │ │ │ │ -98 { "UTF-32BE", 4, 4, 91}, /* 91 */ │ │ │ │ │ -99 { "UTF-32LE", 4, 4, 92}, /* 92 */ │ │ │ │ │ -100 { "UTF-7", 1, 4, 93}, /* 93 */ │ │ │ │ │ -101 { "VISCII", 1, 1, 94}, /* 94 */ │ │ │ │ │ -102}; │ │ │ │ │ -103 │ │ │ │ │ -104static const _C_H_A_R_A_C_T_E_R___S_E_T___A_L_I_A_S iconv_aliases[] = { │ │ │ │ │ -105 { "646", 88 }, │ │ │ │ │ -106 { "850", 24 }, │ │ │ │ │ -107 { "862", 25 }, │ │ │ │ │ -108 { "866", 26 }, │ │ │ │ │ -109 { "ANSI_X3.4-1968", 88 }, │ │ │ │ │ -110 { "ANSI_X3.4-1986", 88 }, │ │ │ │ │ -111 { "ARABIC", 54 }, │ │ │ │ │ -112 { "ARMSCII-8", 4 }, │ │ │ │ │ -113 { "ASCII", 88 }, │ │ │ │ │ -114 { "ASMO-708", 54 }, │ │ │ │ │ -115 { "BIG-5", 5 }, │ │ │ │ │ -116 { "BIG-FIVE", 5 }, │ │ │ │ │ -117 { "BIG5", 5 }, │ │ │ │ │ -118 { "BIG5-HKSCS", 6 }, │ │ │ │ │ -119 { "BIG5HKSCS", 6 }, │ │ │ │ │ -120 { "BIGFIVE", 5 }, │ │ │ │ │ -121 { "C99", 7 }, │ │ │ │ │ -122 { "CHINESE", 8 }, │ │ │ │ │ -123 { "CN", 9 }, │ │ │ │ │ -124 { "CN-BIG5", 5 }, │ │ │ │ │ -125 { "CN-GB", 10 }, │ │ │ │ │ -126 { "CN-GB-ISOIR165", 11 }, │ │ │ │ │ -127 { "CP1133", 12 }, │ │ │ │ │ -128 { "CP1250", 13 }, │ │ │ │ │ -129 { "CP1251", 14 }, │ │ │ │ │ -130 { "CP1252", 15 }, │ │ │ │ │ -131 { "CP1253", 16 }, │ │ │ │ │ -132 { "CP1254", 17 }, │ │ │ │ │ -133 { "CP1255", 18 }, │ │ │ │ │ -134 { "CP1256", 19 }, │ │ │ │ │ -135 { "CP1257", 20 }, │ │ │ │ │ -136 { "CP1258", 21 }, │ │ │ │ │ -137 { "CP1361", 22 }, │ │ │ │ │ -138 { "CP367", 88 }, │ │ │ │ │ -139 { "CP437", 23 }, │ │ │ │ │ -140 { "CP819", 0 }, │ │ │ │ │ -141 { "CP850", 24 }, │ │ │ │ │ -142 { "CP862", 25 }, │ │ │ │ │ -143 { "CP866", 26 }, │ │ │ │ │ -144 { "CP874", 27 }, │ │ │ │ │ -145 { "CP932", 28 }, │ │ │ │ │ -146 { "CP936", 29 }, │ │ │ │ │ -147 { "CP949", 30 }, │ │ │ │ │ -148 { "CP950", 31 }, │ │ │ │ │ -149 { "CSASCII", 88 }, │ │ │ │ │ -150 { "CSBIG5", 5 }, │ │ │ │ │ -151 { "CSEUCKR", 33 }, │ │ │ │ │ -152 { "CSEUCPKDFMTJAPANESE", 32 }, │ │ │ │ │ -153 { "CSEUCTW", 34 }, │ │ │ │ │ -154 { "CSGB2312", 10 }, │ │ │ │ │ -155 { "CSHALFWIDTHKATAKANA", 64 }, │ │ │ │ │ -156 { "CSHPROMAN8", 83 }, │ │ │ │ │ -157 { "CSIBM866", 26 }, │ │ │ │ │ -158 { "CSISO14JISC6220RO", 58 }, │ │ │ │ │ -159 { "CSISO159JISX02121990", 60 }, │ │ │ │ │ -160 { "CSISO2022CN", 39 }, │ │ │ │ │ -161 { "CSISO2022JP", 41 }, │ │ │ │ │ -162 { "CSISO2022JP2", 43 }, │ │ │ │ │ -163 { "CSISO2022KR", 44 }, │ │ │ │ │ -164 { "CSISO57GB1988", 9 }, │ │ │ │ │ -165 { "CSISO58GB231280", 8 }, │ │ │ │ │ -166 { "CSISO87JISX0208", 62 }, │ │ │ │ │ -167 { "CSISOLATIN1", 0 }, │ │ │ │ │ -168 { "CSISOLATIN2", 50 }, │ │ │ │ │ -169 { "CSISOLATIN3", 51 }, │ │ │ │ │ -170 { "CSISOLATIN4", 52 }, │ │ │ │ │ -171 { "CSISOLATIN5", 57 }, │ │ │ │ │ -172 { "CSISOLATIN6", 45 }, │ │ │ │ │ -173 { "CSISOLATINARABIC", 54 }, │ │ │ │ │ -174 { "CSISOLATINCYRILLIC", 53 }, │ │ │ │ │ -175 { "CSISOLATINGREEK", 55 }, │ │ │ │ │ -176 { "CSISOLATINHEBREW", 56 }, │ │ │ │ │ -177 { "CSKOI8R", 65 }, │ │ │ │ │ -178 { "CSKSC56011987", 59 }, │ │ │ │ │ -179 { "CSMACINTOSH", 69 }, │ │ │ │ │ -180 { "CSPC850MULTILINGUAL", 24 }, │ │ │ │ │ -181 { "CSPC862LATINHEBREW", 25 }, │ │ │ │ │ -182 { "CSSHIFTJIS", 84 }, │ │ │ │ │ -183 { "CSUNICODE11", 3 }, │ │ │ │ │ -184 { "CSUNICODE11UTF7", 93 }, │ │ │ │ │ -185 { "CSVISCII", 94 }, │ │ │ │ │ -186 { "CYRILLIC", 53 }, │ │ │ │ │ -187 { "ECMA-114", 54 }, │ │ │ │ │ -188 { "ECMA-118", 55 }, │ │ │ │ │ -189 { "ELOT_928", 55 }, │ │ │ │ │ -190 { "EUC-CN", 10 }, │ │ │ │ │ -191 { "EUC-JP", 32 }, │ │ │ │ │ -192 { "EUC-KR", 33 }, │ │ │ │ │ -193 { "EUC-TW", 34 }, │ │ │ │ │ -194 { "EUCCN", 10 }, │ │ │ │ │ -195 { "EUCJP", 32 }, │ │ │ │ │ -196 { "EUCKR", 33 }, │ │ │ │ │ -197 { "EUCTW", 34 }, │ │ │ │ │ -198 {"EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", 32 }, │ │ │ │ │ -199 { "GB18030", 35 }, │ │ │ │ │ -200 { "GB2312", 10 }, │ │ │ │ │ -201 { "GBK", 29 }, │ │ │ │ │ -202 { "GB_1988-80", 9 }, │ │ │ │ │ -203 { "GB_2312-80", 8 }, │ │ │ │ │ -204 { "GEORGIAN-ACADEMY", 36 }, │ │ │ │ │ -205 { "GEORGIAN-PS", 37 }, │ │ │ │ │ -206 { "GREEK", 55 }, │ │ │ │ │ -207 { "GREEK8", 55 }, │ │ │ │ │ -208 { "HEBREW", 56 }, │ │ │ │ │ -209 { "HP-ROMAN8", 83 }, │ │ │ │ │ -210 { "HZ", 38 }, │ │ │ │ │ -211 { "HZ-GB-2312", 38 }, │ │ │ │ │ -212 { "IBM-CP1133", 12 }, │ │ │ │ │ -213 { "IBM367", 88 }, │ │ │ │ │ -214 { "IBM437", 23 }, │ │ │ │ │ -215 { "IBM819", 0 }, │ │ │ │ │ -216 { "IBM850", 24 }, │ │ │ │ │ -217 { "IBM862", 25 }, │ │ │ │ │ -218 { "IBM866", 26 }, │ │ │ │ │ -219 { "ISO-2022-CN", 39 }, │ │ │ │ │ -220 { "ISO-2022-CN-EXT", 40 }, │ │ │ │ │ -221 { "ISO-2022-JP", 41 }, │ │ │ │ │ -222 { "ISO-2022-JP-1", 42 }, │ │ │ │ │ -223 { "ISO-2022-JP-2", 43 }, │ │ │ │ │ -224 { "ISO-2022-KR", 44 }, │ │ │ │ │ -225 { "ISO-8859-1", 0 }, │ │ │ │ │ -226 { "ISO-8859-10", 45 }, │ │ │ │ │ -227 { "ISO-8859-13", 46 }, │ │ │ │ │ -228 { "ISO-8859-14", 47 }, │ │ │ │ │ -229 { "ISO-8859-15", 48 }, │ │ │ │ │ -230 { "ISO-8859-16", 49 }, │ │ │ │ │ -231 { "ISO-8859-2", 50 }, │ │ │ │ │ -232 { "ISO-8859-3", 51 }, │ │ │ │ │ -233 { "ISO-8859-4", 52 }, │ │ │ │ │ -234 { "ISO-8859-5", 53 }, │ │ │ │ │ -235 { "ISO-8859-6", 54 }, │ │ │ │ │ -236 { "ISO-8859-7", 55 }, │ │ │ │ │ -237 { "ISO-8859-8", 56 }, │ │ │ │ │ -238 { "ISO-8859-9", 57 }, │ │ │ │ │ -239 { "ISO-CELTIC", 47 }, │ │ │ │ │ -240 { "ISO-IR-100", 0 }, │ │ │ │ │ -241 { "ISO-IR-101", 50 }, │ │ │ │ │ -242 { "ISO-IR-109", 51 }, │ │ │ │ │ -243 { "ISO-IR-110", 52 }, │ │ │ │ │ -244 { "ISO-IR-126", 55 }, │ │ │ │ │ -245 { "ISO-IR-127", 54 }, │ │ │ │ │ -246 { "ISO-IR-138", 56 }, │ │ │ │ │ -247 { "ISO-IR-14", 58 }, │ │ │ │ │ -248 { "ISO-IR-144", 53 }, │ │ │ │ │ -249 { "ISO-IR-148", 57 }, │ │ │ │ │ -250 { "ISO-IR-149", 59 }, │ │ │ │ │ -251 { "ISO-IR-157", 45 }, │ │ │ │ │ -252 { "ISO-IR-159", 60 }, │ │ │ │ │ -253 { "ISO-IR-165", 11 }, │ │ │ │ │ -254 { "ISO-IR-166", 61 }, │ │ │ │ │ -255 { "ISO-IR-179", 46 }, │ │ │ │ │ -256 { "ISO-IR-199", 47 }, │ │ │ │ │ -257 { "ISO-IR-203", 48 }, │ │ │ │ │ -258 { "ISO-IR-226", 49 }, │ │ │ │ │ -259 { "ISO-IR-57", 9 }, │ │ │ │ │ -260 { "ISO-IR-58", 8 }, │ │ │ │ │ -261 { "ISO-IR-6", 88 }, │ │ │ │ │ -262 { "ISO-IR-87", 62 }, │ │ │ │ │ -263 { "ISO646-CN", 9 }, │ │ │ │ │ -264 { "ISO646-JP", 58 }, │ │ │ │ │ -265 { "ISO646-US", 88 }, │ │ │ │ │ -266 { "ISO8859-1", 0 }, │ │ │ │ │ -267 { "ISO8859-10", 45 }, │ │ │ │ │ -268 { "ISO8859-15", 48 }, │ │ │ │ │ -269 { "ISO8859-2", 50 }, │ │ │ │ │ -270 { "ISO8859-4", 52 }, │ │ │ │ │ -271 { "ISO8859-5", 53 }, │ │ │ │ │ -272 { "ISO8859-6", 54 }, │ │ │ │ │ -273 { "ISO8859-7", 55 }, │ │ │ │ │ -274 { "ISO8859-8", 56 }, │ │ │ │ │ -275 { "ISO8859-9", 57 }, │ │ │ │ │ -276 { "ISO_646.IRV:1991", 88 }, │ │ │ │ │ -277 { "ISO_8859-1", 0 }, │ │ │ │ │ -278 { "ISO_8859-10", 45 }, │ │ │ │ │ -279 { "ISO_8859-10:1992", 45 }, │ │ │ │ │ -280 { "ISO_8859-13", 46 }, │ │ │ │ │ -281 { "ISO_8859-14", 47 }, │ │ │ │ │ -282 { "ISO_8859-14:1998", 47 }, │ │ │ │ │ -283 { "ISO_8859-15", 48 }, │ │ │ │ │ -284 { "ISO_8859-15:1998", 48 }, │ │ │ │ │ -285 { "ISO_8859-16", 49 }, │ │ │ │ │ -286 { "ISO_8859-16:2000", 49 }, │ │ │ │ │ -287 { "ISO_8859-1:1987", 0 }, │ │ │ │ │ -288 { "ISO_8859-2", 50 }, │ │ │ │ │ -289 { "ISO_8859-2:1987", 50 }, │ │ │ │ │ -290 { "ISO_8859-3", 51 }, │ │ │ │ │ -291 { "ISO_8859-3:1988", 51 }, │ │ │ │ │ -292 { "ISO_8859-4", 52 }, │ │ │ │ │ -293 { "ISO_8859-4:1988", 52 }, │ │ │ │ │ -294 { "ISO_8859-5", 53 }, │ │ │ │ │ -295 { "ISO_8859-5:1988", 53 }, │ │ │ │ │ -296 { "ISO_8859-6", 54 }, │ │ │ │ │ -297 { "ISO_8859-6:1987", 54 }, │ │ │ │ │ -298 { "ISO_8859-7", 55 }, │ │ │ │ │ -299 { "ISO_8859-7:1987", 55 }, │ │ │ │ │ -300 { "ISO_8859-8", 56 }, │ │ │ │ │ -301 { "ISO_8859-8:1988", 56 }, │ │ │ │ │ -302 { "ISO_8859-9", 57 }, │ │ │ │ │ -303 { "ISO_8859-9:1989", 57 }, │ │ │ │ │ -304 { "JAVA", 63 }, │ │ │ │ │ -305 { "JIS0208", 62 }, │ │ │ │ │ -306 { "JISX0201-1976", 64 }, │ │ │ │ │ -307 { "JIS_C6220-1969-RO", 58 }, │ │ │ │ │ -308 { "JIS_C6226-1983", 62 }, │ │ │ │ │ -309 { "JIS_X0201", 64 }, │ │ │ │ │ -310 { "JIS_X0208", 62 }, │ │ │ │ │ -311 { "JIS_X0208-1983", 62 }, │ │ │ │ │ -312 { "JIS_X0208-1990", 62 }, │ │ │ │ │ -313 { "JIS_X0212", 60 }, │ │ │ │ │ -314 { "JIS_X0212-1990", 60 }, │ │ │ │ │ -315 { "JIS_X0212.1990-0", 60 }, │ │ │ │ │ -316 { "JOHAB", 22 }, │ │ │ │ │ -317 { "JP", 58 }, │ │ │ │ │ -318 { "KOI8-R", 65 }, │ │ │ │ │ -319 { "KOI8-RU", 66 }, │ │ │ │ │ -320 { "KOI8-T", 67 }, │ │ │ │ │ -321 { "KOI8-U", 68 }, │ │ │ │ │ -322 { "KOREAN", 59 }, │ │ │ │ │ -323 { "KSC_5601", 59 }, │ │ │ │ │ -324 { "KS_C_5601-1987", 59 }, │ │ │ │ │ -325 { "KS_C_5601-1989", 59 }, │ │ │ │ │ -326 { "L1", 0 }, │ │ │ │ │ -327 { "L2", 50 }, │ │ │ │ │ -328 { "L3", 51 }, │ │ │ │ │ -329 { "L4", 52 }, │ │ │ │ │ -330 { "L5", 57 }, │ │ │ │ │ -331 { "L6", 45 }, │ │ │ │ │ -332 { "L7", 46 }, │ │ │ │ │ -333 { "L8", 47 }, │ │ │ │ │ -334 { "LATIN1", 0 }, │ │ │ │ │ -335 { "LATIN2", 50 }, │ │ │ │ │ -336 { "LATIN3", 51 }, │ │ │ │ │ -337 { "LATIN4", 52 }, │ │ │ │ │ -338 { "LATIN5", 57 }, │ │ │ │ │ -339 { "LATIN6", 45 }, │ │ │ │ │ -340 { "LATIN7", 46 }, │ │ │ │ │ -341 { "LATIN8", 47 }, │ │ │ │ │ -342 { "MAC", 69 }, │ │ │ │ │ -343 { "MACARABIC", 70 }, │ │ │ │ │ -344 { "MACCENTRALEUROPE", 71 }, │ │ │ │ │ -345 { "MACCROATIAN", 72 }, │ │ │ │ │ -346 { "MACCYRILLIC", 73 }, │ │ │ │ │ -347 { "MACGREEK", 74 }, │ │ │ │ │ -348 { "MACHEBREW", 75 }, │ │ │ │ │ -349 { "MACICELAND", 76 }, │ │ │ │ │ -350 { "MACINTOSH", 69 }, │ │ │ │ │ -351 { "MACROMAN", 69 }, │ │ │ │ │ -352 { "MACROMANIA", 77 }, │ │ │ │ │ -353 { "MACTHAI", 78 }, │ │ │ │ │ -354 { "MACTURKISH", 79 }, │ │ │ │ │ -355 { "MACUKRAINE", 80 }, │ │ │ │ │ -356 { "MS-ANSI", 15 }, │ │ │ │ │ -357 { "MS-ARAB", 19 }, │ │ │ │ │ -358 { "MS-CYRL", 14 }, │ │ │ │ │ -359 { "MS-EE", 13 }, │ │ │ │ │ -360 { "MS-GREEK", 16 }, │ │ │ │ │ -361 { "MS-HEBR", 18 }, │ │ │ │ │ -362 { "MS-TURK", 17 }, │ │ │ │ │ -363 { "MS_KANJI", 84 }, │ │ │ │ │ -364 { "MULELAO-1", 81 }, │ │ │ │ │ -365 { "NEXTSTEP", 82 }, │ │ │ │ │ -366 { "R8", 83 }, │ │ │ │ │ -367 { "ROMAN8", 83 }, │ │ │ │ │ -368 { "SHIFT-JIS", 84 }, │ │ │ │ │ -369 { "SHIFT_JIS", 84 }, │ │ │ │ │ -370 { "SJIS", 84 }, │ │ │ │ │ -371 { "TCVN", 85 }, │ │ │ │ │ -372 { "TCVN-5712", 85 }, │ │ │ │ │ -373 { "TCVN5712-1", 85 }, │ │ │ │ │ -374 { "TCVN5712-1:1993", 85 }, │ │ │ │ │ -375 { "TIS-620", 61 }, │ │ │ │ │ -376 { "TIS620", 61 }, │ │ │ │ │ -377 { "TIS620-0", 61 }, │ │ │ │ │ -378 { "TIS620.2529-1", 61 }, │ │ │ │ │ -379 { "TIS620.2533-0", 61 }, │ │ │ │ │ -380 { "TIS620.2533-1", 61 }, │ │ │ │ │ -381 { "UCS-2BE", 3 }, │ │ │ │ │ -382 { "UCS-2LE", 2 }, │ │ │ │ │ -383 { "UCS-4BE", 86 }, │ │ │ │ │ -384 { "UCS-4LE", 87 }, │ │ │ │ │ -385 { "UHC", 30 }, │ │ │ │ │ -386 { "UNICODE-1-1", 3 }, │ │ │ │ │ -387 { "UNICODE-1-1-UTF-7", 93 }, │ │ │ │ │ -388 { "UNICODEBIG", 3 }, │ │ │ │ │ -389 { "UNICODELITTLE", 2 }, │ │ │ │ │ -390 { "US", 88 }, │ │ │ │ │ -391 { "US-ASCII", 88 }, │ │ │ │ │ -392 { "UTF-16BE", 89 }, │ │ │ │ │ -393 { "UTF-16LE", 90 }, │ │ │ │ │ -394 { "UTF-32BE", 91 }, │ │ │ │ │ -395 { "UTF-32LE", 92 }, │ │ │ │ │ -396 { "UTF-7", 93 }, │ │ │ │ │ -397 { "UTF-8", 1 }, │ │ │ │ │ -398 { "UTF7", 93 }, │ │ │ │ │ -399 { "UTF8", 1 }, │ │ │ │ │ -400 { "VISCII", 94 }, │ │ │ │ │ -401 { "VISCII1.1-1", 94 }, │ │ │ │ │ -402 { "WINBALTRIM", 20 }, │ │ │ │ │ -403 { "WINDOWS-1250", 13 }, │ │ │ │ │ -404 { "WINDOWS-1251", 14 }, │ │ │ │ │ -405 { "WINDOWS-1252", 15 }, │ │ │ │ │ -406 { "WINDOWS-1253", 16 }, │ │ │ │ │ -407 { "WINDOWS-1254", 17 }, │ │ │ │ │ -408 { "WINDOWS-1255", 18 }, │ │ │ │ │ -409 { "WINDOWS-1256", 19 }, │ │ │ │ │ -410 { "WINDOWS-1257", 20 }, │ │ │ │ │ -411 { "WINDOWS-1258", 21 }, │ │ │ │ │ -412 { "WINDOWS-874", 27 }, │ │ │ │ │ -413 { "X0201", 64 }, │ │ │ │ │ -414 { "X0208", 62 }, │ │ │ │ │ -415 { "X0212", 60 }, │ │ │ │ │ -416 { "big5", 5 }, │ │ │ │ │ -417 { "cp1250", 13 }, │ │ │ │ │ -418 { "cp1251", 14 }, │ │ │ │ │ -419 { "cp1252", 15 }, │ │ │ │ │ -420 { "cp1253", 16 }, │ │ │ │ │ -421 { "cp1254", 17 }, │ │ │ │ │ -422 { "cp1255", 18 }, │ │ │ │ │ -423 { "cp1256", 19 }, │ │ │ │ │ -424 { "cp1257", 20 }, │ │ │ │ │ -425 { "cp1258", 21 }, │ │ │ │ │ -426 { "cp437", 23 }, │ │ │ │ │ -427 { "cp850", 24 }, │ │ │ │ │ -428 { "cp862", 25 }, │ │ │ │ │ -429 { "cp866", 26 }, │ │ │ │ │ -430 { "cp874", 27 }, │ │ │ │ │ -431 { "eucJP", 32 }, │ │ │ │ │ -432 { "eucKR", 33 }, │ │ │ │ │ -433 { "eucTW", 34 }, │ │ │ │ │ -434 { "hp15CN", 8 }, │ │ │ │ │ -435 { "iso81", 0 }, │ │ │ │ │ -436 { "iso815", 48 }, │ │ │ │ │ -437 { "iso82", 50 }, │ │ │ │ │ -438 { "iso83", 51 }, │ │ │ │ │ -439 { "iso84", 52 }, │ │ │ │ │ -440 { "iso85", 53 }, │ │ │ │ │ -441 { "iso86", 54 }, │ │ │ │ │ -442 { "iso87", 55 }, │ │ │ │ │ -443 { "iso88", 56 }, │ │ │ │ │ -444 { "iso88591", 0 }, │ │ │ │ │ -445 { "iso885915", 48 }, │ │ │ │ │ -446 { "iso88592", 50 }, │ │ │ │ │ -447 { "iso88593", 51 }, │ │ │ │ │ -448 { "iso88594", 52 }, │ │ │ │ │ -449 { "iso88595", 53 }, │ │ │ │ │ -450 { "iso88596", 54 }, │ │ │ │ │ -451 { "iso88597", 55 }, │ │ │ │ │ -452 { "iso88598", 56 }, │ │ │ │ │ -453 { "iso88599", 57 }, │ │ │ │ │ -454 { "iso89", 57 }, │ │ │ │ │ -455 { "roma8", 83 }, │ │ │ │ │ -456 { "roman8", 83 }, │ │ │ │ │ -457 { "sjis", 84 }, │ │ │ │ │ -458 { "thai8", 61 }, │ │ │ │ │ -459 { "tis620", 61 }, │ │ │ │ │ -460 { "utf8", 1 }, │ │ │ │ │ -461 {NULL, 0} │ │ │ │ │ -462}; │ │ │ │ │ -463 │ │ │ │ │ -464#endif │ │ │ │ │ -465 │ │ │ │ │ -466enum { │ │ │ │ │ -467 TDS_CHARSET_ISO_8859_1 = 0, │ │ │ │ │ -468 TDS_CHARSET_UTF_8 = 1, │ │ │ │ │ -469 TDS_CHARSET_UCS_2LE = 2, │ │ │ │ │ -470 TDS_CHARSET_UCS_2BE = 3, │ │ │ │ │ -471 TDS_CHARSET_ARMSCII_8 = 4, │ │ │ │ │ -472 TDS_CHARSET_BIG_5 = 5, │ │ │ │ │ -473 TDS_CHARSET_BIG5_HKSCS = 6, │ │ │ │ │ -474 TDS_CHARSET_C99 = 7, │ │ │ │ │ -475 TDS_CHARSET_CHINESE = 8, │ │ │ │ │ -476 TDS_CHARSET_CN = 9, │ │ │ │ │ -477 TDS_CHARSET_CN_GB = 10, │ │ │ │ │ -478 TDS_CHARSET_CN_GB_ISOIR165 = 11, │ │ │ │ │ -479 TDS_CHARSET_CP1133 = 12, │ │ │ │ │ -480 TDS_CHARSET_CP1250 = 13, │ │ │ │ │ -481 TDS_CHARSET_CP1251 = 14, │ │ │ │ │ -482 TDS_CHARSET_CP1252 = 15, │ │ │ │ │ -483 TDS_CHARSET_CP1253 = 16, │ │ │ │ │ -484 TDS_CHARSET_CP1254 = 17, │ │ │ │ │ -485 TDS_CHARSET_CP1255 = 18, │ │ │ │ │ -486 TDS_CHARSET_CP1256 = 19, │ │ │ │ │ -487 TDS_CHARSET_CP1257 = 20, │ │ │ │ │ -488 TDS_CHARSET_CP1258 = 21, │ │ │ │ │ -489 TDS_CHARSET_CP1361 = 22, │ │ │ │ │ -490 TDS_CHARSET_CP437 = 23, │ │ │ │ │ -491 TDS_CHARSET_CP850 = 24, │ │ │ │ │ -492 TDS_CHARSET_CP862 = 25, │ │ │ │ │ -493 TDS_CHARSET_CP866 = 26, │ │ │ │ │ -494 TDS_CHARSET_CP874 = 27, │ │ │ │ │ -495 TDS_CHARSET_CP932 = 28, │ │ │ │ │ -496 TDS_CHARSET_CP936 = 29, │ │ │ │ │ -497 TDS_CHARSET_CP949 = 30, │ │ │ │ │ -498 TDS_CHARSET_CP950 = 31, │ │ │ │ │ -499 TDS_CHARSET_EUC_JP = 32, │ │ │ │ │ -500 TDS_CHARSET_EUC_KR = 33, │ │ │ │ │ -501 TDS_CHARSET_EUC_TW = 34, │ │ │ │ │ -502 TDS_CHARSET_GB18030 = 35, │ │ │ │ │ -503 TDS_CHARSET_GEORGIAN_ACADEMY = 36, │ │ │ │ │ -504 TDS_CHARSET_GEORGIAN_PS = 37, │ │ │ │ │ -505 TDS_CHARSET_HZ = 38, │ │ │ │ │ -506 TDS_CHARSET_ISO_2022_CN = 39, │ │ │ │ │ -507 TDS_CHARSET_ISO_2022_CN_EXT = 40, │ │ │ │ │ -508 TDS_CHARSET_ISO_2022_JP = 41, │ │ │ │ │ -509 TDS_CHARSET_ISO_2022_JP_1 = 42, │ │ │ │ │ -510 TDS_CHARSET_ISO_2022_JP_2 = 43, │ │ │ │ │ -511 TDS_CHARSET_ISO_2022_KR = 44, │ │ │ │ │ -512 TDS_CHARSET_ISO_8859_10 = 45, │ │ │ │ │ -513 TDS_CHARSET_ISO_8859_13 = 46, │ │ │ │ │ -514 TDS_CHARSET_ISO_8859_14 = 47, │ │ │ │ │ -515 TDS_CHARSET_ISO_8859_15 = 48, │ │ │ │ │ -516 TDS_CHARSET_ISO_8859_16 = 49, │ │ │ │ │ -517 TDS_CHARSET_ISO_8859_2 = 50, │ │ │ │ │ -518 TDS_CHARSET_ISO_8859_3 = 51, │ │ │ │ │ -519 TDS_CHARSET_ISO_8859_4 = 52, │ │ │ │ │ -520 TDS_CHARSET_ISO_8859_5 = 53, │ │ │ │ │ -521 TDS_CHARSET_ISO_8859_6 = 54, │ │ │ │ │ -522 TDS_CHARSET_ISO_8859_7 = 55, │ │ │ │ │ -523 TDS_CHARSET_ISO_8859_8 = 56, │ │ │ │ │ -524 TDS_CHARSET_ISO_8859_9 = 57, │ │ │ │ │ -525 TDS_CHARSET_ISO_IR_14 = 58, │ │ │ │ │ -526 TDS_CHARSET_ISO_IR_149 = 59, │ │ │ │ │ -527 TDS_CHARSET_ISO_IR_159 = 60, │ │ │ │ │ -528 TDS_CHARSET_ISO_IR_166 = 61, │ │ │ │ │ -529 TDS_CHARSET_ISO_IR_87 = 62, │ │ │ │ │ -530 TDS_CHARSET_JAVA = 63, │ │ │ │ │ -531 TDS_CHARSET_JISX0201_1976 = 64, │ │ │ │ │ -532 TDS_CHARSET_KOI8_R = 65, │ │ │ │ │ -533 TDS_CHARSET_KOI8_RU = 66, │ │ │ │ │ -534 TDS_CHARSET_KOI8_T = 67, │ │ │ │ │ -535 TDS_CHARSET_KOI8_U = 68, │ │ │ │ │ -536 TDS_CHARSET_MAC = 69, │ │ │ │ │ -537 TDS_CHARSET_MACARABIC = 70, │ │ │ │ │ -538 TDS_CHARSET_MACCENTRALEUROPE = 71, │ │ │ │ │ -539 TDS_CHARSET_MACCROATIAN = 72, │ │ │ │ │ -540 TDS_CHARSET_MACCYRILLIC = 73, │ │ │ │ │ -541 TDS_CHARSET_MACGREEK = 74, │ │ │ │ │ -542 TDS_CHARSET_MACHEBREW = 75, │ │ │ │ │ -543 TDS_CHARSET_MACICELAND = 76, │ │ │ │ │ -544 TDS_CHARSET_MACROMANIA = 77, │ │ │ │ │ -545 TDS_CHARSET_MACTHAI = 78, │ │ │ │ │ -546 TDS_CHARSET_MACTURKISH = 79, │ │ │ │ │ -547 TDS_CHARSET_MACUKRAINE = 80, │ │ │ │ │ -548 TDS_CHARSET_MULELAO_1 = 81, │ │ │ │ │ -549 TDS_CHARSET_NEXTSTEP = 82, │ │ │ │ │ -550 TDS_CHARSET_ROMAN8 = 83, │ │ │ │ │ -551 TDS_CHARSET_SJIS = 84, │ │ │ │ │ -552 TDS_CHARSET_TCVN = 85, │ │ │ │ │ -553 TDS_CHARSET_UCS_4BE = 86, │ │ │ │ │ -554 TDS_CHARSET_UCS_4LE = 87, │ │ │ │ │ -555 TDS_CHARSET_US_ASCII = 88, │ │ │ │ │ -556 TDS_CHARSET_UTF_16BE = 89, │ │ │ │ │ -557 TDS_CHARSET_UTF_16LE = 90, │ │ │ │ │ -558 TDS_CHARSET_UTF_32BE = 91, │ │ │ │ │ -559 TDS_CHARSET_UTF_32LE = 92, │ │ │ │ │ -560 TDS_CHARSET_UTF_7 = 93, │ │ │ │ │ -561 TDS_CHARSET_VISCII = 94, │ │ │ │ │ -562 TDS_NUM_CHARSETS = 95 │ │ │ │ │ -563}; │ │ │ │ │ -564 │ │ │ │ │ -___c_h_a_r_a_c_t_e_r___s_e_t___a_l_i_a_s │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:73 │ │ │ │ │ -_t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ -Information relevant to libiconv. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:618 │ │ │ │ │ +bool.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 2015 Frediano Ziglio │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef freetds_bool_h_ │ │ │ │ │ +21#define freetds_bool_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#ifndef __cplusplus │ │ │ │ │ +24 │ │ │ │ │ +25#ifdef HAVE_STDBOOL_H │ │ │ │ │ +26 │ │ │ │ │ +27#include │ │ │ │ │ +28 │ │ │ │ │ +29#else │ │ │ │ │ +30 │ │ │ │ │ +31#undef true │ │ │ │ │ +32#undef false │ │ │ │ │ +33#undef bool │ │ │ │ │ +34typedef unsigned char freetds_boolean_t; │ │ │ │ │ +35#define bool freetds_boolean_t │ │ │ │ │ +36#define true 1 │ │ │ │ │ +37#define false 0 │ │ │ │ │ +38 │ │ │ │ │ +39#endif │ │ │ │ │ +40 │ │ │ │ │ +41#endif │ │ │ │ │ +42 │ │ │ │ │ +43#endif /* freetds_bool_h_ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00440_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/tds.h Source File │ │ │ │ +FreeTDS API: include/freetds/proto.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,18 +74,18 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
tds.h
│ │ │ │ +
proto.h
│ │ │ │
│ │ │ │
│ │ │ │ -Go to the documentation of this file.
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │
3 * Copyright (C) 2010, 2011 Frediano Ziglio
│ │ │ │
4 *
│ │ │ │
5 * This library is free software; you can redistribute it and/or
│ │ │ │
6 * modify it under the terms of the GNU Library General Public
│ │ │ │
7 * License as published by the Free Software Foundation; either
│ │ │ │
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ @@ -97,1866 +97,554 @@ │ │ │ │
14 *
│ │ │ │
15 * You should have received a copy of the GNU Library General Public
│ │ │ │
16 * License along with this library; if not, write to the
│ │ │ │
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
18 * Boston, MA 02111-1307, USA.
│ │ │ │
19 */
│ │ │ │
20
│ │ │ │ -
21#ifndef _tds_h_
│ │ │ │ -
22#define _tds_h_
│ │ │ │ -
23
│ │ │ │ -
24#ifndef _freetds_config_h_
│ │ │ │ -
25#error should include config.h before
│ │ │ │ -
26#endif
│ │ │ │ -
27
│ │ │ │ -
28#include <stdarg.h>
│ │ │ │ -
29#include <stdio.h>
│ │ │ │ -
30#include <time.h>
│ │ │ │ -
31
│ │ │ │ -
32#ifdef HAVE_STDDEF_H
│ │ │ │ -
33#include <stddef.h>
│ │ │ │ -
34#endif
│ │ │ │ -
35
│ │ │ │ -
36#if HAVE_NETDB_H
│ │ │ │ -
37#include <netdb.h>
│ │ │ │ -
38#endif /* HAVE_NETDB_H */
│ │ │ │ -
39
│ │ │ │ -
40#if HAVE_NETINET_IN_H
│ │ │ │ -
41#include <netinet/in.h>
│ │ │ │ -
42#endif /* HAVE_NET_INET_IN_H */
│ │ │ │ -
43#if HAVE_ARPA_INET_H
│ │ │ │ -
44#include <arpa/inet.h>
│ │ │ │ -
45#endif /* HAVE_ARPA_INET_H */
│ │ │ │ -
46
│ │ │ │ -
47#if HAVE_SYS_SOCKET_H
│ │ │ │ -
48#include <sys/socket.h>
│ │ │ │ -
49#endif /* HAVE_SYS_SOCKET_H */
│ │ │ │ -
50
│ │ │ │ -
51/* forward declaration */
│ │ │ │ -
52typedef struct tdsiconvinfo TDSICONV;
│ │ │ │ -
53typedef struct tds_connection TDSCONNECTION;
│ │ │ │ -
54typedef struct tds_socket TDSSOCKET;
│ │ │ │ -
55typedef struct tds_column TDSCOLUMN;
│ │ │ │ -
56typedef struct tds_bcpinfo TDSBCPINFO;
│ │ │ │ -
57
│ │ │ │ -
58#include <freetds/version.h>
│ │ │ │ -
59#include <freetds/sysdep_private.h>
│ │ │ │ -
60#include <freetds/thread.h>
│ │ │ │ -
61#include <freetds/bool.h>
│ │ │ │ -
62#include <freetds/macros.h>
│ │ │ │ -
63#include <freetds/utils/string.h>
│ │ │ │ -
64#include <freetds/replacements.h>
│ │ │ │ -
65
│ │ │ │ -
66#include <freetds/pushvis.h>
│ │ │ │ -
67
│ │ │ │ -
68#ifdef __cplusplus
│ │ │ │ -
69extern "C"
│ │ │ │ -
70{
│ │ │ │ -
71#if 0
│ │ │ │ -
72}
│ │ │ │ -
73#endif
│ │ │ │ -
74#endif
│ │ │ │ -
75
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
82{
│ │ │ │ -
83 const char *freetds_version; /* release version of FreeTDS */
│ │ │ │ -
84 const char *sysconfdir; /* location of freetds.conf */
│ │ │ │ -
85 const char *last_update; /* latest software_version date among the modules */
│ │ │ │ -
86 const char *tdsver; /* TDS protocol version (4.2/4.6/5.0/7.0/7.1) 5.0 */
│ │ │ │ -
87 bool msdblib; /* for MS style dblib */
│ │ │ │ -
88 bool sybase_compat; /* enable increased Open Client binary compatibility */
│ │ │ │ -
89 bool threadsafe; /* compile for thread safety default=no */
│ │ │ │ -
90 bool libiconv; /* search for libiconv in DIR/include and DIR/lib */
│ │ │ │ -
91 bool iodbc; /* build odbc driver against iODBC in DIR */
│ │ │ │ -
92 bool unixodbc; /* build odbc driver against unixODBC in DIR */
│ │ │ │ -
93 bool openssl; /* build against OpenSSL */
│ │ │ │ -
94 bool gnutls; /* build against GnuTLS */
│ │ │ │ -
95 bool mars; /* MARS enabled */
│ │ │ │ -
96 bool sspi; /* SSPI enabled */
│ │ │ │ -
97 bool kerberos; /* Kerberos enabled */
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
99
│ │ │ │ -
115/*
│ │ │ │ -
116 * All references to data that touch the wire should use the following typedefs.
│ │ │ │ -
117 *
│ │ │ │ -
118 * If you have problems on 64-bit machines and the code is
│ │ │ │ -
119 * using a native datatype, please change it to use
│ │ │ │ -
120 * these. (In the TDS layer only, the API layers have their
│ │ │ │ -
121 * own typedefs which equate to these).
│ │ │ │ -
122 */
│ │ │ │ -
123typedef char TDS_CHAR; /* 8-bit char */
│ │ │ │ -
124typedef uint8_t TDS_UCHAR; /* 8-bit uchar */
│ │ │ │ -
125typedef uint8_t TDS_TINYINT; /* 8-bit unsigned */
│ │ │ │ -
126typedef int16_t TDS_SMALLINT; /* 16-bit int */
│ │ │ │ -
127typedef uint16_t TDS_USMALLINT; /* 16-bit unsigned */
│ │ │ │ -
128typedef int32_t TDS_INT; /* 32-bit int */
│ │ │ │ -
129typedef uint32_t TDS_UINT; /* 32-bit unsigned */
│ │ │ │ -
130typedef int64_t TDS_INT8; /* 64-bit integer */
│ │ │ │ -
131typedef uint64_t TDS_UINT8; /* 64-bit unsigned */
│ │ │ │ -
132typedef intptr_t TDS_INTPTR;
│ │ │ │ -
133typedef uintptr_t TDS_UINTPTR;
│ │ │ │ -
134typedef tds_sysdep_real32_type TDS_REAL; /* 32-bit real */
│ │ │ │ -
135typedef tds_sysdep_real64_type TDS_FLOAT; /* 64-bit real */
│ │ │ │ -
136
│ │ │ │ -
137#include <freetds/proto.h>
│ │ │ │ -
138
│ │ │ │ -
139#define TDS_INVALID_TYPE ((TDS_SERVER_TYPE) 0)
│ │ │ │ -
140
│ │ │ │ -
│ │ │ │ -
145typedef struct
│ │ │ │ -
146{
│ │ │ │ -
147 TDS_UINT8 time;
│ │ │ │ -
148 TDS_INT date;
│ │ │ │ -
149 TDS_SMALLINT offset;
│ │ │ │ -
150 TDS_USMALLINT time_prec:3;
│ │ │ │ -
151 TDS_USMALLINT _tds_reserved:10;
│ │ │ │ -
152 TDS_USMALLINT has_time:1;
│ │ │ │ -
153 TDS_USMALLINT has_date:1;
│ │ │ │ -
154 TDS_USMALLINT has_offset:1;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
156
│ │ │ │ -
│ │ │ │ -
158typedef struct tdsdaterec
│ │ │ │ -
159{
│ │ │ │ -
160 TDS_INT year;
│ │ │ │ -
161 TDS_INT quarter;
│ │ │ │ -
162 TDS_INT month;
│ │ │ │ -
163 TDS_INT day;
│ │ │ │ -
164 TDS_INT dayofyear;
│ │ │ │ -
165 TDS_INT weekday;
│ │ │ │ -
166 TDS_INT hour;
│ │ │ │ -
167 TDS_INT minute;
│ │ │ │ -
168 TDS_INT second;
│ │ │ │ - │ │ │ │ -
170 TDS_INT timezone;
│ │ │ │ - │ │ │ │ +
21/*
│ │ │ │ +
22 * This file contains defines and structures strictly related to TDS protocol
│ │ │ │ +
23 */
│ │ │ │ +
24
│ │ │ │ +
│ │ │ │ +
25typedef struct tdsnumeric
│ │ │ │ +
26{
│ │ │ │ +
27 unsigned char precision;
│ │ │ │ +
28 unsigned char scale;
│ │ │ │ +
29 unsigned char array[33];
│ │ │ │ + │ │ │ │
│ │ │ │ -
172
│ │ │ │ -
178extern const int tds_numeric_bytes_per_prec[];
│ │ │ │ -
179
│ │ │ │ -
180typedef int TDSRET;
│ │ │ │ -
181#define TDS_NO_MORE_RESULTS ((TDSRET)1)
│ │ │ │ -
182#define TDS_SUCCESS ((TDSRET)0)
│ │ │ │ -
183#define TDS_FAIL ((TDSRET)-1)
│ │ │ │ -
184#define TDS_CANCELLED ((TDSRET)-2)
│ │ │ │ -
185#define TDS_FAILED(rc) ((rc)<0)
│ │ │ │ -
186#define TDS_SUCCEED(rc) ((rc)>=0)
│ │ │ │ -
187#define TDS_PROPAGATE(rc) \
│ │ │ │ -
188 do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } while(0)
│ │ │ │ -
189
│ │ │ │ -
190#define TDS_INT_CONTINUE 1
│ │ │ │ -
191#define TDS_INT_CANCEL 2
│ │ │ │ -
192#define TDS_INT_TIMEOUT 3
│ │ │ │ -
193
│ │ │ │ -
194
│ │ │ │ -
195#define TDS_NO_COUNT -1
│ │ │ │ -
196
│ │ │ │ -
197#define TDS_ROW_RESULT 4040
│ │ │ │ -
198#define TDS_PARAM_RESULT 4042
│ │ │ │ -
199#define TDS_STATUS_RESULT 4043
│ │ │ │ -
200#define TDS_MSG_RESULT 4044
│ │ │ │ -
201#define TDS_COMPUTE_RESULT 4045
│ │ │ │ -
202#define TDS_CMD_DONE 4046
│ │ │ │ -
203#define TDS_CMD_SUCCEED 4047
│ │ │ │ -
204#define TDS_CMD_FAIL 4048
│ │ │ │ -
205#define TDS_ROWFMT_RESULT 4049
│ │ │ │ -
206#define TDS_COMPUTEFMT_RESULT 4050
│ │ │ │ -
207#define TDS_DESCRIBE_RESULT 4051
│ │ │ │ -
208#define TDS_DONE_RESULT 4052
│ │ │ │ -
209#define TDS_DONEPROC_RESULT 4053
│ │ │ │ -
210#define TDS_DONEINPROC_RESULT 4054
│ │ │ │ -
211#define TDS_OTHERS_RESULT 4055
│ │ │ │ -
212
│ │ │ │ -
213enum tds_token_results
│ │ │ │ -
214{
│ │ │ │ -
215 TDS_TOKEN_RES_OTHERS,
│ │ │ │ -
216 TDS_TOKEN_RES_ROWFMT,
│ │ │ │ -
217 TDS_TOKEN_RES_COMPUTEFMT,
│ │ │ │ -
218 TDS_TOKEN_RES_PARAMFMT,
│ │ │ │ -
219 TDS_TOKEN_RES_DONE,
│ │ │ │ -
220 TDS_TOKEN_RES_ROW,
│ │ │ │ -
221 TDS_TOKEN_RES_COMPUTE,
│ │ │ │ -
222 TDS_TOKEN_RES_PROC,
│ │ │ │ -
223 TDS_TOKEN_RES_MSG,
│ │ │ │ -
224 TDS_TOKEN_RES_ENV,
│ │ │ │ -
225};
│ │ │ │ -
226
│ │ │ │ -
227#define TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))
│ │ │ │ -
228
│ │ │ │ -
229enum tds_token_flags
│ │ │ │ -
230{
│ │ │ │ -
231 TDS_HANDLE_ALL = 0,
│ │ │ │ -
232 TDS_TOKEN_FLAG(OTHERS),
│ │ │ │ -
233 TDS_TOKEN_FLAG(ROWFMT),
│ │ │ │ -
234 TDS_TOKEN_FLAG(COMPUTEFMT),
│ │ │ │ -
235 TDS_TOKEN_FLAG(PARAMFMT),
│ │ │ │ -
236 TDS_TOKEN_FLAG(DONE),
│ │ │ │ -
237 TDS_TOKEN_FLAG(ROW),
│ │ │ │ -
238 TDS_TOKEN_FLAG(COMPUTE),
│ │ │ │ -
239 TDS_TOKEN_FLAG(PROC),
│ │ │ │ -
240 TDS_TOKEN_FLAG(MSG),
│ │ │ │ -
241 TDS_TOKEN_FLAG(ENV),
│ │ │ │ -
242 TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC,
│ │ │ │ -
243 TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS
│ │ │ │ -
244};
│ │ │ │ -
245
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
250{
│ │ │ │ -
251 TDS_DONE_FINAL = 0x00
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
258 , TDS_DONE_EVENT = 0x40 /* part of an event notification. */
│ │ │ │ -
259 , TDS_DONE_SRVERROR = 0x100
│ │ │ │ -
261 /* after the above flags, a TDS_DONE packet has a field describing the state of the transaction */
│ │ │ │ -
262 , TDS_DONE_NO_TRAN = 0 /* No transaction in effect */
│ │ │ │ -
263 , TDS_DONE_TRAN_SUCCEED = 1 /* Transaction completed successfully */
│ │ │ │ -
264 , TDS_DONE_TRAN_PROGRESS= 2 /* Transaction in progress */
│ │ │ │ -
265 , TDS_DONE_STMT_ABORT = 3 /* A statement aborted */
│ │ │ │ -
266 , TDS_DONE_TRAN_ABORT = 4 /* Transaction aborted */
│ │ │ │ -
267};
│ │ │ │ -
│ │ │ │ -
268
│ │ │ │ +
31
│ │ │ │ +
│ │ │ │ +
32typedef struct tdsoldmoney
│ │ │ │ +
33{
│ │ │ │ +
34 TDS_INT mnyhigh;
│ │ │ │ +
35 TDS_UINT mnylow;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
37
│ │ │ │ +
│ │ │ │ +
38typedef union tdsmoney
│ │ │ │ +
39{
│ │ │ │ + │ │ │ │ +
41 TDS_INT8 mny;
│ │ │ │ +
42} TDS_MONEY;
│ │ │ │ +
│ │ │ │ +
43
│ │ │ │ +
│ │ │ │ +
44typedef struct tdsmoney4
│ │ │ │ +
45{
│ │ │ │ +
46 TDS_INT mny4;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
48
│ │ │ │ +
│ │ │ │ +
49typedef struct tdsdatetime
│ │ │ │ +
50{
│ │ │ │ +
51 TDS_INT dtdays;
│ │ │ │ +
52 TDS_INT dttime;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
54
│ │ │ │ +
│ │ │ │ +
55typedef struct tdsdatetime4
│ │ │ │ +
56{
│ │ │ │ +
57 TDS_USMALLINT days;
│ │ │ │ +
58 TDS_USMALLINT minutes;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
60
│ │ │ │ +
│ │ │ │ +
61typedef struct tdsunique
│ │ │ │ +
62{
│ │ │ │ +
63 TDS_UINT Data1;
│ │ │ │ +
64 TDS_USMALLINT Data2;
│ │ │ │ +
65 TDS_USMALLINT Data3;
│ │ │ │ +
66 TDS_UCHAR Data4[8];
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
68
│ │ │ │ +
69typedef TDS_INT TDS_DATE;
│ │ │ │ +
70typedef TDS_INT TDS_TIME;
│ │ │ │ +
71
│ │ │ │ +
72typedef TDS_UINT8 TDS_BIGTIME;
│ │ │ │ +
73typedef TDS_UINT8 TDS_BIGDATETIME;
│ │ │ │ +
74
│ │ │ │ +
75#define TDS5_PARAMFMT2_TOKEN 32 /* 0x20 */
│ │ │ │ +
76#define TDS_LANGUAGE_TOKEN 33 /* 0x21 TDS 5.0 only */
│ │ │ │ +
77#define TDS_ORDERBY2_TOKEN 34 /* 0x22 */
│ │ │ │ +
78#define TDS_ROWFMT2_TOKEN 97 /* 0x61 TDS 5.0 only */
│ │ │ │ +
79#define TDS_MSG_TOKEN 101 /* 0x65 TDS 5.0 only */
│ │ │ │ +
80#define TDS_LOGOUT_TOKEN 113 /* 0x71 TDS 5.0 only? ct_close() */
│ │ │ │ +
81#define TDS_RETURNSTATUS_TOKEN 121 /* 0x79 */
│ │ │ │ +
82#define TDS_PROCID_TOKEN 124 /* 0x7C TDS 4.2 only - TDS_PROCID */
│ │ │ │ +
83#define TDS7_RESULT_TOKEN 129 /* 0x81 TDS 7.0 only */
│ │ │ │ +
84#define TDS7_COMPUTE_RESULT_TOKEN 136 /* 0x88 TDS 7.0 only */
│ │ │ │ +
85#define TDS_COLNAME_TOKEN 160 /* 0xA0 TDS 4.2 only */
│ │ │ │ +
86#define TDS_COLFMT_TOKEN 161 /* 0xA1 TDS 4.2 only - TDS_COLFMT */
│ │ │ │ +
87#define TDS_DYNAMIC2_TOKEN 163 /* 0xA3 */
│ │ │ │ +
88#define TDS_TABNAME_TOKEN 164 /* 0xA4 */
│ │ │ │ +
89#define TDS_COLINFO_TOKEN 165 /* 0xA5 */
│ │ │ │ +
90#define TDS_OPTIONCMD_TOKEN 166 /* 0xA6 */
│ │ │ │ +
91#define TDS_COMPUTE_NAMES_TOKEN 167 /* 0xA7 */
│ │ │ │ +
92#define TDS_COMPUTE_RESULT_TOKEN 168 /* 0xA8 */
│ │ │ │ +
93#define TDS_ORDERBY_TOKEN 169 /* 0xA9 TDS_ORDER */
│ │ │ │ +
94#define TDS_ERROR_TOKEN 170 /* 0xAA */
│ │ │ │ +
95#define TDS_INFO_TOKEN 171 /* 0xAB */
│ │ │ │ +
96#define TDS_PARAM_TOKEN 172 /* 0xAC RETURNVALUE? */
│ │ │ │ +
97#define TDS_LOGINACK_TOKEN 173 /* 0xAD */
│ │ │ │ +
98#define TDS_CONTROL_FEATUREEXTACK_TOKEN \
│ │ │ │ +
99 174 /* 0xAE TDS_CONTROL/TDS_FEATUREEXTACK */
│ │ │ │ +
100#define TDS_ROW_TOKEN 209 /* 0xD1 */
│ │ │ │ +
101#define TDS_NBC_ROW_TOKEN 210 /* 0xD2 as of TDS 7.3.B */
│ │ │ │ +
102#define TDS_CMP_ROW_TOKEN 211 /* 0xD3 */
│ │ │ │ +
103#define TDS5_PARAMS_TOKEN 215 /* 0xD7 TDS 5.0 only */
│ │ │ │ +
104#define TDS_CAPABILITY_TOKEN 226 /* 0xE2 */
│ │ │ │ +
105#define TDS_ENVCHANGE_TOKEN 227 /* 0xE3 */
│ │ │ │ +
106#define TDS_SESSIONSTATE_TOKEN 228 /* 0xE4 TDS 7.4 */
│ │ │ │ +
107#define TDS_EED_TOKEN 229 /* 0xE5 */
│ │ │ │ +
108#define TDS_DBRPC_TOKEN 230 /* 0xE6 TDS 5.0 only */
│ │ │ │ +
109#define TDS5_DYNAMIC_TOKEN 231 /* 0xE7 TDS 5.0 only */
│ │ │ │ +
110#define TDS5_PARAMFMT_TOKEN 236 /* 0xEC TDS 5.0 only */
│ │ │ │ +
111#define TDS_AUTH_TOKEN 237 /* 0xED TDS 7.0 only */
│ │ │ │ +
112#define TDS_RESULT_TOKEN 238 /* 0xEE */
│ │ │ │ +
113#define TDS_DONE_TOKEN 253 /* 0xFD TDS_DONE */
│ │ │ │ +
114#define TDS_DONEPROC_TOKEN 254 /* 0xFE TDS_DONEPROC */
│ │ │ │ +
115#define TDS_DONEINPROC_TOKEN 255 /* 0xFF TDS_DONEINPROC */
│ │ │ │ +
116
│ │ │ │ +
117/* CURSOR support: TDS 5.0 only*/
│ │ │ │ +
118#define TDS_CURCLOSE_TOKEN 128 /* 0x80 TDS 5.0 only */
│ │ │ │ +
119#define TDS_CURDELETE_TOKEN 129 /* 0x81 TDS 5.0 only */
│ │ │ │ +
120#define TDS_CURFETCH_TOKEN 130 /* 0x82 TDS 5.0 only */
│ │ │ │ +
121#define TDS_CURINFO_TOKEN 131 /* 0x83 TDS 5.0 only */
│ │ │ │ +
122#define TDS_CUROPEN_TOKEN 132 /* 0x84 TDS 5.0 only */
│ │ │ │ +
123#define TDS_CURDECLARE_TOKEN 134 /* 0x86 TDS 5.0 only */
│ │ │ │ +
124
│ │ │ │ +
125
│ │ │ │ +
126/* environment type field */
│ │ │ │ +
127#define TDS_ENV_DATABASE 1
│ │ │ │ +
128#define TDS_ENV_LANG 2
│ │ │ │ +
129#define TDS_ENV_CHARSET 3
│ │ │ │ +
130#define TDS_ENV_PACKSIZE 4
│ │ │ │ +
131#define TDS_ENV_LCID 5
│ │ │ │ +
132#define TDS_ENV_SQLCOLLATION 7
│ │ │ │ +
133#define TDS_ENV_BEGINTRANS 8
│ │ │ │ +
134#define TDS_ENV_COMMITTRANS 9
│ │ │ │ +
135#define TDS_ENV_ROLLBACKTRANS 10
│ │ │ │ +
136#define TDS_ENV_ROUTING 20
│ │ │ │ +
137
│ │ │ │ +
138/* Microsoft internal stored procedure id's */
│ │ │ │ +
139#define TDS_SP_CURSOR 1
│ │ │ │ +
140#define TDS_SP_CURSOROPEN 2
│ │ │ │ +
141#define TDS_SP_CURSORPREPARE 3
│ │ │ │ +
142#define TDS_SP_CURSOREXECUTE 4
│ │ │ │ +
143#define TDS_SP_CURSORPREPEXEC 5
│ │ │ │ +
144#define TDS_SP_CURSORUNPREPARE 6
│ │ │ │ +
145#define TDS_SP_CURSORFETCH 7
│ │ │ │ +
146#define TDS_SP_CURSOROPTION 8
│ │ │ │ +
147#define TDS_SP_CURSORCLOSE 9
│ │ │ │ +
148#define TDS_SP_EXECUTESQL 10
│ │ │ │ +
149#define TDS_SP_PREPARE 11
│ │ │ │ +
150#define TDS_SP_EXECUTE 12
│ │ │ │ +
151#define TDS_SP_PREPEXEC 13
│ │ │ │ +
152#define TDS_SP_PREPEXECRPC 14
│ │ │ │ +
153#define TDS_SP_UNPREPARE 15
│ │ │ │ +
154
│ │ │ │ +
155/*
│ │ │ │ +
156 * <rant> Sybase does an awful job of this stuff, non null ints of size 1 2
│ │ │ │ +
157 * and 4 have there own codes but nullable ints are lumped into INTN
│ │ │ │ +
158 * sheesh! </rant>
│ │ │ │ +
159 */
│ │ │ │ +
160typedef enum
│ │ │ │ +
161{
│ │ │ │ +
162 SYBCHAR = 47, /* 0x2F */
│ │ │ │ +
163 SYBVARCHAR = 39, /* 0x27 */
│ │ │ │ +
164 SYBINTN = 38, /* 0x26 */
│ │ │ │ +
165 SYBINT1 = 48, /* 0x30 */
│ │ │ │ +
166 SYBINT2 = 52, /* 0x34 */
│ │ │ │ +
167 SYBINT4 = 56, /* 0x38 */
│ │ │ │ +
168 SYBFLT8 = 62, /* 0x3E */
│ │ │ │ +
169 SYBDATETIME = 61, /* 0x3D */
│ │ │ │ +
170 SYBBIT = 50, /* 0x32 */
│ │ │ │ +
171 SYBTEXT = 35, /* 0x23 */
│ │ │ │ +
172 SYBNTEXT = 99, /* 0x63 */
│ │ │ │ +
173 SYBIMAGE = 34, /* 0x22 */
│ │ │ │ +
174 SYBMONEY4 = 122, /* 0x7A */
│ │ │ │ +
175 SYBMONEY = 60, /* 0x3C */
│ │ │ │ +
176 SYBDATETIME4 = 58, /* 0x3A */
│ │ │ │ +
177 SYBREAL = 59, /* 0x3B */
│ │ │ │ +
178 SYBBINARY = 45, /* 0x2D */
│ │ │ │ +
179 SYBVOID = 31, /* 0x1F */
│ │ │ │ +
180 SYBVARBINARY = 37, /* 0x25 */
│ │ │ │ +
181 SYBBITN = 104, /* 0x68 */
│ │ │ │ +
182 SYBNUMERIC = 108, /* 0x6C */
│ │ │ │ +
183 SYBDECIMAL = 106, /* 0x6A */
│ │ │ │ +
184 SYBFLTN = 109, /* 0x6D */
│ │ │ │ +
185 SYBMONEYN = 110, /* 0x6E */
│ │ │ │ +
186 SYBDATETIMN = 111, /* 0x6F */
│ │ │ │ +
187
│ │ │ │ +
188/*
│ │ │ │ +
189 * MS only types
│ │ │ │ +
190 */
│ │ │ │ +
191 SYBNVARCHAR = 103, /* 0x67 */
│ │ │ │ +
192 SYBINT8 = 127, /* 0x7F */
│ │ │ │ +
193 XSYBCHAR = 175, /* 0xAF */
│ │ │ │ +
194 XSYBVARCHAR = 167, /* 0xA7 */
│ │ │ │ +
195 XSYBNVARCHAR = 231, /* 0xE7 */
│ │ │ │ +
196 XSYBNCHAR = 239, /* 0xEF */
│ │ │ │ +
197 XSYBVARBINARY = 165, /* 0xA5 */
│ │ │ │ +
198 XSYBBINARY = 173, /* 0xAD */
│ │ │ │ +
199 SYBUNIQUE = 36, /* 0x24 */
│ │ │ │ +
200 SYBVARIANT = 98, /* 0x62 */
│ │ │ │ +
201 SYBMSUDT = 240, /* 0xF0 */
│ │ │ │ +
202 SYBMSXML = 241, /* 0xF1 */
│ │ │ │ +
203 SYBMSDATE = 40, /* 0x28 */
│ │ │ │ +
204 SYBMSTIME = 41, /* 0x29 */
│ │ │ │ +
205 SYBMSDATETIME2 = 42, /* 0x2a */
│ │ │ │ +
206 SYBMSDATETIMEOFFSET = 43,/* 0x2b */
│ │ │ │ +
207
│ │ │ │ +
208/*
│ │ │ │ +
209 * Sybase only types
│ │ │ │ +
210 */
│ │ │ │ +
211 SYBLONGBINARY = 225, /* 0xE1 */
│ │ │ │ +
212 SYBUINT1 = 64, /* 0x40 */
│ │ │ │ +
213 SYBUINT2 = 65, /* 0x41 */
│ │ │ │ +
214 SYBUINT4 = 66, /* 0x42 */
│ │ │ │ +
215 SYBUINT8 = 67, /* 0x43 */
│ │ │ │ +
216 SYBBLOB = 36, /* 0x24 */
│ │ │ │ +
217 SYBBOUNDARY = 104, /* 0x68 */
│ │ │ │ +
218 SYBDATE = 49, /* 0x31 */
│ │ │ │ +
219 SYBDATEN = 123, /* 0x7B */
│ │ │ │ +
220 SYB5INT8 = 191, /* 0xBF */
│ │ │ │ +
221 SYBINTERVAL = 46, /* 0x2E */
│ │ │ │ +
222 SYBLONGCHAR = 175, /* 0xAF */
│ │ │ │ +
223 SYBSENSITIVITY = 103, /* 0x67 */
│ │ │ │ +
224 SYBSINT1 = 176, /* 0xB0 */
│ │ │ │ +
225 SYBTIME = 51, /* 0x33 */
│ │ │ │ +
226 SYBTIMEN = 147, /* 0x93 */
│ │ │ │ +
227 SYBUINTN = 68, /* 0x44 */
│ │ │ │ +
228 SYBUNITEXT = 174, /* 0xAE */
│ │ │ │ +
229 SYBXML = 163, /* 0xA3 */
│ │ │ │ +
230 SYB5BIGDATETIME = 187, /* 0xBB */
│ │ │ │ +
231 SYB5BIGTIME = 188, /* 0xBC */
│ │ │ │ +
232
│ │ │ │ +
233} TDS_SERVER_TYPE;
│ │ │ │ +
234
│ │ │ │ +
235typedef enum
│ │ │ │ +
236{
│ │ │ │ +
237 USER_UNICHAR_TYPE = 34, /* 0x22 */
│ │ │ │ +
238 USER_UNIVARCHAR_TYPE = 35 /* 0x23 */
│ │ │ │ +
239} TDS_USER_TYPE;
│ │ │ │ +
240
│ │ │ │ +
241/* compute operator */
│ │ │ │ +
242#define SYBAOPCNT 75 /* 0x4B */
│ │ │ │ +
243#define SYBAOPCNTU 76 /* 0x4C, obsolete */
│ │ │ │ +
244#define SYBAOPSUM 77 /* 0x4D */
│ │ │ │ +
245#define SYBAOPSUMU 78 /* 0x4E, obsolete */
│ │ │ │ +
246#define SYBAOPAVG 79 /* 0x4F */
│ │ │ │ +
247#define SYBAOPAVGU 80 /* 0x50, obsolete */
│ │ │ │ +
248#define SYBAOPMIN 81 /* 0x51 */
│ │ │ │ +
249#define SYBAOPMAX 82 /* 0x52 */
│ │ │ │ +
250
│ │ │ │ +
251/* mssql2k compute operator */
│ │ │ │ +
252#define SYBAOPCNT_BIG 9 /* 0x09 */
│ │ │ │ +
253#define SYBAOPSTDEV 48 /* 0x30 */
│ │ │ │ +
254#define SYBAOPSTDEVP 49 /* 0x31 */
│ │ │ │ +
255#define SYBAOPVAR 50 /* 0x32 */
│ │ │ │ +
256#define SYBAOPVARP 51 /* 0x33 */
│ │ │ │ +
257#define SYBAOPCHECKSUM_AGG 114 /* 0x72 */
│ │ │ │ +
258
│ │ │ │ +
262typedef enum
│ │ │ │ +
263{
│ │ │ │ +
264 TDS_OPT_SET = 1
│ │ │ │ +
265 , TDS_OPT_DEFAULT = 2
│ │ │ │ +
266 , TDS_OPT_LIST = 3
│ │ │ │ +
267 , TDS_OPT_INFO = 4
│ │ │ │ +
268} TDS_OPTION_CMD;
│ │ │ │
269
│ │ │ │ -
270/*
│ │ │ │ -
271 * TDSERRNO is emitted by libtds to the client library's error handler
│ │ │ │ -
272 * (which may in turn call the client's error handler).
│ │ │ │ -
273 * These match the db-lib msgno, because the same values have the same meaning
│ │ │ │ -
274 * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo).
│ │ │ │ -
275 */
│ │ │ │ -
276typedef enum { TDSEOK = TDS_SUCCESS,
│ │ │ │ -
277 TDSEVERDOWN = 100,
│ │ │ │ -
278 TDSEINPROGRESS,
│ │ │ │ -
279 TDSEICONVIU = 2400,
│ │ │ │ -
280 TDSEICONVAVAIL = 2401,
│ │ │ │ -
281 TDSEICONVO = 2402,
│ │ │ │ -
282 TDSEICONVI = 2403,
│ │ │ │ -
283 TDSEICONV2BIG = 2404,
│ │ │ │ -
284 TDSEPORTINSTANCE = 2500,
│ │ │ │ -
285 TDSESYNC = 20001,
│ │ │ │ -
286 TDSEFCON = 20002,
│ │ │ │ -
287 TDSETIME = 20003,
│ │ │ │ -
288 TDSEREAD = 20004,
│ │ │ │ -
289 TDSEWRIT = 20006,
│ │ │ │ -
290 TDSESOCK = 20008,
│ │ │ │ -
291 TDSECONN = 20009,
│ │ │ │ -
292 TDSEMEM = 20010,
│ │ │ │ -
293 TDSEINTF = 20012, /* Server name not found in interface file */
│ │ │ │ -
294 TDSEUHST = 20013, /* Unknown host machine name. */
│ │ │ │ -
295 TDSEPWD = 20014,
│ │ │ │ -
296 TDSESEOF = 20017,
│ │ │ │ -
297 TDSERPND = 20019,
│ │ │ │ -
298 TDSEBTOK = 20020,
│ │ │ │ -
299 TDSEOOB = 20022,
│ │ │ │ -
300 TDSECLOS = 20056,
│ │ │ │ -
301 TDSEUSCT = 20058,
│ │ │ │ -
302 TDSEUTDS = 20146,
│ │ │ │ -
303 TDSEEUNR = 20185,
│ │ │ │ -
304 TDSECAP = 20203,
│ │ │ │ -
305 TDSENEG = 20210,
│ │ │ │ -
306 TDSEUMSG = 20212,
│ │ │ │ -
307 TDSECAPTYP = 20213,
│ │ │ │ -
308 TDSECONF = 20214,
│ │ │ │ -
309 TDSEBPROBADTYP = 20250,
│ │ │ │ -
310 TDSECLOSEIN = 20292
│ │ │ │ -
311} TDSERRNO;
│ │ │ │ -
312
│ │ │ │ -
313
│ │ │ │ -
314enum {
│ │ │ │ -
315 TDS_CUR_ISTAT_UNUSED = 0x00,
│ │ │ │ -
316 TDS_CUR_ISTAT_DECLARED = 0x01,
│ │ │ │ -
317 TDS_CUR_ISTAT_OPEN = 0x02,
│ │ │ │ -
318 TDS_CUR_ISTAT_CLOSED = 0x04,
│ │ │ │ -
319 TDS_CUR_ISTAT_RDONLY = 0x08,
│ │ │ │ -
320 TDS_CUR_ISTAT_UPDATABLE = 0x10,
│ │ │ │ -
321 TDS_CUR_ISTAT_ROWCNT = 0x20,
│ │ │ │ -
322 TDS_CUR_ISTAT_DEALLOC = 0x40
│ │ │ │ -
323};
│ │ │ │ -
324
│ │ │ │ -
325/* string types */
│ │ │ │ -
326#define TDS_NULLTERM -9
│ │ │ │ -
327
│ │ │ │ -
328
│ │ │ │ -
│ │ │ │ -
329typedef union tds_option_arg
│ │ │ │ -
330{
│ │ │ │ -
331 TDS_TINYINT ti;
│ │ │ │ -
332 TDS_INT i;
│ │ │ │ -
333 TDS_CHAR *c;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
335
│ │ │ │ -
336
│ │ │ │ -
337typedef enum tds_encryption_level {
│ │ │ │ -
338 TDS_ENCRYPTION_DEFAULT,
│ │ │ │ -
339 TDS_ENCRYPTION_OFF,
│ │ │ │ -
340 TDS_ENCRYPTION_REQUEST,
│ │ │ │ -
341 TDS_ENCRYPTION_REQUIRE
│ │ │ │ -
342} TDS_ENCRYPTION_LEVEL;
│ │ │ │ -
343
│ │ │ │ -
344/*
│ │ │ │ -
345 * TODO use system macros for optimization
│ │ │ │ -
346 * See mcrypt for reference and linux kernel source for optimization
│ │ │ │ -
347 * check if unaligned access and use fast write/read when implemented
│ │ │ │ -
348 */
│ │ │ │ -
349#define TDS_BYTE_SWAP16(value) \
│ │ │ │ -
350 (((((uint16_t)value)<<8) & 0xFF00u) | \
│ │ │ │ -
351 ((((uint16_t)value)>>8) & 0x00FFu))
│ │ │ │ -
352
│ │ │ │ -
353#define TDS_BYTE_SWAP32(value) \
│ │ │ │ -
354 (((((uint32_t)value)<<24) & 0xFF000000u)| \
│ │ │ │ -
355 ((((uint32_t)value)<< 8) & 0x00FF0000u)| \
│ │ │ │ -
356 ((((uint32_t)value)>> 8) & 0x0000FF00u)| \
│ │ │ │ -
357 ((((uint32_t)value)>>24) & 0x000000FFu))
│ │ │ │ -
358
│ │ │ │ -
359#define is_end_token(x) ((x) >= TDS_DONE_TOKEN && (x) <= TDS_DONEINPROC_TOKEN)
│ │ │ │ -
360
│ │ │ │ -
361enum {
│ │ │ │ -
362 TDS_TYPEFLAG_INVALID = 0,
│ │ │ │ -
363 TDS_TYPEFLAG_NULLABLE = 1,
│ │ │ │ -
364 TDS_TYPEFLAG_FIXED = 2,
│ │ │ │ -
365 TDS_TYPEFLAG_VARIABLE = 4,
│ │ │ │ -
366 TDS_TYPEFLAG_COLLATE = 8,
│ │ │ │ -
367 TDS_TYPEFLAG_ASCII = 16,
│ │ │ │ -
368 TDS_TYPEFLAG_UNICODE = 32,
│ │ │ │ -
369 TDS_TYPEFLAG_BINARY = 64,
│ │ │ │ -
370 TDS_TYPEFLAG_DATETIME = 128,
│ │ │ │ -
371 TDS_TYPEFLAG_NUMERIC = 256,
│ │ │ │ -
372 TDS_TYPEFLAG_VARIANT = 512,
│ │ │ │ -
373};
│ │ │ │ -
374
│ │ │ │ -
375extern const uint16_t tds_type_flags_ms[256];
│ │ │ │ -
376#if 0
│ │ │ │ -
377extern const uint16_t tds_type_flags_syb[256];
│ │ │ │ -
378extern const char *const tds_type_names[256];
│ │ │ │ -
379#endif
│ │ │ │ -
380
│ │ │ │ -
381#define is_fixed_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
│ │ │ │ -
382#define is_nullable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
│ │ │ │ -
383#define is_variable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)
│ │ │ │ -
384#define is_variant_inner_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIANT) != 0)
│ │ │ │ -
385
│ │ │ │ +
270typedef enum
│ │ │ │ +
271{
│ │ │ │ +
272 TDS_OPT_DATEFIRST = 1 /* 0x01 */
│ │ │ │ +
273 , TDS_OPT_TEXTSIZE = 2 /* 0x02 */
│ │ │ │ +
274 , TDS_OPT_STAT_TIME = 3 /* 0x03 */
│ │ │ │ +
275 , TDS_OPT_STAT_IO = 4 /* 0x04 */
│ │ │ │ +
276 , TDS_OPT_ROWCOUNT = 5 /* 0x05 */
│ │ │ │ +
277 , TDS_OPT_NATLANG = 6 /* 0x06 */
│ │ │ │ +
278 , TDS_OPT_DATEFORMAT = 7 /* 0x07 */
│ │ │ │ +
279 , TDS_OPT_ISOLATION = 8 /* 0x08 */
│ │ │ │ +
280 , TDS_OPT_AUTHON = 9 /* 0x09 */
│ │ │ │ +
281 , TDS_OPT_CHARSET = 10 /* 0x0a */
│ │ │ │ +
282 , TDS_OPT_SHOWPLAN = 13 /* 0x0d */
│ │ │ │ +
283 , TDS_OPT_NOEXEC = 14 /* 0x0e */
│ │ │ │ +
284 , TDS_OPT_ARITHIGNOREON = 15 /* 0x0f */
│ │ │ │ +
285 , TDS_OPT_ARITHABORTON = 17 /* 0x11 */
│ │ │ │ +
286 , TDS_OPT_PARSEONLY = 18 /* 0x12 */
│ │ │ │ +
287 , TDS_OPT_GETDATA = 20 /* 0x14 */
│ │ │ │ +
288 , TDS_OPT_NOCOUNT = 21 /* 0x15 */
│ │ │ │ +
289 , TDS_OPT_FORCEPLAN = 23 /* 0x17 */
│ │ │ │ +
290 , TDS_OPT_FORMATONLY = 24 /* 0x18 */
│ │ │ │ +
291 , TDS_OPT_CHAINXACTS = 25 /* 0x19 */
│ │ │ │ +
292 , TDS_OPT_CURCLOSEONXACT = 26 /* 0x1a */
│ │ │ │ +
293 , TDS_OPT_FIPSFLAG = 27 /* 0x1b */
│ │ │ │ +
294 , TDS_OPT_RESTREES = 28 /* 0x1c */
│ │ │ │ +
295 , TDS_OPT_IDENTITYON = 29 /* 0x1d */
│ │ │ │ +
296 , TDS_OPT_CURREAD = 30 /* 0x1e */
│ │ │ │ +
297 , TDS_OPT_CURWRITE = 31 /* 0x1f */
│ │ │ │ +
298 , TDS_OPT_IDENTITYOFF = 32 /* 0x20 */
│ │ │ │ +
299 , TDS_OPT_AUTHOFF = 33 /* 0x21 */
│ │ │ │ +
300 , TDS_OPT_ANSINULL = 34 /* 0x22 */
│ │ │ │ +
301 , TDS_OPT_QUOTED_IDENT = 35 /* 0x23 */
│ │ │ │ +
302 , TDS_OPT_ARITHIGNOREOFF = 36 /* 0x24 */
│ │ │ │ +
303 , TDS_OPT_ARITHABORTOFF = 37 /* 0x25 */
│ │ │ │ +
304 , TDS_OPT_TRUNCABORT = 38 /* 0x26 */
│ │ │ │ +
305} TDS_OPTION;
│ │ │ │ +
306
│ │ │ │ +
307enum {
│ │ │ │ +
308 TDS_OPT_ARITHOVERFLOW = 0x01,
│ │ │ │ +
309 TDS_OPT_NUMERICTRUNC = 0x02
│ │ │ │ +
310};
│ │ │ │ +
311
│ │ │ │ +
312enum TDS_OPT_DATEFIRST_CHOICE
│ │ │ │ +
313{
│ │ │ │ +
314 TDS_OPT_MONDAY = 1, TDS_OPT_TUESDAY = 2, TDS_OPT_WEDNESDAY = 3, TDS_OPT_THURSDAY = 4, TDS_OPT_FRIDAY = 5, TDS_OPT_SATURDAY =
│ │ │ │ +
315 6, TDS_OPT_SUNDAY = 7
│ │ │ │ +
316};
│ │ │ │ +
317
│ │ │ │ +
318enum TDS_OPT_DATEFORMAT_CHOICE
│ │ │ │ +
319{
│ │ │ │ +
320 TDS_OPT_FMTMDY = 1, TDS_OPT_FMTDMY = 2, TDS_OPT_FMTYMD = 3, TDS_OPT_FMTYDM = 4, TDS_OPT_FMTMYD = 5, TDS_OPT_FMTDYM = 6
│ │ │ │ +
321};
│ │ │ │ +
322enum TDS_OPT_ISOLATION_CHOICE
│ │ │ │ +
323{
│ │ │ │ +
324 TDS_OPT_LEVEL0 = 0,
│ │ │ │ +
325 TDS_OPT_LEVEL1 = 1,
│ │ │ │ +
326 TDS_OPT_LEVEL2 = 2,
│ │ │ │ +
327 TDS_OPT_LEVEL3 = 3
│ │ │ │ +
328};
│ │ │ │ +
329
│ │ │ │ +
330
│ │ │ │ +
331typedef enum tds_packet_type
│ │ │ │ +
332{
│ │ │ │ +
333 TDS_QUERY = 1,
│ │ │ │ +
334 TDS_LOGIN = 2,
│ │ │ │ +
335 TDS_RPC = 3,
│ │ │ │ +
336 TDS_REPLY = 4,
│ │ │ │ +
337 TDS_CANCEL = 6,
│ │ │ │ +
338 TDS_BULK = 7,
│ │ │ │ +
339 TDS7_TRANS = 14, /* transaction management */
│ │ │ │ +
340 TDS_NORMAL = 15,
│ │ │ │ +
341 TDS7_LOGIN = 16,
│ │ │ │ +
342 TDS7_AUTH = 17,
│ │ │ │ +
343 TDS71_PRELOGIN = 18,
│ │ │ │ +
344 TDS72_SMP = 0x53
│ │ │ │ +
345} TDS_PACKET_TYPE;
│ │ │ │ +
346
│ │ │ │ +
│ │ │ │ +
350typedef struct
│ │ │ │ +
351{
│ │ │ │ +
352 TDS_USMALLINT locale_id; /* master..syslanguages.lcid */
│ │ │ │ +
353 TDS_USMALLINT flags;
│ │ │ │ +
354 TDS_UCHAR charset_id; /* or zero */
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
356
│ │ │ │ +
│ │ │ │ +
360typedef struct
│ │ │ │ +
361{
│ │ │ │ +
362 TDS_UCHAR signature; /* TDS72_SMP */
│ │ │ │ +
363 TDS_UCHAR type;
│ │ │ │ +
364 TDS_USMALLINT sid;
│ │ │ │ +
365 TDS_UINT size;
│ │ │ │ +
366 TDS_UINT seq;
│ │ │ │ +
367 TDS_UINT wnd;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
369
│ │ │ │ +
370enum {
│ │ │ │ +
371 TDS_SMP_SYN = 1,
│ │ │ │ +
372 TDS_SMP_ACK = 2,
│ │ │ │ +
373 TDS_SMP_FIN = 4,
│ │ │ │ +
374 TDS_SMP_DATA = 8,
│ │ │ │ +
375};
│ │ │ │ +
376
│ │ │ │ +
377/* SF stands for "sort flag" */
│ │ │ │ +
378#define TDS_SF_BIN (TDS_USMALLINT) 0x100
│ │ │ │ +
379#define TDS_SF_WIDTH_INSENSITIVE (TDS_USMALLINT) 0x080
│ │ │ │ +
380#define TDS_SF_KATATYPE_INSENSITIVE (TDS_USMALLINT) 0x040
│ │ │ │ +
381#define TDS_SF_ACCENT_SENSITIVE (TDS_USMALLINT) 0x020
│ │ │ │ +
382#define TDS_SF_CASE_INSENSITIVE (TDS_USMALLINT) 0x010
│ │ │ │ +
383
│ │ │ │ +
384/* UT stands for user type */
│ │ │ │ +
385#define TDS_UT_TIMESTAMP 80
│ │ │ │
386
│ │ │ │ -
387#define is_blob_type(x) ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
│ │ │ │ -
388#define is_blob_col(x) ((x)->column_varint_size > 2)
│ │ │ │ -
389/* large type means it has a two byte size field */
│ │ │ │ -
390/* define is_large_type(x) (x>128) */
│ │ │ │ -
391#define is_numeric_type(x) ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
│ │ │ │ -
393#define is_datetime_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
│ │ │ │ -
394#define is_unicode_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)
│ │ │ │ -
395#define is_collate_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
│ │ │ │ -
396#define is_ascii_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
│ │ │ │ -
397#define is_binary_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != 0)
│ │ │ │ -
398#define is_char_type(x) ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
│ │ │ │ -
399#define is_similar_type(x, y) (is_char_type(x) && is_char_type(y))
│ │ │ │ -
400static inline
│ │ │ │ -
401bool is_tds_type_valid(int type)
│ │ │ │ -
402{
│ │ │ │ -
403 return (unsigned) type < 256u && tds_type_flags_ms[type] != 0;
│ │ │ │ -
404}
│ │ │ │ -
405
│ │ │ │ +
387
│ │ │ │ +
388/* mssql login options flags */
│ │ │ │ +
389enum option_flag1_values {
│ │ │ │ +
390 TDS_BYTE_ORDER_X86 = 0,
│ │ │ │ +
391 TDS_CHARSET_ASCII = 0,
│ │ │ │ +
392 TDS_DUMPLOAD_ON = 0,
│ │ │ │ +
393 TDS_FLOAT_IEEE_754 = 0,
│ │ │ │ +
394 TDS_INIT_DB_WARN = 0,
│ │ │ │ +
395 TDS_SET_LANG_OFF = 0,
│ │ │ │ +
396 TDS_USE_DB_SILENT = 0,
│ │ │ │ +
397 TDS_BYTE_ORDER_68000 = 0x01,
│ │ │ │ +
398 TDS_CHARSET_EBDDIC = 0x02,
│ │ │ │ +
399 TDS_FLOAT_VAX = 0x04,
│ │ │ │ +
400 TDS_FLOAT_ND5000 = 0x08,
│ │ │ │ +
401 TDS_DUMPLOAD_OFF = 0x10, /* prevent BCP */
│ │ │ │ +
402 TDS_USE_DB_NOTIFY = 0x20,
│ │ │ │ +
403 TDS_INIT_DB_FATAL = 0x40,
│ │ │ │ +
404 TDS_SET_LANG_ON = 0x80
│ │ │ │ +
405};
│ │ │ │
406
│ │ │ │ -
407#define TDS_MAX_CAPABILITY 32
│ │ │ │ -
408#define MAXPRECISION 77
│ │ │ │ -
409#define TDS_MAX_CONN 4096
│ │ │ │ -
410#define TDS_MAX_DYNID_LEN 30
│ │ │ │ -
411
│ │ │ │ -
412/* defaults to use if no others are found */
│ │ │ │ -
413#define TDS_DEF_SERVER "SYBASE"
│ │ │ │ -
414#define TDS_DEF_BLKSZ 512
│ │ │ │ -
415#define TDS_DEF_CHARSET "iso_1"
│ │ │ │ -
416#define TDS_DEF_LANG "us_english"
│ │ │ │ -
417#if TDS50
│ │ │ │ -
418#define TDS_DEFAULT_VERSION 0x500
│ │ │ │ -
419#define TDS_DEF_PORT 4000
│ │ │ │ -
420#elif TDS71
│ │ │ │ -
421#define TDS_DEFAULT_VERSION 0x701
│ │ │ │ -
422#define TDS_DEF_PORT 1433
│ │ │ │ -
423#elif TDS72
│ │ │ │ -
424#define TDS_DEFAULT_VERSION 0x702
│ │ │ │ -
425#define TDS_DEF_PORT 1433
│ │ │ │ -
426#elif TDS73
│ │ │ │ -
427#define TDS_DEFAULT_VERSION 0x703
│ │ │ │ -
428#define TDS_DEF_PORT 1433
│ │ │ │ -
429#elif TDS74
│ │ │ │ -
430#define TDS_DEFAULT_VERSION 0x704
│ │ │ │ -
431#define TDS_DEF_PORT 1433
│ │ │ │ -
432#else
│ │ │ │ -
433#define TDS_DEFAULT_VERSION 0x000
│ │ │ │ -
434#define TDS_DEF_PORT 1433
│ │ │ │ -
435#endif
│ │ │ │ -
436
│ │ │ │ -
437/* normalized strings from freetds.conf file */
│ │ │ │ -
438#define TDS_STR_VERSION "tds version"
│ │ │ │ -
439#define TDS_STR_BLKSZ "initial block size"
│ │ │ │ -
440#define TDS_STR_SWAPDT "swap broken dates"
│ │ │ │ -
441#define TDS_STR_DUMPFILE "dump file"
│ │ │ │ -
442#define TDS_STR_DEBUGLVL "debug level"
│ │ │ │ -
443#define TDS_STR_DEBUGFLAGS "debug flags"
│ │ │ │ -
444#define TDS_STR_TIMEOUT "timeout"
│ │ │ │ -
445#define TDS_STR_QUERY_TIMEOUT "query timeout"
│ │ │ │ -
446#define TDS_STR_CONNTIMEOUT "connect timeout"
│ │ │ │ -
447#define TDS_STR_HOSTNAME "hostname"
│ │ │ │ -
448#define TDS_STR_HOST "host"
│ │ │ │ -
449#define TDS_STR_PORT "port"
│ │ │ │ -
450#define TDS_STR_TEXTSZ "text size"
│ │ │ │ -
451/* for big endian hosts, obsolete, ignored */
│ │ │ │ -
452#define TDS_STR_EMUL_LE "emulate little endian"
│ │ │ │ -
453#define TDS_STR_CHARSET "charset"
│ │ │ │ -
454#define TDS_STR_CLCHARSET "client charset"
│ │ │ │ -
455#define TDS_STR_USE_UTF_16 "use utf-16"
│ │ │ │ -
456#define TDS_STR_LANGUAGE "language"
│ │ │ │ -
457#define TDS_STR_APPENDMODE "dump file append"
│ │ │ │ -
458#define TDS_STR_DATEFMT "date format"
│ │ │ │ -
459#define TDS_STR_INSTANCE "instance"
│ │ │ │ -
460#define TDS_STR_ASA_DATABASE "asa database"
│ │ │ │ -
461#define TDS_STR_DATABASE "database"
│ │ │ │ -
462#define TDS_STR_ENCRYPTION "encryption"
│ │ │ │ -
463#define TDS_STR_USENTLMV2 "use ntlmv2"
│ │ │ │ -
464#define TDS_STR_USELANMAN "use lanman"
│ │ │ │ -
465/* conf values */
│ │ │ │ -
466#define TDS_STR_ENCRYPTION_OFF "off"
│ │ │ │ -
467#define TDS_STR_ENCRYPTION_REQUEST "request"
│ │ │ │ -
468#define TDS_STR_ENCRYPTION_REQUIRE "require"
│ │ │ │ -
469/* Defines to enable optional GSSAPI delegation */
│ │ │ │ -
470#define TDS_GSSAPI_DELEGATION "enable gssapi delegation"
│ │ │ │ -
471/* Mutual authentication */
│ │ │ │ -
472#define TDS_STR_MUTUAL_AUTHENTICATION "mutual authentication"
│ │ │ │ -
473/* Kerberos realm name */
│ │ │ │ -
474#define TDS_STR_REALM "realm"
│ │ │ │ -
475/* Kerberos SPN */
│ │ │ │ -
476#define TDS_STR_SPN "spn"
│ │ │ │ -
477/* CA file */
│ │ │ │ -
478#define TDS_STR_CAFILE "ca file"
│ │ │ │ -
479/* CRL file */
│ │ │ │ -
480#define TDS_STR_CRLFILE "crl file"
│ │ │ │ -
481/* check SSL hostname */
│ │ │ │ -
482#define TDS_STR_CHECKSSLHOSTNAME "check certificate hostname"
│ │ │ │ -
483/* database filename to attach on login (MSSQL) */
│ │ │ │ -
484#define TDS_STR_DBFILENAME "database filename"
│ │ │ │ -
485/* Application Intent MSSQL 2012 support */
│ │ │ │ -
486#define TDS_STR_READONLY_INTENT "read-only intent"
│ │ │ │ -
487/* configurable cipher suite to send to openssl's SSL_set_cipher_list() function */
│ │ │ │ -
488#define TLS_STR_OPENSSL_CIPHERS "openssl ciphers"
│ │ │ │ -
489/* enable old TLS v1, required for instance if you are using a really old Windows XP */
│ │ │ │ -
490#define TDS_STR_ENABLE_TLS_V1 "enable tls v1"
│ │ │ │ -
491
│ │ │ │ -
492
│ │ │ │ -
493/* TODO do a better check for alignment than this */
│ │ │ │ -
│ │ │ │ -
494typedef union
│ │ │ │ -
495{
│ │ │ │ -
496 void *p;
│ │ │ │ -
497 int i;
│ │ │ │ -
498 int64_t ui;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
500
│ │ │ │ -
501#define TDS_ALIGN_SIZE sizeof(tds_align_struct)
│ │ │ │ -
502
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
504{
│ │ │ │ -
505 unsigned char type;
│ │ │ │ -
506 unsigned char len; /* always sizeof(values) */
│ │ │ │ -
507 unsigned char values[TDS_MAX_CAPABILITY/2-2];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
509
│ │ │ │ -
│ │ │ │ -
510typedef struct tds_capabilities
│ │ │ │ -
511{
│ │ │ │ -
512 TDS_CAPABILITY_TYPE types[2];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
514
│ │ │ │ -
515#define TDS_MAX_LOGIN_STR_SZ 128
│ │ │ │ -
│ │ │ │ -
516typedef struct tds_login
│ │ │ │ -
517{
│ │ │ │ - │ │ │ │ -
519 int port;
│ │ │ │ -
520 TDS_USMALLINT tds_version;
│ │ │ │ -
521 int block_size;
│ │ │ │ -
522 DSTR language; /* e.g. us-english */
│ │ │ │ - │ │ │ │ -
524 TDS_INT connect_timeout;
│ │ │ │ -
525 DSTR client_host_name;
│ │ │ │ -
526 DSTR server_host_name;
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
532 DSTR openssl_ciphers;
│ │ │ │ -
533 DSTR app_name;
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
538 DSTR library; /* Ct-Library, DB-Library, TDS-Library or ODBC */
│ │ │ │ -
539 TDS_TINYINT encryption_level;
│ │ │ │ -
540
│ │ │ │ -
541 TDS_INT query_timeout;
│ │ │ │ -
542 TDS_CAPABILITIES capabilities;
│ │ │ │ -
543 DSTR client_charset;
│ │ │ │ -
544 DSTR database;
│ │ │ │ -
545
│ │ │ │ -
546 struct addrinfo *ip_addrs;
│ │ │ │ -
547 DSTR instance_name;
│ │ │ │ -
548 DSTR dump_file;
│ │ │ │ -
549 int debug_flags;
│ │ │ │ -
550 int text_size;
│ │ │ │ -
551 DSTR routing_address;
│ │ │ │ -
552 uint16_t routing_port;
│ │ │ │ +
407enum option_flag2_values {
│ │ │ │ +
408 TDS_INIT_LANG_WARN = 0,
│ │ │ │ +
409 TDS_INTEGRATED_SECURTY_OFF = 0,
│ │ │ │ +
410 TDS_ODBC_OFF = 0,
│ │ │ │ +
411 TDS_USER_NORMAL = 0, /* SQL Server login */
│ │ │ │ +
412 TDS_INIT_LANG_REQUIRED = 0x01,
│ │ │ │ +
413 TDS_ODBC_ON = 0x02,
│ │ │ │ +
414 TDS_TRANSACTION_BOUNDARY71 = 0x04, /* removed in TDS 7.2 */
│ │ │ │ +
415 TDS_CACHE_CONNECT71 = 0x08, /* removed in TDS 7.2 */
│ │ │ │ +
416 TDS_USER_SERVER = 0x10, /* reserved */
│ │ │ │ +
417 TDS_USER_REMUSER = 0x20, /* DQ login */
│ │ │ │ +
418 TDS_USER_SQLREPL = 0x40, /* replication login */
│ │ │ │ +
419 TDS_INTEGRATED_SECURITY_ON = 0x80
│ │ │ │ +
420};
│ │ │ │ +
421
│ │ │ │ +
422enum option_flag3_values {
│ │ │ │ +
423 TDS_RESTRICTED_COLLATION = 0,
│ │ │ │ +
424 TDS_CHANGE_PASSWORD = 0x01, /* TDS 7.2 */
│ │ │ │ +
425 TDS_SEND_YUKON_BINARY_XML = 0x02, /* TDS 7.2 */
│ │ │ │ +
426 TDS_REQUEST_USER_INSTANCE = 0x04, /* TDS 7.2 */
│ │ │ │ +
427 TDS_UNKNOWN_COLLATION_HANDLING = 0x08, /* TDS 7.3 */
│ │ │ │ +
428 TDS_EXTENSION = 0x10, /* TDS 7.4 */
│ │ │ │ +
429};
│ │ │ │ +
430
│ │ │ │ +
431enum type_flags {
│ │ │ │ +
432 TDS_OLEDB_ON = 0x10,
│ │ │ │ +
433 TDS_READONLY_INTENT = 0x20,
│ │ │ │ +
434};
│ │ │ │ +
435
│ │ │ │ +
436/* Sybase dynamic types */
│ │ │ │ +
437enum dynamic_types {
│ │ │ │ +
438 TDS_DYN_PREPARE = 0x01,
│ │ │ │ +
439 TDS_DYN_EXEC = 0x02,
│ │ │ │ +
440 TDS_DYN_DEALLOC = 0x04,
│ │ │ │ +
441 TDS_DYN_EXEC_IMMED = 0x08,
│ │ │ │ +
442 TDS_DYN_PROCNAME = 0x10,
│ │ │ │ +
443 TDS_DYN_ACK = 0x20,
│ │ │ │ +
444 TDS_DYN_DESCIN = 0x40,
│ │ │ │ +
445 TDS_DYN_DESCOUT = 0x80,
│ │ │ │ +
446};
│ │ │ │ +
447
│ │ │ │ +
448/* http://jtds.sourceforge.net/apiCursors.html */
│ │ │ │ +
449/* Cursor scroll option, must be one of 0x01 - 0x10, OR'd with other bits */
│ │ │ │ +
450enum {
│ │ │ │ +
451 TDS_CUR_TYPE_KEYSET = 0x0001, /* default */
│ │ │ │ +
452 TDS_CUR_TYPE_DYNAMIC = 0x0002,
│ │ │ │ +
453 TDS_CUR_TYPE_FORWARD = 0x0004,
│ │ │ │ +
454 TDS_CUR_TYPE_STATIC = 0x0008,
│ │ │ │ +
455 TDS_CUR_TYPE_FASTFORWARDONLY = 0x0010,
│ │ │ │ +
456 TDS_CUR_TYPE_PARAMETERIZED = 0x1000,
│ │ │ │ +
457 TDS_CUR_TYPE_AUTO_FETCH = 0x2000
│ │ │ │ +
458};
│ │ │ │ +
459
│ │ │ │ +
460enum {
│ │ │ │ +
461 TDS_CUR_CONCUR_READ_ONLY = 1,
│ │ │ │ +
462 TDS_CUR_CONCUR_SCROLL_LOCKS = 2,
│ │ │ │ +
463 TDS_CUR_CONCUR_OPTIMISTIC = 4, /* default */
│ │ │ │ +
464 TDS_CUR_CONCUR_OPTIMISTIC_VALUES = 8
│ │ │ │ +
465};
│ │ │ │ +
466
│ │ │ │ +
467/* TDS 4/5 login*/
│ │ │ │ +
468#define TDS_MAXNAME 30 /* maximum login name lenghts */
│ │ │ │ +
469#define TDS_PROGNLEN 10 /* maximum program lenght */
│ │ │ │ +
470#define TDS_PKTLEN 6 /* maximum packet lenght in login */
│ │ │ │ +
471
│ │ │ │ +
472/* TDS 5 login security flags */
│ │ │ │ +
473enum {
│ │ │ │ +
474 TDS5_SEC_LOG_ENCRYPT = 1,
│ │ │ │ +
475 TDS5_SEC_LOG_CHALLENGE = 2,
│ │ │ │ +
476 TDS5_SEC_LOG_LABELS = 4,
│ │ │ │ +
477 TDS5_SEC_LOG_APPDEFINED = 8,
│ │ │ │ +
478 TDS5_SEC_LOG_SECSESS = 16,
│ │ │ │ +
479 TDS5_SEC_LOG_ENCRYPT2 = 32,
│ │ │ │ +
480 TDS5_SEC_LOG_ENCRYPT3 = 128,
│ │ │ │ +
481};
│ │ │ │ +
482
│ │ │ │ +
484enum {
│ │ │ │ +
485 TDS5_MSG_SEC_ENCRYPT = 1,
│ │ │ │ +
486 TDS5_MSG_SEC_LOGPWD = 2,
│ │ │ │ +
487 TDS5_MSG_SEC_REMPWD = 3,
│ │ │ │ +
488 TDS5_MSG_SEC_CHALLENGE = 4,
│ │ │ │ +
489 TDS5_MSG_SEC_RESPONSE = 5,
│ │ │ │ +
490 TDS5_MSG_SEC_GETLABEL = 6,
│ │ │ │ +
491 TDS5_MSG_SEC_LABEL = 7,
│ │ │ │ +
492 TDS5_MSG_SQL_TBLNAME = 8,
│ │ │ │ +
493 TDS5_MSG_GW_RESERVED = 9,
│ │ │ │ +
494 TDS5_MSG_OMNI_CAPABILITIES = 10,
│ │ │ │ +
495 TDS5_MSG_SEC_OPAQUE = 11,
│ │ │ │ +
496 TDS5_MSG_HAFAILOVER = 12,
│ │ │ │ +
497 TDS5_MSG_EMPTY = 13,
│ │ │ │ +
500 TDS5_MSG_SEC_ENCRYPT2 = 14,
│ │ │ │ +
501 TDS5_MSG_SEC_LOGPWD2 = 15,
│ │ │ │ +
502 TDS5_MSG_SEC_SUP_CIPHER = 16,
│ │ │ │ +
503 TDS5_MSG_MIG_REQ = 17,
│ │ │ │ +
505 TDS5_MSG_MIG_SYNC = 18,
│ │ │ │ +
506 TDS5_MSG_MIG_CONT = 19,
│ │ │ │ +
507 TDS5_MSG_MIG_IGN = 20,
│ │ │ │ +
508 TDS5_MSG_MIG_FAIL = 21,
│ │ │ │ +
510 TDS5_MSG_SEC_REMPWD2 = 22,
│ │ │ │ +
511 TDS5_MSG_MIG_RESUME = 23,
│ │ │ │ +
512 TDS5_MSG_SEC_ENCRYPT3 = 30,
│ │ │ │ +
513 TDS5_MSG_SEC_LOGPWD3 = 31,
│ │ │ │ +
514 TDS5_MSG_SEC_REMPWD3 = 32,
│ │ │ │ +
515 TDS5_MSG_DR_MAP = 33,
│ │ │ │ +
516};
│ │ │ │ +
517
│ │ │ │ +
528enum {
│ │ │ │ +
529 TDS5_SEC_SECSESS = 1,
│ │ │ │ +
530 TDS5_SEC_FORWARD = 2,
│ │ │ │ +
531 TDS5_SEC_SIGN = 3,
│ │ │ │ +
532 TDS5_SEC_OTHER = 4,
│ │ │ │ +
533};
│ │ │ │ +
534
│ │ │ │ +
538enum {
│ │ │ │ +
539 TDS5_SEC_NETWORK_AUTHENTICATION = 0x1,
│ │ │ │ +
540 TDS5_SEC_MUTUAL_AUTHENTICATION = 0x2,
│ │ │ │ +
541 TDS5_SEC_DELEGATION = 0x4,
│ │ │ │ +
542 TDS5_SEC_INTEGRITY = 0x8,
│ │ │ │ +
543 TDS5_SEC_CONFIDENTIALITY = 0x10,
│ │ │ │ +
544 TDS5_SEC_DETECT_REPLAY = 0x20,
│ │ │ │ +
545 TDS5_SEC_DETECT_SEQUENCE = 0x40,
│ │ │ │ +
546 TDS5_SEC_DATA_ORIGIN = 0x80,
│ │ │ │ +
547 TDS5_SEC_CHANNEL_BINDING = 0x100,
│ │ │ │ +
548};
│ │ │ │ +
549
│ │ │ │ +
550enum {
│ │ │ │ +
551 TDS5_SEC_VERSION = 50,
│ │ │ │ +
552};
│ │ │ │
553
│ │ │ │ -
554 unsigned char option_flag2;
│ │ │ │ -
555
│ │ │ │ -
556 unsigned int bulk_copy:1;
│ │ │ │ -
557 unsigned int suppress_language:1;
│ │ │ │ -
558 unsigned int gssapi_use_delegation:1;
│ │ │ │ -
559 unsigned int mutual_authentication:1;
│ │ │ │ -
560 unsigned int use_ntlmv2:1;
│ │ │ │ -
561 unsigned int use_ntlmv2_specified:1;
│ │ │ │ -
562 unsigned int use_lanman:1;
│ │ │ │ -
563 unsigned int mars:1;
│ │ │ │ -
564 unsigned int use_utf16:1;
│ │ │ │ -
565 unsigned int use_new_password:1;
│ │ │ │ -
566 unsigned int valid_configuration:1;
│ │ │ │ -
567 unsigned int check_ssl_hostname:1;
│ │ │ │ -
568 unsigned int readonly_intent:1;
│ │ │ │ -
569 unsigned int enable_tls_v1:1;
│ │ │ │ -
570 unsigned int server_is_valid:1;
│ │ │ │ -
571} TDSLOGIN;
│ │ │ │ -
│ │ │ │ -
572
│ │ │ │ -
│ │ │ │ -
573typedef struct tds_headers
│ │ │ │ -
574{
│ │ │ │ -
575 const char *qn_options;
│ │ │ │ -
576 const char *qn_msgtext;
│ │ │ │ -
577 TDS_INT qn_timeout;
│ │ │ │ -
578 /* TDS 7.4+: trace activity ID char[20] */
│ │ │ │ -
579} TDSHEADERS;
│ │ │ │ -
│ │ │ │ -
580
│ │ │ │ -
│ │ │ │ -
581typedef struct tds_locale
│ │ │ │ -
582{
│ │ │ │ -
583 char *language;
│ │ │ │ -
584 char *server_charset;
│ │ │ │ -
585 char *date_fmt;
│ │ │ │ -
586} TDSLOCALE;
│ │ │ │ -
│ │ │ │ -
587
│ │ │ │ -
│ │ │ │ -
592typedef struct tds_blob
│ │ │ │ -
593{
│ │ │ │ -
594 TDS_CHAR *textvalue;
│ │ │ │ -
595 TDS_CHAR textptr[16];
│ │ │ │ -
596 TDS_CHAR timestamp[8];
│ │ │ │ -
597 unsigned char valid_ptr;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
599
│ │ │ │ -
│ │ │ │ -
603typedef struct tds_variant
│ │ │ │ -
604{
│ │ │ │ -
605 /* this MUST have same position and place of textvalue in tds_blob */
│ │ │ │ -
606 TDS_CHAR *data;
│ │ │ │ -
607 TDS_INT size;
│ │ │ │ -
608 TDS_INT data_len;
│ │ │ │ -
609 TDS_SERVER_TYPE type;
│ │ │ │ -
610 TDS_UCHAR collation[5];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
612
│ │ │ │ -
│ │ │ │ -
617typedef struct tds_encoding
│ │ │ │ -
618{
│ │ │ │ -
620 const char *name;
│ │ │ │ -
621 unsigned char min_bytes_per_char;
│ │ │ │ -
622 unsigned char max_bytes_per_char;
│ │ │ │ -
624 unsigned char canonic;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
626
│ │ │ │ -
│ │ │ │ -
627typedef struct tds_bcpcoldata
│ │ │ │ -
628{
│ │ │ │ -
629 TDS_UCHAR *data;
│ │ │ │ -
630 TDS_INT datalen;
│ │ │ │ -
631 bool is_null;
│ │ │ │ -
632} BCPCOLDATA;
│ │ │ │ -
│ │ │ │ -
633
│ │ │ │ -
634
│ │ │ │ -
635typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ -
636typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ -
637typedef TDS_INT tds_func_row_len(TDSCOLUMN *col);
│ │ │ │ -
638typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ -
639typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7);
│ │ │ │ -
640typedef int tds_func_check(const TDSCOLUMN *col);
│ │ │ │ -
641
│ │ │ │ -
│ │ │ │ -
642typedef struct tds_column_funcs
│ │ │ │ -
643{
│ │ │ │ -
644 tds_func_get_info *get_info;
│ │ │ │ -
645 tds_func_get_data *get_data;
│ │ │ │ -
646 tds_func_row_len *row_len;
│ │ │ │ -
652 tds_func_put_info *put_info;
│ │ │ │ -
662 tds_func_put_data *put_data;
│ │ │ │ -
663#if ENABLE_EXTRA_CHECKS
│ │ │ │ -
678 tds_func_check *check;
│ │ │ │ -
679#endif
│ │ │ │ -
680#if 0
│ │ │ │ -
681 TDSRET (*convert)(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ -
682#endif
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
684
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
689{
│ │ │ │ -
690 const TDSCOLUMNFUNCS *funcs;
│ │ │ │ -
691 TDS_INT column_usertype;
│ │ │ │ -
692 TDS_INT column_flags;
│ │ │ │ -
693
│ │ │ │ -
694 TDS_INT column_size;
│ │ │ │ -
696 TDS_SERVER_TYPE column_type;
│ │ │ │ -
701 TDS_TINYINT column_varint_size;
│ │ │ │ -
703 TDS_TINYINT column_prec;
│ │ │ │ -
704 TDS_TINYINT column_scale;
│ │ │ │ -
706 struct
│ │ │ │ -
707 {
│ │ │ │ -
708 TDS_SERVER_TYPE column_type;
│ │ │ │ -
709 TDS_INT column_size;
│ │ │ │ -
710 } on_server;
│ │ │ │ -
711
│ │ │ │ - │ │ │ │ -
714 DSTR table_name;
│ │ │ │ -
715 DSTR column_name;
│ │ │ │ -
716 DSTR table_column_name;
│ │ │ │ -
717
│ │ │ │ -
718 unsigned char *column_data;
│ │ │ │ -
719 void (*column_data_free)(struct tds_column *column);
│ │ │ │ -
720 unsigned char column_nullable:1;
│ │ │ │ -
721 unsigned char column_writeable:1;
│ │ │ │ -
722 unsigned char column_identity:1;
│ │ │ │ -
723 unsigned char column_key:1;
│ │ │ │ -
724 unsigned char column_hidden:1;
│ │ │ │ -
725 unsigned char column_output:1;
│ │ │ │ -
726 unsigned char column_timestamp:1;
│ │ │ │ -
727 unsigned char column_computed:1;
│ │ │ │ -
728 TDS_UCHAR column_collation[5];
│ │ │ │ -
729
│ │ │ │ -
730 /* additional fields flags for compute results */
│ │ │ │ -
731 TDS_SMALLINT column_operand;
│ │ │ │ -
732 TDS_TINYINT column_operator;
│ │ │ │ -
733
│ │ │ │ -
734 /* FIXME this is data related, not column */
│ │ │ │ - │ │ │ │ -
737
│ │ │ │ -
738 /* related to binding or info stored by client libraries */
│ │ │ │ -
739 /* FIXME find a best place to store these data, some are unused */
│ │ │ │ -
740 TDS_SMALLINT column_bindtype;
│ │ │ │ -
741 TDS_SMALLINT column_bindfmt;
│ │ │ │ -
742 TDS_UINT column_bindlen;
│ │ │ │ -
743 TDS_SMALLINT *column_nullbind;
│ │ │ │ -
744 TDS_CHAR *column_varaddr;
│ │ │ │ -
745 TDS_INT *column_lenbind;
│ │ │ │ -
746 TDS_INT column_textpos;
│ │ │ │ -
747 TDS_INT column_text_sqlgetdatapos;
│ │ │ │ -
748 TDS_CHAR column_text_sqlputdatainfo;
│ │ │ │ -
749 unsigned char column_iconv_left;
│ │ │ │ -
750 char column_iconv_buf[9];
│ │ │ │ -
751
│ │ │ │ -
752 BCPCOLDATA *bcp_column_data;
│ │ │ │ - │ │ │ │ -
762 TDS_INT bcp_term_len;
│ │ │ │ -
763 TDS_CHAR *bcp_terminator;
│ │ │ │ -
764};
│ │ │ │ -
│ │ │ │ -
765
│ │ │ │ -
766
│ │ │ │ -
│ │ │ │ -
768typedef struct tds_result_info
│ │ │ │ -
769{
│ │ │ │ -
770 /* TODO those fields can became a struct */
│ │ │ │ -
771 TDSCOLUMN **columns;
│ │ │ │ -
772 TDS_USMALLINT num_cols;
│ │ │ │ -
773 TDS_USMALLINT computeid;
│ │ │ │ -
774 TDS_INT ref_count;
│ │ │ │ -
775 TDSSOCKET *attached_to;
│ │ │ │ -
776 unsigned char *current_row;
│ │ │ │ -
777 void (*row_free)(struct tds_result_info* result, unsigned char *row);
│ │ │ │ -
778 TDS_INT row_size;
│ │ │ │ -
779
│ │ │ │ -
780 TDS_SMALLINT *bycolumns;
│ │ │ │ -
781 TDS_USMALLINT by_cols;
│ │ │ │ -
782 bool rows_exist;
│ │ │ │ -
783 /* TODO remove ?? used only in dblib */
│ │ │ │ -
784 bool more_results;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
786
│ │ │ │ -
│ │ │ │ -
788typedef enum tds_states
│ │ │ │ -
789{
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
795 TDS_DEAD
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
797
│ │ │ │ -
798typedef enum tds_operations
│ │ │ │ -
799{
│ │ │ │ -
800 TDS_OP_NONE = 0,
│ │ │ │ -
801
│ │ │ │ -
802 /* mssql operations */
│ │ │ │ -
803 TDS_OP_CURSOR = TDS_SP_CURSOR,
│ │ │ │ -
804 TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN,
│ │ │ │ -
805 TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE,
│ │ │ │ -
806 TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE,
│ │ │ │ -
807 TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC,
│ │ │ │ -
808 TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE,
│ │ │ │ -
809 TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH,
│ │ │ │ -
810 TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION,
│ │ │ │ -
811 TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE,
│ │ │ │ -
812 TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL,
│ │ │ │ -
813 TDS_OP_PREPARE = TDS_SP_PREPARE,
│ │ │ │ -
814 TDS_OP_EXECUTE = TDS_SP_EXECUTE,
│ │ │ │ -
815 TDS_OP_PREPEXEC = TDS_SP_PREPEXEC,
│ │ │ │ -
816 TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC,
│ │ │ │ -
817 TDS_OP_UNPREPARE = TDS_SP_UNPREPARE,
│ │ │ │ -
818
│ │ │ │ -
819 /* sybase operations */
│ │ │ │ -
820 TDS_OP_DYN_DEALLOC = 100,
│ │ │ │ -
821} TDS_OPERATION;
│ │ │ │ -
822
│ │ │ │ -
823#define TDS_DBG_LOGIN __FILE__, ((__LINE__ << 4) | 11)
│ │ │ │ -
824#define TDS_DBG_HEADER __FILE__, ((__LINE__ << 4) | 10)
│ │ │ │ -
825#define TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7)
│ │ │ │ -
826#define TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6)
│ │ │ │ -
827#define TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5)
│ │ │ │ -
828#define TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4)
│ │ │ │ -
829#define TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3)
│ │ │ │ -
830#define TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2)
│ │ │ │ -
831#define TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1)
│ │ │ │ -
832
│ │ │ │ -
833#define TDS_DBGFLAG_FUNC 0x80
│ │ │ │ -
834#define TDS_DBGFLAG_INFO2 0x40
│ │ │ │ -
835#define TDS_DBGFLAG_INFO1 0x20
│ │ │ │ -
836#define TDS_DBGFLAG_NETWORK 0x10
│ │ │ │ -
837#define TDS_DBGFLAG_WARN 0x08
│ │ │ │ -
838#define TDS_DBGFLAG_ERROR 0x04
│ │ │ │ -
839#define TDS_DBGFLAG_SEVERE 0x02
│ │ │ │ -
840#define TDS_DBGFLAG_ALL 0xfff
│ │ │ │ -
841#define TDS_DBGFLAG_LOGIN 0x0800
│ │ │ │ -
842#define TDS_DBGFLAG_HEADER 0x0400
│ │ │ │ -
843#define TDS_DBGFLAG_PID 0x1000
│ │ │ │ -
844#define TDS_DBGFLAG_TIME 0x2000
│ │ │ │ -
845#define TDS_DBGFLAG_SOURCE 0x4000
│ │ │ │ -
846#define TDS_DBGFLAG_THREAD 0x8000
│ │ │ │ -
847
│ │ │ │ -
848#if 0
│ │ │ │ -
854enum TDS_DBG_LOG_STATE
│ │ │ │ -
855{
│ │ │ │ -
856 TDS_DBG_LOGIN = (1 << 0)
│ │ │ │ -
858 , TDS_DBG_API = (1 << 1)
│ │ │ │ -
859 , TDS_DBG_ASYNC = (1 << 2)
│ │ │ │ -
860 , TDS_DBG_DIAG = (1 << 3)
│ │ │ │ -
861 , TDS_DBG_error = (1 << 4)
│ │ │ │ -
862 /* TODO: ^^^^^ make upper case when old #defines (above) are removed */
│ │ │ │ -
863 /* Log FreeTDS runtime/logic error occurs. */
│ │ │ │ -
864 , TDS_DBG_PACKET = (1 << 5)
│ │ │ │ -
865 , TDS_DBG_LIBTDS = (1 << 6)
│ │ │ │ -
866 , TDS_DBG_CONFIG = (1 << 7)
│ │ │ │ -
867 , TDS_DBG_DEFAULT = 0xFE
│ │ │ │ -
868};
│ │ │ │ -
869#endif
│ │ │ │ -
870
│ │ │ │ -
871typedef struct tds_result_info TDSCOMPUTEINFO;
│ │ │ │ -
872
│ │ │ │ - │ │ │ │ -
874
│ │ │ │ -
│ │ │ │ -
875typedef struct tds_message
│ │ │ │ -
876{
│ │ │ │ -
877 TDS_CHAR *server;
│ │ │ │ -
878 TDS_CHAR *message;
│ │ │ │ -
879 TDS_CHAR *proc_name;
│ │ │ │ -
880 TDS_CHAR *sql_state;
│ │ │ │ -
881 TDS_INT msgno;
│ │ │ │ -
882 TDS_INT line_number;
│ │ │ │ -
883 /* -1 .. 255 */
│ │ │ │ -
884 TDS_SMALLINT state;
│ │ │ │ -
885 TDS_TINYINT priv_msg_type;
│ │ │ │ -
886 TDS_TINYINT severity;
│ │ │ │ -
887 /* for library-generated errors */
│ │ │ │ -
888 int oserr;
│ │ │ │ -
889} TDSMESSAGE;
│ │ │ │ -
│ │ │ │ -
890
│ │ │ │ -
│ │ │ │ -
891typedef struct tds_upd_col
│ │ │ │ -
892{
│ │ │ │ -
893 struct tds_upd_col *next;
│ │ │ │ -
894 TDS_INT colnamelength;
│ │ │ │ -
895 char * columnname;
│ │ │ │ -
896} TDSUPDCOL;
│ │ │ │ -
│ │ │ │ -
897
│ │ │ │ -
898typedef enum {
│ │ │ │ -
899 TDS_CURSOR_STATE_UNACTIONED = 0 /* initial value */
│ │ │ │ -
900 , TDS_CURSOR_STATE_REQUESTED = 1 /* called by ct_cursor */
│ │ │ │ -
901 , TDS_CURSOR_STATE_SENT = 2 /* sent to server */
│ │ │ │ -
902 , TDS_CURSOR_STATE_ACTIONED = 3 /* acknowledged by server */
│ │ │ │ -
903} TDS_CURSOR_STATE;
│ │ │ │ -
904
│ │ │ │ -
│ │ │ │ -
905typedef struct tds_cursor_status
│ │ │ │ -
906{
│ │ │ │ -
907 TDS_CURSOR_STATE declare;
│ │ │ │ -
908 TDS_CURSOR_STATE cursor_row;
│ │ │ │ -
909 TDS_CURSOR_STATE open;
│ │ │ │ -
910 TDS_CURSOR_STATE fetch;
│ │ │ │ -
911 TDS_CURSOR_STATE close;
│ │ │ │ -
912 TDS_CURSOR_STATE dealloc;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
914
│ │ │ │ -
915typedef enum tds_cursor_operation
│ │ │ │ -
916{
│ │ │ │ -
917 TDS_CURSOR_POSITION = 0,
│ │ │ │ -
918 TDS_CURSOR_UPDATE = 1,
│ │ │ │ -
919 TDS_CURSOR_DELETE = 2,
│ │ │ │ -
920 TDS_CURSOR_INSERT = 4
│ │ │ │ -
921} TDS_CURSOR_OPERATION;
│ │ │ │ -
922
│ │ │ │ -
923typedef enum tds_cursor_fetch
│ │ │ │ -
924{
│ │ │ │ -
925 TDS_CURSOR_FETCH_NEXT = 1,
│ │ │ │ -
926 TDS_CURSOR_FETCH_PREV,
│ │ │ │ -
927 TDS_CURSOR_FETCH_FIRST,
│ │ │ │ -
928 TDS_CURSOR_FETCH_LAST,
│ │ │ │ -
929 TDS_CURSOR_FETCH_ABSOLUTE,
│ │ │ │ -
930 TDS_CURSOR_FETCH_RELATIVE
│ │ │ │ -
931} TDS_CURSOR_FETCH;
│ │ │ │ -
932
│ │ │ │ -
│ │ │ │ -
936typedef struct tds_cursor
│ │ │ │ -
937{
│ │ │ │ -
938 struct tds_cursor *next;
│ │ │ │ -
939 TDS_INT ref_count;
│ │ │ │ - │ │ │ │ -
941 TDS_INT cursor_id;
│ │ │ │ -
942 TDS_TINYINT options;
│ │ │ │ - │ │ │ │ -
947 char *query;
│ │ │ │ -
948 /* TODO for updatable columns */
│ │ │ │ -
949 /* TDS_TINYINT number_upd_cols; */
│ │ │ │ -
950 /* TDSUPDCOL *cur_col_list; */
│ │ │ │ -
951 TDS_INT cursor_rows;
│ │ │ │ -
952 /* TDSPARAMINFO *params; */
│ │ │ │ - │ │ │ │ -
954 TDS_USMALLINT srv_status;
│ │ │ │ -
955 TDSRESULTINFO *res_info;
│ │ │ │ -
956 TDS_INT type, concurrency;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
958
│ │ │ │ -
│ │ │ │ -
962typedef struct tds_env
│ │ │ │ -
963{
│ │ │ │ - │ │ │ │ -
966 char *language;
│ │ │ │ -
968 char *charset;
│ │ │ │ -
970 char *database;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
972
│ │ │ │ -
│ │ │ │ -
976typedef struct tds_dynamic
│ │ │ │ -
977{
│ │ │ │ - │ │ │ │ -
979 TDS_INT ref_count;
│ │ │ │ -
981 TDS_INT num_id;
│ │ │ │ -
987 char id[30];
│ │ │ │ -
993 TDS_TINYINT emulated;
│ │ │ │ - │ │ │ │ -
998 /* int dyn_state; */ /* TODO use it */
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1009 char *query;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
1011
│ │ │ │ -
1012typedef enum {
│ │ │ │ -
1013 TDS_MULTIPLE_QUERY,
│ │ │ │ -
1014 TDS_MULTIPLE_EXECUTE,
│ │ │ │ -
1015 TDS_MULTIPLE_RPC
│ │ │ │ -
1016} TDS_MULTIPLE_TYPE;
│ │ │ │ -
1017
│ │ │ │ -
│ │ │ │ -
1018typedef struct tds_multiple
│ │ │ │ -
1019{
│ │ │ │ -
1020 TDS_MULTIPLE_TYPE type;
│ │ │ │ -
1021 unsigned int flags;
│ │ │ │ -
1022} TDSMULTIPLE;
│ │ │ │ -
│ │ │ │ -
1023
│ │ │ │ -
1024/* forward declaration */
│ │ │ │ -
1025typedef struct tds_context TDSCONTEXT;
│ │ │ │ -
1026typedef int (*err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
│ │ │ │ -
1027
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1029{
│ │ │ │ -
1030 TDSLOCALE *locale;
│ │ │ │ -
1031 void *parent;
│ │ │ │ -
1032 /* handlers */
│ │ │ │ -
1033 int (*msg_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
│ │ │ │ -
1034 int (*err_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
│ │ │ │ -
1035 int (*int_handler) (void *);
│ │ │ │ -
1036 bool money_use_2_digits;
│ │ │ │ -
1037};
│ │ │ │ -
│ │ │ │ -
1038
│ │ │ │ -
1039enum TDS_ICONV_ENTRY
│ │ │ │ -
1040{
│ │ │ │ -
1041 client2ucs2
│ │ │ │ -
1042 , client2server_chardata
│ │ │ │ -
1043 , initial_char_conv_count /* keep last */
│ │ │ │ -
1044};
│ │ │ │ -
1045
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1047{
│ │ │ │ -
1048 uint8_t *packet;
│ │ │ │ -
1049 int packet_len;
│ │ │ │ -
1050 /* TDS_MSG_TOKEN type, for TDS5 */
│ │ │ │ -
1051 uint16_t msg_type;
│ │ │ │ -
1052 TDSRET (*free)(TDSCONNECTION* conn, struct tds_authentication * auth);
│ │ │ │ -
1053 TDSRET (*handle_next)(TDSSOCKET * tds, struct tds_authentication * auth, size_t len);
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
1055
│ │ │ │ -
│ │ │ │ -
1056typedef struct tds_packet
│ │ │ │ -
1057{
│ │ │ │ -
1058 struct tds_packet *next;
│ │ │ │ -
1059 uint16_t sid;
│ │ │ │ -
1060
│ │ │ │ -
1061#if ENABLE_ODBC_MARS
│ │ │ │ -
1065 uint8_t data_start;
│ │ │ │ -
1066#endif
│ │ │ │ -
1067
│ │ │ │ -
1071 unsigned data_len;
│ │ │ │ -
1072 unsigned capacity;
│ │ │ │ -
1073 unsigned char buf[1];
│ │ │ │ -
1074} TDSPACKET;
│ │ │ │ -
│ │ │ │ -
1075
│ │ │ │ -
1076#if ENABLE_ODBC_MARS
│ │ │ │ -
1077#define tds_packet_zero_data_start(pkt) do { (pkt)->data_start = 0; } while(0)
│ │ │ │ -
1078#define tds_packet_get_data_start(pkt) ((pkt)->data_start)
│ │ │ │ -
1079#else
│ │ │ │ -
1080#define tds_packet_zero_data_start(pkt) do { } while(0)
│ │ │ │ -
1081#define tds_packet_get_data_start(pkt) 0
│ │ │ │ -
1082#endif
│ │ │ │ -
1083
│ │ │ │ -
│ │ │ │ -
1084typedef struct tds_poll_wakeup
│ │ │ │ -
1085{
│ │ │ │ -
1086 TDS_SYS_SOCKET s_signal, s_signaled;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
1088
│ │ │ │ -
1089/* field related to connection */
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1091{
│ │ │ │ -
1092 TDS_USMALLINT tds_version;
│ │ │ │ - │ │ │ │ -
1094 char *product_name;
│ │ │ │ -
1095
│ │ │ │ -
1096 TDS_SYS_SOCKET s;
│ │ │ │ -
1097 TDSPOLLWAKEUP wakeup;
│ │ │ │ -
1098 const TDSCONTEXT *tds_ctx;
│ │ │ │ -
1099
│ │ │ │ - │ │ │ │ -
1102
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1113
│ │ │ │ -
1114 int char_conv_count;
│ │ │ │ -
1115 TDSICONV **char_convs;
│ │ │ │ -
1116
│ │ │ │ -
1117 TDS_UCHAR collation[5];
│ │ │ │ -
1118 TDS_UCHAR tds72_transaction[8];
│ │ │ │ -
1119
│ │ │ │ -
1120 TDS_CAPABILITIES capabilities;
│ │ │ │ -
1121 unsigned int use_iconv:1;
│ │ │ │ -
1122 unsigned int tds71rev1:1;
│ │ │ │ -
1123 unsigned int pending_close:1;
│ │ │ │ -
1124 unsigned int encrypt_single_packet:1;
│ │ │ │ -
1125#if ENABLE_ODBC_MARS
│ │ │ │ -
1126 unsigned int mars:1;
│ │ │ │ -
1127
│ │ │ │ -
1128 TDSSOCKET *in_net_tds;
│ │ │ │ -
1129 TDSPACKET *packets;
│ │ │ │ -
1130 TDSPACKET *recv_packet;
│ │ │ │ -
1131 TDSPACKET *send_packets;
│ │ │ │ -
1132 unsigned send_pos, recv_pos;
│ │ │ │ -
1133
│ │ │ │ -
1134#define BUSY_SOCKET ((TDSSOCKET*)(TDS_UINTPTR)1)
│ │ │ │ -
1135#define TDSSOCKET_VALID(tds) (((TDS_UINTPTR)(tds)) > 1)
│ │ │ │ -
1136 struct tds_socket **sessions;
│ │ │ │ -
1137 unsigned num_sessions;
│ │ │ │ -
1138#endif
│ │ │ │ -
1139 tds_mutex list_mtx;
│ │ │ │ -
1140
│ │ │ │ -
1141 unsigned num_cached_packets;
│ │ │ │ -
1142 TDSPACKET *packet_cache;
│ │ │ │ -
1143
│ │ │ │ -
1144 int spid;
│ │ │ │ -
1145 int client_spid;
│ │ │ │ -
1146
│ │ │ │ -
1147 void *tls_session;
│ │ │ │ -
1148#if defined(HAVE_GNUTLS)
│ │ │ │ -
1149 void *tls_credentials;
│ │ │ │ -
1150#elif defined(HAVE_OPENSSL)
│ │ │ │ -
1151 void *tls_ctx;
│ │ │ │ -
1152#else
│ │ │ │ -
1153 void *tls_dummy;
│ │ │ │ -
1154#endif
│ │ │ │ -
1155 TDSAUTHENTICATION *authentication;
│ │ │ │ -
1156 char *server;
│ │ │ │ -
1157};
│ │ │ │ -
│ │ │ │ -
1158
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1163{
│ │ │ │ -
1164#if ENABLE_ODBC_MARS
│ │ │ │ -
1165 TDSCONNECTION *conn;
│ │ │ │ -
1166#else
│ │ │ │ -
1167 TDSCONNECTION conn[1];
│ │ │ │ -
1168#endif
│ │ │ │ -
1169
│ │ │ │ -
1170 void *parent;
│ │ │ │ -
1171
│ │ │ │ -
1177 unsigned char *in_buf;
│ │ │ │ -
1178
│ │ │ │ -
1185 unsigned char *out_buf;
│ │ │ │ -
1186
│ │ │ │ -
1191 unsigned int out_buf_max;
│ │ │ │ -
1192 unsigned in_pos;
│ │ │ │ -
1193 unsigned out_pos;
│ │ │ │ -
1194 unsigned in_len;
│ │ │ │ -
1195 unsigned char in_flag;
│ │ │ │ -
1196 unsigned char out_flag;
│ │ │ │ -
1198 unsigned frozen;
│ │ │ │ - │ │ │ │ -
1204
│ │ │ │ -
1205#if ENABLE_ODBC_MARS
│ │ │ │ -
1210 uint16_t sid;
│ │ │ │ -
1211
│ │ │ │ -
1216 tds_condition packet_cond;
│ │ │ │ -
1217
│ │ │ │ -
1222 TDSPACKET *sending_packet;
│ │ │ │ -
1223 TDS_UINT recv_seq;
│ │ │ │ -
1224 TDS_UINT send_seq;
│ │ │ │ -
1225 TDS_UINT recv_wnd;
│ │ │ │ -
1226 TDS_UINT send_wnd;
│ │ │ │ -
1227#endif
│ │ │ │ -
1228 /* packet we received */
│ │ │ │ -
1229 TDSPACKET *recv_packet;
│ │ │ │ - │ │ │ │ -
1232
│ │ │ │ - │ │ │ │ -
1239 TDSRESULTINFO *res_info;
│ │ │ │ -
1240 TDS_UINT num_comp_info;
│ │ │ │ -
1241 TDSCOMPUTEINFO **comp_info;
│ │ │ │ -
1242 TDSPARAMINFO *param_info;
│ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ -
1246 bool in_row;
│ │ │ │ -
1247 volatile
│ │ │ │ -
1248 unsigned char in_cancel;
│ │ │ │ -
1250 TDS_INT ret_status;
│ │ │ │ -
1251 TDS_STATE state;
│ │ │ │ -
1252
│ │ │ │ -
1253 TDS_INT query_timeout;
│ │ │ │ -
1254 TDS_INT8 rows_affected;
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1260 void (*env_chg_func) (TDSSOCKET * tds, int type, char *oldval, char *newval);
│ │ │ │ -
1261 TDS_OPERATION current_op;
│ │ │ │ -
1262
│ │ │ │ -
1263 int option_value;
│ │ │ │ -
1264 tds_mutex wire_mtx;
│ │ │ │ -
1265};
│ │ │ │ -
│ │ │ │ -
1266
│ │ │ │ -
1267#define tds_get_ctx(tds) ((tds)->conn->tds_ctx)
│ │ │ │ -
1268#define tds_set_ctx(tds, val) do { ((tds)->conn->tds_ctx) = (val); } while(0)
│ │ │ │ -
1269#define tds_get_parent(tds) ((tds)->parent)
│ │ │ │ -
1270#define tds_set_parent(tds, val) do { ((tds)->parent) = (val); } while(0)
│ │ │ │ -
1271#define tds_get_s(tds) ((tds)->conn->s)
│ │ │ │ -
1272#define tds_set_s(tds, val) do { ((tds)->conn->s) = (val); } while(0)
│ │ │ │ -
1273
│ │ │ │ -
1274
│ │ │ │ -
1275/* config.c */
│ │ │ │ - │ │ │ │ -
1277typedef void (*TDSCONFPARSE) (const char *option, const char *value, void *param);
│ │ │ │ -
1278bool tds_read_conf_section(FILE * in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param);
│ │ │ │ -
1279bool tds_read_conf_file(TDSLOGIN * login, const char *server);
│ │ │ │ -
1280void tds_parse_conf_section(const char *option, const char *value, void *param);
│ │ │ │ -
1281TDSLOGIN *tds_read_config_info(TDSSOCKET * tds, TDSLOGIN * login, TDSLOCALE * locale);
│ │ │ │ -
1282void tds_fix_login(TDSLOGIN* login);
│ │ │ │ -
1283TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN* login);
│ │ │ │ -
1284struct addrinfo *tds_lookup_host(const char *servername);
│ │ │ │ -
1285TDSRET tds_lookup_host_set(const char *servername, struct addrinfo **addr);
│ │ │ │ -
1286const char *tds_addrinfo2str(struct addrinfo *addr, char *name, int namemax);
│ │ │ │ -
1287char *tds_get_home_file(const char *file);
│ │ │ │ -
1288
│ │ │ │ -
1289TDSRET tds_set_interfaces_file_loc(const char *interfloc);
│ │ │ │ -
1290extern const char STD_DATETIME_FMT[];
│ │ │ │ -
1291int tds_parse_boolean(const char *value, int default_value);
│ │ │ │ -
1292int tds_config_boolean(const char *option, const char *value, TDSLOGIN * login);
│ │ │ │ -
1293
│ │ │ │ - │ │ │ │ -
1295TDSRET tds_alloc_row(TDSRESULTINFO * res_info);
│ │ │ │ -
1296TDSRET tds_alloc_compute_row(TDSCOMPUTEINFO * res_info);
│ │ │ │ -
1297BCPCOLDATA * tds_alloc_bcp_column_data(unsigned int column_size);
│ │ │ │ -
1298TDSDYNAMIC *tds_lookup_dynamic(TDSCONNECTION * conn, const char *id);
│ │ │ │ -
1299/*@observer@*/ const char *tds_prtype(int token);
│ │ │ │ -
1300int tds_get_varint_size(TDSCONNECTION * conn, int datatype);
│ │ │ │ -
1301TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int usertype);
│ │ │ │ -
1302
│ │ │ │ -
1303
│ │ │ │ -
1304/* iconv.c */
│ │ │ │ -
1305TDSRET tds_iconv_open(TDSCONNECTION * conn, const char *charset, int use_utf16);
│ │ │ │ -
1306void tds_iconv_close(TDSCONNECTION * conn);
│ │ │ │ -
1307void tds_srv_charset_changed(TDSCONNECTION * conn, const char *charset);
│ │ │ │ -
1308void tds7_srv_charset_changed(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
│ │ │ │ -
1309int tds_iconv_alloc(TDSCONNECTION * conn);
│ │ │ │ -
1310void tds_iconv_free(TDSCONNECTION * conn);
│ │ │ │ -
1311TDSICONV *tds_iconv_from_collate(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
│ │ │ │ -
1312
│ │ │ │ -
1313
│ │ │ │ -
1314/* mem.c */
│ │ │ │ -
1315void tds_free_socket(TDSSOCKET * tds);
│ │ │ │ -
1316void tds_free_all_results(TDSSOCKET * tds);
│ │ │ │ -
1317void tds_free_results(TDSRESULTINFO * res_info);
│ │ │ │ -
1318void tds_free_param_results(TDSPARAMINFO * param_info);
│ │ │ │ -
1319void tds_free_param_result(TDSPARAMINFO * param_info);
│ │ │ │ -
1320void tds_free_msg(TDSMESSAGE * message);
│ │ │ │ -
1321void tds_cursor_deallocated(TDSCONNECTION *conn, TDSCURSOR *cursor);
│ │ │ │ -
1322void tds_release_cursor(TDSCURSOR **pcursor);
│ │ │ │ -
1323void tds_free_bcp_column_data(BCPCOLDATA * coldata);
│ │ │ │ -
1324TDSRESULTINFO *tds_alloc_results(TDS_USMALLINT num_cols);
│ │ │ │ -
1325TDSCOMPUTEINFO **tds_alloc_compute_results(TDSSOCKET * tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols);
│ │ │ │ -
1326TDSCONTEXT *tds_alloc_context(void * parent);
│ │ │ │ -
1327void tds_free_context(TDSCONTEXT * locale);
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1330void tds_release_dynamic(TDSDYNAMIC ** dyn);
│ │ │ │ -
1331static inline
│ │ │ │ -
1332void tds_release_cur_dyn(TDSSOCKET * tds)
│ │ │ │ -
1333{
│ │ │ │ - │ │ │ │ -
1335}
│ │ │ │ -
1336void tds_dynamic_deallocated(TDSCONNECTION *conn, TDSDYNAMIC *dyn);
│ │ │ │ -
1337void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn);
│ │ │ │ -
1338TDSSOCKET *tds_realloc_socket(TDSSOCKET * tds, size_t bufsize);
│ │ │ │ -
1339char *tds_alloc_client_sqlstate(int msgno);
│ │ │ │ -
1340char *tds_alloc_lookup_sqlstate(TDSSOCKET * tds, int msgno);
│ │ │ │ -
1341TDSLOGIN *tds_alloc_login(int use_environment);
│ │ │ │ -
1342TDSDYNAMIC *tds_alloc_dynamic(TDSCONNECTION * conn, const char *id);
│ │ │ │ -
1343void tds_free_login(TDSLOGIN * login);
│ │ │ │ -
1344TDSLOGIN *tds_init_login(TDSLOGIN * login, TDSLOCALE * locale);
│ │ │ │ -
1345TDSLOCALE *tds_alloc_locale(void);
│ │ │ │ -
1346void *tds_alloc_param_data(TDSCOLUMN * curparam);
│ │ │ │ -
1347void tds_free_locale(TDSLOCALE * locale);
│ │ │ │ -
1348TDSCURSOR * tds_alloc_cursor(TDSSOCKET * tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen);
│ │ │ │ -
1349void tds_free_row(TDSRESULTINFO * res_info, unsigned char *row);
│ │ │ │ -
1350TDSSOCKET *tds_alloc_socket(TDSCONTEXT * context, unsigned int bufsize);
│ │ │ │ -
1351TDSSOCKET *tds_alloc_additional_socket(TDSCONNECTION *conn);
│ │ │ │ -
1352void tds_set_current_results(TDSSOCKET *tds, TDSRESULTINFO *info);
│ │ │ │ - │ │ │ │ -
1354void * tds_realloc(void **pp, size_t new_size);
│ │ │ │ -
1355#define TDS_RESIZE(p, n_elem) \
│ │ │ │ -
1356 tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
│ │ │ │ -
1357#define tds_new(type, n) ((type *) malloc(sizeof(type) * (n)))
│ │ │ │ -
1358#define tds_new0(type, n) ((type *) calloc(n, sizeof(type)))
│ │ │ │ -
1359
│ │ │ │ -
1360TDSPACKET *tds_alloc_packet(void *buf, unsigned len);
│ │ │ │ -
1361TDSPACKET *tds_realloc_packet(TDSPACKET *packet, unsigned len);
│ │ │ │ -
1362void tds_free_packets(TDSPACKET *packet);
│ │ │ │ -
1363TDSBCPINFO *tds_alloc_bcpinfo(void);
│ │ │ │ -
1364void tds_free_bcpinfo(TDSBCPINFO *bcpinfo);
│ │ │ │ -
1365void tds_deinit_bcpinfo(TDSBCPINFO *bcpinfo);
│ │ │ │ -
1366
│ │ │ │ -
1367
│ │ │ │ -
1368/* login.c */
│ │ │ │ -
1369void tds_set_packet(TDSLOGIN * tds_login, int packet_size);
│ │ │ │ -
1370void tds_set_port(TDSLOGIN * tds_login, int port);
│ │ │ │ -
1371bool tds_set_passwd(TDSLOGIN * tds_login, const char *password) TDS_WUR;
│ │ │ │ -
1372void tds_set_bulk(TDSLOGIN * tds_login, bool enabled);
│ │ │ │ -
1373bool tds_set_user(TDSLOGIN * tds_login, const char *username) TDS_WUR;
│ │ │ │ -
1374bool tds_set_app(TDSLOGIN * tds_login, const char *application) TDS_WUR;
│ │ │ │ -
1375bool tds_set_host(TDSLOGIN * tds_login, const char *hostname) TDS_WUR;
│ │ │ │ -
1376bool tds_set_library(TDSLOGIN * tds_login, const char *library) TDS_WUR;
│ │ │ │ -
1377bool tds_set_server(TDSLOGIN * tds_login, const char *server) TDS_WUR;
│ │ │ │ -
1378bool tds_set_client_charset(TDSLOGIN * tds_login, const char *charset) TDS_WUR;
│ │ │ │ -
1379bool tds_set_language(TDSLOGIN * tds_login, const char *language) TDS_WUR;
│ │ │ │ -
1380void tds_set_version(TDSLOGIN * tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver);
│ │ │ │ -
1381int tds_connect_and_login(TDSSOCKET * tds, TDSLOGIN * login);
│ │ │ │ -
1382
│ │ │ │ -
1383
│ │ │ │ -
1384/* query.c */
│ │ │ │ -
1385void tds_start_query(TDSSOCKET *tds, unsigned char packet_type);
│ │ │ │ -
1386
│ │ │ │ -
1387TDSRET tds_submit_query(TDSSOCKET * tds, const char *query);
│ │ │ │ -
1388TDSRET tds_submit_query_params(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
│ │ │ │ -
1389TDSRET tds_submit_queryf(TDSSOCKET * tds, const char *queryf, ...);
│ │ │ │ -
1390TDSRET tds_submit_prepare(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
│ │ │ │ -
1391TDSRET tds_submit_execdirect(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
│ │ │ │ -
1392TDSRET tds71_submit_prepexec(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
│ │ │ │ -
1393TDSRET tds_submit_execute(TDSSOCKET * tds, TDSDYNAMIC * dyn);
│ │ │ │ -
1394TDSRET tds_send_cancel(TDSSOCKET * tds);
│ │ │ │ -
1395const char *tds_next_placeholder(const char *start);
│ │ │ │ -
1396int tds_count_placeholders(const char *query);
│ │ │ │ - │ │ │ │ -
1398TDSRET tds_deferred_unprepare(TDSCONNECTION * conn, TDSDYNAMIC * dyn);
│ │ │ │ -
1399TDSRET tds_submit_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn);
│ │ │ │ -
1400TDSRET tds_submit_rpc(TDSSOCKET * tds, const char *rpc_name, TDSPARAMINFO * params, TDSHEADERS * head);
│ │ │ │ -
1401TDSRET tds_submit_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size);
│ │ │ │ -
1402TDSRET tds_submit_begin_tran(TDSSOCKET *tds);
│ │ │ │ -
1403TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont);
│ │ │ │ -
1404TDSRET tds_submit_commit(TDSSOCKET *tds, int cont);
│ │ │ │ -
1405TDSRET tds_disconnect(TDSSOCKET * tds);
│ │ │ │ -
1406size_t tds_quote_id(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
│ │ │ │ -
1407size_t tds_quote_id_rpc(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
│ │ │ │ -
1408size_t tds_quote_string(TDSSOCKET * tds, char *buffer, const char *str, int len);
│ │ │ │ -
1409const char *tds_skip_comment(const char *s);
│ │ │ │ -
1410const char *tds_skip_quoted(const char *s);
│ │ │ │ -
1411size_t tds_fix_column_size(TDSSOCKET * tds, TDSCOLUMN * curcol);
│ │ │ │ -
1412const char *tds_convert_string(TDSSOCKET * tds, TDSICONV * char_conv, const char *s, int len, size_t *out_len);
│ │ │ │ -
1413void tds_convert_string_free(const char *original, const char *converted);
│ │ │ │ -
1414#if !ENABLE_EXTRA_CHECKS
│ │ │ │ -
1415#define tds_convert_string_free(original, converted) \
│ │ │ │ -
1416 do { if (original != converted) free((char*) converted); } while(0)
│ │ │ │ -
1417#endif
│ │ │ │ -
1418TDSRET tds_get_column_declaration(TDSSOCKET * tds, TDSCOLUMN * curcol, char *out);
│ │ │ │ -
1419
│ │ │ │ -
1420TDSRET tds_cursor_declare(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
│ │ │ │ -
1421TDSRET tds_cursor_setrows(TDSSOCKET * tds, TDSCURSOR * cursor, int *send);
│ │ │ │ -
1422TDSRET tds_cursor_open(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
│ │ │ │ -
1423TDSRET tds_cursor_fetch(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row);
│ │ │ │ -
1424TDSRET tds_cursor_get_cursor_info(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_UINT * row_number, TDS_UINT * row_count);
│ │ │ │ -
1425TDSRET tds_cursor_close(TDSSOCKET * tds, TDSCURSOR * cursor);
│ │ │ │ -
1426TDSRET tds_cursor_dealloc(TDSSOCKET * tds, TDSCURSOR * cursor);
│ │ │ │ - │ │ │ │ -
1428TDSRET tds_cursor_update(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO * params);
│ │ │ │ -
1429TDSRET tds_cursor_setname(TDSSOCKET * tds, TDSCURSOR * cursor);
│ │ │ │ -
1430
│ │ │ │ -
1431TDSRET tds_multiple_init(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS * head);
│ │ │ │ -
1432TDSRET tds_multiple_done(TDSSOCKET *tds, TDSMULTIPLE *multiple);
│ │ │ │ -
1433TDSRET tds_multiple_query(TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO * params);
│ │ │ │ -
1434TDSRET tds_multiple_execute(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC * dyn);
│ │ │ │ -
1435
│ │ │ │ -
1436
│ │ │ │ -
1437/* token.c */
│ │ │ │ -
1438TDSRET tds_process_cancel(TDSSOCKET * tds);
│ │ │ │ -
1439int tds_get_token_size(int marker);
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1442int tds5_send_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG * tds_argument,
│ │ │ │ -
1443 TDS_INT * tds_argsize);
│ │ │ │ -
1444TDSRET tds_process_tokens(TDSSOCKET * tds, /*@out@*/ TDS_INT * result_type, /*@out@*/ int *done_flags, unsigned flag);
│ │ │ │ -
1445
│ │ │ │ -
1446
│ │ │ │ -
1447/* data.c */
│ │ │ │ -
1448void tds_set_param_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
│ │ │ │ -
1449void tds_set_column_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
│ │ │ │ -
1450#ifdef WORDS_BIGENDIAN
│ │ │ │ -
1451void tds_swap_datatype(int coltype, void *b);
│ │ │ │ -
1452#endif
│ │ │ │ -
1453
│ │ │ │ -
1454
│ │ │ │ -
1455/* tds_convert.c */
│ │ │ │ -
1456TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC * dr);
│ │ │ │ -
1457TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize);
│ │ │ │ -
1458extern const char tds_hex_digits[];
│ │ │ │ -
1459
│ │ │ │ -
1460
│ │ │ │ -
1461/* write.c */
│ │ │ │ -
1462int tds_init_write_buf(TDSSOCKET * tds);
│ │ │ │ -
1463int tds_put_n(TDSSOCKET * tds, const void *buf, size_t n);
│ │ │ │ -
1464int tds_put_string(TDSSOCKET * tds, const char *buf, int len);
│ │ │ │ -
1465int tds_put_int(TDSSOCKET * tds, TDS_INT i);
│ │ │ │ -
1466int tds_put_int8(TDSSOCKET * tds, TDS_INT8 i);
│ │ │ │ -
1467int tds_put_smallint(TDSSOCKET * tds, TDS_SMALLINT si);
│ │ │ │ -
1469#define tds_put_tinyint(tds, ti) tds_put_byte(tds,ti)
│ │ │ │ -
1470int tds_put_byte(TDSSOCKET * tds, unsigned char c);
│ │ │ │ -
1471TDSRET tds_flush_packet(TDSSOCKET * tds);
│ │ │ │ -
1472int tds_put_buf(TDSSOCKET * tds, const unsigned char *buf, int dsize, int ssize);
│ │ │ │ -
1473
│ │ │ │ -
1474
│ │ │ │ -
1475/* read.c */
│ │ │ │ -
1476unsigned char tds_get_byte(TDSSOCKET * tds);
│ │ │ │ -
1477void tds_unget_byte(TDSSOCKET * tds);
│ │ │ │ -
1478unsigned char tds_peek(TDSSOCKET * tds);
│ │ │ │ -
1479TDS_USMALLINT tds_get_usmallint(TDSSOCKET * tds);
│ │ │ │ -
1480#define tds_get_smallint(tds) ((TDS_SMALLINT) tds_get_usmallint(tds))
│ │ │ │ -
1481TDS_UINT tds_get_uint(TDSSOCKET * tds);
│ │ │ │ -
1482#define tds_get_int(tds) ((TDS_INT) tds_get_uint(tds))
│ │ │ │ -
1483TDS_UINT8 tds_get_uint8(TDSSOCKET * tds);
│ │ │ │ -
1484#define tds_get_int8(tds) ((TDS_INT8) tds_get_uint8(tds))
│ │ │ │ -
1485size_t tds_get_string(TDSSOCKET * tds, size_t string_len, char *dest, size_t dest_size);
│ │ │ │ -
1486TDSRET tds_get_char_data(TDSSOCKET * tds, char *dest, size_t wire_size, TDSCOLUMN * curcol);
│ │ │ │ -
1487bool tds_get_n(TDSSOCKET * tds, /*@out@*/ /*@null@*/ void *dest, size_t n);
│ │ │ │ -
1488int tds_get_size_by_type(TDS_SERVER_TYPE servertype);
│ │ │ │ -
1489DSTR* tds_dstr_get(TDSSOCKET * tds, DSTR * s, size_t len);
│ │ │ │ -
1490
│ │ │ │ -
1491
│ │ │ │ -
1492/* util.c */
│ │ │ │ -
1493int tdserror (const TDSCONTEXT * tds_ctx, TDSSOCKET * tds, int msgno, int errnum);
│ │ │ │ - │ │ │ │ -
1495void tds_swap_bytes(void *buf, int bytes);
│ │ │ │ -
1496unsigned int tds_gettime_ms(void);
│ │ │ │ -
1497char *tds_strndup(const void *s, TDS_INTPTR len);
│ │ │ │ -
1498
│ │ │ │ -
1499
│ │ │ │ -
1500/* log.c */
│ │ │ │ -
│ │ │ │ -
1501typedef struct tdsdump_off_item {
│ │ │ │ -
1502 struct tdsdump_off_item *next;
│ │ │ │ -
1503 tds_thread_id thread_id;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
1505void tdsdump_off(TDSDUMP_OFF_ITEM *off_item);
│ │ │ │ -
1506void tdsdump_on(TDSDUMP_OFF_ITEM *off_item);
│ │ │ │ -
1507int tdsdump_isopen(void);
│ │ │ │ -
1508#include <freetds/popvis.h>
│ │ │ │ -
1509int tdsdump_open(const char *filename);
│ │ │ │ -
1510#include <freetds/pushvis.h>
│ │ │ │ -
1511void tdsdump_close(void);
│ │ │ │ -
1512void tdsdump_dump_buf(const char* file, unsigned int level_line, const char *msg, const void *buf, size_t length);
│ │ │ │ -
1513void tdsdump_col(const TDSCOLUMN *col);
│ │ │ │ -
1514#undef tdsdump_log
│ │ │ │ -
1515void tdsdump_log(const char* file, unsigned int level_line, const char *fmt, ...)
│ │ │ │ -
1516#if defined(__GNUC__) && __GNUC__ >= 2
│ │ │ │ -
1517#if defined(__MINGW32__)
│ │ │ │ -
1518 __attribute__ ((__format__ (ms_printf, 3, 4)))
│ │ │ │ -
1519#else
│ │ │ │ -
1520 __attribute__ ((__format__ (__printf__, 3, 4)))
│ │ │ │ -
1521#endif
│ │ │ │ -
1522#endif
│ │ │ │ -
1523;
│ │ │ │ -
1524#define TDSDUMP_LOG_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log
│ │ │ │ -
1525#define tdsdump_log TDSDUMP_LOG_FAST
│ │ │ │ -
1526#define TDSDUMP_BUF_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf
│ │ │ │ -
1527#define tdsdump_dump_buf TDSDUMP_BUF_FAST
│ │ │ │ -
1528
│ │ │ │ -
1529extern int tds_write_dump;
│ │ │ │ -
1530extern int tds_debug_flags;
│ │ │ │ -
1531extern int tds_g_append_mode;
│ │ │ │ -
1532
│ │ │ │ -
1533
│ │ │ │ -
1534/* net.c */
│ │ │ │ -
1535TDSERRNO tds_open_socket(TDSSOCKET * tds, struct addrinfo *ipaddr, unsigned int port, int timeout, int *p_oserr);
│ │ │ │ -
1536void tds_close_socket(TDSSOCKET * tds);
│ │ │ │ -
1537int tds7_get_instance_ports(FILE *output, struct addrinfo *addr);
│ │ │ │ -
1538int tds7_get_instance_port(struct addrinfo *addr, const char *instance);
│ │ │ │ -
1539char *tds_prwsaerror(int erc);
│ │ │ │ -
1540void tds_prwsaerror_free(char *s);
│ │ │ │ -
1541int tds_connection_read(TDSSOCKET * tds, unsigned char *buf, int buflen);
│ │ │ │ -
1542int tds_connection_write(TDSSOCKET *tds, const unsigned char *buf, int buflen, int final);
│ │ │ │ -
1543#define TDSSELREAD POLLIN
│ │ │ │ -
1544#define TDSSELWRITE POLLOUT
│ │ │ │ -
1545int tds_select(TDSSOCKET * tds, unsigned tds_sel, int timeout_seconds);
│ │ │ │ -
1546void tds_connection_close(TDSCONNECTION *conn);
│ │ │ │ -
1547int tds_goodread(TDSSOCKET * tds, unsigned char *buf, int buflen);
│ │ │ │ -
1548int tds_goodwrite(TDSSOCKET * tds, const unsigned char *buffer, size_t buflen);
│ │ │ │ -
1549void tds_socket_flush(TDS_SYS_SOCKET sock);
│ │ │ │ -
1550int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock);
│ │ │ │ -
1551int tds_wakeup_init(TDSPOLLWAKEUP *wakeup);
│ │ │ │ -
1552void tds_wakeup_close(TDSPOLLWAKEUP *wakeup);
│ │ │ │ -
1553void tds_wakeup_send(TDSPOLLWAKEUP *wakeup, char cancel);
│ │ │ │ -
1554static inline TDS_SYS_SOCKET tds_wakeup_get_fd(const TDSPOLLWAKEUP *wakeup)
│ │ │ │ -
1555{
│ │ │ │ -
1556 return wakeup->s_signaled;
│ │ │ │ -
1557}
│ │ │ │ -
1558
│ │ │ │ -
1559
│ │ │ │ -
1560/* packet.c */
│ │ │ │ -
1561int tds_read_packet(TDSSOCKET * tds);
│ │ │ │ -
1562TDSRET tds_write_packet(TDSSOCKET * tds, unsigned char final);
│ │ │ │ -
1563#if ENABLE_ODBC_MARS
│ │ │ │ -
1564int tds_append_cancel(TDSSOCKET *tds);
│ │ │ │ -
1565TDSRET tds_append_syn(TDSSOCKET *tds);
│ │ │ │ -
1566TDSRET tds_append_fin(TDSSOCKET *tds);
│ │ │ │ -
1567#else
│ │ │ │ -
1568int tds_put_cancel(TDSSOCKET * tds);
│ │ │ │ -
1569#endif
│ │ │ │ -
1570
│ │ │ │ -
│ │ │ │ -
1571typedef struct tds_freeze {
│ │ │ │ - │ │ │ │ - │ │ │ │ -
1577 unsigned pkt_pos;
│ │ │ │ -
1579 unsigned size_len;
│ │ │ │ -
1580} TDSFREEZE;
│ │ │ │ -
│ │ │ │ -
1581
│ │ │ │ -
1582void tds_freeze(TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len);
│ │ │ │ -
1583size_t tds_freeze_written(TDSFREEZE *freeze);
│ │ │ │ -
1584TDSRET tds_freeze_abort(TDSFREEZE *freeze);
│ │ │ │ -
1585TDSRET tds_freeze_close(TDSFREEZE *freeze);
│ │ │ │ -
1586TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size);
│ │ │ │ -
1587
│ │ │ │ -
1588static void inline
│ │ │ │ -
1589tds_set_current_send_packet(TDSSOCKET *tds, TDSPACKET *pkt)
│ │ │ │ -
1590{
│ │ │ │ -
1591 tds->send_packet = pkt;
│ │ │ │ -
1592 tds->out_buf = pkt->buf + tds_packet_get_data_start(pkt);
│ │ │ │ -
1593}
│ │ │ │ -
1594
│ │ │ │ -
1595/* Macros to allow some indentation of the packets.
│ │ │ │ -
1596 *
│ │ │ │ -
1597 * The 3 nested fake loops require some explanation:
│ │ │ │ -
1598 * - first is to allows to declare variables;
│ │ │ │ -
1599 * - second is to force using brackets;
│ │ │ │ -
1600 * - third is to avoids that a break inside will skip the close.
│ │ │ │ -
1601 */
│ │ │ │ -
1602#define TDS_START_LEN_GENERIC(tds_socket, len) do { \
│ │ │ │ -
1603 TDSFREEZE current_freeze[1]; \
│ │ │ │ -
1604 tds_freeze((tds_socket), current_freeze, (len)); do { do
│ │ │ │ -
1605#define TDS_END_LEN while(0); } while(tds_freeze_close(current_freeze), 0); } while(0);
│ │ │ │ -
1606
│ │ │ │ -
1607#define TDS_START_LEN_TINYINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 1)
│ │ │ │ -
1608#define TDS_START_LEN_USMALLINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 2)
│ │ │ │ -
1609#define TDS_START_LEN_UINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 4)
│ │ │ │ -
1610
│ │ │ │ -
1611/* vstrbuild.c */
│ │ │ │ -
1612TDSRET tds_vstrbuild(char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen,
│ │ │ │ -
1613 va_list ap);
│ │ │ │ -
1614
│ │ │ │ -
1615
│ │ │ │ -
1616/* numeric.c */
│ │ │ │ -
1617char *tds_money_to_string(const TDS_MONEY * money, char *s, bool use_2_digits);
│ │ │ │ -
1618TDS_INT tds_numeric_to_string(const TDS_NUMERIC * numeric, char *s);
│ │ │ │ -
1619TDS_INT tds_numeric_change_prec_scale(TDS_NUMERIC * numeric, unsigned char new_prec, unsigned char new_scale);
│ │ │ │ -
1620
│ │ │ │ -
1621
│ │ │ │ -
1622/* getmac.c */
│ │ │ │ -
1623void tds_getmac(TDS_SYS_SOCKET s, unsigned char mac[6]);
│ │ │ │ -
1624
│ │ │ │ -
1625
│ │ │ │ -
1626/* challenge.c */
│ │ │ │ -
1627#ifndef HAVE_SSPI
│ │ │ │ - │ │ │ │ -
1629TDSAUTHENTICATION * tds_gss_get_auth(TDSSOCKET * tds);
│ │ │ │ -
1630#else
│ │ │ │ -
1631TDSAUTHENTICATION * tds_sspi_get_auth(TDSSOCKET * tds);
│ │ │ │ -
1632#endif
│ │ │ │ -
1633TDSRET tds5_gss_send(TDSSOCKET *tds);
│ │ │ │ -
1634
│ │ │ │ -
1635
│ │ │ │ -
1636/* random.c */
│ │ │ │ -
1637void tds_random_buffer(unsigned char *out, int len);
│ │ │ │ -
1638
│ │ │ │ -
1639
│ │ │ │ -
1640/* sec_negotiate.c */
│ │ │ │ -
1641TDSAUTHENTICATION * tds5_negotiate_get_auth(TDSSOCKET * tds);
│ │ │ │ -
1642static inline
│ │ │ │ -
1643void tds5_negotiate_set_msg_type(TDSAUTHENTICATION * tds_auth, unsigned msg_type)
│ │ │ │ -
1644{
│ │ │ │ -
1645 if (tds_auth)
│ │ │ │ -
1646 tds_auth->msg_type = msg_type;
│ │ │ │ -
1647}
│ │ │ │ -
1648
│ │ │ │ -
1649
│ │ │ │ -
1650/* bulk.c */
│ │ │ │ -
1651
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1654{
│ │ │ │ -
1655 TDS_BCP_IN = 1,
│ │ │ │ -
1656 TDS_BCP_OUT = 2,
│ │ │ │ -
1657 TDS_BCP_QUERYOUT = 3
│ │ │ │ -
1658};
│ │ │ │ -
│ │ │ │ -
1659
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
1661{
│ │ │ │ -
1662 const char *hint;
│ │ │ │ -
1663 void *parent;
│ │ │ │ -
1664 DSTR tablename;
│ │ │ │ -
1665 TDS_CHAR *insert_stmt;
│ │ │ │ -
1666 TDS_INT direction;
│ │ │ │ -
1667 TDS_INT identity_insert_on;
│ │ │ │ -
1668 TDS_INT xfer_init;
│ │ │ │ -
1669 TDS_INT bind_count;
│ │ │ │ -
1670 TDSRESULTINFO *bindinfo;
│ │ │ │ -
1671};
│ │ │ │ -
│ │ │ │ -
1672
│ │ │ │ -
1673TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
│ │ │ │ -
1674typedef TDSRET (*tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset);
│ │ │ │ -
1675typedef void (*tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset);
│ │ │ │ -
1676TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset);
│ │ │ │ -
1677TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied);
│ │ │ │ -
1678TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
│ │ │ │ -
1679TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
│ │ │ │ -
1680
│ │ │ │ -
1681TDSRET tds_bcp_fread(TDSSOCKET * tds, TDSICONV * conv, FILE * stream,
│ │ │ │ -
1682 const char *terminator, size_t term_len, char **outbuf, size_t * outbytes);
│ │ │ │ -
1683
│ │ │ │ -
1684TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size);
│ │ │ │ -
1685TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size);
│ │ │ │ -
1686TDSRET tds_writetext_end(TDSSOCKET *tds);
│ │ │ │ -
1687
│ │ │ │ -
1688
│ │ │ │ -
1689static inline
│ │ │ │ -
1690bool tds_capability_enabled(const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
│ │ │ │ -
1691{
│ │ │ │ -
1692 return (cap->values[sizeof(cap->values)-1-(cap_num>>3)] >> (cap_num&7)) & 1;
│ │ │ │ -
1693}
│ │ │ │ -
1694#define tds_capability_has_req(conn, cap) \
│ │ │ │ -
1695 tds_capability_enabled(&conn->capabilities.types[0], cap)
│ │ │ │ -
1696#define tds_capability_has_res(conn, cap) \
│ │ │ │ -
1697 tds_capability_enabled(&conn->capabilities.types[1], cap)
│ │ │ │ -
1698
│ │ │ │ -
1699#define IS_TDS42(x) (x->tds_version==0x402)
│ │ │ │ -
1700#define IS_TDS46(x) (x->tds_version==0x406)
│ │ │ │ -
1701#define IS_TDS50(x) (x->tds_version==0x500)
│ │ │ │ -
1702#define IS_TDS70(x) (x->tds_version==0x700)
│ │ │ │ -
1703#define IS_TDS71(x) (x->tds_version==0x701)
│ │ │ │ -
1704#define IS_TDS72(x) (x->tds_version==0x702)
│ │ │ │ -
1705#define IS_TDS73(x) (x->tds_version==0x703)
│ │ │ │ -
1706
│ │ │ │ -
1707#define IS_TDS50_PLUS(x) ((x)->tds_version>=0x500)
│ │ │ │ -
1708#define IS_TDS7_PLUS(x) ((x)->tds_version>=0x700)
│ │ │ │ -
1709#define IS_TDS71_PLUS(x) ((x)->tds_version>=0x701)
│ │ │ │ -
1710#define IS_TDS72_PLUS(x) ((x)->tds_version>=0x702)
│ │ │ │ -
1711#define IS_TDS73_PLUS(x) ((x)->tds_version>=0x703)
│ │ │ │ -
1712#define IS_TDS74_PLUS(x) ((x)->tds_version>=0x704)
│ │ │ │ -
1713
│ │ │ │ -
1714#define TDS_MAJOR(x) ((x)->tds_version >> 8)
│ │ │ │ -
1715#define TDS_MINOR(x) ((x)->tds_version & 0xff)
│ │ │ │ -
1716
│ │ │ │ -
1717#define IS_TDSDEAD(x) (((x) == NULL) || (x)->state == TDS_DEAD)
│ │ │ │ -
1718
│ │ │ │ -
1720#define TDS_IS_SYBASE(x) (!((x)->conn->product_version & 0x80000000u))
│ │ │ │ -
1722#define TDS_IS_MSSQL(x) (((x)->conn->product_version & 0x80000000u)!=0)
│ │ │ │ -
1723
│ │ │ │ -
1727#define TDS_MS_VER(maj,min,x) (0x80000000u|((maj)<<24)|((min)<<16)|(x))
│ │ │ │ -
1728
│ │ │ │ -
1729/* TODO test if not similar to ms one*/
│ │ │ │ -
1731#define TDS_SYB_VER(maj,min,x) (((maj)<<24)|((min)<<16)|(x)<<8)
│ │ │ │ -
1732
│ │ │ │ -
1733#ifdef __cplusplus
│ │ │ │ -
1734#if 0
│ │ │ │ -
1735{
│ │ │ │ -
1736#endif
│ │ │ │ -
1737}
│ │ │ │ -
1738#endif
│ │ │ │ -
1739
│ │ │ │ -
1740#include <freetds/popvis.h>
│ │ │ │ -
1741
│ │ │ │ -
1742#define TDS_PUT_INT(tds,v) tds_put_int((tds), ((TDS_INT)(v)))
│ │ │ │ -
1743#define TDS_PUT_SMALLINT(tds,v) tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
│ │ │ │ -
1744#define TDS_PUT_BYTE(tds,v) tds_put_byte((tds), ((unsigned char)(v)))
│ │ │ │ -
1745
│ │ │ │ -
1746#endif /* _tds_h_ */
│ │ │ │ -
int tds_iconv_alloc(TDSCONNECTION *conn)
Allocate iconv stuff.
Definition iconv.c:307
│ │ │ │ -
TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
Return type suitable for conversions (convert all nullable types to fixed type)
Definition tds_types.h:125
│ │ │ │ -
char * tds_strndup(const void *s, TDS_INTPTR len)
Copy a string of length len to a new allocated buffer This function does not read more than len bytes...
Definition util.c:406
│ │ │ │ -
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition util.c:58
│ │ │ │ -
struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
A structure to hold all the compile-time settings.
│ │ │ │ -
struct tds_result_info TDSRESULTINFO
Hold information for any results.
│ │ │ │ -
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition log.c:131
│ │ │ │ -
struct tds_variant TDSVARIANT
Store variant informations.
│ │ │ │ -
void tdsdump_close(void)
Close the TDS dump log file.
Definition log.c:212
│ │ │ │ -
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition data.c:224
│ │ │ │ -
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition login.c:129
│ │ │ │ -
struct tdsdaterec TDSDATEREC
Used by tds_datecrack.
│ │ │ │ -
TDSLOCALE * tds_get_locale(void)
Get locale information.
Definition locale.c:50
│ │ │ │ -
struct tds_env TDSENV
Current environment as reported by the server.
│ │ │ │ -
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition log.c:58
│ │ │ │ -
struct tds_blob TDSBLOB
Information about blobs (e.g.
│ │ │ │ -
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition tds_types.h:9
│ │ │ │ -
const int tds_numeric_bytes_per_prec[]
The following little table is indexed by precision and will tell us the number of bytes required to s...
Definition numeric.c:41
│ │ │ │ -
TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start bulk copy to server.
Definition bulk.c:916
│ │ │ │ -
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition numeric.c:95
│ │ │ │ -
int tds_get_varint_size(TDSCONNECTION *conn, int datatype)
tds_get_varint_size() returns the size of a variable length integer returned in a result string
Definition tds_types.h:57
│ │ │ │ -
TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
Start writing writetext request.
Definition bulk.c:1147
│ │ │ │ -
TDSRET tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
Read a data file, passing the data through iconv().
Definition bulk.c:1077
│ │ │ │ -
TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start sending BCP data to server.
Definition bulk.c:866
│ │ │ │ -
struct tds_dynamic TDSDYNAMIC
Holds information for a dynamic (also called prepared) query.
│ │ │ │ -
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition data.c:246
│ │ │ │ -
tds_states
values for tds->state
Definition tds.h:789
│ │ │ │ -
@ TDS_PENDING
cilent is waiting for data
Definition tds.h:793
│ │ │ │ -
@ TDS_SENDING
client would send data
Definition tds.h:792
│ │ │ │ -
@ TDS_READING
client is reading data
Definition tds.h:794
│ │ │ │ -
@ TDS_WRITING
client is writing data
Definition tds.h:791
│ │ │ │ -
@ TDS_IDLE
no data expected
Definition tds.h:790
│ │ │ │ -
@ TDS_DEAD
no connection
Definition tds.h:795
│ │ │ │ -
tds_end
Flags returned in TDS_DONE token.
Definition tds.h:250
│ │ │ │ -
@ TDS_DONE_CANCELLED
acknowledging an attention command (usually a cancel)
Definition tds.h:257
│ │ │ │ -
@ TDS_DONE_MORE_RESULTS
more results follow
Definition tds.h:252
│ │ │ │ -
@ TDS_DONE_SRVERROR
SQL server server error.
Definition tds.h:259
│ │ │ │ -
@ TDS_DONE_FINAL
final result set, command completed successfully.
Definition tds.h:251
│ │ │ │ -
@ TDS_DONE_ERROR
error occurred
Definition tds.h:253
│ │ │ │ -
@ TDS_DONE_INXACT
transaction in progress
Definition tds.h:254
│ │ │ │ -
@ TDS_DONE_PROC
results are from a stored procedure
Definition tds.h:255
│ │ │ │ -
@ TDS_DONE_COUNT
count field in packet is valid
Definition tds.h:256
│ │ │ │ -
void tdsdump_col(const TDSCOLUMN *col)
Write a column value to the debug log.
Definition log.c:455
│ │ │ │ -
TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
Send some data in the writetext request started by tds_writetext_start.
Definition bulk.c:1185
│ │ │ │ -
int tdserror(const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
Call the client library's error handler (for library-generated errors only)
Definition util.c:321
│ │ │ │ -
enum tds_states TDS_STATE
values for tds->state
│ │ │ │ -
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition bulk.c:1202
│ │ │ │ -
TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Initialize BCP information.
Definition bulk.c:84
│ │ │ │ -
tds_bcp_directions
bcp direction
Definition tds.h:1654
│ │ │ │ -
TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
Send one row of data to server.
Definition bulk.c:468
│ │ │ │ -
TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied)
Tell we finished sending BCP data to server.
Definition bulk.c:836
│ │ │ │ -
struct tds_encoding TDS_ENCODING
Information relevant to libiconv.
│ │ │ │ -
void tdsdump_off(TDSDUMP_OFF_ITEM *off_item)
Temporarily turn off logging for current thread.
Definition log.c:81
│ │ │ │ -
void tdsdump_on(TDSDUMP_OFF_ITEM *off_item)
Turn logging back on for current thread.
Definition log.c:101
│ │ │ │ -
struct tds_cursor TDSCURSOR
Holds informations about a cursor.
│ │ │ │ -
TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds)
Build a NTLMSPP packet to send to server.
Definition challenge.c:721
│ │ │ │ -
TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login)
Set TDS version from given string.
Definition config.c:923
│ │ │ │ -
const TDS_COMPILETIME_SETTINGS * tds_get_compiletime_settings(void)
Return a structure capturing the compile-time settings provided to the configure script.
Definition config.c:1344
│ │ │ │ -
struct addrinfo * tds_lookup_host(const char *servername)
Get the IP address for a hostname.
Definition config.c:987
│ │ │ │ -
bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param)
Read a section of configuration file (INI style file)
Definition config.c:503
│ │ │ │ -
bool tds_read_conf_file(TDSLOGIN *login, const char *server)
Read configuration info for given server return 0 on error.
Definition config.c:346
│ │ │ │ -
TDSRET tds_set_interfaces_file_loc(const char *interfloc)
Set the full name of interface file.
Definition config.c:961
│ │ │ │ -
char * tds_get_home_file(const char *file)
Return filename from HOME directory.
Definition config.c:325
│ │ │ │ -
TDSLOGIN * tds_read_config_info(TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
tds_read_config_info() will fill the tds connection structure based on configuration information gath...
Definition config.c:138
│ │ │ │ -
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition config.c:285
│ │ │ │ -
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition convert.c:3172
│ │ │ │ -
TDSICONV * tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5])
Get iconv information from a LCID (to support different column encoding under MSSQL2K)
Definition iconv.c:1245
│ │ │ │ -
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition mem.c:524
│ │ │ │ -
void tds_detach_results(TDSRESULTINFO *info)
Detach result info from it current socket.
Definition mem.c:488
│ │ │ │ -
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition mem.c:284
│ │ │ │ -
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition mem.c:364
│ │ │ │ -
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition mem.c:800
│ │ │ │ -
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition mem.c:320
│ │ │ │ -
TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id)
Allocate a dynamic statement.
Definition mem.c:160
│ │ │ │ -
void * tds_realloc(void **pp, size_t new_size)
Reallocate a pointer and update it if success.
Definition mem.c:1876
│ │ │ │ -
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition mem.c:206
│ │ │ │ -
void tds_release_dynamic(TDSDYNAMIC **dyn)
Frees dynamic statement.
Definition mem.c:253
│ │ │ │ -
int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Check if dynamic request must be unprepared.
Definition query.c:1752
│ │ │ │ -
const char * tds_skip_quoted(const char *s)
Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])
Definition query.c:515
│ │ │ │ -
TDSRET tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
Creates a temporary stored procedure in the server and execute it.
Definition query.c:1401
│ │ │ │ -
void tds_start_query(TDSSOCKET *tds, unsigned char packet_type)
Start query packet of a given type.
Definition query.c:332
│ │ │ │ -
TDSRET tds_send_cancel(TDSSOCKET *tds)
tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called dire...
Definition query.c:2026
│ │ │ │ -
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition query.c:1630
│ │ │ │ -
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition query.c:1491
│ │ │ │ -
TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
Return declaration for column (like "varchar(20)").
Definition query.c:718
│ │ │ │ -
TDSRET tds_submit_commit(TDSSOCKET *tds, int cont)
Send a commit request.
Definition query.c:3724
│ │ │ │ -
TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor)
Deallocate cursor on idle.
Definition query.c:3057
│ │ │ │ -
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition query.c:210
│ │ │ │ -
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition query.c:1929
│ │ │ │ -
size_t tds_quote_id_rpc(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id for a RPC call.
Definition query.c:2216
│ │ │ │ -
size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len)
Quote a string.
Definition query.c:2241
│ │ │ │ -
TDSRET tds_submit_prepare(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
Creates a temporary stored procedure in the server.
Definition query.c:1124
│ │ │ │ -
TDSRET tds_submit_begin_tran(TDSSOCKET *tds)
Send a rollback request.
Definition query.c:3665
│ │ │ │ -
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition query.c:2171
│ │ │ │ -
const char * tds_next_placeholder(const char *start)
Get position of next placeholder.
Definition query.c:535
│ │ │ │ -
TDSRET tds_submit_query_params(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Sends a language string to the database server for processing.
Definition query.c:350
│ │ │ │ -
TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont)
Send a rollback request.
Definition query.c:3693
│ │ │ │ -
TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Unprepare dynamic on idle.
Definition query.c:1774
│ │ │ │ -
int tds_count_placeholders(const char *query)
Count the number of placeholders ('?') in a query.
Definition query.c:571
│ │ │ │ -
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition query.c:3006
│ │ │ │ -
const char * tds_skip_comment(const char *s)
Skip a comment in a query.
Definition query.c:490
│ │ │ │ -
const char * tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len)
Convert a string in an allocated buffer.
Definition query.c:126
│ │ │ │ -
TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...)
Format and submit a query.
Definition query.c:467
│ │ │ │ -
TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Submit a prepared query with parameters.
Definition query.c:1256
│ │ │ │ -
void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Set current dynamic.
Definition query.c:192
│ │ │ │ -
TDSRET tds_submit_optioncmd(TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size)
Send option commands to server.
Definition query.c:3389
│ │ │ │ -
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition query.c:1797
│ │ │ │ -
DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len)
Reads a string from wire and put in a DSTR.
Definition read.c:293
│ │ │ │ -
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition read.c:72
│ │ │ │ -
int tds_put_string(TDSSOCKET *tds, const char *buf, int len)
Output a string to wire automatic translate string to unicode if needed.
Definition write.c:97
│ │ │ │ -
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition read.c:100
│ │ │ │ -
TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size)
Stop keeping data for this specific freeze.
Definition packet.c:1031
│ │ │ │ -
int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
Definition net.c:985
│ │ │ │ -
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition net.c:168
│ │ │ │ -
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition net.c:548
│ │ │ │ -
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition packet.c:527
│ │ │ │ -
size_t tds_freeze_written(TDSFREEZE *freeze)
Compute how many bytes has been written from freeze.
Definition packet.c:935
│ │ │ │ -
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition write.c:224
│ │ │ │ -
TDSRET tds_freeze_close(TDSFREEZE *freeze)
Stop keeping data for this specific freeze.
Definition packet.c:996
│ │ │ │ -
int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen)
Loops until we have received some characters return -1 on failure.
Definition net.c:914
│ │ │ │ -
TDSRET tds_freeze_abort(TDSFREEZE *freeze)
Discard all data written after the freeze.
Definition packet.c:961
│ │ │ │ -
TDS_UINT8 tds_get_uint8(TDSSOCKET *tds)
Get an uint64 from the server.
Definition read.c:140
│ │ │ │ -
TDSRET tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition read.c:195
│ │ │ │ -
size_t tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
Fetch a string from the wire.
Definition read.c:166
│ │ │ │ -
int tds7_get_instance_ports(FILE *output, struct addrinfo *addr)
Get port of all instances.
Definition net.c:1091
│ │ │ │ -
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition read.c:127
│ │ │ │ -
int tds7_get_instance_port(struct addrinfo *addr, const char *instance)
Get port of given instance.
Definition net.c:1227
│ │ │ │ -
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition read.c:113
│ │ │ │ -
void tds_unget_byte(TDSSOCKET *tds)
Unget will always work as long as you don't call it twice in a row.
Definition read.c:89
│ │ │ │ -
int tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
Select on a socket until it's available or the timeout expires.
Definition net.c:610
│ │ │ │ -
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t n)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition read.c:230
│ │ │ │ -
const char * tds_prtype(int token)
Returns string representation of the given type.
Definition token.c:3056
│ │ │ │ -
TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id)
Finds a dynamic given string id.
Definition token.c:2587
│ │ │ │ -
TDSRET tds_process_login_tokens(TDSSOCKET *tds)
tds_process_login_tokens() is called after sending the login packet to the server.
Definition token.c:411
│ │ │ │ -
int tds_get_token_size(int marker)
tds_get_token_size() returns the size of a fixed length token used by tds_process_cancel() to determi...
Definition token.c:2754
│ │ │ │ -
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition token.c:531
│ │ │ │ -
TDSRET tds_process_simple_query(TDSSOCKET *tds)
Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results,...
Definition token.c:881
│ │ │ │ -
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition token.c:2554
│ │ │ │ -
Definition iconv.h:92
│ │ │ │ +
554/* MS encryption byte (pre login) */
│ │ │ │ +
555enum {
│ │ │ │ +
556 TDS7_ENCRYPT_OFF,
│ │ │ │ +
557 TDS7_ENCRYPT_ON,
│ │ │ │ +
558 TDS7_ENCRYPT_NOT_SUP,
│ │ │ │ +
559 TDS7_ENCRYPT_REQ,
│ │ │ │ +
560};
│ │ │ │
Definition proto.h:26
│ │ │ │ +
Definition proto.h:33
│ │ │ │
Definition proto.h:39
│ │ │ │ -
A structure to hold all the compile-time settings.
Definition tds.h:82
│ │ │ │ -
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition tds.h:146
│ │ │ │ -
TDS_INT date
date, 0 = 1900-01-01
Definition tds.h:148
│ │ │ │ -
TDS_SMALLINT offset
time offset
Definition tds.h:149
│ │ │ │ -
TDS_UINT8 time
time, 7 digit precision
Definition tds.h:147
│ │ │ │ -
Used by tds_datecrack.
Definition tds.h:159
│ │ │ │ -
TDS_INT dayofyear
day of year (1-366)
Definition tds.h:164
│ │ │ │ -
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition tds.h:165
│ │ │ │ -
TDS_INT year
year
Definition tds.h:160
│ │ │ │ -
TDS_INT timezone
-840 - 840 minutes from UTC
Definition tds.h:170
│ │ │ │ -
TDS_INT minute
0-59
Definition tds.h:167
│ │ │ │ -
TDS_INT day
day of month (1-31)
Definition tds.h:163
│ │ │ │ -
TDS_INT decimicrosecond
0-9999999
Definition tds.h:169
│ │ │ │ -
TDS_INT second
0-59
Definition tds.h:168
│ │ │ │ -
TDS_INT quarter
quarter (0-3)
Definition tds.h:161
│ │ │ │ -
TDS_INT hour
0-23
Definition tds.h:166
│ │ │ │ -
TDS_INT month
month number (0-11)
Definition tds.h:162
│ │ │ │ -
Definition tds.h:330
│ │ │ │ -
Definition tds.h:495
│ │ │ │ -
Definition tds.h:504
│ │ │ │ -
Definition tds.h:511
│ │ │ │ -
Definition tds.h:517
│ │ │ │ -
DSTR crlfile
certificate revocation file
Definition tds.h:531
│ │ │ │ -
DSTR server_realm_name
server realm name (in freetds.conf)
Definition tds.h:527
│ │ │ │ -
DSTR user_name
account for login
Definition tds.h:534
│ │ │ │ -
DSTR password
password of account login
Definition tds.h:535
│ │ │ │ -
DSTR db_filename
database filename to attach (MSSQL)
Definition tds.h:529
│ │ │ │ -
DSTR server_name
server name (in freetds.conf)
Definition tds.h:518
│ │ │ │ -
struct addrinfo * ip_addrs
ip(s) of server
Definition tds.h:546
│ │ │ │ -
DSTR server_charset
charset of server e.g.
Definition tds.h:523
│ │ │ │ -
TDS_USMALLINT tds_version
TDS version.
Definition tds.h:520
│ │ │ │ -
DSTR new_password
new password to set (TDS 7.2+)
Definition tds.h:536
│ │ │ │ -
unsigned int bulk_copy
if bulk copy should be enabled
Definition tds.h:556
│ │ │ │ -
DSTR cafile
certificate authorities file
Definition tds.h:530
│ │ │ │ -
DSTR server_spn
server SPN (in freetds.conf)
Definition tds.h:528
│ │ │ │ -
int port
port of database service
Definition tds.h:519
│ │ │ │ -
Definition tds.h:574
│ │ │ │ -
Definition tds.h:582
│ │ │ │ -
Information about blobs (e.g.
Definition tds.h:593
│ │ │ │ -
Store variant informations.
Definition tds.h:604
│ │ │ │ -
Information relevant to libiconv.
Definition tds.h:618
│ │ │ │ -
const char * name
name of the encoding (ie UTF-8)
Definition tds.h:620
│ │ │ │ -
unsigned char canonic
internal numeric index into array of all encodings
Definition tds.h:624
│ │ │ │ -
Definition tds.h:628
│ │ │ │ -
Definition tds.h:643
│ │ │ │ -
tds_func_put_data * put_data
Send column data to server.
Definition tds.h:662
│ │ │ │ -
tds_func_put_info * put_info
Send metadata column information to server.
Definition tds.h:652
│ │ │ │ -
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ -
TDS_INT bcp_prefix_len
The length, in bytes, of any length prefix this column may have.
Definition tds.h:761
│ │ │ │ -
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition tds.h:701
│ │ │ │ -
TDS_INT column_size
maximun size of data.
Definition tds.h:694
│ │ │ │ -
TDS_TINYINT column_prec
precision for decimal/numeric
Definition tds.h:703
│ │ │ │ -
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition tds.h:696
│ │ │ │ -
TDSICONV * char_conv
refers to previously allocated iconv information
Definition tds.h:712
│ │ │ │ -
TDS_TINYINT column_scale
scale for decimal/numeric
Definition tds.h:704
│ │ │ │ -
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition tds.h:736
│ │ │ │ -
Hold information for any results.
Definition tds.h:769
│ │ │ │ -
Definition tds.h:876
│ │ │ │ -
Definition tds.h:892
│ │ │ │ -
Definition tds.h:906
│ │ │ │ -
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ -
TDS_TINYINT options
read only|updatable TODO use it
Definition tds.h:942
│ │ │ │ -
bool defer_close
true if cursor was marker to be closed when connection is idle
Definition tds.h:946
│ │ │ │ -
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition tds.h:939
│ │ │ │ -
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition tds.h:941
│ │ │ │ -
TDS_INT cursor_rows
< number of updatable columns
Definition tds.h:951
│ │ │ │ -
struct tds_cursor * next
next in linked list, keep first
Definition tds.h:938
│ │ │ │ -
TDS_INT type
row fetched from this cursor
Definition tds.h:956
│ │ │ │ -
TDS_CURSOR_STATUS status
cursor parameter
Definition tds.h:953
│ │ │ │ -
char * query
SQL query.
Definition tds.h:947
│ │ │ │ -
char * cursor_name
name of the cursor
Definition tds.h:940
│ │ │ │ -
Current environment as reported by the server.
Definition tds.h:963
│ │ │ │ -
char * charset
character set encoding
Definition tds.h:968
│ │ │ │ -
int block_size
packet size (512-65535)
Definition tds.h:965
│ │ │ │ -
char * database
database name
Definition tds.h:970
│ │ │ │ -
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ -
char * query
saved query, we need to know original query if prepare is impossible
Definition tds.h:1009
│ │ │ │ -
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition tds.h:979
│ │ │ │ -
bool defer_close
true if dynamic was marker to be closed when connection is idle
Definition tds.h:997
│ │ │ │ -
TDSPARAMINFO * res_info
query results
Definition tds.h:999
│ │ │ │ -
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition tds.h:993
│ │ │ │ -
TDSPARAMINFO * params
query parameters.
Definition tds.h:1007
│ │ │ │ -
struct tds_dynamic * next
next in linked list, keep first
Definition tds.h:978
│ │ │ │ -
TDS_INT num_id
numeric id for mssql7+
Definition tds.h:981
│ │ │ │ -
Definition tds.h:1019
│ │ │ │ -
Definition tds.h:1029
│ │ │ │ -
Definition tds.h:1047
│ │ │ │ -
Definition tds.h:1057
│ │ │ │ -
unsigned data_len
data length, this does not account SMP header, only TDS part
Definition tds.h:1071
│ │ │ │ -
Definition tds.h:1085
│ │ │ │ -
Definition tds.h:1091
│ │ │ │ -
TDSENV env
environment is shared between all sessions
Definition tds.h:1101
│ │ │ │ -
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server
Definition tds.h:1107
│ │ │ │ -
TDS_SYS_SOCKET s
tcp socket, INVALID_SOCKET if not connected
Definition tds.h:1096
│ │ │ │ -
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition tds.h:1093
│ │ │ │ -
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server
Definition tds.h:1112
│ │ │ │ -
unsigned int pending_close
true is connection has pending closing (cursors or dynamic)
Definition tds.h:1123
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ -
TDSLOGIN * login
config for login stuff.
Definition tds.h:1258
│ │ │ │ -
unsigned in_len
input buffer length
Definition tds.h:1194
│ │ │ │ -
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition tds.h:1203
│ │ │ │ -
TDSPACKET * send_packet
packet we are preparing to send
Definition tds.h:1231
│ │ │ │ -
unsigned char * in_buf
Input buffer.
Definition tds.h:1177
│ │ │ │ -
TDS_INT ret_status
return status from store procedure
Definition tds.h:1250
│ │ │ │ -
unsigned out_pos
current position in out_buf
Definition tds.h:1193
│ │ │ │ -
TDSRESULTINFO * current_results
Current query information.
Definition tds.h:1238
│ │ │ │ -
unsigned char in_flag
input buffer type
Definition tds.h:1195
│ │ │ │ -
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition tds.h:1254
│ │ │ │ -
unsigned char out_flag
output buffer type
Definition tds.h:1196
│ │ │ │ -
unsigned in_pos
current position in in_buf
Definition tds.h:1192
│ │ │ │ -
TDSCURSOR * cur_cursor
cursor in use
Definition tds.h:1243
│ │ │ │ -
bool in_row
true if we are getting rows
Definition tds.h:1246
│ │ │ │ -
bool bulk_query
true is query sent was a bulk query so we need to switch state to QUERYING
Definition tds.h:1244
│ │ │ │ -
bool has_status
true is ret_status is valid
Definition tds.h:1245
│ │ │ │ -
unsigned char * out_buf
Output buffer.
Definition tds.h:1185
│ │ │ │ -
volatile unsigned char in_cancel
indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean we have to send cance...
Definition tds.h:1248
│ │ │ │ -
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition tds.h:1191
│ │ │ │ -
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition tds.h:1256
│ │ │ │ -
Definition tds.h:1501
│ │ │ │ -
Definition tds.h:1571
│ │ │ │ -
TDSSOCKET * tds
which socket we refer to
Definition tds.h:1573
│ │ │ │ -
unsigned pkt_pos
position in pkt
Definition tds.h:1577
│ │ │ │ -
unsigned size_len
length size (0, 1, 2 or 4)
Definition tds.h:1579
│ │ │ │ -
TDSPACKET * pkt
first packet frozen
Definition tds.h:1575
│ │ │ │ -
Definition tds.h:1661
│ │ │ │ -
Definition thread.h:278
│ │ │ │ -
Structure to hold a string.
Definition string.h:36
│ │ │ │ +
Definition proto.h:45
│ │ │ │ +
Definition proto.h:50
│ │ │ │ +
Definition proto.h:56
│ │ │ │ +
Definition proto.h:62
│ │ │ │ +
TDS 7.1 collation informations.
Definition proto.h:351
│ │ │ │ +
TDS 7.2 SMP packet header.
Definition proto.h:361
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,14 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -tds.h │ │ │ │ │ -_G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ +proto.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ 3 * Copyright (C) 2010, 2011 Frediano Ziglio │ │ │ │ │ 4 * │ │ │ │ │ 5 * This library is free software; you can redistribute it and/or │ │ │ │ │ 6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 7 * License as published by the Free Software Foundation; either │ │ │ │ │ @@ -22,2640 +21,544 @@ │ │ │ │ │ 14 * │ │ │ │ │ 15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 16 * License along with this library; if not, write to the │ │ │ │ │ 17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 18 * Boston, MA 02111-1307, USA. │ │ │ │ │ 19 */ │ │ │ │ │ 20 │ │ │ │ │ -21#ifndef _tds_h_ │ │ │ │ │ -22#define _tds_h_ │ │ │ │ │ -23 │ │ │ │ │ -24#ifndef _freetds_config_h_ │ │ │ │ │ -25#error should include config.h before │ │ │ │ │ -26#endif │ │ │ │ │ -27 │ │ │ │ │ -28#include │ │ │ │ │ -29#include │ │ │ │ │ -30#include │ │ │ │ │ +21/* │ │ │ │ │ +22 * This file contains defines and structures strictly related to TDS protocol │ │ │ │ │ +23 */ │ │ │ │ │ +24 │ │ │ │ │ +_2_5typedef struct _t_d_s_n_u_m_e_r_i_c │ │ │ │ │ +26{ │ │ │ │ │ +27 unsigned char precision; │ │ │ │ │ +28 unsigned char scale; │ │ │ │ │ +29 unsigned char array[33]; │ │ │ │ │ +30} _T_D_S___N_U_M_E_R_I_C; │ │ │ │ │ 31 │ │ │ │ │ -32#ifdef HAVE_STDDEF_H │ │ │ │ │ -33#include │ │ │ │ │ -34#endif │ │ │ │ │ -35 │ │ │ │ │ -36#if HAVE_NETDB_H │ │ │ │ │ -37#include │ │ │ │ │ -38#endif /* HAVE_NETDB_H */ │ │ │ │ │ -39 │ │ │ │ │ -40#if HAVE_NETINET_IN_H │ │ │ │ │ -41#include │ │ │ │ │ -42#endif /* HAVE_NET_INET_IN_H */ │ │ │ │ │ -43#if HAVE_ARPA_INET_H │ │ │ │ │ -44#include │ │ │ │ │ -45#endif /* HAVE_ARPA_INET_H */ │ │ │ │ │ -46 │ │ │ │ │ -47#if HAVE_SYS_SOCKET_H │ │ │ │ │ -48#include │ │ │ │ │ -49#endif /* HAVE_SYS_SOCKET_H */ │ │ │ │ │ -50 │ │ │ │ │ -51/* forward declaration */ │ │ │ │ │ -52typedef struct _t_d_s_i_c_o_n_v_i_n_f_o _T_D_S_I_C_O_N_V; │ │ │ │ │ -53typedef struct _t_d_s___c_o_n_n_e_c_t_i_o_n _T_D_S_C_O_N_N_E_C_T_I_O_N; │ │ │ │ │ -54typedef struct _t_d_s___s_o_c_k_e_t _T_D_S_S_O_C_K_E_T; │ │ │ │ │ -55typedef struct _t_d_s___c_o_l_u_m_n _T_D_S_C_O_L_U_M_N; │ │ │ │ │ -56typedef struct _t_d_s___b_c_p_i_n_f_o _T_D_S_B_C_P_I_N_F_O; │ │ │ │ │ -57 │ │ │ │ │ -58#include │ │ │ │ │ -59#include │ │ │ │ │ -60#include │ │ │ │ │ -61#include │ │ │ │ │ -62#include │ │ │ │ │ -63#include │ │ │ │ │ -64#include │ │ │ │ │ -65 │ │ │ │ │ -66#include │ │ │ │ │ -67 │ │ │ │ │ -68#ifdef __cplusplus │ │ │ │ │ -69extern "C" │ │ │ │ │ -70{ │ │ │ │ │ -71#if 0 │ │ │ │ │ -72} │ │ │ │ │ -73#endif │ │ │ │ │ -74#endif │ │ │ │ │ -75 │ │ │ │ │ -_8_1typedef struct _t_d_s___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s │ │ │ │ │ -82{ │ │ │ │ │ -83 const char *freetds_version; /* release version of FreeTDS */ │ │ │ │ │ -84 const char *sysconfdir; /* location of freetds.conf */ │ │ │ │ │ -85 const char *last_update; /* latest software_version date among the modules │ │ │ │ │ -*/ │ │ │ │ │ -86 const char *tdsver; /* TDS protocol version (4.2/4.6/5.0/7.0/7.1) 5.0 */ │ │ │ │ │ -87 bool msdblib; /* for MS style dblib */ │ │ │ │ │ -88 bool sybase_compat; /* enable increased Open Client binary compatibility */ │ │ │ │ │ -89 bool threadsafe; /* compile for thread safety default=no */ │ │ │ │ │ -90 bool libiconv; /* search for libiconv in DIR/include and DIR/lib */ │ │ │ │ │ -91 bool iodbc; /* build odbc driver against iODBC in DIR */ │ │ │ │ │ -92 bool unixodbc; /* build odbc driver against unixODBC in DIR */ │ │ │ │ │ -93 bool openssl; /* build against OpenSSL */ │ │ │ │ │ -94 bool gnutls; /* build against GnuTLS */ │ │ │ │ │ -95 bool mars; /* MARS enabled */ │ │ │ │ │ -96 bool sspi; /* SSPI enabled */ │ │ │ │ │ -97 bool kerberos; /* Kerberos enabled */ │ │ │ │ │ -_9_8} _T_D_S___C_O_M_P_I_L_E_T_I_M_E___S_E_T_T_I_N_G_S; │ │ │ │ │ -99 │ │ │ │ │ -115/* │ │ │ │ │ -116 * All references to data that touch the wire should use the following │ │ │ │ │ -typedefs. │ │ │ │ │ -117 * │ │ │ │ │ -118 * If you have problems on 64-bit machines and the code is │ │ │ │ │ -119 * using a native datatype, please change it to use │ │ │ │ │ -120 * these. (In the TDS layer only, the API layers have their │ │ │ │ │ -121 * own typedefs which equate to these). │ │ │ │ │ -122 */ │ │ │ │ │ -123typedef char TDS_CHAR; /* 8-bit char */ │ │ │ │ │ -124typedef uint8_t TDS_UCHAR; /* 8-bit uchar */ │ │ │ │ │ -125typedef uint8_t TDS_TINYINT; /* 8-bit unsigned */ │ │ │ │ │ -126typedef int16_t TDS_SMALLINT; /* 16-bit int */ │ │ │ │ │ -127typedef uint16_t TDS_USMALLINT; /* 16-bit unsigned */ │ │ │ │ │ -128typedef int32_t TDS_INT; /* 32-bit int */ │ │ │ │ │ -129typedef uint32_t TDS_UINT; /* 32-bit unsigned */ │ │ │ │ │ -130typedef int64_t TDS_INT8; /* 64-bit integer */ │ │ │ │ │ -131typedef uint64_t TDS_UINT8; /* 64-bit unsigned */ │ │ │ │ │ -132typedef intptr_t TDS_INTPTR; │ │ │ │ │ -133typedef uintptr_t TDS_UINTPTR; │ │ │ │ │ -134typedef tds_sysdep_real32_type TDS_REAL; /* 32-bit real */ │ │ │ │ │ -135typedef tds_sysdep_real64_type TDS_FLOAT; /* 64-bit real */ │ │ │ │ │ -136 │ │ │ │ │ -137#include │ │ │ │ │ -138 │ │ │ │ │ -139#define TDS_INVALID_TYPE ((TDS_SERVER_TYPE) 0) │ │ │ │ │ -140 │ │ │ │ │ -_1_4_5typedef struct │ │ │ │ │ -146{ │ │ │ │ │ -_1_4_7 TDS_UINT8 _t_i_m_e; │ │ │ │ │ -_1_4_8 TDS_INT _d_a_t_e; │ │ │ │ │ -_1_4_9 TDS_SMALLINT _o_f_f_s_e_t; │ │ │ │ │ -150 TDS_USMALLINT time_prec:3; │ │ │ │ │ -151 TDS_USMALLINT _tds_reserved:10; │ │ │ │ │ -152 TDS_USMALLINT has_time:1; │ │ │ │ │ -153 TDS_USMALLINT has_date:1; │ │ │ │ │ -154 TDS_USMALLINT has_offset:1; │ │ │ │ │ -155} _T_D_S___D_A_T_E_T_I_M_E_A_L_L; │ │ │ │ │ -156 │ │ │ │ │ -_1_5_8typedef struct _t_d_s_d_a_t_e_r_e_c │ │ │ │ │ -159{ │ │ │ │ │ -_1_6_0 TDS_INT _y_e_a_r; │ │ │ │ │ -_1_6_1 TDS_INT _q_u_a_r_t_e_r; │ │ │ │ │ -_1_6_2 TDS_INT _m_o_n_t_h; │ │ │ │ │ -_1_6_3 TDS_INT _d_a_y; │ │ │ │ │ -_1_6_4 TDS_INT _d_a_y_o_f_y_e_a_r; │ │ │ │ │ -_1_6_5 TDS_INT _w_e_e_k_d_a_y; │ │ │ │ │ -_1_6_6 TDS_INT _h_o_u_r; │ │ │ │ │ -_1_6_7 TDS_INT _m_i_n_u_t_e; │ │ │ │ │ -_1_6_8 TDS_INT _s_e_c_o_n_d; │ │ │ │ │ -_1_6_9 TDS_INT _d_e_c_i_m_i_c_r_o_s_e_c_o_n_d; │ │ │ │ │ -_1_7_0 TDS_INT _t_i_m_e_z_o_n_e; │ │ │ │ │ -_1_7_1} _T_D_S_D_A_T_E_R_E_C; │ │ │ │ │ -172 │ │ │ │ │ -178extern const int _t_d_s___n_u_m_e_r_i_c___b_y_t_e_s___p_e_r___p_r_e_c[]; │ │ │ │ │ -179 │ │ │ │ │ -180typedef int TDSRET; │ │ │ │ │ -181#define TDS_NO_MORE_RESULTS ((TDSRET)1) │ │ │ │ │ -182#define TDS_SUCCESS ((TDSRET)0) │ │ │ │ │ -183#define TDS_FAIL ((TDSRET)-1) │ │ │ │ │ -184#define TDS_CANCELLED ((TDSRET)-2) │ │ │ │ │ -185#define TDS_FAILED(rc) ((rc)<0) │ │ │ │ │ -186#define TDS_SUCCEED(rc) ((rc)>=0) │ │ │ │ │ -187#define TDS_PROPAGATE(rc) \ │ │ │ │ │ -188 do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } │ │ │ │ │ -while(0) │ │ │ │ │ -189 │ │ │ │ │ -190#define TDS_INT_CONTINUE 1 │ │ │ │ │ -191#define TDS_INT_CANCEL 2 │ │ │ │ │ -192#define TDS_INT_TIMEOUT 3 │ │ │ │ │ -193 │ │ │ │ │ -194 │ │ │ │ │ -195#define TDS_NO_COUNT -1 │ │ │ │ │ -196 │ │ │ │ │ -197#define TDS_ROW_RESULT 4040 │ │ │ │ │ -198#define TDS_PARAM_RESULT 4042 │ │ │ │ │ -199#define TDS_STATUS_RESULT 4043 │ │ │ │ │ -200#define TDS_MSG_RESULT 4044 │ │ │ │ │ -201#define TDS_COMPUTE_RESULT 4045 │ │ │ │ │ -202#define TDS_CMD_DONE 4046 │ │ │ │ │ -203#define TDS_CMD_SUCCEED 4047 │ │ │ │ │ -204#define TDS_CMD_FAIL 4048 │ │ │ │ │ -205#define TDS_ROWFMT_RESULT 4049 │ │ │ │ │ -206#define TDS_COMPUTEFMT_RESULT 4050 │ │ │ │ │ -207#define TDS_DESCRIBE_RESULT 4051 │ │ │ │ │ -208#define TDS_DONE_RESULT 4052 │ │ │ │ │ -209#define TDS_DONEPROC_RESULT 4053 │ │ │ │ │ -210#define TDS_DONEINPROC_RESULT 4054 │ │ │ │ │ -211#define TDS_OTHERS_RESULT 4055 │ │ │ │ │ -212 │ │ │ │ │ -213enum tds_token_results │ │ │ │ │ -214{ │ │ │ │ │ -215 TDS_TOKEN_RES_OTHERS, │ │ │ │ │ -216 TDS_TOKEN_RES_ROWFMT, │ │ │ │ │ -217 TDS_TOKEN_RES_COMPUTEFMT, │ │ │ │ │ -218 TDS_TOKEN_RES_PARAMFMT, │ │ │ │ │ -219 TDS_TOKEN_RES_DONE, │ │ │ │ │ -220 TDS_TOKEN_RES_ROW, │ │ │ │ │ -221 TDS_TOKEN_RES_COMPUTE, │ │ │ │ │ -222 TDS_TOKEN_RES_PROC, │ │ │ │ │ -223 TDS_TOKEN_RES_MSG, │ │ │ │ │ -224 TDS_TOKEN_RES_ENV, │ │ │ │ │ -225}; │ │ │ │ │ -226 │ │ │ │ │ -227#define TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << │ │ │ │ │ -(TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2)) │ │ │ │ │ -228 │ │ │ │ │ -229enum tds_token_flags │ │ │ │ │ -230{ │ │ │ │ │ -231 TDS_HANDLE_ALL = 0, │ │ │ │ │ -232 TDS_TOKEN_FLAG(OTHERS), │ │ │ │ │ -233 TDS_TOKEN_FLAG(ROWFMT), │ │ │ │ │ -234 TDS_TOKEN_FLAG(COMPUTEFMT), │ │ │ │ │ -235 TDS_TOKEN_FLAG(PARAMFMT), │ │ │ │ │ -236 TDS_TOKEN_FLAG(DONE), │ │ │ │ │ -237 TDS_TOKEN_FLAG(ROW), │ │ │ │ │ -238 TDS_TOKEN_FLAG(COMPUTE), │ │ │ │ │ -239 TDS_TOKEN_FLAG(PROC), │ │ │ │ │ -240 TDS_TOKEN_FLAG(MSG), │ │ │ │ │ -241 TDS_TOKEN_FLAG(ENV), │ │ │ │ │ -242 TDS_TOKEN_RESULTS = │ │ │ │ │ -TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC, │ │ │ │ │ -243 TDS_TOKEN_TRAILING = │ │ │ │ │ -TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS │ │ │ │ │ -244}; │ │ │ │ │ -245 │ │ │ │ │ -_2_4_9enum _t_d_s___e_n_d │ │ │ │ │ -250{ │ │ │ │ │ -251 _T_D_S___D_O_N_E___F_I_N_A_L = 0x00 │ │ │ │ │ -_2_5_2 , _T_D_S___D_O_N_E___M_O_R_E___R_E_S_U_L_T_S = 0x01 │ │ │ │ │ -_2_5_3 , _T_D_S___D_O_N_E___E_R_R_O_R = 0x02 │ │ │ │ │ -_2_5_4 , _T_D_S___D_O_N_E___I_N_X_A_C_T = 0x04 │ │ │ │ │ -_2_5_5 , _T_D_S___D_O_N_E___P_R_O_C = 0x08 │ │ │ │ │ -_2_5_6 , _T_D_S___D_O_N_E___C_O_U_N_T = 0x10 │ │ │ │ │ -_2_5_7 , _T_D_S___D_O_N_E___C_A_N_C_E_L_L_E_D = 0x20 │ │ │ │ │ -_2_5_8 , TDS_DONE_EVENT = 0x40 /* part of an event notification. */ │ │ │ │ │ -259 , _T_D_S___D_O_N_E___S_R_V_E_R_R_O_R = 0x100 │ │ │ │ │ -261 /* after the above flags, a TDS_DONE packet has a field describing the │ │ │ │ │ -state of the transaction */ │ │ │ │ │ -_2_6_2 , TDS_DONE_NO_TRAN = 0 /* No transaction in effect */ │ │ │ │ │ -263 , TDS_DONE_TRAN_SUCCEED = 1 /* Transaction completed successfully */ │ │ │ │ │ -264 , TDS_DONE_TRAN_PROGRESS= 2 /* Transaction in progress */ │ │ │ │ │ -265 , TDS_DONE_STMT_ABORT = 3 /* A statement aborted */ │ │ │ │ │ -266 , TDS_DONE_TRAN_ABORT = 4 /* Transaction aborted */ │ │ │ │ │ -267}; │ │ │ │ │ -268 │ │ │ │ │ +_3_2typedef struct _t_d_s_o_l_d_m_o_n_e_y │ │ │ │ │ +33{ │ │ │ │ │ +34 TDS_INT mnyhigh; │ │ │ │ │ +35 TDS_UINT mnylow; │ │ │ │ │ +36} _T_D_S___O_L_D___M_O_N_E_Y; │ │ │ │ │ +37 │ │ │ │ │ +_3_8typedef union _t_d_s_m_o_n_e_y │ │ │ │ │ +39{ │ │ │ │ │ +40 _T_D_S___O_L_D___M_O_N_E_Y _t_d_s_o_l_d_m_o_n_e_y; │ │ │ │ │ +41 TDS_INT8 mny; │ │ │ │ │ +42} _T_D_S___M_O_N_E_Y; │ │ │ │ │ +43 │ │ │ │ │ +_4_4typedef struct _t_d_s_m_o_n_e_y_4 │ │ │ │ │ +45{ │ │ │ │ │ +46 TDS_INT mny4; │ │ │ │ │ +47} _T_D_S___M_O_N_E_Y_4; │ │ │ │ │ +48 │ │ │ │ │ +_4_9typedef struct _t_d_s_d_a_t_e_t_i_m_e │ │ │ │ │ +50{ │ │ │ │ │ +51 TDS_INT dtdays; │ │ │ │ │ +52 TDS_INT dttime; │ │ │ │ │ +53} _T_D_S___D_A_T_E_T_I_M_E; │ │ │ │ │ +54 │ │ │ │ │ +_5_5typedef struct _t_d_s_d_a_t_e_t_i_m_e_4 │ │ │ │ │ +56{ │ │ │ │ │ +57 TDS_USMALLINT days; │ │ │ │ │ +58 TDS_USMALLINT minutes; │ │ │ │ │ +59} _T_D_S___D_A_T_E_T_I_M_E_4; │ │ │ │ │ +60 │ │ │ │ │ +_6_1typedef struct _t_d_s_u_n_i_q_u_e │ │ │ │ │ +62{ │ │ │ │ │ +63 TDS_UINT Data1; │ │ │ │ │ +64 TDS_USMALLINT Data2; │ │ │ │ │ +65 TDS_USMALLINT Data3; │ │ │ │ │ +66 TDS_UCHAR Data4[8]; │ │ │ │ │ +67} _T_D_S___U_N_I_Q_U_E; │ │ │ │ │ +68 │ │ │ │ │ +69typedef TDS_INT TDS_DATE; │ │ │ │ │ +70typedef TDS_INT TDS_TIME; │ │ │ │ │ +71 │ │ │ │ │ +72typedef TDS_UINT8 TDS_BIGTIME; │ │ │ │ │ +73typedef TDS_UINT8 TDS_BIGDATETIME; │ │ │ │ │ +74 │ │ │ │ │ +75#define TDS5_PARAMFMT2_TOKEN 32 /* 0x20 */ │ │ │ │ │ +76#define TDS_LANGUAGE_TOKEN 33 /* 0x21 TDS 5.0 only */ │ │ │ │ │ +77#define TDS_ORDERBY2_TOKEN 34 /* 0x22 */ │ │ │ │ │ +78#define TDS_ROWFMT2_TOKEN 97 /* 0x61 TDS 5.0 only */ │ │ │ │ │ +79#define TDS_MSG_TOKEN 101 /* 0x65 TDS 5.0 only */ │ │ │ │ │ +80#define TDS_LOGOUT_TOKEN 113 /* 0x71 TDS 5.0 only? ct_close() */ │ │ │ │ │ +81#define TDS_RETURNSTATUS_TOKEN 121 /* 0x79 */ │ │ │ │ │ +82#define TDS_PROCID_TOKEN 124 /* 0x7C TDS 4.2 only - TDS_PROCID */ │ │ │ │ │ +83#define TDS7_RESULT_TOKEN 129 /* 0x81 TDS 7.0 only */ │ │ │ │ │ +84#define TDS7_COMPUTE_RESULT_TOKEN 136 /* 0x88 TDS 7.0 only */ │ │ │ │ │ +85#define TDS_COLNAME_TOKEN 160 /* 0xA0 TDS 4.2 only */ │ │ │ │ │ +86#define TDS_COLFMT_TOKEN 161 /* 0xA1 TDS 4.2 only - TDS_COLFMT */ │ │ │ │ │ +87#define TDS_DYNAMIC2_TOKEN 163 /* 0xA3 */ │ │ │ │ │ +88#define TDS_TABNAME_TOKEN 164 /* 0xA4 */ │ │ │ │ │ +89#define TDS_COLINFO_TOKEN 165 /* 0xA5 */ │ │ │ │ │ +90#define TDS_OPTIONCMD_TOKEN 166 /* 0xA6 */ │ │ │ │ │ +91#define TDS_COMPUTE_NAMES_TOKEN 167 /* 0xA7 */ │ │ │ │ │ +92#define TDS_COMPUTE_RESULT_TOKEN 168 /* 0xA8 */ │ │ │ │ │ +93#define TDS_ORDERBY_TOKEN 169 /* 0xA9 TDS_ORDER */ │ │ │ │ │ +94#define TDS_ERROR_TOKEN 170 /* 0xAA */ │ │ │ │ │ +95#define TDS_INFO_TOKEN 171 /* 0xAB */ │ │ │ │ │ +96#define TDS_PARAM_TOKEN 172 /* 0xAC RETURNVALUE? */ │ │ │ │ │ +97#define TDS_LOGINACK_TOKEN 173 /* 0xAD */ │ │ │ │ │ +98#define TDS_CONTROL_FEATUREEXTACK_TOKEN \ │ │ │ │ │ +99 174 /* 0xAE TDS_CONTROL/TDS_FEATUREEXTACK */ │ │ │ │ │ +100#define TDS_ROW_TOKEN 209 /* 0xD1 */ │ │ │ │ │ +101#define TDS_NBC_ROW_TOKEN 210 /* 0xD2 as of TDS 7.3.B */ │ │ │ │ │ +102#define TDS_CMP_ROW_TOKEN 211 /* 0xD3 */ │ │ │ │ │ +103#define TDS5_PARAMS_TOKEN 215 /* 0xD7 TDS 5.0 only */ │ │ │ │ │ +104#define TDS_CAPABILITY_TOKEN 226 /* 0xE2 */ │ │ │ │ │ +105#define TDS_ENVCHANGE_TOKEN 227 /* 0xE3 */ │ │ │ │ │ +106#define TDS_SESSIONSTATE_TOKEN 228 /* 0xE4 TDS 7.4 */ │ │ │ │ │ +107#define TDS_EED_TOKEN 229 /* 0xE5 */ │ │ │ │ │ +108#define TDS_DBRPC_TOKEN 230 /* 0xE6 TDS 5.0 only */ │ │ │ │ │ +109#define TDS5_DYNAMIC_TOKEN 231 /* 0xE7 TDS 5.0 only */ │ │ │ │ │ +110#define TDS5_PARAMFMT_TOKEN 236 /* 0xEC TDS 5.0 only */ │ │ │ │ │ +111#define TDS_AUTH_TOKEN 237 /* 0xED TDS 7.0 only */ │ │ │ │ │ +112#define TDS_RESULT_TOKEN 238 /* 0xEE */ │ │ │ │ │ +113#define TDS_DONE_TOKEN 253 /* 0xFD TDS_DONE */ │ │ │ │ │ +114#define TDS_DONEPROC_TOKEN 254 /* 0xFE TDS_DONEPROC */ │ │ │ │ │ +115#define TDS_DONEINPROC_TOKEN 255 /* 0xFF TDS_DONEINPROC */ │ │ │ │ │ +116 │ │ │ │ │ +117/* CURSOR support: TDS 5.0 only*/ │ │ │ │ │ +118#define TDS_CURCLOSE_TOKEN 128 /* 0x80 TDS 5.0 only */ │ │ │ │ │ +119#define TDS_CURDELETE_TOKEN 129 /* 0x81 TDS 5.0 only */ │ │ │ │ │ +120#define TDS_CURFETCH_TOKEN 130 /* 0x82 TDS 5.0 only */ │ │ │ │ │ +121#define TDS_CURINFO_TOKEN 131 /* 0x83 TDS 5.0 only */ │ │ │ │ │ +122#define TDS_CUROPEN_TOKEN 132 /* 0x84 TDS 5.0 only */ │ │ │ │ │ +123#define TDS_CURDECLARE_TOKEN 134 /* 0x86 TDS 5.0 only */ │ │ │ │ │ +124 │ │ │ │ │ +125 │ │ │ │ │ +126/* environment type field */ │ │ │ │ │ +127#define TDS_ENV_DATABASE 1 │ │ │ │ │ +128#define TDS_ENV_LANG 2 │ │ │ │ │ +129#define TDS_ENV_CHARSET 3 │ │ │ │ │ +130#define TDS_ENV_PACKSIZE 4 │ │ │ │ │ +131#define TDS_ENV_LCID 5 │ │ │ │ │ +132#define TDS_ENV_SQLCOLLATION 7 │ │ │ │ │ +133#define TDS_ENV_BEGINTRANS 8 │ │ │ │ │ +134#define TDS_ENV_COMMITTRANS 9 │ │ │ │ │ +135#define TDS_ENV_ROLLBACKTRANS 10 │ │ │ │ │ +136#define TDS_ENV_ROUTING 20 │ │ │ │ │ +137 │ │ │ │ │ +138/* Microsoft internal stored procedure id's */ │ │ │ │ │ +139#define TDS_SP_CURSOR 1 │ │ │ │ │ +140#define TDS_SP_CURSOROPEN 2 │ │ │ │ │ +141#define TDS_SP_CURSORPREPARE 3 │ │ │ │ │ +142#define TDS_SP_CURSOREXECUTE 4 │ │ │ │ │ +143#define TDS_SP_CURSORPREPEXEC 5 │ │ │ │ │ +144#define TDS_SP_CURSORUNPREPARE 6 │ │ │ │ │ +145#define TDS_SP_CURSORFETCH 7 │ │ │ │ │ +146#define TDS_SP_CURSOROPTION 8 │ │ │ │ │ +147#define TDS_SP_CURSORCLOSE 9 │ │ │ │ │ +148#define TDS_SP_EXECUTESQL 10 │ │ │ │ │ +149#define TDS_SP_PREPARE 11 │ │ │ │ │ +150#define TDS_SP_EXECUTE 12 │ │ │ │ │ +151#define TDS_SP_PREPEXEC 13 │ │ │ │ │ +152#define TDS_SP_PREPEXECRPC 14 │ │ │ │ │ +153#define TDS_SP_UNPREPARE 15 │ │ │ │ │ +154 │ │ │ │ │ +155/* │ │ │ │ │ +156 * Sybase does an awful job of this stuff, non null ints of size 1 2 │ │ │ │ │ +157 * and 4 have there own codes but nullable ints are lumped into INTN │ │ │ │ │ +158 * sheesh! │ │ │ │ │ +159 */ │ │ │ │ │ +160typedef enum │ │ │ │ │ +161{ │ │ │ │ │ +162 SYBCHAR = 47, /* 0x2F */ │ │ │ │ │ +163 SYBVARCHAR = 39, /* 0x27 */ │ │ │ │ │ +164 SYBINTN = 38, /* 0x26 */ │ │ │ │ │ +165 SYBINT1 = 48, /* 0x30 */ │ │ │ │ │ +166 SYBINT2 = 52, /* 0x34 */ │ │ │ │ │ +167 SYBINT4 = 56, /* 0x38 */ │ │ │ │ │ +168 SYBFLT8 = 62, /* 0x3E */ │ │ │ │ │ +169 SYBDATETIME = 61, /* 0x3D */ │ │ │ │ │ +170 SYBBIT = 50, /* 0x32 */ │ │ │ │ │ +171 SYBTEXT = 35, /* 0x23 */ │ │ │ │ │ +172 SYBNTEXT = 99, /* 0x63 */ │ │ │ │ │ +173 SYBIMAGE = 34, /* 0x22 */ │ │ │ │ │ +174 SYBMONEY4 = 122, /* 0x7A */ │ │ │ │ │ +175 SYBMONEY = 60, /* 0x3C */ │ │ │ │ │ +176 SYBDATETIME4 = 58, /* 0x3A */ │ │ │ │ │ +177 SYBREAL = 59, /* 0x3B */ │ │ │ │ │ +178 SYBBINARY = 45, /* 0x2D */ │ │ │ │ │ +179 SYBVOID = 31, /* 0x1F */ │ │ │ │ │ +180 SYBVARBINARY = 37, /* 0x25 */ │ │ │ │ │ +181 SYBBITN = 104, /* 0x68 */ │ │ │ │ │ +182 SYBNUMERIC = 108, /* 0x6C */ │ │ │ │ │ +183 SYBDECIMAL = 106, /* 0x6A */ │ │ │ │ │ +184 SYBFLTN = 109, /* 0x6D */ │ │ │ │ │ +185 SYBMONEYN = 110, /* 0x6E */ │ │ │ │ │ +186 SYBDATETIMN = 111, /* 0x6F */ │ │ │ │ │ +187 │ │ │ │ │ +188/* │ │ │ │ │ +189 * MS only types │ │ │ │ │ +190 */ │ │ │ │ │ +191 SYBNVARCHAR = 103, /* 0x67 */ │ │ │ │ │ +192 SYBINT8 = 127, /* 0x7F */ │ │ │ │ │ +193 XSYBCHAR = 175, /* 0xAF */ │ │ │ │ │ +194 XSYBVARCHAR = 167, /* 0xA7 */ │ │ │ │ │ +195 XSYBNVARCHAR = 231, /* 0xE7 */ │ │ │ │ │ +196 XSYBNCHAR = 239, /* 0xEF */ │ │ │ │ │ +197 XSYBVARBINARY = 165, /* 0xA5 */ │ │ │ │ │ +198 XSYBBINARY = 173, /* 0xAD */ │ │ │ │ │ +199 SYBUNIQUE = 36, /* 0x24 */ │ │ │ │ │ +200 SYBVARIANT = 98, /* 0x62 */ │ │ │ │ │ +201 SYBMSUDT = 240, /* 0xF0 */ │ │ │ │ │ +202 SYBMSXML = 241, /* 0xF1 */ │ │ │ │ │ +203 SYBMSDATE = 40, /* 0x28 */ │ │ │ │ │ +204 SYBMSTIME = 41, /* 0x29 */ │ │ │ │ │ +205 SYBMSDATETIME2 = 42, /* 0x2a */ │ │ │ │ │ +206 SYBMSDATETIMEOFFSET = 43,/* 0x2b */ │ │ │ │ │ +207 │ │ │ │ │ +208/* │ │ │ │ │ +209 * Sybase only types │ │ │ │ │ +210 */ │ │ │ │ │ +211 SYBLONGBINARY = 225, /* 0xE1 */ │ │ │ │ │ +212 SYBUINT1 = 64, /* 0x40 */ │ │ │ │ │ +213 SYBUINT2 = 65, /* 0x41 */ │ │ │ │ │ +214 SYBUINT4 = 66, /* 0x42 */ │ │ │ │ │ +215 SYBUINT8 = 67, /* 0x43 */ │ │ │ │ │ +216 SYBBLOB = 36, /* 0x24 */ │ │ │ │ │ +217 SYBBOUNDARY = 104, /* 0x68 */ │ │ │ │ │ +218 SYBDATE = 49, /* 0x31 */ │ │ │ │ │ +219 SYBDATEN = 123, /* 0x7B */ │ │ │ │ │ +220 SYB5INT8 = 191, /* 0xBF */ │ │ │ │ │ +221 SYBINTERVAL = 46, /* 0x2E */ │ │ │ │ │ +222 SYBLONGCHAR = 175, /* 0xAF */ │ │ │ │ │ +223 SYBSENSITIVITY = 103, /* 0x67 */ │ │ │ │ │ +224 SYBSINT1 = 176, /* 0xB0 */ │ │ │ │ │ +225 SYBTIME = 51, /* 0x33 */ │ │ │ │ │ +226 SYBTIMEN = 147, /* 0x93 */ │ │ │ │ │ +227 SYBUINTN = 68, /* 0x44 */ │ │ │ │ │ +228 SYBUNITEXT = 174, /* 0xAE */ │ │ │ │ │ +229 SYBXML = 163, /* 0xA3 */ │ │ │ │ │ +230 SYB5BIGDATETIME = 187, /* 0xBB */ │ │ │ │ │ +231 SYB5BIGTIME = 188, /* 0xBC */ │ │ │ │ │ +232 │ │ │ │ │ +233} TDS_SERVER_TYPE; │ │ │ │ │ +234 │ │ │ │ │ +235typedef enum │ │ │ │ │ +236{ │ │ │ │ │ +237 USER_UNICHAR_TYPE = 34, /* 0x22 */ │ │ │ │ │ +238 USER_UNIVARCHAR_TYPE = 35 /* 0x23 */ │ │ │ │ │ +239} TDS_USER_TYPE; │ │ │ │ │ +240 │ │ │ │ │ +241/* compute operator */ │ │ │ │ │ +242#define SYBAOPCNT 75 /* 0x4B */ │ │ │ │ │ +243#define SYBAOPCNTU 76 /* 0x4C, obsolete */ │ │ │ │ │ +244#define SYBAOPSUM 77 /* 0x4D */ │ │ │ │ │ +245#define SYBAOPSUMU 78 /* 0x4E, obsolete */ │ │ │ │ │ +246#define SYBAOPAVG 79 /* 0x4F */ │ │ │ │ │ +247#define SYBAOPAVGU 80 /* 0x50, obsolete */ │ │ │ │ │ +248#define SYBAOPMIN 81 /* 0x51 */ │ │ │ │ │ +249#define SYBAOPMAX 82 /* 0x52 */ │ │ │ │ │ +250 │ │ │ │ │ +251/* mssql2k compute operator */ │ │ │ │ │ +252#define SYBAOPCNT_BIG 9 /* 0x09 */ │ │ │ │ │ +253#define SYBAOPSTDEV 48 /* 0x30 */ │ │ │ │ │ +254#define SYBAOPSTDEVP 49 /* 0x31 */ │ │ │ │ │ +255#define SYBAOPVAR 50 /* 0x32 */ │ │ │ │ │ +256#define SYBAOPVARP 51 /* 0x33 */ │ │ │ │ │ +257#define SYBAOPCHECKSUM_AGG 114 /* 0x72 */ │ │ │ │ │ +258 │ │ │ │ │ +262typedef enum │ │ │ │ │ +263{ │ │ │ │ │ +264 TDS_OPT_SET = 1 │ │ │ │ │ +265 , TDS_OPT_DEFAULT = 2 │ │ │ │ │ +266 , TDS_OPT_LIST = 3 │ │ │ │ │ +267 , TDS_OPT_INFO = 4 │ │ │ │ │ +268} TDS_OPTION_CMD; │ │ │ │ │ 269 │ │ │ │ │ -270/* │ │ │ │ │ -271 * TDSERRNO is emitted by libtds to the client library's error handler │ │ │ │ │ -272 * (which may in turn call the client's error handler). │ │ │ │ │ -273 * These match the db-lib msgno, because the same values have the same │ │ │ │ │ -meaning │ │ │ │ │ -274 * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo). │ │ │ │ │ -275 */ │ │ │ │ │ -276typedef enum { TDSEOK = TDS_SUCCESS, │ │ │ │ │ -277 TDSEVERDOWN = 100, │ │ │ │ │ -278 TDSEINPROGRESS, │ │ │ │ │ -279 TDSEICONVIU = 2400, │ │ │ │ │ -280 TDSEICONVAVAIL = 2401, │ │ │ │ │ -281 TDSEICONVO = 2402, │ │ │ │ │ -282 TDSEICONVI = 2403, │ │ │ │ │ -283 TDSEICONV2BIG = 2404, │ │ │ │ │ -284 TDSEPORTINSTANCE = 2500, │ │ │ │ │ -285 TDSESYNC = 20001, │ │ │ │ │ -286 TDSEFCON = 20002, │ │ │ │ │ -287 TDSETIME = 20003, │ │ │ │ │ -288 TDSEREAD = 20004, │ │ │ │ │ -289 TDSEWRIT = 20006, │ │ │ │ │ -290 TDSESOCK = 20008, │ │ │ │ │ -291 TDSECONN = 20009, │ │ │ │ │ -292 TDSEMEM = 20010, │ │ │ │ │ -293 TDSEINTF = 20012, /* Server name not found in interface file */ │ │ │ │ │ -294 TDSEUHST = 20013, /* Unknown host machine name. */ │ │ │ │ │ -295 TDSEPWD = 20014, │ │ │ │ │ -296 TDSESEOF = 20017, │ │ │ │ │ -297 TDSERPND = 20019, │ │ │ │ │ -298 TDSEBTOK = 20020, │ │ │ │ │ -299 TDSEOOB = 20022, │ │ │ │ │ -300 TDSECLOS = 20056, │ │ │ │ │ -301 TDSEUSCT = 20058, │ │ │ │ │ -302 TDSEUTDS = 20146, │ │ │ │ │ -303 TDSEEUNR = 20185, │ │ │ │ │ -304 TDSECAP = 20203, │ │ │ │ │ -305 TDSENEG = 20210, │ │ │ │ │ -306 TDSEUMSG = 20212, │ │ │ │ │ -307 TDSECAPTYP = 20213, │ │ │ │ │ -308 TDSECONF = 20214, │ │ │ │ │ -309 TDSEBPROBADTYP = 20250, │ │ │ │ │ -310 TDSECLOSEIN = 20292 │ │ │ │ │ -311} TDSERRNO; │ │ │ │ │ -312 │ │ │ │ │ -313 │ │ │ │ │ -314enum { │ │ │ │ │ -315 TDS_CUR_ISTAT_UNUSED = 0x00, │ │ │ │ │ -316 TDS_CUR_ISTAT_DECLARED = 0x01, │ │ │ │ │ -317 TDS_CUR_ISTAT_OPEN = 0x02, │ │ │ │ │ -318 TDS_CUR_ISTAT_CLOSED = 0x04, │ │ │ │ │ -319 TDS_CUR_ISTAT_RDONLY = 0x08, │ │ │ │ │ -320 TDS_CUR_ISTAT_UPDATABLE = 0x10, │ │ │ │ │ -321 TDS_CUR_ISTAT_ROWCNT = 0x20, │ │ │ │ │ -322 TDS_CUR_ISTAT_DEALLOC = 0x40 │ │ │ │ │ -323}; │ │ │ │ │ -324 │ │ │ │ │ -325/* string types */ │ │ │ │ │ -326#define TDS_NULLTERM -9 │ │ │ │ │ -327 │ │ │ │ │ -328 │ │ │ │ │ -_3_2_9typedef union _t_d_s___o_p_t_i_o_n___a_r_g │ │ │ │ │ -330{ │ │ │ │ │ -331 TDS_TINYINT ti; │ │ │ │ │ -332 TDS_INT i; │ │ │ │ │ -333 TDS_CHAR *c; │ │ │ │ │ -334} _T_D_S___O_P_T_I_O_N___A_R_G; │ │ │ │ │ -335 │ │ │ │ │ -336 │ │ │ │ │ -337typedef enum tds_encryption_level { │ │ │ │ │ -338 TDS_ENCRYPTION_DEFAULT, │ │ │ │ │ -339 TDS_ENCRYPTION_OFF, │ │ │ │ │ -340 TDS_ENCRYPTION_REQUEST, │ │ │ │ │ -341 TDS_ENCRYPTION_REQUIRE │ │ │ │ │ -342} TDS_ENCRYPTION_LEVEL; │ │ │ │ │ -343 │ │ │ │ │ -344/* │ │ │ │ │ -345 * TODO use system macros for optimization │ │ │ │ │ -346 * See mcrypt for reference and linux kernel source for optimization │ │ │ │ │ -347 * check if unaligned access and use fast write/read when implemented │ │ │ │ │ -348 */ │ │ │ │ │ -349#define TDS_BYTE_SWAP16(value) \ │ │ │ │ │ -350 (((((uint16_t)value)<<8) & 0xFF00u) | \ │ │ │ │ │ -351 ((((uint16_t)value)>>8) & 0x00FFu)) │ │ │ │ │ -352 │ │ │ │ │ -353#define TDS_BYTE_SWAP32(value) \ │ │ │ │ │ -354 (((((uint32_t)value)<<24) & 0xFF000000u)| \ │ │ │ │ │ -355 ((((uint32_t)value)<< 8) & 0x00FF0000u)| \ │ │ │ │ │ -356 ((((uint32_t)value)>> 8) & 0x0000FF00u)| \ │ │ │ │ │ -357 ((((uint32_t)value)>>24) & 0x000000FFu)) │ │ │ │ │ -358 │ │ │ │ │ -359#define is_end_token(x) ((x) >= TDS_DONE_TOKEN && (x) <= │ │ │ │ │ -TDS_DONEINPROC_TOKEN) │ │ │ │ │ -360 │ │ │ │ │ -361enum { │ │ │ │ │ -362 TDS_TYPEFLAG_INVALID = 0, │ │ │ │ │ -363 TDS_TYPEFLAG_NULLABLE = 1, │ │ │ │ │ -364 TDS_TYPEFLAG_FIXED = 2, │ │ │ │ │ -365 TDS_TYPEFLAG_VARIABLE = 4, │ │ │ │ │ -366 TDS_TYPEFLAG_COLLATE = 8, │ │ │ │ │ -367 TDS_TYPEFLAG_ASCII = 16, │ │ │ │ │ -368 TDS_TYPEFLAG_UNICODE = 32, │ │ │ │ │ -369 TDS_TYPEFLAG_BINARY = 64, │ │ │ │ │ -370 TDS_TYPEFLAG_DATETIME = 128, │ │ │ │ │ -371 TDS_TYPEFLAG_NUMERIC = 256, │ │ │ │ │ -372 TDS_TYPEFLAG_VARIANT = 512, │ │ │ │ │ -373}; │ │ │ │ │ -374 │ │ │ │ │ -375extern const uint16_t tds_type_flags_ms[256]; │ │ │ │ │ -376#if 0 │ │ │ │ │ -377extern const uint16_t tds_type_flags_syb[256]; │ │ │ │ │ -378extern const char *const tds_type_names[256]; │ │ │ │ │ -379#endif │ │ │ │ │ -380 │ │ │ │ │ -381#define is_fixed_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0) │ │ │ │ │ -382#define is_nullable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) │ │ │ │ │ -!= 0) │ │ │ │ │ -383#define is_variable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) │ │ │ │ │ -!= 0) │ │ │ │ │ -384#define is_variant_inner_type(x) ((tds_type_flags_ms[x] & │ │ │ │ │ -TDS_TYPEFLAG_VARIANT) != 0) │ │ │ │ │ -385 │ │ │ │ │ +270typedef enum │ │ │ │ │ +271{ │ │ │ │ │ +272 TDS_OPT_DATEFIRST = 1 /* 0x01 */ │ │ │ │ │ +273 , TDS_OPT_TEXTSIZE = 2 /* 0x02 */ │ │ │ │ │ +274 , TDS_OPT_STAT_TIME = 3 /* 0x03 */ │ │ │ │ │ +275 , TDS_OPT_STAT_IO = 4 /* 0x04 */ │ │ │ │ │ +276 , TDS_OPT_ROWCOUNT = 5 /* 0x05 */ │ │ │ │ │ +277 , TDS_OPT_NATLANG = 6 /* 0x06 */ │ │ │ │ │ +278 , TDS_OPT_DATEFORMAT = 7 /* 0x07 */ │ │ │ │ │ +279 , TDS_OPT_ISOLATION = 8 /* 0x08 */ │ │ │ │ │ +280 , TDS_OPT_AUTHON = 9 /* 0x09 */ │ │ │ │ │ +281 , TDS_OPT_CHARSET = 10 /* 0x0a */ │ │ │ │ │ +282 , TDS_OPT_SHOWPLAN = 13 /* 0x0d */ │ │ │ │ │ +283 , TDS_OPT_NOEXEC = 14 /* 0x0e */ │ │ │ │ │ +284 , TDS_OPT_ARITHIGNOREON = 15 /* 0x0f */ │ │ │ │ │ +285 , TDS_OPT_ARITHABORTON = 17 /* 0x11 */ │ │ │ │ │ +286 , TDS_OPT_PARSEONLY = 18 /* 0x12 */ │ │ │ │ │ +287 , TDS_OPT_GETDATA = 20 /* 0x14 */ │ │ │ │ │ +288 , TDS_OPT_NOCOUNT = 21 /* 0x15 */ │ │ │ │ │ +289 , TDS_OPT_FORCEPLAN = 23 /* 0x17 */ │ │ │ │ │ +290 , TDS_OPT_FORMATONLY = 24 /* 0x18 */ │ │ │ │ │ +291 , TDS_OPT_CHAINXACTS = 25 /* 0x19 */ │ │ │ │ │ +292 , TDS_OPT_CURCLOSEONXACT = 26 /* 0x1a */ │ │ │ │ │ +293 , TDS_OPT_FIPSFLAG = 27 /* 0x1b */ │ │ │ │ │ +294 , TDS_OPT_RESTREES = 28 /* 0x1c */ │ │ │ │ │ +295 , TDS_OPT_IDENTITYON = 29 /* 0x1d */ │ │ │ │ │ +296 , TDS_OPT_CURREAD = 30 /* 0x1e */ │ │ │ │ │ +297 , TDS_OPT_CURWRITE = 31 /* 0x1f */ │ │ │ │ │ +298 , TDS_OPT_IDENTITYOFF = 32 /* 0x20 */ │ │ │ │ │ +299 , TDS_OPT_AUTHOFF = 33 /* 0x21 */ │ │ │ │ │ +300 , TDS_OPT_ANSINULL = 34 /* 0x22 */ │ │ │ │ │ +301 , TDS_OPT_QUOTED_IDENT = 35 /* 0x23 */ │ │ │ │ │ +302 , TDS_OPT_ARITHIGNOREOFF = 36 /* 0x24 */ │ │ │ │ │ +303 , TDS_OPT_ARITHABORTOFF = 37 /* 0x25 */ │ │ │ │ │ +304 , TDS_OPT_TRUNCABORT = 38 /* 0x26 */ │ │ │ │ │ +305} TDS_OPTION; │ │ │ │ │ +306 │ │ │ │ │ +307enum { │ │ │ │ │ +308 TDS_OPT_ARITHOVERFLOW = 0x01, │ │ │ │ │ +309 TDS_OPT_NUMERICTRUNC = 0x02 │ │ │ │ │ +310}; │ │ │ │ │ +311 │ │ │ │ │ +312enum TDS_OPT_DATEFIRST_CHOICE │ │ │ │ │ +313{ │ │ │ │ │ +314 TDS_OPT_MONDAY = 1, TDS_OPT_TUESDAY = 2, TDS_OPT_WEDNESDAY = 3, │ │ │ │ │ +TDS_OPT_THURSDAY = 4, TDS_OPT_FRIDAY = 5, TDS_OPT_SATURDAY = │ │ │ │ │ +315 6, TDS_OPT_SUNDAY = 7 │ │ │ │ │ +316}; │ │ │ │ │ +317 │ │ │ │ │ +318enum TDS_OPT_DATEFORMAT_CHOICE │ │ │ │ │ +319{ │ │ │ │ │ +320 TDS_OPT_FMTMDY = 1, TDS_OPT_FMTDMY = 2, TDS_OPT_FMTYMD = 3, TDS_OPT_FMTYDM │ │ │ │ │ += 4, TDS_OPT_FMTMYD = 5, TDS_OPT_FMTDYM = 6 │ │ │ │ │ +321}; │ │ │ │ │ +322enum TDS_OPT_ISOLATION_CHOICE │ │ │ │ │ +323{ │ │ │ │ │ +324 TDS_OPT_LEVEL0 = 0, │ │ │ │ │ +325 TDS_OPT_LEVEL1 = 1, │ │ │ │ │ +326 TDS_OPT_LEVEL2 = 2, │ │ │ │ │ +327 TDS_OPT_LEVEL3 = 3 │ │ │ │ │ +328}; │ │ │ │ │ +329 │ │ │ │ │ +330 │ │ │ │ │ +331typedef enum tds_packet_type │ │ │ │ │ +332{ │ │ │ │ │ +333 TDS_QUERY = 1, │ │ │ │ │ +334 TDS_LOGIN = 2, │ │ │ │ │ +335 TDS_RPC = 3, │ │ │ │ │ +336 TDS_REPLY = 4, │ │ │ │ │ +337 TDS_CANCEL = 6, │ │ │ │ │ +338 TDS_BULK = 7, │ │ │ │ │ +339 TDS7_TRANS = 14, /* transaction management */ │ │ │ │ │ +340 TDS_NORMAL = 15, │ │ │ │ │ +341 TDS7_LOGIN = 16, │ │ │ │ │ +342 TDS7_AUTH = 17, │ │ │ │ │ +343 TDS71_PRELOGIN = 18, │ │ │ │ │ +344 TDS72_SMP = 0x53 │ │ │ │ │ +345} TDS_PACKET_TYPE; │ │ │ │ │ +346 │ │ │ │ │ +_3_5_0typedef struct │ │ │ │ │ +351{ │ │ │ │ │ +352 TDS_USMALLINT locale_id; /* master..syslanguages.lcid */ │ │ │ │ │ +353 TDS_USMALLINT flags; │ │ │ │ │ +354 TDS_UCHAR charset_id; /* or zero */ │ │ │ │ │ +355} _T_D_S_7_1___C_O_L_L_A_T_I_O_N; │ │ │ │ │ +356 │ │ │ │ │ +_3_6_0typedef struct │ │ │ │ │ +361{ │ │ │ │ │ +362 TDS_UCHAR signature; /* TDS72_SMP */ │ │ │ │ │ +363 TDS_UCHAR type; │ │ │ │ │ +364 TDS_USMALLINT sid; │ │ │ │ │ +365 TDS_UINT size; │ │ │ │ │ +366 TDS_UINT seq; │ │ │ │ │ +367 TDS_UINT wnd; │ │ │ │ │ +368} _T_D_S_7_2___S_M_P___H_E_A_D_E_R; │ │ │ │ │ +369 │ │ │ │ │ +370enum { │ │ │ │ │ +371 TDS_SMP_SYN = 1, │ │ │ │ │ +372 TDS_SMP_ACK = 2, │ │ │ │ │ +373 TDS_SMP_FIN = 4, │ │ │ │ │ +374 TDS_SMP_DATA = 8, │ │ │ │ │ +375}; │ │ │ │ │ +376 │ │ │ │ │ +377/* SF stands for "sort flag" */ │ │ │ │ │ +378#define TDS_SF_BIN (TDS_USMALLINT) 0x100 │ │ │ │ │ +379#define TDS_SF_WIDTH_INSENSITIVE (TDS_USMALLINT) 0x080 │ │ │ │ │ +380#define TDS_SF_KATATYPE_INSENSITIVE (TDS_USMALLINT) 0x040 │ │ │ │ │ +381#define TDS_SF_ACCENT_SENSITIVE (TDS_USMALLINT) 0x020 │ │ │ │ │ +382#define TDS_SF_CASE_INSENSITIVE (TDS_USMALLINT) 0x010 │ │ │ │ │ +383 │ │ │ │ │ +384/* UT stands for user type */ │ │ │ │ │ +385#define TDS_UT_TIMESTAMP 80 │ │ │ │ │ 386 │ │ │ │ │ -387#define is_blob_type(x) ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT) │ │ │ │ │ -388#define is_blob_col(x) ((x)->column_varint_size > 2) │ │ │ │ │ -389/* large type means it has a two byte size field */ │ │ │ │ │ -390/* define is_large_type(x) (x>128) */ │ │ │ │ │ -391#define is_numeric_type(x) ((x)==SYBNUMERIC || (x)==SYBDECIMAL) │ │ │ │ │ -_3_9_3#define is_datetime_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) │ │ │ │ │ -!= 0) │ │ │ │ │ -394#define is_unicode_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != │ │ │ │ │ -0) │ │ │ │ │ -395#define is_collate_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != │ │ │ │ │ -0) │ │ │ │ │ -396#define is_ascii_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0) │ │ │ │ │ -397#define is_binary_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != │ │ │ │ │ -0) │ │ │ │ │ -398#define is_char_type(x) ((tds_type_flags_ms[x] & │ │ │ │ │ -(TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0) │ │ │ │ │ -399#define is_similar_type(x, y) (is_char_type(x) && is_char_type(y)) │ │ │ │ │ -400static inline │ │ │ │ │ -401bool is_tds_type_valid(int type) │ │ │ │ │ -402{ │ │ │ │ │ -403 return (unsigned) type < 256u && tds_type_flags_ms[type] != 0; │ │ │ │ │ -404} │ │ │ │ │ -405 │ │ │ │ │ +387 │ │ │ │ │ +388/* mssql login options flags */ │ │ │ │ │ +389enum option_flag1_values { │ │ │ │ │ +390 TDS_BYTE_ORDER_X86 = 0, │ │ │ │ │ +391 TDS_CHARSET_ASCII = 0, │ │ │ │ │ +392 TDS_DUMPLOAD_ON = 0, │ │ │ │ │ +393 TDS_FLOAT_IEEE_754 = 0, │ │ │ │ │ +394 TDS_INIT_DB_WARN = 0, │ │ │ │ │ +395 TDS_SET_LANG_OFF = 0, │ │ │ │ │ +396 TDS_USE_DB_SILENT = 0, │ │ │ │ │ +397 TDS_BYTE_ORDER_68000 = 0x01, │ │ │ │ │ +398 TDS_CHARSET_EBDDIC = 0x02, │ │ │ │ │ +399 TDS_FLOAT_VAX = 0x04, │ │ │ │ │ +400 TDS_FLOAT_ND5000 = 0x08, │ │ │ │ │ +401 TDS_DUMPLOAD_OFF = 0x10, /* prevent BCP */ │ │ │ │ │ +402 TDS_USE_DB_NOTIFY = 0x20, │ │ │ │ │ +403 TDS_INIT_DB_FATAL = 0x40, │ │ │ │ │ +404 TDS_SET_LANG_ON = 0x80 │ │ │ │ │ +405}; │ │ │ │ │ 406 │ │ │ │ │ -407#define TDS_MAX_CAPABILITY 32 │ │ │ │ │ -408#define MAXPRECISION 77 │ │ │ │ │ -409#define TDS_MAX_CONN 4096 │ │ │ │ │ -410#define TDS_MAX_DYNID_LEN 30 │ │ │ │ │ -411 │ │ │ │ │ -412/* defaults to use if no others are found */ │ │ │ │ │ -413#define TDS_DEF_SERVER "SYBASE" │ │ │ │ │ -414#define TDS_DEF_BLKSZ 512 │ │ │ │ │ -415#define TDS_DEF_CHARSET "iso_1" │ │ │ │ │ -416#define TDS_DEF_LANG "us_english" │ │ │ │ │ -417#if TDS50 │ │ │ │ │ -418#define TDS_DEFAULT_VERSION 0x500 │ │ │ │ │ -419#define TDS_DEF_PORT 4000 │ │ │ │ │ -420#elif TDS71 │ │ │ │ │ -421#define TDS_DEFAULT_VERSION 0x701 │ │ │ │ │ -422#define TDS_DEF_PORT 1433 │ │ │ │ │ -423#elif TDS72 │ │ │ │ │ -424#define TDS_DEFAULT_VERSION 0x702 │ │ │ │ │ -425#define TDS_DEF_PORT 1433 │ │ │ │ │ -426#elif TDS73 │ │ │ │ │ -427#define TDS_DEFAULT_VERSION 0x703 │ │ │ │ │ -428#define TDS_DEF_PORT 1433 │ │ │ │ │ -429#elif TDS74 │ │ │ │ │ -430#define TDS_DEFAULT_VERSION 0x704 │ │ │ │ │ -431#define TDS_DEF_PORT 1433 │ │ │ │ │ -432#else │ │ │ │ │ -433#define TDS_DEFAULT_VERSION 0x000 │ │ │ │ │ -434#define TDS_DEF_PORT 1433 │ │ │ │ │ -435#endif │ │ │ │ │ -436 │ │ │ │ │ -437/* normalized strings from freetds.conf file */ │ │ │ │ │ -438#define TDS_STR_VERSION "tds version" │ │ │ │ │ -439#define TDS_STR_BLKSZ "initial block size" │ │ │ │ │ -440#define TDS_STR_SWAPDT "swap broken dates" │ │ │ │ │ -441#define TDS_STR_DUMPFILE "dump file" │ │ │ │ │ -442#define TDS_STR_DEBUGLVL "debug level" │ │ │ │ │ -443#define TDS_STR_DEBUGFLAGS "debug flags" │ │ │ │ │ -444#define TDS_STR_TIMEOUT "timeout" │ │ │ │ │ -445#define TDS_STR_QUERY_TIMEOUT "query timeout" │ │ │ │ │ -446#define TDS_STR_CONNTIMEOUT "connect timeout" │ │ │ │ │ -447#define TDS_STR_HOSTNAME "hostname" │ │ │ │ │ -448#define TDS_STR_HOST "host" │ │ │ │ │ -449#define TDS_STR_PORT "port" │ │ │ │ │ -450#define TDS_STR_TEXTSZ "text size" │ │ │ │ │ -451/* for big endian hosts, obsolete, ignored */ │ │ │ │ │ -452#define TDS_STR_EMUL_LE "emulate little endian" │ │ │ │ │ -453#define TDS_STR_CHARSET "charset" │ │ │ │ │ -454#define TDS_STR_CLCHARSET "client charset" │ │ │ │ │ -455#define TDS_STR_USE_UTF_16 "use utf-16" │ │ │ │ │ -456#define TDS_STR_LANGUAGE "language" │ │ │ │ │ -457#define TDS_STR_APPENDMODE "dump file append" │ │ │ │ │ -458#define TDS_STR_DATEFMT "date format" │ │ │ │ │ -459#define TDS_STR_INSTANCE "instance" │ │ │ │ │ -460#define TDS_STR_ASA_DATABASE "asa database" │ │ │ │ │ -461#define TDS_STR_DATABASE "database" │ │ │ │ │ -462#define TDS_STR_ENCRYPTION "encryption" │ │ │ │ │ -463#define TDS_STR_USENTLMV2 "use ntlmv2" │ │ │ │ │ -464#define TDS_STR_USELANMAN "use lanman" │ │ │ │ │ -465/* conf values */ │ │ │ │ │ -466#define TDS_STR_ENCRYPTION_OFF "off" │ │ │ │ │ -467#define TDS_STR_ENCRYPTION_REQUEST "request" │ │ │ │ │ -468#define TDS_STR_ENCRYPTION_REQUIRE "require" │ │ │ │ │ -469/* Defines to enable optional GSSAPI delegation */ │ │ │ │ │ -470#define TDS_GSSAPI_DELEGATION "enable gssapi delegation" │ │ │ │ │ -471/* Mutual authentication */ │ │ │ │ │ -472#define TDS_STR_MUTUAL_AUTHENTICATION "mutual authentication" │ │ │ │ │ -473/* Kerberos realm name */ │ │ │ │ │ -474#define TDS_STR_REALM "realm" │ │ │ │ │ -475/* Kerberos SPN */ │ │ │ │ │ -476#define TDS_STR_SPN "spn" │ │ │ │ │ -477/* CA file */ │ │ │ │ │ -478#define TDS_STR_CAFILE "ca file" │ │ │ │ │ -479/* CRL file */ │ │ │ │ │ -480#define TDS_STR_CRLFILE "crl file" │ │ │ │ │ -481/* check SSL hostname */ │ │ │ │ │ -482#define TDS_STR_CHECKSSLHOSTNAME "check certificate hostname" │ │ │ │ │ -483/* database filename to attach on login (MSSQL) */ │ │ │ │ │ -484#define TDS_STR_DBFILENAME "database filename" │ │ │ │ │ -485/* Application Intent MSSQL 2012 support */ │ │ │ │ │ -486#define TDS_STR_READONLY_INTENT "read-only intent" │ │ │ │ │ -487/* configurable cipher suite to send to openssl's SSL_set_cipher_list() │ │ │ │ │ -function */ │ │ │ │ │ -488#define TLS_STR_OPENSSL_CIPHERS "openssl ciphers" │ │ │ │ │ -489/* enable old TLS v1, required for instance if you are using a really old │ │ │ │ │ -Windows XP */ │ │ │ │ │ -490#define TDS_STR_ENABLE_TLS_V1 "enable tls v1" │ │ │ │ │ -491 │ │ │ │ │ -492 │ │ │ │ │ -493/* TODO do a better check for alignment than this */ │ │ │ │ │ -_4_9_4typedef union │ │ │ │ │ -495{ │ │ │ │ │ -496 void *p; │ │ │ │ │ -497 int i; │ │ │ │ │ -498 int64_t ui; │ │ │ │ │ -499} _t_d_s___a_l_i_g_n___s_t_r_u_c_t; │ │ │ │ │ -500 │ │ │ │ │ -501#define TDS_ALIGN_SIZE sizeof(tds_align_struct) │ │ │ │ │ -502 │ │ │ │ │ -_5_0_3typedef struct _t_d_s___c_a_p_a_b_i_l_i_t_y___t_y_p_e │ │ │ │ │ -504{ │ │ │ │ │ -505 unsigned char type; │ │ │ │ │ -506 unsigned char len; /* always sizeof(values) */ │ │ │ │ │ -507 unsigned char values[TDS_MAX_CAPABILITY/2-2]; │ │ │ │ │ -508} _T_D_S___C_A_P_A_B_I_L_I_T_Y___T_Y_P_E; │ │ │ │ │ -509 │ │ │ │ │ -_5_1_0typedef struct _t_d_s___c_a_p_a_b_i_l_i_t_i_e_s │ │ │ │ │ -511{ │ │ │ │ │ -512 _T_D_S___C_A_P_A_B_I_L_I_T_Y___T_Y_P_E types[2]; │ │ │ │ │ -513} _T_D_S___C_A_P_A_B_I_L_I_T_I_E_S; │ │ │ │ │ -514 │ │ │ │ │ -515#define TDS_MAX_LOGIN_STR_SZ 128 │ │ │ │ │ -_5_1_6typedef struct _t_d_s___l_o_g_i_n │ │ │ │ │ -517{ │ │ │ │ │ -_5_1_8 _D_S_T_R _s_e_r_v_e_r___n_a_m_e; │ │ │ │ │ -_5_1_9 int _p_o_r_t; │ │ │ │ │ -_5_2_0 TDS_USMALLINT _t_d_s___v_e_r_s_i_o_n; │ │ │ │ │ -521 int block_size; │ │ │ │ │ -522 _D_S_T_R language; /* e.g. us-english */ │ │ │ │ │ -_5_2_3 _D_S_T_R _s_e_r_v_e_r___c_h_a_r_s_e_t; │ │ │ │ │ -524 TDS_INT connect_timeout; │ │ │ │ │ -525 _D_S_T_R client_host_name; │ │ │ │ │ -526 _D_S_T_R server_host_name; │ │ │ │ │ -_5_2_7 _D_S_T_R _s_e_r_v_e_r___r_e_a_l_m___n_a_m_e; │ │ │ │ │ -_5_2_8 _D_S_T_R _s_e_r_v_e_r___s_p_n; │ │ │ │ │ -_5_2_9 _D_S_T_R _d_b___f_i_l_e_n_a_m_e; │ │ │ │ │ -_5_3_0 _D_S_T_R _c_a_f_i_l_e; │ │ │ │ │ -_5_3_1 _D_S_T_R _c_r_l_f_i_l_e; │ │ │ │ │ -532 _D_S_T_R openssl_ciphers; │ │ │ │ │ -533 _D_S_T_R app_name; │ │ │ │ │ -_5_3_4 _D_S_T_R _u_s_e_r___n_a_m_e; │ │ │ │ │ -_5_3_5 _D_S_T_R _p_a_s_s_w_o_r_d; │ │ │ │ │ -_5_3_6 _D_S_T_R _n_e_w___p_a_s_s_w_o_r_d; │ │ │ │ │ -538 _D_S_T_R library; /* Ct-Library, DB-Library, TDS-Library or ODBC */ │ │ │ │ │ -539 TDS_TINYINT encryption_level; │ │ │ │ │ -540 │ │ │ │ │ -541 TDS_INT query_timeout; │ │ │ │ │ -542 _T_D_S___C_A_P_A_B_I_L_I_T_I_E_S capabilities; │ │ │ │ │ -543 _D_S_T_R client_charset; │ │ │ │ │ -544 _D_S_T_R database; │ │ │ │ │ -545 │ │ │ │ │ -_5_4_6 struct addrinfo *_i_p___a_d_d_r_s; │ │ │ │ │ -547 _D_S_T_R instance_name; │ │ │ │ │ -548 _D_S_T_R dump_file; │ │ │ │ │ -549 int debug_flags; │ │ │ │ │ -550 int text_size; │ │ │ │ │ -551 _D_S_T_R routing_address; │ │ │ │ │ -552 uint16_t routing_port; │ │ │ │ │ +407enum option_flag2_values { │ │ │ │ │ +408 TDS_INIT_LANG_WARN = 0, │ │ │ │ │ +409 TDS_INTEGRATED_SECURTY_OFF = 0, │ │ │ │ │ +410 TDS_ODBC_OFF = 0, │ │ │ │ │ +411 TDS_USER_NORMAL = 0, /* SQL Server login */ │ │ │ │ │ +412 TDS_INIT_LANG_REQUIRED = 0x01, │ │ │ │ │ +413 TDS_ODBC_ON = 0x02, │ │ │ │ │ +414 TDS_TRANSACTION_BOUNDARY71 = 0x04, /* removed in TDS 7.2 */ │ │ │ │ │ +415 TDS_CACHE_CONNECT71 = 0x08, /* removed in TDS 7.2 */ │ │ │ │ │ +416 TDS_USER_SERVER = 0x10, /* reserved */ │ │ │ │ │ +417 TDS_USER_REMUSER = 0x20, /* DQ login */ │ │ │ │ │ +418 TDS_USER_SQLREPL = 0x40, /* replication login */ │ │ │ │ │ +419 TDS_INTEGRATED_SECURITY_ON = 0x80 │ │ │ │ │ +420}; │ │ │ │ │ +421 │ │ │ │ │ +422enum option_flag3_values { │ │ │ │ │ +423 TDS_RESTRICTED_COLLATION = 0, │ │ │ │ │ +424 TDS_CHANGE_PASSWORD = 0x01, /* TDS 7.2 */ │ │ │ │ │ +425 TDS_SEND_YUKON_BINARY_XML = 0x02, /* TDS 7.2 */ │ │ │ │ │ +426 TDS_REQUEST_USER_INSTANCE = 0x04, /* TDS 7.2 */ │ │ │ │ │ +427 TDS_UNKNOWN_COLLATION_HANDLING = 0x08, /* TDS 7.3 */ │ │ │ │ │ +428 TDS_EXTENSION = 0x10, /* TDS 7.4 */ │ │ │ │ │ +429}; │ │ │ │ │ +430 │ │ │ │ │ +431enum type_flags { │ │ │ │ │ +432 TDS_OLEDB_ON = 0x10, │ │ │ │ │ +433 TDS_READONLY_INTENT = 0x20, │ │ │ │ │ +434}; │ │ │ │ │ +435 │ │ │ │ │ +436/* Sybase dynamic types */ │ │ │ │ │ +437enum dynamic_types { │ │ │ │ │ +438 TDS_DYN_PREPARE = 0x01, │ │ │ │ │ +439 TDS_DYN_EXEC = 0x02, │ │ │ │ │ +440 TDS_DYN_DEALLOC = 0x04, │ │ │ │ │ +441 TDS_DYN_EXEC_IMMED = 0x08, │ │ │ │ │ +442 TDS_DYN_PROCNAME = 0x10, │ │ │ │ │ +443 TDS_DYN_ACK = 0x20, │ │ │ │ │ +444 TDS_DYN_DESCIN = 0x40, │ │ │ │ │ +445 TDS_DYN_DESCOUT = 0x80, │ │ │ │ │ +446}; │ │ │ │ │ +447 │ │ │ │ │ +448/* http://jtds.sourceforge.net/apiCursors.html */ │ │ │ │ │ +449/* Cursor scroll option, must be one of 0x01 - 0x10, OR'd with other bits */ │ │ │ │ │ +450enum { │ │ │ │ │ +451 TDS_CUR_TYPE_KEYSET = 0x0001, /* default */ │ │ │ │ │ +452 TDS_CUR_TYPE_DYNAMIC = 0x0002, │ │ │ │ │ +453 TDS_CUR_TYPE_FORWARD = 0x0004, │ │ │ │ │ +454 TDS_CUR_TYPE_STATIC = 0x0008, │ │ │ │ │ +455 TDS_CUR_TYPE_FASTFORWARDONLY = 0x0010, │ │ │ │ │ +456 TDS_CUR_TYPE_PARAMETERIZED = 0x1000, │ │ │ │ │ +457 TDS_CUR_TYPE_AUTO_FETCH = 0x2000 │ │ │ │ │ +458}; │ │ │ │ │ +459 │ │ │ │ │ +460enum { │ │ │ │ │ +461 TDS_CUR_CONCUR_READ_ONLY = 1, │ │ │ │ │ +462 TDS_CUR_CONCUR_SCROLL_LOCKS = 2, │ │ │ │ │ +463 TDS_CUR_CONCUR_OPTIMISTIC = 4, /* default */ │ │ │ │ │ +464 TDS_CUR_CONCUR_OPTIMISTIC_VALUES = 8 │ │ │ │ │ +465}; │ │ │ │ │ +466 │ │ │ │ │ +467/* TDS 4/5 login*/ │ │ │ │ │ +468#define TDS_MAXNAME 30 /* maximum login name lenghts */ │ │ │ │ │ +469#define TDS_PROGNLEN 10 /* maximum program lenght */ │ │ │ │ │ +470#define TDS_PKTLEN 6 /* maximum packet lenght in login */ │ │ │ │ │ +471 │ │ │ │ │ +472/* TDS 5 login security flags */ │ │ │ │ │ +473enum { │ │ │ │ │ +474 TDS5_SEC_LOG_ENCRYPT = 1, │ │ │ │ │ +475 TDS5_SEC_LOG_CHALLENGE = 2, │ │ │ │ │ +476 TDS5_SEC_LOG_LABELS = 4, │ │ │ │ │ +477 TDS5_SEC_LOG_APPDEFINED = 8, │ │ │ │ │ +478 TDS5_SEC_LOG_SECSESS = 16, │ │ │ │ │ +479 TDS5_SEC_LOG_ENCRYPT2 = 32, │ │ │ │ │ +480 TDS5_SEC_LOG_ENCRYPT3 = 128, │ │ │ │ │ +481}; │ │ │ │ │ +482 │ │ │ │ │ +484enum { │ │ │ │ │ +485 TDS5_MSG_SEC_ENCRYPT = 1, │ │ │ │ │ +486 TDS5_MSG_SEC_LOGPWD = 2, │ │ │ │ │ +487 TDS5_MSG_SEC_REMPWD = 3, │ │ │ │ │ +488 TDS5_MSG_SEC_CHALLENGE = 4, │ │ │ │ │ +489 TDS5_MSG_SEC_RESPONSE = 5, │ │ │ │ │ +490 TDS5_MSG_SEC_GETLABEL = 6, │ │ │ │ │ +491 TDS5_MSG_SEC_LABEL = 7, │ │ │ │ │ +492 TDS5_MSG_SQL_TBLNAME = 8, │ │ │ │ │ +493 TDS5_MSG_GW_RESERVED = 9, │ │ │ │ │ +494 TDS5_MSG_OMNI_CAPABILITIES = 10, │ │ │ │ │ +495 TDS5_MSG_SEC_OPAQUE = 11, │ │ │ │ │ +496 TDS5_MSG_HAFAILOVER = 12, │ │ │ │ │ +497 TDS5_MSG_EMPTY = 13, │ │ │ │ │ +500 TDS5_MSG_SEC_ENCRYPT2 = 14, │ │ │ │ │ +501 TDS5_MSG_SEC_LOGPWD2 = 15, │ │ │ │ │ +502 TDS5_MSG_SEC_SUP_CIPHER = 16, │ │ │ │ │ +503 TDS5_MSG_MIG_REQ = 17, │ │ │ │ │ +505 TDS5_MSG_MIG_SYNC = 18, │ │ │ │ │ +506 TDS5_MSG_MIG_CONT = 19, │ │ │ │ │ +507 TDS5_MSG_MIG_IGN = 20, │ │ │ │ │ +508 TDS5_MSG_MIG_FAIL = 21, │ │ │ │ │ +510 TDS5_MSG_SEC_REMPWD2 = 22, │ │ │ │ │ +511 TDS5_MSG_MIG_RESUME = 23, │ │ │ │ │ +512 TDS5_MSG_SEC_ENCRYPT3 = 30, │ │ │ │ │ +513 TDS5_MSG_SEC_LOGPWD3 = 31, │ │ │ │ │ +514 TDS5_MSG_SEC_REMPWD3 = 32, │ │ │ │ │ +515 TDS5_MSG_DR_MAP = 33, │ │ │ │ │ +516}; │ │ │ │ │ +517 │ │ │ │ │ +528enum { │ │ │ │ │ +529 TDS5_SEC_SECSESS = 1, │ │ │ │ │ +530 TDS5_SEC_FORWARD = 2, │ │ │ │ │ +531 TDS5_SEC_SIGN = 3, │ │ │ │ │ +532 TDS5_SEC_OTHER = 4, │ │ │ │ │ +533}; │ │ │ │ │ +534 │ │ │ │ │ +538enum { │ │ │ │ │ +539 TDS5_SEC_NETWORK_AUTHENTICATION = 0x1, │ │ │ │ │ +540 TDS5_SEC_MUTUAL_AUTHENTICATION = 0x2, │ │ │ │ │ +541 TDS5_SEC_DELEGATION = 0x4, │ │ │ │ │ +542 TDS5_SEC_INTEGRITY = 0x8, │ │ │ │ │ +543 TDS5_SEC_CONFIDENTIALITY = 0x10, │ │ │ │ │ +544 TDS5_SEC_DETECT_REPLAY = 0x20, │ │ │ │ │ +545 TDS5_SEC_DETECT_SEQUENCE = 0x40, │ │ │ │ │ +546 TDS5_SEC_DATA_ORIGIN = 0x80, │ │ │ │ │ +547 TDS5_SEC_CHANNEL_BINDING = 0x100, │ │ │ │ │ +548}; │ │ │ │ │ +549 │ │ │ │ │ +550enum { │ │ │ │ │ +551 TDS5_SEC_VERSION = 50, │ │ │ │ │ +552}; │ │ │ │ │ 553 │ │ │ │ │ -554 unsigned char option_flag2; │ │ │ │ │ -555 │ │ │ │ │ -_5_5_6 unsigned int _b_u_l_k___c_o_p_y:1; │ │ │ │ │ -557 unsigned int suppress_language:1; │ │ │ │ │ -558 unsigned int gssapi_use_delegation:1; │ │ │ │ │ -559 unsigned int mutual_authentication:1; │ │ │ │ │ -560 unsigned int use_ntlmv2:1; │ │ │ │ │ -561 unsigned int use_ntlmv2_specified:1; │ │ │ │ │ -562 unsigned int use_lanman:1; │ │ │ │ │ -563 unsigned int mars:1; │ │ │ │ │ -564 unsigned int use_utf16:1; │ │ │ │ │ -565 unsigned int use_new_password:1; │ │ │ │ │ -566 unsigned int valid_configuration:1; │ │ │ │ │ -567 unsigned int check_ssl_hostname:1; │ │ │ │ │ -568 unsigned int readonly_intent:1; │ │ │ │ │ -569 unsigned int enable_tls_v1:1; │ │ │ │ │ -570 unsigned int server_is_valid:1; │ │ │ │ │ -571} _T_D_S_L_O_G_I_N; │ │ │ │ │ -572 │ │ │ │ │ -_5_7_3typedef struct _t_d_s___h_e_a_d_e_r_s │ │ │ │ │ -574{ │ │ │ │ │ -575 const char *qn_options; │ │ │ │ │ -576 const char *qn_msgtext; │ │ │ │ │ -577 TDS_INT qn_timeout; │ │ │ │ │ -578 /* TDS 7.4+: trace activity ID char[20] */ │ │ │ │ │ -579} _T_D_S_H_E_A_D_E_R_S; │ │ │ │ │ -580 │ │ │ │ │ -_5_8_1typedef struct _t_d_s___l_o_c_a_l_e │ │ │ │ │ -582{ │ │ │ │ │ -583 char *language; │ │ │ │ │ -584 char *server_charset; │ │ │ │ │ -585 char *date_fmt; │ │ │ │ │ -586} _T_D_S_L_O_C_A_L_E; │ │ │ │ │ -587 │ │ │ │ │ -_5_9_2typedef struct _t_d_s___b_l_o_b │ │ │ │ │ -593{ │ │ │ │ │ -594 TDS_CHAR *textvalue; │ │ │ │ │ -595 TDS_CHAR textptr[16]; │ │ │ │ │ -596 TDS_CHAR timestamp[8]; │ │ │ │ │ -597 unsigned char valid_ptr; │ │ │ │ │ -_5_9_8} _T_D_S_B_L_O_B; │ │ │ │ │ -599 │ │ │ │ │ -_6_0_3typedef struct _t_d_s___v_a_r_i_a_n_t │ │ │ │ │ -604{ │ │ │ │ │ -605 /* this MUST have same position and place of textvalue in tds_blob */ │ │ │ │ │ -606 TDS_CHAR *data; │ │ │ │ │ -607 TDS_INT size; │ │ │ │ │ -608 TDS_INT data_len; │ │ │ │ │ -609 TDS_SERVER_TYPE type; │ │ │ │ │ -610 TDS_UCHAR collation[5]; │ │ │ │ │ -_6_1_1} _T_D_S_V_A_R_I_A_N_T; │ │ │ │ │ -612 │ │ │ │ │ -_6_1_7typedef struct _t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ -618{ │ │ │ │ │ -_6_2_0 const char *_n_a_m_e; │ │ │ │ │ -621 unsigned char min_bytes_per_char; │ │ │ │ │ -622 unsigned char max_bytes_per_char; │ │ │ │ │ -_6_2_4 unsigned char _c_a_n_o_n_i_c; │ │ │ │ │ -_6_2_5} _T_D_S___E_N_C_O_D_I_N_G; │ │ │ │ │ -626 │ │ │ │ │ -_6_2_7typedef struct _t_d_s___b_c_p_c_o_l_d_a_t_a │ │ │ │ │ -628{ │ │ │ │ │ -629 TDS_UCHAR *data; │ │ │ │ │ -630 TDS_INT datalen; │ │ │ │ │ -631 bool is_null; │ │ │ │ │ -632} _B_C_P_C_O_L_D_A_T_A; │ │ │ │ │ -633 │ │ │ │ │ -634 │ │ │ │ │ -635typedef TDSRET tds_func_get_info(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -636typedef TDSRET tds_func_get_data(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -637typedef TDS_INT tds_func_row_len(_T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -638typedef TDSRET tds_func_put_info(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -639typedef TDSRET tds_func_put_data(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col, int bcp7); │ │ │ │ │ -640typedef int tds_func_check(const _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -641 │ │ │ │ │ -_6_4_2typedef struct _t_d_s___c_o_l_u_m_n___f_u_n_c_s │ │ │ │ │ -643{ │ │ │ │ │ -644 tds_func_get_info *get_info; │ │ │ │ │ -645 tds_func_get_data *get_data; │ │ │ │ │ -646 tds_func_row_len *row_len; │ │ │ │ │ -_6_5_2 tds_func_put_info *_p_u_t___i_n_f_o; │ │ │ │ │ -_6_6_2 tds_func_put_data *_p_u_t___d_a_t_a; │ │ │ │ │ -663#if ENABLE_EXTRA_CHECKS │ │ │ │ │ -678 tds_func_check *check; │ │ │ │ │ -679#endif │ │ │ │ │ -680#if 0 │ │ │ │ │ -681 TDSRET (*convert)(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -682#endif │ │ │ │ │ -683} _T_D_S_C_O_L_U_M_N_F_U_N_C_S; │ │ │ │ │ -684 │ │ │ │ │ -_6_8_8struct _t_d_s___c_o_l_u_m_n │ │ │ │ │ -689{ │ │ │ │ │ -690 const _T_D_S_C_O_L_U_M_N_F_U_N_C_S *funcs; │ │ │ │ │ -691 TDS_INT column_usertype; │ │ │ │ │ -692 TDS_INT column_flags; │ │ │ │ │ -693 │ │ │ │ │ -_6_9_4 TDS_INT _c_o_l_u_m_n___s_i_z_e; │ │ │ │ │ -_6_9_6 TDS_SERVER_TYPE _c_o_l_u_m_n___t_y_p_e; │ │ │ │ │ -_7_0_1 TDS_TINYINT _c_o_l_u_m_n___v_a_r_i_n_t___s_i_z_e; │ │ │ │ │ -_7_0_3 TDS_TINYINT _c_o_l_u_m_n___p_r_e_c; │ │ │ │ │ -_7_0_4 TDS_TINYINT _c_o_l_u_m_n___s_c_a_l_e; │ │ │ │ │ -706 struct │ │ │ │ │ -707 { │ │ │ │ │ -708 TDS_SERVER_TYPE _c_o_l_u_m_n___t_y_p_e; │ │ │ │ │ -709 TDS_INT _c_o_l_u_m_n___s_i_z_e; │ │ │ │ │ -710 } on_server; │ │ │ │ │ -711 │ │ │ │ │ -_7_1_2 _T_D_S_I_C_O_N_V *_c_h_a_r___c_o_n_v; │ │ │ │ │ -714 _D_S_T_R table_name; │ │ │ │ │ -715 _D_S_T_R column_name; │ │ │ │ │ -716 _D_S_T_R table_column_name; │ │ │ │ │ -717 │ │ │ │ │ -718 unsigned char *column_data; │ │ │ │ │ -719 void (*column_data_free)(struct _t_d_s___c_o_l_u_m_n *column); │ │ │ │ │ -720 unsigned char column_nullable:1; │ │ │ │ │ -721 unsigned char column_writeable:1; │ │ │ │ │ -722 unsigned char column_identity:1; │ │ │ │ │ -723 unsigned char column_key:1; │ │ │ │ │ -724 unsigned char column_hidden:1; │ │ │ │ │ -725 unsigned char column_output:1; │ │ │ │ │ -726 unsigned char column_timestamp:1; │ │ │ │ │ -727 unsigned char column_computed:1; │ │ │ │ │ -728 TDS_UCHAR column_collation[5]; │ │ │ │ │ -729 │ │ │ │ │ -730 /* additional fields flags for compute results */ │ │ │ │ │ -731 TDS_SMALLINT column_operand; │ │ │ │ │ -732 TDS_TINYINT column_operator; │ │ │ │ │ -733 │ │ │ │ │ -734 /* FIXME this is data related, not column */ │ │ │ │ │ -_7_3_6 TDS_INT _c_o_l_u_m_n___c_u_r___s_i_z_e; │ │ │ │ │ -737 │ │ │ │ │ -738 /* related to binding or info stored by client libraries */ │ │ │ │ │ -739 /* FIXME find a best place to store these data, some are unused */ │ │ │ │ │ -740 TDS_SMALLINT column_bindtype; │ │ │ │ │ -741 TDS_SMALLINT column_bindfmt; │ │ │ │ │ -742 TDS_UINT column_bindlen; │ │ │ │ │ -743 TDS_SMALLINT *column_nullbind; │ │ │ │ │ -744 TDS_CHAR *column_varaddr; │ │ │ │ │ -745 TDS_INT *column_lenbind; │ │ │ │ │ -746 TDS_INT column_textpos; │ │ │ │ │ -747 TDS_INT column_text_sqlgetdatapos; │ │ │ │ │ -748 TDS_CHAR column_text_sqlputdatainfo; │ │ │ │ │ -749 unsigned char column_iconv_left; │ │ │ │ │ -750 char column_iconv_buf[9]; │ │ │ │ │ -751 │ │ │ │ │ -752 _B_C_P_C_O_L_D_A_T_A *bcp_column_data; │ │ │ │ │ -_7_6_1 TDS_INT _b_c_p___p_r_e_f_i_x___l_e_n; │ │ │ │ │ -762 TDS_INT bcp_term_len; │ │ │ │ │ -763 TDS_CHAR *bcp_terminator; │ │ │ │ │ -764}; │ │ │ │ │ -765 │ │ │ │ │ -766 │ │ │ │ │ -_7_6_8typedef struct _t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ -769{ │ │ │ │ │ -770 /* TODO those fields can became a struct */ │ │ │ │ │ -771 _T_D_S_C_O_L_U_M_N **columns; │ │ │ │ │ -772 TDS_USMALLINT num_cols; │ │ │ │ │ -773 TDS_USMALLINT computeid; │ │ │ │ │ -774 TDS_INT ref_count; │ │ │ │ │ -775 _T_D_S_S_O_C_K_E_T *attached_to; │ │ │ │ │ -776 unsigned char *current_row; │ │ │ │ │ -777 void (*row_free)(struct _t_d_s___r_e_s_u_l_t___i_n_f_o* result, unsigned char *row); │ │ │ │ │ -778 TDS_INT row_size; │ │ │ │ │ -779 │ │ │ │ │ -780 TDS_SMALLINT *bycolumns; │ │ │ │ │ -781 TDS_USMALLINT by_cols; │ │ │ │ │ -782 bool rows_exist; │ │ │ │ │ -783 /* TODO remove ?? used only in dblib */ │ │ │ │ │ -784 bool more_results; │ │ │ │ │ -_7_8_5} _T_D_S_R_E_S_U_L_T_I_N_F_O; │ │ │ │ │ -786 │ │ │ │ │ -_7_8_8typedef enum _t_d_s___s_t_a_t_e_s │ │ │ │ │ -789{ │ │ │ │ │ -_7_9_0 _T_D_S___I_D_L_E, │ │ │ │ │ -_7_9_1 _T_D_S___W_R_I_T_I_N_G, │ │ │ │ │ -_7_9_2 _T_D_S___S_E_N_D_I_N_G, │ │ │ │ │ -_7_9_3 _T_D_S___P_E_N_D_I_N_G, │ │ │ │ │ -_7_9_4 _T_D_S___R_E_A_D_I_N_G, │ │ │ │ │ -795 _T_D_S___D_E_A_D │ │ │ │ │ -_7_9_6} _T_D_S___S_T_A_T_E; │ │ │ │ │ -797 │ │ │ │ │ -798typedef enum tds_operations │ │ │ │ │ -799{ │ │ │ │ │ -800 TDS_OP_NONE = 0, │ │ │ │ │ -801 │ │ │ │ │ -802 /* mssql operations */ │ │ │ │ │ -803 TDS_OP_CURSOR = TDS_SP_CURSOR, │ │ │ │ │ -804 TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN, │ │ │ │ │ -805 TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE, │ │ │ │ │ -806 TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE, │ │ │ │ │ -807 TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC, │ │ │ │ │ -808 TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE, │ │ │ │ │ -809 TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH, │ │ │ │ │ -810 TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION, │ │ │ │ │ -811 TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE, │ │ │ │ │ -812 TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL, │ │ │ │ │ -813 TDS_OP_PREPARE = TDS_SP_PREPARE, │ │ │ │ │ -814 TDS_OP_EXECUTE = TDS_SP_EXECUTE, │ │ │ │ │ -815 TDS_OP_PREPEXEC = TDS_SP_PREPEXEC, │ │ │ │ │ -816 TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC, │ │ │ │ │ -817 TDS_OP_UNPREPARE = TDS_SP_UNPREPARE, │ │ │ │ │ -818 │ │ │ │ │ -819 /* sybase operations */ │ │ │ │ │ -820 TDS_OP_DYN_DEALLOC = 100, │ │ │ │ │ -821} TDS_OPERATION; │ │ │ │ │ -822 │ │ │ │ │ -823#define TDS_DBG_LOGIN __FILE__, ((__LINE__ << 4) | 11) │ │ │ │ │ -824#define TDS_DBG_HEADER __FILE__, ((__LINE__ << 4) | 10) │ │ │ │ │ -825#define TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7) │ │ │ │ │ -826#define TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6) │ │ │ │ │ -827#define TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5) │ │ │ │ │ -828#define TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4) │ │ │ │ │ -829#define TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3) │ │ │ │ │ -830#define TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2) │ │ │ │ │ -831#define TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1) │ │ │ │ │ -832 │ │ │ │ │ -833#define TDS_DBGFLAG_FUNC 0x80 │ │ │ │ │ -834#define TDS_DBGFLAG_INFO2 0x40 │ │ │ │ │ -835#define TDS_DBGFLAG_INFO1 0x20 │ │ │ │ │ -836#define TDS_DBGFLAG_NETWORK 0x10 │ │ │ │ │ -837#define TDS_DBGFLAG_WARN 0x08 │ │ │ │ │ -838#define TDS_DBGFLAG_ERROR 0x04 │ │ │ │ │ -839#define TDS_DBGFLAG_SEVERE 0x02 │ │ │ │ │ -840#define TDS_DBGFLAG_ALL 0xfff │ │ │ │ │ -841#define TDS_DBGFLAG_LOGIN 0x0800 │ │ │ │ │ -842#define TDS_DBGFLAG_HEADER 0x0400 │ │ │ │ │ -843#define TDS_DBGFLAG_PID 0x1000 │ │ │ │ │ -844#define TDS_DBGFLAG_TIME 0x2000 │ │ │ │ │ -845#define TDS_DBGFLAG_SOURCE 0x4000 │ │ │ │ │ -846#define TDS_DBGFLAG_THREAD 0x8000 │ │ │ │ │ -847 │ │ │ │ │ -848#if 0 │ │ │ │ │ -854enum TDS_DBG_LOG_STATE │ │ │ │ │ -855{ │ │ │ │ │ -856 TDS_DBG_LOGIN = (1 << 0) │ │ │ │ │ -858 , TDS_DBG_API = (1 << 1) │ │ │ │ │ -859 , TDS_DBG_ASYNC = (1 << 2) │ │ │ │ │ -860 , TDS_DBG_DIAG = (1 << 3) │ │ │ │ │ -861 , TDS_DBG_error = (1 << 4) │ │ │ │ │ -862 /* TODO: ^^^^^ make upper case when old #defines (above) are removed */ │ │ │ │ │ -863 /* Log FreeTDS runtime/logic error occurs. */ │ │ │ │ │ -864 , TDS_DBG_PACKET = (1 << 5) │ │ │ │ │ -865 , TDS_DBG_LIBTDS = (1 << 6) │ │ │ │ │ -866 , TDS_DBG_CONFIG = (1 << 7) │ │ │ │ │ -867 , TDS_DBG_DEFAULT = 0xFE │ │ │ │ │ -868}; │ │ │ │ │ -869#endif │ │ │ │ │ -870 │ │ │ │ │ -871typedef struct _t_d_s___r_e_s_u_l_t___i_n_f_o _T_D_S_C_O_M_P_U_T_E_I_N_F_O; │ │ │ │ │ -872 │ │ │ │ │ -873typedef _T_D_S_R_E_S_U_L_T_I_N_F_O _T_D_S_P_A_R_A_M_I_N_F_O; │ │ │ │ │ -874 │ │ │ │ │ -_8_7_5typedef struct _t_d_s___m_e_s_s_a_g_e │ │ │ │ │ -876{ │ │ │ │ │ -877 TDS_CHAR *server; │ │ │ │ │ -878 TDS_CHAR *message; │ │ │ │ │ -879 TDS_CHAR *proc_name; │ │ │ │ │ -880 TDS_CHAR *sql_state; │ │ │ │ │ -881 TDS_INT msgno; │ │ │ │ │ -882 TDS_INT line_number; │ │ │ │ │ -883 /* -1 .. 255 */ │ │ │ │ │ -884 TDS_SMALLINT state; │ │ │ │ │ -885 TDS_TINYINT priv_msg_type; │ │ │ │ │ -886 TDS_TINYINT severity; │ │ │ │ │ -887 /* for library-generated errors */ │ │ │ │ │ -888 int oserr; │ │ │ │ │ -889} _T_D_S_M_E_S_S_A_G_E; │ │ │ │ │ -890 │ │ │ │ │ -_8_9_1typedef struct _t_d_s___u_p_d___c_o_l │ │ │ │ │ -892{ │ │ │ │ │ -893 struct _t_d_s___u_p_d___c_o_l *next; │ │ │ │ │ -894 TDS_INT colnamelength; │ │ │ │ │ -895 char * columnname; │ │ │ │ │ -896} _T_D_S_U_P_D_C_O_L; │ │ │ │ │ -897 │ │ │ │ │ -898typedef enum { │ │ │ │ │ -899 TDS_CURSOR_STATE_UNACTIONED = 0 /* initial value */ │ │ │ │ │ -900 , TDS_CURSOR_STATE_REQUESTED = 1 /* called by ct_cursor */ │ │ │ │ │ -901 , TDS_CURSOR_STATE_SENT = 2 /* sent to server */ │ │ │ │ │ -902 , TDS_CURSOR_STATE_ACTIONED = 3 /* acknowledged by server */ │ │ │ │ │ -903} TDS_CURSOR_STATE; │ │ │ │ │ -904 │ │ │ │ │ -_9_0_5typedef struct _t_d_s___c_u_r_s_o_r___s_t_a_t_u_s │ │ │ │ │ -906{ │ │ │ │ │ -907 TDS_CURSOR_STATE declare; │ │ │ │ │ -908 TDS_CURSOR_STATE cursor_row; │ │ │ │ │ -909 TDS_CURSOR_STATE open; │ │ │ │ │ -910 TDS_CURSOR_STATE fetch; │ │ │ │ │ -911 TDS_CURSOR_STATE close; │ │ │ │ │ -912 TDS_CURSOR_STATE dealloc; │ │ │ │ │ -913} _T_D_S___C_U_R_S_O_R___S_T_A_T_U_S; │ │ │ │ │ -914 │ │ │ │ │ -915typedef enum tds_cursor_operation │ │ │ │ │ -916{ │ │ │ │ │ -917 TDS_CURSOR_POSITION = 0, │ │ │ │ │ -918 TDS_CURSOR_UPDATE = 1, │ │ │ │ │ -919 TDS_CURSOR_DELETE = 2, │ │ │ │ │ -920 TDS_CURSOR_INSERT = 4 │ │ │ │ │ -921} TDS_CURSOR_OPERATION; │ │ │ │ │ -922 │ │ │ │ │ -923typedef enum tds_cursor_fetch │ │ │ │ │ -924{ │ │ │ │ │ -925 TDS_CURSOR_FETCH_NEXT = 1, │ │ │ │ │ -926 TDS_CURSOR_FETCH_PREV, │ │ │ │ │ -927 TDS_CURSOR_FETCH_FIRST, │ │ │ │ │ -928 TDS_CURSOR_FETCH_LAST, │ │ │ │ │ -929 TDS_CURSOR_FETCH_ABSOLUTE, │ │ │ │ │ -930 TDS_CURSOR_FETCH_RELATIVE │ │ │ │ │ -931} TDS_CURSOR_FETCH; │ │ │ │ │ -932 │ │ │ │ │ -_9_3_6typedef struct _t_d_s___c_u_r_s_o_r │ │ │ │ │ -937{ │ │ │ │ │ -_9_3_8 struct _t_d_s___c_u_r_s_o_r *_n_e_x_t; │ │ │ │ │ -_9_3_9 TDS_INT _r_e_f___c_o_u_n_t; │ │ │ │ │ -_9_4_0 char *_c_u_r_s_o_r___n_a_m_e; │ │ │ │ │ -_9_4_1 TDS_INT _c_u_r_s_o_r___i_d; │ │ │ │ │ -_9_4_2 TDS_TINYINT _o_p_t_i_o_n_s; │ │ │ │ │ -_9_4_6 bool _d_e_f_e_r___c_l_o_s_e; │ │ │ │ │ -_9_4_7 char *_q_u_e_r_y; │ │ │ │ │ -948 /* TODO for updatable columns */ │ │ │ │ │ -949 /* TDS_TINYINT number_upd_cols; */ │ │ │ │ │ -950 /* TDSUPDCOL *cur_col_list; */ │ │ │ │ │ -_9_5_1 TDS_INT _c_u_r_s_o_r___r_o_w_s; │ │ │ │ │ -952 /* TDSPARAMINFO *params; */ │ │ │ │ │ -_9_5_3 _T_D_S___C_U_R_S_O_R___S_T_A_T_U_S _s_t_a_t_u_s; │ │ │ │ │ -954 TDS_USMALLINT srv_status; │ │ │ │ │ -955 _T_D_S_R_E_S_U_L_T_I_N_F_O *res_info; │ │ │ │ │ -_9_5_6 TDS_INT _t_y_p_e, concurrency; │ │ │ │ │ -_9_5_7} _T_D_S_C_U_R_S_O_R; │ │ │ │ │ -958 │ │ │ │ │ -_9_6_2typedef struct _t_d_s___e_n_v │ │ │ │ │ -963{ │ │ │ │ │ -_9_6_5 int _b_l_o_c_k___s_i_z_e; │ │ │ │ │ -966 char *language; │ │ │ │ │ -_9_6_8 char *_c_h_a_r_s_e_t; │ │ │ │ │ -_9_7_0 char *_d_a_t_a_b_a_s_e; │ │ │ │ │ -_9_7_1} _T_D_S_E_N_V; │ │ │ │ │ -972 │ │ │ │ │ -_9_7_6typedef struct _t_d_s___d_y_n_a_m_i_c │ │ │ │ │ -977{ │ │ │ │ │ -_9_7_8 struct _t_d_s___d_y_n_a_m_i_c *_n_e_x_t; │ │ │ │ │ -_9_7_9 TDS_INT _r_e_f___c_o_u_n_t; │ │ │ │ │ -_9_8_1 TDS_INT _n_u_m___i_d; │ │ │ │ │ -_9_8_7 char id[30]; │ │ │ │ │ -_9_9_3 TDS_TINYINT _e_m_u_l_a_t_e_d; │ │ │ │ │ -_9_9_7 bool _d_e_f_e_r___c_l_o_s_e; │ │ │ │ │ -998 /* int dyn_state; */ /* TODO use it */ │ │ │ │ │ -_9_9_9 _T_D_S_P_A_R_A_M_I_N_F_O *_r_e_s___i_n_f_o; │ │ │ │ │ -_1_0_0_7 _T_D_S_P_A_R_A_M_I_N_F_O *_p_a_r_a_m_s; │ │ │ │ │ -_1_0_0_9 char *_q_u_e_r_y; │ │ │ │ │ -_1_0_1_0} _T_D_S_D_Y_N_A_M_I_C; │ │ │ │ │ -1011 │ │ │ │ │ -1012typedef enum { │ │ │ │ │ -1013 TDS_MULTIPLE_QUERY, │ │ │ │ │ -1014 TDS_MULTIPLE_EXECUTE, │ │ │ │ │ -1015 TDS_MULTIPLE_RPC │ │ │ │ │ -1016} TDS_MULTIPLE_TYPE; │ │ │ │ │ -1017 │ │ │ │ │ -_1_0_1_8typedef struct _t_d_s___m_u_l_t_i_p_l_e │ │ │ │ │ -1019{ │ │ │ │ │ -1020 TDS_MULTIPLE_TYPE type; │ │ │ │ │ -1021 unsigned int flags; │ │ │ │ │ -1022} _T_D_S_M_U_L_T_I_P_L_E; │ │ │ │ │ -1023 │ │ │ │ │ -1024/* forward declaration */ │ │ │ │ │ -1025typedef struct _t_d_s___c_o_n_t_e_x_t _T_D_S_C_O_N_T_E_X_T; │ │ │ │ │ -1026typedef int (*err_handler_t) (const _T_D_S_C_O_N_T_E_X_T *, _T_D_S_S_O_C_K_E_T *, _T_D_S_M_E_S_S_A_G_E │ │ │ │ │ -*); │ │ │ │ │ -1027 │ │ │ │ │ -_1_0_2_8struct _t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -1029{ │ │ │ │ │ -1030 _T_D_S_L_O_C_A_L_E *locale; │ │ │ │ │ -1031 void *parent; │ │ │ │ │ -1032 /* handlers */ │ │ │ │ │ -1033 int (*msg_handler) (const _T_D_S_C_O_N_T_E_X_T *, _T_D_S_S_O_C_K_E_T *, _T_D_S_M_E_S_S_A_G_E *); │ │ │ │ │ -1034 int (*err_handler) (const _T_D_S_C_O_N_T_E_X_T *, _T_D_S_S_O_C_K_E_T *, _T_D_S_M_E_S_S_A_G_E *); │ │ │ │ │ -1035 int (*int_handler) (void *); │ │ │ │ │ -1036 bool money_use_2_digits; │ │ │ │ │ -1037}; │ │ │ │ │ -1038 │ │ │ │ │ -1039enum TDS_ICONV_ENTRY │ │ │ │ │ -1040{ │ │ │ │ │ -1041 client2ucs2 │ │ │ │ │ -1042 , client2server_chardata │ │ │ │ │ -1043 , initial_char_conv_count /* keep last */ │ │ │ │ │ -1044}; │ │ │ │ │ -1045 │ │ │ │ │ -_1_0_4_6typedef struct _t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n │ │ │ │ │ -1047{ │ │ │ │ │ -1048 uint8_t *packet; │ │ │ │ │ -1049 int packet_len; │ │ │ │ │ -1050 /* TDS_MSG_TOKEN type, for TDS5 */ │ │ │ │ │ -1051 uint16_t msg_type; │ │ │ │ │ -1052 TDSRET (*free)(_T_D_S_C_O_N_N_E_C_T_I_O_N* conn, struct _t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n * auth); │ │ │ │ │ -1053 TDSRET (*handle_next)(_T_D_S_S_O_C_K_E_T * tds, struct _t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n * auth, │ │ │ │ │ -size_t len); │ │ │ │ │ -1054} _T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N; │ │ │ │ │ -1055 │ │ │ │ │ -_1_0_5_6typedef struct _t_d_s___p_a_c_k_e_t │ │ │ │ │ -1057{ │ │ │ │ │ -1058 struct _t_d_s___p_a_c_k_e_t *next; │ │ │ │ │ -1059 uint16_t sid; │ │ │ │ │ -1060 │ │ │ │ │ -1061#if ENABLE_ODBC_MARS │ │ │ │ │ -1065 uint8_t data_start; │ │ │ │ │ -1066#endif │ │ │ │ │ -1067 │ │ │ │ │ -_1_0_7_1 unsigned _d_a_t_a___l_e_n; │ │ │ │ │ -1072 unsigned capacity; │ │ │ │ │ -1073 unsigned char buf[1]; │ │ │ │ │ -1074} _T_D_S_P_A_C_K_E_T; │ │ │ │ │ -1075 │ │ │ │ │ -1076#if ENABLE_ODBC_MARS │ │ │ │ │ -1077#define tds_packet_zero_data_start(pkt) do { (pkt)->data_start = 0; } while │ │ │ │ │ -(0) │ │ │ │ │ -1078#define tds_packet_get_data_start(pkt) ((pkt)->data_start) │ │ │ │ │ -1079#else │ │ │ │ │ -1080#define tds_packet_zero_data_start(pkt) do { } while(0) │ │ │ │ │ -1081#define tds_packet_get_data_start(pkt) 0 │ │ │ │ │ -1082#endif │ │ │ │ │ -1083 │ │ │ │ │ -_1_0_8_4typedef struct _t_d_s___p_o_l_l___w_a_k_e_u_p │ │ │ │ │ -1085{ │ │ │ │ │ -1086 TDS_SYS_SOCKET s_signal, s_signaled; │ │ │ │ │ -1087} _T_D_S_P_O_L_L_W_A_K_E_U_P; │ │ │ │ │ -1088 │ │ │ │ │ -1089/* field related to connection */ │ │ │ │ │ -_1_0_9_0struct _t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -1091{ │ │ │ │ │ -1092 TDS_USMALLINT tds_version; │ │ │ │ │ -_1_0_9_3 TDS_UINT _p_r_o_d_u_c_t___v_e_r_s_i_o_n; │ │ │ │ │ -1094 char *product_name; │ │ │ │ │ -1095 │ │ │ │ │ -_1_0_9_6 TDS_SYS_SOCKET _s; │ │ │ │ │ -1097 _T_D_S_P_O_L_L_W_A_K_E_U_P wakeup; │ │ │ │ │ -1098 const _T_D_S_C_O_N_T_E_X_T *tds_ctx; │ │ │ │ │ -1099 │ │ │ │ │ -_1_1_0_1 _T_D_S_E_N_V _e_n_v; │ │ │ │ │ -1102 │ │ │ │ │ -_1_1_0_7 _T_D_S_C_U_R_S_O_R *_c_u_r_s_o_r_s; │ │ │ │ │ -_1_1_1_2 _T_D_S_D_Y_N_A_M_I_C *_d_y_n_s; │ │ │ │ │ -1113 │ │ │ │ │ -1114 int char_conv_count; │ │ │ │ │ -1115 _T_D_S_I_C_O_N_V **char_convs; │ │ │ │ │ -1116 │ │ │ │ │ -1117 TDS_UCHAR collation[5]; │ │ │ │ │ -1118 TDS_UCHAR tds72_transaction[8]; │ │ │ │ │ -1119 │ │ │ │ │ -1120 _T_D_S___C_A_P_A_B_I_L_I_T_I_E_S capabilities; │ │ │ │ │ -1121 unsigned int use_iconv:1; │ │ │ │ │ -1122 unsigned int tds71rev1:1; │ │ │ │ │ -_1_1_2_3 unsigned int _p_e_n_d_i_n_g___c_l_o_s_e:1; │ │ │ │ │ -1124 unsigned int encrypt_single_packet:1; │ │ │ │ │ -1125#if ENABLE_ODBC_MARS │ │ │ │ │ -1126 unsigned int mars:1; │ │ │ │ │ -1127 │ │ │ │ │ -1128 _T_D_S_S_O_C_K_E_T *in_net_tds; │ │ │ │ │ -1129 _T_D_S_P_A_C_K_E_T *packets; │ │ │ │ │ -1130 _T_D_S_P_A_C_K_E_T *recv_packet; │ │ │ │ │ -1131 _T_D_S_P_A_C_K_E_T *send_packets; │ │ │ │ │ -1132 unsigned send_pos, recv_pos; │ │ │ │ │ -1133 │ │ │ │ │ -1134#define BUSY_SOCKET ((TDSSOCKET*)(TDS_UINTPTR)1) │ │ │ │ │ -1135#define TDSSOCKET_VALID(tds) (((TDS_UINTPTR)(tds)) > 1) │ │ │ │ │ -1136 struct _t_d_s___s_o_c_k_e_t **sessions; │ │ │ │ │ -1137 unsigned num_sessions; │ │ │ │ │ -1138#endif │ │ │ │ │ -1139 tds_mutex list_mtx; │ │ │ │ │ -1140 │ │ │ │ │ -1141 unsigned num_cached_packets; │ │ │ │ │ -1142 _T_D_S_P_A_C_K_E_T *packet_cache; │ │ │ │ │ -1143 │ │ │ │ │ -1144 int spid; │ │ │ │ │ -1145 int client_spid; │ │ │ │ │ -1146 │ │ │ │ │ -1147 void *tls_session; │ │ │ │ │ -1148#if defined(HAVE_GNUTLS) │ │ │ │ │ -1149 void *tls_credentials; │ │ │ │ │ -1150#elif defined(HAVE_OPENSSL) │ │ │ │ │ -1151 void *tls_ctx; │ │ │ │ │ -1152#else │ │ │ │ │ -1153 void *tls_dummy; │ │ │ │ │ -1154#endif │ │ │ │ │ -1155 _T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N *authentication; │ │ │ │ │ -1156 char *server; │ │ │ │ │ -1157}; │ │ │ │ │ -1158 │ │ │ │ │ -_1_1_6_2struct _t_d_s___s_o_c_k_e_t │ │ │ │ │ -1163{ │ │ │ │ │ -1164#if ENABLE_ODBC_MARS │ │ │ │ │ -1165 _T_D_S_C_O_N_N_E_C_T_I_O_N *conn; │ │ │ │ │ -1166#else │ │ │ │ │ -1167 _T_D_S_C_O_N_N_E_C_T_I_O_N conn[1]; │ │ │ │ │ -1168#endif │ │ │ │ │ -1169 │ │ │ │ │ -1170 void *parent; │ │ │ │ │ -1171 │ │ │ │ │ -_1_1_7_7 unsigned char *_i_n___b_u_f; │ │ │ │ │ -1178 │ │ │ │ │ -_1_1_8_5 unsigned char *_o_u_t___b_u_f; │ │ │ │ │ -1186 │ │ │ │ │ -_1_1_9_1 unsigned int _o_u_t___b_u_f___m_a_x; │ │ │ │ │ -_1_1_9_2 unsigned _i_n___p_o_s; │ │ │ │ │ -_1_1_9_3 unsigned _o_u_t___p_o_s; │ │ │ │ │ -_1_1_9_4 unsigned _i_n___l_e_n; │ │ │ │ │ -_1_1_9_5 unsigned char _i_n___f_l_a_g; │ │ │ │ │ -_1_1_9_6 unsigned char _o_u_t___f_l_a_g; │ │ │ │ │ -1198 unsigned frozen; │ │ │ │ │ -_1_2_0_3 _T_D_S_P_A_C_K_E_T *_f_r_o_z_e_n___p_a_c_k_e_t_s; │ │ │ │ │ -1204 │ │ │ │ │ -1205#if ENABLE_ODBC_MARS │ │ │ │ │ -1210 uint16_t sid; │ │ │ │ │ -1211 │ │ │ │ │ -1216 _t_d_s___c_o_n_d_i_t_i_o_n packet_cond; │ │ │ │ │ -1217 │ │ │ │ │ -1222 _T_D_S_P_A_C_K_E_T *sending_packet; │ │ │ │ │ -1223 TDS_UINT recv_seq; │ │ │ │ │ -1224 TDS_UINT send_seq; │ │ │ │ │ -1225 TDS_UINT recv_wnd; │ │ │ │ │ -1226 TDS_UINT send_wnd; │ │ │ │ │ -1227#endif │ │ │ │ │ -1228 /* packet we received */ │ │ │ │ │ -1229 _T_D_S_P_A_C_K_E_T *recv_packet; │ │ │ │ │ -_1_2_3_1 _T_D_S_P_A_C_K_E_T *_s_e_n_d___p_a_c_k_e_t; │ │ │ │ │ -1232 │ │ │ │ │ -_1_2_3_8 _T_D_S_R_E_S_U_L_T_I_N_F_O *_c_u_r_r_e_n_t___r_e_s_u_l_t_s; │ │ │ │ │ -1239 _T_D_S_R_E_S_U_L_T_I_N_F_O *res_info; │ │ │ │ │ -1240 TDS_UINT num_comp_info; │ │ │ │ │ -1241 _T_D_S_C_O_M_P_U_T_E_I_N_F_O **comp_info; │ │ │ │ │ -1242 _T_D_S_P_A_R_A_M_I_N_F_O *param_info; │ │ │ │ │ -_1_2_4_3 _T_D_S_C_U_R_S_O_R *_c_u_r___c_u_r_s_o_r; │ │ │ │ │ -_1_2_4_4 bool _b_u_l_k___q_u_e_r_y; │ │ │ │ │ -_1_2_4_5 bool _h_a_s___s_t_a_t_u_s; │ │ │ │ │ -_1_2_4_6 bool _i_n___r_o_w; │ │ │ │ │ -1247 volatile │ │ │ │ │ -_1_2_4_8 unsigned char _i_n___c_a_n_c_e_l; │ │ │ │ │ -_1_2_5_0 TDS_INT _r_e_t___s_t_a_t_u_s; │ │ │ │ │ -1251 _T_D_S___S_T_A_T_E state; │ │ │ │ │ -1252 │ │ │ │ │ -1253 TDS_INT query_timeout; │ │ │ │ │ -_1_2_5_4 TDS_INT8 _r_o_w_s___a_f_f_e_c_t_e_d; │ │ │ │ │ -_1_2_5_6 _T_D_S_D_Y_N_A_M_I_C *_c_u_r___d_y_n; │ │ │ │ │ -_1_2_5_8 _T_D_S_L_O_G_I_N *_l_o_g_i_n; │ │ │ │ │ -1260 void (*env_chg_func) (_T_D_S_S_O_C_K_E_T * tds, int type, char *oldval, char │ │ │ │ │ -*newval); │ │ │ │ │ -1261 TDS_OPERATION current_op; │ │ │ │ │ -1262 │ │ │ │ │ -1263 int option_value; │ │ │ │ │ -1264 tds_mutex wire_mtx; │ │ │ │ │ -1265}; │ │ │ │ │ -1266 │ │ │ │ │ -1267#define tds_get_ctx(tds) ((tds)->conn->tds_ctx) │ │ │ │ │ -1268#define tds_set_ctx(tds, val) do { ((tds)->conn->tds_ctx) = (val); } while │ │ │ │ │ -(0) │ │ │ │ │ -1269#define tds_get_parent(tds) ((tds)->parent) │ │ │ │ │ -1270#define tds_set_parent(tds, val) do { ((tds)->parent) = (val); } while(0) │ │ │ │ │ -1271#define tds_get_s(tds) ((tds)->conn->s) │ │ │ │ │ -1272#define tds_set_s(tds, val) do { ((tds)->conn->s) = (val); } while(0) │ │ │ │ │ -1273 │ │ │ │ │ -1274 │ │ │ │ │ -1275/* config.c */ │ │ │ │ │ -1276const _T_D_S___C_O_M_P_I_L_E_T_I_M_E___S_E_T_T_I_N_G_S *_t_d_s___g_e_t___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s(void); │ │ │ │ │ -1277typedef void (*TDSCONFPARSE) (const char *option, const char *value, void │ │ │ │ │ -*param); │ │ │ │ │ -1278bool _t_d_s___r_e_a_d___c_o_n_f___s_e_c_t_i_o_n(FILE * in, const char *section, TDSCONFPARSE │ │ │ │ │ -tds_conf_parse, void *parse_param); │ │ │ │ │ -1279bool _t_d_s___r_e_a_d___c_o_n_f___f_i_l_e(_T_D_S_L_O_G_I_N * login, const char *server); │ │ │ │ │ -1280void tds_parse_conf_section(const char *option, const char *value, void │ │ │ │ │ -*param); │ │ │ │ │ -1281_T_D_S_L_O_G_I_N *_t_d_s___r_e_a_d___c_o_n_f_i_g___i_n_f_o(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login, _T_D_S_L_O_C_A_L_E │ │ │ │ │ -* locale); │ │ │ │ │ -1282void _t_d_s___f_i_x___l_o_g_i_n(_T_D_S_L_O_G_I_N* login); │ │ │ │ │ -1283TDS_USMALLINT * _t_d_s___c_o_n_f_i_g___v_e_r_s_t_r(const char *tdsver, _T_D_S_L_O_G_I_N* login); │ │ │ │ │ -1284struct addrinfo *_t_d_s___l_o_o_k_u_p___h_o_s_t(const char *servername); │ │ │ │ │ -1285TDSRET tds_lookup_host_set(const char *servername, struct addrinfo **addr); │ │ │ │ │ -1286const char *tds_addrinfo2str(struct addrinfo *addr, char *name, int │ │ │ │ │ -namemax); │ │ │ │ │ -1287char *_t_d_s___g_e_t___h_o_m_e___f_i_l_e(const char *file); │ │ │ │ │ -1288 │ │ │ │ │ -1289TDSRET _t_d_s___s_e_t___i_n_t_e_r_f_a_c_e_s___f_i_l_e___l_o_c(const char *interfloc); │ │ │ │ │ -1290extern const char STD_DATETIME_FMT[]; │ │ │ │ │ -1291int tds_parse_boolean(const char *value, int default_value); │ │ │ │ │ -1292int tds_config_boolean(const char *option, const char *value, _T_D_S_L_O_G_I_N * │ │ │ │ │ -login); │ │ │ │ │ -1293 │ │ │ │ │ -1294_T_D_S_L_O_C_A_L_E *_t_d_s___g_e_t___l_o_c_a_l_e(void); │ │ │ │ │ -1295TDSRET _t_d_s___a_l_l_o_c___r_o_w(_T_D_S_R_E_S_U_L_T_I_N_F_O * res_info); │ │ │ │ │ -1296TDSRET tds_alloc_compute_row(_T_D_S_C_O_M_P_U_T_E_I_N_F_O * res_info); │ │ │ │ │ -1297_B_C_P_C_O_L_D_A_T_A * tds_alloc_bcp_column_data(unsigned int column_size); │ │ │ │ │ -1298_T_D_S_D_Y_N_A_M_I_C *_t_d_s___l_o_o_k_u_p___d_y_n_a_m_i_c(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *id); │ │ │ │ │ -1299/*@observer@*/ const char *_t_d_s___p_r_t_y_p_e(int token); │ │ │ │ │ -1300int _t_d_s___g_e_t___v_a_r_i_n_t___s_i_z_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, int datatype); │ │ │ │ │ -1301TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int │ │ │ │ │ -usertype); │ │ │ │ │ -1302 │ │ │ │ │ -1303 │ │ │ │ │ -1304/* iconv.c */ │ │ │ │ │ -1305TDSRET tds_iconv_open(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *charset, int │ │ │ │ │ -use_utf16); │ │ │ │ │ -1306void tds_iconv_close(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn); │ │ │ │ │ -1307void tds_srv_charset_changed(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *charset); │ │ │ │ │ -1308void tds7_srv_charset_changed(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, TDS_UCHAR collate[5]); │ │ │ │ │ -1309int _t_d_s___i_c_o_n_v___a_l_l_o_c(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn); │ │ │ │ │ -1310void tds_iconv_free(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn); │ │ │ │ │ -1311_T_D_S_I_C_O_N_V *_t_d_s___i_c_o_n_v___f_r_o_m___c_o_l_l_a_t_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, TDS_UCHAR collate │ │ │ │ │ -[5]); │ │ │ │ │ -1312 │ │ │ │ │ -1313 │ │ │ │ │ -1314/* mem.c */ │ │ │ │ │ -1315void tds_free_socket(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1316void tds_free_all_results(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1317void tds_free_results(_T_D_S_R_E_S_U_L_T_I_N_F_O * res_info); │ │ │ │ │ -1318void tds_free_param_results(_T_D_S_P_A_R_A_M_I_N_F_O * param_info); │ │ │ │ │ -1319void _t_d_s___f_r_e_e___p_a_r_a_m___r_e_s_u_l_t(_T_D_S_P_A_R_A_M_I_N_F_O * param_info); │ │ │ │ │ -1320void tds_free_msg(_T_D_S_M_E_S_S_A_G_E * message); │ │ │ │ │ -1321void tds_cursor_deallocated(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, _T_D_S_C_U_R_S_O_R *cursor); │ │ │ │ │ -1322void tds_release_cursor(_T_D_S_C_U_R_S_O_R **pcursor); │ │ │ │ │ -1323void tds_free_bcp_column_data(_B_C_P_C_O_L_D_A_T_A * coldata); │ │ │ │ │ -1324_T_D_S_R_E_S_U_L_T_I_N_F_O *tds_alloc_results(TDS_USMALLINT num_cols); │ │ │ │ │ -1325_T_D_S_C_O_M_P_U_T_E_I_N_F_O **tds_alloc_compute_results(_T_D_S_S_O_C_K_E_T * tds, TDS_USMALLINT │ │ │ │ │ -num_cols, TDS_USMALLINT by_cols); │ │ │ │ │ -1326_T_D_S_C_O_N_T_E_X_T *tds_alloc_context(void * parent); │ │ │ │ │ -1327void tds_free_context(_T_D_S_C_O_N_T_E_X_T * locale); │ │ │ │ │ -1328_T_D_S_P_A_R_A_M_I_N_F_O *_t_d_s___a_l_l_o_c___p_a_r_a_m___r_e_s_u_l_t(_T_D_S_P_A_R_A_M_I_N_F_O * old_param); │ │ │ │ │ -1329void _t_d_s___f_r_e_e___i_n_p_u_t___p_a_r_a_m_s(_T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ -1330void _t_d_s___r_e_l_e_a_s_e___d_y_n_a_m_i_c(_T_D_S_D_Y_N_A_M_I_C ** dyn); │ │ │ │ │ -1331static inline │ │ │ │ │ -1332void tds_release_cur_dyn(_T_D_S_S_O_C_K_E_T * tds) │ │ │ │ │ -1333{ │ │ │ │ │ -1334 _t_d_s___r_e_l_e_a_s_e___d_y_n_a_m_i_c(&tds->_c_u_r___d_y_n); │ │ │ │ │ -1335} │ │ │ │ │ -1336void tds_dynamic_deallocated(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, _T_D_S_D_Y_N_A_M_I_C *dyn); │ │ │ │ │ -1337void _t_d_s___s_e_t___c_u_r___d_y_n(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_D_Y_N_A_M_I_C *dyn); │ │ │ │ │ -1338_T_D_S_S_O_C_K_E_T *tds_realloc_socket(_T_D_S_S_O_C_K_E_T * tds, size_t bufsize); │ │ │ │ │ -1339char *tds_alloc_client_sqlstate(int msgno); │ │ │ │ │ -1340char *tds_alloc_lookup_sqlstate(_T_D_S_S_O_C_K_E_T * tds, int msgno); │ │ │ │ │ -1341_T_D_S_L_O_G_I_N *tds_alloc_login(int use_environment); │ │ │ │ │ -1342_T_D_S_D_Y_N_A_M_I_C *_t_d_s___a_l_l_o_c___d_y_n_a_m_i_c(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *id); │ │ │ │ │ -1343void tds_free_login(_T_D_S_L_O_G_I_N * login); │ │ │ │ │ -1344_T_D_S_L_O_G_I_N *_t_d_s___i_n_i_t___l_o_g_i_n(_T_D_S_L_O_G_I_N * login, _T_D_S_L_O_C_A_L_E * locale); │ │ │ │ │ -1345_T_D_S_L_O_C_A_L_E *tds_alloc_locale(void); │ │ │ │ │ -1346void *_t_d_s___a_l_l_o_c___p_a_r_a_m___d_a_t_a(_T_D_S_C_O_L_U_M_N * curparam); │ │ │ │ │ -1347void tds_free_locale(_T_D_S_L_O_C_A_L_E * locale); │ │ │ │ │ -1348_T_D_S_C_U_R_S_O_R * tds_alloc_cursor(_T_D_S_S_O_C_K_E_T * tds, const char *name, TDS_INT │ │ │ │ │ -namelen, const char *query, TDS_INT querylen); │ │ │ │ │ -1349void tds_free_row(_T_D_S_R_E_S_U_L_T_I_N_F_O * res_info, unsigned char *row); │ │ │ │ │ -1350_T_D_S_S_O_C_K_E_T *tds_alloc_socket(_T_D_S_C_O_N_T_E_X_T * context, unsigned int bufsize); │ │ │ │ │ -1351_T_D_S_S_O_C_K_E_T *tds_alloc_additional_socket(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ -1352void tds_set_current_results(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_R_E_S_U_L_T_I_N_F_O *info); │ │ │ │ │ -1353void _t_d_s___d_e_t_a_c_h___r_e_s_u_l_t_s(_T_D_S_R_E_S_U_L_T_I_N_F_O *info); │ │ │ │ │ -1354void * _t_d_s___r_e_a_l_l_o_c(void **pp, size_t new_size); │ │ │ │ │ -1355#define TDS_RESIZE(p, n_elem) \ │ │ │ │ │ -1356 tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem)) │ │ │ │ │ -1357#define tds_new(type, n) ((type *) malloc(sizeof(type) * (n))) │ │ │ │ │ -1358#define tds_new0(type, n) ((type *) calloc(n, sizeof(type))) │ │ │ │ │ -1359 │ │ │ │ │ -1360_T_D_S_P_A_C_K_E_T *tds_alloc_packet(void *buf, unsigned len); │ │ │ │ │ -1361_T_D_S_P_A_C_K_E_T *tds_realloc_packet(_T_D_S_P_A_C_K_E_T *packet, unsigned len); │ │ │ │ │ -1362void tds_free_packets(_T_D_S_P_A_C_K_E_T *packet); │ │ │ │ │ -1363_T_D_S_B_C_P_I_N_F_O *tds_alloc_bcpinfo(void); │ │ │ │ │ -1364void tds_free_bcpinfo(_T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ -1365void tds_deinit_bcpinfo(_T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ -1366 │ │ │ │ │ -1367 │ │ │ │ │ -1368/* login.c */ │ │ │ │ │ -1369void tds_set_packet(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, int packet_size); │ │ │ │ │ -1370void tds_set_port(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, int port); │ │ │ │ │ -1371bool tds_set_passwd(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *password) TDS_WUR; │ │ │ │ │ -1372void tds_set_bulk(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, bool enabled); │ │ │ │ │ -1373bool tds_set_user(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *username) TDS_WUR; │ │ │ │ │ -1374bool tds_set_app(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *application) TDS_WUR; │ │ │ │ │ -1375bool tds_set_host(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *hostname) TDS_WUR; │ │ │ │ │ -1376bool tds_set_library(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *library) TDS_WUR; │ │ │ │ │ -1377bool _t_d_s___s_e_t___s_e_r_v_e_r(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *server) TDS_WUR; │ │ │ │ │ -1378bool tds_set_client_charset(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *charset) │ │ │ │ │ -TDS_WUR; │ │ │ │ │ -1379bool tds_set_language(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *language) TDS_WUR; │ │ │ │ │ -1380void tds_set_version(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, TDS_TINYINT major_ver, │ │ │ │ │ -TDS_TINYINT minor_ver); │ │ │ │ │ -1381int tds_connect_and_login(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ -1382 │ │ │ │ │ -1383 │ │ │ │ │ -1384/* query.c */ │ │ │ │ │ -1385void _t_d_s___s_t_a_r_t___q_u_e_r_y(_T_D_S_S_O_C_K_E_T *tds, unsigned char packet_type); │ │ │ │ │ -1386 │ │ │ │ │ -1387TDSRET _t_d_s___s_u_b_m_i_t___q_u_e_r_y(_T_D_S_S_O_C_K_E_T * tds, const char *query); │ │ │ │ │ -1388TDSRET _t_d_s___s_u_b_m_i_t___q_u_e_r_y___p_a_r_a_m_s(_T_D_S_S_O_C_K_E_T * tds, const char *query, │ │ │ │ │ -_T_D_S_P_A_R_A_M_I_N_F_O * params, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ -1389TDSRET _t_d_s___s_u_b_m_i_t___q_u_e_r_y_f(_T_D_S_S_O_C_K_E_T * tds, const char *queryf, ...); │ │ │ │ │ -1390TDSRET _t_d_s___s_u_b_m_i_t___p_r_e_p_a_r_e(_T_D_S_S_O_C_K_E_T * tds, const char *query, const char │ │ │ │ │ -*id, _T_D_S_D_Y_N_A_M_I_C ** dyn_out, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ -1391TDSRET _t_d_s___s_u_b_m_i_t___e_x_e_c_d_i_r_e_c_t(_T_D_S_S_O_C_K_E_T * tds, const char *query, │ │ │ │ │ -_T_D_S_P_A_R_A_M_I_N_F_O * params, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ -1392TDSRET _t_d_s_7_1___s_u_b_m_i_t___p_r_e_p_e_x_e_c(_T_D_S_S_O_C_K_E_T * tds, const char *query, const char │ │ │ │ │ -*id, _T_D_S_D_Y_N_A_M_I_C ** dyn_out, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ -1393TDSRET _t_d_s___s_u_b_m_i_t___e_x_e_c_u_t_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ -1394TDSRET _t_d_s___s_e_n_d___c_a_n_c_e_l(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1395const char *_t_d_s___n_e_x_t___p_l_a_c_e_h_o_l_d_e_r(const char *start); │ │ │ │ │ -1396int _t_d_s___c_o_u_n_t___p_l_a_c_e_h_o_l_d_e_r_s(const char *query); │ │ │ │ │ -1397int _t_d_s___n_e_e_d_s___u_n_p_r_e_p_a_r_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ -1398TDSRET _t_d_s___d_e_f_e_r_r_e_d___u_n_p_r_e_p_a_r_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ -1399TDSRET _t_d_s___s_u_b_m_i_t___u_n_p_r_e_p_a_r_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ -1400TDSRET _t_d_s___s_u_b_m_i_t___r_p_c(_T_D_S_S_O_C_K_E_T * tds, const char *rpc_name, _T_D_S_P_A_R_A_M_I_N_F_O * │ │ │ │ │ -params, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ -1401TDSRET _t_d_s___s_u_b_m_i_t___o_p_t_i_o_n_c_m_d(_T_D_S_S_O_C_K_E_T * tds, TDS_OPTION_CMD command, │ │ │ │ │ -TDS_OPTION option, _T_D_S___O_P_T_I_O_N___A_R_G *param, TDS_INT param_size); │ │ │ │ │ -1402TDSRET _t_d_s___s_u_b_m_i_t___b_e_g_i_n___t_r_a_n(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -1403TDSRET _t_d_s___s_u_b_m_i_t___r_o_l_l_b_a_c_k(_T_D_S_S_O_C_K_E_T *tds, int cont); │ │ │ │ │ -1404TDSRET _t_d_s___s_u_b_m_i_t___c_o_m_m_i_t(_T_D_S_S_O_C_K_E_T *tds, int cont); │ │ │ │ │ -1405TDSRET tds_disconnect(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1406size_t _t_d_s___q_u_o_t_e___i_d(_T_D_S_S_O_C_K_E_T * tds, char *buffer, const char *id, int │ │ │ │ │ -idlen); │ │ │ │ │ -1407size_t _t_d_s___q_u_o_t_e___i_d___r_p_c(_T_D_S_S_O_C_K_E_T * tds, char *buffer, const char *id, int │ │ │ │ │ -idlen); │ │ │ │ │ -1408size_t _t_d_s___q_u_o_t_e___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, char *buffer, const char *str, int │ │ │ │ │ -len); │ │ │ │ │ -1409const char *_t_d_s___s_k_i_p___c_o_m_m_e_n_t(const char *s); │ │ │ │ │ -1410const char *_t_d_s___s_k_i_p___q_u_o_t_e_d(const char *s); │ │ │ │ │ -1411size_t _t_d_s___f_i_x___c_o_l_u_m_n___s_i_z_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_O_L_U_M_N * curcol); │ │ │ │ │ -1412const char *_t_d_s___c_o_n_v_e_r_t___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * char_conv, const │ │ │ │ │ -char *s, int len, size_t *out_len); │ │ │ │ │ -1413void tds_convert_string_free(const char *original, const char *converted); │ │ │ │ │ -1414#if !ENABLE_EXTRA_CHECKS │ │ │ │ │ -1415#define tds_convert_string_free(original, converted) \ │ │ │ │ │ -1416 do { if (original != converted) free((char*) converted); } while(0) │ │ │ │ │ -1417#endif │ │ │ │ │ -1418TDSRET _t_d_s___g_e_t___c_o_l_u_m_n___d_e_c_l_a_r_a_t_i_o_n(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_O_L_U_M_N * curcol, char │ │ │ │ │ -*out); │ │ │ │ │ -1419 │ │ │ │ │ -1420TDSRET tds_cursor_declare(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, _T_D_S_P_A_R_A_M_I_N_F_O │ │ │ │ │ -*params, int *send); │ │ │ │ │ -1421TDSRET tds_cursor_setrows(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, int *send); │ │ │ │ │ -1422TDSRET tds_cursor_open(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, _T_D_S_P_A_R_A_M_I_N_F_O │ │ │ │ │ -*params, int *send); │ │ │ │ │ -1423TDSRET tds_cursor_fetch(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, │ │ │ │ │ -TDS_CURSOR_FETCH fetch_type, TDS_INT i_row); │ │ │ │ │ -1424TDSRET tds_cursor_get_cursor_info(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, │ │ │ │ │ -TDS_UINT * row_number, TDS_UINT * row_count); │ │ │ │ │ -1425TDSRET tds_cursor_close(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ -1426TDSRET _t_d_s___c_u_r_s_o_r___d_e_a_l_l_o_c(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ -1427TDSRET _t_d_s___d_e_f_e_r_r_e_d___c_u_r_s_o_r___d_e_a_l_l_o_c(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, _T_D_S_C_U_R_S_O_R * │ │ │ │ │ -cursor); │ │ │ │ │ -1428TDSRET tds_cursor_update(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, │ │ │ │ │ -TDS_CURSOR_OPERATION op, TDS_INT i_row, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ -1429TDSRET tds_cursor_setname(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ -1430 │ │ │ │ │ -1431TDSRET tds_multiple_init(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple, │ │ │ │ │ -TDS_MULTIPLE_TYPE type, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ -1432TDSRET tds_multiple_done(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple); │ │ │ │ │ -1433TDSRET tds_multiple_query(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple, const char │ │ │ │ │ -*query, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ -1434TDSRET tds_multiple_execute(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple, │ │ │ │ │ -_T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ -1435 │ │ │ │ │ -1436 │ │ │ │ │ -1437/* token.c */ │ │ │ │ │ -1438TDSRET _t_d_s___p_r_o_c_e_s_s___c_a_n_c_e_l(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1439int _t_d_s___g_e_t___t_o_k_e_n___s_i_z_e(int marker); │ │ │ │ │ -1440TDSRET _t_d_s___p_r_o_c_e_s_s___l_o_g_i_n___t_o_k_e_n_s(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1441TDSRET _t_d_s___p_r_o_c_e_s_s___s_i_m_p_l_e___q_u_e_r_y(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1442int tds5_send_optioncmd(_T_D_S_S_O_C_K_E_T * tds, TDS_OPTION_CMD tds_command, │ │ │ │ │ -TDS_OPTION tds_option, _T_D_S___O_P_T_I_O_N___A_R_G * tds_argument, │ │ │ │ │ -1443 TDS_INT * tds_argsize); │ │ │ │ │ -1444TDSRET _t_d_s___p_r_o_c_e_s_s___t_o_k_e_n_s(_T_D_S_S_O_C_K_E_T * tds, /*@out@*/ TDS_INT * result_type, │ │ │ │ │ -/*@out@*/ int *done_flags, unsigned flag); │ │ │ │ │ -1445 │ │ │ │ │ -1446 │ │ │ │ │ -1447/* data.c */ │ │ │ │ │ -1448void _t_d_s___s_e_t___p_a_r_a_m___t_y_p_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_C_O_L_U_M_N * curcol, │ │ │ │ │ -TDS_SERVER_TYPE type); │ │ │ │ │ -1449void _t_d_s___s_e_t___c_o_l_u_m_n___t_y_p_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_C_O_L_U_M_N * curcol, │ │ │ │ │ -TDS_SERVER_TYPE type); │ │ │ │ │ -1450#ifdef WORDS_BIGENDIAN │ │ │ │ │ -1451void tds_swap_datatype(int coltype, void *b); │ │ │ │ │ -1452#endif │ │ │ │ │ -1453 │ │ │ │ │ -1454 │ │ │ │ │ -1455/* tds_convert.c */ │ │ │ │ │ -1456TDSRET _t_d_s___d_a_t_e_c_r_a_c_k(TDS_INT datetype, const void *di, _T_D_S_D_A_T_E_R_E_C * dr); │ │ │ │ │ -1457TDS_SERVER_TYPE _t_d_s___g_e_t___c_o_n_v_e_r_s_i_o_n___t_y_p_e(TDS_SERVER_TYPE srctype, int │ │ │ │ │ -colsize); │ │ │ │ │ -1458extern const char tds_hex_digits[]; │ │ │ │ │ -1459 │ │ │ │ │ -1460 │ │ │ │ │ -1461/* write.c */ │ │ │ │ │ -1462int tds_init_write_buf(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1463int tds_put_n(_T_D_S_S_O_C_K_E_T * tds, const void *buf, size_t n); │ │ │ │ │ -1464int _t_d_s___p_u_t___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, const char *buf, int len); │ │ │ │ │ -1465int tds_put_int(_T_D_S_S_O_C_K_E_T * tds, TDS_INT i); │ │ │ │ │ -1466int tds_put_int8(_T_D_S_S_O_C_K_E_T * tds, TDS_INT8 i); │ │ │ │ │ -1467int tds_put_smallint(_T_D_S_S_O_C_K_E_T * tds, TDS_SMALLINT si); │ │ │ │ │ -_1_4_6_9#define tds_put_tinyint(tds, ti) tds_put_byte(tds,ti) │ │ │ │ │ -1470int tds_put_byte(_T_D_S_S_O_C_K_E_T * tds, unsigned char c); │ │ │ │ │ -1471TDSRET _t_d_s___f_l_u_s_h___p_a_c_k_e_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1472int tds_put_buf(_T_D_S_S_O_C_K_E_T * tds, const unsigned char *buf, int dsize, int │ │ │ │ │ -ssize); │ │ │ │ │ -1473 │ │ │ │ │ -1474 │ │ │ │ │ -1475/* read.c */ │ │ │ │ │ -1476unsigned char _t_d_s___g_e_t___b_y_t_e(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1477void _t_d_s___u_n_g_e_t___b_y_t_e(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1478unsigned char _t_d_s___p_e_e_k(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1479TDS_USMALLINT _t_d_s___g_e_t___u_s_m_a_l_l_i_n_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1480#define tds_get_smallint(tds) ((TDS_SMALLINT) tds_get_usmallint(tds)) │ │ │ │ │ -1481TDS_UINT _t_d_s___g_e_t___u_i_n_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1482#define tds_get_int(tds) ((TDS_INT) tds_get_uint(tds)) │ │ │ │ │ -1483TDS_UINT8 _t_d_s___g_e_t___u_i_n_t_8(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1484#define tds_get_int8(tds) ((TDS_INT8) tds_get_uint8(tds)) │ │ │ │ │ -1485size_t _t_d_s___g_e_t___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, size_t string_len, char *dest, │ │ │ │ │ -size_t dest_size); │ │ │ │ │ -1486TDSRET _t_d_s___g_e_t___c_h_a_r___d_a_t_a(_T_D_S_S_O_C_K_E_T * tds, char *dest, size_t wire_size, │ │ │ │ │ -_T_D_S_C_O_L_U_M_N * curcol); │ │ │ │ │ -1487bool _t_d_s___g_e_t___n(_T_D_S_S_O_C_K_E_T * tds, /*@out@*/ /*@null@*/ void *dest, size_t n); │ │ │ │ │ -1488int _t_d_s___g_e_t___s_i_z_e___b_y___t_y_p_e(TDS_SERVER_TYPE servertype); │ │ │ │ │ -1489_D_S_T_R* _t_d_s___d_s_t_r___g_e_t(_T_D_S_S_O_C_K_E_T * tds, _D_S_T_R * s, size_t len); │ │ │ │ │ -1490 │ │ │ │ │ -1491 │ │ │ │ │ -1492/* util.c */ │ │ │ │ │ -1493int _t_d_s_e_r_r_o_r (const _T_D_S_C_O_N_T_E_X_T * tds_ctx, _T_D_S_S_O_C_K_E_T * tds, int msgno, int │ │ │ │ │ -errnum); │ │ │ │ │ -1494_T_D_S___S_T_A_T_E _t_d_s___s_e_t___s_t_a_t_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S___S_T_A_T_E state); │ │ │ │ │ -1495void tds_swap_bytes(void *buf, int bytes); │ │ │ │ │ -1496unsigned int tds_gettime_ms(void); │ │ │ │ │ -1497char *_t_d_s___s_t_r_n_d_u_p(const void *s, TDS_INTPTR len); │ │ │ │ │ -1498 │ │ │ │ │ -1499 │ │ │ │ │ -1500/* log.c */ │ │ │ │ │ -_1_5_0_1typedef struct _t_d_s_d_u_m_p___o_f_f___i_t_e_m { │ │ │ │ │ -1502 struct _t_d_s_d_u_m_p___o_f_f___i_t_e_m *next; │ │ │ │ │ -1503 tds_thread_id thread_id; │ │ │ │ │ -1504} _T_D_S_D_U_M_P___O_F_F___I_T_E_M; │ │ │ │ │ -1505void _t_d_s_d_u_m_p___o_f_f(_T_D_S_D_U_M_P___O_F_F___I_T_E_M *off_item); │ │ │ │ │ -1506void _t_d_s_d_u_m_p___o_n(_T_D_S_D_U_M_P___O_F_F___I_T_E_M *off_item); │ │ │ │ │ -1507int tdsdump_isopen(void); │ │ │ │ │ -1508#include │ │ │ │ │ -1509int _t_d_s_d_u_m_p___o_p_e_n(const char *filename); │ │ │ │ │ -1510#include │ │ │ │ │ -1511void _t_d_s_d_u_m_p___c_l_o_s_e(void); │ │ │ │ │ -1512void tdsdump_dump_buf(const char* file, unsigned int level_line, const char │ │ │ │ │ -*msg, const void *buf, size_t length); │ │ │ │ │ -1513void _t_d_s_d_u_m_p___c_o_l(const _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ -1514#undef tdsdump_log │ │ │ │ │ -1515void tdsdump_log(const char* file, unsigned int level_line, const char │ │ │ │ │ -*fmt, ...) │ │ │ │ │ -1516#if defined(__GNUC__) && __GNUC__ >= 2 │ │ │ │ │ -1517#if defined(__MINGW32__) │ │ │ │ │ -1518 __attribute__ ((__format__ (ms_printf, 3, 4))) │ │ │ │ │ -1519#else │ │ │ │ │ -1520 __attribute__ ((__format__ (__printf__, 3, 4))) │ │ │ │ │ -1521#endif │ │ │ │ │ -1522#endif │ │ │ │ │ -1523; │ │ │ │ │ -1524#define TDSDUMP_LOG_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log │ │ │ │ │ -1525#define tdsdump_log TDSDUMP_LOG_FAST │ │ │ │ │ -1526#define TDSDUMP_BUF_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf │ │ │ │ │ -1527#define tdsdump_dump_buf TDSDUMP_BUF_FAST │ │ │ │ │ -1528 │ │ │ │ │ -1529extern int _t_d_s___w_r_i_t_e___d_u_m_p; │ │ │ │ │ -1530extern int tds_debug_flags; │ │ │ │ │ -1531extern int tds_g_append_mode; │ │ │ │ │ -1532 │ │ │ │ │ -1533 │ │ │ │ │ -1534/* net.c */ │ │ │ │ │ -1535TDSERRNO tds_open_socket(_T_D_S_S_O_C_K_E_T * tds, struct addrinfo *ipaddr, unsigned │ │ │ │ │ -int port, int timeout, int *p_oserr); │ │ │ │ │ -1536void _t_d_s___c_l_o_s_e___s_o_c_k_e_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1537int _t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t_s(FILE *output, struct addrinfo *addr); │ │ │ │ │ -1538int _t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t(struct addrinfo *addr, const char *instance); │ │ │ │ │ -1539char *tds_prwsaerror(int erc); │ │ │ │ │ -1540void tds_prwsaerror_free(char *s); │ │ │ │ │ -1541int tds_connection_read(_T_D_S_S_O_C_K_E_T * tds, unsigned char *buf, int buflen); │ │ │ │ │ -1542int tds_connection_write(_T_D_S_S_O_C_K_E_T *tds, const unsigned char *buf, int │ │ │ │ │ -buflen, int final); │ │ │ │ │ -1543#define TDSSELREAD POLLIN │ │ │ │ │ -1544#define TDSSELWRITE POLLOUT │ │ │ │ │ -1545int _t_d_s___s_e_l_e_c_t(_T_D_S_S_O_C_K_E_T * tds, unsigned tds_sel, int timeout_seconds); │ │ │ │ │ -1546void tds_connection_close(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ -1547int _t_d_s___g_o_o_d_r_e_a_d(_T_D_S_S_O_C_K_E_T * tds, unsigned char *buf, int buflen); │ │ │ │ │ -1548int _t_d_s___g_o_o_d_w_r_i_t_e(_T_D_S_S_O_C_K_E_T * tds, const unsigned char *buffer, size_t │ │ │ │ │ -buflen); │ │ │ │ │ -1549void tds_socket_flush(TDS_SYS_SOCKET sock); │ │ │ │ │ -1550int _t_d_s___s_o_c_k_e_t___s_e_t___n_o_n_b_l_o_c_k_i_n_g(TDS_SYS_SOCKET sock); │ │ │ │ │ -1551int tds_wakeup_init(_T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup); │ │ │ │ │ -1552void tds_wakeup_close(_T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup); │ │ │ │ │ -1553void tds_wakeup_send(_T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup, char cancel); │ │ │ │ │ -1554static inline TDS_SYS_SOCKET tds_wakeup_get_fd(const _T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup) │ │ │ │ │ -1555{ │ │ │ │ │ -1556 return wakeup->s_signaled; │ │ │ │ │ -1557} │ │ │ │ │ -1558 │ │ │ │ │ -1559 │ │ │ │ │ -1560/* packet.c */ │ │ │ │ │ -1561int _t_d_s___r_e_a_d___p_a_c_k_e_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1562TDSRET tds_write_packet(_T_D_S_S_O_C_K_E_T * tds, unsigned char final); │ │ │ │ │ -1563#if ENABLE_ODBC_MARS │ │ │ │ │ -1564int tds_append_cancel(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -1565TDSRET tds_append_syn(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -1566TDSRET tds_append_fin(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -1567#else │ │ │ │ │ -1568int tds_put_cancel(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1569#endif │ │ │ │ │ -1570 │ │ │ │ │ -_1_5_7_1typedef struct _t_d_s___f_r_e_e_z_e { │ │ │ │ │ -_1_5_7_3 _T_D_S_S_O_C_K_E_T *_t_d_s; │ │ │ │ │ -_1_5_7_5 _T_D_S_P_A_C_K_E_T *_p_k_t; │ │ │ │ │ -_1_5_7_7 unsigned _p_k_t___p_o_s; │ │ │ │ │ -_1_5_7_9 unsigned _s_i_z_e___l_e_n; │ │ │ │ │ -1580} _T_D_S_F_R_E_E_Z_E; │ │ │ │ │ -1581 │ │ │ │ │ -1582void _t_d_s___f_r_e_e_z_e(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_F_R_E_E_Z_E *freeze, unsigned size_len); │ │ │ │ │ -1583size_t _t_d_s___f_r_e_e_z_e___w_r_i_t_t_e_n(_T_D_S_F_R_E_E_Z_E *freeze); │ │ │ │ │ -1584TDSRET _t_d_s___f_r_e_e_z_e___a_b_o_r_t(_T_D_S_F_R_E_E_Z_E *freeze); │ │ │ │ │ -1585TDSRET _t_d_s___f_r_e_e_z_e___c_l_o_s_e(_T_D_S_F_R_E_E_Z_E *freeze); │ │ │ │ │ -1586TDSRET _t_d_s___f_r_e_e_z_e___c_l_o_s_e___l_e_n(_T_D_S_F_R_E_E_Z_E *freeze, int32_t size); │ │ │ │ │ -1587 │ │ │ │ │ -1588static void inline │ │ │ │ │ -1589tds_set_current_send_packet(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_P_A_C_K_E_T *pkt) │ │ │ │ │ -1590{ │ │ │ │ │ -1591 tds->_s_e_n_d___p_a_c_k_e_t = pkt; │ │ │ │ │ -1592 tds->_o_u_t___b_u_f = pkt->buf + tds_packet_get_data_start(pkt); │ │ │ │ │ -1593} │ │ │ │ │ -1594 │ │ │ │ │ -1595/* Macros to allow some indentation of the packets. │ │ │ │ │ -1596 * │ │ │ │ │ -1597 * The 3 nested fake loops require some explanation: │ │ │ │ │ -1598 * - first is to allows to declare variables; │ │ │ │ │ -1599 * - second is to force using brackets; │ │ │ │ │ -1600 * - third is to avoids that a break inside will skip the close. │ │ │ │ │ -1601 */ │ │ │ │ │ -1602#define TDS_START_LEN_GENERIC(tds_socket, len) do { \ │ │ │ │ │ -1603 TDSFREEZE current_freeze[1]; \ │ │ │ │ │ -1604 tds_freeze((tds_socket), current_freeze, (len)); do { do │ │ │ │ │ -1605#define TDS_END_LEN while(0); } while(tds_freeze_close(current_freeze), 0); │ │ │ │ │ -} while(0); │ │ │ │ │ -1606 │ │ │ │ │ -1607#define TDS_START_LEN_TINYINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, │ │ │ │ │ -1) │ │ │ │ │ -1608#define TDS_START_LEN_USMALLINT(tds_socket) TDS_START_LEN_GENERIC │ │ │ │ │ -(tds_socket, 2) │ │ │ │ │ -1609#define TDS_START_LEN_UINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 4) │ │ │ │ │ -1610 │ │ │ │ │ -1611/* vstrbuild.c */ │ │ │ │ │ -1612TDSRET tds_vstrbuild(char *buffer, int buflen, int *resultlen, const char │ │ │ │ │ -*text, int textlen, const char *formats, int formatlen, │ │ │ │ │ -1613 va_list ap); │ │ │ │ │ -1614 │ │ │ │ │ -1615 │ │ │ │ │ -1616/* numeric.c */ │ │ │ │ │ -1617char *tds_money_to_string(const _T_D_S___M_O_N_E_Y * money, char *s, bool │ │ │ │ │ -use_2_digits); │ │ │ │ │ -1618TDS_INT _t_d_s___n_u_m_e_r_i_c___t_o___s_t_r_i_n_g(const _T_D_S___N_U_M_E_R_I_C * numeric, char *s); │ │ │ │ │ -1619TDS_INT tds_numeric_change_prec_scale(_T_D_S___N_U_M_E_R_I_C * numeric, unsigned char │ │ │ │ │ -new_prec, unsigned char new_scale); │ │ │ │ │ -1620 │ │ │ │ │ -1621 │ │ │ │ │ -1622/* getmac.c */ │ │ │ │ │ -1623void tds_getmac(TDS_SYS_SOCKET s, unsigned char mac[6]); │ │ │ │ │ -1624 │ │ │ │ │ -1625 │ │ │ │ │ -1626/* challenge.c */ │ │ │ │ │ -1627#ifndef HAVE_SSPI │ │ │ │ │ -1628_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * _t_d_s___n_t_l_m___g_e_t___a_u_t_h(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1629_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds_gss_get_auth(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1630#else │ │ │ │ │ -1631_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds_sspi_get_auth(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1632#endif │ │ │ │ │ -1633TDSRET tds5_gss_send(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -1634 │ │ │ │ │ -1635 │ │ │ │ │ -1636/* random.c */ │ │ │ │ │ -1637void tds_random_buffer(unsigned char *out, int len); │ │ │ │ │ -1638 │ │ │ │ │ -1639 │ │ │ │ │ -1640/* sec_negotiate.c */ │ │ │ │ │ -1641_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds5_negotiate_get_auth(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -1642static inline │ │ │ │ │ -1643void tds5_negotiate_set_msg_type(_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds_auth, unsigned │ │ │ │ │ -msg_type) │ │ │ │ │ -1644{ │ │ │ │ │ -1645 if (tds_auth) │ │ │ │ │ -1646 tds_auth->msg_type = msg_type; │ │ │ │ │ -1647} │ │ │ │ │ -1648 │ │ │ │ │ -1649 │ │ │ │ │ -1650/* bulk.c */ │ │ │ │ │ -1651 │ │ │ │ │ -_1_6_5_3enum _t_d_s___b_c_p___d_i_r_e_c_t_i_o_n_s │ │ │ │ │ -1654{ │ │ │ │ │ -1655 TDS_BCP_IN = 1, │ │ │ │ │ -1656 TDS_BCP_OUT = 2, │ │ │ │ │ -1657 TDS_BCP_QUERYOUT = 3 │ │ │ │ │ -1658}; │ │ │ │ │ -1659 │ │ │ │ │ -_1_6_6_0struct _t_d_s___b_c_p_i_n_f_o │ │ │ │ │ -1661{ │ │ │ │ │ -1662 const char *hint; │ │ │ │ │ -1663 void *parent; │ │ │ │ │ -1664 _D_S_T_R tablename; │ │ │ │ │ -1665 TDS_CHAR *insert_stmt; │ │ │ │ │ -1666 TDS_INT direction; │ │ │ │ │ -1667 TDS_INT identity_insert_on; │ │ │ │ │ -1668 TDS_INT xfer_init; │ │ │ │ │ -1669 TDS_INT bind_count; │ │ │ │ │ -1670 _T_D_S_R_E_S_U_L_T_I_N_F_O *bindinfo; │ │ │ │ │ -1671}; │ │ │ │ │ -1672 │ │ │ │ │ -1673TDSRET _t_d_s___b_c_p___i_n_i_t(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ -1674typedef TDSRET (*tds_bcp_get_col_data) (_T_D_S_B_C_P_I_N_F_O *bulk, _T_D_S_C_O_L_U_M_N │ │ │ │ │ -*bcpcol, int offset); │ │ │ │ │ -1675typedef void (*tds_bcp_null_error) (_T_D_S_B_C_P_I_N_F_O *bulk, int index, int │ │ │ │ │ -offset); │ │ │ │ │ -1676TDSRET _t_d_s___b_c_p___s_e_n_d___r_e_c_o_r_d(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo, │ │ │ │ │ -tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset); │ │ │ │ │ -1677TDSRET _t_d_s___b_c_p___d_o_n_e(_T_D_S_S_O_C_K_E_T *tds, int *rows_copied); │ │ │ │ │ -1678TDSRET _t_d_s___b_c_p___s_t_a_r_t(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ -1679TDSRET _t_d_s___b_c_p___s_t_a_r_t___c_o_p_y___i_n(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ -1680 │ │ │ │ │ -1681TDSRET _t_d_s___b_c_p___f_r_e_a_d(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * conv, FILE * stream, │ │ │ │ │ -1682 const char *terminator, size_t term_len, char **outbuf, size_t * │ │ │ │ │ -outbytes); │ │ │ │ │ -1683 │ │ │ │ │ -1684TDSRET _t_d_s___w_r_i_t_e_t_e_x_t___s_t_a_r_t(_T_D_S_S_O_C_K_E_T *tds, const char *objname, const char │ │ │ │ │ -*textptr, const char *timestamp, int with_log, TDS_UINT size); │ │ │ │ │ -1685TDSRET _t_d_s___w_r_i_t_e_t_e_x_t___c_o_n_t_i_n_u_e(_T_D_S_S_O_C_K_E_T *tds, const TDS_UCHAR *text, │ │ │ │ │ -TDS_UINT size); │ │ │ │ │ -1686TDSRET _t_d_s___w_r_i_t_e_t_e_x_t___e_n_d(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ -1687 │ │ │ │ │ -1688 │ │ │ │ │ -1689static inline │ │ │ │ │ -1690bool tds_capability_enabled(const _T_D_S___C_A_P_A_B_I_L_I_T_Y___T_Y_P_E *cap, unsigned │ │ │ │ │ -cap_num) │ │ │ │ │ -1691{ │ │ │ │ │ -1692 return (cap->values[sizeof(cap->values)-1-(cap_num>>3)] >> (cap_num&7)) & │ │ │ │ │ -1; │ │ │ │ │ -1693} │ │ │ │ │ -1694#define tds_capability_has_req(conn, cap) \ │ │ │ │ │ -1695 tds_capability_enabled(&conn->capabilities.types[0], cap) │ │ │ │ │ -1696#define tds_capability_has_res(conn, cap) \ │ │ │ │ │ -1697 tds_capability_enabled(&conn->capabilities.types[1], cap) │ │ │ │ │ -1698 │ │ │ │ │ -1699#define IS_TDS42(x) (x->tds_version==0x402) │ │ │ │ │ -1700#define IS_TDS46(x) (x->tds_version==0x406) │ │ │ │ │ -1701#define IS_TDS50(x) (x->tds_version==0x500) │ │ │ │ │ -1702#define IS_TDS70(x) (x->tds_version==0x700) │ │ │ │ │ -1703#define IS_TDS71(x) (x->tds_version==0x701) │ │ │ │ │ -1704#define IS_TDS72(x) (x->tds_version==0x702) │ │ │ │ │ -1705#define IS_TDS73(x) (x->tds_version==0x703) │ │ │ │ │ -1706 │ │ │ │ │ -1707#define IS_TDS50_PLUS(x) ((x)->tds_version>=0x500) │ │ │ │ │ -1708#define IS_TDS7_PLUS(x) ((x)->tds_version>=0x700) │ │ │ │ │ -1709#define IS_TDS71_PLUS(x) ((x)->tds_version>=0x701) │ │ │ │ │ -1710#define IS_TDS72_PLUS(x) ((x)->tds_version>=0x702) │ │ │ │ │ -1711#define IS_TDS73_PLUS(x) ((x)->tds_version>=0x703) │ │ │ │ │ -1712#define IS_TDS74_PLUS(x) ((x)->tds_version>=0x704) │ │ │ │ │ -1713 │ │ │ │ │ -1714#define TDS_MAJOR(x) ((x)->tds_version >> 8) │ │ │ │ │ -1715#define TDS_MINOR(x) ((x)->tds_version & 0xff) │ │ │ │ │ -1716 │ │ │ │ │ -1717#define IS_TDSDEAD(x) (((x) == NULL) || (x)->state == TDS_DEAD) │ │ │ │ │ -1718 │ │ │ │ │ -_1_7_2_0#define TDS_IS_SYBASE(x) (!((x)->conn->product_version & 0x80000000u)) │ │ │ │ │ -_1_7_2_2#define TDS_IS_MSSQL(x) (((x)->conn->product_version & 0x80000000u)!=0) │ │ │ │ │ -1723 │ │ │ │ │ -_1_7_2_7#define TDS_MS_VER(maj,min,x) (0x80000000u|((maj)<<24)|((min)<<16)|(x)) │ │ │ │ │ -1728 │ │ │ │ │ -1729/* TODO test if not similar to ms one*/ │ │ │ │ │ -_1_7_3_1#define TDS_SYB_VER(maj,min,x) (((maj)<<24)|((min)<<16)|(x)<<8) │ │ │ │ │ -1732 │ │ │ │ │ -1733#ifdef __cplusplus │ │ │ │ │ -1734#if 0 │ │ │ │ │ -1735{ │ │ │ │ │ -1736#endif │ │ │ │ │ -1737} │ │ │ │ │ -1738#endif │ │ │ │ │ -1739 │ │ │ │ │ -1740#include │ │ │ │ │ -1741 │ │ │ │ │ -1742#define TDS_PUT_INT(tds,v) tds_put_int((tds), ((TDS_INT)(v))) │ │ │ │ │ -1743#define TDS_PUT_SMALLINT(tds,v) tds_put_smallint((tds), ((TDS_SMALLINT) │ │ │ │ │ -(v))) │ │ │ │ │ -1744#define TDS_PUT_BYTE(tds,v) tds_put_byte((tds), ((unsigned char)(v))) │ │ │ │ │ -1745 │ │ │ │ │ -1746#endif /* _tds_h_ */ │ │ │ │ │ -_t_d_s___i_c_o_n_v___a_l_l_o_c │ │ │ │ │ -int tds_iconv_alloc(TDSCONNECTION *conn) │ │ │ │ │ -Allocate iconv stuff. │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:307 │ │ │ │ │ -_t_d_s___g_e_t___c_o_n_v_e_r_s_i_o_n___t_y_p_e │ │ │ │ │ -TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize) │ │ │ │ │ -Return type suitable for conversions (convert all nullable types to fixed type) │ │ │ │ │ -DDeeffiinniittiioonn tds_types.h:125 │ │ │ │ │ -_t_d_s___s_t_r_n_d_u_p │ │ │ │ │ -char * tds_strndup(const void *s, TDS_INTPTR len) │ │ │ │ │ -Copy a string of length len to a new allocated buffer This function does not │ │ │ │ │ -read more than len bytes... │ │ │ │ │ -DDeeffiinniittiioonn util.c:406 │ │ │ │ │ -_t_d_s___s_e_t___s_t_a_t_e │ │ │ │ │ -TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state) │ │ │ │ │ -Set state of TDS connection, with logging and checking. │ │ │ │ │ -DDeeffiinniittiioonn util.c:58 │ │ │ │ │ -_T_D_S___C_O_M_P_I_L_E_T_I_M_E___S_E_T_T_I_N_G_S │ │ │ │ │ -struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS │ │ │ │ │ -A structure to hold all the compile-time settings. │ │ │ │ │ -_T_D_S_R_E_S_U_L_T_I_N_F_O │ │ │ │ │ -struct tds_result_info TDSRESULTINFO │ │ │ │ │ -Hold information for any results. │ │ │ │ │ -_t_d_s_d_u_m_p___o_p_e_n │ │ │ │ │ -int tdsdump_open(const char *filename) │ │ │ │ │ -Create and truncate a human readable dump file for the TDS traffic. │ │ │ │ │ -DDeeffiinniittiioonn log.c:131 │ │ │ │ │ -_T_D_S_V_A_R_I_A_N_T │ │ │ │ │ -struct tds_variant TDSVARIANT │ │ │ │ │ -Store variant informations. │ │ │ │ │ -_t_d_s_d_u_m_p___c_l_o_s_e │ │ │ │ │ -void tdsdump_close(void) │ │ │ │ │ -Close the TDS dump log file. │ │ │ │ │ -DDeeffiinniittiioonn log.c:212 │ │ │ │ │ -_t_d_s___s_e_t___c_o_l_u_m_n___t_y_p_e │ │ │ │ │ -void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, │ │ │ │ │ -TDS_SERVER_TYPE type) │ │ │ │ │ -Set type of column initializing all dependency. │ │ │ │ │ -DDeeffiinniittiioonn data.c:224 │ │ │ │ │ -_t_d_s___s_e_t___s_e_r_v_e_r │ │ │ │ │ -bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR │ │ │ │ │ -Set the servername in a TDSLOGIN structure. │ │ │ │ │ -DDeeffiinniittiioonn login.c:129 │ │ │ │ │ -_T_D_S_D_A_T_E_R_E_C │ │ │ │ │ -struct tdsdaterec TDSDATEREC │ │ │ │ │ -Used by tds_datecrack. │ │ │ │ │ -_t_d_s___g_e_t___l_o_c_a_l_e │ │ │ │ │ -TDSLOCALE * tds_get_locale(void) │ │ │ │ │ -Get locale information. │ │ │ │ │ -DDeeffiinniittiioonn locale.c:50 │ │ │ │ │ -_T_D_S_E_N_V │ │ │ │ │ -struct tds_env TDSENV │ │ │ │ │ -Current environment as reported by the server. │ │ │ │ │ -_t_d_s___w_r_i_t_e___d_u_m_p │ │ │ │ │ -int tds_write_dump │ │ │ │ │ -Tell if TDS debug logging is turned on or off. │ │ │ │ │ -DDeeffiinniittiioonn log.c:58 │ │ │ │ │ -_T_D_S_B_L_O_B │ │ │ │ │ -struct tds_blob TDSBLOB │ │ │ │ │ -Information about blobs (e.g. │ │ │ │ │ -_t_d_s___g_e_t___s_i_z_e___b_y___t_y_p_e │ │ │ │ │ -int tds_get_size_by_type(TDS_SERVER_TYPE servertype) │ │ │ │ │ -Return the number of bytes needed by specified type. │ │ │ │ │ -DDeeffiinniittiioonn tds_types.h:9 │ │ │ │ │ -_t_d_s___n_u_m_e_r_i_c___b_y_t_e_s___p_e_r___p_r_e_c │ │ │ │ │ -const int tds_numeric_bytes_per_prec[] │ │ │ │ │ -The following little table is indexed by precision and will tell us the number │ │ │ │ │ -of bytes required to s... │ │ │ │ │ -DDeeffiinniittiioonn numeric.c:41 │ │ │ │ │ -_t_d_s___b_c_p___s_t_a_r_t___c_o_p_y___i_n │ │ │ │ │ -TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo) │ │ │ │ │ -Start bulk copy to server. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:916 │ │ │ │ │ -_t_d_s___n_u_m_e_r_i_c___t_o___s_t_r_i_n_g │ │ │ │ │ -TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s) │ │ │ │ │ -DDeeffiinniittiioonn numeric.c:95 │ │ │ │ │ -_t_d_s___g_e_t___v_a_r_i_n_t___s_i_z_e │ │ │ │ │ -int tds_get_varint_size(TDSCONNECTION *conn, int datatype) │ │ │ │ │ -tds_get_varint_size() returns the size of a variable length integer returned in │ │ │ │ │ -a result string │ │ │ │ │ -DDeeffiinniittiioonn tds_types.h:57 │ │ │ │ │ -_t_d_s___w_r_i_t_e_t_e_x_t___s_t_a_r_t │ │ │ │ │ -TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char │ │ │ │ │ -*textptr, const char *timestamp, int with_log, TDS_UINT size) │ │ │ │ │ -Start writing writetext request. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:1147 │ │ │ │ │ -_t_d_s___b_c_p___f_r_e_a_d │ │ │ │ │ -TDSRET tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char │ │ │ │ │ -*terminator, size_t term_len, char **outbuf, size_t *outbytes) │ │ │ │ │ -Read a data file, passing the data through iconv(). │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:1077 │ │ │ │ │ -_t_d_s___b_c_p___s_t_a_r_t │ │ │ │ │ -TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo) │ │ │ │ │ -Start sending BCP data to server. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:866 │ │ │ │ │ -_T_D_S_D_Y_N_A_M_I_C │ │ │ │ │ -struct tds_dynamic TDSDYNAMIC │ │ │ │ │ -Holds information for a dynamic (also called prepared) query. │ │ │ │ │ -_t_d_s___s_e_t___p_a_r_a_m___t_y_p_e │ │ │ │ │ -void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE │ │ │ │ │ -type) │ │ │ │ │ -Set type of column initializing all dependency. │ │ │ │ │ -DDeeffiinniittiioonn data.c:246 │ │ │ │ │ -_t_d_s___s_t_a_t_e_s │ │ │ │ │ -tds_states │ │ │ │ │ -values for tds->state │ │ │ │ │ -DDeeffiinniittiioonn tds.h:789 │ │ │ │ │ -_T_D_S___P_E_N_D_I_N_G │ │ │ │ │ -@ TDS_PENDING │ │ │ │ │ -cilent is waiting for data │ │ │ │ │ -DDeeffiinniittiioonn tds.h:793 │ │ │ │ │ -_T_D_S___S_E_N_D_I_N_G │ │ │ │ │ -@ TDS_SENDING │ │ │ │ │ -client would send data │ │ │ │ │ -DDeeffiinniittiioonn tds.h:792 │ │ │ │ │ -_T_D_S___R_E_A_D_I_N_G │ │ │ │ │ -@ TDS_READING │ │ │ │ │ -client is reading data │ │ │ │ │ -DDeeffiinniittiioonn tds.h:794 │ │ │ │ │ -_T_D_S___W_R_I_T_I_N_G │ │ │ │ │ -@ TDS_WRITING │ │ │ │ │ -client is writing data │ │ │ │ │ -DDeeffiinniittiioonn tds.h:791 │ │ │ │ │ -_T_D_S___I_D_L_E │ │ │ │ │ -@ TDS_IDLE │ │ │ │ │ -no data expected │ │ │ │ │ -DDeeffiinniittiioonn tds.h:790 │ │ │ │ │ -_T_D_S___D_E_A_D │ │ │ │ │ -@ TDS_DEAD │ │ │ │ │ -no connection │ │ │ │ │ -DDeeffiinniittiioonn tds.h:795 │ │ │ │ │ -_t_d_s___e_n_d │ │ │ │ │ -tds_end │ │ │ │ │ -Flags returned in TDS_DONE token. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:250 │ │ │ │ │ -_T_D_S___D_O_N_E___C_A_N_C_E_L_L_E_D │ │ │ │ │ -@ TDS_DONE_CANCELLED │ │ │ │ │ -acknowledging an attention command (usually a cancel) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:257 │ │ │ │ │ -_T_D_S___D_O_N_E___M_O_R_E___R_E_S_U_L_T_S │ │ │ │ │ -@ TDS_DONE_MORE_RESULTS │ │ │ │ │ -more results follow │ │ │ │ │ -DDeeffiinniittiioonn tds.h:252 │ │ │ │ │ -_T_D_S___D_O_N_E___S_R_V_E_R_R_O_R │ │ │ │ │ -@ TDS_DONE_SRVERROR │ │ │ │ │ -SQL server server error. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:259 │ │ │ │ │ -_T_D_S___D_O_N_E___F_I_N_A_L │ │ │ │ │ -@ TDS_DONE_FINAL │ │ │ │ │ -final result set, command completed successfully. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:251 │ │ │ │ │ -_T_D_S___D_O_N_E___E_R_R_O_R │ │ │ │ │ -@ TDS_DONE_ERROR │ │ │ │ │ -error occurred │ │ │ │ │ -DDeeffiinniittiioonn tds.h:253 │ │ │ │ │ -_T_D_S___D_O_N_E___I_N_X_A_C_T │ │ │ │ │ -@ TDS_DONE_INXACT │ │ │ │ │ -transaction in progress │ │ │ │ │ -DDeeffiinniittiioonn tds.h:254 │ │ │ │ │ -_T_D_S___D_O_N_E___P_R_O_C │ │ │ │ │ -@ TDS_DONE_PROC │ │ │ │ │ -results are from a stored procedure │ │ │ │ │ -DDeeffiinniittiioonn tds.h:255 │ │ │ │ │ -_T_D_S___D_O_N_E___C_O_U_N_T │ │ │ │ │ -@ TDS_DONE_COUNT │ │ │ │ │ -count field in packet is valid │ │ │ │ │ -DDeeffiinniittiioonn tds.h:256 │ │ │ │ │ -_t_d_s_d_u_m_p___c_o_l │ │ │ │ │ -void tdsdump_col(const TDSCOLUMN *col) │ │ │ │ │ -Write a column value to the debug log. │ │ │ │ │ -DDeeffiinniittiioonn log.c:455 │ │ │ │ │ -_t_d_s___w_r_i_t_e_t_e_x_t___c_o_n_t_i_n_u_e │ │ │ │ │ -TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT │ │ │ │ │ -size) │ │ │ │ │ -Send some data in the writetext request started by tds_writetext_start. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:1185 │ │ │ │ │ -_t_d_s_e_r_r_o_r │ │ │ │ │ -int tdserror(const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum) │ │ │ │ │ -Call the client library's error handler (for library-generated errors only) │ │ │ │ │ -DDeeffiinniittiioonn util.c:321 │ │ │ │ │ -_T_D_S___S_T_A_T_E │ │ │ │ │ -enum tds_states TDS_STATE │ │ │ │ │ -values for tds->state │ │ │ │ │ -_t_d_s___w_r_i_t_e_t_e_x_t___e_n_d │ │ │ │ │ -TDSRET tds_writetext_end(TDSSOCKET *tds) │ │ │ │ │ -Finish sending writetext data. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:1202 │ │ │ │ │ -_t_d_s___b_c_p___i_n_i_t │ │ │ │ │ -TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo) │ │ │ │ │ -Initialize BCP information. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:84 │ │ │ │ │ -_t_d_s___b_c_p___d_i_r_e_c_t_i_o_n_s │ │ │ │ │ -tds_bcp_directions │ │ │ │ │ -bcp direction │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1654 │ │ │ │ │ -_t_d_s___b_c_p___s_e_n_d___r_e_c_o_r_d │ │ │ │ │ -TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, │ │ │ │ │ -tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset) │ │ │ │ │ -Send one row of data to server. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:468 │ │ │ │ │ -_t_d_s___b_c_p___d_o_n_e │ │ │ │ │ -TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied) │ │ │ │ │ -Tell we finished sending BCP data to server. │ │ │ │ │ -DDeeffiinniittiioonn bulk.c:836 │ │ │ │ │ -_T_D_S___E_N_C_O_D_I_N_G │ │ │ │ │ -struct tds_encoding TDS_ENCODING │ │ │ │ │ -Information relevant to libiconv. │ │ │ │ │ -_t_d_s_d_u_m_p___o_f_f │ │ │ │ │ -void tdsdump_off(TDSDUMP_OFF_ITEM *off_item) │ │ │ │ │ -Temporarily turn off logging for current thread. │ │ │ │ │ -DDeeffiinniittiioonn log.c:81 │ │ │ │ │ -_t_d_s_d_u_m_p___o_n │ │ │ │ │ -void tdsdump_on(TDSDUMP_OFF_ITEM *off_item) │ │ │ │ │ -Turn logging back on for current thread. │ │ │ │ │ -DDeeffiinniittiioonn log.c:101 │ │ │ │ │ -_T_D_S_C_U_R_S_O_R │ │ │ │ │ -struct tds_cursor TDSCURSOR │ │ │ │ │ -Holds informations about a cursor. │ │ │ │ │ -_t_d_s___n_t_l_m___g_e_t___a_u_t_h │ │ │ │ │ -TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds) │ │ │ │ │ -Build a NTLMSPP packet to send to server. │ │ │ │ │ -DDeeffiinniittiioonn challenge.c:721 │ │ │ │ │ -_t_d_s___c_o_n_f_i_g___v_e_r_s_t_r │ │ │ │ │ -TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login) │ │ │ │ │ -Set TDS version from given string. │ │ │ │ │ -DDeeffiinniittiioonn config.c:923 │ │ │ │ │ -_t_d_s___g_e_t___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s │ │ │ │ │ -const TDS_COMPILETIME_SETTINGS * tds_get_compiletime_settings(void) │ │ │ │ │ -Return a structure capturing the compile-time settings provided to the │ │ │ │ │ -configure script. │ │ │ │ │ -DDeeffiinniittiioonn config.c:1344 │ │ │ │ │ -_t_d_s___l_o_o_k_u_p___h_o_s_t │ │ │ │ │ -struct addrinfo * tds_lookup_host(const char *servername) │ │ │ │ │ -Get the IP address for a hostname. │ │ │ │ │ -DDeeffiinniittiioonn config.c:987 │ │ │ │ │ -_t_d_s___r_e_a_d___c_o_n_f___s_e_c_t_i_o_n │ │ │ │ │ -bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE │ │ │ │ │ -tds_conf_parse, void *parse_param) │ │ │ │ │ -Read a section of configuration file (INI style file) │ │ │ │ │ -DDeeffiinniittiioonn config.c:503 │ │ │ │ │ -_t_d_s___r_e_a_d___c_o_n_f___f_i_l_e │ │ │ │ │ -bool tds_read_conf_file(TDSLOGIN *login, const char *server) │ │ │ │ │ -Read configuration info for given server return 0 on error. │ │ │ │ │ -DDeeffiinniittiioonn config.c:346 │ │ │ │ │ -_t_d_s___s_e_t___i_n_t_e_r_f_a_c_e_s___f_i_l_e___l_o_c │ │ │ │ │ -TDSRET tds_set_interfaces_file_loc(const char *interfloc) │ │ │ │ │ -Set the full name of interface file. │ │ │ │ │ -DDeeffiinniittiioonn config.c:961 │ │ │ │ │ -_t_d_s___g_e_t___h_o_m_e___f_i_l_e │ │ │ │ │ -char * tds_get_home_file(const char *file) │ │ │ │ │ -Return filename from HOME directory. │ │ │ │ │ -DDeeffiinniittiioonn config.c:325 │ │ │ │ │ -_t_d_s___r_e_a_d___c_o_n_f_i_g___i_n_f_o │ │ │ │ │ -TDSLOGIN * tds_read_config_info(TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE │ │ │ │ │ -*locale) │ │ │ │ │ -tds_read_config_info() will fill the tds connection structure based on │ │ │ │ │ -configuration information gath... │ │ │ │ │ -DDeeffiinniittiioonn config.c:138 │ │ │ │ │ -_t_d_s___f_i_x___l_o_g_i_n │ │ │ │ │ -void tds_fix_login(TDSLOGIN *login) │ │ │ │ │ -Fix configuration after reading it. │ │ │ │ │ -DDeeffiinniittiioonn config.c:285 │ │ │ │ │ -_t_d_s___d_a_t_e_c_r_a_c_k │ │ │ │ │ -TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr) │ │ │ │ │ -Convert from db date format to a structured date format. │ │ │ │ │ -DDeeffiinniittiioonn convert.c:3172 │ │ │ │ │ -_t_d_s___i_c_o_n_v___f_r_o_m___c_o_l_l_a_t_e │ │ │ │ │ -TDSICONV * tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5]) │ │ │ │ │ -Get iconv information from a LCID (to support different column encoding under │ │ │ │ │ -MSSQL2K) │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:1245 │ │ │ │ │ -_t_d_s___a_l_l_o_c___r_o_w │ │ │ │ │ -TDSRET tds_alloc_row(TDSRESULTINFO *res_info) │ │ │ │ │ -Allocate space for row store return NULL on out of memory. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:524 │ │ │ │ │ -_t_d_s___d_e_t_a_c_h___r_e_s_u_l_t_s │ │ │ │ │ -void tds_detach_results(TDSRESULTINFO *info) │ │ │ │ │ -Detach result info from it current socket. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:488 │ │ │ │ │ -_t_d_s___a_l_l_o_c___p_a_r_a_m___r_e_s_u_l_t │ │ │ │ │ -TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param) │ │ │ │ │ -Adds a output parameter to TDSPARAMINFO. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:284 │ │ │ │ │ -_t_d_s___a_l_l_o_c___p_a_r_a_m___d_a_t_a │ │ │ │ │ -void * tds_alloc_param_data(TDSCOLUMN *curparam) │ │ │ │ │ -Allocate data for a parameter. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:364 │ │ │ │ │ -_t_d_s___i_n_i_t___l_o_g_i_n │ │ │ │ │ -TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale) │ │ │ │ │ -Initialize login structure with locale information and other stuff for │ │ │ │ │ -connection. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:800 │ │ │ │ │ -_t_d_s___f_r_e_e___p_a_r_a_m___r_e_s_u_l_t │ │ │ │ │ -void tds_free_param_result(TDSPARAMINFO *param_info) │ │ │ │ │ -Delete latest parameter. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:320 │ │ │ │ │ -_t_d_s___a_l_l_o_c___d_y_n_a_m_i_c │ │ │ │ │ -TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id) │ │ │ │ │ -Allocate a dynamic statement. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:160 │ │ │ │ │ -_t_d_s___r_e_a_l_l_o_c │ │ │ │ │ -void * tds_realloc(void **pp, size_t new_size) │ │ │ │ │ -Reallocate a pointer and update it if success. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:1876 │ │ │ │ │ -_t_d_s___f_r_e_e___i_n_p_u_t___p_a_r_a_m_s │ │ │ │ │ -void tds_free_input_params(TDSDYNAMIC *dyn) │ │ │ │ │ -Frees all allocated input parameters of a dynamic statement. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:206 │ │ │ │ │ -_t_d_s___r_e_l_e_a_s_e___d_y_n_a_m_i_c │ │ │ │ │ -void tds_release_dynamic(TDSDYNAMIC **dyn) │ │ │ │ │ -Frees dynamic statement. │ │ │ │ │ -DDeeffiinniittiioonn mem.c:253 │ │ │ │ │ -_t_d_s___n_e_e_d_s___u_n_p_r_e_p_a_r_e │ │ │ │ │ -int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ │ -Check if dynamic request must be unprepared. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1752 │ │ │ │ │ -_t_d_s___s_k_i_p___q_u_o_t_e_d │ │ │ │ │ -const char * tds_skip_quoted(const char *s) │ │ │ │ │ -Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) │ │ │ │ │ -DDeeffiinniittiioonn query.c:515 │ │ │ │ │ -_t_d_s_7_1___s_u_b_m_i_t___p_r_e_p_e_x_e_c │ │ │ │ │ -TDSRET tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, │ │ │ │ │ -TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │ │ -Creates a temporary stored procedure in the server and execute it. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1401 │ │ │ │ │ -_t_d_s___s_t_a_r_t___q_u_e_r_y │ │ │ │ │ -void tds_start_query(TDSSOCKET *tds, unsigned char packet_type) │ │ │ │ │ -Start query packet of a given type. │ │ │ │ │ -DDeeffiinniittiioonn query.c:332 │ │ │ │ │ -_t_d_s___s_e_n_d___c_a_n_c_e_l │ │ │ │ │ -TDSRET tds_send_cancel(TDSSOCKET *tds) │ │ │ │ │ -tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel │ │ │ │ │ -should be called dire... │ │ │ │ │ -DDeeffiinniittiioonn query.c:2026 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___e_x_e_c_u_t_e │ │ │ │ │ -TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ │ -Sends a previously prepared dynamic statement to the server. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1630 │ │ │ │ │ -_t_d_s___f_i_x___c_o_l_u_m_n___s_i_z_e │ │ │ │ │ -size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol) │ │ │ │ │ -Get column size for wire. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1491 │ │ │ │ │ -_t_d_s___g_e_t___c_o_l_u_m_n___d_e_c_l_a_r_a_t_i_o_n │ │ │ │ │ -TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out) │ │ │ │ │ -Return declaration for column (like "varchar(20)"). │ │ │ │ │ -DDeeffiinniittiioonn query.c:718 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___c_o_m_m_i_t │ │ │ │ │ -TDSRET tds_submit_commit(TDSSOCKET *tds, int cont) │ │ │ │ │ -Send a commit request. │ │ │ │ │ -DDeeffiinniittiioonn query.c:3724 │ │ │ │ │ -_t_d_s___d_e_f_e_r_r_e_d___c_u_r_s_o_r___d_e_a_l_l_o_c │ │ │ │ │ -TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │ │ -Deallocate cursor on idle. │ │ │ │ │ -DDeeffiinniittiioonn query.c:3057 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___q_u_e_r_y │ │ │ │ │ -TDSRET tds_submit_query(TDSSOCKET *tds, const char *query) │ │ │ │ │ -Sends a language string to the database server for processing. │ │ │ │ │ -DDeeffiinniittiioonn query.c:210 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___r_p_c │ │ │ │ │ -TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO │ │ │ │ │ -*params, TDSHEADERS *head) │ │ │ │ │ -Calls a RPC from server. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1929 │ │ │ │ │ -_t_d_s___q_u_o_t_e___i_d___r_p_c │ │ │ │ │ -size_t tds_quote_id_rpc(TDSSOCKET *tds, char *buffer, const char *id, int │ │ │ │ │ -idlen) │ │ │ │ │ -Quote an id for a RPC call. │ │ │ │ │ -DDeeffiinniittiioonn query.c:2216 │ │ │ │ │ -_t_d_s___q_u_o_t_e___s_t_r_i_n_g │ │ │ │ │ -size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len) │ │ │ │ │ -Quote a string. │ │ │ │ │ -DDeeffiinniittiioonn query.c:2241 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___p_r_e_p_a_r_e │ │ │ │ │ -TDSRET tds_submit_prepare(TDSSOCKET *tds, const char *query, const char *id, │ │ │ │ │ -TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │ │ -Creates a temporary stored procedure in the server. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1124 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___b_e_g_i_n___t_r_a_n │ │ │ │ │ -TDSRET tds_submit_begin_tran(TDSSOCKET *tds) │ │ │ │ │ -Send a rollback request. │ │ │ │ │ -DDeeffiinniittiioonn query.c:3665 │ │ │ │ │ -_t_d_s___q_u_o_t_e___i_d │ │ │ │ │ -size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen) │ │ │ │ │ -Quote an id. │ │ │ │ │ -DDeeffiinniittiioonn query.c:2171 │ │ │ │ │ -_t_d_s___n_e_x_t___p_l_a_c_e_h_o_l_d_e_r │ │ │ │ │ -const char * tds_next_placeholder(const char *start) │ │ │ │ │ -Get position of next placeholder. │ │ │ │ │ -DDeeffiinniittiioonn query.c:535 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___q_u_e_r_y___p_a_r_a_m_s │ │ │ │ │ -TDSRET tds_submit_query_params(TDSSOCKET *tds, const char *query, TDSPARAMINFO │ │ │ │ │ -*params, TDSHEADERS *head) │ │ │ │ │ -Sends a language string to the database server for processing. │ │ │ │ │ -DDeeffiinniittiioonn query.c:350 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___r_o_l_l_b_a_c_k │ │ │ │ │ -TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont) │ │ │ │ │ -Send a rollback request. │ │ │ │ │ -DDeeffiinniittiioonn query.c:3693 │ │ │ │ │ -_t_d_s___d_e_f_e_r_r_e_d___u_n_p_r_e_p_a_r_e │ │ │ │ │ -TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ │ -Unprepare dynamic on idle. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1774 │ │ │ │ │ -_t_d_s___c_o_u_n_t___p_l_a_c_e_h_o_l_d_e_r_s │ │ │ │ │ -int tds_count_placeholders(const char *query) │ │ │ │ │ -Count the number of placeholders ('?') in a query. │ │ │ │ │ -DDeeffiinniittiioonn query.c:571 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r___d_e_a_l_l_o_c │ │ │ │ │ -TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │ │ -Send a deallocation request to server. │ │ │ │ │ -DDeeffiinniittiioonn query.c:3006 │ │ │ │ │ -_t_d_s___s_k_i_p___c_o_m_m_e_n_t │ │ │ │ │ -const char * tds_skip_comment(const char *s) │ │ │ │ │ -Skip a comment in a query. │ │ │ │ │ -DDeeffiinniittiioonn query.c:490 │ │ │ │ │ -_t_d_s___c_o_n_v_e_r_t___s_t_r_i_n_g │ │ │ │ │ -const char * tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char │ │ │ │ │ -*s, int len, size_t *out_len) │ │ │ │ │ -Convert a string in an allocated buffer. │ │ │ │ │ -DDeeffiinniittiioonn query.c:126 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___q_u_e_r_y_f │ │ │ │ │ -TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...) │ │ │ │ │ -Format and submit a query. │ │ │ │ │ -DDeeffiinniittiioonn query.c:467 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___e_x_e_c_d_i_r_e_c_t │ │ │ │ │ -TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO │ │ │ │ │ -*params, TDSHEADERS *head) │ │ │ │ │ -Submit a prepared query with parameters. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1256 │ │ │ │ │ -_t_d_s___s_e_t___c_u_r___d_y_n │ │ │ │ │ -void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ │ -Set current dynamic. │ │ │ │ │ -DDeeffiinniittiioonn query.c:192 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___o_p_t_i_o_n_c_m_d │ │ │ │ │ -TDSRET tds_submit_optioncmd(TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION │ │ │ │ │ -option, TDS_OPTION_ARG *param, TDS_INT param_size) │ │ │ │ │ -Send option commands to server. │ │ │ │ │ -DDeeffiinniittiioonn query.c:3389 │ │ │ │ │ -_t_d_s___s_u_b_m_i_t___u_n_p_r_e_p_a_r_e │ │ │ │ │ -TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ │ -Send a unprepare request for a prepared query. │ │ │ │ │ -DDeeffiinniittiioonn query.c:1797 │ │ │ │ │ -_t_d_s___d_s_t_r___g_e_t │ │ │ │ │ -DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len) │ │ │ │ │ -Reads a string from wire and put in a DSTR. │ │ │ │ │ -DDeeffiinniittiioonn read.c:293 │ │ │ │ │ -_t_d_s___g_e_t___b_y_t_e │ │ │ │ │ -unsigned char tds_get_byte(TDSSOCKET *tds) │ │ │ │ │ -Return a single byte from the input buffer. │ │ │ │ │ -DDeeffiinniittiioonn read.c:72 │ │ │ │ │ -_t_d_s___p_u_t___s_t_r_i_n_g │ │ │ │ │ -int tds_put_string(TDSSOCKET *tds, const char *buf, int len) │ │ │ │ │ -Output a string to wire automatic translate string to unicode if needed. │ │ │ │ │ -DDeeffiinniittiioonn write.c:97 │ │ │ │ │ -_t_d_s___p_e_e_k │ │ │ │ │ -unsigned char tds_peek(TDSSOCKET *tds) │ │ │ │ │ -Reads a byte from the TDS stream without removing it. │ │ │ │ │ -DDeeffiinniittiioonn read.c:100 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e___c_l_o_s_e___l_e_n │ │ │ │ │ -TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size) │ │ │ │ │ -Stop keeping data for this specific freeze. │ │ │ │ │ -DDeeffiinniittiioonn packet.c:1031 │ │ │ │ │ -_t_d_s___g_o_o_d_w_r_i_t_e │ │ │ │ │ -int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen) │ │ │ │ │ -DDeeffiinniittiioonn net.c:985 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t___s_e_t___n_o_n_b_l_o_c_k_i_n_g │ │ │ │ │ -int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock) │ │ │ │ │ -Set socket to non-blocking. │ │ │ │ │ -DDeeffiinniittiioonn net.c:168 │ │ │ │ │ -_t_d_s___c_l_o_s_e___s_o_c_k_e_t │ │ │ │ │ -void tds_close_socket(TDSSOCKET *tds) │ │ │ │ │ -Close current socket. │ │ │ │ │ -DDeeffiinniittiioonn net.c:548 │ │ │ │ │ -_t_d_s___r_e_a_d___p_a_c_k_e_t │ │ │ │ │ -int tds_read_packet(TDSSOCKET *tds) │ │ │ │ │ -Read in one 'packet' from the server. │ │ │ │ │ -DDeeffiinniittiioonn packet.c:527 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e___w_r_i_t_t_e_n │ │ │ │ │ -size_t tds_freeze_written(TDSFREEZE *freeze) │ │ │ │ │ -Compute how many bytes has been written from freeze. │ │ │ │ │ -DDeeffiinniittiioonn packet.c:935 │ │ │ │ │ -_t_d_s___f_l_u_s_h___p_a_c_k_e_t │ │ │ │ │ -TDSRET tds_flush_packet(TDSSOCKET *tds) │ │ │ │ │ -Flush packet to server. │ │ │ │ │ -DDeeffiinniittiioonn write.c:224 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e___c_l_o_s_e │ │ │ │ │ -TDSRET tds_freeze_close(TDSFREEZE *freeze) │ │ │ │ │ -Stop keeping data for this specific freeze. │ │ │ │ │ -DDeeffiinniittiioonn packet.c:996 │ │ │ │ │ -_t_d_s___g_o_o_d_r_e_a_d │ │ │ │ │ -int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen) │ │ │ │ │ -Loops until we have received some characters return -1 on failure. │ │ │ │ │ -DDeeffiinniittiioonn net.c:914 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e___a_b_o_r_t │ │ │ │ │ -TDSRET tds_freeze_abort(TDSFREEZE *freeze) │ │ │ │ │ -Discard all data written after the freeze. │ │ │ │ │ -DDeeffiinniittiioonn packet.c:961 │ │ │ │ │ -_t_d_s___g_e_t___u_i_n_t_8 │ │ │ │ │ -TDS_UINT8 tds_get_uint8(TDSSOCKET *tds) │ │ │ │ │ -Get an uint64 from the server. │ │ │ │ │ -DDeeffiinniittiioonn read.c:140 │ │ │ │ │ -_t_d_s___g_e_t___c_h_a_r___d_a_t_a │ │ │ │ │ -TDSRET tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, │ │ │ │ │ -TDSCOLUMN *curcol) │ │ │ │ │ -Fetch character data the wire. │ │ │ │ │ -DDeeffiinniittiioonn read.c:195 │ │ │ │ │ -_t_d_s___g_e_t___s_t_r_i_n_g │ │ │ │ │ -size_t tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t │ │ │ │ │ -dest_size) │ │ │ │ │ -Fetch a string from the wire. │ │ │ │ │ -DDeeffiinniittiioonn read.c:166 │ │ │ │ │ -_t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t_s │ │ │ │ │ -int tds7_get_instance_ports(FILE *output, struct addrinfo *addr) │ │ │ │ │ -Get port of all instances. │ │ │ │ │ -DDeeffiinniittiioonn net.c:1091 │ │ │ │ │ -_t_d_s___g_e_t___u_i_n_t │ │ │ │ │ -TDS_UINT tds_get_uint(TDSSOCKET *tds) │ │ │ │ │ -Get an int32 from the server. │ │ │ │ │ -DDeeffiinniittiioonn read.c:127 │ │ │ │ │ -_t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t │ │ │ │ │ -int tds7_get_instance_port(struct addrinfo *addr, const char *instance) │ │ │ │ │ -Get port of given instance. │ │ │ │ │ -DDeeffiinniittiioonn net.c:1227 │ │ │ │ │ -_t_d_s___g_e_t___u_s_m_a_l_l_i_n_t │ │ │ │ │ -TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds) │ │ │ │ │ -Get an int16 from the server. │ │ │ │ │ -DDeeffiinniittiioonn read.c:113 │ │ │ │ │ -_t_d_s___u_n_g_e_t___b_y_t_e │ │ │ │ │ -void tds_unget_byte(TDSSOCKET *tds) │ │ │ │ │ -Unget will always work as long as you don't call it twice in a row. │ │ │ │ │ -DDeeffiinniittiioonn read.c:89 │ │ │ │ │ -_t_d_s___s_e_l_e_c_t │ │ │ │ │ -int tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds) │ │ │ │ │ -Select on a socket until it's available or the timeout expires. │ │ │ │ │ -DDeeffiinniittiioonn net.c:610 │ │ │ │ │ -_t_d_s___g_e_t___n │ │ │ │ │ -bool tds_get_n(TDSSOCKET *tds, void *dest, size_t n) │ │ │ │ │ -Get N bytes from the buffer and return them in the already allocated space │ │ │ │ │ -given to us. │ │ │ │ │ -DDeeffiinniittiioonn read.c:230 │ │ │ │ │ -_t_d_s___p_r_t_y_p_e │ │ │ │ │ -const char * tds_prtype(int token) │ │ │ │ │ -Returns string representation of the given type. │ │ │ │ │ -DDeeffiinniittiioonn token.c:3056 │ │ │ │ │ -_t_d_s___l_o_o_k_u_p___d_y_n_a_m_i_c │ │ │ │ │ -TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id) │ │ │ │ │ -Finds a dynamic given string id. │ │ │ │ │ -DDeeffiinniittiioonn token.c:2587 │ │ │ │ │ -_t_d_s___p_r_o_c_e_s_s___l_o_g_i_n___t_o_k_e_n_s │ │ │ │ │ -TDSRET tds_process_login_tokens(TDSSOCKET *tds) │ │ │ │ │ -tds_process_login_tokens() is called after sending the login packet to the │ │ │ │ │ -server. │ │ │ │ │ -DDeeffiinniittiioonn token.c:411 │ │ │ │ │ -_t_d_s___g_e_t___t_o_k_e_n___s_i_z_e │ │ │ │ │ -int tds_get_token_size(int marker) │ │ │ │ │ -tds_get_token_size() returns the size of a fixed length token used by │ │ │ │ │ -tds_process_cancel() to determi... │ │ │ │ │ -DDeeffiinniittiioonn token.c:2754 │ │ │ │ │ -_t_d_s___p_r_o_c_e_s_s___t_o_k_e_n_s │ │ │ │ │ -TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int │ │ │ │ │ -*done_flags, unsigned flag) │ │ │ │ │ -process all streams. │ │ │ │ │ -DDeeffiinniittiioonn token.c:531 │ │ │ │ │ -_t_d_s___p_r_o_c_e_s_s___s_i_m_p_l_e___q_u_e_r_y │ │ │ │ │ -TDSRET tds_process_simple_query(TDSSOCKET *tds) │ │ │ │ │ -Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the │ │ │ │ │ -statement returns results,... │ │ │ │ │ -DDeeffiinniittiioonn token.c:881 │ │ │ │ │ -_t_d_s___p_r_o_c_e_s_s___c_a_n_c_e_l │ │ │ │ │ -TDSRET tds_process_cancel(TDSSOCKET *tds) │ │ │ │ │ -DDeeffiinniittiioonn token.c:2554 │ │ │ │ │ -_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ +554/* MS encryption byte (pre login) */ │ │ │ │ │ +555enum { │ │ │ │ │ +556 TDS7_ENCRYPT_OFF, │ │ │ │ │ +557 TDS7_ENCRYPT_ON, │ │ │ │ │ +558 TDS7_ENCRYPT_NOT_SUP, │ │ │ │ │ +559 TDS7_ENCRYPT_REQ, │ │ │ │ │ +560}; │ │ │ │ │ _t_d_s_n_u_m_e_r_i_c │ │ │ │ │ DDeeffiinniittiioonn proto.h:26 │ │ │ │ │ +_t_d_s_o_l_d_m_o_n_e_y │ │ │ │ │ +DDeeffiinniittiioonn proto.h:33 │ │ │ │ │ _t_d_s_m_o_n_e_y │ │ │ │ │ DDeeffiinniittiioonn proto.h:39 │ │ │ │ │ -_t_d_s___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s │ │ │ │ │ -A structure to hold all the compile-time settings. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:82 │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L │ │ │ │ │ -this structure is not directed connected to a TDS protocol but keeps any DATE/ │ │ │ │ │ -TIME information. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:146 │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L_:_:_d_a_t_e │ │ │ │ │ -TDS_INT date │ │ │ │ │ -date, 0 = 1900-01-01 │ │ │ │ │ -DDeeffiinniittiioonn tds.h:148 │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L_:_:_o_f_f_s_e_t │ │ │ │ │ -TDS_SMALLINT offset │ │ │ │ │ -time offset │ │ │ │ │ -DDeeffiinniittiioonn tds.h:149 │ │ │ │ │ -_T_D_S___D_A_T_E_T_I_M_E_A_L_L_:_:_t_i_m_e │ │ │ │ │ -TDS_UINT8 time │ │ │ │ │ -time, 7 digit precision │ │ │ │ │ -DDeeffiinniittiioonn tds.h:147 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c │ │ │ │ │ -Used by tds_datecrack. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:159 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_d_a_y_o_f_y_e_a_r │ │ │ │ │ -TDS_INT dayofyear │ │ │ │ │ -day of year (1-366) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:164 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_w_e_e_k_d_a_y │ │ │ │ │ -TDS_INT weekday │ │ │ │ │ -day of week (0-6, 0 = sunday) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:165 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_y_e_a_r │ │ │ │ │ -TDS_INT year │ │ │ │ │ -year │ │ │ │ │ -DDeeffiinniittiioonn tds.h:160 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_t_i_m_e_z_o_n_e │ │ │ │ │ -TDS_INT timezone │ │ │ │ │ --840 - 840 minutes from UTC │ │ │ │ │ -DDeeffiinniittiioonn tds.h:170 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_m_i_n_u_t_e │ │ │ │ │ -TDS_INT minute │ │ │ │ │ -0-59 │ │ │ │ │ -DDeeffiinniittiioonn tds.h:167 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_d_a_y │ │ │ │ │ -TDS_INT day │ │ │ │ │ -day of month (1-31) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:163 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_d_e_c_i_m_i_c_r_o_s_e_c_o_n_d │ │ │ │ │ -TDS_INT decimicrosecond │ │ │ │ │ -0-9999999 │ │ │ │ │ -DDeeffiinniittiioonn tds.h:169 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_s_e_c_o_n_d │ │ │ │ │ -TDS_INT second │ │ │ │ │ -0-59 │ │ │ │ │ -DDeeffiinniittiioonn tds.h:168 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_q_u_a_r_t_e_r │ │ │ │ │ -TDS_INT quarter │ │ │ │ │ -quarter (0-3) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:161 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_h_o_u_r │ │ │ │ │ -TDS_INT hour │ │ │ │ │ -0-23 │ │ │ │ │ -DDeeffiinniittiioonn tds.h:166 │ │ │ │ │ -_t_d_s_d_a_t_e_r_e_c_:_:_m_o_n_t_h │ │ │ │ │ -TDS_INT month │ │ │ │ │ -month number (0-11) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:162 │ │ │ │ │ -_t_d_s___o_p_t_i_o_n___a_r_g │ │ │ │ │ -DDeeffiinniittiioonn tds.h:330 │ │ │ │ │ -_t_d_s___a_l_i_g_n___s_t_r_u_c_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:495 │ │ │ │ │ -_t_d_s___c_a_p_a_b_i_l_i_t_y___t_y_p_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:504 │ │ │ │ │ -_t_d_s___c_a_p_a_b_i_l_i_t_i_e_s │ │ │ │ │ -DDeeffiinniittiioonn tds.h:511 │ │ │ │ │ -_t_d_s___l_o_g_i_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_c_r_l_f_i_l_e │ │ │ │ │ -DSTR crlfile │ │ │ │ │ -certificate revocation file │ │ │ │ │ -DDeeffiinniittiioonn tds.h:531 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___r_e_a_l_m___n_a_m_e │ │ │ │ │ -DSTR server_realm_name │ │ │ │ │ -server realm name (in freetds.conf) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:527 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_u_s_e_r___n_a_m_e │ │ │ │ │ -DSTR user_name │ │ │ │ │ -account for login │ │ │ │ │ -DDeeffiinniittiioonn tds.h:534 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_p_a_s_s_w_o_r_d │ │ │ │ │ -DSTR password │ │ │ │ │ -password of account login │ │ │ │ │ -DDeeffiinniittiioonn tds.h:535 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_d_b___f_i_l_e_n_a_m_e │ │ │ │ │ -DSTR db_filename │ │ │ │ │ -database filename to attach (MSSQL) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:529 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___n_a_m_e │ │ │ │ │ -DSTR server_name │ │ │ │ │ -server name (in freetds.conf) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:518 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_i_p___a_d_d_r_s │ │ │ │ │ -struct addrinfo * ip_addrs │ │ │ │ │ -ip(s) of server │ │ │ │ │ -DDeeffiinniittiioonn tds.h:546 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___c_h_a_r_s_e_t │ │ │ │ │ -DSTR server_charset │ │ │ │ │ -charset of server e.g. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:523 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_t_d_s___v_e_r_s_i_o_n │ │ │ │ │ -TDS_USMALLINT tds_version │ │ │ │ │ -TDS version. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:520 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_n_e_w___p_a_s_s_w_o_r_d │ │ │ │ │ -DSTR new_password │ │ │ │ │ -new password to set (TDS 7.2+) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:536 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_b_u_l_k___c_o_p_y │ │ │ │ │ -unsigned int bulk_copy │ │ │ │ │ -if bulk copy should be enabled │ │ │ │ │ -DDeeffiinniittiioonn tds.h:556 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_c_a_f_i_l_e │ │ │ │ │ -DSTR cafile │ │ │ │ │ -certificate authorities file │ │ │ │ │ -DDeeffiinniittiioonn tds.h:530 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___s_p_n │ │ │ │ │ -DSTR server_spn │ │ │ │ │ -server SPN (in freetds.conf) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:528 │ │ │ │ │ -_t_d_s___l_o_g_i_n_:_:_p_o_r_t │ │ │ │ │ -int port │ │ │ │ │ -port of database service │ │ │ │ │ -DDeeffiinniittiioonn tds.h:519 │ │ │ │ │ -_t_d_s___h_e_a_d_e_r_s │ │ │ │ │ -DDeeffiinniittiioonn tds.h:574 │ │ │ │ │ -_t_d_s___l_o_c_a_l_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:582 │ │ │ │ │ -_t_d_s___b_l_o_b │ │ │ │ │ -Information about blobs (e.g. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:593 │ │ │ │ │ -_t_d_s___v_a_r_i_a_n_t │ │ │ │ │ -Store variant informations. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:604 │ │ │ │ │ -_t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ -Information relevant to libiconv. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:618 │ │ │ │ │ -_t_d_s___e_n_c_o_d_i_n_g_:_:_n_a_m_e │ │ │ │ │ -const char * name │ │ │ │ │ -name of the encoding (ie UTF-8) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:620 │ │ │ │ │ -_t_d_s___e_n_c_o_d_i_n_g_:_:_c_a_n_o_n_i_c │ │ │ │ │ -unsigned char canonic │ │ │ │ │ -internal numeric index into array of all encodings │ │ │ │ │ -DDeeffiinniittiioonn tds.h:624 │ │ │ │ │ -_t_d_s___b_c_p_c_o_l_d_a_t_a │ │ │ │ │ -DDeeffiinniittiioonn tds.h:628 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n___f_u_n_c_s │ │ │ │ │ -DDeeffiinniittiioonn tds.h:643 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n___f_u_n_c_s_:_:_p_u_t___d_a_t_a │ │ │ │ │ -tds_func_put_data * put_data │ │ │ │ │ -Send column data to server. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:662 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n___f_u_n_c_s_:_:_p_u_t___i_n_f_o │ │ │ │ │ -tds_func_put_info * put_info │ │ │ │ │ -Send metadata column information to server. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:652 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n │ │ │ │ │ -Metadata about columns in regular and compute rows. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_b_c_p___p_r_e_f_i_x___l_e_n │ │ │ │ │ -TDS_INT bcp_prefix_len │ │ │ │ │ -The length, in bytes, of any length prefix this column may have. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:761 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___v_a_r_i_n_t___s_i_z_e │ │ │ │ │ -TDS_TINYINT column_varint_size │ │ │ │ │ -size of length when reading from wire (0, 1, 2 or 4) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:701 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___s_i_z_e │ │ │ │ │ -TDS_INT column_size │ │ │ │ │ -maximun size of data. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:694 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___p_r_e_c │ │ │ │ │ -TDS_TINYINT column_prec │ │ │ │ │ -precision for decimal/numeric │ │ │ │ │ -DDeeffiinniittiioonn tds.h:703 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___t_y_p_e │ │ │ │ │ -TDS_SERVER_TYPE column_type │ │ │ │ │ -This type can be different from wire type because conversion (e.g. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:696 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_h_a_r___c_o_n_v │ │ │ │ │ -TDSICONV * char_conv │ │ │ │ │ -refers to previously allocated iconv information │ │ │ │ │ -DDeeffiinniittiioonn tds.h:712 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___s_c_a_l_e │ │ │ │ │ -TDS_TINYINT column_scale │ │ │ │ │ -scale for decimal/numeric │ │ │ │ │ -DDeeffiinniittiioonn tds.h:704 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___c_u_r___s_i_z_e │ │ │ │ │ -TDS_INT column_cur_size │ │ │ │ │ -size written in variable (ie: char, text, binary). │ │ │ │ │ -DDeeffiinniittiioonn tds.h:736 │ │ │ │ │ -_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ -Hold information for any results. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ -_t_d_s___m_e_s_s_a_g_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:876 │ │ │ │ │ -_t_d_s___u_p_d___c_o_l │ │ │ │ │ -DDeeffiinniittiioonn tds.h:892 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r___s_t_a_t_u_s │ │ │ │ │ -DDeeffiinniittiioonn tds.h:906 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r │ │ │ │ │ -Holds informations about a cursor. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_o_p_t_i_o_n_s │ │ │ │ │ -TDS_TINYINT options │ │ │ │ │ -read only|updatable TODO use it │ │ │ │ │ -DDeeffiinniittiioonn tds.h:942 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_d_e_f_e_r___c_l_o_s_e │ │ │ │ │ -bool defer_close │ │ │ │ │ -true if cursor was marker to be closed when connection is idle │ │ │ │ │ -DDeeffiinniittiioonn tds.h:946 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_r_e_f___c_o_u_n_t │ │ │ │ │ -TDS_INT ref_count │ │ │ │ │ -reference counter so client can retain safely a pointer │ │ │ │ │ -DDeeffiinniittiioonn tds.h:939 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_c_u_r_s_o_r___i_d │ │ │ │ │ -TDS_INT cursor_id │ │ │ │ │ -cursor id returned by the server after cursor declare │ │ │ │ │ -DDeeffiinniittiioonn tds.h:941 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_c_u_r_s_o_r___r_o_w_s │ │ │ │ │ -TDS_INT cursor_rows │ │ │ │ │ -< number of updatable columns │ │ │ │ │ -DDeeffiinniittiioonn tds.h:951 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_n_e_x_t │ │ │ │ │ -struct tds_cursor * next │ │ │ │ │ -next in linked list, keep first │ │ │ │ │ -DDeeffiinniittiioonn tds.h:938 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_t_y_p_e │ │ │ │ │ -TDS_INT type │ │ │ │ │ -row fetched from this cursor │ │ │ │ │ -DDeeffiinniittiioonn tds.h:956 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_s_t_a_t_u_s │ │ │ │ │ -TDS_CURSOR_STATUS status │ │ │ │ │ -cursor parameter │ │ │ │ │ -DDeeffiinniittiioonn tds.h:953 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_q_u_e_r_y │ │ │ │ │ -char * query │ │ │ │ │ -SQL query. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:947 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r_:_:_c_u_r_s_o_r___n_a_m_e │ │ │ │ │ -char * cursor_name │ │ │ │ │ -name of the cursor │ │ │ │ │ -DDeeffiinniittiioonn tds.h:940 │ │ │ │ │ -_t_d_s___e_n_v │ │ │ │ │ -Current environment as reported by the server. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:963 │ │ │ │ │ -_t_d_s___e_n_v_:_:_c_h_a_r_s_e_t │ │ │ │ │ -char * charset │ │ │ │ │ -character set encoding │ │ │ │ │ -DDeeffiinniittiioonn tds.h:968 │ │ │ │ │ -_t_d_s___e_n_v_:_:_b_l_o_c_k___s_i_z_e │ │ │ │ │ -int block_size │ │ │ │ │ -packet size (512-65535) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:965 │ │ │ │ │ -_t_d_s___e_n_v_:_:_d_a_t_a_b_a_s_e │ │ │ │ │ -char * database │ │ │ │ │ -database name │ │ │ │ │ -DDeeffiinniittiioonn tds.h:970 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ -Holds information for a dynamic (also called prepared) query. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_q_u_e_r_y │ │ │ │ │ -char * query │ │ │ │ │ -saved query, we need to know original query if prepare is impossible │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1009 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_r_e_f___c_o_u_n_t │ │ │ │ │ -TDS_INT ref_count │ │ │ │ │ -reference counter so client can retain safely a pointer │ │ │ │ │ -DDeeffiinniittiioonn tds.h:979 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_d_e_f_e_r___c_l_o_s_e │ │ │ │ │ -bool defer_close │ │ │ │ │ -true if dynamic was marker to be closed when connection is idle │ │ │ │ │ -DDeeffiinniittiioonn tds.h:997 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_r_e_s___i_n_f_o │ │ │ │ │ -TDSPARAMINFO * res_info │ │ │ │ │ -query results │ │ │ │ │ -DDeeffiinniittiioonn tds.h:999 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_e_m_u_l_a_t_e_d │ │ │ │ │ -TDS_TINYINT emulated │ │ │ │ │ -this dynamic query cannot be prepared so libTDS have to construct a simple │ │ │ │ │ -query. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:993 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_p_a_r_a_m_s │ │ │ │ │ -TDSPARAMINFO * params │ │ │ │ │ -query parameters. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1007 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_n_e_x_t │ │ │ │ │ -struct tds_dynamic * next │ │ │ │ │ -next in linked list, keep first │ │ │ │ │ -DDeeffiinniittiioonn tds.h:978 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c_:_:_n_u_m___i_d │ │ │ │ │ -TDS_INT num_id │ │ │ │ │ -numeric id for mssql7+ │ │ │ │ │ -DDeeffiinniittiioonn tds.h:981 │ │ │ │ │ -_t_d_s___m_u_l_t_i_p_l_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1019 │ │ │ │ │ -_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ -_t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1047 │ │ │ │ │ -_t_d_s___p_a_c_k_e_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1057 │ │ │ │ │ -_t_d_s___p_a_c_k_e_t_:_:_d_a_t_a___l_e_n │ │ │ │ │ -unsigned data_len │ │ │ │ │ -data length, this does not account SMP header, only TDS part │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1071 │ │ │ │ │ -_t_d_s___p_o_l_l___w_a_k_e_u_p │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1085 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_e_n_v │ │ │ │ │ -TDSENV env │ │ │ │ │ -environment is shared between all sessions │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1101 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_c_u_r_s_o_r_s │ │ │ │ │ -TDSCURSOR * cursors │ │ │ │ │ -linked list of cursors allocated for this connection contains only cursors │ │ │ │ │ -allocated on the server │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1107 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_s │ │ │ │ │ -TDS_SYS_SOCKET s │ │ │ │ │ -tcp socket, INVALID_SOCKET if not connected │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1096 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_p_r_o_d_u_c_t___v_e_r_s_i_o_n │ │ │ │ │ -TDS_UINT product_version │ │ │ │ │ -version of product (Sybase/MS and full version) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1093 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_d_y_n_s │ │ │ │ │ -TDSDYNAMIC * dyns │ │ │ │ │ -list of dynamic allocated for this connection contains only dynamic allocated │ │ │ │ │ -on the server │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1112 │ │ │ │ │ -_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_p_e_n_d_i_n_g___c_l_o_s_e │ │ │ │ │ -unsigned int pending_close │ │ │ │ │ -true is connection has pending closing (cursors or dynamic) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1123 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_l_o_g_i_n │ │ │ │ │ -TDSLOGIN * login │ │ │ │ │ -config for login stuff. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1258 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_i_n___l_e_n │ │ │ │ │ -unsigned in_len │ │ │ │ │ -input buffer length │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1194 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_f_r_o_z_e_n___p_a_c_k_e_t_s │ │ │ │ │ -TDSPACKET * frozen_packets │ │ │ │ │ -list of packets frozen, points to first one. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1203 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_s_e_n_d___p_a_c_k_e_t │ │ │ │ │ -TDSPACKET * send_packet │ │ │ │ │ -packet we are preparing to send │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1231 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_i_n___b_u_f │ │ │ │ │ -unsigned char * in_buf │ │ │ │ │ -Input buffer. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1177 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_r_e_t___s_t_a_t_u_s │ │ │ │ │ -TDS_INT ret_status │ │ │ │ │ -return status from store procedure │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1250 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_o_u_t___p_o_s │ │ │ │ │ -unsigned out_pos │ │ │ │ │ -current position in out_buf │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1193 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_c_u_r_r_e_n_t___r_e_s_u_l_t_s │ │ │ │ │ -TDSRESULTINFO * current_results │ │ │ │ │ -Current query information. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1238 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_i_n___f_l_a_g │ │ │ │ │ -unsigned char in_flag │ │ │ │ │ -input buffer type │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1195 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_r_o_w_s___a_f_f_e_c_t_e_d │ │ │ │ │ -TDS_INT8 rows_affected │ │ │ │ │ -rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1254 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_o_u_t___f_l_a_g │ │ │ │ │ -unsigned char out_flag │ │ │ │ │ -output buffer type │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1196 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_i_n___p_o_s │ │ │ │ │ -unsigned in_pos │ │ │ │ │ -current position in in_buf │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1192 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_c_u_r___c_u_r_s_o_r │ │ │ │ │ -TDSCURSOR * cur_cursor │ │ │ │ │ -cursor in use │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1243 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_i_n___r_o_w │ │ │ │ │ -bool in_row │ │ │ │ │ -true if we are getting rows │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1246 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_b_u_l_k___q_u_e_r_y │ │ │ │ │ -bool bulk_query │ │ │ │ │ -true is query sent was a bulk query so we need to switch state to QUERYING │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1244 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_h_a_s___s_t_a_t_u_s │ │ │ │ │ -bool has_status │ │ │ │ │ -true is ret_status is valid │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1245 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_o_u_t___b_u_f │ │ │ │ │ -unsigned char * out_buf │ │ │ │ │ -Output buffer. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1185 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_i_n___c_a_n_c_e_l │ │ │ │ │ -volatile unsigned char in_cancel │ │ │ │ │ -indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean │ │ │ │ │ -we have to send cance... │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1248 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_o_u_t___b_u_f___m_a_x │ │ │ │ │ -unsigned int out_buf_max │ │ │ │ │ -Maximum size of packet pointed by out_buf. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1191 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t_:_:_c_u_r___d_y_n │ │ │ │ │ -TDSDYNAMIC * cur_dyn │ │ │ │ │ -dynamic structure in use │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1256 │ │ │ │ │ -_t_d_s_d_u_m_p___o_f_f___i_t_e_m │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1501 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1571 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e_:_:_t_d_s │ │ │ │ │ -TDSSOCKET * tds │ │ │ │ │ -which socket we refer to │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1573 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e_:_:_p_k_t___p_o_s │ │ │ │ │ -unsigned pkt_pos │ │ │ │ │ -position in pkt │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1577 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e_:_:_s_i_z_e___l_e_n │ │ │ │ │ -unsigned size_len │ │ │ │ │ -length size (0, 1, 2 or 4) │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1579 │ │ │ │ │ -_t_d_s___f_r_e_e_z_e_:_:_p_k_t │ │ │ │ │ -TDSPACKET * pkt │ │ │ │ │ -first packet frozen │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1575 │ │ │ │ │ -_t_d_s___b_c_p_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ -_t_d_s___c_o_n_d_i_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn thread.h:278 │ │ │ │ │ -_t_d_s___d_s_t_r │ │ │ │ │ -Structure to hold a string. │ │ │ │ │ -DDeeffiinniittiioonn string.h:36 │ │ │ │ │ +_t_d_s_m_o_n_e_y_4 │ │ │ │ │ +DDeeffiinniittiioonn proto.h:45 │ │ │ │ │ +_t_d_s_d_a_t_e_t_i_m_e │ │ │ │ │ +DDeeffiinniittiioonn proto.h:50 │ │ │ │ │ +_t_d_s_d_a_t_e_t_i_m_e_4 │ │ │ │ │ +DDeeffiinniittiioonn proto.h:56 │ │ │ │ │ +_t_d_s_u_n_i_q_u_e │ │ │ │ │ +DDeeffiinniittiioonn proto.h:62 │ │ │ │ │ +_T_D_S_7_1___C_O_L_L_A_T_I_O_N │ │ │ │ │ +TDS 7.1 collation informations. │ │ │ │ │ +DDeeffiinniittiioonn proto.h:351 │ │ │ │ │ +_T_D_S_7_2___S_M_P___H_E_A_D_E_R │ │ │ │ │ +TDS 7.2 SMP packet header. │ │ │ │ │ +DDeeffiinniittiioonn proto.h:361 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00443_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/data.h Source File │ │ │ │ +FreeTDS API: include/freetds/tds.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,120 +74,1889 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
data.h
│ │ │ │ +
tds.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2014 Frediano Ziglio
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef _freetds_data_h_
│ │ │ │ -
21#define _freetds_data_h_
│ │ │ │ -
22
│ │ │ │ -
23#ifndef _tds_h_
│ │ │ │ -
24# error Include tds.h before data.h
│ │ │ │ -
25#endif
│ │ │ │ -
26
│ │ │ │ -
27#include <freetds/pushvis.h>
│ │ │ │ -
28
│ │ │ │ -
29#define TDS_COMMON_FUNCS(name) \
│ │ │ │ -
30{ \
│ │ │ │ -
31 tds_ ## name ## _get_info, \
│ │ │ │ -
32 tds_ ## name ## _get, \
│ │ │ │ -
33 tds_ ## name ## _row_len, \
│ │ │ │ -
34 tds_ ## name ## _put_info, \
│ │ │ │ -
35 tds_ ## name ## _put, \
│ │ │ │ -
36 TDS_EXTRA_CHECK(tds_ ## name ## _check) \
│ │ │ │ -
37}
│ │ │ │ -
38
│ │ │ │ -
39tds_func_get_info tds_invalid_get_info;
│ │ │ │ -
40tds_func_row_len tds_invalid_row_len;
│ │ │ │ -
41tds_func_get_data tds_invalid_get;
│ │ │ │ -
42tds_func_put_info tds_invalid_put_info;
│ │ │ │ -
43tds_func_put_data tds_invalid_put;
│ │ │ │ -
44tds_func_check tds_invalid_check;
│ │ │ │ -
45
│ │ │ │ -
46tds_func_get_info tds_generic_get_info;
│ │ │ │ -
47tds_func_row_len tds_generic_row_len;
│ │ │ │ -
48tds_func_get_data tds_generic_get;
│ │ │ │ -
49tds_func_put_info tds_generic_put_info;
│ │ │ │ -
50tds_func_put_data tds_generic_put;
│ │ │ │ -
51tds_func_check tds_generic_check;
│ │ │ │ -
52
│ │ │ │ -
53tds_func_get_info tds_numeric_get_info;
│ │ │ │ -
54tds_func_row_len tds_numeric_row_len;
│ │ │ │ -
55tds_func_get_data tds_numeric_get;
│ │ │ │ -
56tds_func_put_info tds_numeric_put_info;
│ │ │ │ -
57tds_func_put_data tds_numeric_put;
│ │ │ │ -
58tds_func_check tds_numeric_check;
│ │ │ │ -
59
│ │ │ │ -
60#define tds_variant_get_info tds_generic_get_info
│ │ │ │ -
61#define tds_variant_row_len tds_generic_row_len
│ │ │ │ -
62tds_func_get_data tds_variant_get;
│ │ │ │ -
63tds_func_put_info tds_variant_put_info;
│ │ │ │ -
64tds_func_put_data tds_variant_put;
│ │ │ │ -
65tds_func_check tds_variant_check;
│ │ │ │ -
66
│ │ │ │ -
67tds_func_get_info tds_msdatetime_get_info;
│ │ │ │ -
68tds_func_row_len tds_msdatetime_row_len;
│ │ │ │ -
69tds_func_get_data tds_msdatetime_get;
│ │ │ │ -
70tds_func_put_info tds_msdatetime_put_info;
│ │ │ │ -
71tds_func_put_data tds_msdatetime_put;
│ │ │ │ -
72tds_func_check tds_msdatetime_check;
│ │ │ │ -
73
│ │ │ │ -
74tds_func_get_info tds_clrudt_get_info;
│ │ │ │ -
75tds_func_row_len tds_clrudt_row_len;
│ │ │ │ -
76#define tds_clrudt_get tds_generic_get
│ │ │ │ -
77tds_func_put_info tds_clrudt_put_info;
│ │ │ │ -
78#define tds_clrudt_put tds_generic_put
│ │ │ │ -
79tds_func_check tds_clrudt_check;
│ │ │ │ -
80
│ │ │ │ -
81tds_func_get_info tds_sybbigtime_get_info;
│ │ │ │ -
82tds_func_row_len tds_sybbigtime_row_len;
│ │ │ │ -
83tds_func_get_data tds_sybbigtime_get;
│ │ │ │ -
84tds_func_put_info tds_sybbigtime_put_info;
│ │ │ │ -
85tds_func_put_data tds_sybbigtime_put;
│ │ │ │ -
86tds_func_check tds_sybbigtime_check;
│ │ │ │ -
87
│ │ │ │ -
92#ifndef TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
│ │ │ │ -
93# define TDS_DEFINE_DEFAULT_FUNCS(name) \
│ │ │ │ -
94 const TDSCOLUMNFUNCS tds_ ## name ## _funcs = TDS_COMMON_FUNCS(name)
│ │ │ │ -
95
│ │ │ │ -
96TDS_DEFINE_DEFAULT_FUNCS(invalid);
│ │ │ │ -
97TDS_DEFINE_DEFAULT_FUNCS(generic);
│ │ │ │ -
98TDS_DEFINE_DEFAULT_FUNCS(numeric);
│ │ │ │ -
99TDS_DEFINE_DEFAULT_FUNCS(variant);
│ │ │ │ -
100TDS_DEFINE_DEFAULT_FUNCS(msdatetime);
│ │ │ │ -
101TDS_DEFINE_DEFAULT_FUNCS(clrudt);
│ │ │ │ -
102TDS_DEFINE_DEFAULT_FUNCS(sybbigtime);
│ │ │ │ -
103#endif
│ │ │ │ -
104
│ │ │ │ -
105#include <freetds/popvis.h>
│ │ │ │ -
106
│ │ │ │ -
107#endif
│ │ │ │ +Go to the documentation of this file.
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ +
3 * Copyright (C) 2010, 2011 Frediano Ziglio
│ │ │ │ +
4 *
│ │ │ │ +
5 * This library is free software; you can redistribute it and/or
│ │ │ │ +
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
7 * License as published by the Free Software Foundation; either
│ │ │ │ +
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
9 *
│ │ │ │ +
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
13 * Library General Public License for more details.
│ │ │ │ +
14 *
│ │ │ │ +
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
16 * License along with this library; if not, write to the
│ │ │ │ +
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
18 * Boston, MA 02111-1307, USA.
│ │ │ │ +
19 */
│ │ │ │ +
20
│ │ │ │ +
21#ifndef _tds_h_
│ │ │ │ +
22#define _tds_h_
│ │ │ │ +
23
│ │ │ │ +
24#ifndef _freetds_config_h_
│ │ │ │ +
25#error should include config.h before
│ │ │ │ +
26#endif
│ │ │ │ +
27
│ │ │ │ +
28#include <stdarg.h>
│ │ │ │ +
29#include <stdio.h>
│ │ │ │ +
30#include <time.h>
│ │ │ │ +
31
│ │ │ │ +
32#ifdef HAVE_STDDEF_H
│ │ │ │ +
33#include <stddef.h>
│ │ │ │ +
34#endif
│ │ │ │ +
35
│ │ │ │ +
36#if HAVE_NETDB_H
│ │ │ │ +
37#include <netdb.h>
│ │ │ │ +
38#endif /* HAVE_NETDB_H */
│ │ │ │ +
39
│ │ │ │ +
40#if HAVE_NETINET_IN_H
│ │ │ │ +
41#include <netinet/in.h>
│ │ │ │ +
42#endif /* HAVE_NET_INET_IN_H */
│ │ │ │ +
43#if HAVE_ARPA_INET_H
│ │ │ │ +
44#include <arpa/inet.h>
│ │ │ │ +
45#endif /* HAVE_ARPA_INET_H */
│ │ │ │ +
46
│ │ │ │ +
47#if HAVE_SYS_SOCKET_H
│ │ │ │ +
48#include <sys/socket.h>
│ │ │ │ +
49#endif /* HAVE_SYS_SOCKET_H */
│ │ │ │ +
50
│ │ │ │ +
51/* forward declaration */
│ │ │ │ +
52typedef struct tdsiconvinfo TDSICONV;
│ │ │ │ +
53typedef struct tds_connection TDSCONNECTION;
│ │ │ │ +
54typedef struct tds_socket TDSSOCKET;
│ │ │ │ +
55typedef struct tds_column TDSCOLUMN;
│ │ │ │ +
56typedef struct tds_bcpinfo TDSBCPINFO;
│ │ │ │ +
57
│ │ │ │ +
58#include <freetds/version.h>
│ │ │ │ +
59#include <freetds/sysdep_private.h>
│ │ │ │ +
60#include <freetds/thread.h>
│ │ │ │ +
61#include <freetds/bool.h>
│ │ │ │ +
62#include <freetds/macros.h>
│ │ │ │ +
63#include <freetds/utils/string.h>
│ │ │ │ +
64#include <freetds/replacements.h>
│ │ │ │ +
65
│ │ │ │ +
66#include <freetds/pushvis.h>
│ │ │ │ +
67
│ │ │ │ +
68#ifdef __cplusplus
│ │ │ │ +
69extern "C"
│ │ │ │ +
70{
│ │ │ │ +
71#if 0
│ │ │ │ +
72}
│ │ │ │ +
73#endif
│ │ │ │ +
74#endif
│ │ │ │ +
75
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
82{
│ │ │ │ +
83 const char *freetds_version; /* release version of FreeTDS */
│ │ │ │ +
84 const char *sysconfdir; /* location of freetds.conf */
│ │ │ │ +
85 const char *last_update; /* latest software_version date among the modules */
│ │ │ │ +
86 const char *tdsver; /* TDS protocol version (4.2/4.6/5.0/7.0/7.1) 5.0 */
│ │ │ │ +
87 bool msdblib; /* for MS style dblib */
│ │ │ │ +
88 bool sybase_compat; /* enable increased Open Client binary compatibility */
│ │ │ │ +
89 bool threadsafe; /* compile for thread safety default=no */
│ │ │ │ +
90 bool libiconv; /* search for libiconv in DIR/include and DIR/lib */
│ │ │ │ +
91 bool iodbc; /* build odbc driver against iODBC in DIR */
│ │ │ │ +
92 bool unixodbc; /* build odbc driver against unixODBC in DIR */
│ │ │ │ +
93 bool openssl; /* build against OpenSSL */
│ │ │ │ +
94 bool gnutls; /* build against GnuTLS */
│ │ │ │ +
95 bool mars; /* MARS enabled */
│ │ │ │ +
96 bool sspi; /* SSPI enabled */
│ │ │ │ +
97 bool kerberos; /* Kerberos enabled */
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
99
│ │ │ │ +
115/*
│ │ │ │ +
116 * All references to data that touch the wire should use the following typedefs.
│ │ │ │ +
117 *
│ │ │ │ +
118 * If you have problems on 64-bit machines and the code is
│ │ │ │ +
119 * using a native datatype, please change it to use
│ │ │ │ +
120 * these. (In the TDS layer only, the API layers have their
│ │ │ │ +
121 * own typedefs which equate to these).
│ │ │ │ +
122 */
│ │ │ │ +
123typedef char TDS_CHAR; /* 8-bit char */
│ │ │ │ +
124typedef uint8_t TDS_UCHAR; /* 8-bit uchar */
│ │ │ │ +
125typedef uint8_t TDS_TINYINT; /* 8-bit unsigned */
│ │ │ │ +
126typedef int16_t TDS_SMALLINT; /* 16-bit int */
│ │ │ │ +
127typedef uint16_t TDS_USMALLINT; /* 16-bit unsigned */
│ │ │ │ +
128typedef int32_t TDS_INT; /* 32-bit int */
│ │ │ │ +
129typedef uint32_t TDS_UINT; /* 32-bit unsigned */
│ │ │ │ +
130typedef int64_t TDS_INT8; /* 64-bit integer */
│ │ │ │ +
131typedef uint64_t TDS_UINT8; /* 64-bit unsigned */
│ │ │ │ +
132typedef intptr_t TDS_INTPTR;
│ │ │ │ +
133typedef uintptr_t TDS_UINTPTR;
│ │ │ │ +
134typedef tds_sysdep_real32_type TDS_REAL; /* 32-bit real */
│ │ │ │ +
135typedef tds_sysdep_real64_type TDS_FLOAT; /* 64-bit real */
│ │ │ │ +
136
│ │ │ │ +
137#include <freetds/proto.h>
│ │ │ │ +
138
│ │ │ │ +
139#define TDS_INVALID_TYPE ((TDS_SERVER_TYPE) 0)
│ │ │ │ +
140
│ │ │ │ +
│ │ │ │ +
145typedef struct
│ │ │ │ +
146{
│ │ │ │ +
147 TDS_UINT8 time;
│ │ │ │ +
148 TDS_INT date;
│ │ │ │ +
149 TDS_SMALLINT offset;
│ │ │ │ +
150 TDS_USMALLINT time_prec:3;
│ │ │ │ +
151 TDS_USMALLINT _tds_reserved:10;
│ │ │ │ +
152 TDS_USMALLINT has_time:1;
│ │ │ │ +
153 TDS_USMALLINT has_date:1;
│ │ │ │ +
154 TDS_USMALLINT has_offset:1;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
156
│ │ │ │ +
│ │ │ │ +
158typedef struct tdsdaterec
│ │ │ │ +
159{
│ │ │ │ +
160 TDS_INT year;
│ │ │ │ +
161 TDS_INT quarter;
│ │ │ │ +
162 TDS_INT month;
│ │ │ │ +
163 TDS_INT day;
│ │ │ │ +
164 TDS_INT dayofyear;
│ │ │ │ +
165 TDS_INT weekday;
│ │ │ │ +
166 TDS_INT hour;
│ │ │ │ +
167 TDS_INT minute;
│ │ │ │ +
168 TDS_INT second;
│ │ │ │ + │ │ │ │ +
170 TDS_INT timezone;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
172
│ │ │ │ +
178extern const int tds_numeric_bytes_per_prec[];
│ │ │ │ +
179
│ │ │ │ +
180typedef int TDSRET;
│ │ │ │ +
181#define TDS_NO_MORE_RESULTS ((TDSRET)1)
│ │ │ │ +
182#define TDS_SUCCESS ((TDSRET)0)
│ │ │ │ +
183#define TDS_FAIL ((TDSRET)-1)
│ │ │ │ +
184#define TDS_CANCELLED ((TDSRET)-2)
│ │ │ │ +
185#define TDS_FAILED(rc) ((rc)<0)
│ │ │ │ +
186#define TDS_SUCCEED(rc) ((rc)>=0)
│ │ │ │ +
187#define TDS_PROPAGATE(rc) \
│ │ │ │ +
188 do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } while(0)
│ │ │ │ +
189
│ │ │ │ +
190#define TDS_INT_CONTINUE 1
│ │ │ │ +
191#define TDS_INT_CANCEL 2
│ │ │ │ +
192#define TDS_INT_TIMEOUT 3
│ │ │ │ +
193
│ │ │ │ +
194
│ │ │ │ +
195#define TDS_NO_COUNT -1
│ │ │ │ +
196
│ │ │ │ +
197#define TDS_ROW_RESULT 4040
│ │ │ │ +
198#define TDS_PARAM_RESULT 4042
│ │ │ │ +
199#define TDS_STATUS_RESULT 4043
│ │ │ │ +
200#define TDS_MSG_RESULT 4044
│ │ │ │ +
201#define TDS_COMPUTE_RESULT 4045
│ │ │ │ +
202#define TDS_CMD_DONE 4046
│ │ │ │ +
203#define TDS_CMD_SUCCEED 4047
│ │ │ │ +
204#define TDS_CMD_FAIL 4048
│ │ │ │ +
205#define TDS_ROWFMT_RESULT 4049
│ │ │ │ +
206#define TDS_COMPUTEFMT_RESULT 4050
│ │ │ │ +
207#define TDS_DESCRIBE_RESULT 4051
│ │ │ │ +
208#define TDS_DONE_RESULT 4052
│ │ │ │ +
209#define TDS_DONEPROC_RESULT 4053
│ │ │ │ +
210#define TDS_DONEINPROC_RESULT 4054
│ │ │ │ +
211#define TDS_OTHERS_RESULT 4055
│ │ │ │ +
212
│ │ │ │ +
213enum tds_token_results
│ │ │ │ +
214{
│ │ │ │ +
215 TDS_TOKEN_RES_OTHERS,
│ │ │ │ +
216 TDS_TOKEN_RES_ROWFMT,
│ │ │ │ +
217 TDS_TOKEN_RES_COMPUTEFMT,
│ │ │ │ +
218 TDS_TOKEN_RES_PARAMFMT,
│ │ │ │ +
219 TDS_TOKEN_RES_DONE,
│ │ │ │ +
220 TDS_TOKEN_RES_ROW,
│ │ │ │ +
221 TDS_TOKEN_RES_COMPUTE,
│ │ │ │ +
222 TDS_TOKEN_RES_PROC,
│ │ │ │ +
223 TDS_TOKEN_RES_MSG,
│ │ │ │ +
224 TDS_TOKEN_RES_ENV,
│ │ │ │ +
225};
│ │ │ │ +
226
│ │ │ │ +
227#define TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << (TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2))
│ │ │ │ +
228
│ │ │ │ +
229enum tds_token_flags
│ │ │ │ +
230{
│ │ │ │ +
231 TDS_HANDLE_ALL = 0,
│ │ │ │ +
232 TDS_TOKEN_FLAG(OTHERS),
│ │ │ │ +
233 TDS_TOKEN_FLAG(ROWFMT),
│ │ │ │ +
234 TDS_TOKEN_FLAG(COMPUTEFMT),
│ │ │ │ +
235 TDS_TOKEN_FLAG(PARAMFMT),
│ │ │ │ +
236 TDS_TOKEN_FLAG(DONE),
│ │ │ │ +
237 TDS_TOKEN_FLAG(ROW),
│ │ │ │ +
238 TDS_TOKEN_FLAG(COMPUTE),
│ │ │ │ +
239 TDS_TOKEN_FLAG(PROC),
│ │ │ │ +
240 TDS_TOKEN_FLAG(MSG),
│ │ │ │ +
241 TDS_TOKEN_FLAG(ENV),
│ │ │ │ +
242 TDS_TOKEN_RESULTS = TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC,
│ │ │ │ +
243 TDS_TOKEN_TRAILING = TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS
│ │ │ │ +
244};
│ │ │ │ +
245
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
250{
│ │ │ │ +
251 TDS_DONE_FINAL = 0x00
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
258 , TDS_DONE_EVENT = 0x40 /* part of an event notification. */
│ │ │ │ +
259 , TDS_DONE_SRVERROR = 0x100
│ │ │ │ +
261 /* after the above flags, a TDS_DONE packet has a field describing the state of the transaction */
│ │ │ │ +
262 , TDS_DONE_NO_TRAN = 0 /* No transaction in effect */
│ │ │ │ +
263 , TDS_DONE_TRAN_SUCCEED = 1 /* Transaction completed successfully */
│ │ │ │ +
264 , TDS_DONE_TRAN_PROGRESS= 2 /* Transaction in progress */
│ │ │ │ +
265 , TDS_DONE_STMT_ABORT = 3 /* A statement aborted */
│ │ │ │ +
266 , TDS_DONE_TRAN_ABORT = 4 /* Transaction aborted */
│ │ │ │ +
267};
│ │ │ │ +
│ │ │ │ +
268
│ │ │ │ +
269
│ │ │ │ +
270/*
│ │ │ │ +
271 * TDSERRNO is emitted by libtds to the client library's error handler
│ │ │ │ +
272 * (which may in turn call the client's error handler).
│ │ │ │ +
273 * These match the db-lib msgno, because the same values have the same meaning
│ │ │ │ +
274 * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo).
│ │ │ │ +
275 */
│ │ │ │ +
276typedef enum { TDSEOK = TDS_SUCCESS,
│ │ │ │ +
277 TDSEVERDOWN = 100,
│ │ │ │ +
278 TDSEINPROGRESS,
│ │ │ │ +
279 TDSEICONVIU = 2400,
│ │ │ │ +
280 TDSEICONVAVAIL = 2401,
│ │ │ │ +
281 TDSEICONVO = 2402,
│ │ │ │ +
282 TDSEICONVI = 2403,
│ │ │ │ +
283 TDSEICONV2BIG = 2404,
│ │ │ │ +
284 TDSEPORTINSTANCE = 2500,
│ │ │ │ +
285 TDSESYNC = 20001,
│ │ │ │ +
286 TDSEFCON = 20002,
│ │ │ │ +
287 TDSETIME = 20003,
│ │ │ │ +
288 TDSEREAD = 20004,
│ │ │ │ +
289 TDSEWRIT = 20006,
│ │ │ │ +
290 TDSESOCK = 20008,
│ │ │ │ +
291 TDSECONN = 20009,
│ │ │ │ +
292 TDSEMEM = 20010,
│ │ │ │ +
293 TDSEINTF = 20012, /* Server name not found in interface file */
│ │ │ │ +
294 TDSEUHST = 20013, /* Unknown host machine name. */
│ │ │ │ +
295 TDSEPWD = 20014,
│ │ │ │ +
296 TDSESEOF = 20017,
│ │ │ │ +
297 TDSERPND = 20019,
│ │ │ │ +
298 TDSEBTOK = 20020,
│ │ │ │ +
299 TDSEOOB = 20022,
│ │ │ │ +
300 TDSECLOS = 20056,
│ │ │ │ +
301 TDSEUSCT = 20058,
│ │ │ │ +
302 TDSEUTDS = 20146,
│ │ │ │ +
303 TDSEEUNR = 20185,
│ │ │ │ +
304 TDSECAP = 20203,
│ │ │ │ +
305 TDSENEG = 20210,
│ │ │ │ +
306 TDSEUMSG = 20212,
│ │ │ │ +
307 TDSECAPTYP = 20213,
│ │ │ │ +
308 TDSECONF = 20214,
│ │ │ │ +
309 TDSEBPROBADTYP = 20250,
│ │ │ │ +
310 TDSECLOSEIN = 20292
│ │ │ │ +
311} TDSERRNO;
│ │ │ │ +
312
│ │ │ │ +
313
│ │ │ │ +
314enum {
│ │ │ │ +
315 TDS_CUR_ISTAT_UNUSED = 0x00,
│ │ │ │ +
316 TDS_CUR_ISTAT_DECLARED = 0x01,
│ │ │ │ +
317 TDS_CUR_ISTAT_OPEN = 0x02,
│ │ │ │ +
318 TDS_CUR_ISTAT_CLOSED = 0x04,
│ │ │ │ +
319 TDS_CUR_ISTAT_RDONLY = 0x08,
│ │ │ │ +
320 TDS_CUR_ISTAT_UPDATABLE = 0x10,
│ │ │ │ +
321 TDS_CUR_ISTAT_ROWCNT = 0x20,
│ │ │ │ +
322 TDS_CUR_ISTAT_DEALLOC = 0x40
│ │ │ │ +
323};
│ │ │ │ +
324
│ │ │ │ +
325/* string types */
│ │ │ │ +
326#define TDS_NULLTERM -9
│ │ │ │ +
327
│ │ │ │ +
328
│ │ │ │ +
│ │ │ │ +
329typedef union tds_option_arg
│ │ │ │ +
330{
│ │ │ │ +
331 TDS_TINYINT ti;
│ │ │ │ +
332 TDS_INT i;
│ │ │ │ +
333 TDS_CHAR *c;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
335
│ │ │ │ +
336
│ │ │ │ +
337typedef enum tds_encryption_level {
│ │ │ │ +
338 TDS_ENCRYPTION_DEFAULT,
│ │ │ │ +
339 TDS_ENCRYPTION_OFF,
│ │ │ │ +
340 TDS_ENCRYPTION_REQUEST,
│ │ │ │ +
341 TDS_ENCRYPTION_REQUIRE
│ │ │ │ +
342} TDS_ENCRYPTION_LEVEL;
│ │ │ │ +
343
│ │ │ │ +
344/*
│ │ │ │ +
345 * TODO use system macros for optimization
│ │ │ │ +
346 * See mcrypt for reference and linux kernel source for optimization
│ │ │ │ +
347 * check if unaligned access and use fast write/read when implemented
│ │ │ │ +
348 */
│ │ │ │ +
349#define TDS_BYTE_SWAP16(value) \
│ │ │ │ +
350 (((((uint16_t)value)<<8) & 0xFF00u) | \
│ │ │ │ +
351 ((((uint16_t)value)>>8) & 0x00FFu))
│ │ │ │ +
352
│ │ │ │ +
353#define TDS_BYTE_SWAP32(value) \
│ │ │ │ +
354 (((((uint32_t)value)<<24) & 0xFF000000u)| \
│ │ │ │ +
355 ((((uint32_t)value)<< 8) & 0x00FF0000u)| \
│ │ │ │ +
356 ((((uint32_t)value)>> 8) & 0x0000FF00u)| \
│ │ │ │ +
357 ((((uint32_t)value)>>24) & 0x000000FFu))
│ │ │ │ +
358
│ │ │ │ +
359#define is_end_token(x) ((x) >= TDS_DONE_TOKEN && (x) <= TDS_DONEINPROC_TOKEN)
│ │ │ │ +
360
│ │ │ │ +
361enum {
│ │ │ │ +
362 TDS_TYPEFLAG_INVALID = 0,
│ │ │ │ +
363 TDS_TYPEFLAG_NULLABLE = 1,
│ │ │ │ +
364 TDS_TYPEFLAG_FIXED = 2,
│ │ │ │ +
365 TDS_TYPEFLAG_VARIABLE = 4,
│ │ │ │ +
366 TDS_TYPEFLAG_COLLATE = 8,
│ │ │ │ +
367 TDS_TYPEFLAG_ASCII = 16,
│ │ │ │ +
368 TDS_TYPEFLAG_UNICODE = 32,
│ │ │ │ +
369 TDS_TYPEFLAG_BINARY = 64,
│ │ │ │ +
370 TDS_TYPEFLAG_DATETIME = 128,
│ │ │ │ +
371 TDS_TYPEFLAG_NUMERIC = 256,
│ │ │ │ +
372 TDS_TYPEFLAG_VARIANT = 512,
│ │ │ │ +
373};
│ │ │ │ +
374
│ │ │ │ +
375extern const uint16_t tds_type_flags_ms[256];
│ │ │ │ +
376#if 0
│ │ │ │ +
377extern const uint16_t tds_type_flags_syb[256];
│ │ │ │ +
378extern const char *const tds_type_names[256];
│ │ │ │ +
379#endif
│ │ │ │ +
380
│ │ │ │ +
381#define is_fixed_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0)
│ │ │ │ +
382#define is_nullable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) != 0)
│ │ │ │ +
383#define is_variable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)
│ │ │ │ +
384#define is_variant_inner_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIANT) != 0)
│ │ │ │ +
385
│ │ │ │ +
386
│ │ │ │ +
387#define is_blob_type(x) ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT)
│ │ │ │ +
388#define is_blob_col(x) ((x)->column_varint_size > 2)
│ │ │ │ +
389/* large type means it has a two byte size field */
│ │ │ │ +
390/* define is_large_type(x) (x>128) */
│ │ │ │ +
391#define is_numeric_type(x) ((x)==SYBNUMERIC || (x)==SYBDECIMAL)
│ │ │ │ +
393#define is_datetime_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) != 0)
│ │ │ │ +
394#define is_unicode_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)
│ │ │ │ +
395#define is_collate_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != 0)
│ │ │ │ +
396#define is_ascii_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0)
│ │ │ │ +
397#define is_binary_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != 0)
│ │ │ │ +
398#define is_char_type(x) ((tds_type_flags_ms[x] & (TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0)
│ │ │ │ +
399#define is_similar_type(x, y) (is_char_type(x) && is_char_type(y))
│ │ │ │ +
400static inline
│ │ │ │ +
401bool is_tds_type_valid(int type)
│ │ │ │ +
402{
│ │ │ │ +
403 return (unsigned) type < 256u && tds_type_flags_ms[type] != 0;
│ │ │ │ +
404}
│ │ │ │ +
405
│ │ │ │ +
406
│ │ │ │ +
407#define TDS_MAX_CAPABILITY 32
│ │ │ │ +
408#define MAXPRECISION 77
│ │ │ │ +
409#define TDS_MAX_CONN 4096
│ │ │ │ +
410#define TDS_MAX_DYNID_LEN 30
│ │ │ │ +
411
│ │ │ │ +
412/* defaults to use if no others are found */
│ │ │ │ +
413#define TDS_DEF_SERVER "SYBASE"
│ │ │ │ +
414#define TDS_DEF_BLKSZ 512
│ │ │ │ +
415#define TDS_DEF_CHARSET "iso_1"
│ │ │ │ +
416#define TDS_DEF_LANG "us_english"
│ │ │ │ +
417#if TDS50
│ │ │ │ +
418#define TDS_DEFAULT_VERSION 0x500
│ │ │ │ +
419#define TDS_DEF_PORT 4000
│ │ │ │ +
420#elif TDS71
│ │ │ │ +
421#define TDS_DEFAULT_VERSION 0x701
│ │ │ │ +
422#define TDS_DEF_PORT 1433
│ │ │ │ +
423#elif TDS72
│ │ │ │ +
424#define TDS_DEFAULT_VERSION 0x702
│ │ │ │ +
425#define TDS_DEF_PORT 1433
│ │ │ │ +
426#elif TDS73
│ │ │ │ +
427#define TDS_DEFAULT_VERSION 0x703
│ │ │ │ +
428#define TDS_DEF_PORT 1433
│ │ │ │ +
429#elif TDS74
│ │ │ │ +
430#define TDS_DEFAULT_VERSION 0x704
│ │ │ │ +
431#define TDS_DEF_PORT 1433
│ │ │ │ +
432#else
│ │ │ │ +
433#define TDS_DEFAULT_VERSION 0x000
│ │ │ │ +
434#define TDS_DEF_PORT 1433
│ │ │ │ +
435#endif
│ │ │ │ +
436
│ │ │ │ +
437/* normalized strings from freetds.conf file */
│ │ │ │ +
438#define TDS_STR_VERSION "tds version"
│ │ │ │ +
439#define TDS_STR_BLKSZ "initial block size"
│ │ │ │ +
440#define TDS_STR_SWAPDT "swap broken dates"
│ │ │ │ +
441#define TDS_STR_DUMPFILE "dump file"
│ │ │ │ +
442#define TDS_STR_DEBUGLVL "debug level"
│ │ │ │ +
443#define TDS_STR_DEBUGFLAGS "debug flags"
│ │ │ │ +
444#define TDS_STR_TIMEOUT "timeout"
│ │ │ │ +
445#define TDS_STR_QUERY_TIMEOUT "query timeout"
│ │ │ │ +
446#define TDS_STR_CONNTIMEOUT "connect timeout"
│ │ │ │ +
447#define TDS_STR_HOSTNAME "hostname"
│ │ │ │ +
448#define TDS_STR_HOST "host"
│ │ │ │ +
449#define TDS_STR_PORT "port"
│ │ │ │ +
450#define TDS_STR_TEXTSZ "text size"
│ │ │ │ +
451/* for big endian hosts, obsolete, ignored */
│ │ │ │ +
452#define TDS_STR_EMUL_LE "emulate little endian"
│ │ │ │ +
453#define TDS_STR_CHARSET "charset"
│ │ │ │ +
454#define TDS_STR_CLCHARSET "client charset"
│ │ │ │ +
455#define TDS_STR_USE_UTF_16 "use utf-16"
│ │ │ │ +
456#define TDS_STR_LANGUAGE "language"
│ │ │ │ +
457#define TDS_STR_APPENDMODE "dump file append"
│ │ │ │ +
458#define TDS_STR_DATEFMT "date format"
│ │ │ │ +
459#define TDS_STR_INSTANCE "instance"
│ │ │ │ +
460#define TDS_STR_ASA_DATABASE "asa database"
│ │ │ │ +
461#define TDS_STR_DATABASE "database"
│ │ │ │ +
462#define TDS_STR_ENCRYPTION "encryption"
│ │ │ │ +
463#define TDS_STR_USENTLMV2 "use ntlmv2"
│ │ │ │ +
464#define TDS_STR_USELANMAN "use lanman"
│ │ │ │ +
465/* conf values */
│ │ │ │ +
466#define TDS_STR_ENCRYPTION_OFF "off"
│ │ │ │ +
467#define TDS_STR_ENCRYPTION_REQUEST "request"
│ │ │ │ +
468#define TDS_STR_ENCRYPTION_REQUIRE "require"
│ │ │ │ +
469/* Defines to enable optional GSSAPI delegation */
│ │ │ │ +
470#define TDS_GSSAPI_DELEGATION "enable gssapi delegation"
│ │ │ │ +
471/* Mutual authentication */
│ │ │ │ +
472#define TDS_STR_MUTUAL_AUTHENTICATION "mutual authentication"
│ │ │ │ +
473/* Kerberos realm name */
│ │ │ │ +
474#define TDS_STR_REALM "realm"
│ │ │ │ +
475/* Kerberos SPN */
│ │ │ │ +
476#define TDS_STR_SPN "spn"
│ │ │ │ +
477/* CA file */
│ │ │ │ +
478#define TDS_STR_CAFILE "ca file"
│ │ │ │ +
479/* CRL file */
│ │ │ │ +
480#define TDS_STR_CRLFILE "crl file"
│ │ │ │ +
481/* check SSL hostname */
│ │ │ │ +
482#define TDS_STR_CHECKSSLHOSTNAME "check certificate hostname"
│ │ │ │ +
483/* database filename to attach on login (MSSQL) */
│ │ │ │ +
484#define TDS_STR_DBFILENAME "database filename"
│ │ │ │ +
485/* Application Intent MSSQL 2012 support */
│ │ │ │ +
486#define TDS_STR_READONLY_INTENT "read-only intent"
│ │ │ │ +
487/* configurable cipher suite to send to openssl's SSL_set_cipher_list() function */
│ │ │ │ +
488#define TLS_STR_OPENSSL_CIPHERS "openssl ciphers"
│ │ │ │ +
489/* enable old TLS v1, required for instance if you are using a really old Windows XP */
│ │ │ │ +
490#define TDS_STR_ENABLE_TLS_V1 "enable tls v1"
│ │ │ │ +
491
│ │ │ │ +
492
│ │ │ │ +
493/* TODO do a better check for alignment than this */
│ │ │ │ +
│ │ │ │ +
494typedef union
│ │ │ │ +
495{
│ │ │ │ +
496 void *p;
│ │ │ │ +
497 int i;
│ │ │ │ +
498 int64_t ui;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
500
│ │ │ │ +
501#define TDS_ALIGN_SIZE sizeof(tds_align_struct)
│ │ │ │ +
502
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
504{
│ │ │ │ +
505 unsigned char type;
│ │ │ │ +
506 unsigned char len; /* always sizeof(values) */
│ │ │ │ +
507 unsigned char values[TDS_MAX_CAPABILITY/2-2];
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
509
│ │ │ │ +
│ │ │ │ +
510typedef struct tds_capabilities
│ │ │ │ +
511{
│ │ │ │ +
512 TDS_CAPABILITY_TYPE types[2];
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
514
│ │ │ │ +
515#define TDS_MAX_LOGIN_STR_SZ 128
│ │ │ │ +
│ │ │ │ +
516typedef struct tds_login
│ │ │ │ +
517{
│ │ │ │ + │ │ │ │ +
519 int port;
│ │ │ │ +
520 TDS_USMALLINT tds_version;
│ │ │ │ +
521 int block_size;
│ │ │ │ +
522 DSTR language; /* e.g. us-english */
│ │ │ │ + │ │ │ │ +
524 TDS_INT connect_timeout;
│ │ │ │ +
525 DSTR client_host_name;
│ │ │ │ +
526 DSTR server_host_name;
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
532 DSTR openssl_ciphers;
│ │ │ │ +
533 DSTR app_name;
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
538 DSTR library; /* Ct-Library, DB-Library, TDS-Library or ODBC */
│ │ │ │ +
539 TDS_TINYINT encryption_level;
│ │ │ │ +
540
│ │ │ │ +
541 TDS_INT query_timeout;
│ │ │ │ +
542 TDS_CAPABILITIES capabilities;
│ │ │ │ +
543 DSTR client_charset;
│ │ │ │ +
544 DSTR database;
│ │ │ │ +
545
│ │ │ │ +
546 struct addrinfo *ip_addrs;
│ │ │ │ +
547 DSTR instance_name;
│ │ │ │ +
548 DSTR dump_file;
│ │ │ │ +
549 int debug_flags;
│ │ │ │ +
550 int text_size;
│ │ │ │ +
551 DSTR routing_address;
│ │ │ │ +
552 uint16_t routing_port;
│ │ │ │ +
553
│ │ │ │ +
554 unsigned char option_flag2;
│ │ │ │ +
555
│ │ │ │ +
556 unsigned int bulk_copy:1;
│ │ │ │ +
557 unsigned int suppress_language:1;
│ │ │ │ +
558 unsigned int gssapi_use_delegation:1;
│ │ │ │ +
559 unsigned int mutual_authentication:1;
│ │ │ │ +
560 unsigned int use_ntlmv2:1;
│ │ │ │ +
561 unsigned int use_ntlmv2_specified:1;
│ │ │ │ +
562 unsigned int use_lanman:1;
│ │ │ │ +
563 unsigned int mars:1;
│ │ │ │ +
564 unsigned int use_utf16:1;
│ │ │ │ +
565 unsigned int use_new_password:1;
│ │ │ │ +
566 unsigned int valid_configuration:1;
│ │ │ │ +
567 unsigned int check_ssl_hostname:1;
│ │ │ │ +
568 unsigned int readonly_intent:1;
│ │ │ │ +
569 unsigned int enable_tls_v1:1;
│ │ │ │ +
570 unsigned int server_is_valid:1;
│ │ │ │ +
571} TDSLOGIN;
│ │ │ │ +
│ │ │ │ +
572
│ │ │ │ +
│ │ │ │ +
573typedef struct tds_headers
│ │ │ │ +
574{
│ │ │ │ +
575 const char *qn_options;
│ │ │ │ +
576 const char *qn_msgtext;
│ │ │ │ +
577 TDS_INT qn_timeout;
│ │ │ │ +
578 /* TDS 7.4+: trace activity ID char[20] */
│ │ │ │ +
579} TDSHEADERS;
│ │ │ │ +
│ │ │ │ +
580
│ │ │ │ +
│ │ │ │ +
581typedef struct tds_locale
│ │ │ │ +
582{
│ │ │ │ +
583 char *language;
│ │ │ │ +
584 char *server_charset;
│ │ │ │ +
585 char *date_fmt;
│ │ │ │ +
586} TDSLOCALE;
│ │ │ │ +
│ │ │ │ +
587
│ │ │ │ +
│ │ │ │ +
592typedef struct tds_blob
│ │ │ │ +
593{
│ │ │ │ +
594 TDS_CHAR *textvalue;
│ │ │ │ +
595 TDS_CHAR textptr[16];
│ │ │ │ +
596 TDS_CHAR timestamp[8];
│ │ │ │ +
597 unsigned char valid_ptr;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
599
│ │ │ │ +
│ │ │ │ +
603typedef struct tds_variant
│ │ │ │ +
604{
│ │ │ │ +
605 /* this MUST have same position and place of textvalue in tds_blob */
│ │ │ │ +
606 TDS_CHAR *data;
│ │ │ │ +
607 TDS_INT size;
│ │ │ │ +
608 TDS_INT data_len;
│ │ │ │ +
609 TDS_SERVER_TYPE type;
│ │ │ │ +
610 TDS_UCHAR collation[5];
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
612
│ │ │ │ +
│ │ │ │ +
617typedef struct tds_encoding
│ │ │ │ +
618{
│ │ │ │ +
620 const char *name;
│ │ │ │ +
621 unsigned char min_bytes_per_char;
│ │ │ │ +
622 unsigned char max_bytes_per_char;
│ │ │ │ +
624 unsigned char canonic;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
626
│ │ │ │ +
│ │ │ │ +
627typedef struct tds_bcpcoldata
│ │ │ │ +
628{
│ │ │ │ +
629 TDS_UCHAR *data;
│ │ │ │ +
630 TDS_INT datalen;
│ │ │ │ +
631 bool is_null;
│ │ │ │ +
632} BCPCOLDATA;
│ │ │ │ +
│ │ │ │ +
633
│ │ │ │ +
634
│ │ │ │ +
635typedef TDSRET tds_func_get_info(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ +
636typedef TDSRET tds_func_get_data(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ +
637typedef TDS_INT tds_func_row_len(TDSCOLUMN *col);
│ │ │ │ +
638typedef TDSRET tds_func_put_info(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ +
639typedef TDSRET tds_func_put_data(TDSSOCKET *tds, TDSCOLUMN *col, int bcp7);
│ │ │ │ +
640typedef int tds_func_check(const TDSCOLUMN *col);
│ │ │ │ +
641
│ │ │ │ +
│ │ │ │ +
642typedef struct tds_column_funcs
│ │ │ │ +
643{
│ │ │ │ +
644 tds_func_get_info *get_info;
│ │ │ │ +
645 tds_func_get_data *get_data;
│ │ │ │ +
646 tds_func_row_len *row_len;
│ │ │ │ +
652 tds_func_put_info *put_info;
│ │ │ │ +
662 tds_func_put_data *put_data;
│ │ │ │ +
663#if ENABLE_EXTRA_CHECKS
│ │ │ │ +
678 tds_func_check *check;
│ │ │ │ +
679#endif
│ │ │ │ +
680#if 0
│ │ │ │ +
681 TDSRET (*convert)(TDSSOCKET *tds, TDSCOLUMN *col);
│ │ │ │ +
682#endif
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
684
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
689{
│ │ │ │ +
690 const TDSCOLUMNFUNCS *funcs;
│ │ │ │ +
691 TDS_INT column_usertype;
│ │ │ │ +
692 TDS_INT column_flags;
│ │ │ │ +
693
│ │ │ │ +
694 TDS_INT column_size;
│ │ │ │ +
696 TDS_SERVER_TYPE column_type;
│ │ │ │ +
701 TDS_TINYINT column_varint_size;
│ │ │ │ +
703 TDS_TINYINT column_prec;
│ │ │ │ +
704 TDS_TINYINT column_scale;
│ │ │ │ +
706 struct
│ │ │ │ +
707 {
│ │ │ │ +
708 TDS_SERVER_TYPE column_type;
│ │ │ │ +
709 TDS_INT column_size;
│ │ │ │ +
710 } on_server;
│ │ │ │ +
711
│ │ │ │ + │ │ │ │ +
714 DSTR table_name;
│ │ │ │ +
715 DSTR column_name;
│ │ │ │ +
716 DSTR table_column_name;
│ │ │ │ +
717
│ │ │ │ +
718 unsigned char *column_data;
│ │ │ │ +
719 void (*column_data_free)(struct tds_column *column);
│ │ │ │ +
720 unsigned char column_nullable:1;
│ │ │ │ +
721 unsigned char column_writeable:1;
│ │ │ │ +
722 unsigned char column_identity:1;
│ │ │ │ +
723 unsigned char column_key:1;
│ │ │ │ +
724 unsigned char column_hidden:1;
│ │ │ │ +
725 unsigned char column_output:1;
│ │ │ │ +
726 unsigned char column_timestamp:1;
│ │ │ │ +
727 unsigned char column_computed:1;
│ │ │ │ +
728 TDS_UCHAR column_collation[5];
│ │ │ │ +
729
│ │ │ │ +
730 /* additional fields flags for compute results */
│ │ │ │ +
731 TDS_SMALLINT column_operand;
│ │ │ │ +
732 TDS_TINYINT column_operator;
│ │ │ │ +
733
│ │ │ │ +
734 /* FIXME this is data related, not column */
│ │ │ │ + │ │ │ │ +
737
│ │ │ │ +
738 /* related to binding or info stored by client libraries */
│ │ │ │ +
739 /* FIXME find a best place to store these data, some are unused */
│ │ │ │ +
740 TDS_SMALLINT column_bindtype;
│ │ │ │ +
741 TDS_SMALLINT column_bindfmt;
│ │ │ │ +
742 TDS_UINT column_bindlen;
│ │ │ │ +
743 TDS_SMALLINT *column_nullbind;
│ │ │ │ +
744 TDS_CHAR *column_varaddr;
│ │ │ │ +
745 TDS_INT *column_lenbind;
│ │ │ │ +
746 TDS_INT column_textpos;
│ │ │ │ +
747 TDS_INT column_text_sqlgetdatapos;
│ │ │ │ +
748 TDS_CHAR column_text_sqlputdatainfo;
│ │ │ │ +
749 unsigned char column_iconv_left;
│ │ │ │ +
750 char column_iconv_buf[9];
│ │ │ │ +
751
│ │ │ │ +
752 BCPCOLDATA *bcp_column_data;
│ │ │ │ + │ │ │ │ +
762 TDS_INT bcp_term_len;
│ │ │ │ +
763 TDS_CHAR *bcp_terminator;
│ │ │ │ +
764};
│ │ │ │ +
│ │ │ │ +
765
│ │ │ │ +
766
│ │ │ │ +
│ │ │ │ +
768typedef struct tds_result_info
│ │ │ │ +
769{
│ │ │ │ +
770 /* TODO those fields can became a struct */
│ │ │ │ +
771 TDSCOLUMN **columns;
│ │ │ │ +
772 TDS_USMALLINT num_cols;
│ │ │ │ +
773 TDS_USMALLINT computeid;
│ │ │ │ +
774 TDS_INT ref_count;
│ │ │ │ +
775 TDSSOCKET *attached_to;
│ │ │ │ +
776 unsigned char *current_row;
│ │ │ │ +
777 void (*row_free)(struct tds_result_info* result, unsigned char *row);
│ │ │ │ +
778 TDS_INT row_size;
│ │ │ │ +
779
│ │ │ │ +
780 TDS_SMALLINT *bycolumns;
│ │ │ │ +
781 TDS_USMALLINT by_cols;
│ │ │ │ +
782 bool rows_exist;
│ │ │ │ +
783 /* TODO remove ?? used only in dblib */
│ │ │ │ +
784 bool more_results;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
786
│ │ │ │ +
│ │ │ │ +
788typedef enum tds_states
│ │ │ │ +
789{
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
795 TDS_DEAD
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
797
│ │ │ │ +
798typedef enum tds_operations
│ │ │ │ +
799{
│ │ │ │ +
800 TDS_OP_NONE = 0,
│ │ │ │ +
801
│ │ │ │ +
802 /* mssql operations */
│ │ │ │ +
803 TDS_OP_CURSOR = TDS_SP_CURSOR,
│ │ │ │ +
804 TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN,
│ │ │ │ +
805 TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE,
│ │ │ │ +
806 TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE,
│ │ │ │ +
807 TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC,
│ │ │ │ +
808 TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE,
│ │ │ │ +
809 TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH,
│ │ │ │ +
810 TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION,
│ │ │ │ +
811 TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE,
│ │ │ │ +
812 TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL,
│ │ │ │ +
813 TDS_OP_PREPARE = TDS_SP_PREPARE,
│ │ │ │ +
814 TDS_OP_EXECUTE = TDS_SP_EXECUTE,
│ │ │ │ +
815 TDS_OP_PREPEXEC = TDS_SP_PREPEXEC,
│ │ │ │ +
816 TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC,
│ │ │ │ +
817 TDS_OP_UNPREPARE = TDS_SP_UNPREPARE,
│ │ │ │ +
818
│ │ │ │ +
819 /* sybase operations */
│ │ │ │ +
820 TDS_OP_DYN_DEALLOC = 100,
│ │ │ │ +
821} TDS_OPERATION;
│ │ │ │ +
822
│ │ │ │ +
823#define TDS_DBG_LOGIN __FILE__, ((__LINE__ << 4) | 11)
│ │ │ │ +
824#define TDS_DBG_HEADER __FILE__, ((__LINE__ << 4) | 10)
│ │ │ │ +
825#define TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7)
│ │ │ │ +
826#define TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6)
│ │ │ │ +
827#define TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5)
│ │ │ │ +
828#define TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4)
│ │ │ │ +
829#define TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3)
│ │ │ │ +
830#define TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2)
│ │ │ │ +
831#define TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1)
│ │ │ │ +
832
│ │ │ │ +
833#define TDS_DBGFLAG_FUNC 0x80
│ │ │ │ +
834#define TDS_DBGFLAG_INFO2 0x40
│ │ │ │ +
835#define TDS_DBGFLAG_INFO1 0x20
│ │ │ │ +
836#define TDS_DBGFLAG_NETWORK 0x10
│ │ │ │ +
837#define TDS_DBGFLAG_WARN 0x08
│ │ │ │ +
838#define TDS_DBGFLAG_ERROR 0x04
│ │ │ │ +
839#define TDS_DBGFLAG_SEVERE 0x02
│ │ │ │ +
840#define TDS_DBGFLAG_ALL 0xfff
│ │ │ │ +
841#define TDS_DBGFLAG_LOGIN 0x0800
│ │ │ │ +
842#define TDS_DBGFLAG_HEADER 0x0400
│ │ │ │ +
843#define TDS_DBGFLAG_PID 0x1000
│ │ │ │ +
844#define TDS_DBGFLAG_TIME 0x2000
│ │ │ │ +
845#define TDS_DBGFLAG_SOURCE 0x4000
│ │ │ │ +
846#define TDS_DBGFLAG_THREAD 0x8000
│ │ │ │ +
847
│ │ │ │ +
848#if 0
│ │ │ │ +
854enum TDS_DBG_LOG_STATE
│ │ │ │ +
855{
│ │ │ │ +
856 TDS_DBG_LOGIN = (1 << 0)
│ │ │ │ +
858 , TDS_DBG_API = (1 << 1)
│ │ │ │ +
859 , TDS_DBG_ASYNC = (1 << 2)
│ │ │ │ +
860 , TDS_DBG_DIAG = (1 << 3)
│ │ │ │ +
861 , TDS_DBG_error = (1 << 4)
│ │ │ │ +
862 /* TODO: ^^^^^ make upper case when old #defines (above) are removed */
│ │ │ │ +
863 /* Log FreeTDS runtime/logic error occurs. */
│ │ │ │ +
864 , TDS_DBG_PACKET = (1 << 5)
│ │ │ │ +
865 , TDS_DBG_LIBTDS = (1 << 6)
│ │ │ │ +
866 , TDS_DBG_CONFIG = (1 << 7)
│ │ │ │ +
867 , TDS_DBG_DEFAULT = 0xFE
│ │ │ │ +
868};
│ │ │ │ +
869#endif
│ │ │ │ +
870
│ │ │ │ +
871typedef struct tds_result_info TDSCOMPUTEINFO;
│ │ │ │ +
872
│ │ │ │ + │ │ │ │ +
874
│ │ │ │ +
│ │ │ │ +
875typedef struct tds_message
│ │ │ │ +
876{
│ │ │ │ +
877 TDS_CHAR *server;
│ │ │ │ +
878 TDS_CHAR *message;
│ │ │ │ +
879 TDS_CHAR *proc_name;
│ │ │ │ +
880 TDS_CHAR *sql_state;
│ │ │ │ +
881 TDS_INT msgno;
│ │ │ │ +
882 TDS_INT line_number;
│ │ │ │ +
883 /* -1 .. 255 */
│ │ │ │ +
884 TDS_SMALLINT state;
│ │ │ │ +
885 TDS_TINYINT priv_msg_type;
│ │ │ │ +
886 TDS_TINYINT severity;
│ │ │ │ +
887 /* for library-generated errors */
│ │ │ │ +
888 int oserr;
│ │ │ │ +
889} TDSMESSAGE;
│ │ │ │ +
│ │ │ │ +
890
│ │ │ │ +
│ │ │ │ +
891typedef struct tds_upd_col
│ │ │ │ +
892{
│ │ │ │ +
893 struct tds_upd_col *next;
│ │ │ │ +
894 TDS_INT colnamelength;
│ │ │ │ +
895 char * columnname;
│ │ │ │ +
896} TDSUPDCOL;
│ │ │ │ +
│ │ │ │ +
897
│ │ │ │ +
898typedef enum {
│ │ │ │ +
899 TDS_CURSOR_STATE_UNACTIONED = 0 /* initial value */
│ │ │ │ +
900 , TDS_CURSOR_STATE_REQUESTED = 1 /* called by ct_cursor */
│ │ │ │ +
901 , TDS_CURSOR_STATE_SENT = 2 /* sent to server */
│ │ │ │ +
902 , TDS_CURSOR_STATE_ACTIONED = 3 /* acknowledged by server */
│ │ │ │ +
903} TDS_CURSOR_STATE;
│ │ │ │ +
904
│ │ │ │ +
│ │ │ │ +
905typedef struct tds_cursor_status
│ │ │ │ +
906{
│ │ │ │ +
907 TDS_CURSOR_STATE declare;
│ │ │ │ +
908 TDS_CURSOR_STATE cursor_row;
│ │ │ │ +
909 TDS_CURSOR_STATE open;
│ │ │ │ +
910 TDS_CURSOR_STATE fetch;
│ │ │ │ +
911 TDS_CURSOR_STATE close;
│ │ │ │ +
912 TDS_CURSOR_STATE dealloc;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
914
│ │ │ │ +
915typedef enum tds_cursor_operation
│ │ │ │ +
916{
│ │ │ │ +
917 TDS_CURSOR_POSITION = 0,
│ │ │ │ +
918 TDS_CURSOR_UPDATE = 1,
│ │ │ │ +
919 TDS_CURSOR_DELETE = 2,
│ │ │ │ +
920 TDS_CURSOR_INSERT = 4
│ │ │ │ +
921} TDS_CURSOR_OPERATION;
│ │ │ │ +
922
│ │ │ │ +
923typedef enum tds_cursor_fetch
│ │ │ │ +
924{
│ │ │ │ +
925 TDS_CURSOR_FETCH_NEXT = 1,
│ │ │ │ +
926 TDS_CURSOR_FETCH_PREV,
│ │ │ │ +
927 TDS_CURSOR_FETCH_FIRST,
│ │ │ │ +
928 TDS_CURSOR_FETCH_LAST,
│ │ │ │ +
929 TDS_CURSOR_FETCH_ABSOLUTE,
│ │ │ │ +
930 TDS_CURSOR_FETCH_RELATIVE
│ │ │ │ +
931} TDS_CURSOR_FETCH;
│ │ │ │ +
932
│ │ │ │ +
│ │ │ │ +
936typedef struct tds_cursor
│ │ │ │ +
937{
│ │ │ │ +
938 struct tds_cursor *next;
│ │ │ │ +
939 TDS_INT ref_count;
│ │ │ │ + │ │ │ │ +
941 TDS_INT cursor_id;
│ │ │ │ +
942 TDS_TINYINT options;
│ │ │ │ + │ │ │ │ +
947 char *query;
│ │ │ │ +
948 /* TODO for updatable columns */
│ │ │ │ +
949 /* TDS_TINYINT number_upd_cols; */
│ │ │ │ +
950 /* TDSUPDCOL *cur_col_list; */
│ │ │ │ +
951 TDS_INT cursor_rows;
│ │ │ │ +
952 /* TDSPARAMINFO *params; */
│ │ │ │ + │ │ │ │ +
954 TDS_USMALLINT srv_status;
│ │ │ │ +
955 TDSRESULTINFO *res_info;
│ │ │ │ +
956 TDS_INT type, concurrency;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
958
│ │ │ │ +
│ │ │ │ +
962typedef struct tds_env
│ │ │ │ +
963{
│ │ │ │ + │ │ │ │ +
966 char *language;
│ │ │ │ +
968 char *charset;
│ │ │ │ +
970 char *database;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
972
│ │ │ │ +
│ │ │ │ +
976typedef struct tds_dynamic
│ │ │ │ +
977{
│ │ │ │ + │ │ │ │ +
979 TDS_INT ref_count;
│ │ │ │ +
981 TDS_INT num_id;
│ │ │ │ +
987 char id[30];
│ │ │ │ +
993 TDS_TINYINT emulated;
│ │ │ │ + │ │ │ │ +
998 /* int dyn_state; */ /* TODO use it */
│ │ │ │ + │ │ │ │ + │ │ │ │ +
1009 char *query;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
1011
│ │ │ │ +
1012typedef enum {
│ │ │ │ +
1013 TDS_MULTIPLE_QUERY,
│ │ │ │ +
1014 TDS_MULTIPLE_EXECUTE,
│ │ │ │ +
1015 TDS_MULTIPLE_RPC
│ │ │ │ +
1016} TDS_MULTIPLE_TYPE;
│ │ │ │ +
1017
│ │ │ │ +
│ │ │ │ +
1018typedef struct tds_multiple
│ │ │ │ +
1019{
│ │ │ │ +
1020 TDS_MULTIPLE_TYPE type;
│ │ │ │ +
1021 unsigned int flags;
│ │ │ │ +
1022} TDSMULTIPLE;
│ │ │ │ +
│ │ │ │ +
1023
│ │ │ │ +
1024/* forward declaration */
│ │ │ │ +
1025typedef struct tds_context TDSCONTEXT;
│ │ │ │ +
1026typedef int (*err_handler_t) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
│ │ │ │ +
1027
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
1029{
│ │ │ │ +
1030 TDSLOCALE *locale;
│ │ │ │ +
1031 void *parent;
│ │ │ │ +
1032 /* handlers */
│ │ │ │ +
1033 int (*msg_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
│ │ │ │ +
1034 int (*err_handler) (const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *);
│ │ │ │ +
1035 int (*int_handler) (void *);
│ │ │ │ +
1036 bool money_use_2_digits;
│ │ │ │ +
1037};
│ │ │ │ +
│ │ │ │ +
1038
│ │ │ │ +
1039enum TDS_ICONV_ENTRY
│ │ │ │ +
1040{
│ │ │ │ +
1041 client2ucs2
│ │ │ │ +
1042 , client2server_chardata
│ │ │ │ +
1043 , initial_char_conv_count /* keep last */
│ │ │ │ +
1044};
│ │ │ │ +
1045
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
1047{
│ │ │ │ +
1048 uint8_t *packet;
│ │ │ │ +
1049 int packet_len;
│ │ │ │ +
1050 /* TDS_MSG_TOKEN type, for TDS5 */
│ │ │ │ +
1051 uint16_t msg_type;
│ │ │ │ +
1052 TDSRET (*free)(TDSCONNECTION* conn, struct tds_authentication * auth);
│ │ │ │ +
1053 TDSRET (*handle_next)(TDSSOCKET * tds, struct tds_authentication * auth, size_t len);
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
1055
│ │ │ │ +
│ │ │ │ +
1056typedef struct tds_packet
│ │ │ │ +
1057{
│ │ │ │ +
1058 struct tds_packet *next;
│ │ │ │ +
1059 uint16_t sid;
│ │ │ │ +
1060
│ │ │ │ +
1061#if ENABLE_ODBC_MARS
│ │ │ │ +
1065 uint8_t data_start;
│ │ │ │ +
1066#endif
│ │ │ │ +
1067
│ │ │ │ +
1071 unsigned data_len;
│ │ │ │ +
1072 unsigned capacity;
│ │ │ │ +
1073 unsigned char buf[1];
│ │ │ │ +
1074} TDSPACKET;
│ │ │ │ +
│ │ │ │ +
1075
│ │ │ │ +
1076#if ENABLE_ODBC_MARS
│ │ │ │ +
1077#define tds_packet_zero_data_start(pkt) do { (pkt)->data_start = 0; } while(0)
│ │ │ │ +
1078#define tds_packet_get_data_start(pkt) ((pkt)->data_start)
│ │ │ │ +
1079#else
│ │ │ │ +
1080#define tds_packet_zero_data_start(pkt) do { } while(0)
│ │ │ │ +
1081#define tds_packet_get_data_start(pkt) 0
│ │ │ │ +
1082#endif
│ │ │ │ +
1083
│ │ │ │ +
│ │ │ │ +
1084typedef struct tds_poll_wakeup
│ │ │ │ +
1085{
│ │ │ │ +
1086 TDS_SYS_SOCKET s_signal, s_signaled;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
1088
│ │ │ │ +
1089/* field related to connection */
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
1091{
│ │ │ │ +
1092 TDS_USMALLINT tds_version;
│ │ │ │ + │ │ │ │ +
1094 char *product_name;
│ │ │ │ +
1095
│ │ │ │ +
1096 TDS_SYS_SOCKET s;
│ │ │ │ +
1097 TDSPOLLWAKEUP wakeup;
│ │ │ │ +
1098 const TDSCONTEXT *tds_ctx;
│ │ │ │ +
1099
│ │ │ │ + │ │ │ │ +
1102
│ │ │ │ + │ │ │ │ + │ │ │ │ +
1113
│ │ │ │ +
1114 int char_conv_count;
│ │ │ │ +
1115 TDSICONV **char_convs;
│ │ │ │ +
1116
│ │ │ │ +
1117 TDS_UCHAR collation[5];
│ │ │ │ +
1118 TDS_UCHAR tds72_transaction[8];
│ │ │ │ +
1119
│ │ │ │ +
1120 TDS_CAPABILITIES capabilities;
│ │ │ │ +
1121 unsigned int use_iconv:1;
│ │ │ │ +
1122 unsigned int tds71rev1:1;
│ │ │ │ +
1123 unsigned int pending_close:1;
│ │ │ │ +
1124 unsigned int encrypt_single_packet:1;
│ │ │ │ +
1125#if ENABLE_ODBC_MARS
│ │ │ │ +
1126 unsigned int mars:1;
│ │ │ │ +
1127
│ │ │ │ +
1128 TDSSOCKET *in_net_tds;
│ │ │ │ +
1129 TDSPACKET *packets;
│ │ │ │ +
1130 TDSPACKET *recv_packet;
│ │ │ │ +
1131 TDSPACKET *send_packets;
│ │ │ │ +
1132 unsigned send_pos, recv_pos;
│ │ │ │ +
1133
│ │ │ │ +
1134#define BUSY_SOCKET ((TDSSOCKET*)(TDS_UINTPTR)1)
│ │ │ │ +
1135#define TDSSOCKET_VALID(tds) (((TDS_UINTPTR)(tds)) > 1)
│ │ │ │ +
1136 struct tds_socket **sessions;
│ │ │ │ +
1137 unsigned num_sessions;
│ │ │ │ +
1138#endif
│ │ │ │ +
1139 tds_mutex list_mtx;
│ │ │ │ +
1140
│ │ │ │ +
1141 unsigned num_cached_packets;
│ │ │ │ +
1142 TDSPACKET *packet_cache;
│ │ │ │ +
1143
│ │ │ │ +
1144 int spid;
│ │ │ │ +
1145 int client_spid;
│ │ │ │ +
1146
│ │ │ │ +
1147 void *tls_session;
│ │ │ │ +
1148#if defined(HAVE_GNUTLS)
│ │ │ │ +
1149 void *tls_credentials;
│ │ │ │ +
1150#elif defined(HAVE_OPENSSL)
│ │ │ │ +
1151 void *tls_ctx;
│ │ │ │ +
1152#else
│ │ │ │ +
1153 void *tls_dummy;
│ │ │ │ +
1154#endif
│ │ │ │ +
1155 TDSAUTHENTICATION *authentication;
│ │ │ │ +
1156 char *server;
│ │ │ │ +
1157};
│ │ │ │ +
│ │ │ │ +
1158
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
1163{
│ │ │ │ +
1164#if ENABLE_ODBC_MARS
│ │ │ │ +
1165 TDSCONNECTION *conn;
│ │ │ │ +
1166#else
│ │ │ │ +
1167 TDSCONNECTION conn[1];
│ │ │ │ +
1168#endif
│ │ │ │ +
1169
│ │ │ │ +
1170 void *parent;
│ │ │ │ +
1171
│ │ │ │ +
1177 unsigned char *in_buf;
│ │ │ │ +
1178
│ │ │ │ +
1185 unsigned char *out_buf;
│ │ │ │ +
1186
│ │ │ │ +
1191 unsigned int out_buf_max;
│ │ │ │ +
1192 unsigned in_pos;
│ │ │ │ +
1193 unsigned out_pos;
│ │ │ │ +
1194 unsigned in_len;
│ │ │ │ +
1195 unsigned char in_flag;
│ │ │ │ +
1196 unsigned char out_flag;
│ │ │ │ +
1198 unsigned frozen;
│ │ │ │ + │ │ │ │ +
1204
│ │ │ │ +
1205#if ENABLE_ODBC_MARS
│ │ │ │ +
1210 uint16_t sid;
│ │ │ │ +
1211
│ │ │ │ +
1216 tds_condition packet_cond;
│ │ │ │ +
1217
│ │ │ │ +
1222 TDSPACKET *sending_packet;
│ │ │ │ +
1223 TDS_UINT recv_seq;
│ │ │ │ +
1224 TDS_UINT send_seq;
│ │ │ │ +
1225 TDS_UINT recv_wnd;
│ │ │ │ +
1226 TDS_UINT send_wnd;
│ │ │ │ +
1227#endif
│ │ │ │ +
1228 /* packet we received */
│ │ │ │ +
1229 TDSPACKET *recv_packet;
│ │ │ │ + │ │ │ │ +
1232
│ │ │ │ + │ │ │ │ +
1239 TDSRESULTINFO *res_info;
│ │ │ │ +
1240 TDS_UINT num_comp_info;
│ │ │ │ +
1241 TDSCOMPUTEINFO **comp_info;
│ │ │ │ +
1242 TDSPARAMINFO *param_info;
│ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ +
1246 bool in_row;
│ │ │ │ +
1247 volatile
│ │ │ │ +
1248 unsigned char in_cancel;
│ │ │ │ +
1250 TDS_INT ret_status;
│ │ │ │ +
1251 TDS_STATE state;
│ │ │ │ +
1252
│ │ │ │ +
1253 TDS_INT query_timeout;
│ │ │ │ +
1254 TDS_INT8 rows_affected;
│ │ │ │ + │ │ │ │ + │ │ │ │ +
1260 void (*env_chg_func) (TDSSOCKET * tds, int type, char *oldval, char *newval);
│ │ │ │ +
1261 TDS_OPERATION current_op;
│ │ │ │ +
1262
│ │ │ │ +
1263 int option_value;
│ │ │ │ +
1264 tds_mutex wire_mtx;
│ │ │ │ +
1265};
│ │ │ │ +
│ │ │ │ +
1266
│ │ │ │ +
1267#define tds_get_ctx(tds) ((tds)->conn->tds_ctx)
│ │ │ │ +
1268#define tds_set_ctx(tds, val) do { ((tds)->conn->tds_ctx) = (val); } while(0)
│ │ │ │ +
1269#define tds_get_parent(tds) ((tds)->parent)
│ │ │ │ +
1270#define tds_set_parent(tds, val) do { ((tds)->parent) = (val); } while(0)
│ │ │ │ +
1271#define tds_get_s(tds) ((tds)->conn->s)
│ │ │ │ +
1272#define tds_set_s(tds, val) do { ((tds)->conn->s) = (val); } while(0)
│ │ │ │ +
1273
│ │ │ │ +
1274
│ │ │ │ +
1275/* config.c */
│ │ │ │ + │ │ │ │ +
1277typedef void (*TDSCONFPARSE) (const char *option, const char *value, void *param);
│ │ │ │ +
1278bool tds_read_conf_section(FILE * in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param);
│ │ │ │ +
1279bool tds_read_conf_file(TDSLOGIN * login, const char *server);
│ │ │ │ +
1280void tds_parse_conf_section(const char *option, const char *value, void *param);
│ │ │ │ +
1281TDSLOGIN *tds_read_config_info(TDSSOCKET * tds, TDSLOGIN * login, TDSLOCALE * locale);
│ │ │ │ +
1282void tds_fix_login(TDSLOGIN* login);
│ │ │ │ +
1283TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN* login);
│ │ │ │ +
1284struct addrinfo *tds_lookup_host(const char *servername);
│ │ │ │ +
1285TDSRET tds_lookup_host_set(const char *servername, struct addrinfo **addr);
│ │ │ │ +
1286const char *tds_addrinfo2str(struct addrinfo *addr, char *name, int namemax);
│ │ │ │ +
1287char *tds_get_home_file(const char *file);
│ │ │ │ +
1288
│ │ │ │ +
1289TDSRET tds_set_interfaces_file_loc(const char *interfloc);
│ │ │ │ +
1290extern const char STD_DATETIME_FMT[];
│ │ │ │ +
1291int tds_parse_boolean(const char *value, int default_value);
│ │ │ │ +
1292int tds_config_boolean(const char *option, const char *value, TDSLOGIN * login);
│ │ │ │ +
1293
│ │ │ │ + │ │ │ │ +
1295TDSRET tds_alloc_row(TDSRESULTINFO * res_info);
│ │ │ │ +
1296TDSRET tds_alloc_compute_row(TDSCOMPUTEINFO * res_info);
│ │ │ │ +
1297BCPCOLDATA * tds_alloc_bcp_column_data(unsigned int column_size);
│ │ │ │ +
1298TDSDYNAMIC *tds_lookup_dynamic(TDSCONNECTION * conn, const char *id);
│ │ │ │ +
1299/*@observer@*/ const char *tds_prtype(int token);
│ │ │ │ +
1300int tds_get_varint_size(TDSCONNECTION * conn, int datatype);
│ │ │ │ +
1301TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int usertype);
│ │ │ │ +
1302
│ │ │ │ +
1303
│ │ │ │ +
1304/* iconv.c */
│ │ │ │ +
1305TDSRET tds_iconv_open(TDSCONNECTION * conn, const char *charset, int use_utf16);
│ │ │ │ +
1306void tds_iconv_close(TDSCONNECTION * conn);
│ │ │ │ +
1307void tds_srv_charset_changed(TDSCONNECTION * conn, const char *charset);
│ │ │ │ +
1308void tds7_srv_charset_changed(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
│ │ │ │ +
1309int tds_iconv_alloc(TDSCONNECTION * conn);
│ │ │ │ +
1310void tds_iconv_free(TDSCONNECTION * conn);
│ │ │ │ +
1311TDSICONV *tds_iconv_from_collate(TDSCONNECTION * conn, TDS_UCHAR collate[5]);
│ │ │ │ +
1312
│ │ │ │ +
1313
│ │ │ │ +
1314/* mem.c */
│ │ │ │ +
1315void tds_free_socket(TDSSOCKET * tds);
│ │ │ │ +
1316void tds_free_all_results(TDSSOCKET * tds);
│ │ │ │ +
1317void tds_free_results(TDSRESULTINFO * res_info);
│ │ │ │ +
1318void tds_free_param_results(TDSPARAMINFO * param_info);
│ │ │ │ +
1319void tds_free_param_result(TDSPARAMINFO * param_info);
│ │ │ │ +
1320void tds_free_msg(TDSMESSAGE * message);
│ │ │ │ +
1321void tds_cursor_deallocated(TDSCONNECTION *conn, TDSCURSOR *cursor);
│ │ │ │ +
1322void tds_release_cursor(TDSCURSOR **pcursor);
│ │ │ │ +
1323void tds_free_bcp_column_data(BCPCOLDATA * coldata);
│ │ │ │ +
1324TDSRESULTINFO *tds_alloc_results(TDS_USMALLINT num_cols);
│ │ │ │ +
1325TDSCOMPUTEINFO **tds_alloc_compute_results(TDSSOCKET * tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols);
│ │ │ │ +
1326TDSCONTEXT *tds_alloc_context(void * parent);
│ │ │ │ +
1327void tds_free_context(TDSCONTEXT * locale);
│ │ │ │ + │ │ │ │ + │ │ │ │ +
1330void tds_release_dynamic(TDSDYNAMIC ** dyn);
│ │ │ │ +
1331static inline
│ │ │ │ +
1332void tds_release_cur_dyn(TDSSOCKET * tds)
│ │ │ │ +
1333{
│ │ │ │ + │ │ │ │ +
1335}
│ │ │ │ +
1336void tds_dynamic_deallocated(TDSCONNECTION *conn, TDSDYNAMIC *dyn);
│ │ │ │ +
1337void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn);
│ │ │ │ +
1338TDSSOCKET *tds_realloc_socket(TDSSOCKET * tds, size_t bufsize);
│ │ │ │ +
1339char *tds_alloc_client_sqlstate(int msgno);
│ │ │ │ +
1340char *tds_alloc_lookup_sqlstate(TDSSOCKET * tds, int msgno);
│ │ │ │ +
1341TDSLOGIN *tds_alloc_login(int use_environment);
│ │ │ │ +
1342TDSDYNAMIC *tds_alloc_dynamic(TDSCONNECTION * conn, const char *id);
│ │ │ │ +
1343void tds_free_login(TDSLOGIN * login);
│ │ │ │ +
1344TDSLOGIN *tds_init_login(TDSLOGIN * login, TDSLOCALE * locale);
│ │ │ │ +
1345TDSLOCALE *tds_alloc_locale(void);
│ │ │ │ +
1346void *tds_alloc_param_data(TDSCOLUMN * curparam);
│ │ │ │ +
1347void tds_free_locale(TDSLOCALE * locale);
│ │ │ │ +
1348TDSCURSOR * tds_alloc_cursor(TDSSOCKET * tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen);
│ │ │ │ +
1349void tds_free_row(TDSRESULTINFO * res_info, unsigned char *row);
│ │ │ │ +
1350TDSSOCKET *tds_alloc_socket(TDSCONTEXT * context, unsigned int bufsize);
│ │ │ │ +
1351TDSSOCKET *tds_alloc_additional_socket(TDSCONNECTION *conn);
│ │ │ │ +
1352void tds_set_current_results(TDSSOCKET *tds, TDSRESULTINFO *info);
│ │ │ │ + │ │ │ │ +
1354void * tds_realloc(void **pp, size_t new_size);
│ │ │ │ +
1355#define TDS_RESIZE(p, n_elem) \
│ │ │ │ +
1356 tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem))
│ │ │ │ +
1357#define tds_new(type, n) ((type *) malloc(sizeof(type) * (n)))
│ │ │ │ +
1358#define tds_new0(type, n) ((type *) calloc(n, sizeof(type)))
│ │ │ │ +
1359
│ │ │ │ +
1360TDSPACKET *tds_alloc_packet(void *buf, unsigned len);
│ │ │ │ +
1361TDSPACKET *tds_realloc_packet(TDSPACKET *packet, unsigned len);
│ │ │ │ +
1362void tds_free_packets(TDSPACKET *packet);
│ │ │ │ +
1363TDSBCPINFO *tds_alloc_bcpinfo(void);
│ │ │ │ +
1364void tds_free_bcpinfo(TDSBCPINFO *bcpinfo);
│ │ │ │ +
1365void tds_deinit_bcpinfo(TDSBCPINFO *bcpinfo);
│ │ │ │ +
1366
│ │ │ │ +
1367
│ │ │ │ +
1368/* login.c */
│ │ │ │ +
1369void tds_set_packet(TDSLOGIN * tds_login, int packet_size);
│ │ │ │ +
1370void tds_set_port(TDSLOGIN * tds_login, int port);
│ │ │ │ +
1371bool tds_set_passwd(TDSLOGIN * tds_login, const char *password) TDS_WUR;
│ │ │ │ +
1372void tds_set_bulk(TDSLOGIN * tds_login, bool enabled);
│ │ │ │ +
1373bool tds_set_user(TDSLOGIN * tds_login, const char *username) TDS_WUR;
│ │ │ │ +
1374bool tds_set_app(TDSLOGIN * tds_login, const char *application) TDS_WUR;
│ │ │ │ +
1375bool tds_set_host(TDSLOGIN * tds_login, const char *hostname) TDS_WUR;
│ │ │ │ +
1376bool tds_set_library(TDSLOGIN * tds_login, const char *library) TDS_WUR;
│ │ │ │ +
1377bool tds_set_server(TDSLOGIN * tds_login, const char *server) TDS_WUR;
│ │ │ │ +
1378bool tds_set_client_charset(TDSLOGIN * tds_login, const char *charset) TDS_WUR;
│ │ │ │ +
1379bool tds_set_language(TDSLOGIN * tds_login, const char *language) TDS_WUR;
│ │ │ │ +
1380void tds_set_version(TDSLOGIN * tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver);
│ │ │ │ +
1381int tds_connect_and_login(TDSSOCKET * tds, TDSLOGIN * login);
│ │ │ │ +
1382
│ │ │ │ +
1383
│ │ │ │ +
1384/* query.c */
│ │ │ │ +
1385void tds_start_query(TDSSOCKET *tds, unsigned char packet_type);
│ │ │ │ +
1386
│ │ │ │ +
1387TDSRET tds_submit_query(TDSSOCKET * tds, const char *query);
│ │ │ │ +
1388TDSRET tds_submit_query_params(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
│ │ │ │ +
1389TDSRET tds_submit_queryf(TDSSOCKET * tds, const char *queryf, ...);
│ │ │ │ +
1390TDSRET tds_submit_prepare(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
│ │ │ │ +
1391TDSRET tds_submit_execdirect(TDSSOCKET * tds, const char *query, TDSPARAMINFO * params, TDSHEADERS * head);
│ │ │ │ +
1392TDSRET tds71_submit_prepexec(TDSSOCKET * tds, const char *query, const char *id, TDSDYNAMIC ** dyn_out, TDSPARAMINFO * params);
│ │ │ │ +
1393TDSRET tds_submit_execute(TDSSOCKET * tds, TDSDYNAMIC * dyn);
│ │ │ │ +
1394TDSRET tds_send_cancel(TDSSOCKET * tds);
│ │ │ │ +
1395const char *tds_next_placeholder(const char *start);
│ │ │ │ +
1396int tds_count_placeholders(const char *query);
│ │ │ │ + │ │ │ │ +
1398TDSRET tds_deferred_unprepare(TDSCONNECTION * conn, TDSDYNAMIC * dyn);
│ │ │ │ +
1399TDSRET tds_submit_unprepare(TDSSOCKET * tds, TDSDYNAMIC * dyn);
│ │ │ │ +
1400TDSRET tds_submit_rpc(TDSSOCKET * tds, const char *rpc_name, TDSPARAMINFO * params, TDSHEADERS * head);
│ │ │ │ +
1401TDSRET tds_submit_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size);
│ │ │ │ +
1402TDSRET tds_submit_begin_tran(TDSSOCKET *tds);
│ │ │ │ +
1403TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont);
│ │ │ │ +
1404TDSRET tds_submit_commit(TDSSOCKET *tds, int cont);
│ │ │ │ +
1405TDSRET tds_disconnect(TDSSOCKET * tds);
│ │ │ │ +
1406size_t tds_quote_id(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
│ │ │ │ +
1407size_t tds_quote_id_rpc(TDSSOCKET * tds, char *buffer, const char *id, int idlen);
│ │ │ │ +
1408size_t tds_quote_string(TDSSOCKET * tds, char *buffer, const char *str, int len);
│ │ │ │ +
1409const char *tds_skip_comment(const char *s);
│ │ │ │ +
1410const char *tds_skip_quoted(const char *s);
│ │ │ │ +
1411size_t tds_fix_column_size(TDSSOCKET * tds, TDSCOLUMN * curcol);
│ │ │ │ +
1412const char *tds_convert_string(TDSSOCKET * tds, TDSICONV * char_conv, const char *s, int len, size_t *out_len);
│ │ │ │ +
1413void tds_convert_string_free(const char *original, const char *converted);
│ │ │ │ +
1414#if !ENABLE_EXTRA_CHECKS
│ │ │ │ +
1415#define tds_convert_string_free(original, converted) \
│ │ │ │ +
1416 do { if (original != converted) free((char*) converted); } while(0)
│ │ │ │ +
1417#endif
│ │ │ │ +
1418TDSRET tds_get_column_declaration(TDSSOCKET * tds, TDSCOLUMN * curcol, char *out);
│ │ │ │ +
1419
│ │ │ │ +
1420TDSRET tds_cursor_declare(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
│ │ │ │ +
1421TDSRET tds_cursor_setrows(TDSSOCKET * tds, TDSCURSOR * cursor, int *send);
│ │ │ │ +
1422TDSRET tds_cursor_open(TDSSOCKET * tds, TDSCURSOR * cursor, TDSPARAMINFO *params, int *send);
│ │ │ │ +
1423TDSRET tds_cursor_fetch(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row);
│ │ │ │ +
1424TDSRET tds_cursor_get_cursor_info(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_UINT * row_number, TDS_UINT * row_count);
│ │ │ │ +
1425TDSRET tds_cursor_close(TDSSOCKET * tds, TDSCURSOR * cursor);
│ │ │ │ +
1426TDSRET tds_cursor_dealloc(TDSSOCKET * tds, TDSCURSOR * cursor);
│ │ │ │ + │ │ │ │ +
1428TDSRET tds_cursor_update(TDSSOCKET * tds, TDSCURSOR * cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO * params);
│ │ │ │ +
1429TDSRET tds_cursor_setname(TDSSOCKET * tds, TDSCURSOR * cursor);
│ │ │ │ +
1430
│ │ │ │ +
1431TDSRET tds_multiple_init(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS * head);
│ │ │ │ +
1432TDSRET tds_multiple_done(TDSSOCKET *tds, TDSMULTIPLE *multiple);
│ │ │ │ +
1433TDSRET tds_multiple_query(TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO * params);
│ │ │ │ +
1434TDSRET tds_multiple_execute(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC * dyn);
│ │ │ │ +
1435
│ │ │ │ +
1436
│ │ │ │ +
1437/* token.c */
│ │ │ │ +
1438TDSRET tds_process_cancel(TDSSOCKET * tds);
│ │ │ │ +
1439int tds_get_token_size(int marker);
│ │ │ │ + │ │ │ │ + │ │ │ │ +
1442int tds5_send_optioncmd(TDSSOCKET * tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG * tds_argument,
│ │ │ │ +
1443 TDS_INT * tds_argsize);
│ │ │ │ +
1444TDSRET tds_process_tokens(TDSSOCKET * tds, /*@out@*/ TDS_INT * result_type, /*@out@*/ int *done_flags, unsigned flag);
│ │ │ │ +
1445
│ │ │ │ +
1446
│ │ │ │ +
1447/* data.c */
│ │ │ │ +
1448void tds_set_param_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
│ │ │ │ +
1449void tds_set_column_type(TDSCONNECTION * conn, TDSCOLUMN * curcol, TDS_SERVER_TYPE type);
│ │ │ │ +
1450#ifdef WORDS_BIGENDIAN
│ │ │ │ +
1451void tds_swap_datatype(int coltype, void *b);
│ │ │ │ +
1452#endif
│ │ │ │ +
1453
│ │ │ │ +
1454
│ │ │ │ +
1455/* tds_convert.c */
│ │ │ │ +
1456TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC * dr);
│ │ │ │ +
1457TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize);
│ │ │ │ +
1458extern const char tds_hex_digits[];
│ │ │ │ +
1459
│ │ │ │ +
1460
│ │ │ │ +
1461/* write.c */
│ │ │ │ +
1462int tds_init_write_buf(TDSSOCKET * tds);
│ │ │ │ +
1463int tds_put_n(TDSSOCKET * tds, const void *buf, size_t n);
│ │ │ │ +
1464int tds_put_string(TDSSOCKET * tds, const char *buf, int len);
│ │ │ │ +
1465int tds_put_int(TDSSOCKET * tds, TDS_INT i);
│ │ │ │ +
1466int tds_put_int8(TDSSOCKET * tds, TDS_INT8 i);
│ │ │ │ +
1467int tds_put_smallint(TDSSOCKET * tds, TDS_SMALLINT si);
│ │ │ │ +
1469#define tds_put_tinyint(tds, ti) tds_put_byte(tds,ti)
│ │ │ │ +
1470int tds_put_byte(TDSSOCKET * tds, unsigned char c);
│ │ │ │ +
1471TDSRET tds_flush_packet(TDSSOCKET * tds);
│ │ │ │ +
1472int tds_put_buf(TDSSOCKET * tds, const unsigned char *buf, int dsize, int ssize);
│ │ │ │ +
1473
│ │ │ │ +
1474
│ │ │ │ +
1475/* read.c */
│ │ │ │ +
1476unsigned char tds_get_byte(TDSSOCKET * tds);
│ │ │ │ +
1477void tds_unget_byte(TDSSOCKET * tds);
│ │ │ │ +
1478unsigned char tds_peek(TDSSOCKET * tds);
│ │ │ │ +
1479TDS_USMALLINT tds_get_usmallint(TDSSOCKET * tds);
│ │ │ │ +
1480#define tds_get_smallint(tds) ((TDS_SMALLINT) tds_get_usmallint(tds))
│ │ │ │ +
1481TDS_UINT tds_get_uint(TDSSOCKET * tds);
│ │ │ │ +
1482#define tds_get_int(tds) ((TDS_INT) tds_get_uint(tds))
│ │ │ │ +
1483TDS_UINT8 tds_get_uint8(TDSSOCKET * tds);
│ │ │ │ +
1484#define tds_get_int8(tds) ((TDS_INT8) tds_get_uint8(tds))
│ │ │ │ +
1485size_t tds_get_string(TDSSOCKET * tds, size_t string_len, char *dest, size_t dest_size);
│ │ │ │ +
1486TDSRET tds_get_char_data(TDSSOCKET * tds, char *dest, size_t wire_size, TDSCOLUMN * curcol);
│ │ │ │ +
1487bool tds_get_n(TDSSOCKET * tds, /*@out@*/ /*@null@*/ void *dest, size_t n);
│ │ │ │ +
1488int tds_get_size_by_type(TDS_SERVER_TYPE servertype);
│ │ │ │ +
1489DSTR* tds_dstr_get(TDSSOCKET * tds, DSTR * s, size_t len);
│ │ │ │ +
1490
│ │ │ │ +
1491
│ │ │ │ +
1492/* util.c */
│ │ │ │ +
1493int tdserror (const TDSCONTEXT * tds_ctx, TDSSOCKET * tds, int msgno, int errnum);
│ │ │ │ + │ │ │ │ +
1495void tds_swap_bytes(void *buf, int bytes);
│ │ │ │ +
1496unsigned int tds_gettime_ms(void);
│ │ │ │ +
1497char *tds_strndup(const void *s, TDS_INTPTR len);
│ │ │ │ +
1498
│ │ │ │ +
1499
│ │ │ │ +
1500/* log.c */
│ │ │ │ +
│ │ │ │ +
1501typedef struct tdsdump_off_item {
│ │ │ │ +
1502 struct tdsdump_off_item *next;
│ │ │ │ +
1503 tds_thread_id thread_id;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
1505void tdsdump_off(TDSDUMP_OFF_ITEM *off_item);
│ │ │ │ +
1506void tdsdump_on(TDSDUMP_OFF_ITEM *off_item);
│ │ │ │ +
1507int tdsdump_isopen(void);
│ │ │ │ +
1508#include <freetds/popvis.h>
│ │ │ │ +
1509int tdsdump_open(const char *filename);
│ │ │ │ +
1510#include <freetds/pushvis.h>
│ │ │ │ +
1511void tdsdump_close(void);
│ │ │ │ +
1512void tdsdump_dump_buf(const char* file, unsigned int level_line, const char *msg, const void *buf, size_t length);
│ │ │ │ +
1513void tdsdump_col(const TDSCOLUMN *col);
│ │ │ │ +
1514#undef tdsdump_log
│ │ │ │ +
1515void tdsdump_log(const char* file, unsigned int level_line, const char *fmt, ...)
│ │ │ │ +
1516#if defined(__GNUC__) && __GNUC__ >= 2
│ │ │ │ +
1517#if defined(__MINGW32__)
│ │ │ │ +
1518 __attribute__ ((__format__ (ms_printf, 3, 4)))
│ │ │ │ +
1519#else
│ │ │ │ +
1520 __attribute__ ((__format__ (__printf__, 3, 4)))
│ │ │ │ +
1521#endif
│ │ │ │ +
1522#endif
│ │ │ │ +
1523;
│ │ │ │ +
1524#define TDSDUMP_LOG_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log
│ │ │ │ +
1525#define tdsdump_log TDSDUMP_LOG_FAST
│ │ │ │ +
1526#define TDSDUMP_BUF_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf
│ │ │ │ +
1527#define tdsdump_dump_buf TDSDUMP_BUF_FAST
│ │ │ │ +
1528
│ │ │ │ +
1529extern int tds_write_dump;
│ │ │ │ +
1530extern int tds_debug_flags;
│ │ │ │ +
1531extern int tds_g_append_mode;
│ │ │ │ +
1532
│ │ │ │ +
1533
│ │ │ │ +
1534/* net.c */
│ │ │ │ +
1535TDSERRNO tds_open_socket(TDSSOCKET * tds, struct addrinfo *ipaddr, unsigned int port, int timeout, int *p_oserr);
│ │ │ │ +
1536void tds_close_socket(TDSSOCKET * tds);
│ │ │ │ +
1537int tds7_get_instance_ports(FILE *output, struct addrinfo *addr);
│ │ │ │ +
1538int tds7_get_instance_port(struct addrinfo *addr, const char *instance);
│ │ │ │ +
1539char *tds_prwsaerror(int erc);
│ │ │ │ +
1540void tds_prwsaerror_free(char *s);
│ │ │ │ +
1541int tds_connection_read(TDSSOCKET * tds, unsigned char *buf, int buflen);
│ │ │ │ +
1542int tds_connection_write(TDSSOCKET *tds, const unsigned char *buf, int buflen, int final);
│ │ │ │ +
1543#define TDSSELREAD POLLIN
│ │ │ │ +
1544#define TDSSELWRITE POLLOUT
│ │ │ │ +
1545int tds_select(TDSSOCKET * tds, unsigned tds_sel, int timeout_seconds);
│ │ │ │ +
1546void tds_connection_close(TDSCONNECTION *conn);
│ │ │ │ +
1547int tds_goodread(TDSSOCKET * tds, unsigned char *buf, int buflen);
│ │ │ │ +
1548int tds_goodwrite(TDSSOCKET * tds, const unsigned char *buffer, size_t buflen);
│ │ │ │ +
1549void tds_socket_flush(TDS_SYS_SOCKET sock);
│ │ │ │ +
1550int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock);
│ │ │ │ +
1551int tds_wakeup_init(TDSPOLLWAKEUP *wakeup);
│ │ │ │ +
1552void tds_wakeup_close(TDSPOLLWAKEUP *wakeup);
│ │ │ │ +
1553void tds_wakeup_send(TDSPOLLWAKEUP *wakeup, char cancel);
│ │ │ │ +
1554static inline TDS_SYS_SOCKET tds_wakeup_get_fd(const TDSPOLLWAKEUP *wakeup)
│ │ │ │ +
1555{
│ │ │ │ +
1556 return wakeup->s_signaled;
│ │ │ │ +
1557}
│ │ │ │ +
1558
│ │ │ │ +
1559
│ │ │ │ +
1560/* packet.c */
│ │ │ │ +
1561int tds_read_packet(TDSSOCKET * tds);
│ │ │ │ +
1562TDSRET tds_write_packet(TDSSOCKET * tds, unsigned char final);
│ │ │ │ +
1563#if ENABLE_ODBC_MARS
│ │ │ │ +
1564int tds_append_cancel(TDSSOCKET *tds);
│ │ │ │ +
1565TDSRET tds_append_syn(TDSSOCKET *tds);
│ │ │ │ +
1566TDSRET tds_append_fin(TDSSOCKET *tds);
│ │ │ │ +
1567#else
│ │ │ │ +
1568int tds_put_cancel(TDSSOCKET * tds);
│ │ │ │ +
1569#endif
│ │ │ │ +
1570
│ │ │ │ +
│ │ │ │ +
1571typedef struct tds_freeze {
│ │ │ │ + │ │ │ │ + │ │ │ │ +
1577 unsigned pkt_pos;
│ │ │ │ +
1579 unsigned size_len;
│ │ │ │ +
1580} TDSFREEZE;
│ │ │ │ +
│ │ │ │ +
1581
│ │ │ │ +
1582void tds_freeze(TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len);
│ │ │ │ +
1583size_t tds_freeze_written(TDSFREEZE *freeze);
│ │ │ │ +
1584TDSRET tds_freeze_abort(TDSFREEZE *freeze);
│ │ │ │ +
1585TDSRET tds_freeze_close(TDSFREEZE *freeze);
│ │ │ │ +
1586TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size);
│ │ │ │ +
1587
│ │ │ │ +
1588static void inline
│ │ │ │ +
1589tds_set_current_send_packet(TDSSOCKET *tds, TDSPACKET *pkt)
│ │ │ │ +
1590{
│ │ │ │ +
1591 tds->send_packet = pkt;
│ │ │ │ +
1592 tds->out_buf = pkt->buf + tds_packet_get_data_start(pkt);
│ │ │ │ +
1593}
│ │ │ │ +
1594
│ │ │ │ +
1595/* Macros to allow some indentation of the packets.
│ │ │ │ +
1596 *
│ │ │ │ +
1597 * The 3 nested fake loops require some explanation:
│ │ │ │ +
1598 * - first is to allows to declare variables;
│ │ │ │ +
1599 * - second is to force using brackets;
│ │ │ │ +
1600 * - third is to avoids that a break inside will skip the close.
│ │ │ │ +
1601 */
│ │ │ │ +
1602#define TDS_START_LEN_GENERIC(tds_socket, len) do { \
│ │ │ │ +
1603 TDSFREEZE current_freeze[1]; \
│ │ │ │ +
1604 tds_freeze((tds_socket), current_freeze, (len)); do { do
│ │ │ │ +
1605#define TDS_END_LEN while(0); } while(tds_freeze_close(current_freeze), 0); } while(0);
│ │ │ │ +
1606
│ │ │ │ +
1607#define TDS_START_LEN_TINYINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 1)
│ │ │ │ +
1608#define TDS_START_LEN_USMALLINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 2)
│ │ │ │ +
1609#define TDS_START_LEN_UINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 4)
│ │ │ │ +
1610
│ │ │ │ +
1611/* vstrbuild.c */
│ │ │ │ +
1612TDSRET tds_vstrbuild(char *buffer, int buflen, int *resultlen, const char *text, int textlen, const char *formats, int formatlen,
│ │ │ │ +
1613 va_list ap);
│ │ │ │ +
1614
│ │ │ │ +
1615
│ │ │ │ +
1616/* numeric.c */
│ │ │ │ +
1617char *tds_money_to_string(const TDS_MONEY * money, char *s, bool use_2_digits);
│ │ │ │ +
1618TDS_INT tds_numeric_to_string(const TDS_NUMERIC * numeric, char *s);
│ │ │ │ +
1619TDS_INT tds_numeric_change_prec_scale(TDS_NUMERIC * numeric, unsigned char new_prec, unsigned char new_scale);
│ │ │ │ +
1620
│ │ │ │ +
1621
│ │ │ │ +
1622/* getmac.c */
│ │ │ │ +
1623void tds_getmac(TDS_SYS_SOCKET s, unsigned char mac[6]);
│ │ │ │ +
1624
│ │ │ │ +
1625
│ │ │ │ +
1626/* challenge.c */
│ │ │ │ +
1627#ifndef HAVE_SSPI
│ │ │ │ + │ │ │ │ +
1629TDSAUTHENTICATION * tds_gss_get_auth(TDSSOCKET * tds);
│ │ │ │ +
1630#else
│ │ │ │ +
1631TDSAUTHENTICATION * tds_sspi_get_auth(TDSSOCKET * tds);
│ │ │ │ +
1632#endif
│ │ │ │ +
1633TDSRET tds5_gss_send(TDSSOCKET *tds);
│ │ │ │ +
1634
│ │ │ │ +
1635
│ │ │ │ +
1636/* random.c */
│ │ │ │ +
1637void tds_random_buffer(unsigned char *out, int len);
│ │ │ │ +
1638
│ │ │ │ +
1639
│ │ │ │ +
1640/* sec_negotiate.c */
│ │ │ │ +
1641TDSAUTHENTICATION * tds5_negotiate_get_auth(TDSSOCKET * tds);
│ │ │ │ +
1642static inline
│ │ │ │ +
1643void tds5_negotiate_set_msg_type(TDSAUTHENTICATION * tds_auth, unsigned msg_type)
│ │ │ │ +
1644{
│ │ │ │ +
1645 if (tds_auth)
│ │ │ │ +
1646 tds_auth->msg_type = msg_type;
│ │ │ │ +
1647}
│ │ │ │ +
1648
│ │ │ │ +
1649
│ │ │ │ +
1650/* bulk.c */
│ │ │ │ +
1651
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
1654{
│ │ │ │ +
1655 TDS_BCP_IN = 1,
│ │ │ │ +
1656 TDS_BCP_OUT = 2,
│ │ │ │ +
1657 TDS_BCP_QUERYOUT = 3
│ │ │ │ +
1658};
│ │ │ │ +
│ │ │ │ +
1659
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
1661{
│ │ │ │ +
1662 const char *hint;
│ │ │ │ +
1663 void *parent;
│ │ │ │ +
1664 DSTR tablename;
│ │ │ │ +
1665 TDS_CHAR *insert_stmt;
│ │ │ │ +
1666 TDS_INT direction;
│ │ │ │ +
1667 TDS_INT identity_insert_on;
│ │ │ │ +
1668 TDS_INT xfer_init;
│ │ │ │ +
1669 TDS_INT bind_count;
│ │ │ │ +
1670 TDSRESULTINFO *bindinfo;
│ │ │ │ +
1671};
│ │ │ │ +
│ │ │ │ +
1672
│ │ │ │ +
1673TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
│ │ │ │ +
1674typedef TDSRET (*tds_bcp_get_col_data) (TDSBCPINFO *bulk, TDSCOLUMN *bcpcol, int offset);
│ │ │ │ +
1675typedef void (*tds_bcp_null_error) (TDSBCPINFO *bulk, int index, int offset);
│ │ │ │ +
1676TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset);
│ │ │ │ +
1677TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied);
│ │ │ │ +
1678TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
│ │ │ │ +
1679TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo);
│ │ │ │ +
1680
│ │ │ │ +
1681TDSRET tds_bcp_fread(TDSSOCKET * tds, TDSICONV * conv, FILE * stream,
│ │ │ │ +
1682 const char *terminator, size_t term_len, char **outbuf, size_t * outbytes);
│ │ │ │ +
1683
│ │ │ │ +
1684TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size);
│ │ │ │ +
1685TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size);
│ │ │ │ +
1686TDSRET tds_writetext_end(TDSSOCKET *tds);
│ │ │ │ +
1687
│ │ │ │ +
1688
│ │ │ │ +
1689static inline
│ │ │ │ +
1690bool tds_capability_enabled(const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
│ │ │ │ +
1691{
│ │ │ │ +
1692 return (cap->values[sizeof(cap->values)-1-(cap_num>>3)] >> (cap_num&7)) & 1;
│ │ │ │ +
1693}
│ │ │ │ +
1694#define tds_capability_has_req(conn, cap) \
│ │ │ │ +
1695 tds_capability_enabled(&conn->capabilities.types[0], cap)
│ │ │ │ +
1696#define tds_capability_has_res(conn, cap) \
│ │ │ │ +
1697 tds_capability_enabled(&conn->capabilities.types[1], cap)
│ │ │ │ +
1698
│ │ │ │ +
1699#define IS_TDS42(x) (x->tds_version==0x402)
│ │ │ │ +
1700#define IS_TDS46(x) (x->tds_version==0x406)
│ │ │ │ +
1701#define IS_TDS50(x) (x->tds_version==0x500)
│ │ │ │ +
1702#define IS_TDS70(x) (x->tds_version==0x700)
│ │ │ │ +
1703#define IS_TDS71(x) (x->tds_version==0x701)
│ │ │ │ +
1704#define IS_TDS72(x) (x->tds_version==0x702)
│ │ │ │ +
1705#define IS_TDS73(x) (x->tds_version==0x703)
│ │ │ │ +
1706
│ │ │ │ +
1707#define IS_TDS50_PLUS(x) ((x)->tds_version>=0x500)
│ │ │ │ +
1708#define IS_TDS7_PLUS(x) ((x)->tds_version>=0x700)
│ │ │ │ +
1709#define IS_TDS71_PLUS(x) ((x)->tds_version>=0x701)
│ │ │ │ +
1710#define IS_TDS72_PLUS(x) ((x)->tds_version>=0x702)
│ │ │ │ +
1711#define IS_TDS73_PLUS(x) ((x)->tds_version>=0x703)
│ │ │ │ +
1712#define IS_TDS74_PLUS(x) ((x)->tds_version>=0x704)
│ │ │ │ +
1713
│ │ │ │ +
1714#define TDS_MAJOR(x) ((x)->tds_version >> 8)
│ │ │ │ +
1715#define TDS_MINOR(x) ((x)->tds_version & 0xff)
│ │ │ │ +
1716
│ │ │ │ +
1717#define IS_TDSDEAD(x) (((x) == NULL) || (x)->state == TDS_DEAD)
│ │ │ │ +
1718
│ │ │ │ +
1720#define TDS_IS_SYBASE(x) (!((x)->conn->product_version & 0x80000000u))
│ │ │ │ +
1722#define TDS_IS_MSSQL(x) (((x)->conn->product_version & 0x80000000u)!=0)
│ │ │ │ +
1723
│ │ │ │ +
1727#define TDS_MS_VER(maj,min,x) (0x80000000u|((maj)<<24)|((min)<<16)|(x))
│ │ │ │ +
1728
│ │ │ │ +
1729/* TODO test if not similar to ms one*/
│ │ │ │ +
1731#define TDS_SYB_VER(maj,min,x) (((maj)<<24)|((min)<<16)|(x)<<8)
│ │ │ │ +
1732
│ │ │ │ +
1733#ifdef __cplusplus
│ │ │ │ +
1734#if 0
│ │ │ │ +
1735{
│ │ │ │ +
1736#endif
│ │ │ │ +
1737}
│ │ │ │ +
1738#endif
│ │ │ │ +
1739
│ │ │ │ +
1740#include <freetds/popvis.h>
│ │ │ │ +
1741
│ │ │ │ +
1742#define TDS_PUT_INT(tds,v) tds_put_int((tds), ((TDS_INT)(v)))
│ │ │ │ +
1743#define TDS_PUT_SMALLINT(tds,v) tds_put_smallint((tds), ((TDS_SMALLINT)(v)))
│ │ │ │ +
1744#define TDS_PUT_BYTE(tds,v) tds_put_byte((tds), ((unsigned char)(v)))
│ │ │ │ +
1745
│ │ │ │ +
1746#endif /* _tds_h_ */
│ │ │ │ +
int tds_iconv_alloc(TDSCONNECTION *conn)
Allocate iconv stuff.
Definition iconv.c:307
│ │ │ │ +
TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
Return type suitable for conversions (convert all nullable types to fixed type)
Definition tds_types.h:125
│ │ │ │ +
char * tds_strndup(const void *s, TDS_INTPTR len)
Copy a string of length len to a new allocated buffer This function does not read more than len bytes...
Definition util.c:406
│ │ │ │ +
TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state)
Set state of TDS connection, with logging and checking.
Definition util.c:58
│ │ │ │ +
struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
A structure to hold all the compile-time settings.
│ │ │ │ +
struct tds_result_info TDSRESULTINFO
Hold information for any results.
│ │ │ │ +
int tdsdump_open(const char *filename)
Create and truncate a human readable dump file for the TDS traffic.
Definition log.c:131
│ │ │ │ +
struct tds_variant TDSVARIANT
Store variant informations.
│ │ │ │ +
void tdsdump_close(void)
Close the TDS dump log file.
Definition log.c:212
│ │ │ │ +
void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition data.c:224
│ │ │ │ +
bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR
Set the servername in a TDSLOGIN structure.
Definition login.c:129
│ │ │ │ +
struct tdsdaterec TDSDATEREC
Used by tds_datecrack.
│ │ │ │ +
TDSLOCALE * tds_get_locale(void)
Get locale information.
Definition locale.c:50
│ │ │ │ +
struct tds_env TDSENV
Current environment as reported by the server.
│ │ │ │ +
int tds_write_dump
Tell if TDS debug logging is turned on or off.
Definition log.c:58
│ │ │ │ +
struct tds_blob TDSBLOB
Information about blobs (e.g.
│ │ │ │ +
int tds_get_size_by_type(TDS_SERVER_TYPE servertype)
Return the number of bytes needed by specified type.
Definition tds_types.h:9
│ │ │ │ +
const int tds_numeric_bytes_per_prec[]
The following little table is indexed by precision and will tell us the number of bytes required to s...
Definition numeric.c:41
│ │ │ │ +
TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start bulk copy to server.
Definition bulk.c:916
│ │ │ │ +
TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s)
Definition numeric.c:95
│ │ │ │ +
int tds_get_varint_size(TDSCONNECTION *conn, int datatype)
tds_get_varint_size() returns the size of a variable length integer returned in a result string
Definition tds_types.h:57
│ │ │ │ +
TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
Start writing writetext request.
Definition bulk.c:1147
│ │ │ │ +
TDSRET tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
Read a data file, passing the data through iconv().
Definition bulk.c:1077
│ │ │ │ +
TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Start sending BCP data to server.
Definition bulk.c:866
│ │ │ │ +
struct tds_dynamic TDSDYNAMIC
Holds information for a dynamic (also called prepared) query.
│ │ │ │ +
void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
Set type of column initializing all dependency.
Definition data.c:246
│ │ │ │ +
tds_states
values for tds->state
Definition tds.h:789
│ │ │ │ +
@ TDS_PENDING
cilent is waiting for data
Definition tds.h:793
│ │ │ │ +
@ TDS_SENDING
client would send data
Definition tds.h:792
│ │ │ │ +
@ TDS_READING
client is reading data
Definition tds.h:794
│ │ │ │ +
@ TDS_WRITING
client is writing data
Definition tds.h:791
│ │ │ │ +
@ TDS_IDLE
no data expected
Definition tds.h:790
│ │ │ │ +
@ TDS_DEAD
no connection
Definition tds.h:795
│ │ │ │ +
tds_end
Flags returned in TDS_DONE token.
Definition tds.h:250
│ │ │ │ +
@ TDS_DONE_CANCELLED
acknowledging an attention command (usually a cancel)
Definition tds.h:257
│ │ │ │ +
@ TDS_DONE_MORE_RESULTS
more results follow
Definition tds.h:252
│ │ │ │ +
@ TDS_DONE_SRVERROR
SQL server server error.
Definition tds.h:259
│ │ │ │ +
@ TDS_DONE_FINAL
final result set, command completed successfully.
Definition tds.h:251
│ │ │ │ +
@ TDS_DONE_ERROR
error occurred
Definition tds.h:253
│ │ │ │ +
@ TDS_DONE_INXACT
transaction in progress
Definition tds.h:254
│ │ │ │ +
@ TDS_DONE_PROC
results are from a stored procedure
Definition tds.h:255
│ │ │ │ +
@ TDS_DONE_COUNT
count field in packet is valid
Definition tds.h:256
│ │ │ │ +
void tdsdump_col(const TDSCOLUMN *col)
Write a column value to the debug log.
Definition log.c:455
│ │ │ │ +
TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
Send some data in the writetext request started by tds_writetext_start.
Definition bulk.c:1185
│ │ │ │ +
int tdserror(const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
Call the client library's error handler (for library-generated errors only)
Definition util.c:321
│ │ │ │ +
enum tds_states TDS_STATE
values for tds->state
│ │ │ │ +
TDSRET tds_writetext_end(TDSSOCKET *tds)
Finish sending writetext data.
Definition bulk.c:1202
│ │ │ │ +
TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
Initialize BCP information.
Definition bulk.c:84
│ │ │ │ +
tds_bcp_directions
bcp direction
Definition tds.h:1654
│ │ │ │ +
TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
Send one row of data to server.
Definition bulk.c:468
│ │ │ │ +
TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied)
Tell we finished sending BCP data to server.
Definition bulk.c:836
│ │ │ │ +
struct tds_encoding TDS_ENCODING
Information relevant to libiconv.
│ │ │ │ +
void tdsdump_off(TDSDUMP_OFF_ITEM *off_item)
Temporarily turn off logging for current thread.
Definition log.c:81
│ │ │ │ +
void tdsdump_on(TDSDUMP_OFF_ITEM *off_item)
Turn logging back on for current thread.
Definition log.c:101
│ │ │ │ +
struct tds_cursor TDSCURSOR
Holds informations about a cursor.
│ │ │ │ +
TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds)
Build a NTLMSPP packet to send to server.
Definition challenge.c:721
│ │ │ │ +
TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login)
Set TDS version from given string.
Definition config.c:923
│ │ │ │ +
const TDS_COMPILETIME_SETTINGS * tds_get_compiletime_settings(void)
Return a structure capturing the compile-time settings provided to the configure script.
Definition config.c:1344
│ │ │ │ +
struct addrinfo * tds_lookup_host(const char *servername)
Get the IP address for a hostname.
Definition config.c:987
│ │ │ │ +
bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *parse_param)
Read a section of configuration file (INI style file)
Definition config.c:503
│ │ │ │ +
bool tds_read_conf_file(TDSLOGIN *login, const char *server)
Read configuration info for given server return 0 on error.
Definition config.c:346
│ │ │ │ +
TDSRET tds_set_interfaces_file_loc(const char *interfloc)
Set the full name of interface file.
Definition config.c:961
│ │ │ │ +
char * tds_get_home_file(const char *file)
Return filename from HOME directory.
Definition config.c:325
│ │ │ │ +
TDSLOGIN * tds_read_config_info(TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
tds_read_config_info() will fill the tds connection structure based on configuration information gath...
Definition config.c:138
│ │ │ │ +
void tds_fix_login(TDSLOGIN *login)
Fix configuration after reading it.
Definition config.c:285
│ │ │ │ +
TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr)
Convert from db date format to a structured date format.
Definition convert.c:3172
│ │ │ │ +
TDSICONV * tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5])
Get iconv information from a LCID (to support different column encoding under MSSQL2K)
Definition iconv.c:1245
│ │ │ │ +
TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
Allocate space for row store return NULL on out of memory.
Definition mem.c:524
│ │ │ │ +
void tds_detach_results(TDSRESULTINFO *info)
Detach result info from it current socket.
Definition mem.c:488
│ │ │ │ +
TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param)
Adds a output parameter to TDSPARAMINFO.
Definition mem.c:284
│ │ │ │ +
void * tds_alloc_param_data(TDSCOLUMN *curparam)
Allocate data for a parameter.
Definition mem.c:364
│ │ │ │ +
TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale)
Initialize login structure with locale information and other stuff for connection.
Definition mem.c:800
│ │ │ │ +
void tds_free_param_result(TDSPARAMINFO *param_info)
Delete latest parameter.
Definition mem.c:320
│ │ │ │ +
TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id)
Allocate a dynamic statement.
Definition mem.c:160
│ │ │ │ +
void * tds_realloc(void **pp, size_t new_size)
Reallocate a pointer and update it if success.
Definition mem.c:1876
│ │ │ │ +
void tds_free_input_params(TDSDYNAMIC *dyn)
Frees all allocated input parameters of a dynamic statement.
Definition mem.c:206
│ │ │ │ +
void tds_release_dynamic(TDSDYNAMIC **dyn)
Frees dynamic statement.
Definition mem.c:253
│ │ │ │ +
int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Check if dynamic request must be unprepared.
Definition query.c:1752
│ │ │ │ +
const char * tds_skip_quoted(const char *s)
Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd])
Definition query.c:515
│ │ │ │ +
TDSRET tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
Creates a temporary stored procedure in the server and execute it.
Definition query.c:1401
│ │ │ │ +
void tds_start_query(TDSSOCKET *tds, unsigned char packet_type)
Start query packet of a given type.
Definition query.c:332
│ │ │ │ +
TDSRET tds_send_cancel(TDSSOCKET *tds)
tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called dire...
Definition query.c:2026
│ │ │ │ +
TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Sends a previously prepared dynamic statement to the server.
Definition query.c:1630
│ │ │ │ +
size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol)
Get column size for wire.
Definition query.c:1491
│ │ │ │ +
TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
Return declaration for column (like "varchar(20)").
Definition query.c:718
│ │ │ │ +
TDSRET tds_submit_commit(TDSSOCKET *tds, int cont)
Send a commit request.
Definition query.c:3724
│ │ │ │ +
TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor)
Deallocate cursor on idle.
Definition query.c:3057
│ │ │ │ +
TDSRET tds_submit_query(TDSSOCKET *tds, const char *query)
Sends a language string to the database server for processing.
Definition query.c:210
│ │ │ │ +
TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
Calls a RPC from server.
Definition query.c:1929
│ │ │ │ +
size_t tds_quote_id_rpc(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id for a RPC call.
Definition query.c:2216
│ │ │ │ +
size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len)
Quote a string.
Definition query.c:2241
│ │ │ │ +
TDSRET tds_submit_prepare(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
Creates a temporary stored procedure in the server.
Definition query.c:1124
│ │ │ │ +
TDSRET tds_submit_begin_tran(TDSSOCKET *tds)
Send a rollback request.
Definition query.c:3665
│ │ │ │ +
size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen)
Quote an id.
Definition query.c:2171
│ │ │ │ +
const char * tds_next_placeholder(const char *start)
Get position of next placeholder.
Definition query.c:535
│ │ │ │ +
TDSRET tds_submit_query_params(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Sends a language string to the database server for processing.
Definition query.c:350
│ │ │ │ +
TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont)
Send a rollback request.
Definition query.c:3693
│ │ │ │ +
TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn)
Unprepare dynamic on idle.
Definition query.c:1774
│ │ │ │ +
int tds_count_placeholders(const char *query)
Count the number of placeholders ('?') in a query.
Definition query.c:571
│ │ │ │ +
TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor)
Send a deallocation request to server.
Definition query.c:3006
│ │ │ │ +
const char * tds_skip_comment(const char *s)
Skip a comment in a query.
Definition query.c:490
│ │ │ │ +
const char * tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len)
Convert a string in an allocated buffer.
Definition query.c:126
│ │ │ │ +
TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...)
Format and submit a query.
Definition query.c:467
│ │ │ │ +
TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
Submit a prepared query with parameters.
Definition query.c:1256
│ │ │ │ +
void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Set current dynamic.
Definition query.c:192
│ │ │ │ +
TDSRET tds_submit_optioncmd(TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size)
Send option commands to server.
Definition query.c:3389
│ │ │ │ +
TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn)
Send a unprepare request for a prepared query.
Definition query.c:1797
│ │ │ │ +
DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len)
Reads a string from wire and put in a DSTR.
Definition read.c:293
│ │ │ │ +
unsigned char tds_get_byte(TDSSOCKET *tds)
Return a single byte from the input buffer.
Definition read.c:72
│ │ │ │ +
int tds_put_string(TDSSOCKET *tds, const char *buf, int len)
Output a string to wire automatic translate string to unicode if needed.
Definition write.c:97
│ │ │ │ +
unsigned char tds_peek(TDSSOCKET *tds)
Reads a byte from the TDS stream without removing it.
Definition read.c:100
│ │ │ │ +
TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size)
Stop keeping data for this specific freeze.
Definition packet.c:1031
│ │ │ │ +
int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
Definition net.c:985
│ │ │ │ +
int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock)
Set socket to non-blocking.
Definition net.c:168
│ │ │ │ +
void tds_close_socket(TDSSOCKET *tds)
Close current socket.
Definition net.c:548
│ │ │ │ +
int tds_read_packet(TDSSOCKET *tds)
Read in one 'packet' from the server.
Definition packet.c:527
│ │ │ │ +
size_t tds_freeze_written(TDSFREEZE *freeze)
Compute how many bytes has been written from freeze.
Definition packet.c:935
│ │ │ │ +
TDSRET tds_flush_packet(TDSSOCKET *tds)
Flush packet to server.
Definition write.c:224
│ │ │ │ +
TDSRET tds_freeze_close(TDSFREEZE *freeze)
Stop keeping data for this specific freeze.
Definition packet.c:996
│ │ │ │ +
int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen)
Loops until we have received some characters return -1 on failure.
Definition net.c:914
│ │ │ │ +
TDSRET tds_freeze_abort(TDSFREEZE *freeze)
Discard all data written after the freeze.
Definition packet.c:961
│ │ │ │ +
TDS_UINT8 tds_get_uint8(TDSSOCKET *tds)
Get an uint64 from the server.
Definition read.c:140
│ │ │ │ +
TDSRET tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
Fetch character data the wire.
Definition read.c:195
│ │ │ │ +
size_t tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size)
Fetch a string from the wire.
Definition read.c:166
│ │ │ │ +
int tds7_get_instance_ports(FILE *output, struct addrinfo *addr)
Get port of all instances.
Definition net.c:1091
│ │ │ │ +
TDS_UINT tds_get_uint(TDSSOCKET *tds)
Get an int32 from the server.
Definition read.c:127
│ │ │ │ +
int tds7_get_instance_port(struct addrinfo *addr, const char *instance)
Get port of given instance.
Definition net.c:1227
│ │ │ │ +
TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds)
Get an int16 from the server.
Definition read.c:113
│ │ │ │ +
void tds_unget_byte(TDSSOCKET *tds)
Unget will always work as long as you don't call it twice in a row.
Definition read.c:89
│ │ │ │ +
int tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
Select on a socket until it's available or the timeout expires.
Definition net.c:610
│ │ │ │ +
bool tds_get_n(TDSSOCKET *tds, void *dest, size_t n)
Get N bytes from the buffer and return them in the already allocated space given to us.
Definition read.c:230
│ │ │ │ +
const char * tds_prtype(int token)
Returns string representation of the given type.
Definition token.c:3056
│ │ │ │ +
TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id)
Finds a dynamic given string id.
Definition token.c:2587
│ │ │ │ +
TDSRET tds_process_login_tokens(TDSSOCKET *tds)
tds_process_login_tokens() is called after sending the login packet to the server.
Definition token.c:411
│ │ │ │ +
int tds_get_token_size(int marker)
tds_get_token_size() returns the size of a fixed length token used by tds_process_cancel() to determi...
Definition token.c:2754
│ │ │ │ +
TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
process all streams.
Definition token.c:531
│ │ │ │ +
TDSRET tds_process_simple_query(TDSSOCKET *tds)
Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the statement returns results,...
Definition token.c:881
│ │ │ │ +
TDSRET tds_process_cancel(TDSSOCKET *tds)
Definition token.c:2554
│ │ │ │ +
Definition iconv.h:92
│ │ │ │ +
Definition proto.h:26
│ │ │ │ +
Definition proto.h:39
│ │ │ │ +
A structure to hold all the compile-time settings.
Definition tds.h:82
│ │ │ │ +
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition tds.h:146
│ │ │ │ +
TDS_INT date
date, 0 = 1900-01-01
Definition tds.h:148
│ │ │ │ +
TDS_SMALLINT offset
time offset
Definition tds.h:149
│ │ │ │ +
TDS_UINT8 time
time, 7 digit precision
Definition tds.h:147
│ │ │ │ +
Used by tds_datecrack.
Definition tds.h:159
│ │ │ │ +
TDS_INT dayofyear
day of year (1-366)
Definition tds.h:164
│ │ │ │ +
TDS_INT weekday
day of week (0-6, 0 = sunday)
Definition tds.h:165
│ │ │ │ +
TDS_INT year
year
Definition tds.h:160
│ │ │ │ +
TDS_INT timezone
-840 - 840 minutes from UTC
Definition tds.h:170
│ │ │ │ +
TDS_INT minute
0-59
Definition tds.h:167
│ │ │ │ +
TDS_INT day
day of month (1-31)
Definition tds.h:163
│ │ │ │ +
TDS_INT decimicrosecond
0-9999999
Definition tds.h:169
│ │ │ │ +
TDS_INT second
0-59
Definition tds.h:168
│ │ │ │ +
TDS_INT quarter
quarter (0-3)
Definition tds.h:161
│ │ │ │ +
TDS_INT hour
0-23
Definition tds.h:166
│ │ │ │ +
TDS_INT month
month number (0-11)
Definition tds.h:162
│ │ │ │ +
Definition tds.h:330
│ │ │ │ +
Definition tds.h:495
│ │ │ │ +
Definition tds.h:504
│ │ │ │ +
Definition tds.h:511
│ │ │ │ +
Definition tds.h:517
│ │ │ │ +
DSTR crlfile
certificate revocation file
Definition tds.h:531
│ │ │ │ +
DSTR server_realm_name
server realm name (in freetds.conf)
Definition tds.h:527
│ │ │ │ +
DSTR user_name
account for login
Definition tds.h:534
│ │ │ │ +
DSTR password
password of account login
Definition tds.h:535
│ │ │ │ +
DSTR db_filename
database filename to attach (MSSQL)
Definition tds.h:529
│ │ │ │ +
DSTR server_name
server name (in freetds.conf)
Definition tds.h:518
│ │ │ │ +
struct addrinfo * ip_addrs
ip(s) of server
Definition tds.h:546
│ │ │ │ +
DSTR server_charset
charset of server e.g.
Definition tds.h:523
│ │ │ │ +
TDS_USMALLINT tds_version
TDS version.
Definition tds.h:520
│ │ │ │ +
DSTR new_password
new password to set (TDS 7.2+)
Definition tds.h:536
│ │ │ │ +
unsigned int bulk_copy
if bulk copy should be enabled
Definition tds.h:556
│ │ │ │ +
DSTR cafile
certificate authorities file
Definition tds.h:530
│ │ │ │ +
DSTR server_spn
server SPN (in freetds.conf)
Definition tds.h:528
│ │ │ │ +
int port
port of database service
Definition tds.h:519
│ │ │ │ +
Definition tds.h:574
│ │ │ │ +
Definition tds.h:582
│ │ │ │ +
Information about blobs (e.g.
Definition tds.h:593
│ │ │ │ +
Store variant informations.
Definition tds.h:604
│ │ │ │ +
Information relevant to libiconv.
Definition tds.h:618
│ │ │ │ +
const char * name
name of the encoding (ie UTF-8)
Definition tds.h:620
│ │ │ │ +
unsigned char canonic
internal numeric index into array of all encodings
Definition tds.h:624
│ │ │ │ +
Definition tds.h:628
│ │ │ │ +
Definition tds.h:643
│ │ │ │ +
tds_func_put_data * put_data
Send column data to server.
Definition tds.h:662
│ │ │ │ +
tds_func_put_info * put_info
Send metadata column information to server.
Definition tds.h:652
│ │ │ │ +
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ +
TDS_INT bcp_prefix_len
The length, in bytes, of any length prefix this column may have.
Definition tds.h:761
│ │ │ │ +
TDS_TINYINT column_varint_size
size of length when reading from wire (0, 1, 2 or 4)
Definition tds.h:701
│ │ │ │ +
TDS_INT column_size
maximun size of data.
Definition tds.h:694
│ │ │ │ +
TDS_TINYINT column_prec
precision for decimal/numeric
Definition tds.h:703
│ │ │ │ +
TDS_SERVER_TYPE column_type
This type can be different from wire type because conversion (e.g.
Definition tds.h:696
│ │ │ │ +
TDSICONV * char_conv
refers to previously allocated iconv information
Definition tds.h:712
│ │ │ │ +
TDS_TINYINT column_scale
scale for decimal/numeric
Definition tds.h:704
│ │ │ │ +
TDS_INT column_cur_size
size written in variable (ie: char, text, binary).
Definition tds.h:736
│ │ │ │ +
Hold information for any results.
Definition tds.h:769
│ │ │ │ +
Definition tds.h:876
│ │ │ │ +
Definition tds.h:892
│ │ │ │ +
Definition tds.h:906
│ │ │ │ +
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ +
TDS_TINYINT options
read only|updatable TODO use it
Definition tds.h:942
│ │ │ │ +
bool defer_close
true if cursor was marker to be closed when connection is idle
Definition tds.h:946
│ │ │ │ +
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition tds.h:939
│ │ │ │ +
TDS_INT cursor_id
cursor id returned by the server after cursor declare
Definition tds.h:941
│ │ │ │ +
TDS_INT cursor_rows
< number of updatable columns
Definition tds.h:951
│ │ │ │ +
struct tds_cursor * next
next in linked list, keep first
Definition tds.h:938
│ │ │ │ +
TDS_INT type
row fetched from this cursor
Definition tds.h:956
│ │ │ │ +
TDS_CURSOR_STATUS status
cursor parameter
Definition tds.h:953
│ │ │ │ +
char * query
SQL query.
Definition tds.h:947
│ │ │ │ +
char * cursor_name
name of the cursor
Definition tds.h:940
│ │ │ │ +
Current environment as reported by the server.
Definition tds.h:963
│ │ │ │ +
char * charset
character set encoding
Definition tds.h:968
│ │ │ │ +
int block_size
packet size (512-65535)
Definition tds.h:965
│ │ │ │ +
char * database
database name
Definition tds.h:970
│ │ │ │ +
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ +
char * query
saved query, we need to know original query if prepare is impossible
Definition tds.h:1009
│ │ │ │ +
TDS_INT ref_count
reference counter so client can retain safely a pointer
Definition tds.h:979
│ │ │ │ +
bool defer_close
true if dynamic was marker to be closed when connection is idle
Definition tds.h:997
│ │ │ │ +
TDSPARAMINFO * res_info
query results
Definition tds.h:999
│ │ │ │ +
TDS_TINYINT emulated
this dynamic query cannot be prepared so libTDS have to construct a simple query.
Definition tds.h:993
│ │ │ │ +
TDSPARAMINFO * params
query parameters.
Definition tds.h:1007
│ │ │ │ +
struct tds_dynamic * next
next in linked list, keep first
Definition tds.h:978
│ │ │ │ +
TDS_INT num_id
numeric id for mssql7+
Definition tds.h:981
│ │ │ │ +
Definition tds.h:1019
│ │ │ │ +
Definition tds.h:1029
│ │ │ │ +
Definition tds.h:1047
│ │ │ │ +
Definition tds.h:1057
│ │ │ │ +
unsigned data_len
data length, this does not account SMP header, only TDS part
Definition tds.h:1071
│ │ │ │ +
Definition tds.h:1085
│ │ │ │ +
Definition tds.h:1091
│ │ │ │ +
TDSENV env
environment is shared between all sessions
Definition tds.h:1101
│ │ │ │ +
TDSCURSOR * cursors
linked list of cursors allocated for this connection contains only cursors allocated on the server
Definition tds.h:1107
│ │ │ │ +
TDS_SYS_SOCKET s
tcp socket, INVALID_SOCKET if not connected
Definition tds.h:1096
│ │ │ │ +
TDS_UINT product_version
version of product (Sybase/MS and full version)
Definition tds.h:1093
│ │ │ │ +
TDSDYNAMIC * dyns
list of dynamic allocated for this connection contains only dynamic allocated on the server
Definition tds.h:1112
│ │ │ │ +
unsigned int pending_close
true is connection has pending closing (cursors or dynamic)
Definition tds.h:1123
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
TDSLOGIN * login
config for login stuff.
Definition tds.h:1258
│ │ │ │ +
unsigned in_len
input buffer length
Definition tds.h:1194
│ │ │ │ +
TDSPACKET * frozen_packets
list of packets frozen, points to first one.
Definition tds.h:1203
│ │ │ │ +
TDSPACKET * send_packet
packet we are preparing to send
Definition tds.h:1231
│ │ │ │ +
unsigned char * in_buf
Input buffer.
Definition tds.h:1177
│ │ │ │ +
TDS_INT ret_status
return status from store procedure
Definition tds.h:1250
│ │ │ │ +
unsigned out_pos
current position in out_buf
Definition tds.h:1193
│ │ │ │ +
TDSRESULTINFO * current_results
Current query information.
Definition tds.h:1238
│ │ │ │ +
unsigned char in_flag
input buffer type
Definition tds.h:1195
│ │ │ │ +
TDS_INT8 rows_affected
rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
Definition tds.h:1254
│ │ │ │ +
unsigned char out_flag
output buffer type
Definition tds.h:1196
│ │ │ │ +
unsigned in_pos
current position in in_buf
Definition tds.h:1192
│ │ │ │ +
TDSCURSOR * cur_cursor
cursor in use
Definition tds.h:1243
│ │ │ │ +
bool in_row
true if we are getting rows
Definition tds.h:1246
│ │ │ │ +
bool bulk_query
true is query sent was a bulk query so we need to switch state to QUERYING
Definition tds.h:1244
│ │ │ │ +
bool has_status
true is ret_status is valid
Definition tds.h:1245
│ │ │ │ +
unsigned char * out_buf
Output buffer.
Definition tds.h:1185
│ │ │ │ +
volatile unsigned char in_cancel
indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean we have to send cance...
Definition tds.h:1248
│ │ │ │ +
unsigned int out_buf_max
Maximum size of packet pointed by out_buf.
Definition tds.h:1191
│ │ │ │ +
TDSDYNAMIC * cur_dyn
dynamic structure in use
Definition tds.h:1256
│ │ │ │ +
Definition tds.h:1501
│ │ │ │ +
Definition tds.h:1571
│ │ │ │ +
TDSSOCKET * tds
which socket we refer to
Definition tds.h:1573
│ │ │ │ +
unsigned pkt_pos
position in pkt
Definition tds.h:1577
│ │ │ │ +
unsigned size_len
length size (0, 1, 2 or 4)
Definition tds.h:1579
│ │ │ │ +
TDSPACKET * pkt
first packet frozen
Definition tds.h:1575
│ │ │ │ +
Definition tds.h:1661
│ │ │ │ +
Definition thread.h:278
│ │ │ │ +
Structure to hold a string.
Definition string.h:36
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,112 +1,2661 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -data.h │ │ │ │ │ +tds.h │ │ │ │ │ +_G_o_ _t_o_ _t_h_e_ _d_o_c_u_m_e_n_t_a_t_i_o_n_ _o_f_ _t_h_i_s_ _f_i_l_e_. │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2014 Frediano Ziglio │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef _freetds_data_h_ │ │ │ │ │ -21#define _freetds_data_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#ifndef _tds_h_ │ │ │ │ │ -24# error Include tds.h before data.h │ │ │ │ │ -25#endif │ │ │ │ │ -26 │ │ │ │ │ -27#include │ │ │ │ │ -28 │ │ │ │ │ -29#define TDS_COMMON_FUNCS(name) \ │ │ │ │ │ -30{ \ │ │ │ │ │ -31 tds_ ## name ## _get_info, \ │ │ │ │ │ -32 tds_ ## name ## _get, \ │ │ │ │ │ -33 tds_ ## name ## _row_len, \ │ │ │ │ │ -34 tds_ ## name ## _put_info, \ │ │ │ │ │ -35 tds_ ## name ## _put, \ │ │ │ │ │ -36 TDS_EXTRA_CHECK(tds_ ## name ## _check) \ │ │ │ │ │ -37} │ │ │ │ │ -38 │ │ │ │ │ -39tds_func_get_info tds_invalid_get_info; │ │ │ │ │ -40tds_func_row_len tds_invalid_row_len; │ │ │ │ │ -41tds_func_get_data tds_invalid_get; │ │ │ │ │ -42tds_func_put_info tds_invalid_put_info; │ │ │ │ │ -43tds_func_put_data tds_invalid_put; │ │ │ │ │ -44tds_func_check tds_invalid_check; │ │ │ │ │ -45 │ │ │ │ │ -46tds_func_get_info tds_generic_get_info; │ │ │ │ │ -47tds_func_row_len tds_generic_row_len; │ │ │ │ │ -48tds_func_get_data tds_generic_get; │ │ │ │ │ -49tds_func_put_info tds_generic_put_info; │ │ │ │ │ -50tds_func_put_data tds_generic_put; │ │ │ │ │ -51tds_func_check tds_generic_check; │ │ │ │ │ -52 │ │ │ │ │ -53tds_func_get_info tds_numeric_get_info; │ │ │ │ │ -54tds_func_row_len tds_numeric_row_len; │ │ │ │ │ -55tds_func_get_data tds_numeric_get; │ │ │ │ │ -56tds_func_put_info tds_numeric_put_info; │ │ │ │ │ -57tds_func_put_data tds_numeric_put; │ │ │ │ │ -58tds_func_check tds_numeric_check; │ │ │ │ │ -59 │ │ │ │ │ -60#define tds_variant_get_info tds_generic_get_info │ │ │ │ │ -61#define tds_variant_row_len tds_generic_row_len │ │ │ │ │ -62tds_func_get_data tds_variant_get; │ │ │ │ │ -63tds_func_put_info tds_variant_put_info; │ │ │ │ │ -64tds_func_put_data tds_variant_put; │ │ │ │ │ -65tds_func_check tds_variant_check; │ │ │ │ │ -66 │ │ │ │ │ -67tds_func_get_info tds_msdatetime_get_info; │ │ │ │ │ -68tds_func_row_len tds_msdatetime_row_len; │ │ │ │ │ -69tds_func_get_data tds_msdatetime_get; │ │ │ │ │ -70tds_func_put_info tds_msdatetime_put_info; │ │ │ │ │ -71tds_func_put_data tds_msdatetime_put; │ │ │ │ │ -72tds_func_check tds_msdatetime_check; │ │ │ │ │ -73 │ │ │ │ │ -74tds_func_get_info tds_clrudt_get_info; │ │ │ │ │ -75tds_func_row_len tds_clrudt_row_len; │ │ │ │ │ -76#define tds_clrudt_get tds_generic_get │ │ │ │ │ -77tds_func_put_info tds_clrudt_put_info; │ │ │ │ │ -78#define tds_clrudt_put tds_generic_put │ │ │ │ │ -79tds_func_check tds_clrudt_check; │ │ │ │ │ -80 │ │ │ │ │ -81tds_func_get_info tds_sybbigtime_get_info; │ │ │ │ │ -82tds_func_row_len tds_sybbigtime_row_len; │ │ │ │ │ -83tds_func_get_data tds_sybbigtime_get; │ │ │ │ │ -84tds_func_put_info tds_sybbigtime_put_info; │ │ │ │ │ -85tds_func_put_data tds_sybbigtime_put; │ │ │ │ │ -86tds_func_check tds_sybbigtime_check; │ │ │ │ │ -87 │ │ │ │ │ -92#ifndef TDS_DONT_DEFINE_DEFAULT_FUNCTIONS │ │ │ │ │ -93# define TDS_DEFINE_DEFAULT_FUNCS(name) \ │ │ │ │ │ -94 const TDSCOLUMNFUNCS tds_ ## name ## _funcs = TDS_COMMON_FUNCS(name) │ │ │ │ │ -95 │ │ │ │ │ -96TDS_DEFINE_DEFAULT_FUNCS(invalid); │ │ │ │ │ -97TDS_DEFINE_DEFAULT_FUNCS(generic); │ │ │ │ │ -98TDS_DEFINE_DEFAULT_FUNCS(numeric); │ │ │ │ │ -99TDS_DEFINE_DEFAULT_FUNCS(variant); │ │ │ │ │ -100TDS_DEFINE_DEFAULT_FUNCS(msdatetime); │ │ │ │ │ -101TDS_DEFINE_DEFAULT_FUNCS(clrudt); │ │ │ │ │ -102TDS_DEFINE_DEFAULT_FUNCS(sybbigtime); │ │ │ │ │ -103#endif │ │ │ │ │ -104 │ │ │ │ │ -105#include │ │ │ │ │ -106 │ │ │ │ │ -107#endif │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ +3 * Copyright (C) 2010, 2011 Frediano Ziglio │ │ │ │ │ +4 * │ │ │ │ │ +5 * This library is free software; you can redistribute it and/or │ │ │ │ │ +6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +7 * License as published by the Free Software Foundation; either │ │ │ │ │ +8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +9 * │ │ │ │ │ +10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +13 * Library General Public License for more details. │ │ │ │ │ +14 * │ │ │ │ │ +15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +16 * License along with this library; if not, write to the │ │ │ │ │ +17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +18 * Boston, MA 02111-1307, USA. │ │ │ │ │ +19 */ │ │ │ │ │ +20 │ │ │ │ │ +21#ifndef _tds_h_ │ │ │ │ │ +22#define _tds_h_ │ │ │ │ │ +23 │ │ │ │ │ +24#ifndef _freetds_config_h_ │ │ │ │ │ +25#error should include config.h before │ │ │ │ │ +26#endif │ │ │ │ │ +27 │ │ │ │ │ +28#include │ │ │ │ │ +29#include │ │ │ │ │ +30#include │ │ │ │ │ +31 │ │ │ │ │ +32#ifdef HAVE_STDDEF_H │ │ │ │ │ +33#include │ │ │ │ │ +34#endif │ │ │ │ │ +35 │ │ │ │ │ +36#if HAVE_NETDB_H │ │ │ │ │ +37#include │ │ │ │ │ +38#endif /* HAVE_NETDB_H */ │ │ │ │ │ +39 │ │ │ │ │ +40#if HAVE_NETINET_IN_H │ │ │ │ │ +41#include │ │ │ │ │ +42#endif /* HAVE_NET_INET_IN_H */ │ │ │ │ │ +43#if HAVE_ARPA_INET_H │ │ │ │ │ +44#include │ │ │ │ │ +45#endif /* HAVE_ARPA_INET_H */ │ │ │ │ │ +46 │ │ │ │ │ +47#if HAVE_SYS_SOCKET_H │ │ │ │ │ +48#include │ │ │ │ │ +49#endif /* HAVE_SYS_SOCKET_H */ │ │ │ │ │ +50 │ │ │ │ │ +51/* forward declaration */ │ │ │ │ │ +52typedef struct _t_d_s_i_c_o_n_v_i_n_f_o _T_D_S_I_C_O_N_V; │ │ │ │ │ +53typedef struct _t_d_s___c_o_n_n_e_c_t_i_o_n _T_D_S_C_O_N_N_E_C_T_I_O_N; │ │ │ │ │ +54typedef struct _t_d_s___s_o_c_k_e_t _T_D_S_S_O_C_K_E_T; │ │ │ │ │ +55typedef struct _t_d_s___c_o_l_u_m_n _T_D_S_C_O_L_U_M_N; │ │ │ │ │ +56typedef struct _t_d_s___b_c_p_i_n_f_o _T_D_S_B_C_P_I_N_F_O; │ │ │ │ │ +57 │ │ │ │ │ +58#include │ │ │ │ │ +59#include │ │ │ │ │ +60#include │ │ │ │ │ +61#include │ │ │ │ │ +62#include │ │ │ │ │ +63#include │ │ │ │ │ +64#include │ │ │ │ │ +65 │ │ │ │ │ +66#include │ │ │ │ │ +67 │ │ │ │ │ +68#ifdef __cplusplus │ │ │ │ │ +69extern "C" │ │ │ │ │ +70{ │ │ │ │ │ +71#if 0 │ │ │ │ │ +72} │ │ │ │ │ +73#endif │ │ │ │ │ +74#endif │ │ │ │ │ +75 │ │ │ │ │ +_8_1typedef struct _t_d_s___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s │ │ │ │ │ +82{ │ │ │ │ │ +83 const char *freetds_version; /* release version of FreeTDS */ │ │ │ │ │ +84 const char *sysconfdir; /* location of freetds.conf */ │ │ │ │ │ +85 const char *last_update; /* latest software_version date among the modules │ │ │ │ │ +*/ │ │ │ │ │ +86 const char *tdsver; /* TDS protocol version (4.2/4.6/5.0/7.0/7.1) 5.0 */ │ │ │ │ │ +87 bool msdblib; /* for MS style dblib */ │ │ │ │ │ +88 bool sybase_compat; /* enable increased Open Client binary compatibility */ │ │ │ │ │ +89 bool threadsafe; /* compile for thread safety default=no */ │ │ │ │ │ +90 bool libiconv; /* search for libiconv in DIR/include and DIR/lib */ │ │ │ │ │ +91 bool iodbc; /* build odbc driver against iODBC in DIR */ │ │ │ │ │ +92 bool unixodbc; /* build odbc driver against unixODBC in DIR */ │ │ │ │ │ +93 bool openssl; /* build against OpenSSL */ │ │ │ │ │ +94 bool gnutls; /* build against GnuTLS */ │ │ │ │ │ +95 bool mars; /* MARS enabled */ │ │ │ │ │ +96 bool sspi; /* SSPI enabled */ │ │ │ │ │ +97 bool kerberos; /* Kerberos enabled */ │ │ │ │ │ +_9_8} _T_D_S___C_O_M_P_I_L_E_T_I_M_E___S_E_T_T_I_N_G_S; │ │ │ │ │ +99 │ │ │ │ │ +115/* │ │ │ │ │ +116 * All references to data that touch the wire should use the following │ │ │ │ │ +typedefs. │ │ │ │ │ +117 * │ │ │ │ │ +118 * If you have problems on 64-bit machines and the code is │ │ │ │ │ +119 * using a native datatype, please change it to use │ │ │ │ │ +120 * these. (In the TDS layer only, the API layers have their │ │ │ │ │ +121 * own typedefs which equate to these). │ │ │ │ │ +122 */ │ │ │ │ │ +123typedef char TDS_CHAR; /* 8-bit char */ │ │ │ │ │ +124typedef uint8_t TDS_UCHAR; /* 8-bit uchar */ │ │ │ │ │ +125typedef uint8_t TDS_TINYINT; /* 8-bit unsigned */ │ │ │ │ │ +126typedef int16_t TDS_SMALLINT; /* 16-bit int */ │ │ │ │ │ +127typedef uint16_t TDS_USMALLINT; /* 16-bit unsigned */ │ │ │ │ │ +128typedef int32_t TDS_INT; /* 32-bit int */ │ │ │ │ │ +129typedef uint32_t TDS_UINT; /* 32-bit unsigned */ │ │ │ │ │ +130typedef int64_t TDS_INT8; /* 64-bit integer */ │ │ │ │ │ +131typedef uint64_t TDS_UINT8; /* 64-bit unsigned */ │ │ │ │ │ +132typedef intptr_t TDS_INTPTR; │ │ │ │ │ +133typedef uintptr_t TDS_UINTPTR; │ │ │ │ │ +134typedef tds_sysdep_real32_type TDS_REAL; /* 32-bit real */ │ │ │ │ │ +135typedef tds_sysdep_real64_type TDS_FLOAT; /* 64-bit real */ │ │ │ │ │ +136 │ │ │ │ │ +137#include │ │ │ │ │ +138 │ │ │ │ │ +139#define TDS_INVALID_TYPE ((TDS_SERVER_TYPE) 0) │ │ │ │ │ +140 │ │ │ │ │ +_1_4_5typedef struct │ │ │ │ │ +146{ │ │ │ │ │ +_1_4_7 TDS_UINT8 _t_i_m_e; │ │ │ │ │ +_1_4_8 TDS_INT _d_a_t_e; │ │ │ │ │ +_1_4_9 TDS_SMALLINT _o_f_f_s_e_t; │ │ │ │ │ +150 TDS_USMALLINT time_prec:3; │ │ │ │ │ +151 TDS_USMALLINT _tds_reserved:10; │ │ │ │ │ +152 TDS_USMALLINT has_time:1; │ │ │ │ │ +153 TDS_USMALLINT has_date:1; │ │ │ │ │ +154 TDS_USMALLINT has_offset:1; │ │ │ │ │ +155} _T_D_S___D_A_T_E_T_I_M_E_A_L_L; │ │ │ │ │ +156 │ │ │ │ │ +_1_5_8typedef struct _t_d_s_d_a_t_e_r_e_c │ │ │ │ │ +159{ │ │ │ │ │ +_1_6_0 TDS_INT _y_e_a_r; │ │ │ │ │ +_1_6_1 TDS_INT _q_u_a_r_t_e_r; │ │ │ │ │ +_1_6_2 TDS_INT _m_o_n_t_h; │ │ │ │ │ +_1_6_3 TDS_INT _d_a_y; │ │ │ │ │ +_1_6_4 TDS_INT _d_a_y_o_f_y_e_a_r; │ │ │ │ │ +_1_6_5 TDS_INT _w_e_e_k_d_a_y; │ │ │ │ │ +_1_6_6 TDS_INT _h_o_u_r; │ │ │ │ │ +_1_6_7 TDS_INT _m_i_n_u_t_e; │ │ │ │ │ +_1_6_8 TDS_INT _s_e_c_o_n_d; │ │ │ │ │ +_1_6_9 TDS_INT _d_e_c_i_m_i_c_r_o_s_e_c_o_n_d; │ │ │ │ │ +_1_7_0 TDS_INT _t_i_m_e_z_o_n_e; │ │ │ │ │ +_1_7_1} _T_D_S_D_A_T_E_R_E_C; │ │ │ │ │ +172 │ │ │ │ │ +178extern const int _t_d_s___n_u_m_e_r_i_c___b_y_t_e_s___p_e_r___p_r_e_c[]; │ │ │ │ │ +179 │ │ │ │ │ +180typedef int TDSRET; │ │ │ │ │ +181#define TDS_NO_MORE_RESULTS ((TDSRET)1) │ │ │ │ │ +182#define TDS_SUCCESS ((TDSRET)0) │ │ │ │ │ +183#define TDS_FAIL ((TDSRET)-1) │ │ │ │ │ +184#define TDS_CANCELLED ((TDSRET)-2) │ │ │ │ │ +185#define TDS_FAILED(rc) ((rc)<0) │ │ │ │ │ +186#define TDS_SUCCEED(rc) ((rc)>=0) │ │ │ │ │ +187#define TDS_PROPAGATE(rc) \ │ │ │ │ │ +188 do { TDSRET _tds_ret = (rc); if (TDS_FAILED(_tds_ret)) return _tds_ret; } │ │ │ │ │ +while(0) │ │ │ │ │ +189 │ │ │ │ │ +190#define TDS_INT_CONTINUE 1 │ │ │ │ │ +191#define TDS_INT_CANCEL 2 │ │ │ │ │ +192#define TDS_INT_TIMEOUT 3 │ │ │ │ │ +193 │ │ │ │ │ +194 │ │ │ │ │ +195#define TDS_NO_COUNT -1 │ │ │ │ │ +196 │ │ │ │ │ +197#define TDS_ROW_RESULT 4040 │ │ │ │ │ +198#define TDS_PARAM_RESULT 4042 │ │ │ │ │ +199#define TDS_STATUS_RESULT 4043 │ │ │ │ │ +200#define TDS_MSG_RESULT 4044 │ │ │ │ │ +201#define TDS_COMPUTE_RESULT 4045 │ │ │ │ │ +202#define TDS_CMD_DONE 4046 │ │ │ │ │ +203#define TDS_CMD_SUCCEED 4047 │ │ │ │ │ +204#define TDS_CMD_FAIL 4048 │ │ │ │ │ +205#define TDS_ROWFMT_RESULT 4049 │ │ │ │ │ +206#define TDS_COMPUTEFMT_RESULT 4050 │ │ │ │ │ +207#define TDS_DESCRIBE_RESULT 4051 │ │ │ │ │ +208#define TDS_DONE_RESULT 4052 │ │ │ │ │ +209#define TDS_DONEPROC_RESULT 4053 │ │ │ │ │ +210#define TDS_DONEINPROC_RESULT 4054 │ │ │ │ │ +211#define TDS_OTHERS_RESULT 4055 │ │ │ │ │ +212 │ │ │ │ │ +213enum tds_token_results │ │ │ │ │ +214{ │ │ │ │ │ +215 TDS_TOKEN_RES_OTHERS, │ │ │ │ │ +216 TDS_TOKEN_RES_ROWFMT, │ │ │ │ │ +217 TDS_TOKEN_RES_COMPUTEFMT, │ │ │ │ │ +218 TDS_TOKEN_RES_PARAMFMT, │ │ │ │ │ +219 TDS_TOKEN_RES_DONE, │ │ │ │ │ +220 TDS_TOKEN_RES_ROW, │ │ │ │ │ +221 TDS_TOKEN_RES_COMPUTE, │ │ │ │ │ +222 TDS_TOKEN_RES_PROC, │ │ │ │ │ +223 TDS_TOKEN_RES_MSG, │ │ │ │ │ +224 TDS_TOKEN_RES_ENV, │ │ │ │ │ +225}; │ │ │ │ │ +226 │ │ │ │ │ +227#define TDS_TOKEN_FLAG(flag) TDS_RETURN_##flag = (1 << │ │ │ │ │ +(TDS_TOKEN_RES_##flag*2)), TDS_STOPAT_##flag = (2 << (TDS_TOKEN_RES_##flag*2)) │ │ │ │ │ +228 │ │ │ │ │ +229enum tds_token_flags │ │ │ │ │ +230{ │ │ │ │ │ +231 TDS_HANDLE_ALL = 0, │ │ │ │ │ +232 TDS_TOKEN_FLAG(OTHERS), │ │ │ │ │ +233 TDS_TOKEN_FLAG(ROWFMT), │ │ │ │ │ +234 TDS_TOKEN_FLAG(COMPUTEFMT), │ │ │ │ │ +235 TDS_TOKEN_FLAG(PARAMFMT), │ │ │ │ │ +236 TDS_TOKEN_FLAG(DONE), │ │ │ │ │ +237 TDS_TOKEN_FLAG(ROW), │ │ │ │ │ +238 TDS_TOKEN_FLAG(COMPUTE), │ │ │ │ │ +239 TDS_TOKEN_FLAG(PROC), │ │ │ │ │ +240 TDS_TOKEN_FLAG(MSG), │ │ │ │ │ +241 TDS_TOKEN_FLAG(ENV), │ │ │ │ │ +242 TDS_TOKEN_RESULTS = │ │ │ │ │ +TDS_RETURN_ROWFMT|TDS_RETURN_COMPUTEFMT|TDS_RETURN_DONE|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_RETURN_PROC, │ │ │ │ │ +243 TDS_TOKEN_TRAILING = │ │ │ │ │ +TDS_STOPAT_ROWFMT|TDS_STOPAT_COMPUTEFMT|TDS_STOPAT_ROW|TDS_STOPAT_COMPUTE|TDS_STOPAT_MSG|TDS_STOPAT_OTHERS │ │ │ │ │ +244}; │ │ │ │ │ +245 │ │ │ │ │ +_2_4_9enum _t_d_s___e_n_d │ │ │ │ │ +250{ │ │ │ │ │ +251 _T_D_S___D_O_N_E___F_I_N_A_L = 0x00 │ │ │ │ │ +_2_5_2 , _T_D_S___D_O_N_E___M_O_R_E___R_E_S_U_L_T_S = 0x01 │ │ │ │ │ +_2_5_3 , _T_D_S___D_O_N_E___E_R_R_O_R = 0x02 │ │ │ │ │ +_2_5_4 , _T_D_S___D_O_N_E___I_N_X_A_C_T = 0x04 │ │ │ │ │ +_2_5_5 , _T_D_S___D_O_N_E___P_R_O_C = 0x08 │ │ │ │ │ +_2_5_6 , _T_D_S___D_O_N_E___C_O_U_N_T = 0x10 │ │ │ │ │ +_2_5_7 , _T_D_S___D_O_N_E___C_A_N_C_E_L_L_E_D = 0x20 │ │ │ │ │ +_2_5_8 , TDS_DONE_EVENT = 0x40 /* part of an event notification. */ │ │ │ │ │ +259 , _T_D_S___D_O_N_E___S_R_V_E_R_R_O_R = 0x100 │ │ │ │ │ +261 /* after the above flags, a TDS_DONE packet has a field describing the │ │ │ │ │ +state of the transaction */ │ │ │ │ │ +_2_6_2 , TDS_DONE_NO_TRAN = 0 /* No transaction in effect */ │ │ │ │ │ +263 , TDS_DONE_TRAN_SUCCEED = 1 /* Transaction completed successfully */ │ │ │ │ │ +264 , TDS_DONE_TRAN_PROGRESS= 2 /* Transaction in progress */ │ │ │ │ │ +265 , TDS_DONE_STMT_ABORT = 3 /* A statement aborted */ │ │ │ │ │ +266 , TDS_DONE_TRAN_ABORT = 4 /* Transaction aborted */ │ │ │ │ │ +267}; │ │ │ │ │ +268 │ │ │ │ │ +269 │ │ │ │ │ +270/* │ │ │ │ │ +271 * TDSERRNO is emitted by libtds to the client library's error handler │ │ │ │ │ +272 * (which may in turn call the client's error handler). │ │ │ │ │ +273 * These match the db-lib msgno, because the same values have the same │ │ │ │ │ +meaning │ │ │ │ │ +274 * in db-lib and ODBC. ct-lib maps them to ct-lib numbers (todo). │ │ │ │ │ +275 */ │ │ │ │ │ +276typedef enum { TDSEOK = TDS_SUCCESS, │ │ │ │ │ +277 TDSEVERDOWN = 100, │ │ │ │ │ +278 TDSEINPROGRESS, │ │ │ │ │ +279 TDSEICONVIU = 2400, │ │ │ │ │ +280 TDSEICONVAVAIL = 2401, │ │ │ │ │ +281 TDSEICONVO = 2402, │ │ │ │ │ +282 TDSEICONVI = 2403, │ │ │ │ │ +283 TDSEICONV2BIG = 2404, │ │ │ │ │ +284 TDSEPORTINSTANCE = 2500, │ │ │ │ │ +285 TDSESYNC = 20001, │ │ │ │ │ +286 TDSEFCON = 20002, │ │ │ │ │ +287 TDSETIME = 20003, │ │ │ │ │ +288 TDSEREAD = 20004, │ │ │ │ │ +289 TDSEWRIT = 20006, │ │ │ │ │ +290 TDSESOCK = 20008, │ │ │ │ │ +291 TDSECONN = 20009, │ │ │ │ │ +292 TDSEMEM = 20010, │ │ │ │ │ +293 TDSEINTF = 20012, /* Server name not found in interface file */ │ │ │ │ │ +294 TDSEUHST = 20013, /* Unknown host machine name. */ │ │ │ │ │ +295 TDSEPWD = 20014, │ │ │ │ │ +296 TDSESEOF = 20017, │ │ │ │ │ +297 TDSERPND = 20019, │ │ │ │ │ +298 TDSEBTOK = 20020, │ │ │ │ │ +299 TDSEOOB = 20022, │ │ │ │ │ +300 TDSECLOS = 20056, │ │ │ │ │ +301 TDSEUSCT = 20058, │ │ │ │ │ +302 TDSEUTDS = 20146, │ │ │ │ │ +303 TDSEEUNR = 20185, │ │ │ │ │ +304 TDSECAP = 20203, │ │ │ │ │ +305 TDSENEG = 20210, │ │ │ │ │ +306 TDSEUMSG = 20212, │ │ │ │ │ +307 TDSECAPTYP = 20213, │ │ │ │ │ +308 TDSECONF = 20214, │ │ │ │ │ +309 TDSEBPROBADTYP = 20250, │ │ │ │ │ +310 TDSECLOSEIN = 20292 │ │ │ │ │ +311} TDSERRNO; │ │ │ │ │ +312 │ │ │ │ │ +313 │ │ │ │ │ +314enum { │ │ │ │ │ +315 TDS_CUR_ISTAT_UNUSED = 0x00, │ │ │ │ │ +316 TDS_CUR_ISTAT_DECLARED = 0x01, │ │ │ │ │ +317 TDS_CUR_ISTAT_OPEN = 0x02, │ │ │ │ │ +318 TDS_CUR_ISTAT_CLOSED = 0x04, │ │ │ │ │ +319 TDS_CUR_ISTAT_RDONLY = 0x08, │ │ │ │ │ +320 TDS_CUR_ISTAT_UPDATABLE = 0x10, │ │ │ │ │ +321 TDS_CUR_ISTAT_ROWCNT = 0x20, │ │ │ │ │ +322 TDS_CUR_ISTAT_DEALLOC = 0x40 │ │ │ │ │ +323}; │ │ │ │ │ +324 │ │ │ │ │ +325/* string types */ │ │ │ │ │ +326#define TDS_NULLTERM -9 │ │ │ │ │ +327 │ │ │ │ │ +328 │ │ │ │ │ +_3_2_9typedef union _t_d_s___o_p_t_i_o_n___a_r_g │ │ │ │ │ +330{ │ │ │ │ │ +331 TDS_TINYINT ti; │ │ │ │ │ +332 TDS_INT i; │ │ │ │ │ +333 TDS_CHAR *c; │ │ │ │ │ +334} _T_D_S___O_P_T_I_O_N___A_R_G; │ │ │ │ │ +335 │ │ │ │ │ +336 │ │ │ │ │ +337typedef enum tds_encryption_level { │ │ │ │ │ +338 TDS_ENCRYPTION_DEFAULT, │ │ │ │ │ +339 TDS_ENCRYPTION_OFF, │ │ │ │ │ +340 TDS_ENCRYPTION_REQUEST, │ │ │ │ │ +341 TDS_ENCRYPTION_REQUIRE │ │ │ │ │ +342} TDS_ENCRYPTION_LEVEL; │ │ │ │ │ +343 │ │ │ │ │ +344/* │ │ │ │ │ +345 * TODO use system macros for optimization │ │ │ │ │ +346 * See mcrypt for reference and linux kernel source for optimization │ │ │ │ │ +347 * check if unaligned access and use fast write/read when implemented │ │ │ │ │ +348 */ │ │ │ │ │ +349#define TDS_BYTE_SWAP16(value) \ │ │ │ │ │ +350 (((((uint16_t)value)<<8) & 0xFF00u) | \ │ │ │ │ │ +351 ((((uint16_t)value)>>8) & 0x00FFu)) │ │ │ │ │ +352 │ │ │ │ │ +353#define TDS_BYTE_SWAP32(value) \ │ │ │ │ │ +354 (((((uint32_t)value)<<24) & 0xFF000000u)| \ │ │ │ │ │ +355 ((((uint32_t)value)<< 8) & 0x00FF0000u)| \ │ │ │ │ │ +356 ((((uint32_t)value)>> 8) & 0x0000FF00u)| \ │ │ │ │ │ +357 ((((uint32_t)value)>>24) & 0x000000FFu)) │ │ │ │ │ +358 │ │ │ │ │ +359#define is_end_token(x) ((x) >= TDS_DONE_TOKEN && (x) <= │ │ │ │ │ +TDS_DONEINPROC_TOKEN) │ │ │ │ │ +360 │ │ │ │ │ +361enum { │ │ │ │ │ +362 TDS_TYPEFLAG_INVALID = 0, │ │ │ │ │ +363 TDS_TYPEFLAG_NULLABLE = 1, │ │ │ │ │ +364 TDS_TYPEFLAG_FIXED = 2, │ │ │ │ │ +365 TDS_TYPEFLAG_VARIABLE = 4, │ │ │ │ │ +366 TDS_TYPEFLAG_COLLATE = 8, │ │ │ │ │ +367 TDS_TYPEFLAG_ASCII = 16, │ │ │ │ │ +368 TDS_TYPEFLAG_UNICODE = 32, │ │ │ │ │ +369 TDS_TYPEFLAG_BINARY = 64, │ │ │ │ │ +370 TDS_TYPEFLAG_DATETIME = 128, │ │ │ │ │ +371 TDS_TYPEFLAG_NUMERIC = 256, │ │ │ │ │ +372 TDS_TYPEFLAG_VARIANT = 512, │ │ │ │ │ +373}; │ │ │ │ │ +374 │ │ │ │ │ +375extern const uint16_t tds_type_flags_ms[256]; │ │ │ │ │ +376#if 0 │ │ │ │ │ +377extern const uint16_t tds_type_flags_syb[256]; │ │ │ │ │ +378extern const char *const tds_type_names[256]; │ │ │ │ │ +379#endif │ │ │ │ │ +380 │ │ │ │ │ +381#define is_fixed_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_FIXED) != 0) │ │ │ │ │ +382#define is_nullable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_NULLABLE) │ │ │ │ │ +!= 0) │ │ │ │ │ +383#define is_variable_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) │ │ │ │ │ +!= 0) │ │ │ │ │ +384#define is_variant_inner_type(x) ((tds_type_flags_ms[x] & │ │ │ │ │ +TDS_TYPEFLAG_VARIANT) != 0) │ │ │ │ │ +385 │ │ │ │ │ +386 │ │ │ │ │ +387#define is_blob_type(x) ((x)==SYBTEXT || (x)==SYBIMAGE || (x)==SYBNTEXT) │ │ │ │ │ +388#define is_blob_col(x) ((x)->column_varint_size > 2) │ │ │ │ │ +389/* large type means it has a two byte size field */ │ │ │ │ │ +390/* define is_large_type(x) (x>128) */ │ │ │ │ │ +391#define is_numeric_type(x) ((x)==SYBNUMERIC || (x)==SYBDECIMAL) │ │ │ │ │ +_3_9_3#define is_datetime_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_DATETIME) │ │ │ │ │ +!= 0) │ │ │ │ │ +394#define is_unicode_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != │ │ │ │ │ +0) │ │ │ │ │ +395#define is_collate_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_COLLATE) != │ │ │ │ │ +0) │ │ │ │ │ +396#define is_ascii_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_ASCII) != 0) │ │ │ │ │ +397#define is_binary_type(x) ((tds_type_flags_ms[x] & TDS_TYPEFLAG_BINARY) != │ │ │ │ │ +0) │ │ │ │ │ +398#define is_char_type(x) ((tds_type_flags_ms[x] & │ │ │ │ │ +(TDS_TYPEFLAG_ASCII|TDS_TYPEFLAG_UNICODE)) != 0) │ │ │ │ │ +399#define is_similar_type(x, y) (is_char_type(x) && is_char_type(y)) │ │ │ │ │ +400static inline │ │ │ │ │ +401bool is_tds_type_valid(int type) │ │ │ │ │ +402{ │ │ │ │ │ +403 return (unsigned) type < 256u && tds_type_flags_ms[type] != 0; │ │ │ │ │ +404} │ │ │ │ │ +405 │ │ │ │ │ +406 │ │ │ │ │ +407#define TDS_MAX_CAPABILITY 32 │ │ │ │ │ +408#define MAXPRECISION 77 │ │ │ │ │ +409#define TDS_MAX_CONN 4096 │ │ │ │ │ +410#define TDS_MAX_DYNID_LEN 30 │ │ │ │ │ +411 │ │ │ │ │ +412/* defaults to use if no others are found */ │ │ │ │ │ +413#define TDS_DEF_SERVER "SYBASE" │ │ │ │ │ +414#define TDS_DEF_BLKSZ 512 │ │ │ │ │ +415#define TDS_DEF_CHARSET "iso_1" │ │ │ │ │ +416#define TDS_DEF_LANG "us_english" │ │ │ │ │ +417#if TDS50 │ │ │ │ │ +418#define TDS_DEFAULT_VERSION 0x500 │ │ │ │ │ +419#define TDS_DEF_PORT 4000 │ │ │ │ │ +420#elif TDS71 │ │ │ │ │ +421#define TDS_DEFAULT_VERSION 0x701 │ │ │ │ │ +422#define TDS_DEF_PORT 1433 │ │ │ │ │ +423#elif TDS72 │ │ │ │ │ +424#define TDS_DEFAULT_VERSION 0x702 │ │ │ │ │ +425#define TDS_DEF_PORT 1433 │ │ │ │ │ +426#elif TDS73 │ │ │ │ │ +427#define TDS_DEFAULT_VERSION 0x703 │ │ │ │ │ +428#define TDS_DEF_PORT 1433 │ │ │ │ │ +429#elif TDS74 │ │ │ │ │ +430#define TDS_DEFAULT_VERSION 0x704 │ │ │ │ │ +431#define TDS_DEF_PORT 1433 │ │ │ │ │ +432#else │ │ │ │ │ +433#define TDS_DEFAULT_VERSION 0x000 │ │ │ │ │ +434#define TDS_DEF_PORT 1433 │ │ │ │ │ +435#endif │ │ │ │ │ +436 │ │ │ │ │ +437/* normalized strings from freetds.conf file */ │ │ │ │ │ +438#define TDS_STR_VERSION "tds version" │ │ │ │ │ +439#define TDS_STR_BLKSZ "initial block size" │ │ │ │ │ +440#define TDS_STR_SWAPDT "swap broken dates" │ │ │ │ │ +441#define TDS_STR_DUMPFILE "dump file" │ │ │ │ │ +442#define TDS_STR_DEBUGLVL "debug level" │ │ │ │ │ +443#define TDS_STR_DEBUGFLAGS "debug flags" │ │ │ │ │ +444#define TDS_STR_TIMEOUT "timeout" │ │ │ │ │ +445#define TDS_STR_QUERY_TIMEOUT "query timeout" │ │ │ │ │ +446#define TDS_STR_CONNTIMEOUT "connect timeout" │ │ │ │ │ +447#define TDS_STR_HOSTNAME "hostname" │ │ │ │ │ +448#define TDS_STR_HOST "host" │ │ │ │ │ +449#define TDS_STR_PORT "port" │ │ │ │ │ +450#define TDS_STR_TEXTSZ "text size" │ │ │ │ │ +451/* for big endian hosts, obsolete, ignored */ │ │ │ │ │ +452#define TDS_STR_EMUL_LE "emulate little endian" │ │ │ │ │ +453#define TDS_STR_CHARSET "charset" │ │ │ │ │ +454#define TDS_STR_CLCHARSET "client charset" │ │ │ │ │ +455#define TDS_STR_USE_UTF_16 "use utf-16" │ │ │ │ │ +456#define TDS_STR_LANGUAGE "language" │ │ │ │ │ +457#define TDS_STR_APPENDMODE "dump file append" │ │ │ │ │ +458#define TDS_STR_DATEFMT "date format" │ │ │ │ │ +459#define TDS_STR_INSTANCE "instance" │ │ │ │ │ +460#define TDS_STR_ASA_DATABASE "asa database" │ │ │ │ │ +461#define TDS_STR_DATABASE "database" │ │ │ │ │ +462#define TDS_STR_ENCRYPTION "encryption" │ │ │ │ │ +463#define TDS_STR_USENTLMV2 "use ntlmv2" │ │ │ │ │ +464#define TDS_STR_USELANMAN "use lanman" │ │ │ │ │ +465/* conf values */ │ │ │ │ │ +466#define TDS_STR_ENCRYPTION_OFF "off" │ │ │ │ │ +467#define TDS_STR_ENCRYPTION_REQUEST "request" │ │ │ │ │ +468#define TDS_STR_ENCRYPTION_REQUIRE "require" │ │ │ │ │ +469/* Defines to enable optional GSSAPI delegation */ │ │ │ │ │ +470#define TDS_GSSAPI_DELEGATION "enable gssapi delegation" │ │ │ │ │ +471/* Mutual authentication */ │ │ │ │ │ +472#define TDS_STR_MUTUAL_AUTHENTICATION "mutual authentication" │ │ │ │ │ +473/* Kerberos realm name */ │ │ │ │ │ +474#define TDS_STR_REALM "realm" │ │ │ │ │ +475/* Kerberos SPN */ │ │ │ │ │ +476#define TDS_STR_SPN "spn" │ │ │ │ │ +477/* CA file */ │ │ │ │ │ +478#define TDS_STR_CAFILE "ca file" │ │ │ │ │ +479/* CRL file */ │ │ │ │ │ +480#define TDS_STR_CRLFILE "crl file" │ │ │ │ │ +481/* check SSL hostname */ │ │ │ │ │ +482#define TDS_STR_CHECKSSLHOSTNAME "check certificate hostname" │ │ │ │ │ +483/* database filename to attach on login (MSSQL) */ │ │ │ │ │ +484#define TDS_STR_DBFILENAME "database filename" │ │ │ │ │ +485/* Application Intent MSSQL 2012 support */ │ │ │ │ │ +486#define TDS_STR_READONLY_INTENT "read-only intent" │ │ │ │ │ +487/* configurable cipher suite to send to openssl's SSL_set_cipher_list() │ │ │ │ │ +function */ │ │ │ │ │ +488#define TLS_STR_OPENSSL_CIPHERS "openssl ciphers" │ │ │ │ │ +489/* enable old TLS v1, required for instance if you are using a really old │ │ │ │ │ +Windows XP */ │ │ │ │ │ +490#define TDS_STR_ENABLE_TLS_V1 "enable tls v1" │ │ │ │ │ +491 │ │ │ │ │ +492 │ │ │ │ │ +493/* TODO do a better check for alignment than this */ │ │ │ │ │ +_4_9_4typedef union │ │ │ │ │ +495{ │ │ │ │ │ +496 void *p; │ │ │ │ │ +497 int i; │ │ │ │ │ +498 int64_t ui; │ │ │ │ │ +499} _t_d_s___a_l_i_g_n___s_t_r_u_c_t; │ │ │ │ │ +500 │ │ │ │ │ +501#define TDS_ALIGN_SIZE sizeof(tds_align_struct) │ │ │ │ │ +502 │ │ │ │ │ +_5_0_3typedef struct _t_d_s___c_a_p_a_b_i_l_i_t_y___t_y_p_e │ │ │ │ │ +504{ │ │ │ │ │ +505 unsigned char type; │ │ │ │ │ +506 unsigned char len; /* always sizeof(values) */ │ │ │ │ │ +507 unsigned char values[TDS_MAX_CAPABILITY/2-2]; │ │ │ │ │ +508} _T_D_S___C_A_P_A_B_I_L_I_T_Y___T_Y_P_E; │ │ │ │ │ +509 │ │ │ │ │ +_5_1_0typedef struct _t_d_s___c_a_p_a_b_i_l_i_t_i_e_s │ │ │ │ │ +511{ │ │ │ │ │ +512 _T_D_S___C_A_P_A_B_I_L_I_T_Y___T_Y_P_E types[2]; │ │ │ │ │ +513} _T_D_S___C_A_P_A_B_I_L_I_T_I_E_S; │ │ │ │ │ +514 │ │ │ │ │ +515#define TDS_MAX_LOGIN_STR_SZ 128 │ │ │ │ │ +_5_1_6typedef struct _t_d_s___l_o_g_i_n │ │ │ │ │ +517{ │ │ │ │ │ +_5_1_8 _D_S_T_R _s_e_r_v_e_r___n_a_m_e; │ │ │ │ │ +_5_1_9 int _p_o_r_t; │ │ │ │ │ +_5_2_0 TDS_USMALLINT _t_d_s___v_e_r_s_i_o_n; │ │ │ │ │ +521 int block_size; │ │ │ │ │ +522 _D_S_T_R language; /* e.g. us-english */ │ │ │ │ │ +_5_2_3 _D_S_T_R _s_e_r_v_e_r___c_h_a_r_s_e_t; │ │ │ │ │ +524 TDS_INT connect_timeout; │ │ │ │ │ +525 _D_S_T_R client_host_name; │ │ │ │ │ +526 _D_S_T_R server_host_name; │ │ │ │ │ +_5_2_7 _D_S_T_R _s_e_r_v_e_r___r_e_a_l_m___n_a_m_e; │ │ │ │ │ +_5_2_8 _D_S_T_R _s_e_r_v_e_r___s_p_n; │ │ │ │ │ +_5_2_9 _D_S_T_R _d_b___f_i_l_e_n_a_m_e; │ │ │ │ │ +_5_3_0 _D_S_T_R _c_a_f_i_l_e; │ │ │ │ │ +_5_3_1 _D_S_T_R _c_r_l_f_i_l_e; │ │ │ │ │ +532 _D_S_T_R openssl_ciphers; │ │ │ │ │ +533 _D_S_T_R app_name; │ │ │ │ │ +_5_3_4 _D_S_T_R _u_s_e_r___n_a_m_e; │ │ │ │ │ +_5_3_5 _D_S_T_R _p_a_s_s_w_o_r_d; │ │ │ │ │ +_5_3_6 _D_S_T_R _n_e_w___p_a_s_s_w_o_r_d; │ │ │ │ │ +538 _D_S_T_R library; /* Ct-Library, DB-Library, TDS-Library or ODBC */ │ │ │ │ │ +539 TDS_TINYINT encryption_level; │ │ │ │ │ +540 │ │ │ │ │ +541 TDS_INT query_timeout; │ │ │ │ │ +542 _T_D_S___C_A_P_A_B_I_L_I_T_I_E_S capabilities; │ │ │ │ │ +543 _D_S_T_R client_charset; │ │ │ │ │ +544 _D_S_T_R database; │ │ │ │ │ +545 │ │ │ │ │ +_5_4_6 struct addrinfo *_i_p___a_d_d_r_s; │ │ │ │ │ +547 _D_S_T_R instance_name; │ │ │ │ │ +548 _D_S_T_R dump_file; │ │ │ │ │ +549 int debug_flags; │ │ │ │ │ +550 int text_size; │ │ │ │ │ +551 _D_S_T_R routing_address; │ │ │ │ │ +552 uint16_t routing_port; │ │ │ │ │ +553 │ │ │ │ │ +554 unsigned char option_flag2; │ │ │ │ │ +555 │ │ │ │ │ +_5_5_6 unsigned int _b_u_l_k___c_o_p_y:1; │ │ │ │ │ +557 unsigned int suppress_language:1; │ │ │ │ │ +558 unsigned int gssapi_use_delegation:1; │ │ │ │ │ +559 unsigned int mutual_authentication:1; │ │ │ │ │ +560 unsigned int use_ntlmv2:1; │ │ │ │ │ +561 unsigned int use_ntlmv2_specified:1; │ │ │ │ │ +562 unsigned int use_lanman:1; │ │ │ │ │ +563 unsigned int mars:1; │ │ │ │ │ +564 unsigned int use_utf16:1; │ │ │ │ │ +565 unsigned int use_new_password:1; │ │ │ │ │ +566 unsigned int valid_configuration:1; │ │ │ │ │ +567 unsigned int check_ssl_hostname:1; │ │ │ │ │ +568 unsigned int readonly_intent:1; │ │ │ │ │ +569 unsigned int enable_tls_v1:1; │ │ │ │ │ +570 unsigned int server_is_valid:1; │ │ │ │ │ +571} _T_D_S_L_O_G_I_N; │ │ │ │ │ +572 │ │ │ │ │ +_5_7_3typedef struct _t_d_s___h_e_a_d_e_r_s │ │ │ │ │ +574{ │ │ │ │ │ +575 const char *qn_options; │ │ │ │ │ +576 const char *qn_msgtext; │ │ │ │ │ +577 TDS_INT qn_timeout; │ │ │ │ │ +578 /* TDS 7.4+: trace activity ID char[20] */ │ │ │ │ │ +579} _T_D_S_H_E_A_D_E_R_S; │ │ │ │ │ +580 │ │ │ │ │ +_5_8_1typedef struct _t_d_s___l_o_c_a_l_e │ │ │ │ │ +582{ │ │ │ │ │ +583 char *language; │ │ │ │ │ +584 char *server_charset; │ │ │ │ │ +585 char *date_fmt; │ │ │ │ │ +586} _T_D_S_L_O_C_A_L_E; │ │ │ │ │ +587 │ │ │ │ │ +_5_9_2typedef struct _t_d_s___b_l_o_b │ │ │ │ │ +593{ │ │ │ │ │ +594 TDS_CHAR *textvalue; │ │ │ │ │ +595 TDS_CHAR textptr[16]; │ │ │ │ │ +596 TDS_CHAR timestamp[8]; │ │ │ │ │ +597 unsigned char valid_ptr; │ │ │ │ │ +_5_9_8} _T_D_S_B_L_O_B; │ │ │ │ │ +599 │ │ │ │ │ +_6_0_3typedef struct _t_d_s___v_a_r_i_a_n_t │ │ │ │ │ +604{ │ │ │ │ │ +605 /* this MUST have same position and place of textvalue in tds_blob */ │ │ │ │ │ +606 TDS_CHAR *data; │ │ │ │ │ +607 TDS_INT size; │ │ │ │ │ +608 TDS_INT data_len; │ │ │ │ │ +609 TDS_SERVER_TYPE type; │ │ │ │ │ +610 TDS_UCHAR collation[5]; │ │ │ │ │ +_6_1_1} _T_D_S_V_A_R_I_A_N_T; │ │ │ │ │ +612 │ │ │ │ │ +_6_1_7typedef struct _t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ +618{ │ │ │ │ │ +_6_2_0 const char *_n_a_m_e; │ │ │ │ │ +621 unsigned char min_bytes_per_char; │ │ │ │ │ +622 unsigned char max_bytes_per_char; │ │ │ │ │ +_6_2_4 unsigned char _c_a_n_o_n_i_c; │ │ │ │ │ +_6_2_5} _T_D_S___E_N_C_O_D_I_N_G; │ │ │ │ │ +626 │ │ │ │ │ +_6_2_7typedef struct _t_d_s___b_c_p_c_o_l_d_a_t_a │ │ │ │ │ +628{ │ │ │ │ │ +629 TDS_UCHAR *data; │ │ │ │ │ +630 TDS_INT datalen; │ │ │ │ │ +631 bool is_null; │ │ │ │ │ +632} _B_C_P_C_O_L_D_A_T_A; │ │ │ │ │ +633 │ │ │ │ │ +634 │ │ │ │ │ +635typedef TDSRET tds_func_get_info(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +636typedef TDSRET tds_func_get_data(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +637typedef TDS_INT tds_func_row_len(_T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +638typedef TDSRET tds_func_put_info(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +639typedef TDSRET tds_func_put_data(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col, int bcp7); │ │ │ │ │ +640typedef int tds_func_check(const _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +641 │ │ │ │ │ +_6_4_2typedef struct _t_d_s___c_o_l_u_m_n___f_u_n_c_s │ │ │ │ │ +643{ │ │ │ │ │ +644 tds_func_get_info *get_info; │ │ │ │ │ +645 tds_func_get_data *get_data; │ │ │ │ │ +646 tds_func_row_len *row_len; │ │ │ │ │ +_6_5_2 tds_func_put_info *_p_u_t___i_n_f_o; │ │ │ │ │ +_6_6_2 tds_func_put_data *_p_u_t___d_a_t_a; │ │ │ │ │ +663#if ENABLE_EXTRA_CHECKS │ │ │ │ │ +678 tds_func_check *check; │ │ │ │ │ +679#endif │ │ │ │ │ +680#if 0 │ │ │ │ │ +681 TDSRET (*convert)(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +682#endif │ │ │ │ │ +683} _T_D_S_C_O_L_U_M_N_F_U_N_C_S; │ │ │ │ │ +684 │ │ │ │ │ +_6_8_8struct _t_d_s___c_o_l_u_m_n │ │ │ │ │ +689{ │ │ │ │ │ +690 const _T_D_S_C_O_L_U_M_N_F_U_N_C_S *funcs; │ │ │ │ │ +691 TDS_INT column_usertype; │ │ │ │ │ +692 TDS_INT column_flags; │ │ │ │ │ +693 │ │ │ │ │ +_6_9_4 TDS_INT _c_o_l_u_m_n___s_i_z_e; │ │ │ │ │ +_6_9_6 TDS_SERVER_TYPE _c_o_l_u_m_n___t_y_p_e; │ │ │ │ │ +_7_0_1 TDS_TINYINT _c_o_l_u_m_n___v_a_r_i_n_t___s_i_z_e; │ │ │ │ │ +_7_0_3 TDS_TINYINT _c_o_l_u_m_n___p_r_e_c; │ │ │ │ │ +_7_0_4 TDS_TINYINT _c_o_l_u_m_n___s_c_a_l_e; │ │ │ │ │ +706 struct │ │ │ │ │ +707 { │ │ │ │ │ +708 TDS_SERVER_TYPE _c_o_l_u_m_n___t_y_p_e; │ │ │ │ │ +709 TDS_INT _c_o_l_u_m_n___s_i_z_e; │ │ │ │ │ +710 } on_server; │ │ │ │ │ +711 │ │ │ │ │ +_7_1_2 _T_D_S_I_C_O_N_V *_c_h_a_r___c_o_n_v; │ │ │ │ │ +714 _D_S_T_R table_name; │ │ │ │ │ +715 _D_S_T_R column_name; │ │ │ │ │ +716 _D_S_T_R table_column_name; │ │ │ │ │ +717 │ │ │ │ │ +718 unsigned char *column_data; │ │ │ │ │ +719 void (*column_data_free)(struct _t_d_s___c_o_l_u_m_n *column); │ │ │ │ │ +720 unsigned char column_nullable:1; │ │ │ │ │ +721 unsigned char column_writeable:1; │ │ │ │ │ +722 unsigned char column_identity:1; │ │ │ │ │ +723 unsigned char column_key:1; │ │ │ │ │ +724 unsigned char column_hidden:1; │ │ │ │ │ +725 unsigned char column_output:1; │ │ │ │ │ +726 unsigned char column_timestamp:1; │ │ │ │ │ +727 unsigned char column_computed:1; │ │ │ │ │ +728 TDS_UCHAR column_collation[5]; │ │ │ │ │ +729 │ │ │ │ │ +730 /* additional fields flags for compute results */ │ │ │ │ │ +731 TDS_SMALLINT column_operand; │ │ │ │ │ +732 TDS_TINYINT column_operator; │ │ │ │ │ +733 │ │ │ │ │ +734 /* FIXME this is data related, not column */ │ │ │ │ │ +_7_3_6 TDS_INT _c_o_l_u_m_n___c_u_r___s_i_z_e; │ │ │ │ │ +737 │ │ │ │ │ +738 /* related to binding or info stored by client libraries */ │ │ │ │ │ +739 /* FIXME find a best place to store these data, some are unused */ │ │ │ │ │ +740 TDS_SMALLINT column_bindtype; │ │ │ │ │ +741 TDS_SMALLINT column_bindfmt; │ │ │ │ │ +742 TDS_UINT column_bindlen; │ │ │ │ │ +743 TDS_SMALLINT *column_nullbind; │ │ │ │ │ +744 TDS_CHAR *column_varaddr; │ │ │ │ │ +745 TDS_INT *column_lenbind; │ │ │ │ │ +746 TDS_INT column_textpos; │ │ │ │ │ +747 TDS_INT column_text_sqlgetdatapos; │ │ │ │ │ +748 TDS_CHAR column_text_sqlputdatainfo; │ │ │ │ │ +749 unsigned char column_iconv_left; │ │ │ │ │ +750 char column_iconv_buf[9]; │ │ │ │ │ +751 │ │ │ │ │ +752 _B_C_P_C_O_L_D_A_T_A *bcp_column_data; │ │ │ │ │ +_7_6_1 TDS_INT _b_c_p___p_r_e_f_i_x___l_e_n; │ │ │ │ │ +762 TDS_INT bcp_term_len; │ │ │ │ │ +763 TDS_CHAR *bcp_terminator; │ │ │ │ │ +764}; │ │ │ │ │ +765 │ │ │ │ │ +766 │ │ │ │ │ +_7_6_8typedef struct _t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ +769{ │ │ │ │ │ +770 /* TODO those fields can became a struct */ │ │ │ │ │ +771 _T_D_S_C_O_L_U_M_N **columns; │ │ │ │ │ +772 TDS_USMALLINT num_cols; │ │ │ │ │ +773 TDS_USMALLINT computeid; │ │ │ │ │ +774 TDS_INT ref_count; │ │ │ │ │ +775 _T_D_S_S_O_C_K_E_T *attached_to; │ │ │ │ │ +776 unsigned char *current_row; │ │ │ │ │ +777 void (*row_free)(struct _t_d_s___r_e_s_u_l_t___i_n_f_o* result, unsigned char *row); │ │ │ │ │ +778 TDS_INT row_size; │ │ │ │ │ +779 │ │ │ │ │ +780 TDS_SMALLINT *bycolumns; │ │ │ │ │ +781 TDS_USMALLINT by_cols; │ │ │ │ │ +782 bool rows_exist; │ │ │ │ │ +783 /* TODO remove ?? used only in dblib */ │ │ │ │ │ +784 bool more_results; │ │ │ │ │ +_7_8_5} _T_D_S_R_E_S_U_L_T_I_N_F_O; │ │ │ │ │ +786 │ │ │ │ │ +_7_8_8typedef enum _t_d_s___s_t_a_t_e_s │ │ │ │ │ +789{ │ │ │ │ │ +_7_9_0 _T_D_S___I_D_L_E, │ │ │ │ │ +_7_9_1 _T_D_S___W_R_I_T_I_N_G, │ │ │ │ │ +_7_9_2 _T_D_S___S_E_N_D_I_N_G, │ │ │ │ │ +_7_9_3 _T_D_S___P_E_N_D_I_N_G, │ │ │ │ │ +_7_9_4 _T_D_S___R_E_A_D_I_N_G, │ │ │ │ │ +795 _T_D_S___D_E_A_D │ │ │ │ │ +_7_9_6} _T_D_S___S_T_A_T_E; │ │ │ │ │ +797 │ │ │ │ │ +798typedef enum tds_operations │ │ │ │ │ +799{ │ │ │ │ │ +800 TDS_OP_NONE = 0, │ │ │ │ │ +801 │ │ │ │ │ +802 /* mssql operations */ │ │ │ │ │ +803 TDS_OP_CURSOR = TDS_SP_CURSOR, │ │ │ │ │ +804 TDS_OP_CURSOROPEN = TDS_SP_CURSOROPEN, │ │ │ │ │ +805 TDS_OP_CURSORPREPARE = TDS_SP_CURSORPREPARE, │ │ │ │ │ +806 TDS_OP_CURSOREXECUTE = TDS_SP_CURSOREXECUTE, │ │ │ │ │ +807 TDS_OP_CURSORPREPEXEC = TDS_SP_CURSORPREPEXEC, │ │ │ │ │ +808 TDS_OP_CURSORUNPREPARE = TDS_SP_CURSORUNPREPARE, │ │ │ │ │ +809 TDS_OP_CURSORFETCH = TDS_SP_CURSORFETCH, │ │ │ │ │ +810 TDS_OP_CURSOROPTION = TDS_SP_CURSOROPTION, │ │ │ │ │ +811 TDS_OP_CURSORCLOSE = TDS_SP_CURSORCLOSE, │ │ │ │ │ +812 TDS_OP_EXECUTESQL = TDS_SP_EXECUTESQL, │ │ │ │ │ +813 TDS_OP_PREPARE = TDS_SP_PREPARE, │ │ │ │ │ +814 TDS_OP_EXECUTE = TDS_SP_EXECUTE, │ │ │ │ │ +815 TDS_OP_PREPEXEC = TDS_SP_PREPEXEC, │ │ │ │ │ +816 TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC, │ │ │ │ │ +817 TDS_OP_UNPREPARE = TDS_SP_UNPREPARE, │ │ │ │ │ +818 │ │ │ │ │ +819 /* sybase operations */ │ │ │ │ │ +820 TDS_OP_DYN_DEALLOC = 100, │ │ │ │ │ +821} TDS_OPERATION; │ │ │ │ │ +822 │ │ │ │ │ +823#define TDS_DBG_LOGIN __FILE__, ((__LINE__ << 4) | 11) │ │ │ │ │ +824#define TDS_DBG_HEADER __FILE__, ((__LINE__ << 4) | 10) │ │ │ │ │ +825#define TDS_DBG_FUNC __FILE__, ((__LINE__ << 4) | 7) │ │ │ │ │ +826#define TDS_DBG_INFO2 __FILE__, ((__LINE__ << 4) | 6) │ │ │ │ │ +827#define TDS_DBG_INFO1 __FILE__, ((__LINE__ << 4) | 5) │ │ │ │ │ +828#define TDS_DBG_NETWORK __FILE__, ((__LINE__ << 4) | 4) │ │ │ │ │ +829#define TDS_DBG_WARN __FILE__, ((__LINE__ << 4) | 3) │ │ │ │ │ +830#define TDS_DBG_ERROR __FILE__, ((__LINE__ << 4) | 2) │ │ │ │ │ +831#define TDS_DBG_SEVERE __FILE__, ((__LINE__ << 4) | 1) │ │ │ │ │ +832 │ │ │ │ │ +833#define TDS_DBGFLAG_FUNC 0x80 │ │ │ │ │ +834#define TDS_DBGFLAG_INFO2 0x40 │ │ │ │ │ +835#define TDS_DBGFLAG_INFO1 0x20 │ │ │ │ │ +836#define TDS_DBGFLAG_NETWORK 0x10 │ │ │ │ │ +837#define TDS_DBGFLAG_WARN 0x08 │ │ │ │ │ +838#define TDS_DBGFLAG_ERROR 0x04 │ │ │ │ │ +839#define TDS_DBGFLAG_SEVERE 0x02 │ │ │ │ │ +840#define TDS_DBGFLAG_ALL 0xfff │ │ │ │ │ +841#define TDS_DBGFLAG_LOGIN 0x0800 │ │ │ │ │ +842#define TDS_DBGFLAG_HEADER 0x0400 │ │ │ │ │ +843#define TDS_DBGFLAG_PID 0x1000 │ │ │ │ │ +844#define TDS_DBGFLAG_TIME 0x2000 │ │ │ │ │ +845#define TDS_DBGFLAG_SOURCE 0x4000 │ │ │ │ │ +846#define TDS_DBGFLAG_THREAD 0x8000 │ │ │ │ │ +847 │ │ │ │ │ +848#if 0 │ │ │ │ │ +854enum TDS_DBG_LOG_STATE │ │ │ │ │ +855{ │ │ │ │ │ +856 TDS_DBG_LOGIN = (1 << 0) │ │ │ │ │ +858 , TDS_DBG_API = (1 << 1) │ │ │ │ │ +859 , TDS_DBG_ASYNC = (1 << 2) │ │ │ │ │ +860 , TDS_DBG_DIAG = (1 << 3) │ │ │ │ │ +861 , TDS_DBG_error = (1 << 4) │ │ │ │ │ +862 /* TODO: ^^^^^ make upper case when old #defines (above) are removed */ │ │ │ │ │ +863 /* Log FreeTDS runtime/logic error occurs. */ │ │ │ │ │ +864 , TDS_DBG_PACKET = (1 << 5) │ │ │ │ │ +865 , TDS_DBG_LIBTDS = (1 << 6) │ │ │ │ │ +866 , TDS_DBG_CONFIG = (1 << 7) │ │ │ │ │ +867 , TDS_DBG_DEFAULT = 0xFE │ │ │ │ │ +868}; │ │ │ │ │ +869#endif │ │ │ │ │ +870 │ │ │ │ │ +871typedef struct _t_d_s___r_e_s_u_l_t___i_n_f_o _T_D_S_C_O_M_P_U_T_E_I_N_F_O; │ │ │ │ │ +872 │ │ │ │ │ +873typedef _T_D_S_R_E_S_U_L_T_I_N_F_O _T_D_S_P_A_R_A_M_I_N_F_O; │ │ │ │ │ +874 │ │ │ │ │ +_8_7_5typedef struct _t_d_s___m_e_s_s_a_g_e │ │ │ │ │ +876{ │ │ │ │ │ +877 TDS_CHAR *server; │ │ │ │ │ +878 TDS_CHAR *message; │ │ │ │ │ +879 TDS_CHAR *proc_name; │ │ │ │ │ +880 TDS_CHAR *sql_state; │ │ │ │ │ +881 TDS_INT msgno; │ │ │ │ │ +882 TDS_INT line_number; │ │ │ │ │ +883 /* -1 .. 255 */ │ │ │ │ │ +884 TDS_SMALLINT state; │ │ │ │ │ +885 TDS_TINYINT priv_msg_type; │ │ │ │ │ +886 TDS_TINYINT severity; │ │ │ │ │ +887 /* for library-generated errors */ │ │ │ │ │ +888 int oserr; │ │ │ │ │ +889} _T_D_S_M_E_S_S_A_G_E; │ │ │ │ │ +890 │ │ │ │ │ +_8_9_1typedef struct _t_d_s___u_p_d___c_o_l │ │ │ │ │ +892{ │ │ │ │ │ +893 struct _t_d_s___u_p_d___c_o_l *next; │ │ │ │ │ +894 TDS_INT colnamelength; │ │ │ │ │ +895 char * columnname; │ │ │ │ │ +896} _T_D_S_U_P_D_C_O_L; │ │ │ │ │ +897 │ │ │ │ │ +898typedef enum { │ │ │ │ │ +899 TDS_CURSOR_STATE_UNACTIONED = 0 /* initial value */ │ │ │ │ │ +900 , TDS_CURSOR_STATE_REQUESTED = 1 /* called by ct_cursor */ │ │ │ │ │ +901 , TDS_CURSOR_STATE_SENT = 2 /* sent to server */ │ │ │ │ │ +902 , TDS_CURSOR_STATE_ACTIONED = 3 /* acknowledged by server */ │ │ │ │ │ +903} TDS_CURSOR_STATE; │ │ │ │ │ +904 │ │ │ │ │ +_9_0_5typedef struct _t_d_s___c_u_r_s_o_r___s_t_a_t_u_s │ │ │ │ │ +906{ │ │ │ │ │ +907 TDS_CURSOR_STATE declare; │ │ │ │ │ +908 TDS_CURSOR_STATE cursor_row; │ │ │ │ │ +909 TDS_CURSOR_STATE open; │ │ │ │ │ +910 TDS_CURSOR_STATE fetch; │ │ │ │ │ +911 TDS_CURSOR_STATE close; │ │ │ │ │ +912 TDS_CURSOR_STATE dealloc; │ │ │ │ │ +913} _T_D_S___C_U_R_S_O_R___S_T_A_T_U_S; │ │ │ │ │ +914 │ │ │ │ │ +915typedef enum tds_cursor_operation │ │ │ │ │ +916{ │ │ │ │ │ +917 TDS_CURSOR_POSITION = 0, │ │ │ │ │ +918 TDS_CURSOR_UPDATE = 1, │ │ │ │ │ +919 TDS_CURSOR_DELETE = 2, │ │ │ │ │ +920 TDS_CURSOR_INSERT = 4 │ │ │ │ │ +921} TDS_CURSOR_OPERATION; │ │ │ │ │ +922 │ │ │ │ │ +923typedef enum tds_cursor_fetch │ │ │ │ │ +924{ │ │ │ │ │ +925 TDS_CURSOR_FETCH_NEXT = 1, │ │ │ │ │ +926 TDS_CURSOR_FETCH_PREV, │ │ │ │ │ +927 TDS_CURSOR_FETCH_FIRST, │ │ │ │ │ +928 TDS_CURSOR_FETCH_LAST, │ │ │ │ │ +929 TDS_CURSOR_FETCH_ABSOLUTE, │ │ │ │ │ +930 TDS_CURSOR_FETCH_RELATIVE │ │ │ │ │ +931} TDS_CURSOR_FETCH; │ │ │ │ │ +932 │ │ │ │ │ +_9_3_6typedef struct _t_d_s___c_u_r_s_o_r │ │ │ │ │ +937{ │ │ │ │ │ +_9_3_8 struct _t_d_s___c_u_r_s_o_r *_n_e_x_t; │ │ │ │ │ +_9_3_9 TDS_INT _r_e_f___c_o_u_n_t; │ │ │ │ │ +_9_4_0 char *_c_u_r_s_o_r___n_a_m_e; │ │ │ │ │ +_9_4_1 TDS_INT _c_u_r_s_o_r___i_d; │ │ │ │ │ +_9_4_2 TDS_TINYINT _o_p_t_i_o_n_s; │ │ │ │ │ +_9_4_6 bool _d_e_f_e_r___c_l_o_s_e; │ │ │ │ │ +_9_4_7 char *_q_u_e_r_y; │ │ │ │ │ +948 /* TODO for updatable columns */ │ │ │ │ │ +949 /* TDS_TINYINT number_upd_cols; */ │ │ │ │ │ +950 /* TDSUPDCOL *cur_col_list; */ │ │ │ │ │ +_9_5_1 TDS_INT _c_u_r_s_o_r___r_o_w_s; │ │ │ │ │ +952 /* TDSPARAMINFO *params; */ │ │ │ │ │ +_9_5_3 _T_D_S___C_U_R_S_O_R___S_T_A_T_U_S _s_t_a_t_u_s; │ │ │ │ │ +954 TDS_USMALLINT srv_status; │ │ │ │ │ +955 _T_D_S_R_E_S_U_L_T_I_N_F_O *res_info; │ │ │ │ │ +_9_5_6 TDS_INT _t_y_p_e, concurrency; │ │ │ │ │ +_9_5_7} _T_D_S_C_U_R_S_O_R; │ │ │ │ │ +958 │ │ │ │ │ +_9_6_2typedef struct _t_d_s___e_n_v │ │ │ │ │ +963{ │ │ │ │ │ +_9_6_5 int _b_l_o_c_k___s_i_z_e; │ │ │ │ │ +966 char *language; │ │ │ │ │ +_9_6_8 char *_c_h_a_r_s_e_t; │ │ │ │ │ +_9_7_0 char *_d_a_t_a_b_a_s_e; │ │ │ │ │ +_9_7_1} _T_D_S_E_N_V; │ │ │ │ │ +972 │ │ │ │ │ +_9_7_6typedef struct _t_d_s___d_y_n_a_m_i_c │ │ │ │ │ +977{ │ │ │ │ │ +_9_7_8 struct _t_d_s___d_y_n_a_m_i_c *_n_e_x_t; │ │ │ │ │ +_9_7_9 TDS_INT _r_e_f___c_o_u_n_t; │ │ │ │ │ +_9_8_1 TDS_INT _n_u_m___i_d; │ │ │ │ │ +_9_8_7 char id[30]; │ │ │ │ │ +_9_9_3 TDS_TINYINT _e_m_u_l_a_t_e_d; │ │ │ │ │ +_9_9_7 bool _d_e_f_e_r___c_l_o_s_e; │ │ │ │ │ +998 /* int dyn_state; */ /* TODO use it */ │ │ │ │ │ +_9_9_9 _T_D_S_P_A_R_A_M_I_N_F_O *_r_e_s___i_n_f_o; │ │ │ │ │ +_1_0_0_7 _T_D_S_P_A_R_A_M_I_N_F_O *_p_a_r_a_m_s; │ │ │ │ │ +_1_0_0_9 char *_q_u_e_r_y; │ │ │ │ │ +_1_0_1_0} _T_D_S_D_Y_N_A_M_I_C; │ │ │ │ │ +1011 │ │ │ │ │ +1012typedef enum { │ │ │ │ │ +1013 TDS_MULTIPLE_QUERY, │ │ │ │ │ +1014 TDS_MULTIPLE_EXECUTE, │ │ │ │ │ +1015 TDS_MULTIPLE_RPC │ │ │ │ │ +1016} TDS_MULTIPLE_TYPE; │ │ │ │ │ +1017 │ │ │ │ │ +_1_0_1_8typedef struct _t_d_s___m_u_l_t_i_p_l_e │ │ │ │ │ +1019{ │ │ │ │ │ +1020 TDS_MULTIPLE_TYPE type; │ │ │ │ │ +1021 unsigned int flags; │ │ │ │ │ +1022} _T_D_S_M_U_L_T_I_P_L_E; │ │ │ │ │ +1023 │ │ │ │ │ +1024/* forward declaration */ │ │ │ │ │ +1025typedef struct _t_d_s___c_o_n_t_e_x_t _T_D_S_C_O_N_T_E_X_T; │ │ │ │ │ +1026typedef int (*err_handler_t) (const _T_D_S_C_O_N_T_E_X_T *, _T_D_S_S_O_C_K_E_T *, _T_D_S_M_E_S_S_A_G_E │ │ │ │ │ +*); │ │ │ │ │ +1027 │ │ │ │ │ +_1_0_2_8struct _t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +1029{ │ │ │ │ │ +1030 _T_D_S_L_O_C_A_L_E *locale; │ │ │ │ │ +1031 void *parent; │ │ │ │ │ +1032 /* handlers */ │ │ │ │ │ +1033 int (*msg_handler) (const _T_D_S_C_O_N_T_E_X_T *, _T_D_S_S_O_C_K_E_T *, _T_D_S_M_E_S_S_A_G_E *); │ │ │ │ │ +1034 int (*err_handler) (const _T_D_S_C_O_N_T_E_X_T *, _T_D_S_S_O_C_K_E_T *, _T_D_S_M_E_S_S_A_G_E *); │ │ │ │ │ +1035 int (*int_handler) (void *); │ │ │ │ │ +1036 bool money_use_2_digits; │ │ │ │ │ +1037}; │ │ │ │ │ +1038 │ │ │ │ │ +1039enum TDS_ICONV_ENTRY │ │ │ │ │ +1040{ │ │ │ │ │ +1041 client2ucs2 │ │ │ │ │ +1042 , client2server_chardata │ │ │ │ │ +1043 , initial_char_conv_count /* keep last */ │ │ │ │ │ +1044}; │ │ │ │ │ +1045 │ │ │ │ │ +_1_0_4_6typedef struct _t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n │ │ │ │ │ +1047{ │ │ │ │ │ +1048 uint8_t *packet; │ │ │ │ │ +1049 int packet_len; │ │ │ │ │ +1050 /* TDS_MSG_TOKEN type, for TDS5 */ │ │ │ │ │ +1051 uint16_t msg_type; │ │ │ │ │ +1052 TDSRET (*free)(_T_D_S_C_O_N_N_E_C_T_I_O_N* conn, struct _t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n * auth); │ │ │ │ │ +1053 TDSRET (*handle_next)(_T_D_S_S_O_C_K_E_T * tds, struct _t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n * auth, │ │ │ │ │ +size_t len); │ │ │ │ │ +1054} _T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N; │ │ │ │ │ +1055 │ │ │ │ │ +_1_0_5_6typedef struct _t_d_s___p_a_c_k_e_t │ │ │ │ │ +1057{ │ │ │ │ │ +1058 struct _t_d_s___p_a_c_k_e_t *next; │ │ │ │ │ +1059 uint16_t sid; │ │ │ │ │ +1060 │ │ │ │ │ +1061#if ENABLE_ODBC_MARS │ │ │ │ │ +1065 uint8_t data_start; │ │ │ │ │ +1066#endif │ │ │ │ │ +1067 │ │ │ │ │ +_1_0_7_1 unsigned _d_a_t_a___l_e_n; │ │ │ │ │ +1072 unsigned capacity; │ │ │ │ │ +1073 unsigned char buf[1]; │ │ │ │ │ +1074} _T_D_S_P_A_C_K_E_T; │ │ │ │ │ +1075 │ │ │ │ │ +1076#if ENABLE_ODBC_MARS │ │ │ │ │ +1077#define tds_packet_zero_data_start(pkt) do { (pkt)->data_start = 0; } while │ │ │ │ │ +(0) │ │ │ │ │ +1078#define tds_packet_get_data_start(pkt) ((pkt)->data_start) │ │ │ │ │ +1079#else │ │ │ │ │ +1080#define tds_packet_zero_data_start(pkt) do { } while(0) │ │ │ │ │ +1081#define tds_packet_get_data_start(pkt) 0 │ │ │ │ │ +1082#endif │ │ │ │ │ +1083 │ │ │ │ │ +_1_0_8_4typedef struct _t_d_s___p_o_l_l___w_a_k_e_u_p │ │ │ │ │ +1085{ │ │ │ │ │ +1086 TDS_SYS_SOCKET s_signal, s_signaled; │ │ │ │ │ +1087} _T_D_S_P_O_L_L_W_A_K_E_U_P; │ │ │ │ │ +1088 │ │ │ │ │ +1089/* field related to connection */ │ │ │ │ │ +_1_0_9_0struct _t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +1091{ │ │ │ │ │ +1092 TDS_USMALLINT tds_version; │ │ │ │ │ +_1_0_9_3 TDS_UINT _p_r_o_d_u_c_t___v_e_r_s_i_o_n; │ │ │ │ │ +1094 char *product_name; │ │ │ │ │ +1095 │ │ │ │ │ +_1_0_9_6 TDS_SYS_SOCKET _s; │ │ │ │ │ +1097 _T_D_S_P_O_L_L_W_A_K_E_U_P wakeup; │ │ │ │ │ +1098 const _T_D_S_C_O_N_T_E_X_T *tds_ctx; │ │ │ │ │ +1099 │ │ │ │ │ +_1_1_0_1 _T_D_S_E_N_V _e_n_v; │ │ │ │ │ +1102 │ │ │ │ │ +_1_1_0_7 _T_D_S_C_U_R_S_O_R *_c_u_r_s_o_r_s; │ │ │ │ │ +_1_1_1_2 _T_D_S_D_Y_N_A_M_I_C *_d_y_n_s; │ │ │ │ │ +1113 │ │ │ │ │ +1114 int char_conv_count; │ │ │ │ │ +1115 _T_D_S_I_C_O_N_V **char_convs; │ │ │ │ │ +1116 │ │ │ │ │ +1117 TDS_UCHAR collation[5]; │ │ │ │ │ +1118 TDS_UCHAR tds72_transaction[8]; │ │ │ │ │ +1119 │ │ │ │ │ +1120 _T_D_S___C_A_P_A_B_I_L_I_T_I_E_S capabilities; │ │ │ │ │ +1121 unsigned int use_iconv:1; │ │ │ │ │ +1122 unsigned int tds71rev1:1; │ │ │ │ │ +_1_1_2_3 unsigned int _p_e_n_d_i_n_g___c_l_o_s_e:1; │ │ │ │ │ +1124 unsigned int encrypt_single_packet:1; │ │ │ │ │ +1125#if ENABLE_ODBC_MARS │ │ │ │ │ +1126 unsigned int mars:1; │ │ │ │ │ +1127 │ │ │ │ │ +1128 _T_D_S_S_O_C_K_E_T *in_net_tds; │ │ │ │ │ +1129 _T_D_S_P_A_C_K_E_T *packets; │ │ │ │ │ +1130 _T_D_S_P_A_C_K_E_T *recv_packet; │ │ │ │ │ +1131 _T_D_S_P_A_C_K_E_T *send_packets; │ │ │ │ │ +1132 unsigned send_pos, recv_pos; │ │ │ │ │ +1133 │ │ │ │ │ +1134#define BUSY_SOCKET ((TDSSOCKET*)(TDS_UINTPTR)1) │ │ │ │ │ +1135#define TDSSOCKET_VALID(tds) (((TDS_UINTPTR)(tds)) > 1) │ │ │ │ │ +1136 struct _t_d_s___s_o_c_k_e_t **sessions; │ │ │ │ │ +1137 unsigned num_sessions; │ │ │ │ │ +1138#endif │ │ │ │ │ +1139 tds_mutex list_mtx; │ │ │ │ │ +1140 │ │ │ │ │ +1141 unsigned num_cached_packets; │ │ │ │ │ +1142 _T_D_S_P_A_C_K_E_T *packet_cache; │ │ │ │ │ +1143 │ │ │ │ │ +1144 int spid; │ │ │ │ │ +1145 int client_spid; │ │ │ │ │ +1146 │ │ │ │ │ +1147 void *tls_session; │ │ │ │ │ +1148#if defined(HAVE_GNUTLS) │ │ │ │ │ +1149 void *tls_credentials; │ │ │ │ │ +1150#elif defined(HAVE_OPENSSL) │ │ │ │ │ +1151 void *tls_ctx; │ │ │ │ │ +1152#else │ │ │ │ │ +1153 void *tls_dummy; │ │ │ │ │ +1154#endif │ │ │ │ │ +1155 _T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N *authentication; │ │ │ │ │ +1156 char *server; │ │ │ │ │ +1157}; │ │ │ │ │ +1158 │ │ │ │ │ +_1_1_6_2struct _t_d_s___s_o_c_k_e_t │ │ │ │ │ +1163{ │ │ │ │ │ +1164#if ENABLE_ODBC_MARS │ │ │ │ │ +1165 _T_D_S_C_O_N_N_E_C_T_I_O_N *conn; │ │ │ │ │ +1166#else │ │ │ │ │ +1167 _T_D_S_C_O_N_N_E_C_T_I_O_N conn[1]; │ │ │ │ │ +1168#endif │ │ │ │ │ +1169 │ │ │ │ │ +1170 void *parent; │ │ │ │ │ +1171 │ │ │ │ │ +_1_1_7_7 unsigned char *_i_n___b_u_f; │ │ │ │ │ +1178 │ │ │ │ │ +_1_1_8_5 unsigned char *_o_u_t___b_u_f; │ │ │ │ │ +1186 │ │ │ │ │ +_1_1_9_1 unsigned int _o_u_t___b_u_f___m_a_x; │ │ │ │ │ +_1_1_9_2 unsigned _i_n___p_o_s; │ │ │ │ │ +_1_1_9_3 unsigned _o_u_t___p_o_s; │ │ │ │ │ +_1_1_9_4 unsigned _i_n___l_e_n; │ │ │ │ │ +_1_1_9_5 unsigned char _i_n___f_l_a_g; │ │ │ │ │ +_1_1_9_6 unsigned char _o_u_t___f_l_a_g; │ │ │ │ │ +1198 unsigned frozen; │ │ │ │ │ +_1_2_0_3 _T_D_S_P_A_C_K_E_T *_f_r_o_z_e_n___p_a_c_k_e_t_s; │ │ │ │ │ +1204 │ │ │ │ │ +1205#if ENABLE_ODBC_MARS │ │ │ │ │ +1210 uint16_t sid; │ │ │ │ │ +1211 │ │ │ │ │ +1216 _t_d_s___c_o_n_d_i_t_i_o_n packet_cond; │ │ │ │ │ +1217 │ │ │ │ │ +1222 _T_D_S_P_A_C_K_E_T *sending_packet; │ │ │ │ │ +1223 TDS_UINT recv_seq; │ │ │ │ │ +1224 TDS_UINT send_seq; │ │ │ │ │ +1225 TDS_UINT recv_wnd; │ │ │ │ │ +1226 TDS_UINT send_wnd; │ │ │ │ │ +1227#endif │ │ │ │ │ +1228 /* packet we received */ │ │ │ │ │ +1229 _T_D_S_P_A_C_K_E_T *recv_packet; │ │ │ │ │ +_1_2_3_1 _T_D_S_P_A_C_K_E_T *_s_e_n_d___p_a_c_k_e_t; │ │ │ │ │ +1232 │ │ │ │ │ +_1_2_3_8 _T_D_S_R_E_S_U_L_T_I_N_F_O *_c_u_r_r_e_n_t___r_e_s_u_l_t_s; │ │ │ │ │ +1239 _T_D_S_R_E_S_U_L_T_I_N_F_O *res_info; │ │ │ │ │ +1240 TDS_UINT num_comp_info; │ │ │ │ │ +1241 _T_D_S_C_O_M_P_U_T_E_I_N_F_O **comp_info; │ │ │ │ │ +1242 _T_D_S_P_A_R_A_M_I_N_F_O *param_info; │ │ │ │ │ +_1_2_4_3 _T_D_S_C_U_R_S_O_R *_c_u_r___c_u_r_s_o_r; │ │ │ │ │ +_1_2_4_4 bool _b_u_l_k___q_u_e_r_y; │ │ │ │ │ +_1_2_4_5 bool _h_a_s___s_t_a_t_u_s; │ │ │ │ │ +_1_2_4_6 bool _i_n___r_o_w; │ │ │ │ │ +1247 volatile │ │ │ │ │ +_1_2_4_8 unsigned char _i_n___c_a_n_c_e_l; │ │ │ │ │ +_1_2_5_0 TDS_INT _r_e_t___s_t_a_t_u_s; │ │ │ │ │ +1251 _T_D_S___S_T_A_T_E state; │ │ │ │ │ +1252 │ │ │ │ │ +1253 TDS_INT query_timeout; │ │ │ │ │ +_1_2_5_4 TDS_INT8 _r_o_w_s___a_f_f_e_c_t_e_d; │ │ │ │ │ +_1_2_5_6 _T_D_S_D_Y_N_A_M_I_C *_c_u_r___d_y_n; │ │ │ │ │ +_1_2_5_8 _T_D_S_L_O_G_I_N *_l_o_g_i_n; │ │ │ │ │ +1260 void (*env_chg_func) (_T_D_S_S_O_C_K_E_T * tds, int type, char *oldval, char │ │ │ │ │ +*newval); │ │ │ │ │ +1261 TDS_OPERATION current_op; │ │ │ │ │ +1262 │ │ │ │ │ +1263 int option_value; │ │ │ │ │ +1264 tds_mutex wire_mtx; │ │ │ │ │ +1265}; │ │ │ │ │ +1266 │ │ │ │ │ +1267#define tds_get_ctx(tds) ((tds)->conn->tds_ctx) │ │ │ │ │ +1268#define tds_set_ctx(tds, val) do { ((tds)->conn->tds_ctx) = (val); } while │ │ │ │ │ +(0) │ │ │ │ │ +1269#define tds_get_parent(tds) ((tds)->parent) │ │ │ │ │ +1270#define tds_set_parent(tds, val) do { ((tds)->parent) = (val); } while(0) │ │ │ │ │ +1271#define tds_get_s(tds) ((tds)->conn->s) │ │ │ │ │ +1272#define tds_set_s(tds, val) do { ((tds)->conn->s) = (val); } while(0) │ │ │ │ │ +1273 │ │ │ │ │ +1274 │ │ │ │ │ +1275/* config.c */ │ │ │ │ │ +1276const _T_D_S___C_O_M_P_I_L_E_T_I_M_E___S_E_T_T_I_N_G_S *_t_d_s___g_e_t___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s(void); │ │ │ │ │ +1277typedef void (*TDSCONFPARSE) (const char *option, const char *value, void │ │ │ │ │ +*param); │ │ │ │ │ +1278bool _t_d_s___r_e_a_d___c_o_n_f___s_e_c_t_i_o_n(FILE * in, const char *section, TDSCONFPARSE │ │ │ │ │ +tds_conf_parse, void *parse_param); │ │ │ │ │ +1279bool _t_d_s___r_e_a_d___c_o_n_f___f_i_l_e(_T_D_S_L_O_G_I_N * login, const char *server); │ │ │ │ │ +1280void tds_parse_conf_section(const char *option, const char *value, void │ │ │ │ │ +*param); │ │ │ │ │ +1281_T_D_S_L_O_G_I_N *_t_d_s___r_e_a_d___c_o_n_f_i_g___i_n_f_o(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login, _T_D_S_L_O_C_A_L_E │ │ │ │ │ +* locale); │ │ │ │ │ +1282void _t_d_s___f_i_x___l_o_g_i_n(_T_D_S_L_O_G_I_N* login); │ │ │ │ │ +1283TDS_USMALLINT * _t_d_s___c_o_n_f_i_g___v_e_r_s_t_r(const char *tdsver, _T_D_S_L_O_G_I_N* login); │ │ │ │ │ +1284struct addrinfo *_t_d_s___l_o_o_k_u_p___h_o_s_t(const char *servername); │ │ │ │ │ +1285TDSRET tds_lookup_host_set(const char *servername, struct addrinfo **addr); │ │ │ │ │ +1286const char *tds_addrinfo2str(struct addrinfo *addr, char *name, int │ │ │ │ │ +namemax); │ │ │ │ │ +1287char *_t_d_s___g_e_t___h_o_m_e___f_i_l_e(const char *file); │ │ │ │ │ +1288 │ │ │ │ │ +1289TDSRET _t_d_s___s_e_t___i_n_t_e_r_f_a_c_e_s___f_i_l_e___l_o_c(const char *interfloc); │ │ │ │ │ +1290extern const char STD_DATETIME_FMT[]; │ │ │ │ │ +1291int tds_parse_boolean(const char *value, int default_value); │ │ │ │ │ +1292int tds_config_boolean(const char *option, const char *value, _T_D_S_L_O_G_I_N * │ │ │ │ │ +login); │ │ │ │ │ +1293 │ │ │ │ │ +1294_T_D_S_L_O_C_A_L_E *_t_d_s___g_e_t___l_o_c_a_l_e(void); │ │ │ │ │ +1295TDSRET _t_d_s___a_l_l_o_c___r_o_w(_T_D_S_R_E_S_U_L_T_I_N_F_O * res_info); │ │ │ │ │ +1296TDSRET tds_alloc_compute_row(_T_D_S_C_O_M_P_U_T_E_I_N_F_O * res_info); │ │ │ │ │ +1297_B_C_P_C_O_L_D_A_T_A * tds_alloc_bcp_column_data(unsigned int column_size); │ │ │ │ │ +1298_T_D_S_D_Y_N_A_M_I_C *_t_d_s___l_o_o_k_u_p___d_y_n_a_m_i_c(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *id); │ │ │ │ │ +1299/*@observer@*/ const char *_t_d_s___p_r_t_y_p_e(int token); │ │ │ │ │ +1300int _t_d_s___g_e_t___v_a_r_i_n_t___s_i_z_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, int datatype); │ │ │ │ │ +1301TDS_SERVER_TYPE tds_get_cardinal_type(TDS_SERVER_TYPE datatype, int │ │ │ │ │ +usertype); │ │ │ │ │ +1302 │ │ │ │ │ +1303 │ │ │ │ │ +1304/* iconv.c */ │ │ │ │ │ +1305TDSRET tds_iconv_open(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *charset, int │ │ │ │ │ +use_utf16); │ │ │ │ │ +1306void tds_iconv_close(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn); │ │ │ │ │ +1307void tds_srv_charset_changed(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *charset); │ │ │ │ │ +1308void tds7_srv_charset_changed(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, TDS_UCHAR collate[5]); │ │ │ │ │ +1309int _t_d_s___i_c_o_n_v___a_l_l_o_c(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn); │ │ │ │ │ +1310void tds_iconv_free(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn); │ │ │ │ │ +1311_T_D_S_I_C_O_N_V *_t_d_s___i_c_o_n_v___f_r_o_m___c_o_l_l_a_t_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, TDS_UCHAR collate │ │ │ │ │ +[5]); │ │ │ │ │ +1312 │ │ │ │ │ +1313 │ │ │ │ │ +1314/* mem.c */ │ │ │ │ │ +1315void tds_free_socket(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1316void tds_free_all_results(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1317void tds_free_results(_T_D_S_R_E_S_U_L_T_I_N_F_O * res_info); │ │ │ │ │ +1318void tds_free_param_results(_T_D_S_P_A_R_A_M_I_N_F_O * param_info); │ │ │ │ │ +1319void _t_d_s___f_r_e_e___p_a_r_a_m___r_e_s_u_l_t(_T_D_S_P_A_R_A_M_I_N_F_O * param_info); │ │ │ │ │ +1320void tds_free_msg(_T_D_S_M_E_S_S_A_G_E * message); │ │ │ │ │ +1321void tds_cursor_deallocated(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, _T_D_S_C_U_R_S_O_R *cursor); │ │ │ │ │ +1322void tds_release_cursor(_T_D_S_C_U_R_S_O_R **pcursor); │ │ │ │ │ +1323void tds_free_bcp_column_data(_B_C_P_C_O_L_D_A_T_A * coldata); │ │ │ │ │ +1324_T_D_S_R_E_S_U_L_T_I_N_F_O *tds_alloc_results(TDS_USMALLINT num_cols); │ │ │ │ │ +1325_T_D_S_C_O_M_P_U_T_E_I_N_F_O **tds_alloc_compute_results(_T_D_S_S_O_C_K_E_T * tds, TDS_USMALLINT │ │ │ │ │ +num_cols, TDS_USMALLINT by_cols); │ │ │ │ │ +1326_T_D_S_C_O_N_T_E_X_T *tds_alloc_context(void * parent); │ │ │ │ │ +1327void tds_free_context(_T_D_S_C_O_N_T_E_X_T * locale); │ │ │ │ │ +1328_T_D_S_P_A_R_A_M_I_N_F_O *_t_d_s___a_l_l_o_c___p_a_r_a_m___r_e_s_u_l_t(_T_D_S_P_A_R_A_M_I_N_F_O * old_param); │ │ │ │ │ +1329void _t_d_s___f_r_e_e___i_n_p_u_t___p_a_r_a_m_s(_T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ +1330void _t_d_s___r_e_l_e_a_s_e___d_y_n_a_m_i_c(_T_D_S_D_Y_N_A_M_I_C ** dyn); │ │ │ │ │ +1331static inline │ │ │ │ │ +1332void tds_release_cur_dyn(_T_D_S_S_O_C_K_E_T * tds) │ │ │ │ │ +1333{ │ │ │ │ │ +1334 _t_d_s___r_e_l_e_a_s_e___d_y_n_a_m_i_c(&tds->_c_u_r___d_y_n); │ │ │ │ │ +1335} │ │ │ │ │ +1336void tds_dynamic_deallocated(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, _T_D_S_D_Y_N_A_M_I_C *dyn); │ │ │ │ │ +1337void _t_d_s___s_e_t___c_u_r___d_y_n(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_D_Y_N_A_M_I_C *dyn); │ │ │ │ │ +1338_T_D_S_S_O_C_K_E_T *tds_realloc_socket(_T_D_S_S_O_C_K_E_T * tds, size_t bufsize); │ │ │ │ │ +1339char *tds_alloc_client_sqlstate(int msgno); │ │ │ │ │ +1340char *tds_alloc_lookup_sqlstate(_T_D_S_S_O_C_K_E_T * tds, int msgno); │ │ │ │ │ +1341_T_D_S_L_O_G_I_N *tds_alloc_login(int use_environment); │ │ │ │ │ +1342_T_D_S_D_Y_N_A_M_I_C *_t_d_s___a_l_l_o_c___d_y_n_a_m_i_c(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *id); │ │ │ │ │ +1343void tds_free_login(_T_D_S_L_O_G_I_N * login); │ │ │ │ │ +1344_T_D_S_L_O_G_I_N *_t_d_s___i_n_i_t___l_o_g_i_n(_T_D_S_L_O_G_I_N * login, _T_D_S_L_O_C_A_L_E * locale); │ │ │ │ │ +1345_T_D_S_L_O_C_A_L_E *tds_alloc_locale(void); │ │ │ │ │ +1346void *_t_d_s___a_l_l_o_c___p_a_r_a_m___d_a_t_a(_T_D_S_C_O_L_U_M_N * curparam); │ │ │ │ │ +1347void tds_free_locale(_T_D_S_L_O_C_A_L_E * locale); │ │ │ │ │ +1348_T_D_S_C_U_R_S_O_R * tds_alloc_cursor(_T_D_S_S_O_C_K_E_T * tds, const char *name, TDS_INT │ │ │ │ │ +namelen, const char *query, TDS_INT querylen); │ │ │ │ │ +1349void tds_free_row(_T_D_S_R_E_S_U_L_T_I_N_F_O * res_info, unsigned char *row); │ │ │ │ │ +1350_T_D_S_S_O_C_K_E_T *tds_alloc_socket(_T_D_S_C_O_N_T_E_X_T * context, unsigned int bufsize); │ │ │ │ │ +1351_T_D_S_S_O_C_K_E_T *tds_alloc_additional_socket(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ +1352void tds_set_current_results(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_R_E_S_U_L_T_I_N_F_O *info); │ │ │ │ │ +1353void _t_d_s___d_e_t_a_c_h___r_e_s_u_l_t_s(_T_D_S_R_E_S_U_L_T_I_N_F_O *info); │ │ │ │ │ +1354void * _t_d_s___r_e_a_l_l_o_c(void **pp, size_t new_size); │ │ │ │ │ +1355#define TDS_RESIZE(p, n_elem) \ │ │ │ │ │ +1356 tds_realloc((void **) &(p), sizeof(*(p)) * (size_t) (n_elem)) │ │ │ │ │ +1357#define tds_new(type, n) ((type *) malloc(sizeof(type) * (n))) │ │ │ │ │ +1358#define tds_new0(type, n) ((type *) calloc(n, sizeof(type))) │ │ │ │ │ +1359 │ │ │ │ │ +1360_T_D_S_P_A_C_K_E_T *tds_alloc_packet(void *buf, unsigned len); │ │ │ │ │ +1361_T_D_S_P_A_C_K_E_T *tds_realloc_packet(_T_D_S_P_A_C_K_E_T *packet, unsigned len); │ │ │ │ │ +1362void tds_free_packets(_T_D_S_P_A_C_K_E_T *packet); │ │ │ │ │ +1363_T_D_S_B_C_P_I_N_F_O *tds_alloc_bcpinfo(void); │ │ │ │ │ +1364void tds_free_bcpinfo(_T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ +1365void tds_deinit_bcpinfo(_T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ +1366 │ │ │ │ │ +1367 │ │ │ │ │ +1368/* login.c */ │ │ │ │ │ +1369void tds_set_packet(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, int packet_size); │ │ │ │ │ +1370void tds_set_port(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, int port); │ │ │ │ │ +1371bool tds_set_passwd(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *password) TDS_WUR; │ │ │ │ │ +1372void tds_set_bulk(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, bool enabled); │ │ │ │ │ +1373bool tds_set_user(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *username) TDS_WUR; │ │ │ │ │ +1374bool tds_set_app(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *application) TDS_WUR; │ │ │ │ │ +1375bool tds_set_host(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *hostname) TDS_WUR; │ │ │ │ │ +1376bool tds_set_library(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *library) TDS_WUR; │ │ │ │ │ +1377bool _t_d_s___s_e_t___s_e_r_v_e_r(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *server) TDS_WUR; │ │ │ │ │ +1378bool tds_set_client_charset(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *charset) │ │ │ │ │ +TDS_WUR; │ │ │ │ │ +1379bool tds_set_language(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, const char *language) TDS_WUR; │ │ │ │ │ +1380void tds_set_version(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, TDS_TINYINT major_ver, │ │ │ │ │ +TDS_TINYINT minor_ver); │ │ │ │ │ +1381int tds_connect_and_login(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ +1382 │ │ │ │ │ +1383 │ │ │ │ │ +1384/* query.c */ │ │ │ │ │ +1385void _t_d_s___s_t_a_r_t___q_u_e_r_y(_T_D_S_S_O_C_K_E_T *tds, unsigned char packet_type); │ │ │ │ │ +1386 │ │ │ │ │ +1387TDSRET _t_d_s___s_u_b_m_i_t___q_u_e_r_y(_T_D_S_S_O_C_K_E_T * tds, const char *query); │ │ │ │ │ +1388TDSRET _t_d_s___s_u_b_m_i_t___q_u_e_r_y___p_a_r_a_m_s(_T_D_S_S_O_C_K_E_T * tds, const char *query, │ │ │ │ │ +_T_D_S_P_A_R_A_M_I_N_F_O * params, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ +1389TDSRET _t_d_s___s_u_b_m_i_t___q_u_e_r_y_f(_T_D_S_S_O_C_K_E_T * tds, const char *queryf, ...); │ │ │ │ │ +1390TDSRET _t_d_s___s_u_b_m_i_t___p_r_e_p_a_r_e(_T_D_S_S_O_C_K_E_T * tds, const char *query, const char │ │ │ │ │ +*id, _T_D_S_D_Y_N_A_M_I_C ** dyn_out, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ +1391TDSRET _t_d_s___s_u_b_m_i_t___e_x_e_c_d_i_r_e_c_t(_T_D_S_S_O_C_K_E_T * tds, const char *query, │ │ │ │ │ +_T_D_S_P_A_R_A_M_I_N_F_O * params, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ +1392TDSRET _t_d_s_7_1___s_u_b_m_i_t___p_r_e_p_e_x_e_c(_T_D_S_S_O_C_K_E_T * tds, const char *query, const char │ │ │ │ │ +*id, _T_D_S_D_Y_N_A_M_I_C ** dyn_out, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ +1393TDSRET _t_d_s___s_u_b_m_i_t___e_x_e_c_u_t_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ +1394TDSRET _t_d_s___s_e_n_d___c_a_n_c_e_l(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1395const char *_t_d_s___n_e_x_t___p_l_a_c_e_h_o_l_d_e_r(const char *start); │ │ │ │ │ +1396int _t_d_s___c_o_u_n_t___p_l_a_c_e_h_o_l_d_e_r_s(const char *query); │ │ │ │ │ +1397int _t_d_s___n_e_e_d_s___u_n_p_r_e_p_a_r_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ +1398TDSRET _t_d_s___d_e_f_e_r_r_e_d___u_n_p_r_e_p_a_r_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ +1399TDSRET _t_d_s___s_u_b_m_i_t___u_n_p_r_e_p_a_r_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ +1400TDSRET _t_d_s___s_u_b_m_i_t___r_p_c(_T_D_S_S_O_C_K_E_T * tds, const char *rpc_name, _T_D_S_P_A_R_A_M_I_N_F_O * │ │ │ │ │ +params, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ +1401TDSRET _t_d_s___s_u_b_m_i_t___o_p_t_i_o_n_c_m_d(_T_D_S_S_O_C_K_E_T * tds, TDS_OPTION_CMD command, │ │ │ │ │ +TDS_OPTION option, _T_D_S___O_P_T_I_O_N___A_R_G *param, TDS_INT param_size); │ │ │ │ │ +1402TDSRET _t_d_s___s_u_b_m_i_t___b_e_g_i_n___t_r_a_n(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +1403TDSRET _t_d_s___s_u_b_m_i_t___r_o_l_l_b_a_c_k(_T_D_S_S_O_C_K_E_T *tds, int cont); │ │ │ │ │ +1404TDSRET _t_d_s___s_u_b_m_i_t___c_o_m_m_i_t(_T_D_S_S_O_C_K_E_T *tds, int cont); │ │ │ │ │ +1405TDSRET tds_disconnect(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1406size_t _t_d_s___q_u_o_t_e___i_d(_T_D_S_S_O_C_K_E_T * tds, char *buffer, const char *id, int │ │ │ │ │ +idlen); │ │ │ │ │ +1407size_t _t_d_s___q_u_o_t_e___i_d___r_p_c(_T_D_S_S_O_C_K_E_T * tds, char *buffer, const char *id, int │ │ │ │ │ +idlen); │ │ │ │ │ +1408size_t _t_d_s___q_u_o_t_e___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, char *buffer, const char *str, int │ │ │ │ │ +len); │ │ │ │ │ +1409const char *_t_d_s___s_k_i_p___c_o_m_m_e_n_t(const char *s); │ │ │ │ │ +1410const char *_t_d_s___s_k_i_p___q_u_o_t_e_d(const char *s); │ │ │ │ │ +1411size_t _t_d_s___f_i_x___c_o_l_u_m_n___s_i_z_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_O_L_U_M_N * curcol); │ │ │ │ │ +1412const char *_t_d_s___c_o_n_v_e_r_t___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * char_conv, const │ │ │ │ │ +char *s, int len, size_t *out_len); │ │ │ │ │ +1413void tds_convert_string_free(const char *original, const char *converted); │ │ │ │ │ +1414#if !ENABLE_EXTRA_CHECKS │ │ │ │ │ +1415#define tds_convert_string_free(original, converted) \ │ │ │ │ │ +1416 do { if (original != converted) free((char*) converted); } while(0) │ │ │ │ │ +1417#endif │ │ │ │ │ +1418TDSRET _t_d_s___g_e_t___c_o_l_u_m_n___d_e_c_l_a_r_a_t_i_o_n(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_O_L_U_M_N * curcol, char │ │ │ │ │ +*out); │ │ │ │ │ +1419 │ │ │ │ │ +1420TDSRET tds_cursor_declare(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, _T_D_S_P_A_R_A_M_I_N_F_O │ │ │ │ │ +*params, int *send); │ │ │ │ │ +1421TDSRET tds_cursor_setrows(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, int *send); │ │ │ │ │ +1422TDSRET tds_cursor_open(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, _T_D_S_P_A_R_A_M_I_N_F_O │ │ │ │ │ +*params, int *send); │ │ │ │ │ +1423TDSRET tds_cursor_fetch(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, │ │ │ │ │ +TDS_CURSOR_FETCH fetch_type, TDS_INT i_row); │ │ │ │ │ +1424TDSRET tds_cursor_get_cursor_info(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, │ │ │ │ │ +TDS_UINT * row_number, TDS_UINT * row_count); │ │ │ │ │ +1425TDSRET tds_cursor_close(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ +1426TDSRET _t_d_s___c_u_r_s_o_r___d_e_a_l_l_o_c(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ +1427TDSRET _t_d_s___d_e_f_e_r_r_e_d___c_u_r_s_o_r___d_e_a_l_l_o_c(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, _T_D_S_C_U_R_S_O_R * │ │ │ │ │ +cursor); │ │ │ │ │ +1428TDSRET tds_cursor_update(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor, │ │ │ │ │ +TDS_CURSOR_OPERATION op, TDS_INT i_row, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ +1429TDSRET tds_cursor_setname(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_C_U_R_S_O_R * cursor); │ │ │ │ │ +1430 │ │ │ │ │ +1431TDSRET tds_multiple_init(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple, │ │ │ │ │ +TDS_MULTIPLE_TYPE type, _T_D_S_H_E_A_D_E_R_S * head); │ │ │ │ │ +1432TDSRET tds_multiple_done(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple); │ │ │ │ │ +1433TDSRET tds_multiple_query(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple, const char │ │ │ │ │ +*query, _T_D_S_P_A_R_A_M_I_N_F_O * params); │ │ │ │ │ +1434TDSRET tds_multiple_execute(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_M_U_L_T_I_P_L_E *multiple, │ │ │ │ │ +_T_D_S_D_Y_N_A_M_I_C * dyn); │ │ │ │ │ +1435 │ │ │ │ │ +1436 │ │ │ │ │ +1437/* token.c */ │ │ │ │ │ +1438TDSRET _t_d_s___p_r_o_c_e_s_s___c_a_n_c_e_l(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1439int _t_d_s___g_e_t___t_o_k_e_n___s_i_z_e(int marker); │ │ │ │ │ +1440TDSRET _t_d_s___p_r_o_c_e_s_s___l_o_g_i_n___t_o_k_e_n_s(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1441TDSRET _t_d_s___p_r_o_c_e_s_s___s_i_m_p_l_e___q_u_e_r_y(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1442int tds5_send_optioncmd(_T_D_S_S_O_C_K_E_T * tds, TDS_OPTION_CMD tds_command, │ │ │ │ │ +TDS_OPTION tds_option, _T_D_S___O_P_T_I_O_N___A_R_G * tds_argument, │ │ │ │ │ +1443 TDS_INT * tds_argsize); │ │ │ │ │ +1444TDSRET _t_d_s___p_r_o_c_e_s_s___t_o_k_e_n_s(_T_D_S_S_O_C_K_E_T * tds, /*@out@*/ TDS_INT * result_type, │ │ │ │ │ +/*@out@*/ int *done_flags, unsigned flag); │ │ │ │ │ +1445 │ │ │ │ │ +1446 │ │ │ │ │ +1447/* data.c */ │ │ │ │ │ +1448void _t_d_s___s_e_t___p_a_r_a_m___t_y_p_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_C_O_L_U_M_N * curcol, │ │ │ │ │ +TDS_SERVER_TYPE type); │ │ │ │ │ +1449void _t_d_s___s_e_t___c_o_l_u_m_n___t_y_p_e(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, _T_D_S_C_O_L_U_M_N * curcol, │ │ │ │ │ +TDS_SERVER_TYPE type); │ │ │ │ │ +1450#ifdef WORDS_BIGENDIAN │ │ │ │ │ +1451void tds_swap_datatype(int coltype, void *b); │ │ │ │ │ +1452#endif │ │ │ │ │ +1453 │ │ │ │ │ +1454 │ │ │ │ │ +1455/* tds_convert.c */ │ │ │ │ │ +1456TDSRET _t_d_s___d_a_t_e_c_r_a_c_k(TDS_INT datetype, const void *di, _T_D_S_D_A_T_E_R_E_C * dr); │ │ │ │ │ +1457TDS_SERVER_TYPE _t_d_s___g_e_t___c_o_n_v_e_r_s_i_o_n___t_y_p_e(TDS_SERVER_TYPE srctype, int │ │ │ │ │ +colsize); │ │ │ │ │ +1458extern const char tds_hex_digits[]; │ │ │ │ │ +1459 │ │ │ │ │ +1460 │ │ │ │ │ +1461/* write.c */ │ │ │ │ │ +1462int tds_init_write_buf(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1463int tds_put_n(_T_D_S_S_O_C_K_E_T * tds, const void *buf, size_t n); │ │ │ │ │ +1464int _t_d_s___p_u_t___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, const char *buf, int len); │ │ │ │ │ +1465int tds_put_int(_T_D_S_S_O_C_K_E_T * tds, TDS_INT i); │ │ │ │ │ +1466int tds_put_int8(_T_D_S_S_O_C_K_E_T * tds, TDS_INT8 i); │ │ │ │ │ +1467int tds_put_smallint(_T_D_S_S_O_C_K_E_T * tds, TDS_SMALLINT si); │ │ │ │ │ +_1_4_6_9#define tds_put_tinyint(tds, ti) tds_put_byte(tds,ti) │ │ │ │ │ +1470int tds_put_byte(_T_D_S_S_O_C_K_E_T * tds, unsigned char c); │ │ │ │ │ +1471TDSRET _t_d_s___f_l_u_s_h___p_a_c_k_e_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1472int tds_put_buf(_T_D_S_S_O_C_K_E_T * tds, const unsigned char *buf, int dsize, int │ │ │ │ │ +ssize); │ │ │ │ │ +1473 │ │ │ │ │ +1474 │ │ │ │ │ +1475/* read.c */ │ │ │ │ │ +1476unsigned char _t_d_s___g_e_t___b_y_t_e(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1477void _t_d_s___u_n_g_e_t___b_y_t_e(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1478unsigned char _t_d_s___p_e_e_k(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1479TDS_USMALLINT _t_d_s___g_e_t___u_s_m_a_l_l_i_n_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1480#define tds_get_smallint(tds) ((TDS_SMALLINT) tds_get_usmallint(tds)) │ │ │ │ │ +1481TDS_UINT _t_d_s___g_e_t___u_i_n_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1482#define tds_get_int(tds) ((TDS_INT) tds_get_uint(tds)) │ │ │ │ │ +1483TDS_UINT8 _t_d_s___g_e_t___u_i_n_t_8(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1484#define tds_get_int8(tds) ((TDS_INT8) tds_get_uint8(tds)) │ │ │ │ │ +1485size_t _t_d_s___g_e_t___s_t_r_i_n_g(_T_D_S_S_O_C_K_E_T * tds, size_t string_len, char *dest, │ │ │ │ │ +size_t dest_size); │ │ │ │ │ +1486TDSRET _t_d_s___g_e_t___c_h_a_r___d_a_t_a(_T_D_S_S_O_C_K_E_T * tds, char *dest, size_t wire_size, │ │ │ │ │ +_T_D_S_C_O_L_U_M_N * curcol); │ │ │ │ │ +1487bool _t_d_s___g_e_t___n(_T_D_S_S_O_C_K_E_T * tds, /*@out@*/ /*@null@*/ void *dest, size_t n); │ │ │ │ │ +1488int _t_d_s___g_e_t___s_i_z_e___b_y___t_y_p_e(TDS_SERVER_TYPE servertype); │ │ │ │ │ +1489_D_S_T_R* _t_d_s___d_s_t_r___g_e_t(_T_D_S_S_O_C_K_E_T * tds, _D_S_T_R * s, size_t len); │ │ │ │ │ +1490 │ │ │ │ │ +1491 │ │ │ │ │ +1492/* util.c */ │ │ │ │ │ +1493int _t_d_s_e_r_r_o_r (const _T_D_S_C_O_N_T_E_X_T * tds_ctx, _T_D_S_S_O_C_K_E_T * tds, int msgno, int │ │ │ │ │ +errnum); │ │ │ │ │ +1494_T_D_S___S_T_A_T_E _t_d_s___s_e_t___s_t_a_t_e(_T_D_S_S_O_C_K_E_T * tds, _T_D_S___S_T_A_T_E state); │ │ │ │ │ +1495void tds_swap_bytes(void *buf, int bytes); │ │ │ │ │ +1496unsigned int tds_gettime_ms(void); │ │ │ │ │ +1497char *_t_d_s___s_t_r_n_d_u_p(const void *s, TDS_INTPTR len); │ │ │ │ │ +1498 │ │ │ │ │ +1499 │ │ │ │ │ +1500/* log.c */ │ │ │ │ │ +_1_5_0_1typedef struct _t_d_s_d_u_m_p___o_f_f___i_t_e_m { │ │ │ │ │ +1502 struct _t_d_s_d_u_m_p___o_f_f___i_t_e_m *next; │ │ │ │ │ +1503 tds_thread_id thread_id; │ │ │ │ │ +1504} _T_D_S_D_U_M_P___O_F_F___I_T_E_M; │ │ │ │ │ +1505void _t_d_s_d_u_m_p___o_f_f(_T_D_S_D_U_M_P___O_F_F___I_T_E_M *off_item); │ │ │ │ │ +1506void _t_d_s_d_u_m_p___o_n(_T_D_S_D_U_M_P___O_F_F___I_T_E_M *off_item); │ │ │ │ │ +1507int tdsdump_isopen(void); │ │ │ │ │ +1508#include │ │ │ │ │ +1509int _t_d_s_d_u_m_p___o_p_e_n(const char *filename); │ │ │ │ │ +1510#include │ │ │ │ │ +1511void _t_d_s_d_u_m_p___c_l_o_s_e(void); │ │ │ │ │ +1512void tdsdump_dump_buf(const char* file, unsigned int level_line, const char │ │ │ │ │ +*msg, const void *buf, size_t length); │ │ │ │ │ +1513void _t_d_s_d_u_m_p___c_o_l(const _T_D_S_C_O_L_U_M_N *col); │ │ │ │ │ +1514#undef tdsdump_log │ │ │ │ │ +1515void tdsdump_log(const char* file, unsigned int level_line, const char │ │ │ │ │ +*fmt, ...) │ │ │ │ │ +1516#if defined(__GNUC__) && __GNUC__ >= 2 │ │ │ │ │ +1517#if defined(__MINGW32__) │ │ │ │ │ +1518 __attribute__ ((__format__ (ms_printf, 3, 4))) │ │ │ │ │ +1519#else │ │ │ │ │ +1520 __attribute__ ((__format__ (__printf__, 3, 4))) │ │ │ │ │ +1521#endif │ │ │ │ │ +1522#endif │ │ │ │ │ +1523; │ │ │ │ │ +1524#define TDSDUMP_LOG_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_log │ │ │ │ │ +1525#define tdsdump_log TDSDUMP_LOG_FAST │ │ │ │ │ +1526#define TDSDUMP_BUF_FAST if (TDS_UNLIKELY(tds_write_dump)) tdsdump_dump_buf │ │ │ │ │ +1527#define tdsdump_dump_buf TDSDUMP_BUF_FAST │ │ │ │ │ +1528 │ │ │ │ │ +1529extern int _t_d_s___w_r_i_t_e___d_u_m_p; │ │ │ │ │ +1530extern int tds_debug_flags; │ │ │ │ │ +1531extern int tds_g_append_mode; │ │ │ │ │ +1532 │ │ │ │ │ +1533 │ │ │ │ │ +1534/* net.c */ │ │ │ │ │ +1535TDSERRNO tds_open_socket(_T_D_S_S_O_C_K_E_T * tds, struct addrinfo *ipaddr, unsigned │ │ │ │ │ +int port, int timeout, int *p_oserr); │ │ │ │ │ +1536void _t_d_s___c_l_o_s_e___s_o_c_k_e_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1537int _t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t_s(FILE *output, struct addrinfo *addr); │ │ │ │ │ +1538int _t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t(struct addrinfo *addr, const char *instance); │ │ │ │ │ +1539char *tds_prwsaerror(int erc); │ │ │ │ │ +1540void tds_prwsaerror_free(char *s); │ │ │ │ │ +1541int tds_connection_read(_T_D_S_S_O_C_K_E_T * tds, unsigned char *buf, int buflen); │ │ │ │ │ +1542int tds_connection_write(_T_D_S_S_O_C_K_E_T *tds, const unsigned char *buf, int │ │ │ │ │ +buflen, int final); │ │ │ │ │ +1543#define TDSSELREAD POLLIN │ │ │ │ │ +1544#define TDSSELWRITE POLLOUT │ │ │ │ │ +1545int _t_d_s___s_e_l_e_c_t(_T_D_S_S_O_C_K_E_T * tds, unsigned tds_sel, int timeout_seconds); │ │ │ │ │ +1546void tds_connection_close(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ +1547int _t_d_s___g_o_o_d_r_e_a_d(_T_D_S_S_O_C_K_E_T * tds, unsigned char *buf, int buflen); │ │ │ │ │ +1548int _t_d_s___g_o_o_d_w_r_i_t_e(_T_D_S_S_O_C_K_E_T * tds, const unsigned char *buffer, size_t │ │ │ │ │ +buflen); │ │ │ │ │ +1549void tds_socket_flush(TDS_SYS_SOCKET sock); │ │ │ │ │ +1550int _t_d_s___s_o_c_k_e_t___s_e_t___n_o_n_b_l_o_c_k_i_n_g(TDS_SYS_SOCKET sock); │ │ │ │ │ +1551int tds_wakeup_init(_T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup); │ │ │ │ │ +1552void tds_wakeup_close(_T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup); │ │ │ │ │ +1553void tds_wakeup_send(_T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup, char cancel); │ │ │ │ │ +1554static inline TDS_SYS_SOCKET tds_wakeup_get_fd(const _T_D_S_P_O_L_L_W_A_K_E_U_P *wakeup) │ │ │ │ │ +1555{ │ │ │ │ │ +1556 return wakeup->s_signaled; │ │ │ │ │ +1557} │ │ │ │ │ +1558 │ │ │ │ │ +1559 │ │ │ │ │ +1560/* packet.c */ │ │ │ │ │ +1561int _t_d_s___r_e_a_d___p_a_c_k_e_t(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1562TDSRET tds_write_packet(_T_D_S_S_O_C_K_E_T * tds, unsigned char final); │ │ │ │ │ +1563#if ENABLE_ODBC_MARS │ │ │ │ │ +1564int tds_append_cancel(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +1565TDSRET tds_append_syn(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +1566TDSRET tds_append_fin(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +1567#else │ │ │ │ │ +1568int tds_put_cancel(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1569#endif │ │ │ │ │ +1570 │ │ │ │ │ +_1_5_7_1typedef struct _t_d_s___f_r_e_e_z_e { │ │ │ │ │ +_1_5_7_3 _T_D_S_S_O_C_K_E_T *_t_d_s; │ │ │ │ │ +_1_5_7_5 _T_D_S_P_A_C_K_E_T *_p_k_t; │ │ │ │ │ +_1_5_7_7 unsigned _p_k_t___p_o_s; │ │ │ │ │ +_1_5_7_9 unsigned _s_i_z_e___l_e_n; │ │ │ │ │ +1580} _T_D_S_F_R_E_E_Z_E; │ │ │ │ │ +1581 │ │ │ │ │ +1582void _t_d_s___f_r_e_e_z_e(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_F_R_E_E_Z_E *freeze, unsigned size_len); │ │ │ │ │ +1583size_t _t_d_s___f_r_e_e_z_e___w_r_i_t_t_e_n(_T_D_S_F_R_E_E_Z_E *freeze); │ │ │ │ │ +1584TDSRET _t_d_s___f_r_e_e_z_e___a_b_o_r_t(_T_D_S_F_R_E_E_Z_E *freeze); │ │ │ │ │ +1585TDSRET _t_d_s___f_r_e_e_z_e___c_l_o_s_e(_T_D_S_F_R_E_E_Z_E *freeze); │ │ │ │ │ +1586TDSRET _t_d_s___f_r_e_e_z_e___c_l_o_s_e___l_e_n(_T_D_S_F_R_E_E_Z_E *freeze, int32_t size); │ │ │ │ │ +1587 │ │ │ │ │ +1588static void inline │ │ │ │ │ +1589tds_set_current_send_packet(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_P_A_C_K_E_T *pkt) │ │ │ │ │ +1590{ │ │ │ │ │ +1591 tds->_s_e_n_d___p_a_c_k_e_t = pkt; │ │ │ │ │ +1592 tds->_o_u_t___b_u_f = pkt->buf + tds_packet_get_data_start(pkt); │ │ │ │ │ +1593} │ │ │ │ │ +1594 │ │ │ │ │ +1595/* Macros to allow some indentation of the packets. │ │ │ │ │ +1596 * │ │ │ │ │ +1597 * The 3 nested fake loops require some explanation: │ │ │ │ │ +1598 * - first is to allows to declare variables; │ │ │ │ │ +1599 * - second is to force using brackets; │ │ │ │ │ +1600 * - third is to avoids that a break inside will skip the close. │ │ │ │ │ +1601 */ │ │ │ │ │ +1602#define TDS_START_LEN_GENERIC(tds_socket, len) do { \ │ │ │ │ │ +1603 TDSFREEZE current_freeze[1]; \ │ │ │ │ │ +1604 tds_freeze((tds_socket), current_freeze, (len)); do { do │ │ │ │ │ +1605#define TDS_END_LEN while(0); } while(tds_freeze_close(current_freeze), 0); │ │ │ │ │ +} while(0); │ │ │ │ │ +1606 │ │ │ │ │ +1607#define TDS_START_LEN_TINYINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, │ │ │ │ │ +1) │ │ │ │ │ +1608#define TDS_START_LEN_USMALLINT(tds_socket) TDS_START_LEN_GENERIC │ │ │ │ │ +(tds_socket, 2) │ │ │ │ │ +1609#define TDS_START_LEN_UINT(tds_socket) TDS_START_LEN_GENERIC(tds_socket, 4) │ │ │ │ │ +1610 │ │ │ │ │ +1611/* vstrbuild.c */ │ │ │ │ │ +1612TDSRET tds_vstrbuild(char *buffer, int buflen, int *resultlen, const char │ │ │ │ │ +*text, int textlen, const char *formats, int formatlen, │ │ │ │ │ +1613 va_list ap); │ │ │ │ │ +1614 │ │ │ │ │ +1615 │ │ │ │ │ +1616/* numeric.c */ │ │ │ │ │ +1617char *tds_money_to_string(const _T_D_S___M_O_N_E_Y * money, char *s, bool │ │ │ │ │ +use_2_digits); │ │ │ │ │ +1618TDS_INT _t_d_s___n_u_m_e_r_i_c___t_o___s_t_r_i_n_g(const _T_D_S___N_U_M_E_R_I_C * numeric, char *s); │ │ │ │ │ +1619TDS_INT tds_numeric_change_prec_scale(_T_D_S___N_U_M_E_R_I_C * numeric, unsigned char │ │ │ │ │ +new_prec, unsigned char new_scale); │ │ │ │ │ +1620 │ │ │ │ │ +1621 │ │ │ │ │ +1622/* getmac.c */ │ │ │ │ │ +1623void tds_getmac(TDS_SYS_SOCKET s, unsigned char mac[6]); │ │ │ │ │ +1624 │ │ │ │ │ +1625 │ │ │ │ │ +1626/* challenge.c */ │ │ │ │ │ +1627#ifndef HAVE_SSPI │ │ │ │ │ +1628_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * _t_d_s___n_t_l_m___g_e_t___a_u_t_h(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1629_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds_gss_get_auth(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1630#else │ │ │ │ │ +1631_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds_sspi_get_auth(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1632#endif │ │ │ │ │ +1633TDSRET tds5_gss_send(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +1634 │ │ │ │ │ +1635 │ │ │ │ │ +1636/* random.c */ │ │ │ │ │ +1637void tds_random_buffer(unsigned char *out, int len); │ │ │ │ │ +1638 │ │ │ │ │ +1639 │ │ │ │ │ +1640/* sec_negotiate.c */ │ │ │ │ │ +1641_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds5_negotiate_get_auth(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +1642static inline │ │ │ │ │ +1643void tds5_negotiate_set_msg_type(_T_D_S_A_U_T_H_E_N_T_I_C_A_T_I_O_N * tds_auth, unsigned │ │ │ │ │ +msg_type) │ │ │ │ │ +1644{ │ │ │ │ │ +1645 if (tds_auth) │ │ │ │ │ +1646 tds_auth->msg_type = msg_type; │ │ │ │ │ +1647} │ │ │ │ │ +1648 │ │ │ │ │ +1649 │ │ │ │ │ +1650/* bulk.c */ │ │ │ │ │ +1651 │ │ │ │ │ +_1_6_5_3enum _t_d_s___b_c_p___d_i_r_e_c_t_i_o_n_s │ │ │ │ │ +1654{ │ │ │ │ │ +1655 TDS_BCP_IN = 1, │ │ │ │ │ +1656 TDS_BCP_OUT = 2, │ │ │ │ │ +1657 TDS_BCP_QUERYOUT = 3 │ │ │ │ │ +1658}; │ │ │ │ │ +1659 │ │ │ │ │ +_1_6_6_0struct _t_d_s___b_c_p_i_n_f_o │ │ │ │ │ +1661{ │ │ │ │ │ +1662 const char *hint; │ │ │ │ │ +1663 void *parent; │ │ │ │ │ +1664 _D_S_T_R tablename; │ │ │ │ │ +1665 TDS_CHAR *insert_stmt; │ │ │ │ │ +1666 TDS_INT direction; │ │ │ │ │ +1667 TDS_INT identity_insert_on; │ │ │ │ │ +1668 TDS_INT xfer_init; │ │ │ │ │ +1669 TDS_INT bind_count; │ │ │ │ │ +1670 _T_D_S_R_E_S_U_L_T_I_N_F_O *bindinfo; │ │ │ │ │ +1671}; │ │ │ │ │ +1672 │ │ │ │ │ +1673TDSRET _t_d_s___b_c_p___i_n_i_t(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ +1674typedef TDSRET (*tds_bcp_get_col_data) (_T_D_S_B_C_P_I_N_F_O *bulk, _T_D_S_C_O_L_U_M_N │ │ │ │ │ +*bcpcol, int offset); │ │ │ │ │ +1675typedef void (*tds_bcp_null_error) (_T_D_S_B_C_P_I_N_F_O *bulk, int index, int │ │ │ │ │ +offset); │ │ │ │ │ +1676TDSRET _t_d_s___b_c_p___s_e_n_d___r_e_c_o_r_d(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo, │ │ │ │ │ +tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset); │ │ │ │ │ +1677TDSRET _t_d_s___b_c_p___d_o_n_e(_T_D_S_S_O_C_K_E_T *tds, int *rows_copied); │ │ │ │ │ +1678TDSRET _t_d_s___b_c_p___s_t_a_r_t(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ +1679TDSRET _t_d_s___b_c_p___s_t_a_r_t___c_o_p_y___i_n(_T_D_S_S_O_C_K_E_T *tds, _T_D_S_B_C_P_I_N_F_O *bcpinfo); │ │ │ │ │ +1680 │ │ │ │ │ +1681TDSRET _t_d_s___b_c_p___f_r_e_a_d(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * conv, FILE * stream, │ │ │ │ │ +1682 const char *terminator, size_t term_len, char **outbuf, size_t * │ │ │ │ │ +outbytes); │ │ │ │ │ +1683 │ │ │ │ │ +1684TDSRET _t_d_s___w_r_i_t_e_t_e_x_t___s_t_a_r_t(_T_D_S_S_O_C_K_E_T *tds, const char *objname, const char │ │ │ │ │ +*textptr, const char *timestamp, int with_log, TDS_UINT size); │ │ │ │ │ +1685TDSRET _t_d_s___w_r_i_t_e_t_e_x_t___c_o_n_t_i_n_u_e(_T_D_S_S_O_C_K_E_T *tds, const TDS_UCHAR *text, │ │ │ │ │ +TDS_UINT size); │ │ │ │ │ +1686TDSRET _t_d_s___w_r_i_t_e_t_e_x_t___e_n_d(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +1687 │ │ │ │ │ +1688 │ │ │ │ │ +1689static inline │ │ │ │ │ +1690bool tds_capability_enabled(const _T_D_S___C_A_P_A_B_I_L_I_T_Y___T_Y_P_E *cap, unsigned │ │ │ │ │ +cap_num) │ │ │ │ │ +1691{ │ │ │ │ │ +1692 return (cap->values[sizeof(cap->values)-1-(cap_num>>3)] >> (cap_num&7)) & │ │ │ │ │ +1; │ │ │ │ │ +1693} │ │ │ │ │ +1694#define tds_capability_has_req(conn, cap) \ │ │ │ │ │ +1695 tds_capability_enabled(&conn->capabilities.types[0], cap) │ │ │ │ │ +1696#define tds_capability_has_res(conn, cap) \ │ │ │ │ │ +1697 tds_capability_enabled(&conn->capabilities.types[1], cap) │ │ │ │ │ +1698 │ │ │ │ │ +1699#define IS_TDS42(x) (x->tds_version==0x402) │ │ │ │ │ +1700#define IS_TDS46(x) (x->tds_version==0x406) │ │ │ │ │ +1701#define IS_TDS50(x) (x->tds_version==0x500) │ │ │ │ │ +1702#define IS_TDS70(x) (x->tds_version==0x700) │ │ │ │ │ +1703#define IS_TDS71(x) (x->tds_version==0x701) │ │ │ │ │ +1704#define IS_TDS72(x) (x->tds_version==0x702) │ │ │ │ │ +1705#define IS_TDS73(x) (x->tds_version==0x703) │ │ │ │ │ +1706 │ │ │ │ │ +1707#define IS_TDS50_PLUS(x) ((x)->tds_version>=0x500) │ │ │ │ │ +1708#define IS_TDS7_PLUS(x) ((x)->tds_version>=0x700) │ │ │ │ │ +1709#define IS_TDS71_PLUS(x) ((x)->tds_version>=0x701) │ │ │ │ │ +1710#define IS_TDS72_PLUS(x) ((x)->tds_version>=0x702) │ │ │ │ │ +1711#define IS_TDS73_PLUS(x) ((x)->tds_version>=0x703) │ │ │ │ │ +1712#define IS_TDS74_PLUS(x) ((x)->tds_version>=0x704) │ │ │ │ │ +1713 │ │ │ │ │ +1714#define TDS_MAJOR(x) ((x)->tds_version >> 8) │ │ │ │ │ +1715#define TDS_MINOR(x) ((x)->tds_version & 0xff) │ │ │ │ │ +1716 │ │ │ │ │ +1717#define IS_TDSDEAD(x) (((x) == NULL) || (x)->state == TDS_DEAD) │ │ │ │ │ +1718 │ │ │ │ │ +_1_7_2_0#define TDS_IS_SYBASE(x) (!((x)->conn->product_version & 0x80000000u)) │ │ │ │ │ +_1_7_2_2#define TDS_IS_MSSQL(x) (((x)->conn->product_version & 0x80000000u)!=0) │ │ │ │ │ +1723 │ │ │ │ │ +_1_7_2_7#define TDS_MS_VER(maj,min,x) (0x80000000u|((maj)<<24)|((min)<<16)|(x)) │ │ │ │ │ +1728 │ │ │ │ │ +1729/* TODO test if not similar to ms one*/ │ │ │ │ │ +_1_7_3_1#define TDS_SYB_VER(maj,min,x) (((maj)<<24)|((min)<<16)|(x)<<8) │ │ │ │ │ +1732 │ │ │ │ │ +1733#ifdef __cplusplus │ │ │ │ │ +1734#if 0 │ │ │ │ │ +1735{ │ │ │ │ │ +1736#endif │ │ │ │ │ +1737} │ │ │ │ │ +1738#endif │ │ │ │ │ +1739 │ │ │ │ │ +1740#include │ │ │ │ │ +1741 │ │ │ │ │ +1742#define TDS_PUT_INT(tds,v) tds_put_int((tds), ((TDS_INT)(v))) │ │ │ │ │ +1743#define TDS_PUT_SMALLINT(tds,v) tds_put_smallint((tds), ((TDS_SMALLINT) │ │ │ │ │ +(v))) │ │ │ │ │ +1744#define TDS_PUT_BYTE(tds,v) tds_put_byte((tds), ((unsigned char)(v))) │ │ │ │ │ +1745 │ │ │ │ │ +1746#endif /* _tds_h_ */ │ │ │ │ │ +_t_d_s___i_c_o_n_v___a_l_l_o_c │ │ │ │ │ +int tds_iconv_alloc(TDSCONNECTION *conn) │ │ │ │ │ +Allocate iconv stuff. │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:307 │ │ │ │ │ +_t_d_s___g_e_t___c_o_n_v_e_r_s_i_o_n___t_y_p_e │ │ │ │ │ +TDS_SERVER_TYPE tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize) │ │ │ │ │ +Return type suitable for conversions (convert all nullable types to fixed type) │ │ │ │ │ +DDeeffiinniittiioonn tds_types.h:125 │ │ │ │ │ +_t_d_s___s_t_r_n_d_u_p │ │ │ │ │ +char * tds_strndup(const void *s, TDS_INTPTR len) │ │ │ │ │ +Copy a string of length len to a new allocated buffer This function does not │ │ │ │ │ +read more than len bytes... │ │ │ │ │ +DDeeffiinniittiioonn util.c:406 │ │ │ │ │ +_t_d_s___s_e_t___s_t_a_t_e │ │ │ │ │ +TDS_STATE tds_set_state(TDSSOCKET *tds, TDS_STATE state) │ │ │ │ │ +Set state of TDS connection, with logging and checking. │ │ │ │ │ +DDeeffiinniittiioonn util.c:58 │ │ │ │ │ +_T_D_S___C_O_M_P_I_L_E_T_I_M_E___S_E_T_T_I_N_G_S │ │ │ │ │ +struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS │ │ │ │ │ +A structure to hold all the compile-time settings. │ │ │ │ │ +_T_D_S_R_E_S_U_L_T_I_N_F_O │ │ │ │ │ +struct tds_result_info TDSRESULTINFO │ │ │ │ │ +Hold information for any results. │ │ │ │ │ +_t_d_s_d_u_m_p___o_p_e_n │ │ │ │ │ +int tdsdump_open(const char *filename) │ │ │ │ │ +Create and truncate a human readable dump file for the TDS traffic. │ │ │ │ │ +DDeeffiinniittiioonn log.c:131 │ │ │ │ │ +_T_D_S_V_A_R_I_A_N_T │ │ │ │ │ +struct tds_variant TDSVARIANT │ │ │ │ │ +Store variant informations. │ │ │ │ │ +_t_d_s_d_u_m_p___c_l_o_s_e │ │ │ │ │ +void tdsdump_close(void) │ │ │ │ │ +Close the TDS dump log file. │ │ │ │ │ +DDeeffiinniittiioonn log.c:212 │ │ │ │ │ +_t_d_s___s_e_t___c_o_l_u_m_n___t_y_p_e │ │ │ │ │ +void tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, │ │ │ │ │ +TDS_SERVER_TYPE type) │ │ │ │ │ +Set type of column initializing all dependency. │ │ │ │ │ +DDeeffiinniittiioonn data.c:224 │ │ │ │ │ +_t_d_s___s_e_t___s_e_r_v_e_r │ │ │ │ │ +bool tds_set_server(TDSLOGIN *tds_login, const char *server) TDS_WUR │ │ │ │ │ +Set the servername in a TDSLOGIN structure. │ │ │ │ │ +DDeeffiinniittiioonn login.c:129 │ │ │ │ │ +_T_D_S_D_A_T_E_R_E_C │ │ │ │ │ +struct tdsdaterec TDSDATEREC │ │ │ │ │ +Used by tds_datecrack. │ │ │ │ │ +_t_d_s___g_e_t___l_o_c_a_l_e │ │ │ │ │ +TDSLOCALE * tds_get_locale(void) │ │ │ │ │ +Get locale information. │ │ │ │ │ +DDeeffiinniittiioonn locale.c:50 │ │ │ │ │ +_T_D_S_E_N_V │ │ │ │ │ +struct tds_env TDSENV │ │ │ │ │ +Current environment as reported by the server. │ │ │ │ │ +_t_d_s___w_r_i_t_e___d_u_m_p │ │ │ │ │ +int tds_write_dump │ │ │ │ │ +Tell if TDS debug logging is turned on or off. │ │ │ │ │ +DDeeffiinniittiioonn log.c:58 │ │ │ │ │ +_T_D_S_B_L_O_B │ │ │ │ │ +struct tds_blob TDSBLOB │ │ │ │ │ +Information about blobs (e.g. │ │ │ │ │ +_t_d_s___g_e_t___s_i_z_e___b_y___t_y_p_e │ │ │ │ │ +int tds_get_size_by_type(TDS_SERVER_TYPE servertype) │ │ │ │ │ +Return the number of bytes needed by specified type. │ │ │ │ │ +DDeeffiinniittiioonn tds_types.h:9 │ │ │ │ │ +_t_d_s___n_u_m_e_r_i_c___b_y_t_e_s___p_e_r___p_r_e_c │ │ │ │ │ +const int tds_numeric_bytes_per_prec[] │ │ │ │ │ +The following little table is indexed by precision and will tell us the number │ │ │ │ │ +of bytes required to s... │ │ │ │ │ +DDeeffiinniittiioonn numeric.c:41 │ │ │ │ │ +_t_d_s___b_c_p___s_t_a_r_t___c_o_p_y___i_n │ │ │ │ │ +TDSRET tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo) │ │ │ │ │ +Start bulk copy to server. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:916 │ │ │ │ │ +_t_d_s___n_u_m_e_r_i_c___t_o___s_t_r_i_n_g │ │ │ │ │ +TDS_INT tds_numeric_to_string(const TDS_NUMERIC *numeric, char *s) │ │ │ │ │ +DDeeffiinniittiioonn numeric.c:95 │ │ │ │ │ +_t_d_s___g_e_t___v_a_r_i_n_t___s_i_z_e │ │ │ │ │ +int tds_get_varint_size(TDSCONNECTION *conn, int datatype) │ │ │ │ │ +tds_get_varint_size() returns the size of a variable length integer returned in │ │ │ │ │ +a result string │ │ │ │ │ +DDeeffiinniittiioonn tds_types.h:57 │ │ │ │ │ +_t_d_s___w_r_i_t_e_t_e_x_t___s_t_a_r_t │ │ │ │ │ +TDSRET tds_writetext_start(TDSSOCKET *tds, const char *objname, const char │ │ │ │ │ +*textptr, const char *timestamp, int with_log, TDS_UINT size) │ │ │ │ │ +Start writing writetext request. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:1147 │ │ │ │ │ +_t_d_s___b_c_p___f_r_e_a_d │ │ │ │ │ +TDSRET tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char │ │ │ │ │ +*terminator, size_t term_len, char **outbuf, size_t *outbytes) │ │ │ │ │ +Read a data file, passing the data through iconv(). │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:1077 │ │ │ │ │ +_t_d_s___b_c_p___s_t_a_r_t │ │ │ │ │ +TDSRET tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo) │ │ │ │ │ +Start sending BCP data to server. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:866 │ │ │ │ │ +_T_D_S_D_Y_N_A_M_I_C │ │ │ │ │ +struct tds_dynamic TDSDYNAMIC │ │ │ │ │ +Holds information for a dynamic (also called prepared) query. │ │ │ │ │ +_t_d_s___s_e_t___p_a_r_a_m___t_y_p_e │ │ │ │ │ +void tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE │ │ │ │ │ +type) │ │ │ │ │ +Set type of column initializing all dependency. │ │ │ │ │ +DDeeffiinniittiioonn data.c:246 │ │ │ │ │ +_t_d_s___s_t_a_t_e_s │ │ │ │ │ +tds_states │ │ │ │ │ +values for tds->state │ │ │ │ │ +DDeeffiinniittiioonn tds.h:789 │ │ │ │ │ +_T_D_S___P_E_N_D_I_N_G │ │ │ │ │ +@ TDS_PENDING │ │ │ │ │ +cilent is waiting for data │ │ │ │ │ +DDeeffiinniittiioonn tds.h:793 │ │ │ │ │ +_T_D_S___S_E_N_D_I_N_G │ │ │ │ │ +@ TDS_SENDING │ │ │ │ │ +client would send data │ │ │ │ │ +DDeeffiinniittiioonn tds.h:792 │ │ │ │ │ +_T_D_S___R_E_A_D_I_N_G │ │ │ │ │ +@ TDS_READING │ │ │ │ │ +client is reading data │ │ │ │ │ +DDeeffiinniittiioonn tds.h:794 │ │ │ │ │ +_T_D_S___W_R_I_T_I_N_G │ │ │ │ │ +@ TDS_WRITING │ │ │ │ │ +client is writing data │ │ │ │ │ +DDeeffiinniittiioonn tds.h:791 │ │ │ │ │ +_T_D_S___I_D_L_E │ │ │ │ │ +@ TDS_IDLE │ │ │ │ │ +no data expected │ │ │ │ │ +DDeeffiinniittiioonn tds.h:790 │ │ │ │ │ +_T_D_S___D_E_A_D │ │ │ │ │ +@ TDS_DEAD │ │ │ │ │ +no connection │ │ │ │ │ +DDeeffiinniittiioonn tds.h:795 │ │ │ │ │ +_t_d_s___e_n_d │ │ │ │ │ +tds_end │ │ │ │ │ +Flags returned in TDS_DONE token. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:250 │ │ │ │ │ +_T_D_S___D_O_N_E___C_A_N_C_E_L_L_E_D │ │ │ │ │ +@ TDS_DONE_CANCELLED │ │ │ │ │ +acknowledging an attention command (usually a cancel) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:257 │ │ │ │ │ +_T_D_S___D_O_N_E___M_O_R_E___R_E_S_U_L_T_S │ │ │ │ │ +@ TDS_DONE_MORE_RESULTS │ │ │ │ │ +more results follow │ │ │ │ │ +DDeeffiinniittiioonn tds.h:252 │ │ │ │ │ +_T_D_S___D_O_N_E___S_R_V_E_R_R_O_R │ │ │ │ │ +@ TDS_DONE_SRVERROR │ │ │ │ │ +SQL server server error. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:259 │ │ │ │ │ +_T_D_S___D_O_N_E___F_I_N_A_L │ │ │ │ │ +@ TDS_DONE_FINAL │ │ │ │ │ +final result set, command completed successfully. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:251 │ │ │ │ │ +_T_D_S___D_O_N_E___E_R_R_O_R │ │ │ │ │ +@ TDS_DONE_ERROR │ │ │ │ │ +error occurred │ │ │ │ │ +DDeeffiinniittiioonn tds.h:253 │ │ │ │ │ +_T_D_S___D_O_N_E___I_N_X_A_C_T │ │ │ │ │ +@ TDS_DONE_INXACT │ │ │ │ │ +transaction in progress │ │ │ │ │ +DDeeffiinniittiioonn tds.h:254 │ │ │ │ │ +_T_D_S___D_O_N_E___P_R_O_C │ │ │ │ │ +@ TDS_DONE_PROC │ │ │ │ │ +results are from a stored procedure │ │ │ │ │ +DDeeffiinniittiioonn tds.h:255 │ │ │ │ │ +_T_D_S___D_O_N_E___C_O_U_N_T │ │ │ │ │ +@ TDS_DONE_COUNT │ │ │ │ │ +count field in packet is valid │ │ │ │ │ +DDeeffiinniittiioonn tds.h:256 │ │ │ │ │ +_t_d_s_d_u_m_p___c_o_l │ │ │ │ │ +void tdsdump_col(const TDSCOLUMN *col) │ │ │ │ │ +Write a column value to the debug log. │ │ │ │ │ +DDeeffiinniittiioonn log.c:455 │ │ │ │ │ +_t_d_s___w_r_i_t_e_t_e_x_t___c_o_n_t_i_n_u_e │ │ │ │ │ +TDSRET tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT │ │ │ │ │ +size) │ │ │ │ │ +Send some data in the writetext request started by tds_writetext_start. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:1185 │ │ │ │ │ +_t_d_s_e_r_r_o_r │ │ │ │ │ +int tdserror(const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum) │ │ │ │ │ +Call the client library's error handler (for library-generated errors only) │ │ │ │ │ +DDeeffiinniittiioonn util.c:321 │ │ │ │ │ +_T_D_S___S_T_A_T_E │ │ │ │ │ +enum tds_states TDS_STATE │ │ │ │ │ +values for tds->state │ │ │ │ │ +_t_d_s___w_r_i_t_e_t_e_x_t___e_n_d │ │ │ │ │ +TDSRET tds_writetext_end(TDSSOCKET *tds) │ │ │ │ │ +Finish sending writetext data. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:1202 │ │ │ │ │ +_t_d_s___b_c_p___i_n_i_t │ │ │ │ │ +TDSRET tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo) │ │ │ │ │ +Initialize BCP information. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:84 │ │ │ │ │ +_t_d_s___b_c_p___d_i_r_e_c_t_i_o_n_s │ │ │ │ │ +tds_bcp_directions │ │ │ │ │ +bcp direction │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1654 │ │ │ │ │ +_t_d_s___b_c_p___s_e_n_d___r_e_c_o_r_d │ │ │ │ │ +TDSRET tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, │ │ │ │ │ +tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset) │ │ │ │ │ +Send one row of data to server. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:468 │ │ │ │ │ +_t_d_s___b_c_p___d_o_n_e │ │ │ │ │ +TDSRET tds_bcp_done(TDSSOCKET *tds, int *rows_copied) │ │ │ │ │ +Tell we finished sending BCP data to server. │ │ │ │ │ +DDeeffiinniittiioonn bulk.c:836 │ │ │ │ │ +_T_D_S___E_N_C_O_D_I_N_G │ │ │ │ │ +struct tds_encoding TDS_ENCODING │ │ │ │ │ +Information relevant to libiconv. │ │ │ │ │ +_t_d_s_d_u_m_p___o_f_f │ │ │ │ │ +void tdsdump_off(TDSDUMP_OFF_ITEM *off_item) │ │ │ │ │ +Temporarily turn off logging for current thread. │ │ │ │ │ +DDeeffiinniittiioonn log.c:81 │ │ │ │ │ +_t_d_s_d_u_m_p___o_n │ │ │ │ │ +void tdsdump_on(TDSDUMP_OFF_ITEM *off_item) │ │ │ │ │ +Turn logging back on for current thread. │ │ │ │ │ +DDeeffiinniittiioonn log.c:101 │ │ │ │ │ +_T_D_S_C_U_R_S_O_R │ │ │ │ │ +struct tds_cursor TDSCURSOR │ │ │ │ │ +Holds informations about a cursor. │ │ │ │ │ +_t_d_s___n_t_l_m___g_e_t___a_u_t_h │ │ │ │ │ +TDSAUTHENTICATION * tds_ntlm_get_auth(TDSSOCKET *tds) │ │ │ │ │ +Build a NTLMSPP packet to send to server. │ │ │ │ │ +DDeeffiinniittiioonn challenge.c:721 │ │ │ │ │ +_t_d_s___c_o_n_f_i_g___v_e_r_s_t_r │ │ │ │ │ +TDS_USMALLINT * tds_config_verstr(const char *tdsver, TDSLOGIN *login) │ │ │ │ │ +Set TDS version from given string. │ │ │ │ │ +DDeeffiinniittiioonn config.c:923 │ │ │ │ │ +_t_d_s___g_e_t___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s │ │ │ │ │ +const TDS_COMPILETIME_SETTINGS * tds_get_compiletime_settings(void) │ │ │ │ │ +Return a structure capturing the compile-time settings provided to the │ │ │ │ │ +configure script. │ │ │ │ │ +DDeeffiinniittiioonn config.c:1344 │ │ │ │ │ +_t_d_s___l_o_o_k_u_p___h_o_s_t │ │ │ │ │ +struct addrinfo * tds_lookup_host(const char *servername) │ │ │ │ │ +Get the IP address for a hostname. │ │ │ │ │ +DDeeffiinniittiioonn config.c:987 │ │ │ │ │ +_t_d_s___r_e_a_d___c_o_n_f___s_e_c_t_i_o_n │ │ │ │ │ +bool tds_read_conf_section(FILE *in, const char *section, TDSCONFPARSE │ │ │ │ │ +tds_conf_parse, void *parse_param) │ │ │ │ │ +Read a section of configuration file (INI style file) │ │ │ │ │ +DDeeffiinniittiioonn config.c:503 │ │ │ │ │ +_t_d_s___r_e_a_d___c_o_n_f___f_i_l_e │ │ │ │ │ +bool tds_read_conf_file(TDSLOGIN *login, const char *server) │ │ │ │ │ +Read configuration info for given server return 0 on error. │ │ │ │ │ +DDeeffiinniittiioonn config.c:346 │ │ │ │ │ +_t_d_s___s_e_t___i_n_t_e_r_f_a_c_e_s___f_i_l_e___l_o_c │ │ │ │ │ +TDSRET tds_set_interfaces_file_loc(const char *interfloc) │ │ │ │ │ +Set the full name of interface file. │ │ │ │ │ +DDeeffiinniittiioonn config.c:961 │ │ │ │ │ +_t_d_s___g_e_t___h_o_m_e___f_i_l_e │ │ │ │ │ +char * tds_get_home_file(const char *file) │ │ │ │ │ +Return filename from HOME directory. │ │ │ │ │ +DDeeffiinniittiioonn config.c:325 │ │ │ │ │ +_t_d_s___r_e_a_d___c_o_n_f_i_g___i_n_f_o │ │ │ │ │ +TDSLOGIN * tds_read_config_info(TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE │ │ │ │ │ +*locale) │ │ │ │ │ +tds_read_config_info() will fill the tds connection structure based on │ │ │ │ │ +configuration information gath... │ │ │ │ │ +DDeeffiinniittiioonn config.c:138 │ │ │ │ │ +_t_d_s___f_i_x___l_o_g_i_n │ │ │ │ │ +void tds_fix_login(TDSLOGIN *login) │ │ │ │ │ +Fix configuration after reading it. │ │ │ │ │ +DDeeffiinniittiioonn config.c:285 │ │ │ │ │ +_t_d_s___d_a_t_e_c_r_a_c_k │ │ │ │ │ +TDSRET tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr) │ │ │ │ │ +Convert from db date format to a structured date format. │ │ │ │ │ +DDeeffiinniittiioonn convert.c:3172 │ │ │ │ │ +_t_d_s___i_c_o_n_v___f_r_o_m___c_o_l_l_a_t_e │ │ │ │ │ +TDSICONV * tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5]) │ │ │ │ │ +Get iconv information from a LCID (to support different column encoding under │ │ │ │ │ +MSSQL2K) │ │ │ │ │ +DDeeffiinniittiioonn iconv.c:1245 │ │ │ │ │ +_t_d_s___a_l_l_o_c___r_o_w │ │ │ │ │ +TDSRET tds_alloc_row(TDSRESULTINFO *res_info) │ │ │ │ │ +Allocate space for row store return NULL on out of memory. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:524 │ │ │ │ │ +_t_d_s___d_e_t_a_c_h___r_e_s_u_l_t_s │ │ │ │ │ +void tds_detach_results(TDSRESULTINFO *info) │ │ │ │ │ +Detach result info from it current socket. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:488 │ │ │ │ │ +_t_d_s___a_l_l_o_c___p_a_r_a_m___r_e_s_u_l_t │ │ │ │ │ +TDSPARAMINFO * tds_alloc_param_result(TDSPARAMINFO *old_param) │ │ │ │ │ +Adds a output parameter to TDSPARAMINFO. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:284 │ │ │ │ │ +_t_d_s___a_l_l_o_c___p_a_r_a_m___d_a_t_a │ │ │ │ │ +void * tds_alloc_param_data(TDSCOLUMN *curparam) │ │ │ │ │ +Allocate data for a parameter. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:364 │ │ │ │ │ +_t_d_s___i_n_i_t___l_o_g_i_n │ │ │ │ │ +TDSLOGIN * tds_init_login(TDSLOGIN *login, TDSLOCALE *locale) │ │ │ │ │ +Initialize login structure with locale information and other stuff for │ │ │ │ │ +connection. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:800 │ │ │ │ │ +_t_d_s___f_r_e_e___p_a_r_a_m___r_e_s_u_l_t │ │ │ │ │ +void tds_free_param_result(TDSPARAMINFO *param_info) │ │ │ │ │ +Delete latest parameter. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:320 │ │ │ │ │ +_t_d_s___a_l_l_o_c___d_y_n_a_m_i_c │ │ │ │ │ +TDSDYNAMIC * tds_alloc_dynamic(TDSCONNECTION *conn, const char *id) │ │ │ │ │ +Allocate a dynamic statement. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:160 │ │ │ │ │ +_t_d_s___r_e_a_l_l_o_c │ │ │ │ │ +void * tds_realloc(void **pp, size_t new_size) │ │ │ │ │ +Reallocate a pointer and update it if success. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:1876 │ │ │ │ │ +_t_d_s___f_r_e_e___i_n_p_u_t___p_a_r_a_m_s │ │ │ │ │ +void tds_free_input_params(TDSDYNAMIC *dyn) │ │ │ │ │ +Frees all allocated input parameters of a dynamic statement. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:206 │ │ │ │ │ +_t_d_s___r_e_l_e_a_s_e___d_y_n_a_m_i_c │ │ │ │ │ +void tds_release_dynamic(TDSDYNAMIC **dyn) │ │ │ │ │ +Frees dynamic statement. │ │ │ │ │ +DDeeffiinniittiioonn mem.c:253 │ │ │ │ │ +_t_d_s___n_e_e_d_s___u_n_p_r_e_p_a_r_e │ │ │ │ │ +int tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ │ +Check if dynamic request must be unprepared. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1752 │ │ │ │ │ +_t_d_s___s_k_i_p___q_u_o_t_e_d │ │ │ │ │ +const char * tds_skip_quoted(const char *s) │ │ │ │ │ +Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) │ │ │ │ │ +DDeeffiinniittiioonn query.c:515 │ │ │ │ │ +_t_d_s_7_1___s_u_b_m_i_t___p_r_e_p_e_x_e_c │ │ │ │ │ +TDSRET tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, │ │ │ │ │ +TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │ │ +Creates a temporary stored procedure in the server and execute it. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1401 │ │ │ │ │ +_t_d_s___s_t_a_r_t___q_u_e_r_y │ │ │ │ │ +void tds_start_query(TDSSOCKET *tds, unsigned char packet_type) │ │ │ │ │ +Start query packet of a given type. │ │ │ │ │ +DDeeffiinniittiioonn query.c:332 │ │ │ │ │ +_t_d_s___s_e_n_d___c_a_n_c_e_l │ │ │ │ │ +TDSRET tds_send_cancel(TDSSOCKET *tds) │ │ │ │ │ +tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel │ │ │ │ │ +should be called dire... │ │ │ │ │ +DDeeffiinniittiioonn query.c:2026 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___e_x_e_c_u_t_e │ │ │ │ │ +TDSRET tds_submit_execute(TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ │ +Sends a previously prepared dynamic statement to the server. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1630 │ │ │ │ │ +_t_d_s___f_i_x___c_o_l_u_m_n___s_i_z_e │ │ │ │ │ +size_t tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol) │ │ │ │ │ +Get column size for wire. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1491 │ │ │ │ │ +_t_d_s___g_e_t___c_o_l_u_m_n___d_e_c_l_a_r_a_t_i_o_n │ │ │ │ │ +TDSRET tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out) │ │ │ │ │ +Return declaration for column (like "varchar(20)"). │ │ │ │ │ +DDeeffiinniittiioonn query.c:718 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___c_o_m_m_i_t │ │ │ │ │ +TDSRET tds_submit_commit(TDSSOCKET *tds, int cont) │ │ │ │ │ +Send a commit request. │ │ │ │ │ +DDeeffiinniittiioonn query.c:3724 │ │ │ │ │ +_t_d_s___d_e_f_e_r_r_e_d___c_u_r_s_o_r___d_e_a_l_l_o_c │ │ │ │ │ +TDSRET tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │ │ +Deallocate cursor on idle. │ │ │ │ │ +DDeeffiinniittiioonn query.c:3057 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___q_u_e_r_y │ │ │ │ │ +TDSRET tds_submit_query(TDSSOCKET *tds, const char *query) │ │ │ │ │ +Sends a language string to the database server for processing. │ │ │ │ │ +DDeeffiinniittiioonn query.c:210 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___r_p_c │ │ │ │ │ +TDSRET tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO │ │ │ │ │ +*params, TDSHEADERS *head) │ │ │ │ │ +Calls a RPC from server. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1929 │ │ │ │ │ +_t_d_s___q_u_o_t_e___i_d___r_p_c │ │ │ │ │ +size_t tds_quote_id_rpc(TDSSOCKET *tds, char *buffer, const char *id, int │ │ │ │ │ +idlen) │ │ │ │ │ +Quote an id for a RPC call. │ │ │ │ │ +DDeeffiinniittiioonn query.c:2216 │ │ │ │ │ +_t_d_s___q_u_o_t_e___s_t_r_i_n_g │ │ │ │ │ +size_t tds_quote_string(TDSSOCKET *tds, char *buffer, const char *str, int len) │ │ │ │ │ +Quote a string. │ │ │ │ │ +DDeeffiinniittiioonn query.c:2241 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___p_r_e_p_a_r_e │ │ │ │ │ +TDSRET tds_submit_prepare(TDSSOCKET *tds, const char *query, const char *id, │ │ │ │ │ +TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │ │ +Creates a temporary stored procedure in the server. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1124 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___b_e_g_i_n___t_r_a_n │ │ │ │ │ +TDSRET tds_submit_begin_tran(TDSSOCKET *tds) │ │ │ │ │ +Send a rollback request. │ │ │ │ │ +DDeeffiinniittiioonn query.c:3665 │ │ │ │ │ +_t_d_s___q_u_o_t_e___i_d │ │ │ │ │ +size_t tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen) │ │ │ │ │ +Quote an id. │ │ │ │ │ +DDeeffiinniittiioonn query.c:2171 │ │ │ │ │ +_t_d_s___n_e_x_t___p_l_a_c_e_h_o_l_d_e_r │ │ │ │ │ +const char * tds_next_placeholder(const char *start) │ │ │ │ │ +Get position of next placeholder. │ │ │ │ │ +DDeeffiinniittiioonn query.c:535 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___q_u_e_r_y___p_a_r_a_m_s │ │ │ │ │ +TDSRET tds_submit_query_params(TDSSOCKET *tds, const char *query, TDSPARAMINFO │ │ │ │ │ +*params, TDSHEADERS *head) │ │ │ │ │ +Sends a language string to the database server for processing. │ │ │ │ │ +DDeeffiinniittiioonn query.c:350 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___r_o_l_l_b_a_c_k │ │ │ │ │ +TDSRET tds_submit_rollback(TDSSOCKET *tds, int cont) │ │ │ │ │ +Send a rollback request. │ │ │ │ │ +DDeeffiinniittiioonn query.c:3693 │ │ │ │ │ +_t_d_s___d_e_f_e_r_r_e_d___u_n_p_r_e_p_a_r_e │ │ │ │ │ +TDSRET tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ │ +Unprepare dynamic on idle. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1774 │ │ │ │ │ +_t_d_s___c_o_u_n_t___p_l_a_c_e_h_o_l_d_e_r_s │ │ │ │ │ +int tds_count_placeholders(const char *query) │ │ │ │ │ +Count the number of placeholders ('?') in a query. │ │ │ │ │ +DDeeffiinniittiioonn query.c:571 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r___d_e_a_l_l_o_c │ │ │ │ │ +TDSRET tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │ │ +Send a deallocation request to server. │ │ │ │ │ +DDeeffiinniittiioonn query.c:3006 │ │ │ │ │ +_t_d_s___s_k_i_p___c_o_m_m_e_n_t │ │ │ │ │ +const char * tds_skip_comment(const char *s) │ │ │ │ │ +Skip a comment in a query. │ │ │ │ │ +DDeeffiinniittiioonn query.c:490 │ │ │ │ │ +_t_d_s___c_o_n_v_e_r_t___s_t_r_i_n_g │ │ │ │ │ +const char * tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char │ │ │ │ │ +*s, int len, size_t *out_len) │ │ │ │ │ +Convert a string in an allocated buffer. │ │ │ │ │ +DDeeffiinniittiioonn query.c:126 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___q_u_e_r_y_f │ │ │ │ │ +TDSRET tds_submit_queryf(TDSSOCKET *tds, const char *queryf,...) │ │ │ │ │ +Format and submit a query. │ │ │ │ │ +DDeeffiinniittiioonn query.c:467 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___e_x_e_c_d_i_r_e_c_t │ │ │ │ │ +TDSRET tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO │ │ │ │ │ +*params, TDSHEADERS *head) │ │ │ │ │ +Submit a prepared query with parameters. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1256 │ │ │ │ │ +_t_d_s___s_e_t___c_u_r___d_y_n │ │ │ │ │ +void tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ │ +Set current dynamic. │ │ │ │ │ +DDeeffiinniittiioonn query.c:192 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___o_p_t_i_o_n_c_m_d │ │ │ │ │ +TDSRET tds_submit_optioncmd(TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION │ │ │ │ │ +option, TDS_OPTION_ARG *param, TDS_INT param_size) │ │ │ │ │ +Send option commands to server. │ │ │ │ │ +DDeeffiinniittiioonn query.c:3389 │ │ │ │ │ +_t_d_s___s_u_b_m_i_t___u_n_p_r_e_p_a_r_e │ │ │ │ │ +TDSRET tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ │ +Send a unprepare request for a prepared query. │ │ │ │ │ +DDeeffiinniittiioonn query.c:1797 │ │ │ │ │ +_t_d_s___d_s_t_r___g_e_t │ │ │ │ │ +DSTR * tds_dstr_get(TDSSOCKET *tds, DSTR *s, size_t len) │ │ │ │ │ +Reads a string from wire and put in a DSTR. │ │ │ │ │ +DDeeffiinniittiioonn read.c:293 │ │ │ │ │ +_t_d_s___g_e_t___b_y_t_e │ │ │ │ │ +unsigned char tds_get_byte(TDSSOCKET *tds) │ │ │ │ │ +Return a single byte from the input buffer. │ │ │ │ │ +DDeeffiinniittiioonn read.c:72 │ │ │ │ │ +_t_d_s___p_u_t___s_t_r_i_n_g │ │ │ │ │ +int tds_put_string(TDSSOCKET *tds, const char *buf, int len) │ │ │ │ │ +Output a string to wire automatic translate string to unicode if needed. │ │ │ │ │ +DDeeffiinniittiioonn write.c:97 │ │ │ │ │ +_t_d_s___p_e_e_k │ │ │ │ │ +unsigned char tds_peek(TDSSOCKET *tds) │ │ │ │ │ +Reads a byte from the TDS stream without removing it. │ │ │ │ │ +DDeeffiinniittiioonn read.c:100 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e___c_l_o_s_e___l_e_n │ │ │ │ │ +TDSRET tds_freeze_close_len(TDSFREEZE *freeze, int32_t size) │ │ │ │ │ +Stop keeping data for this specific freeze. │ │ │ │ │ +DDeeffiinniittiioonn packet.c:1031 │ │ │ │ │ +_t_d_s___g_o_o_d_w_r_i_t_e │ │ │ │ │ +int tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen) │ │ │ │ │ +DDeeffiinniittiioonn net.c:985 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t___s_e_t___n_o_n_b_l_o_c_k_i_n_g │ │ │ │ │ +int tds_socket_set_nonblocking(TDS_SYS_SOCKET sock) │ │ │ │ │ +Set socket to non-blocking. │ │ │ │ │ +DDeeffiinniittiioonn net.c:168 │ │ │ │ │ +_t_d_s___c_l_o_s_e___s_o_c_k_e_t │ │ │ │ │ +void tds_close_socket(TDSSOCKET *tds) │ │ │ │ │ +Close current socket. │ │ │ │ │ +DDeeffiinniittiioonn net.c:548 │ │ │ │ │ +_t_d_s___r_e_a_d___p_a_c_k_e_t │ │ │ │ │ +int tds_read_packet(TDSSOCKET *tds) │ │ │ │ │ +Read in one 'packet' from the server. │ │ │ │ │ +DDeeffiinniittiioonn packet.c:527 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e___w_r_i_t_t_e_n │ │ │ │ │ +size_t tds_freeze_written(TDSFREEZE *freeze) │ │ │ │ │ +Compute how many bytes has been written from freeze. │ │ │ │ │ +DDeeffiinniittiioonn packet.c:935 │ │ │ │ │ +_t_d_s___f_l_u_s_h___p_a_c_k_e_t │ │ │ │ │ +TDSRET tds_flush_packet(TDSSOCKET *tds) │ │ │ │ │ +Flush packet to server. │ │ │ │ │ +DDeeffiinniittiioonn write.c:224 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e___c_l_o_s_e │ │ │ │ │ +TDSRET tds_freeze_close(TDSFREEZE *freeze) │ │ │ │ │ +Stop keeping data for this specific freeze. │ │ │ │ │ +DDeeffiinniittiioonn packet.c:996 │ │ │ │ │ +_t_d_s___g_o_o_d_r_e_a_d │ │ │ │ │ +int tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen) │ │ │ │ │ +Loops until we have received some characters return -1 on failure. │ │ │ │ │ +DDeeffiinniittiioonn net.c:914 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e___a_b_o_r_t │ │ │ │ │ +TDSRET tds_freeze_abort(TDSFREEZE *freeze) │ │ │ │ │ +Discard all data written after the freeze. │ │ │ │ │ +DDeeffiinniittiioonn packet.c:961 │ │ │ │ │ +_t_d_s___g_e_t___u_i_n_t_8 │ │ │ │ │ +TDS_UINT8 tds_get_uint8(TDSSOCKET *tds) │ │ │ │ │ +Get an uint64 from the server. │ │ │ │ │ +DDeeffiinniittiioonn read.c:140 │ │ │ │ │ +_t_d_s___g_e_t___c_h_a_r___d_a_t_a │ │ │ │ │ +TDSRET tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, │ │ │ │ │ +TDSCOLUMN *curcol) │ │ │ │ │ +Fetch character data the wire. │ │ │ │ │ +DDeeffiinniittiioonn read.c:195 │ │ │ │ │ +_t_d_s___g_e_t___s_t_r_i_n_g │ │ │ │ │ +size_t tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t │ │ │ │ │ +dest_size) │ │ │ │ │ +Fetch a string from the wire. │ │ │ │ │ +DDeeffiinniittiioonn read.c:166 │ │ │ │ │ +_t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t_s │ │ │ │ │ +int tds7_get_instance_ports(FILE *output, struct addrinfo *addr) │ │ │ │ │ +Get port of all instances. │ │ │ │ │ +DDeeffiinniittiioonn net.c:1091 │ │ │ │ │ +_t_d_s___g_e_t___u_i_n_t │ │ │ │ │ +TDS_UINT tds_get_uint(TDSSOCKET *tds) │ │ │ │ │ +Get an int32 from the server. │ │ │ │ │ +DDeeffiinniittiioonn read.c:127 │ │ │ │ │ +_t_d_s_7___g_e_t___i_n_s_t_a_n_c_e___p_o_r_t │ │ │ │ │ +int tds7_get_instance_port(struct addrinfo *addr, const char *instance) │ │ │ │ │ +Get port of given instance. │ │ │ │ │ +DDeeffiinniittiioonn net.c:1227 │ │ │ │ │ +_t_d_s___g_e_t___u_s_m_a_l_l_i_n_t │ │ │ │ │ +TDS_USMALLINT tds_get_usmallint(TDSSOCKET *tds) │ │ │ │ │ +Get an int16 from the server. │ │ │ │ │ +DDeeffiinniittiioonn read.c:113 │ │ │ │ │ +_t_d_s___u_n_g_e_t___b_y_t_e │ │ │ │ │ +void tds_unget_byte(TDSSOCKET *tds) │ │ │ │ │ +Unget will always work as long as you don't call it twice in a row. │ │ │ │ │ +DDeeffiinniittiioonn read.c:89 │ │ │ │ │ +_t_d_s___s_e_l_e_c_t │ │ │ │ │ +int tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds) │ │ │ │ │ +Select on a socket until it's available or the timeout expires. │ │ │ │ │ +DDeeffiinniittiioonn net.c:610 │ │ │ │ │ +_t_d_s___g_e_t___n │ │ │ │ │ +bool tds_get_n(TDSSOCKET *tds, void *dest, size_t n) │ │ │ │ │ +Get N bytes from the buffer and return them in the already allocated space │ │ │ │ │ +given to us. │ │ │ │ │ +DDeeffiinniittiioonn read.c:230 │ │ │ │ │ +_t_d_s___p_r_t_y_p_e │ │ │ │ │ +const char * tds_prtype(int token) │ │ │ │ │ +Returns string representation of the given type. │ │ │ │ │ +DDeeffiinniittiioonn token.c:3056 │ │ │ │ │ +_t_d_s___l_o_o_k_u_p___d_y_n_a_m_i_c │ │ │ │ │ +TDSDYNAMIC * tds_lookup_dynamic(TDSCONNECTION *conn, const char *id) │ │ │ │ │ +Finds a dynamic given string id. │ │ │ │ │ +DDeeffiinniittiioonn token.c:2587 │ │ │ │ │ +_t_d_s___p_r_o_c_e_s_s___l_o_g_i_n___t_o_k_e_n_s │ │ │ │ │ +TDSRET tds_process_login_tokens(TDSSOCKET *tds) │ │ │ │ │ +tds_process_login_tokens() is called after sending the login packet to the │ │ │ │ │ +server. │ │ │ │ │ +DDeeffiinniittiioonn token.c:411 │ │ │ │ │ +_t_d_s___g_e_t___t_o_k_e_n___s_i_z_e │ │ │ │ │ +int tds_get_token_size(int marker) │ │ │ │ │ +tds_get_token_size() returns the size of a fixed length token used by │ │ │ │ │ +tds_process_cancel() to determi... │ │ │ │ │ +DDeeffiinniittiioonn token.c:2754 │ │ │ │ │ +_t_d_s___p_r_o_c_e_s_s___t_o_k_e_n_s │ │ │ │ │ +TDSRET tds_process_tokens(TDSSOCKET *tds, TDS_INT *result_type, int │ │ │ │ │ +*done_flags, unsigned flag) │ │ │ │ │ +process all streams. │ │ │ │ │ +DDeeffiinniittiioonn token.c:531 │ │ │ │ │ +_t_d_s___p_r_o_c_e_s_s___s_i_m_p_l_e___q_u_e_r_y │ │ │ │ │ +TDSRET tds_process_simple_query(TDSSOCKET *tds) │ │ │ │ │ +Process results for simple query as "SET TEXTSIZE" or "USE dbname" If the │ │ │ │ │ +statement returns results,... │ │ │ │ │ +DDeeffiinniittiioonn token.c:881 │ │ │ │ │ +_t_d_s___p_r_o_c_e_s_s___c_a_n_c_e_l │ │ │ │ │ +TDSRET tds_process_cancel(TDSSOCKET *tds) │ │ │ │ │ +DDeeffiinniittiioonn token.c:2554 │ │ │ │ │ +_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ +_t_d_s_n_u_m_e_r_i_c │ │ │ │ │ +DDeeffiinniittiioonn proto.h:26 │ │ │ │ │ +_t_d_s_m_o_n_e_y │ │ │ │ │ +DDeeffiinniittiioonn proto.h:39 │ │ │ │ │ +_t_d_s___c_o_m_p_i_l_e_t_i_m_e___s_e_t_t_i_n_g_s │ │ │ │ │ +A structure to hold all the compile-time settings. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:82 │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L │ │ │ │ │ +this structure is not directed connected to a TDS protocol but keeps any DATE/ │ │ │ │ │ +TIME information. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:146 │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L_:_:_d_a_t_e │ │ │ │ │ +TDS_INT date │ │ │ │ │ +date, 0 = 1900-01-01 │ │ │ │ │ +DDeeffiinniittiioonn tds.h:148 │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L_:_:_o_f_f_s_e_t │ │ │ │ │ +TDS_SMALLINT offset │ │ │ │ │ +time offset │ │ │ │ │ +DDeeffiinniittiioonn tds.h:149 │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L_:_:_t_i_m_e │ │ │ │ │ +TDS_UINT8 time │ │ │ │ │ +time, 7 digit precision │ │ │ │ │ +DDeeffiinniittiioonn tds.h:147 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c │ │ │ │ │ +Used by tds_datecrack. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:159 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_d_a_y_o_f_y_e_a_r │ │ │ │ │ +TDS_INT dayofyear │ │ │ │ │ +day of year (1-366) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:164 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_w_e_e_k_d_a_y │ │ │ │ │ +TDS_INT weekday │ │ │ │ │ +day of week (0-6, 0 = sunday) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:165 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_y_e_a_r │ │ │ │ │ +TDS_INT year │ │ │ │ │ +year │ │ │ │ │ +DDeeffiinniittiioonn tds.h:160 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_t_i_m_e_z_o_n_e │ │ │ │ │ +TDS_INT timezone │ │ │ │ │ +-840 - 840 minutes from UTC │ │ │ │ │ +DDeeffiinniittiioonn tds.h:170 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_m_i_n_u_t_e │ │ │ │ │ +TDS_INT minute │ │ │ │ │ +0-59 │ │ │ │ │ +DDeeffiinniittiioonn tds.h:167 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_d_a_y │ │ │ │ │ +TDS_INT day │ │ │ │ │ +day of month (1-31) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:163 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_d_e_c_i_m_i_c_r_o_s_e_c_o_n_d │ │ │ │ │ +TDS_INT decimicrosecond │ │ │ │ │ +0-9999999 │ │ │ │ │ +DDeeffiinniittiioonn tds.h:169 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_s_e_c_o_n_d │ │ │ │ │ +TDS_INT second │ │ │ │ │ +0-59 │ │ │ │ │ +DDeeffiinniittiioonn tds.h:168 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_q_u_a_r_t_e_r │ │ │ │ │ +TDS_INT quarter │ │ │ │ │ +quarter (0-3) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:161 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_h_o_u_r │ │ │ │ │ +TDS_INT hour │ │ │ │ │ +0-23 │ │ │ │ │ +DDeeffiinniittiioonn tds.h:166 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c_:_:_m_o_n_t_h │ │ │ │ │ +TDS_INT month │ │ │ │ │ +month number (0-11) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:162 │ │ │ │ │ +_t_d_s___o_p_t_i_o_n___a_r_g │ │ │ │ │ +DDeeffiinniittiioonn tds.h:330 │ │ │ │ │ +_t_d_s___a_l_i_g_n___s_t_r_u_c_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:495 │ │ │ │ │ +_t_d_s___c_a_p_a_b_i_l_i_t_y___t_y_p_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:504 │ │ │ │ │ +_t_d_s___c_a_p_a_b_i_l_i_t_i_e_s │ │ │ │ │ +DDeeffiinniittiioonn tds.h:511 │ │ │ │ │ +_t_d_s___l_o_g_i_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_c_r_l_f_i_l_e │ │ │ │ │ +DSTR crlfile │ │ │ │ │ +certificate revocation file │ │ │ │ │ +DDeeffiinniittiioonn tds.h:531 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___r_e_a_l_m___n_a_m_e │ │ │ │ │ +DSTR server_realm_name │ │ │ │ │ +server realm name (in freetds.conf) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:527 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_u_s_e_r___n_a_m_e │ │ │ │ │ +DSTR user_name │ │ │ │ │ +account for login │ │ │ │ │ +DDeeffiinniittiioonn tds.h:534 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_p_a_s_s_w_o_r_d │ │ │ │ │ +DSTR password │ │ │ │ │ +password of account login │ │ │ │ │ +DDeeffiinniittiioonn tds.h:535 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_d_b___f_i_l_e_n_a_m_e │ │ │ │ │ +DSTR db_filename │ │ │ │ │ +database filename to attach (MSSQL) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:529 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___n_a_m_e │ │ │ │ │ +DSTR server_name │ │ │ │ │ +server name (in freetds.conf) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:518 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_i_p___a_d_d_r_s │ │ │ │ │ +struct addrinfo * ip_addrs │ │ │ │ │ +ip(s) of server │ │ │ │ │ +DDeeffiinniittiioonn tds.h:546 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___c_h_a_r_s_e_t │ │ │ │ │ +DSTR server_charset │ │ │ │ │ +charset of server e.g. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:523 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_t_d_s___v_e_r_s_i_o_n │ │ │ │ │ +TDS_USMALLINT tds_version │ │ │ │ │ +TDS version. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:520 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_n_e_w___p_a_s_s_w_o_r_d │ │ │ │ │ +DSTR new_password │ │ │ │ │ +new password to set (TDS 7.2+) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:536 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_b_u_l_k___c_o_p_y │ │ │ │ │ +unsigned int bulk_copy │ │ │ │ │ +if bulk copy should be enabled │ │ │ │ │ +DDeeffiinniittiioonn tds.h:556 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_c_a_f_i_l_e │ │ │ │ │ +DSTR cafile │ │ │ │ │ +certificate authorities file │ │ │ │ │ +DDeeffiinniittiioonn tds.h:530 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_s_e_r_v_e_r___s_p_n │ │ │ │ │ +DSTR server_spn │ │ │ │ │ +server SPN (in freetds.conf) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:528 │ │ │ │ │ +_t_d_s___l_o_g_i_n_:_:_p_o_r_t │ │ │ │ │ +int port │ │ │ │ │ +port of database service │ │ │ │ │ +DDeeffiinniittiioonn tds.h:519 │ │ │ │ │ +_t_d_s___h_e_a_d_e_r_s │ │ │ │ │ +DDeeffiinniittiioonn tds.h:574 │ │ │ │ │ +_t_d_s___l_o_c_a_l_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:582 │ │ │ │ │ +_t_d_s___b_l_o_b │ │ │ │ │ +Information about blobs (e.g. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:593 │ │ │ │ │ +_t_d_s___v_a_r_i_a_n_t │ │ │ │ │ +Store variant informations. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:604 │ │ │ │ │ +_t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ +Information relevant to libiconv. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:618 │ │ │ │ │ +_t_d_s___e_n_c_o_d_i_n_g_:_:_n_a_m_e │ │ │ │ │ +const char * name │ │ │ │ │ +name of the encoding (ie UTF-8) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:620 │ │ │ │ │ +_t_d_s___e_n_c_o_d_i_n_g_:_:_c_a_n_o_n_i_c │ │ │ │ │ +unsigned char canonic │ │ │ │ │ +internal numeric index into array of all encodings │ │ │ │ │ +DDeeffiinniittiioonn tds.h:624 │ │ │ │ │ +_t_d_s___b_c_p_c_o_l_d_a_t_a │ │ │ │ │ +DDeeffiinniittiioonn tds.h:628 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n___f_u_n_c_s │ │ │ │ │ +DDeeffiinniittiioonn tds.h:643 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n___f_u_n_c_s_:_:_p_u_t___d_a_t_a │ │ │ │ │ +tds_func_put_data * put_data │ │ │ │ │ +Send column data to server. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:662 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n___f_u_n_c_s_:_:_p_u_t___i_n_f_o │ │ │ │ │ +tds_func_put_info * put_info │ │ │ │ │ +Send metadata column information to server. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:652 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n │ │ │ │ │ +Metadata about columns in regular and compute rows. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_b_c_p___p_r_e_f_i_x___l_e_n │ │ │ │ │ +TDS_INT bcp_prefix_len │ │ │ │ │ +The length, in bytes, of any length prefix this column may have. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:761 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___v_a_r_i_n_t___s_i_z_e │ │ │ │ │ +TDS_TINYINT column_varint_size │ │ │ │ │ +size of length when reading from wire (0, 1, 2 or 4) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:701 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___s_i_z_e │ │ │ │ │ +TDS_INT column_size │ │ │ │ │ +maximun size of data. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:694 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___p_r_e_c │ │ │ │ │ +TDS_TINYINT column_prec │ │ │ │ │ +precision for decimal/numeric │ │ │ │ │ +DDeeffiinniittiioonn tds.h:703 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___t_y_p_e │ │ │ │ │ +TDS_SERVER_TYPE column_type │ │ │ │ │ +This type can be different from wire type because conversion (e.g. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:696 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_h_a_r___c_o_n_v │ │ │ │ │ +TDSICONV * char_conv │ │ │ │ │ +refers to previously allocated iconv information │ │ │ │ │ +DDeeffiinniittiioonn tds.h:712 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___s_c_a_l_e │ │ │ │ │ +TDS_TINYINT column_scale │ │ │ │ │ +scale for decimal/numeric │ │ │ │ │ +DDeeffiinniittiioonn tds.h:704 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n_:_:_c_o_l_u_m_n___c_u_r___s_i_z_e │ │ │ │ │ +TDS_INT column_cur_size │ │ │ │ │ +size written in variable (ie: char, text, binary). │ │ │ │ │ +DDeeffiinniittiioonn tds.h:736 │ │ │ │ │ +_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ +Hold information for any results. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ +_t_d_s___m_e_s_s_a_g_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:876 │ │ │ │ │ +_t_d_s___u_p_d___c_o_l │ │ │ │ │ +DDeeffiinniittiioonn tds.h:892 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r___s_t_a_t_u_s │ │ │ │ │ +DDeeffiinniittiioonn tds.h:906 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r │ │ │ │ │ +Holds informations about a cursor. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_o_p_t_i_o_n_s │ │ │ │ │ +TDS_TINYINT options │ │ │ │ │ +read only|updatable TODO use it │ │ │ │ │ +DDeeffiinniittiioonn tds.h:942 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_d_e_f_e_r___c_l_o_s_e │ │ │ │ │ +bool defer_close │ │ │ │ │ +true if cursor was marker to be closed when connection is idle │ │ │ │ │ +DDeeffiinniittiioonn tds.h:946 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_r_e_f___c_o_u_n_t │ │ │ │ │ +TDS_INT ref_count │ │ │ │ │ +reference counter so client can retain safely a pointer │ │ │ │ │ +DDeeffiinniittiioonn tds.h:939 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_c_u_r_s_o_r___i_d │ │ │ │ │ +TDS_INT cursor_id │ │ │ │ │ +cursor id returned by the server after cursor declare │ │ │ │ │ +DDeeffiinniittiioonn tds.h:941 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_c_u_r_s_o_r___r_o_w_s │ │ │ │ │ +TDS_INT cursor_rows │ │ │ │ │ +< number of updatable columns │ │ │ │ │ +DDeeffiinniittiioonn tds.h:951 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_n_e_x_t │ │ │ │ │ +struct tds_cursor * next │ │ │ │ │ +next in linked list, keep first │ │ │ │ │ +DDeeffiinniittiioonn tds.h:938 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_t_y_p_e │ │ │ │ │ +TDS_INT type │ │ │ │ │ +row fetched from this cursor │ │ │ │ │ +DDeeffiinniittiioonn tds.h:956 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_s_t_a_t_u_s │ │ │ │ │ +TDS_CURSOR_STATUS status │ │ │ │ │ +cursor parameter │ │ │ │ │ +DDeeffiinniittiioonn tds.h:953 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_q_u_e_r_y │ │ │ │ │ +char * query │ │ │ │ │ +SQL query. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:947 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r_:_:_c_u_r_s_o_r___n_a_m_e │ │ │ │ │ +char * cursor_name │ │ │ │ │ +name of the cursor │ │ │ │ │ +DDeeffiinniittiioonn tds.h:940 │ │ │ │ │ +_t_d_s___e_n_v │ │ │ │ │ +Current environment as reported by the server. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:963 │ │ │ │ │ +_t_d_s___e_n_v_:_:_c_h_a_r_s_e_t │ │ │ │ │ +char * charset │ │ │ │ │ +character set encoding │ │ │ │ │ +DDeeffiinniittiioonn tds.h:968 │ │ │ │ │ +_t_d_s___e_n_v_:_:_b_l_o_c_k___s_i_z_e │ │ │ │ │ +int block_size │ │ │ │ │ +packet size (512-65535) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:965 │ │ │ │ │ +_t_d_s___e_n_v_:_:_d_a_t_a_b_a_s_e │ │ │ │ │ +char * database │ │ │ │ │ +database name │ │ │ │ │ +DDeeffiinniittiioonn tds.h:970 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ +Holds information for a dynamic (also called prepared) query. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_q_u_e_r_y │ │ │ │ │ +char * query │ │ │ │ │ +saved query, we need to know original query if prepare is impossible │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1009 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_r_e_f___c_o_u_n_t │ │ │ │ │ +TDS_INT ref_count │ │ │ │ │ +reference counter so client can retain safely a pointer │ │ │ │ │ +DDeeffiinniittiioonn tds.h:979 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_d_e_f_e_r___c_l_o_s_e │ │ │ │ │ +bool defer_close │ │ │ │ │ +true if dynamic was marker to be closed when connection is idle │ │ │ │ │ +DDeeffiinniittiioonn tds.h:997 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_r_e_s___i_n_f_o │ │ │ │ │ +TDSPARAMINFO * res_info │ │ │ │ │ +query results │ │ │ │ │ +DDeeffiinniittiioonn tds.h:999 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_e_m_u_l_a_t_e_d │ │ │ │ │ +TDS_TINYINT emulated │ │ │ │ │ +this dynamic query cannot be prepared so libTDS have to construct a simple │ │ │ │ │ +query. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:993 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_p_a_r_a_m_s │ │ │ │ │ +TDSPARAMINFO * params │ │ │ │ │ +query parameters. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1007 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_n_e_x_t │ │ │ │ │ +struct tds_dynamic * next │ │ │ │ │ +next in linked list, keep first │ │ │ │ │ +DDeeffiinniittiioonn tds.h:978 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c_:_:_n_u_m___i_d │ │ │ │ │ +TDS_INT num_id │ │ │ │ │ +numeric id for mssql7+ │ │ │ │ │ +DDeeffiinniittiioonn tds.h:981 │ │ │ │ │ +_t_d_s___m_u_l_t_i_p_l_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1019 │ │ │ │ │ +_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ +_t_d_s___a_u_t_h_e_n_t_i_c_a_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1047 │ │ │ │ │ +_t_d_s___p_a_c_k_e_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1057 │ │ │ │ │ +_t_d_s___p_a_c_k_e_t_:_:_d_a_t_a___l_e_n │ │ │ │ │ +unsigned data_len │ │ │ │ │ +data length, this does not account SMP header, only TDS part │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1071 │ │ │ │ │ +_t_d_s___p_o_l_l___w_a_k_e_u_p │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1085 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_e_n_v │ │ │ │ │ +TDSENV env │ │ │ │ │ +environment is shared between all sessions │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1101 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_c_u_r_s_o_r_s │ │ │ │ │ +TDSCURSOR * cursors │ │ │ │ │ +linked list of cursors allocated for this connection contains only cursors │ │ │ │ │ +allocated on the server │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1107 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_s │ │ │ │ │ +TDS_SYS_SOCKET s │ │ │ │ │ +tcp socket, INVALID_SOCKET if not connected │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1096 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_p_r_o_d_u_c_t___v_e_r_s_i_o_n │ │ │ │ │ +TDS_UINT product_version │ │ │ │ │ +version of product (Sybase/MS and full version) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1093 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_d_y_n_s │ │ │ │ │ +TDSDYNAMIC * dyns │ │ │ │ │ +list of dynamic allocated for this connection contains only dynamic allocated │ │ │ │ │ +on the server │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1112 │ │ │ │ │ +_t_d_s___c_o_n_n_e_c_t_i_o_n_:_:_p_e_n_d_i_n_g___c_l_o_s_e │ │ │ │ │ +unsigned int pending_close │ │ │ │ │ +true is connection has pending closing (cursors or dynamic) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1123 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_l_o_g_i_n │ │ │ │ │ +TDSLOGIN * login │ │ │ │ │ +config for login stuff. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1258 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_i_n___l_e_n │ │ │ │ │ +unsigned in_len │ │ │ │ │ +input buffer length │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1194 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_f_r_o_z_e_n___p_a_c_k_e_t_s │ │ │ │ │ +TDSPACKET * frozen_packets │ │ │ │ │ +list of packets frozen, points to first one. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1203 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_s_e_n_d___p_a_c_k_e_t │ │ │ │ │ +TDSPACKET * send_packet │ │ │ │ │ +packet we are preparing to send │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1231 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_i_n___b_u_f │ │ │ │ │ +unsigned char * in_buf │ │ │ │ │ +Input buffer. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1177 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_r_e_t___s_t_a_t_u_s │ │ │ │ │ +TDS_INT ret_status │ │ │ │ │ +return status from store procedure │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1250 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_o_u_t___p_o_s │ │ │ │ │ +unsigned out_pos │ │ │ │ │ +current position in out_buf │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1193 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_c_u_r_r_e_n_t___r_e_s_u_l_t_s │ │ │ │ │ +TDSRESULTINFO * current_results │ │ │ │ │ +Current query information. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1238 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_i_n___f_l_a_g │ │ │ │ │ +unsigned char in_flag │ │ │ │ │ +input buffer type │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1195 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_r_o_w_s___a_f_f_e_c_t_e_d │ │ │ │ │ +TDS_INT8 rows_affected │ │ │ │ │ +rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1254 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_o_u_t___f_l_a_g │ │ │ │ │ +unsigned char out_flag │ │ │ │ │ +output buffer type │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1196 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_i_n___p_o_s │ │ │ │ │ +unsigned in_pos │ │ │ │ │ +current position in in_buf │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1192 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_c_u_r___c_u_r_s_o_r │ │ │ │ │ +TDSCURSOR * cur_cursor │ │ │ │ │ +cursor in use │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1243 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_i_n___r_o_w │ │ │ │ │ +bool in_row │ │ │ │ │ +true if we are getting rows │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1246 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_b_u_l_k___q_u_e_r_y │ │ │ │ │ +bool bulk_query │ │ │ │ │ +true is query sent was a bulk query so we need to switch state to QUERYING │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1244 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_h_a_s___s_t_a_t_u_s │ │ │ │ │ +bool has_status │ │ │ │ │ +true is ret_status is valid │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1245 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_o_u_t___b_u_f │ │ │ │ │ +unsigned char * out_buf │ │ │ │ │ +Output buffer. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1185 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_i_n___c_a_n_c_e_l │ │ │ │ │ +volatile unsigned char in_cancel │ │ │ │ │ +indicate we are waiting a cancel reply; discard tokens till acknowledge; 1 mean │ │ │ │ │ +we have to send cance... │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1248 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_o_u_t___b_u_f___m_a_x │ │ │ │ │ +unsigned int out_buf_max │ │ │ │ │ +Maximum size of packet pointed by out_buf. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1191 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t_:_:_c_u_r___d_y_n │ │ │ │ │ +TDSDYNAMIC * cur_dyn │ │ │ │ │ +dynamic structure in use │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1256 │ │ │ │ │ +_t_d_s_d_u_m_p___o_f_f___i_t_e_m │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1501 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1571 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e_:_:_t_d_s │ │ │ │ │ +TDSSOCKET * tds │ │ │ │ │ +which socket we refer to │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1573 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e_:_:_p_k_t___p_o_s │ │ │ │ │ +unsigned pkt_pos │ │ │ │ │ +position in pkt │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1577 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e_:_:_s_i_z_e___l_e_n │ │ │ │ │ +unsigned size_len │ │ │ │ │ +length size (0, 1, 2 or 4) │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1579 │ │ │ │ │ +_t_d_s___f_r_e_e_z_e_:_:_p_k_t │ │ │ │ │ +TDSPACKET * pkt │ │ │ │ │ +first packet frozen │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1575 │ │ │ │ │ +_t_d_s___b_c_p_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ +_t_d_s___c_o_n_d_i_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn thread.h:278 │ │ │ │ │ +_t_d_s___d_s_t_r │ │ │ │ │ +Structure to hold a string. │ │ │ │ │ +DDeeffiinniittiioonn string.h:36 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00446_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/enum_cap.h Source File │ │ │ │ +FreeTDS API: include/freetds/replacements/readpassphrase.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,179 +70,84 @@ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
enum_cap.h
│ │ │ │ +
readpassphrase.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1typedef enum tds_request_capability
│ │ │ │ -
2 { TDS_REQ_LANG = 1
│ │ │ │ -
3 , TDS_REQ_RPC = 2
│ │ │ │ -
4 , TDS_REQ_EVT = 3
│ │ │ │ -
5 , TDS_REQ_MSTMT = 4
│ │ │ │ -
6 , TDS_REQ_BCP = 5
│ │ │ │ -
7 , TDS_REQ_CURSOR = 6
│ │ │ │ -
8 , TDS_REQ_DYNF = 7
│ │ │ │ -
9 , TDS_REQ_MSG = 8
│ │ │ │ -
10 , TDS_REQ_PARAM = 9
│ │ │ │ -
11 , TDS_REQ_DATA_INT1 = 10
│ │ │ │ -
12 , TDS_REQ_DATA_INT2 = 11
│ │ │ │ -
13 , TDS_REQ_DATA_INT4 = 12
│ │ │ │ -
14 , TDS_REQ_DATA_BIT = 13
│ │ │ │ -
15 , TDS_REQ_DATA_CHAR = 14
│ │ │ │ -
16 , TDS_REQ_DATA_VCHAR = 15
│ │ │ │ -
17 , TDS_REQ_DATA_BIN = 16
│ │ │ │ -
18 , TDS_REQ_DATA_VBIN = 17
│ │ │ │ -
19 , TDS_REQ_DATA_MNY8 = 18
│ │ │ │ -
20 , TDS_REQ_DATA_MNY4 = 19
│ │ │ │ -
21 , TDS_REQ_DATA_DATE8 = 20
│ │ │ │ -
22 , TDS_REQ_DATA_DATE4 = 21
│ │ │ │ -
23 , TDS_REQ_DATA_FLT4 = 22
│ │ │ │ -
24 , TDS_REQ_DATA_FLT8 = 23
│ │ │ │ -
25 , TDS_REQ_DATA_NUM = 24
│ │ │ │ -
26 , TDS_REQ_DATA_TEXT = 25
│ │ │ │ -
27 , TDS_REQ_DATA_IMAGE = 26
│ │ │ │ -
28 , TDS_REQ_DATA_DEC = 27
│ │ │ │ -
29 , TDS_REQ_DATA_LCHAR = 28
│ │ │ │ -
30 , TDS_REQ_DATA_LBIN = 29
│ │ │ │ -
31 , TDS_REQ_DATA_INTN = 30
│ │ │ │ -
32 , TDS_REQ_DATA_DATETIMEN = 31
│ │ │ │ -
33 , TDS_REQ_DATA_MONEYN = 32
│ │ │ │ -
34 , TDS_REQ_CSR_PREV = 33
│ │ │ │ -
35 , TDS_REQ_CSR_FIRST = 34
│ │ │ │ -
36 , TDS_REQ_CSR_LAST = 35
│ │ │ │ -
37 , TDS_REQ_CSR_ABS = 36
│ │ │ │ -
38 , TDS_REQ_CSR_REL = 37
│ │ │ │ -
39 , TDS_REQ_CSR_MULTI = 38
│ │ │ │ -
40 , TDS_REQ_CON_OOB = 39
│ │ │ │ -
41 , TDS_REQ_CON_INBAND = 40
│ │ │ │ -
42 , TDS_REQ_CON_LOGICAL = 41
│ │ │ │ -
43 , TDS_REQ_PROTO_TEXT = 42
│ │ │ │ -
44 , TDS_REQ_PROTO_BULK = 43
│ │ │ │ -
45 , TDS_REQ_URGEVT = 44
│ │ │ │ -
46 , TDS_REQ_DATA_SENSITIVITY = 45
│ │ │ │ -
47 , TDS_REQ_DATA_BOUNDARY = 46
│ │ │ │ -
48 , TDS_REQ_PROTO_DYNAMIC = 47
│ │ │ │ -
49 , TDS_REQ_PROTO_DYNPROC = 48
│ │ │ │ -
50 , TDS_REQ_DATA_FLTN = 49
│ │ │ │ -
51 , TDS_REQ_DATA_BITN = 50
│ │ │ │ -
52 , TDS_REQ_DATA_INT8 = 51
│ │ │ │ -
53 , TDS_REQ_DATA_VOID = 52
│ │ │ │ -
54 , TDS_REQ_DOL_BULK = 53
│ │ │ │ -
55 , TDS_REQ_OBJECT_JAVA1 = 54
│ │ │ │ -
56 , TDS_REQ_OBJECT_CHAR = 55
│ │ │ │ -
57 , TDS_REQ_OBJECT_BINARY = 57
│ │ │ │ -
58 , TDS_REQ_DATA_COLUMNSTATUS = 58
│ │ │ │ -
59 , TDS_REQ_WIDETABLE = 59
│ │ │ │ -
60 , TDS_REQ_DATA_UINT2 = 61
│ │ │ │ -
61 , TDS_REQ_DATA_UINT4 = 62
│ │ │ │ -
62 , TDS_REQ_DATA_UINT8 = 63
│ │ │ │ -
63 , TDS_REQ_DATA_UINTN = 64
│ │ │ │ -
64 , TDS_REQ_CUR_IMPLICIT = 65
│ │ │ │ -
65 , TDS_REQ_DATA_NLBIN = 66
│ │ │ │ -
66 , TDS_REQ_IMAGE_NCHAR = 67
│ │ │ │ -
67 , TDS_OBS_BLOB_NCHAR_16 = 68 /* obsolete */
│ │ │ │ -
68 , TDS_REQ_BLOB_NCHAR_8 = 69
│ │ │ │ -
69 , TDS_REQ_BLOB_NCHAR_SCSU = 70
│ │ │ │ -
70 , TDS_REQ_DATA_DATE = 71
│ │ │ │ -
71 , TDS_REQ_DATA_TIME = 72
│ │ │ │ -
72 , TDS_REQ_DATA_INTERVAL = 73
│ │ │ │ -
73 , TDS_REQ_CSR_SCROLL = 74
│ │ │ │ -
74 , TDS_REQ_CSR_SENSITIVE = 75
│ │ │ │ -
75 , TDS_REQ_CSR_INSENSITIVE = 76
│ │ │ │ -
76 , TDS_REQ_CSR_SEMISENSITIVE = 77
│ │ │ │ -
77 , TDS_REQ_CSR_KEYSETDRIVEN = 78
│ │ │ │ -
78 , TDS_REQ_SRVPKTSIZE = 79
│ │ │ │ -
79 , TDS_REQ_DATA_UNITEXT = 80
│ │ │ │ -
80 , TDS_REQ_CAP_CLUSTERFAILOVER = 81
│ │ │ │ -
81 , TDS_REQ_DATA_SINT1 = 82
│ │ │ │ -
82 , TDS_REQ_LARGEIDENT = 83
│ │ │ │ -
83 , TDS_REQ_BLOB_NCHAR_16 = 84
│ │ │ │ -
84 , TDS_REQ_DATA_XML = 85
│ │ │ │ -
85 , TDS_REQ_CURINFO3 = 86
│ │ │ │ -
86 , TDS_REQ_DBRPC2 = 87
│ │ │ │ -
87 , TDS_REQ_MIGRATE = 89
│ │ │ │ -
88 , TDS_REQ_DATA_BIGDATETIME = 93
│ │ │ │ -
89 , TDS_REQ_DATA_BIGTIME = 94
│ │ │ │ -
90 , TDS_REQ_CAP_MAX = 94 /* repeats last enum */
│ │ │ │ -
91 } TDS_REQUEST_CAPABILITY;
│ │ │ │ -
92
│ │ │ │ -
93typedef enum tds_response_capability
│ │ │ │ -
94 { TDS_RES_NOMSG = 1
│ │ │ │ -
95 , TDS_RES_NOEED = 2
│ │ │ │ -
96 , TDS_RES_NOPARAM = 3
│ │ │ │ -
97 , TDS_RES_DATA_NOINT1 = 4
│ │ │ │ -
98 , TDS_RES_DATA_NOINT2 = 5
│ │ │ │ -
99 , TDS_RES_DATA_NOINT4 = 6
│ │ │ │ -
100 , TDS_RES_DATA_NOBIT = 7
│ │ │ │ -
101 , TDS_RES_DATA_NOCHAR = 8
│ │ │ │ -
102 , TDS_RES_DATA_NOVCHAR = 9
│ │ │ │ -
103 , TDS_RES_DATA_NOBIN = 10
│ │ │ │ -
104 , TDS_RES_DATA_NOVBIN = 11
│ │ │ │ -
105 , TDS_RES_DATA_NOMNY8 = 12
│ │ │ │ -
106 , TDS_RES_DATA_NOMNY4 = 13
│ │ │ │ -
107 , TDS_RES_DATA_NODATE8 = 14
│ │ │ │ -
108 , TDS_RES_DATA_NODATE4 = 15
│ │ │ │ -
109 , TDS_RES_DATA_NOFLT4 = 16
│ │ │ │ -
110 , TDS_RES_DATA_NOFLT8 = 17
│ │ │ │ -
111 , TDS_RES_DATA_NONUM = 18
│ │ │ │ -
112 , TDS_RES_DATA_NOTEXT = 19
│ │ │ │ -
113 , TDS_RES_DATA_NOIMAGE = 20
│ │ │ │ -
114 , TDS_RES_DATA_NODEC = 21
│ │ │ │ -
115 , TDS_RES_DATA_NOLCHAR = 22
│ │ │ │ -
116 , TDS_RES_DATA_NOLBIN = 23
│ │ │ │ -
117 , TDS_RES_DATA_INTN = 24
│ │ │ │ -
118 , TDS_RES_DATA_NODATETIMEN = 25
│ │ │ │ -
119 , TDS_RES_DATA_NOMONEYN = 26
│ │ │ │ -
120 , TDS_RES_CON_NOOOB = 27
│ │ │ │ -
121 , TDS_RES_CON_NOINBAND = 28
│ │ │ │ -
122 , TDS_RES_PROTO_NOTEXT = 29
│ │ │ │ -
123 , TDS_RES_PROTO_NOBULK = 30
│ │ │ │ -
124 , TDS_RES_DATA_NOSENSITIVITY = 31
│ │ │ │ -
125 , TDS_RES_DATA_NOBOUNDARY = 32
│ │ │ │ -
126 , TDS_RES_NOTDSDEBUG = 33
│ │ │ │ -
127 , TDS_RES_NOSTRIPBLANKS = 34
│ │ │ │ -
128 , TDS_RES_DATA_NOINT8 = 35
│ │ │ │ -
129 , TDS_RES_OBJECT_NOJAVA1 = 36
│ │ │ │ -
130 , TDS_RES_OBJECT_NOCHAR = 37
│ │ │ │ -
131 , TDS_RES_DATA_NOCOLUMNSTATUS = 38
│ │ │ │ -
132 , TDS_RES_OBJECT_NOBINARY = 39
│ │ │ │ -
133 , TDS_RES_DATA_NOUINT2 = 41
│ │ │ │ -
134 , TDS_RES_DATA_NOUINT4 = 42
│ │ │ │ -
135 , TDS_RES_DATA_NOUINT8 = 43
│ │ │ │ -
136 , TDS_RES_DATA_NOUINTN = 44
│ │ │ │ -
137 , TDS_RES_NO_WIDETABLES = 45
│ │ │ │ -
138 , TDS_RES_DATA_NONLBIN = 46
│ │ │ │ -
139 , TDS_RES_IMAGE_NONCHAR = 47
│ │ │ │ -
140 , TDS_RES_BLOB_NONCHAR_16 = 48
│ │ │ │ -
141 , TDS_RES_BLOB_NONCHAR_8 = 49
│ │ │ │ -
142 , TDS_RES_BLOB_NONCHAR_SCSU = 50
│ │ │ │ -
143 , TDS_RES_DATA_NODATE = 51
│ │ │ │ -
144 , TDS_RES_DATA_NOTIME = 52
│ │ │ │ -
145 , TDS_RES_DATA_NOINTERVAL = 53
│ │ │ │ -
146 , TDS_RES_DATA_NOUNITEXT = 54
│ │ │ │ -
147 , TDS_RES_DATA_NOSINT1 = 55
│ │ │ │ -
148 , TDS_RES_NO_LARGEIDENT = 56
│ │ │ │ -
149 , TDS_RES_NO_BLOB_NCHAR_16 = 57
│ │ │ │ -
150 , TDS_RES_NO_SRVPKTSIZE = 58
│ │ │ │ -
151 , TDS_RES_DATA_NOXML = 59
│ │ │ │ -
152 , TDS_RES_NONINT_RETURN_VALUE = 60
│ │ │ │ -
153 , TDS_RES_NOXNLDATA = 61
│ │ │ │ -
154 , TDS_RES_SUPPRESS_FMT = 62
│ │ │ │ -
155 , TDS_RES_SUPPRESS_DONEINPROC = 63
│ │ │ │ -
156 , TDS_RES_FORCE_ROWFMT2 = 64
│ │ │ │ -
157 , TDS_RES_CAP_MAX = 64 /* repeats last enum */
│ │ │ │ -
158 } TDS_RESPONSE_CAPABILITY;
│ │ │ │ +
1/* OPENBSD ORIGINAL: include/readpassphrase.h */
│ │ │ │ +
2
│ │ │ │ +
3/* $OpenBSD: readpassphrase.h,v 1.3 2002/06/28 12:32:22 millert Exp $ */
│ │ │ │ +
4
│ │ │ │ +
5/*
│ │ │ │ +
6 * Copyright (c) 2000 Todd C. Miller <Todd.Miller@courtesan.com>
│ │ │ │ +
7 * All rights reserved.
│ │ │ │ +
8 *
│ │ │ │ +
9 * Redistribution and use in source and binary forms, with or without
│ │ │ │ +
10 * modification, are permitted provided that the following conditions
│ │ │ │ +
11 * are met:
│ │ │ │ +
12 * 1. Redistributions of source code must retain the above copyright
│ │ │ │ +
13 * notice, this list of conditions and the following disclaimer.
│ │ │ │ +
14 * 2. Redistributions in binary form must reproduce the above copyright
│ │ │ │ +
15 * notice, this list of conditions and the following disclaimer in the
│ │ │ │ +
16 * documentation and/or other materials provided with the distribution.
│ │ │ │ +
17 * 3. The name of the author may not be used to endorse or promote products
│ │ │ │ +
18 * derived from this software without specific prior written permission.
│ │ │ │ +
19 *
│ │ │ │ +
20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
│ │ │ │ +
21 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
│ │ │ │ +
22 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
│ │ │ │ +
23 * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
│ │ │ │ +
24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
│ │ │ │ +
25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
│ │ │ │ +
26 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
│ │ │ │ +
27 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
│ │ │ │ +
28 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
│ │ │ │ +
29 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
│ │ │ │ +
30 */
│ │ │ │ +
31
│ │ │ │ +
32#ifndef FREETDS_READPASSPHRASE_H_
│ │ │ │ +
33#define FREETDS_READPASSPHRASE_H_
│ │ │ │ +
34
│ │ │ │ +
35#ifndef _freetds_config_h_
│ │ │ │ +
36#error should include config.h before
│ │ │ │ +
37#endif
│ │ │ │ +
38
│ │ │ │ +
39#ifdef HAVE_READPASSPHRASE
│ │ │ │ +
40
│ │ │ │ +
41# include <readpassphrase.h>
│ │ │ │ +
42
│ │ │ │ +
43#else /* !HAVE_READPASSPHRASE */
│ │ │ │ +
44
│ │ │ │ +
45#include <freetds/pushvis.h>
│ │ │ │ +
46
│ │ │ │ +
47#define RPP_ECHO_OFF 0x00 /* Turn off echo (default). */
│ │ │ │ +
48#define RPP_ECHO_ON 0x01 /* Leave echo on. */
│ │ │ │ +
49#define RPP_REQUIRE_TTY 0x02 /* Fail if there is no tty. */
│ │ │ │ +
50#define RPP_FORCELOWER 0x04 /* Force input to lower case. */
│ │ │ │ +
51#define RPP_FORCEUPPER 0x08 /* Force input to upper case. */
│ │ │ │ +
52#define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */
│ │ │ │ +
53#define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */
│ │ │ │ +
54
│ │ │ │ +
55#undef readpassphrase
│ │ │ │ +
56char * tds_readpassphrase(const char *, char *, size_t, int);
│ │ │ │ +
57#define readpassphrase tds_readpassphrase
│ │ │ │ +
58
│ │ │ │ +
59#include <freetds/popvis.h>
│ │ │ │ +
60
│ │ │ │ +
61#endif /* !HAVE_READPASSPHRASE */
│ │ │ │ +
62
│ │ │ │ +
63#endif /* !FREETDS_READPASSPHRASE_H_ */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,167 +1,74 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -enum_cap.h │ │ │ │ │ -1typedef enum tds_request_capability │ │ │ │ │ -2 { TDS_REQ_LANG = 1 │ │ │ │ │ -3 , TDS_REQ_RPC = 2 │ │ │ │ │ -4 , TDS_REQ_EVT = 3 │ │ │ │ │ -5 , TDS_REQ_MSTMT = 4 │ │ │ │ │ -6 , TDS_REQ_BCP = 5 │ │ │ │ │ -7 , TDS_REQ_CURSOR = 6 │ │ │ │ │ -8 , TDS_REQ_DYNF = 7 │ │ │ │ │ -9 , TDS_REQ_MSG = 8 │ │ │ │ │ -10 , TDS_REQ_PARAM = 9 │ │ │ │ │ -11 , TDS_REQ_DATA_INT1 = 10 │ │ │ │ │ -12 , TDS_REQ_DATA_INT2 = 11 │ │ │ │ │ -13 , TDS_REQ_DATA_INT4 = 12 │ │ │ │ │ -14 , TDS_REQ_DATA_BIT = 13 │ │ │ │ │ -15 , TDS_REQ_DATA_CHAR = 14 │ │ │ │ │ -16 , TDS_REQ_DATA_VCHAR = 15 │ │ │ │ │ -17 , TDS_REQ_DATA_BIN = 16 │ │ │ │ │ -18 , TDS_REQ_DATA_VBIN = 17 │ │ │ │ │ -19 , TDS_REQ_DATA_MNY8 = 18 │ │ │ │ │ -20 , TDS_REQ_DATA_MNY4 = 19 │ │ │ │ │ -21 , TDS_REQ_DATA_DATE8 = 20 │ │ │ │ │ -22 , TDS_REQ_DATA_DATE4 = 21 │ │ │ │ │ -23 , TDS_REQ_DATA_FLT4 = 22 │ │ │ │ │ -24 , TDS_REQ_DATA_FLT8 = 23 │ │ │ │ │ -25 , TDS_REQ_DATA_NUM = 24 │ │ │ │ │ -26 , TDS_REQ_DATA_TEXT = 25 │ │ │ │ │ -27 , TDS_REQ_DATA_IMAGE = 26 │ │ │ │ │ -28 , TDS_REQ_DATA_DEC = 27 │ │ │ │ │ -29 , TDS_REQ_DATA_LCHAR = 28 │ │ │ │ │ -30 , TDS_REQ_DATA_LBIN = 29 │ │ │ │ │ -31 , TDS_REQ_DATA_INTN = 30 │ │ │ │ │ -32 , TDS_REQ_DATA_DATETIMEN = 31 │ │ │ │ │ -33 , TDS_REQ_DATA_MONEYN = 32 │ │ │ │ │ -34 , TDS_REQ_CSR_PREV = 33 │ │ │ │ │ -35 , TDS_REQ_CSR_FIRST = 34 │ │ │ │ │ -36 , TDS_REQ_CSR_LAST = 35 │ │ │ │ │ -37 , TDS_REQ_CSR_ABS = 36 │ │ │ │ │ -38 , TDS_REQ_CSR_REL = 37 │ │ │ │ │ -39 , TDS_REQ_CSR_MULTI = 38 │ │ │ │ │ -40 , TDS_REQ_CON_OOB = 39 │ │ │ │ │ -41 , TDS_REQ_CON_INBAND = 40 │ │ │ │ │ -42 , TDS_REQ_CON_LOGICAL = 41 │ │ │ │ │ -43 , TDS_REQ_PROTO_TEXT = 42 │ │ │ │ │ -44 , TDS_REQ_PROTO_BULK = 43 │ │ │ │ │ -45 , TDS_REQ_URGEVT = 44 │ │ │ │ │ -46 , TDS_REQ_DATA_SENSITIVITY = 45 │ │ │ │ │ -47 , TDS_REQ_DATA_BOUNDARY = 46 │ │ │ │ │ -48 , TDS_REQ_PROTO_DYNAMIC = 47 │ │ │ │ │ -49 , TDS_REQ_PROTO_DYNPROC = 48 │ │ │ │ │ -50 , TDS_REQ_DATA_FLTN = 49 │ │ │ │ │ -51 , TDS_REQ_DATA_BITN = 50 │ │ │ │ │ -52 , TDS_REQ_DATA_INT8 = 51 │ │ │ │ │ -53 , TDS_REQ_DATA_VOID = 52 │ │ │ │ │ -54 , TDS_REQ_DOL_BULK = 53 │ │ │ │ │ -55 , TDS_REQ_OBJECT_JAVA1 = 54 │ │ │ │ │ -56 , TDS_REQ_OBJECT_CHAR = 55 │ │ │ │ │ -57 , TDS_REQ_OBJECT_BINARY = 57 │ │ │ │ │ -58 , TDS_REQ_DATA_COLUMNSTATUS = 58 │ │ │ │ │ -59 , TDS_REQ_WIDETABLE = 59 │ │ │ │ │ -60 , TDS_REQ_DATA_UINT2 = 61 │ │ │ │ │ -61 , TDS_REQ_DATA_UINT4 = 62 │ │ │ │ │ -62 , TDS_REQ_DATA_UINT8 = 63 │ │ │ │ │ -63 , TDS_REQ_DATA_UINTN = 64 │ │ │ │ │ -64 , TDS_REQ_CUR_IMPLICIT = 65 │ │ │ │ │ -65 , TDS_REQ_DATA_NLBIN = 66 │ │ │ │ │ -66 , TDS_REQ_IMAGE_NCHAR = 67 │ │ │ │ │ -67 , TDS_OBS_BLOB_NCHAR_16 = 68 /* obsolete */ │ │ │ │ │ -68 , TDS_REQ_BLOB_NCHAR_8 = 69 │ │ │ │ │ -69 , TDS_REQ_BLOB_NCHAR_SCSU = 70 │ │ │ │ │ -70 , TDS_REQ_DATA_DATE = 71 │ │ │ │ │ -71 , TDS_REQ_DATA_TIME = 72 │ │ │ │ │ -72 , TDS_REQ_DATA_INTERVAL = 73 │ │ │ │ │ -73 , TDS_REQ_CSR_SCROLL = 74 │ │ │ │ │ -74 , TDS_REQ_CSR_SENSITIVE = 75 │ │ │ │ │ -75 , TDS_REQ_CSR_INSENSITIVE = 76 │ │ │ │ │ -76 , TDS_REQ_CSR_SEMISENSITIVE = 77 │ │ │ │ │ -77 , TDS_REQ_CSR_KEYSETDRIVEN = 78 │ │ │ │ │ -78 , TDS_REQ_SRVPKTSIZE = 79 │ │ │ │ │ -79 , TDS_REQ_DATA_UNITEXT = 80 │ │ │ │ │ -80 , TDS_REQ_CAP_CLUSTERFAILOVER = 81 │ │ │ │ │ -81 , TDS_REQ_DATA_SINT1 = 82 │ │ │ │ │ -82 , TDS_REQ_LARGEIDENT = 83 │ │ │ │ │ -83 , TDS_REQ_BLOB_NCHAR_16 = 84 │ │ │ │ │ -84 , TDS_REQ_DATA_XML = 85 │ │ │ │ │ -85 , TDS_REQ_CURINFO3 = 86 │ │ │ │ │ -86 , TDS_REQ_DBRPC2 = 87 │ │ │ │ │ -87 , TDS_REQ_MIGRATE = 89 │ │ │ │ │ -88 , TDS_REQ_DATA_BIGDATETIME = 93 │ │ │ │ │ -89 , TDS_REQ_DATA_BIGTIME = 94 │ │ │ │ │ -90 , TDS_REQ_CAP_MAX = 94 /* repeats last enum */ │ │ │ │ │ -91 } TDS_REQUEST_CAPABILITY; │ │ │ │ │ -92 │ │ │ │ │ -93typedef enum tds_response_capability │ │ │ │ │ -94 { TDS_RES_NOMSG = 1 │ │ │ │ │ -95 , TDS_RES_NOEED = 2 │ │ │ │ │ -96 , TDS_RES_NOPARAM = 3 │ │ │ │ │ -97 , TDS_RES_DATA_NOINT1 = 4 │ │ │ │ │ -98 , TDS_RES_DATA_NOINT2 = 5 │ │ │ │ │ -99 , TDS_RES_DATA_NOINT4 = 6 │ │ │ │ │ -100 , TDS_RES_DATA_NOBIT = 7 │ │ │ │ │ -101 , TDS_RES_DATA_NOCHAR = 8 │ │ │ │ │ -102 , TDS_RES_DATA_NOVCHAR = 9 │ │ │ │ │ -103 , TDS_RES_DATA_NOBIN = 10 │ │ │ │ │ -104 , TDS_RES_DATA_NOVBIN = 11 │ │ │ │ │ -105 , TDS_RES_DATA_NOMNY8 = 12 │ │ │ │ │ -106 , TDS_RES_DATA_NOMNY4 = 13 │ │ │ │ │ -107 , TDS_RES_DATA_NODATE8 = 14 │ │ │ │ │ -108 , TDS_RES_DATA_NODATE4 = 15 │ │ │ │ │ -109 , TDS_RES_DATA_NOFLT4 = 16 │ │ │ │ │ -110 , TDS_RES_DATA_NOFLT8 = 17 │ │ │ │ │ -111 , TDS_RES_DATA_NONUM = 18 │ │ │ │ │ -112 , TDS_RES_DATA_NOTEXT = 19 │ │ │ │ │ -113 , TDS_RES_DATA_NOIMAGE = 20 │ │ │ │ │ -114 , TDS_RES_DATA_NODEC = 21 │ │ │ │ │ -115 , TDS_RES_DATA_NOLCHAR = 22 │ │ │ │ │ -116 , TDS_RES_DATA_NOLBIN = 23 │ │ │ │ │ -117 , TDS_RES_DATA_INTN = 24 │ │ │ │ │ -118 , TDS_RES_DATA_NODATETIMEN = 25 │ │ │ │ │ -119 , TDS_RES_DATA_NOMONEYN = 26 │ │ │ │ │ -120 , TDS_RES_CON_NOOOB = 27 │ │ │ │ │ -121 , TDS_RES_CON_NOINBAND = 28 │ │ │ │ │ -122 , TDS_RES_PROTO_NOTEXT = 29 │ │ │ │ │ -123 , TDS_RES_PROTO_NOBULK = 30 │ │ │ │ │ -124 , TDS_RES_DATA_NOSENSITIVITY = 31 │ │ │ │ │ -125 , TDS_RES_DATA_NOBOUNDARY = 32 │ │ │ │ │ -126 , TDS_RES_NOTDSDEBUG = 33 │ │ │ │ │ -127 , TDS_RES_NOSTRIPBLANKS = 34 │ │ │ │ │ -128 , TDS_RES_DATA_NOINT8 = 35 │ │ │ │ │ -129 , TDS_RES_OBJECT_NOJAVA1 = 36 │ │ │ │ │ -130 , TDS_RES_OBJECT_NOCHAR = 37 │ │ │ │ │ -131 , TDS_RES_DATA_NOCOLUMNSTATUS = 38 │ │ │ │ │ -132 , TDS_RES_OBJECT_NOBINARY = 39 │ │ │ │ │ -133 , TDS_RES_DATA_NOUINT2 = 41 │ │ │ │ │ -134 , TDS_RES_DATA_NOUINT4 = 42 │ │ │ │ │ -135 , TDS_RES_DATA_NOUINT8 = 43 │ │ │ │ │ -136 , TDS_RES_DATA_NOUINTN = 44 │ │ │ │ │ -137 , TDS_RES_NO_WIDETABLES = 45 │ │ │ │ │ -138 , TDS_RES_DATA_NONLBIN = 46 │ │ │ │ │ -139 , TDS_RES_IMAGE_NONCHAR = 47 │ │ │ │ │ -140 , TDS_RES_BLOB_NONCHAR_16 = 48 │ │ │ │ │ -141 , TDS_RES_BLOB_NONCHAR_8 = 49 │ │ │ │ │ -142 , TDS_RES_BLOB_NONCHAR_SCSU = 50 │ │ │ │ │ -143 , TDS_RES_DATA_NODATE = 51 │ │ │ │ │ -144 , TDS_RES_DATA_NOTIME = 52 │ │ │ │ │ -145 , TDS_RES_DATA_NOINTERVAL = 53 │ │ │ │ │ -146 , TDS_RES_DATA_NOUNITEXT = 54 │ │ │ │ │ -147 , TDS_RES_DATA_NOSINT1 = 55 │ │ │ │ │ -148 , TDS_RES_NO_LARGEIDENT = 56 │ │ │ │ │ -149 , TDS_RES_NO_BLOB_NCHAR_16 = 57 │ │ │ │ │ -150 , TDS_RES_NO_SRVPKTSIZE = 58 │ │ │ │ │ -151 , TDS_RES_DATA_NOXML = 59 │ │ │ │ │ -152 , TDS_RES_NONINT_RETURN_VALUE = 60 │ │ │ │ │ -153 , TDS_RES_NOXNLDATA = 61 │ │ │ │ │ -154 , TDS_RES_SUPPRESS_FMT = 62 │ │ │ │ │ -155 , TDS_RES_SUPPRESS_DONEINPROC = 63 │ │ │ │ │ -156 , TDS_RES_FORCE_ROWFMT2 = 64 │ │ │ │ │ -157 , TDS_RES_CAP_MAX = 64 /* repeats last enum */ │ │ │ │ │ -158 } TDS_RESPONSE_CAPABILITY; │ │ │ │ │ + * _r_e_p_l_a_c_e_m_e_n_t_s │ │ │ │ │ +readpassphrase.h │ │ │ │ │ +1/* OPENBSD ORIGINAL: include/readpassphrase.h */ │ │ │ │ │ +2 │ │ │ │ │ +3/* $OpenBSD: readpassphrase.h,v 1.3 2002/06/28 12:32:22 millert Exp $ */ │ │ │ │ │ +4 │ │ │ │ │ +5/* │ │ │ │ │ +6 * Copyright (c) 2000 Todd C. Miller │ │ │ │ │ +7 * All rights reserved. │ │ │ │ │ +8 * │ │ │ │ │ +9 * Redistribution and use in source and binary forms, with or without │ │ │ │ │ +10 * modification, are permitted provided that the following conditions │ │ │ │ │ +11 * are met: │ │ │ │ │ +12 * 1. Redistributions of source code must retain the above copyright │ │ │ │ │ +13 * notice, this list of conditions and the following disclaimer. │ │ │ │ │ +14 * 2. Redistributions in binary form must reproduce the above copyright │ │ │ │ │ +15 * notice, this list of conditions and the following disclaimer in the │ │ │ │ │ +16 * documentation and/or other materials provided with the distribution. │ │ │ │ │ +17 * 3. The name of the author may not be used to endorse or promote products │ │ │ │ │ +18 * derived from this software without specific prior written permission. │ │ │ │ │ +19 * │ │ │ │ │ +20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, │ │ │ │ │ +21 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY │ │ │ │ │ +22 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL │ │ │ │ │ +23 * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, │ │ │ │ │ +24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, │ │ │ │ │ +25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR │ │ │ │ │ +PROFITS; │ │ │ │ │ +26 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, │ │ │ │ │ +27 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR │ │ │ │ │ +28 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF │ │ │ │ │ +29 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. │ │ │ │ │ +30 */ │ │ │ │ │ +31 │ │ │ │ │ +32#ifndef FREETDS_READPASSPHRASE_H_ │ │ │ │ │ +33#define FREETDS_READPASSPHRASE_H_ │ │ │ │ │ +34 │ │ │ │ │ +35#ifndef _freetds_config_h_ │ │ │ │ │ +36#error should include config.h before │ │ │ │ │ +37#endif │ │ │ │ │ +38 │ │ │ │ │ +39#ifdef HAVE_READPASSPHRASE │ │ │ │ │ +40 │ │ │ │ │ +41# include │ │ │ │ │ +42 │ │ │ │ │ +43#else /* !HAVE_READPASSPHRASE */ │ │ │ │ │ +44 │ │ │ │ │ +45#include │ │ │ │ │ +46 │ │ │ │ │ +47#define RPP_ECHO_OFF 0x00 /* Turn off echo (default). */ │ │ │ │ │ +48#define RPP_ECHO_ON 0x01 /* Leave echo on. */ │ │ │ │ │ +49#define RPP_REQUIRE_TTY 0x02 /* Fail if there is no tty. */ │ │ │ │ │ +50#define RPP_FORCELOWER 0x04 /* Force input to lower case. */ │ │ │ │ │ +51#define RPP_FORCEUPPER 0x08 /* Force input to upper case. */ │ │ │ │ │ +52#define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */ │ │ │ │ │ +53#define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */ │ │ │ │ │ +54 │ │ │ │ │ +55#undef readpassphrase │ │ │ │ │ +56char * tds_readpassphrase(const char *, char *, size_t, int); │ │ │ │ │ +57#define readpassphrase tds_readpassphrase │ │ │ │ │ +58 │ │ │ │ │ +59#include │ │ │ │ │ +60 │ │ │ │ │ +61#endif /* !HAVE_READPASSPHRASE */ │ │ │ │ │ +62 │ │ │ │ │ +63#endif /* !FREETDS_READPASSPHRASE_H_ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00450.dot │ │ │ │ @@ -2,13 +2,13 @@ │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ Node1 [id="Node000001",label="include/freetds/replacements\l/poll.h",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Provide poll call where missing."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="config.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00344_source.html",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="config.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00482_source.html",tooltip=" "]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="freetds/pushvis.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00371_source.html",tooltip=" "]; │ │ │ │ + Node3 [id="Node000003",label="freetds/pushvis.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00410_source.html",tooltip=" "]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="freetds/popvis.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00386_source.html",tooltip=" "]; │ │ │ │ + Node4 [id="Node000004",label="freetds/popvis.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00431_source.html",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00451.dot.gz │ │ │ │ ├── a00451.dot │ │ │ │ │ @@ -2,39 +2,39 @@ │ │ │ │ │ { │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ Node1 [id="Node000001",label="include/freetds/replacements\l/poll.h",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Provide poll call where missing."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="include/freetds/replacements.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00368_source.html",tooltip=" "]; │ │ │ │ │ + Node2 [id="Node000002",label="include/freetds/replacements.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00365_source.html",tooltip=" "]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="include/freetds/tds.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00440.html",tooltip="Main include file for libtds."]; │ │ │ │ │ + Node3 [id="Node000003",label="include/freetds/tds.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00443.html",tooltip="Main include file for libtds."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="include/ctlib.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00473_source.html",tooltip=" "]; │ │ │ │ │ + Node4 [id="Node000004",label="include/ctlib.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00494_source.html",tooltip=" "]; │ │ │ │ │ Node3 -> Node5 [id="edge4_Node000003_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node5 [id="Node000005",label="include/freetds/odbc.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00434_source.html",tooltip=" "]; │ │ │ │ │ + Node5 [id="Node000005",label="include/freetds/odbc.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00413_source.html",tooltip=" "]; │ │ │ │ │ Node3 -> Node6 [id="edge5_Node000003_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node6 [id="Node000006",label="src/dblib/bcp.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html",tooltip="Implementation of db-lib bulk copy functions."]; │ │ │ │ │ + Node6 [id="Node000006",label="src/dblib/bcp.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html",tooltip="Implementation of db-lib bulk copy functions."]; │ │ │ │ │ Node3 -> Node7 [id="edge6_Node000003_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="src/dblib/dblib.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html",tooltip="Main implementation file for db-lib."]; │ │ │ │ │ + Node7 [id="Node000007",label="src/dblib/dblib.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html",tooltip="Main implementation file for db-lib."]; │ │ │ │ │ Node3 -> Node8 [id="edge7_Node000003_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="src/pool/pool.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00113_source.html",tooltip=" "]; │ │ │ │ │ + Node8 [id="Node000008",label="src/pool/pool.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00194_source.html",tooltip=" "]; │ │ │ │ │ Node3 -> Node9 [id="edge8_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="src/replacements/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01365.html",tooltip="This file implements a very simple iconv."]; │ │ │ │ │ + Node9 [id="Node000009",label="src/replacements/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01371.html",tooltip="This file implements a very simple iconv."]; │ │ │ │ │ Node3 -> Node10 [id="edge9_Node000003_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="src/tds/bulk.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html",tooltip="Handle bulk copy."]; │ │ │ │ │ + Node10 [id="Node000010",label="src/tds/bulk.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html",tooltip="Handle bulk copy."]; │ │ │ │ │ Node3 -> Node11 [id="edge10_Node000003_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="src/tds/data.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html",tooltip="Handle different data handling from network."]; │ │ │ │ │ + Node11 [id="Node000011",label="src/tds/data.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html",tooltip="Handle different data handling from network."]; │ │ │ │ │ Node3 -> Node12 [id="edge11_Node000003_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="src/tds/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html",tooltip="Handle character conversions to/from server."]; │ │ │ │ │ + Node12 [id="Node000012",label="src/tds/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html",tooltip="Handle character conversions to/from server."]; │ │ │ │ │ Node3 -> Node13 [id="edge12_Node000003_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node13 [id="Node000013",label="src/tds/read.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00035.html",tooltip="Grab data from TDS packets."]; │ │ │ │ │ + Node13 [id="Node000013",label="src/tds/read.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00287.html",tooltip="Grab data from TDS packets."]; │ │ │ │ │ Node3 -> Node14 [id="edge13_Node000003_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="src/tds/stream.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html",tooltip="Handle stream of data."]; │ │ │ │ │ + Node14 [id="Node000014",label="src/tds/stream.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html",tooltip="Handle stream of data."]; │ │ │ │ │ Node3 -> Node15 [id="edge14_Node000003_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node15 [id="Node000015",label="src/tds/token.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00065.html",tooltip="Contains all routines to get replies from server."]; │ │ │ │ │ + Node15 [id="Node000015",label="src/tds/token.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00272.html",tooltip="Contains all routines to get replies from server."]; │ │ │ │ │ Node2 -> Node6 [id="edge15_Node000002_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node7 [id="edge16_Node000002_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node10 [id="edge17_Node000002_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node15 [id="edge18_Node000002_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00452_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/replacements/readpassphrase.h Source File │ │ │ │ +FreeTDS API: include/freetds/data.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -70,84 +70,124 @@ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
readpassphrase.h
│ │ │ │ +
data.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* OPENBSD ORIGINAL: include/readpassphrase.h */
│ │ │ │ -
2
│ │ │ │ -
3/* $OpenBSD: readpassphrase.h,v 1.3 2002/06/28 12:32:22 millert Exp $ */
│ │ │ │ -
4
│ │ │ │ -
5/*
│ │ │ │ -
6 * Copyright (c) 2000 Todd C. Miller <Todd.Miller@courtesan.com>
│ │ │ │ -
7 * All rights reserved.
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 2014 Frediano Ziglio
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │ -
9 * Redistribution and use in source and binary forms, with or without
│ │ │ │ -
10 * modification, are permitted provided that the following conditions
│ │ │ │ -
11 * are met:
│ │ │ │ -
12 * 1. Redistributions of source code must retain the above copyright
│ │ │ │ -
13 * notice, this list of conditions and the following disclaimer.
│ │ │ │ -
14 * 2. Redistributions in binary form must reproduce the above copyright
│ │ │ │ -
15 * notice, this list of conditions and the following disclaimer in the
│ │ │ │ -
16 * documentation and/or other materials provided with the distribution.
│ │ │ │ -
17 * 3. The name of the author may not be used to endorse or promote products
│ │ │ │ -
18 * derived from this software without specific prior written permission.
│ │ │ │ -
19 *
│ │ │ │ -
20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
│ │ │ │ -
21 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
│ │ │ │ -
22 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
│ │ │ │ -
23 * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
│ │ │ │ -
24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
│ │ │ │ -
25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
│ │ │ │ -
26 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
│ │ │ │ -
27 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
│ │ │ │ -
28 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
│ │ │ │ -
29 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
│ │ │ │ -
30 */
│ │ │ │ -
31
│ │ │ │ -
32#ifndef FREETDS_READPASSPHRASE_H_
│ │ │ │ -
33#define FREETDS_READPASSPHRASE_H_
│ │ │ │ -
34
│ │ │ │ -
35#ifndef _freetds_config_h_
│ │ │ │ -
36#error should include config.h before
│ │ │ │ -
37#endif
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _freetds_data_h_
│ │ │ │ +
21#define _freetds_data_h_
│ │ │ │ +
22
│ │ │ │ +
23#ifndef _tds_h_
│ │ │ │ +
24# error Include tds.h before data.h
│ │ │ │ +
25#endif
│ │ │ │ +
26
│ │ │ │ +
27#include <freetds/pushvis.h>
│ │ │ │ +
28
│ │ │ │ +
29#define TDS_COMMON_FUNCS(name) \
│ │ │ │ +
30{ \
│ │ │ │ +
31 tds_ ## name ## _get_info, \
│ │ │ │ +
32 tds_ ## name ## _get, \
│ │ │ │ +
33 tds_ ## name ## _row_len, \
│ │ │ │ +
34 tds_ ## name ## _put_info, \
│ │ │ │ +
35 tds_ ## name ## _put, \
│ │ │ │ +
36 TDS_EXTRA_CHECK(tds_ ## name ## _check) \
│ │ │ │ +
37}
│ │ │ │
38
│ │ │ │ -
39#ifdef HAVE_READPASSPHRASE
│ │ │ │ -
40
│ │ │ │ -
41# include <readpassphrase.h>
│ │ │ │ -
42
│ │ │ │ -
43#else /* !HAVE_READPASSPHRASE */
│ │ │ │ -
44
│ │ │ │ -
45#include <freetds/pushvis.h>
│ │ │ │ -
46
│ │ │ │ -
47#define RPP_ECHO_OFF 0x00 /* Turn off echo (default). */
│ │ │ │ -
48#define RPP_ECHO_ON 0x01 /* Leave echo on. */
│ │ │ │ -
49#define RPP_REQUIRE_TTY 0x02 /* Fail if there is no tty. */
│ │ │ │ -
50#define RPP_FORCELOWER 0x04 /* Force input to lower case. */
│ │ │ │ -
51#define RPP_FORCEUPPER 0x08 /* Force input to upper case. */
│ │ │ │ -
52#define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */
│ │ │ │ -
53#define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */
│ │ │ │ -
54
│ │ │ │ -
55#undef readpassphrase
│ │ │ │ -
56char * tds_readpassphrase(const char *, char *, size_t, int);
│ │ │ │ -
57#define readpassphrase tds_readpassphrase
│ │ │ │ -
58
│ │ │ │ -
59#include <freetds/popvis.h>
│ │ │ │ -
60
│ │ │ │ -
61#endif /* !HAVE_READPASSPHRASE */
│ │ │ │ -
62
│ │ │ │ -
63#endif /* !FREETDS_READPASSPHRASE_H_ */
│ │ │ │ +
39tds_func_get_info tds_invalid_get_info;
│ │ │ │ +
40tds_func_row_len tds_invalid_row_len;
│ │ │ │ +
41tds_func_get_data tds_invalid_get;
│ │ │ │ +
42tds_func_put_info tds_invalid_put_info;
│ │ │ │ +
43tds_func_put_data tds_invalid_put;
│ │ │ │ +
44tds_func_check tds_invalid_check;
│ │ │ │ +
45
│ │ │ │ +
46tds_func_get_info tds_generic_get_info;
│ │ │ │ +
47tds_func_row_len tds_generic_row_len;
│ │ │ │ +
48tds_func_get_data tds_generic_get;
│ │ │ │ +
49tds_func_put_info tds_generic_put_info;
│ │ │ │ +
50tds_func_put_data tds_generic_put;
│ │ │ │ +
51tds_func_check tds_generic_check;
│ │ │ │ +
52
│ │ │ │ +
53tds_func_get_info tds_numeric_get_info;
│ │ │ │ +
54tds_func_row_len tds_numeric_row_len;
│ │ │ │ +
55tds_func_get_data tds_numeric_get;
│ │ │ │ +
56tds_func_put_info tds_numeric_put_info;
│ │ │ │ +
57tds_func_put_data tds_numeric_put;
│ │ │ │ +
58tds_func_check tds_numeric_check;
│ │ │ │ +
59
│ │ │ │ +
60#define tds_variant_get_info tds_generic_get_info
│ │ │ │ +
61#define tds_variant_row_len tds_generic_row_len
│ │ │ │ +
62tds_func_get_data tds_variant_get;
│ │ │ │ +
63tds_func_put_info tds_variant_put_info;
│ │ │ │ +
64tds_func_put_data tds_variant_put;
│ │ │ │ +
65tds_func_check tds_variant_check;
│ │ │ │ +
66
│ │ │ │ +
67tds_func_get_info tds_msdatetime_get_info;
│ │ │ │ +
68tds_func_row_len tds_msdatetime_row_len;
│ │ │ │ +
69tds_func_get_data tds_msdatetime_get;
│ │ │ │ +
70tds_func_put_info tds_msdatetime_put_info;
│ │ │ │ +
71tds_func_put_data tds_msdatetime_put;
│ │ │ │ +
72tds_func_check tds_msdatetime_check;
│ │ │ │ +
73
│ │ │ │ +
74tds_func_get_info tds_clrudt_get_info;
│ │ │ │ +
75tds_func_row_len tds_clrudt_row_len;
│ │ │ │ +
76#define tds_clrudt_get tds_generic_get
│ │ │ │ +
77tds_func_put_info tds_clrudt_put_info;
│ │ │ │ +
78#define tds_clrudt_put tds_generic_put
│ │ │ │ +
79tds_func_check tds_clrudt_check;
│ │ │ │ +
80
│ │ │ │ +
81tds_func_get_info tds_sybbigtime_get_info;
│ │ │ │ +
82tds_func_row_len tds_sybbigtime_row_len;
│ │ │ │ +
83tds_func_get_data tds_sybbigtime_get;
│ │ │ │ +
84tds_func_put_info tds_sybbigtime_put_info;
│ │ │ │ +
85tds_func_put_data tds_sybbigtime_put;
│ │ │ │ +
86tds_func_check tds_sybbigtime_check;
│ │ │ │ +
87
│ │ │ │ +
92#ifndef TDS_DONT_DEFINE_DEFAULT_FUNCTIONS
│ │ │ │ +
93# define TDS_DEFINE_DEFAULT_FUNCS(name) \
│ │ │ │ +
94 const TDSCOLUMNFUNCS tds_ ## name ## _funcs = TDS_COMMON_FUNCS(name)
│ │ │ │ +
95
│ │ │ │ +
96TDS_DEFINE_DEFAULT_FUNCS(invalid);
│ │ │ │ +
97TDS_DEFINE_DEFAULT_FUNCS(generic);
│ │ │ │ +
98TDS_DEFINE_DEFAULT_FUNCS(numeric);
│ │ │ │ +
99TDS_DEFINE_DEFAULT_FUNCS(variant);
│ │ │ │ +
100TDS_DEFINE_DEFAULT_FUNCS(msdatetime);
│ │ │ │ +
101TDS_DEFINE_DEFAULT_FUNCS(clrudt);
│ │ │ │ +
102TDS_DEFINE_DEFAULT_FUNCS(sybbigtime);
│ │ │ │ +
103#endif
│ │ │ │ +
104
│ │ │ │ +
105#include <freetds/popvis.h>
│ │ │ │ +
106
│ │ │ │ +
107#endif
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,74 +1,112 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ - * _r_e_p_l_a_c_e_m_e_n_t_s │ │ │ │ │ -readpassphrase.h │ │ │ │ │ -1/* OPENBSD ORIGINAL: include/readpassphrase.h */ │ │ │ │ │ -2 │ │ │ │ │ -3/* $OpenBSD: readpassphrase.h,v 1.3 2002/06/28 12:32:22 millert Exp $ */ │ │ │ │ │ -4 │ │ │ │ │ -5/* │ │ │ │ │ -6 * Copyright (c) 2000 Todd C. Miller │ │ │ │ │ -7 * All rights reserved. │ │ │ │ │ +data.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 2014 Frediano Ziglio │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ -9 * Redistribution and use in source and binary forms, with or without │ │ │ │ │ -10 * modification, are permitted provided that the following conditions │ │ │ │ │ -11 * are met: │ │ │ │ │ -12 * 1. Redistributions of source code must retain the above copyright │ │ │ │ │ -13 * notice, this list of conditions and the following disclaimer. │ │ │ │ │ -14 * 2. Redistributions in binary form must reproduce the above copyright │ │ │ │ │ -15 * notice, this list of conditions and the following disclaimer in the │ │ │ │ │ -16 * documentation and/or other materials provided with the distribution. │ │ │ │ │ -17 * 3. The name of the author may not be used to endorse or promote products │ │ │ │ │ -18 * derived from this software without specific prior written permission. │ │ │ │ │ -19 * │ │ │ │ │ -20 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, │ │ │ │ │ -21 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY │ │ │ │ │ -22 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL │ │ │ │ │ -23 * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, │ │ │ │ │ -24 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, │ │ │ │ │ -25 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR │ │ │ │ │ -PROFITS; │ │ │ │ │ -26 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, │ │ │ │ │ -27 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR │ │ │ │ │ -28 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF │ │ │ │ │ -29 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. │ │ │ │ │ -30 */ │ │ │ │ │ -31 │ │ │ │ │ -32#ifndef FREETDS_READPASSPHRASE_H_ │ │ │ │ │ -33#define FREETDS_READPASSPHRASE_H_ │ │ │ │ │ -34 │ │ │ │ │ -35#ifndef _freetds_config_h_ │ │ │ │ │ -36#error should include config.h before │ │ │ │ │ -37#endif │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _freetds_data_h_ │ │ │ │ │ +21#define _freetds_data_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#ifndef _tds_h_ │ │ │ │ │ +24# error Include tds.h before data.h │ │ │ │ │ +25#endif │ │ │ │ │ +26 │ │ │ │ │ +27#include │ │ │ │ │ +28 │ │ │ │ │ +29#define TDS_COMMON_FUNCS(name) \ │ │ │ │ │ +30{ \ │ │ │ │ │ +31 tds_ ## name ## _get_info, \ │ │ │ │ │ +32 tds_ ## name ## _get, \ │ │ │ │ │ +33 tds_ ## name ## _row_len, \ │ │ │ │ │ +34 tds_ ## name ## _put_info, \ │ │ │ │ │ +35 tds_ ## name ## _put, \ │ │ │ │ │ +36 TDS_EXTRA_CHECK(tds_ ## name ## _check) \ │ │ │ │ │ +37} │ │ │ │ │ 38 │ │ │ │ │ -39#ifdef HAVE_READPASSPHRASE │ │ │ │ │ -40 │ │ │ │ │ -41# include │ │ │ │ │ -42 │ │ │ │ │ -43#else /* !HAVE_READPASSPHRASE */ │ │ │ │ │ -44 │ │ │ │ │ -45#include │ │ │ │ │ -46 │ │ │ │ │ -47#define RPP_ECHO_OFF 0x00 /* Turn off echo (default). */ │ │ │ │ │ -48#define RPP_ECHO_ON 0x01 /* Leave echo on. */ │ │ │ │ │ -49#define RPP_REQUIRE_TTY 0x02 /* Fail if there is no tty. */ │ │ │ │ │ -50#define RPP_FORCELOWER 0x04 /* Force input to lower case. */ │ │ │ │ │ -51#define RPP_FORCEUPPER 0x08 /* Force input to upper case. */ │ │ │ │ │ -52#define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */ │ │ │ │ │ -53#define RPP_STDIN 0x20 /* Read from stdin, not /dev/tty */ │ │ │ │ │ -54 │ │ │ │ │ -55#undef readpassphrase │ │ │ │ │ -56char * tds_readpassphrase(const char *, char *, size_t, int); │ │ │ │ │ -57#define readpassphrase tds_readpassphrase │ │ │ │ │ -58 │ │ │ │ │ -59#include │ │ │ │ │ -60 │ │ │ │ │ -61#endif /* !HAVE_READPASSPHRASE */ │ │ │ │ │ -62 │ │ │ │ │ -63#endif /* !FREETDS_READPASSPHRASE_H_ */ │ │ │ │ │ +39tds_func_get_info tds_invalid_get_info; │ │ │ │ │ +40tds_func_row_len tds_invalid_row_len; │ │ │ │ │ +41tds_func_get_data tds_invalid_get; │ │ │ │ │ +42tds_func_put_info tds_invalid_put_info; │ │ │ │ │ +43tds_func_put_data tds_invalid_put; │ │ │ │ │ +44tds_func_check tds_invalid_check; │ │ │ │ │ +45 │ │ │ │ │ +46tds_func_get_info tds_generic_get_info; │ │ │ │ │ +47tds_func_row_len tds_generic_row_len; │ │ │ │ │ +48tds_func_get_data tds_generic_get; │ │ │ │ │ +49tds_func_put_info tds_generic_put_info; │ │ │ │ │ +50tds_func_put_data tds_generic_put; │ │ │ │ │ +51tds_func_check tds_generic_check; │ │ │ │ │ +52 │ │ │ │ │ +53tds_func_get_info tds_numeric_get_info; │ │ │ │ │ +54tds_func_row_len tds_numeric_row_len; │ │ │ │ │ +55tds_func_get_data tds_numeric_get; │ │ │ │ │ +56tds_func_put_info tds_numeric_put_info; │ │ │ │ │ +57tds_func_put_data tds_numeric_put; │ │ │ │ │ +58tds_func_check tds_numeric_check; │ │ │ │ │ +59 │ │ │ │ │ +60#define tds_variant_get_info tds_generic_get_info │ │ │ │ │ +61#define tds_variant_row_len tds_generic_row_len │ │ │ │ │ +62tds_func_get_data tds_variant_get; │ │ │ │ │ +63tds_func_put_info tds_variant_put_info; │ │ │ │ │ +64tds_func_put_data tds_variant_put; │ │ │ │ │ +65tds_func_check tds_variant_check; │ │ │ │ │ +66 │ │ │ │ │ +67tds_func_get_info tds_msdatetime_get_info; │ │ │ │ │ +68tds_func_row_len tds_msdatetime_row_len; │ │ │ │ │ +69tds_func_get_data tds_msdatetime_get; │ │ │ │ │ +70tds_func_put_info tds_msdatetime_put_info; │ │ │ │ │ +71tds_func_put_data tds_msdatetime_put; │ │ │ │ │ +72tds_func_check tds_msdatetime_check; │ │ │ │ │ +73 │ │ │ │ │ +74tds_func_get_info tds_clrudt_get_info; │ │ │ │ │ +75tds_func_row_len tds_clrudt_row_len; │ │ │ │ │ +76#define tds_clrudt_get tds_generic_get │ │ │ │ │ +77tds_func_put_info tds_clrudt_put_info; │ │ │ │ │ +78#define tds_clrudt_put tds_generic_put │ │ │ │ │ +79tds_func_check tds_clrudt_check; │ │ │ │ │ +80 │ │ │ │ │ +81tds_func_get_info tds_sybbigtime_get_info; │ │ │ │ │ +82tds_func_row_len tds_sybbigtime_row_len; │ │ │ │ │ +83tds_func_get_data tds_sybbigtime_get; │ │ │ │ │ +84tds_func_put_info tds_sybbigtime_put_info; │ │ │ │ │ +85tds_func_put_data tds_sybbigtime_put; │ │ │ │ │ +86tds_func_check tds_sybbigtime_check; │ │ │ │ │ +87 │ │ │ │ │ +92#ifndef TDS_DONT_DEFINE_DEFAULT_FUNCTIONS │ │ │ │ │ +93# define TDS_DEFINE_DEFAULT_FUNCS(name) \ │ │ │ │ │ +94 const TDSCOLUMNFUNCS tds_ ## name ## _funcs = TDS_COMMON_FUNCS(name) │ │ │ │ │ +95 │ │ │ │ │ +96TDS_DEFINE_DEFAULT_FUNCS(invalid); │ │ │ │ │ +97TDS_DEFINE_DEFAULT_FUNCS(generic); │ │ │ │ │ +98TDS_DEFINE_DEFAULT_FUNCS(numeric); │ │ │ │ │ +99TDS_DEFINE_DEFAULT_FUNCS(variant); │ │ │ │ │ +100TDS_DEFINE_DEFAULT_FUNCS(msdatetime); │ │ │ │ │ +101TDS_DEFINE_DEFAULT_FUNCS(clrudt); │ │ │ │ │ +102TDS_DEFINE_DEFAULT_FUNCS(sybbigtime); │ │ │ │ │ +103#endif │ │ │ │ │ +104 │ │ │ │ │ +105#include │ │ │ │ │ +106 │ │ │ │ │ +107#endif │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00455_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/windows.h Source File │ │ │ │ +FreeTDS API: include/freetds/server.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
windows.h
│ │ │ │ +
server.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2018 Frediano Ziglio
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,24 +96,67 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef freetds_windows_h_
│ │ │ │ -
21#define freetds_windows_h_
│ │ │ │ -
22
│ │ │ │ -
23#ifdef _WIN32
│ │ │ │ -
24#include <winsock2.h>
│ │ │ │ -
25#include <ws2tcpip.h>
│ │ │ │ -
26#include <windows.h>
│ │ │ │ +
20#ifndef _tdsserver_h_
│ │ │ │ +
21#define _tdsserver_h_
│ │ │ │ +
22#endif
│ │ │ │ +
23
│ │ │ │ +
24#ifdef __cplusplus
│ │ │ │ +
25extern "C"
│ │ │ │ +
26{
│ │ │ │
27#endif
│ │ │ │ -
28
│ │ │ │ -
29#endif /* freetds_windows_h_ */
│ │ │ │ +
28#if 0
│ │ │ │ +
29}
│ │ │ │ +
30#endif
│ │ │ │ +
31
│ │ │ │ +
32/* login.c */
│ │ │ │ +
33unsigned char *tds7_decrypt_pass(const unsigned char *crypt_pass, int len, unsigned char *clear_pass);
│ │ │ │ +
34TDSSOCKET *tds_listen(TDSCONTEXT * ctx, int ip_port);
│ │ │ │ +
35int tds_read_login(TDSSOCKET * tds, TDSLOGIN * login);
│ │ │ │ +
36int tds7_read_login(TDSSOCKET * tds, TDSLOGIN * login);
│ │ │ │ +
37TDSLOGIN *tds_alloc_read_login(TDSSOCKET * tds);
│ │ │ │ +
38
│ │ │ │ +
39/* query.c */
│ │ │ │ +
40char *tds_get_query(TDSSOCKET * tds);
│ │ │ │ +
41char *tds_get_generic_query(TDSSOCKET * tds);
│ │ │ │ +
42
│ │ │ │ +
43/* server.c */
│ │ │ │ +
44void tds_env_change(TDSSOCKET * tds, int type, const char *oldvalue, const char *newvalue);
│ │ │ │ +
45void tds_send_msg(TDSSOCKET * tds, int msgno, int msgstate, int severity, const char *msgtext, const char *srvname,
│ │ │ │ +
46 const char *procname, int line);
│ │ │ │ +
47void tds_send_login_ack(TDSSOCKET * tds, const char *progname);
│ │ │ │ +
48void tds_send_eed(TDSSOCKET * tds, int msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, int line);
│ │ │ │ +
49void tds_send_err(TDSSOCKET * tds, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
│ │ │ │ +
50void tds_send_capabilities_token(TDSSOCKET * tds);
│ │ │ │ +
51/* TODO remove, use tds_send_done */
│ │ │ │ +
52void tds_send_done_token(TDSSOCKET * tds, TDS_SMALLINT flags, TDS_INT numrows);
│ │ │ │ +
53void tds_send_done(TDSSOCKET * tds, int token, TDS_SMALLINT flags, TDS_INT numrows);
│ │ │ │ +
54void tds_send_control_token(TDSSOCKET * tds, TDS_SMALLINT numcols);
│ │ │ │ +
55void tds_send_col_name(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ +
56void tds_send_col_info(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ +
57void tds_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ +
58void tds7_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ +
59void tds_send_table_header(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ +
60void tds_send_row(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ +
61void tds71_send_prelogin(TDSSOCKET * tds);
│ │ │ │ +
62
│ │ │ │ +
63#if 0
│ │ │ │ +
64{
│ │ │ │ +
65#endif
│ │ │ │ +
66#ifdef __cplusplus
│ │ │ │ +
67}
│ │ │ │ +
68#endif
│ │ │ │ +
Definition tds.h:517
│ │ │ │ +
Hold information for any results.
Definition tds.h:769
│ │ │ │ +
Definition tds.h:1029
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,16 +1,16 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -windows.h │ │ │ │ │ +server.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2018 Frediano Ziglio │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -20,19 +20,75 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef freetds_windows_h_ │ │ │ │ │ -21#define freetds_windows_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#ifdef _WIN32 │ │ │ │ │ -24#include │ │ │ │ │ -25#include │ │ │ │ │ -26#include │ │ │ │ │ +20#ifndef _tdsserver_h_ │ │ │ │ │ +21#define _tdsserver_h_ │ │ │ │ │ +22#endif │ │ │ │ │ +23 │ │ │ │ │ +24#ifdef __cplusplus │ │ │ │ │ +25extern "C" │ │ │ │ │ +26{ │ │ │ │ │ 27#endif │ │ │ │ │ -28 │ │ │ │ │ -29#endif /* freetds_windows_h_ */ │ │ │ │ │ +28#if 0 │ │ │ │ │ +29} │ │ │ │ │ +30#endif │ │ │ │ │ +31 │ │ │ │ │ +32/* login.c */ │ │ │ │ │ +33unsigned char *tds7_decrypt_pass(const unsigned char *crypt_pass, int len, │ │ │ │ │ +unsigned char *clear_pass); │ │ │ │ │ +34_T_D_S_S_O_C_K_E_T *tds_listen(_T_D_S_C_O_N_T_E_X_T * ctx, int ip_port); │ │ │ │ │ +35int tds_read_login(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ +36int tds7_read_login(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ +37_T_D_S_L_O_G_I_N *tds_alloc_read_login(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +38 │ │ │ │ │ +39/* query.c */ │ │ │ │ │ +40char *tds_get_query(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +41char *tds_get_generic_query(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +42 │ │ │ │ │ +43/* server.c */ │ │ │ │ │ +44void tds_env_change(_T_D_S_S_O_C_K_E_T * tds, int type, const char *oldvalue, const │ │ │ │ │ +char *newvalue); │ │ │ │ │ +45void tds_send_msg(_T_D_S_S_O_C_K_E_T * tds, int msgno, int msgstate, int severity, │ │ │ │ │ +const char *msgtext, const char *srvname, │ │ │ │ │ +46 const char *procname, int line); │ │ │ │ │ +47void tds_send_login_ack(_T_D_S_S_O_C_K_E_T * tds, const char *progname); │ │ │ │ │ +48void tds_send_eed(_T_D_S_S_O_C_K_E_T * tds, int msgno, int msgstate, int severity, │ │ │ │ │ +char *msgtext, char *srvname, char *procname, int line); │ │ │ │ │ +49void tds_send_err(_T_D_S_S_O_C_K_E_T * tds, int severity, int dberr, int oserr, char │ │ │ │ │ +*dberrstr, char *oserrstr); │ │ │ │ │ +50void tds_send_capabilities_token(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +51/* TODO remove, use tds_send_done */ │ │ │ │ │ +52void tds_send_done_token(_T_D_S_S_O_C_K_E_T * tds, TDS_SMALLINT flags, TDS_INT │ │ │ │ │ +numrows); │ │ │ │ │ +53void tds_send_done(_T_D_S_S_O_C_K_E_T * tds, int token, TDS_SMALLINT flags, TDS_INT │ │ │ │ │ +numrows); │ │ │ │ │ +54void tds_send_control_token(_T_D_S_S_O_C_K_E_T * tds, TDS_SMALLINT numcols); │ │ │ │ │ +55void tds_send_col_name(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ +56void tds_send_col_info(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ +57void tds_send_result(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ +58void tds7_send_result(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ +59void tds_send_table_header(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ +60void tds_send_row(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ +61void tds71_send_prelogin(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +62 │ │ │ │ │ +63#if 0 │ │ │ │ │ +64{ │ │ │ │ │ +65#endif │ │ │ │ │ +66#ifdef __cplusplus │ │ │ │ │ +67} │ │ │ │ │ +68#endif │ │ │ │ │ +_t_d_s___l_o_g_i_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ +_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ +Hold information for any results. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ +_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00458_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/server.h Source File │ │ │ │ +FreeTDS API: include/freetds/charset_lookup.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,89 +74,1887 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
server.h
│ │ │ │ +
charset_lookup.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef _tdsserver_h_
│ │ │ │ -
21#define _tdsserver_h_
│ │ │ │ -
22#endif
│ │ │ │ -
23
│ │ │ │ -
24#ifdef __cplusplus
│ │ │ │ -
25extern "C"
│ │ │ │ -
26{
│ │ │ │ -
27#endif
│ │ │ │ -
28#if 0
│ │ │ │ -
29}
│ │ │ │ +
1/* ANSI-C code produced by gperf version 3.1 */
│ │ │ │ +
2/* Command-line: /usr/pkg/bin/gperf -m 100 -C -K alias_pos -t -F ,-1 -P -H hash_charset -N charset_lookup -L ANSI-C charset_lookup.gperf */
│ │ │ │ +
3/* Computed positions: -k'1,3-11,$' */
│ │ │ │ +
4
│ │ │ │ +
5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
│ │ │ │ +
6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
│ │ │ │ +
7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
│ │ │ │ +
8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
│ │ │ │ +
9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
│ │ │ │ +
10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
│ │ │ │ +
11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
│ │ │ │ +
12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
│ │ │ │ +
13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
│ │ │ │ +
14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
│ │ │ │ +
15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
│ │ │ │ +
16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
│ │ │ │ +
17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
│ │ │ │ +
18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
│ │ │ │ +
19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
│ │ │ │ +
20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
│ │ │ │ +
21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
│ │ │ │ +
22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
│ │ │ │ +
23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
│ │ │ │ +
24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
│ │ │ │ +
25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
│ │ │ │ +
26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
│ │ │ │ +
27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
│ │ │ │ +
28/* The character set is not based on ISO-646. */
│ │ │ │ +
29#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."
│ │ │ │
30#endif
│ │ │ │ -
31
│ │ │ │ -
32/* login.c */
│ │ │ │ -
33unsigned char *tds7_decrypt_pass(const unsigned char *crypt_pass, int len, unsigned char *clear_pass);
│ │ │ │ -
34TDSSOCKET *tds_listen(TDSCONTEXT * ctx, int ip_port);
│ │ │ │ -
35int tds_read_login(TDSSOCKET * tds, TDSLOGIN * login);
│ │ │ │ -
36int tds7_read_login(TDSSOCKET * tds, TDSLOGIN * login);
│ │ │ │ -
37TDSLOGIN *tds_alloc_read_login(TDSSOCKET * tds);
│ │ │ │ -
38
│ │ │ │ -
39/* query.c */
│ │ │ │ -
40char *tds_get_query(TDSSOCKET * tds);
│ │ │ │ -
41char *tds_get_generic_query(TDSSOCKET * tds);
│ │ │ │ -
42
│ │ │ │ -
43/* server.c */
│ │ │ │ -
44void tds_env_change(TDSSOCKET * tds, int type, const char *oldvalue, const char *newvalue);
│ │ │ │ -
45void tds_send_msg(TDSSOCKET * tds, int msgno, int msgstate, int severity, const char *msgtext, const char *srvname,
│ │ │ │ -
46 const char *procname, int line);
│ │ │ │ -
47void tds_send_login_ack(TDSSOCKET * tds, const char *progname);
│ │ │ │ -
48void tds_send_eed(TDSSOCKET * tds, int msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, int line);
│ │ │ │ -
49void tds_send_err(TDSSOCKET * tds, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr);
│ │ │ │ -
50void tds_send_capabilities_token(TDSSOCKET * tds);
│ │ │ │ -
51/* TODO remove, use tds_send_done */
│ │ │ │ -
52void tds_send_done_token(TDSSOCKET * tds, TDS_SMALLINT flags, TDS_INT numrows);
│ │ │ │ -
53void tds_send_done(TDSSOCKET * tds, int token, TDS_SMALLINT flags, TDS_INT numrows);
│ │ │ │ -
54void tds_send_control_token(TDSSOCKET * tds, TDS_SMALLINT numcols);
│ │ │ │ -
55void tds_send_col_name(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ -
56void tds_send_col_info(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ -
57void tds_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ -
58void tds7_send_result(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ -
59void tds_send_table_header(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ -
60void tds_send_row(TDSSOCKET * tds, TDSRESULTINFO * resinfo);
│ │ │ │ -
61void tds71_send_prelogin(TDSSOCKET * tds);
│ │ │ │ -
62
│ │ │ │ -
63#if 0
│ │ │ │ -
64{
│ │ │ │ -
65#endif
│ │ │ │ -
66#ifdef __cplusplus
│ │ │ │ -
67}
│ │ │ │ -
68#endif
│ │ │ │ -
Definition tds.h:517
│ │ │ │ -
Hold information for any results.
Definition tds.h:769
│ │ │ │ -
Definition tds.h:1029
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
31
│ │ │ │ +
32#line 3 "charset_lookup.gperf"
│ │ │ │ +
33
│ │ │ │ +
34static const struct charset_alias *charset_lookup(register const char *str, register size_t len);
│ │ │ │ +
35#line 2 "charset_lookup.gperf"
│ │ │ │ +
36struct charset_alias { short int alias_pos; short int canonic; };
│ │ │ │ +
37
│ │ │ │ +
38#define TOTAL_KEYWORDS 374
│ │ │ │ +
39#define MIN_WORD_LENGTH 2
│ │ │ │ +
40#define MAX_WORD_LENGTH 45
│ │ │ │ +
41#define MIN_HASH_VALUE 15
│ │ │ │ +
42#define MAX_HASH_VALUE 1079
│ │ │ │ +
43/* maximum key range = 1065, duplicates = 0 */
│ │ │ │ +
44
│ │ │ │ +
45#ifdef __GNUC__
│ │ │ │ +
46__inline
│ │ │ │ +
47#else
│ │ │ │ +
48#ifdef __cplusplus
│ │ │ │ +
49inline
│ │ │ │ +
50#endif
│ │ │ │ +
51#endif
│ │ │ │ +
52static unsigned int
│ │ │ │ +
53hash_charset (register const char *str, register size_t len)
│ │ │ │ +
54{
│ │ │ │ +
55 static const unsigned short asso_values[] =
│ │ │ │ +
56 {
│ │ │ │ +
57 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
58 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
59 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
60 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
61 1080, 1080, 1080, 1080, 1080, 7, 132, 1080, 56, 6,
│ │ │ │ +
62 47, 83, 35, 8, 18, 63, 7, 9, 363, 1080,
│ │ │ │ +
63 1080, 1080, 1080, 1080, 1080, 7, 99, 128, 6, 22,
│ │ │ │ +
64 141, 116, 95, 6, 34, 68, 7, 159, 6, 6,
│ │ │ │ +
65 80, 1080, 26, 6, 115, 191, 39, 162, 231, 14,
│ │ │ │ +
66 8, 1080, 1080, 1080, 1080, 37, 1080, 10, 16, 147,
│ │ │ │ +
67 1080, 16, 8, 12, 13, 6, 1080, 6, 1080, 8,
│ │ │ │ +
68 6, 6, 1080, 1080, 6, 7, 6, 19, 1080, 1080,
│ │ │ │ +
69 1080, 6, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
70 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
71 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
72 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
73 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
74 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
75 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
76 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
77 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
78 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
79 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
80 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
81 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
│ │ │ │ +
82 1080, 1080, 1080, 1080, 1080, 1080
│ │ │ │ +
83 };
│ │ │ │ +
84 register unsigned int hval = len;
│ │ │ │ +
85
│ │ │ │ +
86 switch (hval)
│ │ │ │ +
87 {
│ │ │ │ +
88 default:
│ │ │ │ +
89 hval += asso_values[(unsigned char)str[10]];
│ │ │ │ +
90 /*FALLTHROUGH*/
│ │ │ │ +
91 case 10:
│ │ │ │ +
92 hval += asso_values[(unsigned char)str[9]];
│ │ │ │ +
93 /*FALLTHROUGH*/
│ │ │ │ +
94 case 9:
│ │ │ │ +
95 hval += asso_values[(unsigned char)str[8]];
│ │ │ │ +
96 /*FALLTHROUGH*/
│ │ │ │ +
97 case 8:
│ │ │ │ +
98 hval += asso_values[(unsigned char)str[7]];
│ │ │ │ +
99 /*FALLTHROUGH*/
│ │ │ │ +
100 case 7:
│ │ │ │ +
101 hval += asso_values[(unsigned char)str[6]];
│ │ │ │ +
102 /*FALLTHROUGH*/
│ │ │ │ +
103 case 6:
│ │ │ │ +
104 hval += asso_values[(unsigned char)str[5]];
│ │ │ │ +
105 /*FALLTHROUGH*/
│ │ │ │ +
106 case 5:
│ │ │ │ +
107 hval += asso_values[(unsigned char)str[4]];
│ │ │ │ +
108 /*FALLTHROUGH*/
│ │ │ │ +
109 case 4:
│ │ │ │ +
110 hval += asso_values[(unsigned char)str[3]];
│ │ │ │ +
111 /*FALLTHROUGH*/
│ │ │ │ +
112 case 3:
│ │ │ │ +
113 hval += asso_values[(unsigned char)str[2]];
│ │ │ │ +
114 /*FALLTHROUGH*/
│ │ │ │ +
115 case 2:
│ │ │ │ +
116 case 1:
│ │ │ │ +
117 hval += asso_values[(unsigned char)str[0]];
│ │ │ │ +
118 break;
│ │ │ │ +
119 }
│ │ │ │ +
120 return hval + asso_values[(unsigned char)str[len - 1]];
│ │ │ │ +
121}
│ │ │ │ +
122
│ │ │ │ +
│ │ │ │ +
123struct stringpool_t
│ │ │ │ +
124 {
│ │ │ │ +
125 char stringpool_str15[sizeof("L1")];
│ │ │ │ +
126 char stringpool_str16[sizeof("L8")];
│ │ │ │ +
127 char stringpool_str17[sizeof("L5")];
│ │ │ │ +
128 char stringpool_str27[sizeof("L6")];
│ │ │ │ +
129 char stringpool_str28[sizeof("SJIS")];
│ │ │ │ +
130 char stringpool_str30[sizeof("koi8")];
│ │ │ │ +
131 char stringpool_str31[sizeof("sjis")];
│ │ │ │ +
132 char stringpool_str35[sizeof("R8")];
│ │ │ │ +
133 char stringpool_str36[sizeof("iso81")];
│ │ │ │ +
134 char stringpool_str38[sizeof("iso88")];
│ │ │ │ +
135 char stringpool_str39[sizeof("iso15")];
│ │ │ │ +
136 char stringpool_str40[sizeof("iso85")];
│ │ │ │ +
137 char stringpool_str41[sizeof("thai8")];
│ │ │ │ +
138 char stringpool_str42[sizeof("iso89")];
│ │ │ │ +
139 char stringpool_str43[sizeof("roma8")];
│ │ │ │ +
140 char stringpool_str44[sizeof("L4")];
│ │ │ │ +
141 char stringpool_str45[sizeof("utf8")];
│ │ │ │ +
142 char stringpool_str46[sizeof("866")];
│ │ │ │ +
143 char stringpool_str47[sizeof("iso815")];
│ │ │ │ +
144 char stringpool_str48[sizeof("big5")];
│ │ │ │ +
145 char stringpool_str50[sizeof("roman8")];
│ │ │ │ +
146 char stringpool_str56[sizeof("L2")];
│ │ │ │ +
147 char stringpool_str57[sizeof("646")];
│ │ │ │ +
148 char stringpool_str60[sizeof("iso86")];
│ │ │ │ +
149 char stringpool_str63[sizeof("iso88591")];
│ │ │ │ +
150 char stringpool_str65[sizeof("iso88598")];
│ │ │ │ +
151 char stringpool_str66[sizeof("iso_1")];
│ │ │ │ +
152 char stringpool_str67[sizeof("iso88595")];
│ │ │ │ +
153 char stringpool_str69[sizeof("iso88599")];
│ │ │ │ +
154 char stringpool_str70[sizeof("greek8")];
│ │ │ │ +
155 char stringpool_str71[sizeof("ISO8859-1")];
│ │ │ │ +
156 char stringpool_str72[sizeof("L7")];
│ │ │ │ +
157 char stringpool_str73[sizeof("ISO8859-8")];
│ │ │ │ +
158 char stringpool_str74[sizeof("iso885915")];
│ │ │ │ +
159 char stringpool_str75[sizeof("ISO8859-5")];
│ │ │ │ +
160 char stringpool_str77[sizeof("ISO8859-9")];
│ │ │ │ +
161 char stringpool_str79[sizeof("ISO-8859-1")];
│ │ │ │ +
162 char stringpool_str81[sizeof("ISO-8859-8")];
│ │ │ │ +
163 char stringpool_str82[sizeof("ISO8859-15")];
│ │ │ │ +
164 char stringpool_str83[sizeof("ISO-8859-5")];
│ │ │ │ +
165 char stringpool_str85[sizeof("ISO-8859-9")];
│ │ │ │ +
166 char stringpool_str87[sizeof("iso88596")];
│ │ │ │ +
167 char stringpool_str89[sizeof("ISO-IR-58")];
│ │ │ │ +
168 char stringpool_str90[sizeof("ISO-8859-15")];
│ │ │ │ +
169 char stringpool_str91[sizeof("JAVA")];
│ │ │ │ +
170 char stringpool_str92[sizeof("L3")];
│ │ │ │ +
171 char stringpool_str93[sizeof("iso14")];
│ │ │ │ +
172 char stringpool_str94[sizeof("iso84")];
│ │ │ │ +
173 char stringpool_str95[sizeof("ISO8859-6")];
│ │ │ │ +
174 char stringpool_str100[sizeof("ISO-IR-159")];
│ │ │ │ +
175 char stringpool_str101[sizeof("ISO-IR-199")];
│ │ │ │ +
176 char stringpool_str102[sizeof("ISO-IR-6")];
│ │ │ │ +
177 char stringpool_str103[sizeof("ISO-8859-6")];
│ │ │ │ +
178 char stringpool_str104[sizeof("862")];
│ │ │ │ +
179 char stringpool_str105[sizeof("HZ")];
│ │ │ │ +
180 char stringpool_str107[sizeof("iso646")];
│ │ │ │ +
181 char stringpool_str108[sizeof("ISO-IR-165")];
│ │ │ │ +
182 char stringpool_str109[sizeof("ISO_8859-1")];
│ │ │ │ +
183 char stringpool_str110[sizeof("ISO-8859-16")];
│ │ │ │ +
184 char stringpool_str111[sizeof("ISO_8859-8")];
│ │ │ │ +
185 char stringpool_str113[sizeof("ISO_8859-5")];
│ │ │ │ +
186 char stringpool_str115[sizeof("ISO_8859-9")];
│ │ │ │ +
187 char stringpool_str116[sizeof("JP")];
│ │ │ │ +
188 char stringpool_str118[sizeof("iso82")];
│ │ │ │ +
189 char stringpool_str120[sizeof("ISO_8859-15")];
│ │ │ │ +
190 char stringpool_str121[sizeof("iso88594")];
│ │ │ │ +
191 char stringpool_str122[sizeof("850")];
│ │ │ │ +
192 char stringpool_str123[sizeof("ISO-IR-148")];
│ │ │ │ +
193 char stringpool_str124[sizeof("ISO_8859-15:1998")];
│ │ │ │ +
194 char stringpool_str127[sizeof("ISO-IR-149")];
│ │ │ │ +
195 char stringpool_str128[sizeof("ISO-IR-166")];
│ │ │ │ +
196 char stringpool_str129[sizeof("ISO8859-4")];
│ │ │ │ +
197 char stringpool_str133[sizeof("ISO_8859-6")];
│ │ │ │ +
198 char stringpool_str135[sizeof("iso10")];
│ │ │ │ +
199 char stringpool_str136[sizeof("CN")];
│ │ │ │ +
200 char stringpool_str137[sizeof("ISO-8859-4")];
│ │ │ │ +
201 char stringpool_str140[sizeof("ISO_8859-16")];
│ │ │ │ +
202 char stringpool_str141[sizeof("KOREAN")];
│ │ │ │ +
203 char stringpool_str142[sizeof("ISO-IR-101")];
│ │ │ │ +
204 char stringpool_str143[sizeof("ISO-IR-14")];
│ │ │ │ +
205 char stringpool_str144[sizeof("ISO-8859-14")];
│ │ │ │ +
206 char stringpool_str145[sizeof("iso88592")];
│ │ │ │ +
207 char stringpool_str146[sizeof("KOI8-R")];
│ │ │ │ +
208 char stringpool_str148[sizeof("ISO-IR-109")];
│ │ │ │ +
209 char stringpool_str149[sizeof("C99")];
│ │ │ │ +
210 char stringpool_str150[sizeof("iso87")];
│ │ │ │ +
211 char stringpool_str151[sizeof("ISO_8859-14:1998")];
│ │ │ │ +
212 char stringpool_str152[sizeof("LATIN1")];
│ │ │ │ +
213 char stringpool_str153[sizeof("ISO8859-2")];
│ │ │ │ +
214 char stringpool_str154[sizeof("LATIN8")];
│ │ │ │ +
215 char stringpool_str155[sizeof("ISO-IR-179")];
│ │ │ │ +
216 char stringpool_str156[sizeof("LATIN5")];
│ │ │ │ +
217 char stringpool_str157[sizeof("ISO-IR-126")];
│ │ │ │ +
218 char stringpool_str158[sizeof("ASCII")];
│ │ │ │ +
219 char stringpool_str161[sizeof("ISO-8859-2")];
│ │ │ │ +
220 char stringpool_str164[sizeof("CP819")];
│ │ │ │ +
221 char stringpool_str167[sizeof("ISO_8859-4")];
│ │ │ │ +
222 char stringpool_str170[sizeof("TCVN")];
│ │ │ │ +
223 char stringpool_str171[sizeof("ISO-IR-138")];
│ │ │ │ +
224 char stringpool_str173[sizeof("hp15CN")];
│ │ │ │ +
225 char stringpool_str174[sizeof("ISO_8859-14")];
│ │ │ │ +
226 char stringpool_str176[sizeof("LATIN6")];
│ │ │ │ +
227 char stringpool_str177[sizeof("iso88597")];
│ │ │ │ +
228 char stringpool_str178[sizeof("ISO8859-10")];
│ │ │ │ +
229 char stringpool_str179[sizeof("ISO-IR-144")];
│ │ │ │ +
230 char stringpool_str183[sizeof("ISO_8859-16:2000")];
│ │ │ │ +
231 char stringpool_str185[sizeof("ISO8859-7")];
│ │ │ │ +
232 char stringpool_str186[sizeof("ISO-8859-10")];
│ │ │ │ +
233 char stringpool_str189[sizeof("iso13")];
│ │ │ │ +
234 char stringpool_str190[sizeof("iso83")];
│ │ │ │ +
235 char stringpool_str191[sizeof("ISO_8859-2")];
│ │ │ │ +
236 char stringpool_str192[sizeof("ISO-IR-110")];
│ │ │ │ +
237 char stringpool_str193[sizeof("ISO-8859-7")];
│ │ │ │ +
238 char stringpool_str194[sizeof("CP866")];
│ │ │ │ +
239 char stringpool_str195[sizeof("CP949")];
│ │ │ │ +
240 char stringpool_str196[sizeof("tis620")];
│ │ │ │ +
241 char stringpool_str197[sizeof("VISCII")];
│ │ │ │ +
242 char stringpool_str198[sizeof("ISO-IR-226")];
│ │ │ │ +
243 char stringpool_str199[sizeof("US")];
│ │ │ │ +
244 char stringpool_str200[sizeof("ISO-IR-87")];
│ │ │ │ +
245 char stringpool_str201[sizeof("ISO-IR-57")];
│ │ │ │ +
246 char stringpool_str202[sizeof("IBM819")];
│ │ │ │ +
247 char stringpool_str203[sizeof("macthai")];
│ │ │ │ +
248 char stringpool_str204[sizeof("MS-ANSI")];
│ │ │ │ +
249 char stringpool_str205[sizeof("macturk")];
│ │ │ │ +
250 char stringpool_str207[sizeof("CP1251")];
│ │ │ │ +
251 char stringpool_str208[sizeof("ISO-IR-157")];
│ │ │ │ +
252 char stringpool_str209[sizeof("CP1258")];
│ │ │ │ +
253 char stringpool_str210[sizeof("LATIN4")];
│ │ │ │ +
254 char stringpool_str211[sizeof("CP1255")];
│ │ │ │ +
255 char stringpool_str212[sizeof("ISO_8859-10:1992")];
│ │ │ │ +
256 char stringpool_str213[sizeof("cp866")];
│ │ │ │ +
257 char stringpool_str214[sizeof("cp949")];
│ │ │ │ +
258 char stringpool_str216[sizeof("ISO_8859-10")];
│ │ │ │ +
259 char stringpool_str217[sizeof("iso88593")];
│ │ │ │ +
260 char stringpool_str218[sizeof("ROMAN8")];
│ │ │ │ +
261 char stringpool_str219[sizeof("CHINESE")];
│ │ │ │ +
262 char stringpool_str220[sizeof("JIS0208")];
│ │ │ │ +
263 char stringpool_str223[sizeof("ISO_8859-7")];
│ │ │ │ +
264 char stringpool_str225[sizeof("macgreek")];
│ │ │ │ +
265 char stringpool_str226[sizeof("cp1251")];
│ │ │ │ +
266 char stringpool_str227[sizeof("ascii_8")];
│ │ │ │ +
267 char stringpool_str228[sizeof("cp1258")];
│ │ │ │ +
268 char stringpool_str229[sizeof("ECMA-118")];
│ │ │ │ +
269 char stringpool_str230[sizeof("cp1255")];
│ │ │ │ +
270 char stringpool_str231[sizeof("CP1256")];
│ │ │ │ +
271 char stringpool_str232[sizeof("IBM866")];
│ │ │ │ +
272 char stringpool_str233[sizeof("ISO-8859-3")];
│ │ │ │ +
273 char stringpool_str234[sizeof("LATIN2")];
│ │ │ │ +
274 char stringpool_str235[sizeof("BIG5")];
│ │ │ │ +
275 char stringpool_str236[sizeof("MULELAO-1")];
│ │ │ │ +
276 char stringpool_str237[sizeof("MS-EE")];
│ │ │ │ +
277 char stringpool_str239[sizeof("ISO646-CN")];
│ │ │ │ +
278 char stringpool_str240[sizeof("ISO-8859-13")];
│ │ │ │ +
279 char stringpool_str242[sizeof("ISO-IR-100")];
│ │ │ │ +
280 char stringpool_str243[sizeof("BIG-5")];
│ │ │ │ +
281 char stringpool_str247[sizeof("ISO-IR-127")];
│ │ │ │ +
282 char stringpool_str248[sizeof("GREEK8")];
│ │ │ │ +
283 char stringpool_str250[sizeof("cp1256")];
│ │ │ │ +
284 char stringpool_str252[sizeof("CP862")];
│ │ │ │ +
285 char stringpool_str253[sizeof("CP1361")];
│ │ │ │ +
286 char stringpool_str255[sizeof("GBK")];
│ │ │ │ +
287 char stringpool_str258[sizeof("ELOT_928")];
│ │ │ │ +
288 char stringpool_str260[sizeof("CP850")];
│ │ │ │ +
289 char stringpool_str261[sizeof("CP936")];
│ │ │ │ +
290 char stringpool_str262[sizeof("CP950")];
│ │ │ │ +
291 char stringpool_str263[sizeof("ISO_8859-3")];
│ │ │ │ +
292 char stringpool_str265[sizeof("CP1254")];
│ │ │ │ +
293 char stringpool_str266[sizeof("LATIN7")];
│ │ │ │ +
294 char stringpool_str270[sizeof("ISO_8859-13")];
│ │ │ │ +
295 char stringpool_str271[sizeof("cp862")];
│ │ │ │ +
296 char stringpool_str273[sizeof("CP874")];
│ │ │ │ +
297 char stringpool_str274[sizeof("CSKOI8R")];
│ │ │ │ +
298 char stringpool_str275[sizeof("EUCKR")];
│ │ │ │ +
299 char stringpool_str279[sizeof("cp850")];
│ │ │ │ +
300 char stringpool_str280[sizeof("cp936")];
│ │ │ │ +
301 char stringpool_str281[sizeof("cp950")];
│ │ │ │ +
302 char stringpool_str283[sizeof("EUC-KR")];
│ │ │ │ +
303 char stringpool_str284[sizeof("cp1254")];
│ │ │ │ +
304 char stringpool_str285[sizeof("ECMA-114")];
│ │ │ │ +
305 char stringpool_str288[sizeof("eucKR")];
│ │ │ │ +
306 char stringpool_str289[sizeof("CP1252")];
│ │ │ │ +
307 char stringpool_str290[sizeof("IBM862")];
│ │ │ │ +
308 char stringpool_str291[sizeof("CSISO159JISX02121990")];
│ │ │ │ +
309 char stringpool_str292[sizeof("cp874")];
│ │ │ │ +
310 char stringpool_str293[sizeof("ISO646-JP")];
│ │ │ │ +
311 char stringpool_str294[sizeof("CSASCII")];
│ │ │ │ +
312 char stringpool_str295[sizeof("EUCCN")];
│ │ │ │ +
313 char stringpool_str297[sizeof("UCS-4LE")];
│ │ │ │ +
314 char stringpool_str298[sizeof("IBM850")];
│ │ │ │ +
315 char stringpool_str301[sizeof("GREEK")];
│ │ │ │ +
316 char stringpool_str302[sizeof("ISO646-US")];
│ │ │ │ +
317 char stringpool_str303[sizeof("EUC-CN")];
│ │ │ │ +
318 char stringpool_str304[sizeof("TIS620")];
│ │ │ │ +
319 char stringpool_str305[sizeof("mac")];
│ │ │ │ +
320 char stringpool_str306[sizeof("LATIN3")];
│ │ │ │ +
321 char stringpool_str307[sizeof("CP1250")];
│ │ │ │ +
322 char stringpool_str308[sizeof("cp1252")];
│ │ │ │ +
323 char stringpool_str309[sizeof("UCS-2LE")];
│ │ │ │ +
324 char stringpool_str310[sizeof("CSISOLATIN1")];
│ │ │ │ +
325 char stringpool_str312[sizeof("TIS-620")];
│ │ │ │ +
326 char stringpool_str313[sizeof("TCVN5712-1")];
│ │ │ │ +
327 char stringpool_str314[sizeof("CSISOLATIN5")];
│ │ │ │ +
328 char stringpool_str318[sizeof("GB_1988-80")];
│ │ │ │ +
329 char stringpool_str319[sizeof("CP932")];
│ │ │ │ +
330 char stringpool_str320[sizeof("ASMO-708")];
│ │ │ │ +
331 char stringpool_str321[sizeof("CP1257")];
│ │ │ │ +
332 char stringpool_str324[sizeof("KOI8-T")];
│ │ │ │ +
333 char stringpool_str326[sizeof("cp1250")];
│ │ │ │ +
334 char stringpool_str329[sizeof("HP-ROMAN8")];
│ │ │ │ +
335 char stringpool_str331[sizeof("MS_KANJI")];
│ │ │ │ +
336 char stringpool_str333[sizeof("CSVISCII")];
│ │ │ │ +
337 char stringpool_str334[sizeof("CSISOLATIN6")];
│ │ │ │ +
338 char stringpool_str335[sizeof("KSC_5601")];
│ │ │ │ +
339 char stringpool_str336[sizeof("SHIFT-JIS")];
│ │ │ │ +
340 char stringpool_str337[sizeof("ISO-IR-203")];
│ │ │ │ +
341 char stringpool_str338[sizeof("cp932")];
│ │ │ │ +
342 char stringpool_str339[sizeof("JOHAB")];
│ │ │ │ +
343 char stringpool_str340[sizeof("cp1257")];
│ │ │ │ +
344 char stringpool_str342[sizeof("ARMSCII-8")];
│ │ │ │ +
345 char stringpool_str345[sizeof("ISO_646.IRV:1991")];
│ │ │ │ +
346 char stringpool_str347[sizeof("TCVN-5712")];
│ │ │ │ +
347 char stringpool_str349[sizeof("EUCJP")];
│ │ │ │ +
348 char stringpool_str350[sizeof("UTF8")];
│ │ │ │ +
349 char stringpool_str351[sizeof("X0201")];
│ │ │ │ +
350 char stringpool_str352[sizeof("GB2312")];
│ │ │ │ +
351 char stringpool_str353[sizeof("X0208")];
│ │ │ │ +
352 char stringpool_str354[sizeof("ISO-2022-KR")];
│ │ │ │ +
353 char stringpool_str355[sizeof("MS-CYRL")];
│ │ │ │ +
354 char stringpool_str356[sizeof("ISO-2022-JP-1")];
│ │ │ │ +
355 char stringpool_str357[sizeof("EUC-JP")];
│ │ │ │ +
356 char stringpool_str358[sizeof("UTF-8")];
│ │ │ │ +
357 char stringpool_str359[sizeof("VISCII1.1-1")];
│ │ │ │ +
358 char stringpool_str360[sizeof("CP367")];
│ │ │ │ +
359 char stringpool_str361[sizeof("CP1253")];
│ │ │ │ +
360 char stringpool_str362[sizeof("eucJP")];
│ │ │ │ +
361 char stringpool_str364[sizeof("mac_cyr")];
│ │ │ │ +
362 char stringpool_str365[sizeof("US-ASCII")];
│ │ │ │ +
363 char stringpool_str366[sizeof("SHIFT_JIS")];
│ │ │ │ +
364 char stringpool_str368[sizeof("CSISOLATIN4")];
│ │ │ │ +
365 char stringpool_str369[sizeof("TIS620-0")];
│ │ │ │ +
366 char stringpool_str371[sizeof("CSBIG5")];
│ │ │ │ +
367 char stringpool_str374[sizeof("ISO-2022-CN")];
│ │ │ │ +
368 char stringpool_str377[sizeof("CP437")];
│ │ │ │ +
369 char stringpool_str379[sizeof("CN-BIG5")];
│ │ │ │ +
370 char stringpool_str380[sizeof("cp1253")];
│ │ │ │ +
371 char stringpool_str381[sizeof("ARABIC")];
│ │ │ │ +
372 char stringpool_str383[sizeof("X0212")];
│ │ │ │ +
373 char stringpool_str384[sizeof("CSISO14JISC6220RO")];
│ │ │ │ +
374 char stringpool_str387[sizeof("GB18030")];
│ │ │ │ +
375 char stringpool_str389[sizeof("UCS-4BE")];
│ │ │ │ +
376 char stringpool_str392[sizeof("CSISOLATIN2")];
│ │ │ │ +
377 char stringpool_str393[sizeof("GEORGIAN-PS")];
│ │ │ │ +
378 char stringpool_str394[sizeof("KS_C_5601-1989")];
│ │ │ │ +
379 char stringpool_str395[sizeof("CP1133")];
│ │ │ │ +
380 char stringpool_str396[sizeof("cp437")];
│ │ │ │ +
381 char stringpool_str397[sizeof("ISO-2022-JP-2")];
│ │ │ │ +
382 char stringpool_str398[sizeof("IBM367")];
│ │ │ │ +
383 char stringpool_str401[sizeof("UCS-2BE")];
│ │ │ │ +
384 char stringpool_str402[sizeof("UNICODE-1-1")];
│ │ │ │ +
385 char stringpool_str409[sizeof("JIS_C6220-1969-RO")];
│ │ │ │ +
386 char stringpool_str411[sizeof("MS-ARAB")];
│ │ │ │ +
387 char stringpool_str415[sizeof("IBM437")];
│ │ │ │ +
388 char stringpool_str418[sizeof("MAC")];
│ │ │ │ +
389 char stringpool_str422[sizeof("UTF-16LE")];
│ │ │ │ +
390 char stringpool_str428[sizeof("ISO-2022-JP")];
│ │ │ │ +
391 char stringpool_str429[sizeof("CN-GB-ISOIR165")];
│ │ │ │ +
392 char stringpool_str434[sizeof("WINDOWS-1251")];
│ │ │ │ +
393 char stringpool_str435[sizeof("WINDOWS-1258")];
│ │ │ │ +
394 char stringpool_str436[sizeof("WINDOWS-1255")];
│ │ │ │ +
395 char stringpool_str438[sizeof("CSISOLATINARABIC")];
│ │ │ │ +
396 char stringpool_str441[sizeof("MS-HEBR")];
│ │ │ │ +
397 char stringpool_str444[sizeof("CYRILLIC")];
│ │ │ │ +
398 char stringpool_str445[sizeof("JIS_C6226-1983")];
│ │ │ │ +
399 char stringpool_str446[sizeof("WINDOWS-1256")];
│ │ │ │ +
400 char stringpool_str448[sizeof("KS_C_5601-1987")];
│ │ │ │ +
401 char stringpool_str450[sizeof("UHC")];
│ │ │ │ +
402 char stringpool_str452[sizeof("BIGFIVE")];
│ │ │ │ +
403 char stringpool_str454[sizeof("CN-GB")];
│ │ │ │ +
404 char stringpool_str455[sizeof("GEORGIAN-ACADEMY")];
│ │ │ │ +
405 char stringpool_str460[sizeof("BIG-FIVE")];
│ │ │ │ +
406 char stringpool_str461[sizeof("CSIBM866")];
│ │ │ │ +
407 char stringpool_str462[sizeof("UTF7")];
│ │ │ │ +
408 char stringpool_str463[sizeof("WINDOWS-1254")];
│ │ │ │ +
409 char stringpool_str464[sizeof("CSISOLATIN3")];
│ │ │ │ +
410 char stringpool_str465[sizeof("UNICODE-1-1-UTF-7")];
│ │ │ │ +
411 char stringpool_str467[sizeof("CSISO57GB1988")];
│ │ │ │ +
412 char stringpool_str470[sizeof("UTF-7")];
│ │ │ │ +
413 char stringpool_str472[sizeof("GB_2312-80")];
│ │ │ │ +
414 char stringpool_str474[sizeof("CSISO2022KR")];
│ │ │ │ +
415 char stringpool_str475[sizeof("WINDOWS-1252")];
│ │ │ │ +
416 char stringpool_str476[sizeof("KOI8-U")];
│ │ │ │ +
417 char stringpool_str479[sizeof("ISO_8859-8:1988")];
│ │ │ │ +
418 char stringpool_str480[sizeof("ISO_8859-5:1988")];
│ │ │ │ +
419 char stringpool_str483[sizeof("ISO_8859-9:1989")];
│ │ │ │ +
420 char stringpool_str484[sizeof("WINDOWS-1250")];
│ │ │ │ +
421 char stringpool_str485[sizeof("MACICELAND")];
│ │ │ │ +
422 char stringpool_str486[sizeof("CSISOLATINGREEK")];
│ │ │ │ +
423 char stringpool_str487[sizeof("ISO-2022-CN-EXT")];
│ │ │ │ +
424 char stringpool_str488[sizeof("JIS_X0201")];
│ │ │ │ +
425 char stringpool_str489[sizeof("JISX0201-1976")];
│ │ │ │ +
426 char stringpool_str490[sizeof("JIS_X0208")];
│ │ │ │ +
427 char stringpool_str491[sizeof("WINDOWS-1257")];
│ │ │ │ +
428 char stringpool_str494[sizeof("CSISO2022CN")];
│ │ │ │ +
429 char stringpool_str496[sizeof("MS-GREEK")];
│ │ │ │ +
430 char stringpool_str500[sizeof("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")];
│ │ │ │ +
431 char stringpool_str503[sizeof("KOI8-RU")];
│ │ │ │ +
432 char stringpool_str504[sizeof("TIS620.2529-1")];
│ │ │ │ +
433 char stringpool_str505[sizeof("MACROMAN")];
│ │ │ │ +
434 char stringpool_str506[sizeof("WINDOWS-874")];
│ │ │ │ +
435 char stringpool_str507[sizeof("ISO_8859-4:1988")];
│ │ │ │ +
436 char stringpool_str509[sizeof("CSKSC56011987")];
│ │ │ │ +
437 char stringpool_str511[sizeof("WINDOWS-1253")];
│ │ │ │ +
438 char stringpool_str514[sizeof("UTF-16BE")];
│ │ │ │ +
439 char stringpool_str515[sizeof("CSISO87JISX0208")];
│ │ │ │ +
440 char stringpool_str516[sizeof("CSISO2022JP2")];
│ │ │ │ +
441 char stringpool_str520[sizeof("JIS_X0212")];
│ │ │ │ +
442 char stringpool_str521[sizeof("MACROMANIA")];
│ │ │ │ +
443 char stringpool_str522[sizeof("CSUNICODE11")];
│ │ │ │ +
444 char stringpool_str523[sizeof("MACTHAI")];
│ │ │ │ +
445 char stringpool_str528[sizeof("UTF-32LE")];
│ │ │ │ +
446 char stringpool_str531[sizeof("CSHPROMAN8")];
│ │ │ │ +
447 char stringpool_str534[sizeof("ISO_8859-1:1987")];
│ │ │ │ +
448 char stringpool_str541[sizeof("BIG5HKSCS")];
│ │ │ │ +
449 char stringpool_str546[sizeof("ISO_8859-6:1987")];
│ │ │ │ +
450 char stringpool_str547[sizeof("JIS_X0212-1990")];
│ │ │ │ +
451 char stringpool_str548[sizeof("CSISO2022JP")];
│ │ │ │ +
452 char stringpool_str549[sizeof("BIG5-HKSCS")];
│ │ │ │ +
453 char stringpool_str553[sizeof("CSSHIFTJIS")];
│ │ │ │ +
454 char stringpool_str555[sizeof("ISO_8859-3:1988")];
│ │ │ │ +
455 char stringpool_str557[sizeof("JIS_X0208-1990")];
│ │ │ │ +
456 char stringpool_str560[sizeof("CSISOLATINHEBREW")];
│ │ │ │ +
457 char stringpool_str561[sizeof("CSISOLATINCYRILLIC")];
│ │ │ │ +
458 char stringpool_str563[sizeof("ISO-CELTIC")];
│ │ │ │ +
459 char stringpool_str564[sizeof("HZ-GB-2312")];
│ │ │ │ +
460 char stringpool_str571[sizeof("ANSI_X3.4-1968")];
│ │ │ │ +
461 char stringpool_str572[sizeof("HEBREW")];
│ │ │ │ +
462 char stringpool_str575[sizeof("ISO_8859-2:1987")];
│ │ │ │ +
463 char stringpool_str577[sizeof("CSISO58GB231280")];
│ │ │ │ +
464 char stringpool_str581[sizeof("CSGB2312")];
│ │ │ │ +
465 char stringpool_str582[sizeof("ANSI_X3.4-1986")];
│ │ │ │ +
466 char stringpool_str583[sizeof("CSUNICODE11UTF7")];
│ │ │ │ +
467 char stringpool_str584[sizeof("JIS_X0208-1983")];
│ │ │ │ +
468 char stringpool_str591[sizeof("ISO_8859-7:1987")];
│ │ │ │ +
469 char stringpool_str594[sizeof("EUCTW")];
│ │ │ │ +
470 char stringpool_str596[sizeof("CSEUCKR")];
│ │ │ │ +
471 char stringpool_str602[sizeof("EUC-TW")];
│ │ │ │ +
472 char stringpool_str605[sizeof("MACCROATIAN")];
│ │ │ │ +
473 char stringpool_str607[sizeof("eucTW")];
│ │ │ │ +
474 char stringpool_str614[sizeof("TIS620.2533-1")];
│ │ │ │ +
475 char stringpool_str617[sizeof("MACGREEK")];
│ │ │ │ +
476 char stringpool_str620[sizeof("UTF-32BE")];
│ │ │ │ +
477 char stringpool_str625[sizeof("MACINTOSH")];
│ │ │ │ +
478 char stringpool_str637[sizeof("UNICODELITTLE")];
│ │ │ │ +
479 char stringpool_str641[sizeof("MS-TURK")];
│ │ │ │ +
480 char stringpool_str645[sizeof("MACUKRAINE")];
│ │ │ │ +
481 char stringpool_str651[sizeof("IBM-CP1133")];
│ │ │ │ +
482 char stringpool_str658[sizeof("MACCENTRALEUROPE")];
│ │ │ │ +
483 char stringpool_str663[sizeof("NEXTSTEP")];
│ │ │ │ +
484 char stringpool_str664[sizeof("TIS620.2533-0")];
│ │ │ │ +
485 char stringpool_str674[sizeof("JIS_X0212.1990-0")];
│ │ │ │ +
486 char stringpool_str697[sizeof("MACARABIC")];
│ │ │ │ +
487 char stringpool_str706[sizeof("UNICODEBIG")];
│ │ │ │ +
488 char stringpool_str723[sizeof("CSPC862LATINHEBREW")];
│ │ │ │ +
489 char stringpool_str748[sizeof("MACCYRILLIC")];
│ │ │ │ +
490 char stringpool_str756[sizeof("WINBALTRIM")];
│ │ │ │ +
491 char stringpool_str758[sizeof("TCVN5712-1:1993")];
│ │ │ │ +
492 char stringpool_str762[sizeof("CSMACINTOSH")];
│ │ │ │ +
493 char stringpool_str788[sizeof("CSHALFWIDTHKATAKANA")];
│ │ │ │ +
494 char stringpool_str884[sizeof("MACHEBREW")];
│ │ │ │ +
495 char stringpool_str899[sizeof("MACTURKISH")];
│ │ │ │ +
496 char stringpool_str905[sizeof("CSPC850MULTILINGUAL")];
│ │ │ │ +
497 char stringpool_str915[sizeof("CSEUCTW")];
│ │ │ │ +
498 char stringpool_str1079[sizeof("CSEUCPKDFMTJAPANESE")];
│ │ │ │ +
499 };
│ │ │ │ +
│ │ │ │ +
500static const struct stringpool_t stringpool_contents =
│ │ │ │ +
501 {
│ │ │ │ +
502 "L1",
│ │ │ │ +
503 "L8",
│ │ │ │ +
504 "L5",
│ │ │ │ +
505 "L6",
│ │ │ │ +
506 "SJIS",
│ │ │ │ +
507 "koi8",
│ │ │ │ +
508 "sjis",
│ │ │ │ +
509 "R8",
│ │ │ │ +
510 "iso81",
│ │ │ │ +
511 "iso88",
│ │ │ │ +
512 "iso15",
│ │ │ │ +
513 "iso85",
│ │ │ │ +
514 "thai8",
│ │ │ │ +
515 "iso89",
│ │ │ │ +
516 "roma8",
│ │ │ │ +
517 "L4",
│ │ │ │ +
518 "utf8",
│ │ │ │ +
519 "866",
│ │ │ │ +
520 "iso815",
│ │ │ │ +
521 "big5",
│ │ │ │ +
522 "roman8",
│ │ │ │ +
523 "L2",
│ │ │ │ +
524 "646",
│ │ │ │ +
525 "iso86",
│ │ │ │ +
526 "iso88591",
│ │ │ │ +
527 "iso88598",
│ │ │ │ +
528 "iso_1",
│ │ │ │ +
529 "iso88595",
│ │ │ │ +
530 "iso88599",
│ │ │ │ +
531 "greek8",
│ │ │ │ +
532 "ISO8859-1",
│ │ │ │ +
533 "L7",
│ │ │ │ +
534 "ISO8859-8",
│ │ │ │ +
535 "iso885915",
│ │ │ │ +
536 "ISO8859-5",
│ │ │ │ +
537 "ISO8859-9",
│ │ │ │ +
538 "ISO-8859-1",
│ │ │ │ +
539 "ISO-8859-8",
│ │ │ │ +
540 "ISO8859-15",
│ │ │ │ +
541 "ISO-8859-5",
│ │ │ │ +
542 "ISO-8859-9",
│ │ │ │ +
543 "iso88596",
│ │ │ │ +
544 "ISO-IR-58",
│ │ │ │ +
545 "ISO-8859-15",
│ │ │ │ +
546 "JAVA",
│ │ │ │ +
547 "L3",
│ │ │ │ +
548 "iso14",
│ │ │ │ +
549 "iso84",
│ │ │ │ +
550 "ISO8859-6",
│ │ │ │ +
551 "ISO-IR-159",
│ │ │ │ +
552 "ISO-IR-199",
│ │ │ │ +
553 "ISO-IR-6",
│ │ │ │ +
554 "ISO-8859-6",
│ │ │ │ +
555 "862",
│ │ │ │ +
556 "HZ",
│ │ │ │ +
557 "iso646",
│ │ │ │ +
558 "ISO-IR-165",
│ │ │ │ +
559 "ISO_8859-1",
│ │ │ │ +
560 "ISO-8859-16",
│ │ │ │ +
561 "ISO_8859-8",
│ │ │ │ +
562 "ISO_8859-5",
│ │ │ │ +
563 "ISO_8859-9",
│ │ │ │ +
564 "JP",
│ │ │ │ +
565 "iso82",
│ │ │ │ +
566 "ISO_8859-15",
│ │ │ │ +
567 "iso88594",
│ │ │ │ +
568 "850",
│ │ │ │ +
569 "ISO-IR-148",
│ │ │ │ +
570 "ISO_8859-15:1998",
│ │ │ │ +
571 "ISO-IR-149",
│ │ │ │ +
572 "ISO-IR-166",
│ │ │ │ +
573 "ISO8859-4",
│ │ │ │ +
574 "ISO_8859-6",
│ │ │ │ +
575 "iso10",
│ │ │ │ +
576 "CN",
│ │ │ │ +
577 "ISO-8859-4",
│ │ │ │ +
578 "ISO_8859-16",
│ │ │ │ +
579 "KOREAN",
│ │ │ │ +
580 "ISO-IR-101",
│ │ │ │ +
581 "ISO-IR-14",
│ │ │ │ +
582 "ISO-8859-14",
│ │ │ │ +
583 "iso88592",
│ │ │ │ +
584 "KOI8-R",
│ │ │ │ +
585 "ISO-IR-109",
│ │ │ │ +
586 "C99",
│ │ │ │ +
587 "iso87",
│ │ │ │ +
588 "ISO_8859-14:1998",
│ │ │ │ +
589 "LATIN1",
│ │ │ │ +
590 "ISO8859-2",
│ │ │ │ +
591 "LATIN8",
│ │ │ │ +
592 "ISO-IR-179",
│ │ │ │ +
593 "LATIN5",
│ │ │ │ +
594 "ISO-IR-126",
│ │ │ │ +
595 "ASCII",
│ │ │ │ +
596 "ISO-8859-2",
│ │ │ │ +
597 "CP819",
│ │ │ │ +
598 "ISO_8859-4",
│ │ │ │ +
599 "TCVN",
│ │ │ │ +
600 "ISO-IR-138",
│ │ │ │ +
601 "hp15CN",
│ │ │ │ +
602 "ISO_8859-14",
│ │ │ │ +
603 "LATIN6",
│ │ │ │ +
604 "iso88597",
│ │ │ │ +
605 "ISO8859-10",
│ │ │ │ +
606 "ISO-IR-144",
│ │ │ │ +
607 "ISO_8859-16:2000",
│ │ │ │ +
608 "ISO8859-7",
│ │ │ │ +
609 "ISO-8859-10",
│ │ │ │ +
610 "iso13",
│ │ │ │ +
611 "iso83",
│ │ │ │ +
612 "ISO_8859-2",
│ │ │ │ +
613 "ISO-IR-110",
│ │ │ │ +
614 "ISO-8859-7",
│ │ │ │ +
615 "CP866",
│ │ │ │ +
616 "CP949",
│ │ │ │ +
617 "tis620",
│ │ │ │ +
618 "VISCII",
│ │ │ │ +
619 "ISO-IR-226",
│ │ │ │ +
620 "US",
│ │ │ │ +
621 "ISO-IR-87",
│ │ │ │ +
622 "ISO-IR-57",
│ │ │ │ +
623 "IBM819",
│ │ │ │ +
624 "macthai",
│ │ │ │ +
625 "MS-ANSI",
│ │ │ │ +
626 "macturk",
│ │ │ │ +
627 "CP1251",
│ │ │ │ +
628 "ISO-IR-157",
│ │ │ │ +
629 "CP1258",
│ │ │ │ +
630 "LATIN4",
│ │ │ │ +
631 "CP1255",
│ │ │ │ +
632 "ISO_8859-10:1992",
│ │ │ │ +
633 "cp866",
│ │ │ │ +
634 "cp949",
│ │ │ │ +
635 "ISO_8859-10",
│ │ │ │ +
636 "iso88593",
│ │ │ │ +
637 "ROMAN8",
│ │ │ │ +
638 "CHINESE",
│ │ │ │ +
639 "JIS0208",
│ │ │ │ +
640 "ISO_8859-7",
│ │ │ │ +
641 "macgreek",
│ │ │ │ +
642 "cp1251",
│ │ │ │ +
643 "ascii_8",
│ │ │ │ +
644 "cp1258",
│ │ │ │ +
645 "ECMA-118",
│ │ │ │ +
646 "cp1255",
│ │ │ │ +
647 "CP1256",
│ │ │ │ +
648 "IBM866",
│ │ │ │ +
649 "ISO-8859-3",
│ │ │ │ +
650 "LATIN2",
│ │ │ │ +
651 "BIG5",
│ │ │ │ +
652 "MULELAO-1",
│ │ │ │ +
653 "MS-EE",
│ │ │ │ +
654 "ISO646-CN",
│ │ │ │ +
655 "ISO-8859-13",
│ │ │ │ +
656 "ISO-IR-100",
│ │ │ │ +
657 "BIG-5",
│ │ │ │ +
658 "ISO-IR-127",
│ │ │ │ +
659 "GREEK8",
│ │ │ │ +
660 "cp1256",
│ │ │ │ +
661 "CP862",
│ │ │ │ +
662 "CP1361",
│ │ │ │ +
663 "GBK",
│ │ │ │ +
664 "ELOT_928",
│ │ │ │ +
665 "CP850",
│ │ │ │ +
666 "CP936",
│ │ │ │ +
667 "CP950",
│ │ │ │ +
668 "ISO_8859-3",
│ │ │ │ +
669 "CP1254",
│ │ │ │ +
670 "LATIN7",
│ │ │ │ +
671 "ISO_8859-13",
│ │ │ │ +
672 "cp862",
│ │ │ │ +
673 "CP874",
│ │ │ │ +
674 "CSKOI8R",
│ │ │ │ +
675 "EUCKR",
│ │ │ │ +
676 "cp850",
│ │ │ │ +
677 "cp936",
│ │ │ │ +
678 "cp950",
│ │ │ │ +
679 "EUC-KR",
│ │ │ │ +
680 "cp1254",
│ │ │ │ +
681 "ECMA-114",
│ │ │ │ +
682 "eucKR",
│ │ │ │ +
683 "CP1252",
│ │ │ │ +
684 "IBM862",
│ │ │ │ +
685 "CSISO159JISX02121990",
│ │ │ │ +
686 "cp874",
│ │ │ │ +
687 "ISO646-JP",
│ │ │ │ +
688 "CSASCII",
│ │ │ │ +
689 "EUCCN",
│ │ │ │ +
690 "UCS-4LE",
│ │ │ │ +
691 "IBM850",
│ │ │ │ +
692 "GREEK",
│ │ │ │ +
693 "ISO646-US",
│ │ │ │ +
694 "EUC-CN",
│ │ │ │ +
695 "TIS620",
│ │ │ │ +
696 "mac",
│ │ │ │ +
697 "LATIN3",
│ │ │ │ +
698 "CP1250",
│ │ │ │ +
699 "cp1252",
│ │ │ │ +
700 "UCS-2LE",
│ │ │ │ +
701 "CSISOLATIN1",
│ │ │ │ +
702 "TIS-620",
│ │ │ │ +
703 "TCVN5712-1",
│ │ │ │ +
704 "CSISOLATIN5",
│ │ │ │ +
705 "GB_1988-80",
│ │ │ │ +
706 "CP932",
│ │ │ │ +
707 "ASMO-708",
│ │ │ │ +
708 "CP1257",
│ │ │ │ +
709 "KOI8-T",
│ │ │ │ +
710 "cp1250",
│ │ │ │ +
711 "HP-ROMAN8",
│ │ │ │ +
712 "MS_KANJI",
│ │ │ │ +
713 "CSVISCII",
│ │ │ │ +
714 "CSISOLATIN6",
│ │ │ │ +
715 "KSC_5601",
│ │ │ │ +
716 "SHIFT-JIS",
│ │ │ │ +
717 "ISO-IR-203",
│ │ │ │ +
718 "cp932",
│ │ │ │ +
719 "JOHAB",
│ │ │ │ +
720 "cp1257",
│ │ │ │ +
721 "ARMSCII-8",
│ │ │ │ +
722 "ISO_646.IRV:1991",
│ │ │ │ +
723 "TCVN-5712",
│ │ │ │ +
724 "EUCJP",
│ │ │ │ +
725 "UTF8",
│ │ │ │ +
726 "X0201",
│ │ │ │ +
727 "GB2312",
│ │ │ │ +
728 "X0208",
│ │ │ │ +
729 "ISO-2022-KR",
│ │ │ │ +
730 "MS-CYRL",
│ │ │ │ +
731 "ISO-2022-JP-1",
│ │ │ │ +
732 "EUC-JP",
│ │ │ │ +
733 "UTF-8",
│ │ │ │ +
734 "VISCII1.1-1",
│ │ │ │ +
735 "CP367",
│ │ │ │ +
736 "CP1253",
│ │ │ │ +
737 "eucJP",
│ │ │ │ +
738 "mac_cyr",
│ │ │ │ +
739 "US-ASCII",
│ │ │ │ +
740 "SHIFT_JIS",
│ │ │ │ +
741 "CSISOLATIN4",
│ │ │ │ +
742 "TIS620-0",
│ │ │ │ +
743 "CSBIG5",
│ │ │ │ +
744 "ISO-2022-CN",
│ │ │ │ +
745 "CP437",
│ │ │ │ +
746 "CN-BIG5",
│ │ │ │ +
747 "cp1253",
│ │ │ │ +
748 "ARABIC",
│ │ │ │ +
749 "X0212",
│ │ │ │ +
750 "CSISO14JISC6220RO",
│ │ │ │ +
751 "GB18030",
│ │ │ │ +
752 "UCS-4BE",
│ │ │ │ +
753 "CSISOLATIN2",
│ │ │ │ +
754 "GEORGIAN-PS",
│ │ │ │ +
755 "KS_C_5601-1989",
│ │ │ │ +
756 "CP1133",
│ │ │ │ +
757 "cp437",
│ │ │ │ +
758 "ISO-2022-JP-2",
│ │ │ │ +
759 "IBM367",
│ │ │ │ +
760 "UCS-2BE",
│ │ │ │ +
761 "UNICODE-1-1",
│ │ │ │ +
762 "JIS_C6220-1969-RO",
│ │ │ │ +
763 "MS-ARAB",
│ │ │ │ +
764 "IBM437",
│ │ │ │ +
765 "MAC",
│ │ │ │ +
766 "UTF-16LE",
│ │ │ │ +
767 "ISO-2022-JP",
│ │ │ │ +
768 "CN-GB-ISOIR165",
│ │ │ │ +
769 "WINDOWS-1251",
│ │ │ │ +
770 "WINDOWS-1258",
│ │ │ │ +
771 "WINDOWS-1255",
│ │ │ │ +
772 "CSISOLATINARABIC",
│ │ │ │ +
773 "MS-HEBR",
│ │ │ │ +
774 "CYRILLIC",
│ │ │ │ +
775 "JIS_C6226-1983",
│ │ │ │ +
776 "WINDOWS-1256",
│ │ │ │ +
777 "KS_C_5601-1987",
│ │ │ │ +
778 "UHC",
│ │ │ │ +
779 "BIGFIVE",
│ │ │ │ +
780 "CN-GB",
│ │ │ │ +
781 "GEORGIAN-ACADEMY",
│ │ │ │ +
782 "BIG-FIVE",
│ │ │ │ +
783 "CSIBM866",
│ │ │ │ +
784 "UTF7",
│ │ │ │ +
785 "WINDOWS-1254",
│ │ │ │ +
786 "CSISOLATIN3",
│ │ │ │ +
787 "UNICODE-1-1-UTF-7",
│ │ │ │ +
788 "CSISO57GB1988",
│ │ │ │ +
789 "UTF-7",
│ │ │ │ +
790 "GB_2312-80",
│ │ │ │ +
791 "CSISO2022KR",
│ │ │ │ +
792 "WINDOWS-1252",
│ │ │ │ +
793 "KOI8-U",
│ │ │ │ +
794 "ISO_8859-8:1988",
│ │ │ │ +
795 "ISO_8859-5:1988",
│ │ │ │ +
796 "ISO_8859-9:1989",
│ │ │ │ +
797 "WINDOWS-1250",
│ │ │ │ +
798 "MACICELAND",
│ │ │ │ +
799 "CSISOLATINGREEK",
│ │ │ │ +
800 "ISO-2022-CN-EXT",
│ │ │ │ +
801 "JIS_X0201",
│ │ │ │ +
802 "JISX0201-1976",
│ │ │ │ +
803 "JIS_X0208",
│ │ │ │ +
804 "WINDOWS-1257",
│ │ │ │ +
805 "CSISO2022CN",
│ │ │ │ +
806 "MS-GREEK",
│ │ │ │ +
807 "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE",
│ │ │ │ +
808 "KOI8-RU",
│ │ │ │ +
809 "TIS620.2529-1",
│ │ │ │ +
810 "MACROMAN",
│ │ │ │ +
811 "WINDOWS-874",
│ │ │ │ +
812 "ISO_8859-4:1988",
│ │ │ │ +
813 "CSKSC56011987",
│ │ │ │ +
814 "WINDOWS-1253",
│ │ │ │ +
815 "UTF-16BE",
│ │ │ │ +
816 "CSISO87JISX0208",
│ │ │ │ +
817 "CSISO2022JP2",
│ │ │ │ +
818 "JIS_X0212",
│ │ │ │ +
819 "MACROMANIA",
│ │ │ │ +
820 "CSUNICODE11",
│ │ │ │ +
821 "MACTHAI",
│ │ │ │ +
822 "UTF-32LE",
│ │ │ │ +
823 "CSHPROMAN8",
│ │ │ │ +
824 "ISO_8859-1:1987",
│ │ │ │ +
825 "BIG5HKSCS",
│ │ │ │ +
826 "ISO_8859-6:1987",
│ │ │ │ +
827 "JIS_X0212-1990",
│ │ │ │ +
828 "CSISO2022JP",
│ │ │ │ +
829 "BIG5-HKSCS",
│ │ │ │ +
830 "CSSHIFTJIS",
│ │ │ │ +
831 "ISO_8859-3:1988",
│ │ │ │ +
832 "JIS_X0208-1990",
│ │ │ │ +
833 "CSISOLATINHEBREW",
│ │ │ │ +
834 "CSISOLATINCYRILLIC",
│ │ │ │ +
835 "ISO-CELTIC",
│ │ │ │ +
836 "HZ-GB-2312",
│ │ │ │ +
837 "ANSI_X3.4-1968",
│ │ │ │ +
838 "HEBREW",
│ │ │ │ +
839 "ISO_8859-2:1987",
│ │ │ │ +
840 "CSISO58GB231280",
│ │ │ │ +
841 "CSGB2312",
│ │ │ │ +
842 "ANSI_X3.4-1986",
│ │ │ │ +
843 "CSUNICODE11UTF7",
│ │ │ │ +
844 "JIS_X0208-1983",
│ │ │ │ +
845 "ISO_8859-7:1987",
│ │ │ │ +
846 "EUCTW",
│ │ │ │ +
847 "CSEUCKR",
│ │ │ │ +
848 "EUC-TW",
│ │ │ │ +
849 "MACCROATIAN",
│ │ │ │ +
850 "eucTW",
│ │ │ │ +
851 "TIS620.2533-1",
│ │ │ │ +
852 "MACGREEK",
│ │ │ │ +
853 "UTF-32BE",
│ │ │ │ +
854 "MACINTOSH",
│ │ │ │ +
855 "UNICODELITTLE",
│ │ │ │ +
856 "MS-TURK",
│ │ │ │ +
857 "MACUKRAINE",
│ │ │ │ +
858 "IBM-CP1133",
│ │ │ │ +
859 "MACCENTRALEUROPE",
│ │ │ │ +
860 "NEXTSTEP",
│ │ │ │ +
861 "TIS620.2533-0",
│ │ │ │ +
862 "JIS_X0212.1990-0",
│ │ │ │ +
863 "MACARABIC",
│ │ │ │ +
864 "UNICODEBIG",
│ │ │ │ +
865 "CSPC862LATINHEBREW",
│ │ │ │ +
866 "MACCYRILLIC",
│ │ │ │ +
867 "WINBALTRIM",
│ │ │ │ +
868 "TCVN5712-1:1993",
│ │ │ │ +
869 "CSMACINTOSH",
│ │ │ │ +
870 "CSHALFWIDTHKATAKANA",
│ │ │ │ +
871 "MACHEBREW",
│ │ │ │ +
872 "MACTURKISH",
│ │ │ │ +
873 "CSPC850MULTILINGUAL",
│ │ │ │ +
874 "CSEUCTW",
│ │ │ │ +
875 "CSEUCPKDFMTJAPANESE"
│ │ │ │ +
876 };
│ │ │ │ +
877#define stringpool ((const char *) &stringpool_contents)
│ │ │ │ +
878const struct charset_alias *
│ │ │ │ +
879charset_lookup (register const char *str, register size_t len)
│ │ │ │ +
880{
│ │ │ │ +
881 static const struct charset_alias wordlist[] =
│ │ │ │ +
882 {
│ │ │ │ +
883 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
884 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
885 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
886#line 228 "charset_lookup.gperf"
│ │ │ │ +
887 {(int)offsetof(struct stringpool_t, stringpool_str15), 0},
│ │ │ │ +
888#line 235 "charset_lookup.gperf"
│ │ │ │ +
889 {(int)offsetof(struct stringpool_t, stringpool_str16), 47},
│ │ │ │ +
890#line 232 "charset_lookup.gperf"
│ │ │ │ +
891 {(int)offsetof(struct stringpool_t, stringpool_str17), 57},
│ │ │ │ +
892 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
893 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
894#line 233 "charset_lookup.gperf"
│ │ │ │ +
895 {(int)offsetof(struct stringpool_t, stringpool_str27), 45},
│ │ │ │ +
896#line 272 "charset_lookup.gperf"
│ │ │ │ +
897 {(int)offsetof(struct stringpool_t, stringpool_str28), 84},
│ │ │ │ +
898 {-1,-1},
│ │ │ │ +
899#line 375 "charset_lookup.gperf"
│ │ │ │ +
900 {(int)offsetof(struct stringpool_t, stringpool_str30), 65},
│ │ │ │ +
901#line 359 "charset_lookup.gperf"
│ │ │ │ +
902 {(int)offsetof(struct stringpool_t, stringpool_str31), 84},
│ │ │ │ +
903 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
904#line 268 "charset_lookup.gperf"
│ │ │ │ +
905 {(int)offsetof(struct stringpool_t, stringpool_str35), 83},
│ │ │ │ +
906#line 337 "charset_lookup.gperf"
│ │ │ │ +
907 {(int)offsetof(struct stringpool_t, stringpool_str36), 0},
│ │ │ │ +
908 {-1,-1},
│ │ │ │ +
909#line 345 "charset_lookup.gperf"
│ │ │ │ +
910 {(int)offsetof(struct stringpool_t, stringpool_str38), 56},
│ │ │ │ +
911#line 372 "charset_lookup.gperf"
│ │ │ │ +
912 {(int)offsetof(struct stringpool_t, stringpool_str39), 48},
│ │ │ │ +
913#line 342 "charset_lookup.gperf"
│ │ │ │ +
914 {(int)offsetof(struct stringpool_t, stringpool_str40), 53},
│ │ │ │ +
915#line 360 "charset_lookup.gperf"
│ │ │ │ +
916 {(int)offsetof(struct stringpool_t, stringpool_str41), 61},
│ │ │ │ +
917#line 356 "charset_lookup.gperf"
│ │ │ │ +
918 {(int)offsetof(struct stringpool_t, stringpool_str42), 57},
│ │ │ │ +
919#line 357 "charset_lookup.gperf"
│ │ │ │ +
920 {(int)offsetof(struct stringpool_t, stringpool_str43), 83},
│ │ │ │ +
921#line 231 "charset_lookup.gperf"
│ │ │ │ +
922 {(int)offsetof(struct stringpool_t, stringpool_str44), 52},
│ │ │ │ +
923#line 362 "charset_lookup.gperf"
│ │ │ │ +
924 {(int)offsetof(struct stringpool_t, stringpool_str45), 1},
│ │ │ │ +
925#line 10 "charset_lookup.gperf"
│ │ │ │ +
926 {(int)offsetof(struct stringpool_t, stringpool_str46), 26},
│ │ │ │ +
927#line 338 "charset_lookup.gperf"
│ │ │ │ +
928 {(int)offsetof(struct stringpool_t, stringpool_str47), 48},
│ │ │ │ +
929#line 318 "charset_lookup.gperf"
│ │ │ │ +
930 {(int)offsetof(struct stringpool_t, stringpool_str48), 5},
│ │ │ │ +
931 {-1,-1},
│ │ │ │ +
932#line 358 "charset_lookup.gperf"
│ │ │ │ +
933 {(int)offsetof(struct stringpool_t, stringpool_str50), 83},
│ │ │ │ +
934 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
935#line 229 "charset_lookup.gperf"
│ │ │ │ +
936 {(int)offsetof(struct stringpool_t, stringpool_str56), 50},
│ │ │ │ +
937#line 7 "charset_lookup.gperf"
│ │ │ │ +
938 {(int)offsetof(struct stringpool_t, stringpool_str57), 88},
│ │ │ │ +
939 {-1,-1}, {-1,-1},
│ │ │ │ +
940#line 343 "charset_lookup.gperf"
│ │ │ │ +
941 {(int)offsetof(struct stringpool_t, stringpool_str60), 54},
│ │ │ │ +
942 {-1,-1}, {-1,-1},
│ │ │ │ +
943#line 346 "charset_lookup.gperf"
│ │ │ │ +
944 {(int)offsetof(struct stringpool_t, stringpool_str63), 0},
│ │ │ │ +
945 {-1,-1},
│ │ │ │ +
946#line 354 "charset_lookup.gperf"
│ │ │ │ +
947 {(int)offsetof(struct stringpool_t, stringpool_str65), 56},
│ │ │ │ +
948#line 374 "charset_lookup.gperf"
│ │ │ │ +
949 {(int)offsetof(struct stringpool_t, stringpool_str66), 0},
│ │ │ │ +
950#line 351 "charset_lookup.gperf"
│ │ │ │ +
951 {(int)offsetof(struct stringpool_t, stringpool_str67), 53},
│ │ │ │ +
952 {-1,-1},
│ │ │ │ +
953#line 355 "charset_lookup.gperf"
│ │ │ │ +
954 {(int)offsetof(struct stringpool_t, stringpool_str69), 57},
│ │ │ │ +
955#line 368 "charset_lookup.gperf"
│ │ │ │ +
956 {(int)offsetof(struct stringpool_t, stringpool_str70), 55},
│ │ │ │ +
957#line 168 "charset_lookup.gperf"
│ │ │ │ +
958 {(int)offsetof(struct stringpool_t, stringpool_str71), 0},
│ │ │ │ +
959#line 234 "charset_lookup.gperf"
│ │ │ │ +
960 {(int)offsetof(struct stringpool_t, stringpool_str72), 46},
│ │ │ │ +
961#line 176 "charset_lookup.gperf"
│ │ │ │ +
962 {(int)offsetof(struct stringpool_t, stringpool_str73), 56},
│ │ │ │ +
963#line 347 "charset_lookup.gperf"
│ │ │ │ +
964 {(int)offsetof(struct stringpool_t, stringpool_str74), 48},
│ │ │ │ +
965#line 173 "charset_lookup.gperf"
│ │ │ │ +
966 {(int)offsetof(struct stringpool_t, stringpool_str75), 53},
│ │ │ │ +
967 {-1,-1},
│ │ │ │ +
968#line 177 "charset_lookup.gperf"
│ │ │ │ +
969 {(int)offsetof(struct stringpool_t, stringpool_str77), 57},
│ │ │ │ +
970 {-1,-1},
│ │ │ │ +
971#line 127 "charset_lookup.gperf"
│ │ │ │ +
972 {(int)offsetof(struct stringpool_t, stringpool_str79), 0},
│ │ │ │ +
973 {-1,-1},
│ │ │ │ +
974#line 139 "charset_lookup.gperf"
│ │ │ │ +
975 {(int)offsetof(struct stringpool_t, stringpool_str81), 56},
│ │ │ │ +
976#line 170 "charset_lookup.gperf"
│ │ │ │ +
977 {(int)offsetof(struct stringpool_t, stringpool_str82), 48},
│ │ │ │ +
978#line 136 "charset_lookup.gperf"
│ │ │ │ +
979 {(int)offsetof(struct stringpool_t, stringpool_str83), 53},
│ │ │ │ +
980 {-1,-1},
│ │ │ │ +
981#line 140 "charset_lookup.gperf"
│ │ │ │ +
982 {(int)offsetof(struct stringpool_t, stringpool_str85), 57},
│ │ │ │ +
983 {-1,-1},
│ │ │ │ +
984#line 352 "charset_lookup.gperf"
│ │ │ │ +
985 {(int)offsetof(struct stringpool_t, stringpool_str87), 54},
│ │ │ │ +
986 {-1,-1},
│ │ │ │ +
987#line 162 "charset_lookup.gperf"
│ │ │ │ +
988 {(int)offsetof(struct stringpool_t, stringpool_str89), 8},
│ │ │ │ +
989#line 131 "charset_lookup.gperf"
│ │ │ │ +
990 {(int)offsetof(struct stringpool_t, stringpool_str90), 48},
│ │ │ │ +
991#line 206 "charset_lookup.gperf"
│ │ │ │ +
992 {(int)offsetof(struct stringpool_t, stringpool_str91), 63},
│ │ │ │ +
993#line 230 "charset_lookup.gperf"
│ │ │ │ +
994 {(int)offsetof(struct stringpool_t, stringpool_str92), 51},
│ │ │ │ +
995#line 371 "charset_lookup.gperf"
│ │ │ │ +
996 {(int)offsetof(struct stringpool_t, stringpool_str93), 47},
│ │ │ │ +
997#line 341 "charset_lookup.gperf"
│ │ │ │ +
998 {(int)offsetof(struct stringpool_t, stringpool_str94), 52},
│ │ │ │ +
999#line 174 "charset_lookup.gperf"
│ │ │ │ +
1000 {(int)offsetof(struct stringpool_t, stringpool_str95), 54},
│ │ │ │ +
1001 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1002#line 154 "charset_lookup.gperf"
│ │ │ │ +
1003 {(int)offsetof(struct stringpool_t, stringpool_str100), 60},
│ │ │ │ +
1004#line 158 "charset_lookup.gperf"
│ │ │ │ +
1005 {(int)offsetof(struct stringpool_t, stringpool_str101), 47},
│ │ │ │ +
1006#line 163 "charset_lookup.gperf"
│ │ │ │ +
1007 {(int)offsetof(struct stringpool_t, stringpool_str102), 88},
│ │ │ │ +
1008#line 137 "charset_lookup.gperf"
│ │ │ │ +
1009 {(int)offsetof(struct stringpool_t, stringpool_str103), 54},
│ │ │ │ +
1010#line 9 "charset_lookup.gperf"
│ │ │ │ +
1011 {(int)offsetof(struct stringpool_t, stringpool_str104), 25},
│ │ │ │ +
1012#line 112 "charset_lookup.gperf"
│ │ │ │ +
1013 {(int)offsetof(struct stringpool_t, stringpool_str105), 38},
│ │ │ │ +
1014 {-1,-1},
│ │ │ │ +
1015#line 373 "charset_lookup.gperf"
│ │ │ │ +
1016 {(int)offsetof(struct stringpool_t, stringpool_str107), 88},
│ │ │ │ +
1017#line 155 "charset_lookup.gperf"
│ │ │ │ +
1018 {(int)offsetof(struct stringpool_t, stringpool_str108), 11},
│ │ │ │ +
1019#line 179 "charset_lookup.gperf"
│ │ │ │ +
1020 {(int)offsetof(struct stringpool_t, stringpool_str109), 0},
│ │ │ │ +
1021#line 132 "charset_lookup.gperf"
│ │ │ │ +
1022 {(int)offsetof(struct stringpool_t, stringpool_str110), 49},
│ │ │ │ +
1023#line 202 "charset_lookup.gperf"
│ │ │ │ +
1024 {(int)offsetof(struct stringpool_t, stringpool_str111), 56},
│ │ │ │ +
1025 {-1,-1},
│ │ │ │ +
1026#line 196 "charset_lookup.gperf"
│ │ │ │ +
1027 {(int)offsetof(struct stringpool_t, stringpool_str113), 53},
│ │ │ │ +
1028 {-1,-1},
│ │ │ │ +
1029#line 204 "charset_lookup.gperf"
│ │ │ │ +
1030 {(int)offsetof(struct stringpool_t, stringpool_str115), 57},
│ │ │ │ +
1031#line 219 "charset_lookup.gperf"
│ │ │ │ +
1032 {(int)offsetof(struct stringpool_t, stringpool_str116), 58},
│ │ │ │ +
1033 {-1,-1},
│ │ │ │ +
1034#line 339 "charset_lookup.gperf"
│ │ │ │ +
1035 {(int)offsetof(struct stringpool_t, stringpool_str118), 50},
│ │ │ │ +
1036 {-1,-1},
│ │ │ │ +
1037#line 185 "charset_lookup.gperf"
│ │ │ │ +
1038 {(int)offsetof(struct stringpool_t, stringpool_str120), 48},
│ │ │ │ +
1039#line 350 "charset_lookup.gperf"
│ │ │ │ +
1040 {(int)offsetof(struct stringpool_t, stringpool_str121), 52},
│ │ │ │ +
1041#line 8 "charset_lookup.gperf"
│ │ │ │ +
1042 {(int)offsetof(struct stringpool_t, stringpool_str122), 24},
│ │ │ │ +
1043#line 151 "charset_lookup.gperf"
│ │ │ │ +
1044 {(int)offsetof(struct stringpool_t, stringpool_str123), 57},
│ │ │ │ +
1045#line 186 "charset_lookup.gperf"
│ │ │ │ +
1046 {(int)offsetof(struct stringpool_t, stringpool_str124), 48},
│ │ │ │ +
1047 {-1,-1}, {-1,-1},
│ │ │ │ +
1048#line 152 "charset_lookup.gperf"
│ │ │ │ +
1049 {(int)offsetof(struct stringpool_t, stringpool_str127), 59},
│ │ │ │ +
1050#line 156 "charset_lookup.gperf"
│ │ │ │ +
1051 {(int)offsetof(struct stringpool_t, stringpool_str128), 61},
│ │ │ │ +
1052#line 172 "charset_lookup.gperf"
│ │ │ │ +
1053 {(int)offsetof(struct stringpool_t, stringpool_str129), 52},
│ │ │ │ +
1054 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1055#line 198 "charset_lookup.gperf"
│ │ │ │ +
1056 {(int)offsetof(struct stringpool_t, stringpool_str133), 54},
│ │ │ │ +
1057 {-1,-1},
│ │ │ │ +
1058#line 369 "charset_lookup.gperf"
│ │ │ │ +
1059 {(int)offsetof(struct stringpool_t, stringpool_str135), 45},
│ │ │ │ +
1060#line 25 "charset_lookup.gperf"
│ │ │ │ +
1061 {(int)offsetof(struct stringpool_t, stringpool_str136), 9},
│ │ │ │ +
1062#line 135 "charset_lookup.gperf"
│ │ │ │ +
1063 {(int)offsetof(struct stringpool_t, stringpool_str137), 52},
│ │ │ │ +
1064 {-1,-1}, {-1,-1},
│ │ │ │ +
1065#line 187 "charset_lookup.gperf"
│ │ │ │ +
1066 {(int)offsetof(struct stringpool_t, stringpool_str140), 49},
│ │ │ │ +
1067#line 224 "charset_lookup.gperf"
│ │ │ │ +
1068 {(int)offsetof(struct stringpool_t, stringpool_str141), 59},
│ │ │ │ +
1069#line 143 "charset_lookup.gperf"
│ │ │ │ +
1070 {(int)offsetof(struct stringpool_t, stringpool_str142), 50},
│ │ │ │ +
1071#line 149 "charset_lookup.gperf"
│ │ │ │ +
1072 {(int)offsetof(struct stringpool_t, stringpool_str143), 58},
│ │ │ │ +
1073#line 130 "charset_lookup.gperf"
│ │ │ │ +
1074 {(int)offsetof(struct stringpool_t, stringpool_str144), 47},
│ │ │ │ +
1075#line 348 "charset_lookup.gperf"
│ │ │ │ +
1076 {(int)offsetof(struct stringpool_t, stringpool_str145), 50},
│ │ │ │ +
1077#line 220 "charset_lookup.gperf"
│ │ │ │ +
1078 {(int)offsetof(struct stringpool_t, stringpool_str146), 65},
│ │ │ │ +
1079 {-1,-1},
│ │ │ │ +
1080#line 144 "charset_lookup.gperf"
│ │ │ │ +
1081 {(int)offsetof(struct stringpool_t, stringpool_str148), 51},
│ │ │ │ +
1082#line 23 "charset_lookup.gperf"
│ │ │ │ +
1083 {(int)offsetof(struct stringpool_t, stringpool_str149), 7},
│ │ │ │ +
1084#line 344 "charset_lookup.gperf"
│ │ │ │ +
1085 {(int)offsetof(struct stringpool_t, stringpool_str150), 55},
│ │ │ │ +
1086#line 184 "charset_lookup.gperf"
│ │ │ │ +
1087 {(int)offsetof(struct stringpool_t, stringpool_str151), 47},
│ │ │ │ +
1088#line 236 "charset_lookup.gperf"
│ │ │ │ +
1089 {(int)offsetof(struct stringpool_t, stringpool_str152), 0},
│ │ │ │ +
1090#line 171 "charset_lookup.gperf"
│ │ │ │ +
1091 {(int)offsetof(struct stringpool_t, stringpool_str153), 50},
│ │ │ │ +
1092#line 243 "charset_lookup.gperf"
│ │ │ │ +
1093 {(int)offsetof(struct stringpool_t, stringpool_str154), 47},
│ │ │ │ +
1094#line 157 "charset_lookup.gperf"
│ │ │ │ +
1095 {(int)offsetof(struct stringpool_t, stringpool_str155), 46},
│ │ │ │ +
1096#line 240 "charset_lookup.gperf"
│ │ │ │ +
1097 {(int)offsetof(struct stringpool_t, stringpool_str156), 57},
│ │ │ │ +
1098#line 146 "charset_lookup.gperf"
│ │ │ │ +
1099 {(int)offsetof(struct stringpool_t, stringpool_str157), 55},
│ │ │ │ +
1100#line 15 "charset_lookup.gperf"
│ │ │ │ +
1101 {(int)offsetof(struct stringpool_t, stringpool_str158), 88},
│ │ │ │ +
1102 {-1,-1}, {-1,-1},
│ │ │ │ +
1103#line 133 "charset_lookup.gperf"
│ │ │ │ +
1104 {(int)offsetof(struct stringpool_t, stringpool_str161), 50},
│ │ │ │ +
1105 {-1,-1}, {-1,-1},
│ │ │ │ +
1106#line 42 "charset_lookup.gperf"
│ │ │ │ +
1107 {(int)offsetof(struct stringpool_t, stringpool_str164), 0},
│ │ │ │ +
1108 {-1,-1}, {-1,-1},
│ │ │ │ +
1109#line 194 "charset_lookup.gperf"
│ │ │ │ +
1110 {(int)offsetof(struct stringpool_t, stringpool_str167), 52},
│ │ │ │ +
1111 {-1,-1}, {-1,-1},
│ │ │ │ +
1112#line 273 "charset_lookup.gperf"
│ │ │ │ +
1113 {(int)offsetof(struct stringpool_t, stringpool_str170), 85},
│ │ │ │ +
1114#line 148 "charset_lookup.gperf"
│ │ │ │ +
1115 {(int)offsetof(struct stringpool_t, stringpool_str171), 56},
│ │ │ │ +
1116 {-1,-1},
│ │ │ │ +
1117#line 336 "charset_lookup.gperf"
│ │ │ │ +
1118 {(int)offsetof(struct stringpool_t, stringpool_str173), 8},
│ │ │ │ +
1119#line 183 "charset_lookup.gperf"
│ │ │ │ +
1120 {(int)offsetof(struct stringpool_t, stringpool_str174), 47},
│ │ │ │ +
1121 {-1,-1},
│ │ │ │ +
1122#line 241 "charset_lookup.gperf"
│ │ │ │ +
1123 {(int)offsetof(struct stringpool_t, stringpool_str176), 45},
│ │ │ │ +
1124#line 353 "charset_lookup.gperf"
│ │ │ │ +
1125 {(int)offsetof(struct stringpool_t, stringpool_str177), 55},
│ │ │ │ +
1126#line 169 "charset_lookup.gperf"
│ │ │ │ +
1127 {(int)offsetof(struct stringpool_t, stringpool_str178), 45},
│ │ │ │ +
1128#line 150 "charset_lookup.gperf"
│ │ │ │ +
1129 {(int)offsetof(struct stringpool_t, stringpool_str179), 53},
│ │ │ │ +
1130 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1131#line 188 "charset_lookup.gperf"
│ │ │ │ +
1132 {(int)offsetof(struct stringpool_t, stringpool_str183), 49},
│ │ │ │ +
1133 {-1,-1},
│ │ │ │ +
1134#line 175 "charset_lookup.gperf"
│ │ │ │ +
1135 {(int)offsetof(struct stringpool_t, stringpool_str185), 55},
│ │ │ │ +
1136#line 128 "charset_lookup.gperf"
│ │ │ │ +
1137 {(int)offsetof(struct stringpool_t, stringpool_str186), 45},
│ │ │ │ +
1138 {-1,-1}, {-1,-1},
│ │ │ │ +
1139#line 370 "charset_lookup.gperf"
│ │ │ │ +
1140 {(int)offsetof(struct stringpool_t, stringpool_str189), 46},
│ │ │ │ +
1141#line 340 "charset_lookup.gperf"
│ │ │ │ +
1142 {(int)offsetof(struct stringpool_t, stringpool_str190), 51},
│ │ │ │ +
1143#line 190 "charset_lookup.gperf"
│ │ │ │ +
1144 {(int)offsetof(struct stringpool_t, stringpool_str191), 50},
│ │ │ │ +
1145#line 145 "charset_lookup.gperf"
│ │ │ │ +
1146 {(int)offsetof(struct stringpool_t, stringpool_str192), 52},
│ │ │ │ +
1147#line 138 "charset_lookup.gperf"
│ │ │ │ +
1148 {(int)offsetof(struct stringpool_t, stringpool_str193), 55},
│ │ │ │ +
1149#line 45 "charset_lookup.gperf"
│ │ │ │ +
1150 {(int)offsetof(struct stringpool_t, stringpool_str194), 26},
│ │ │ │ +
1151#line 49 "charset_lookup.gperf"
│ │ │ │ +
1152 {(int)offsetof(struct stringpool_t, stringpool_str195), 30},
│ │ │ │ +
1153#line 361 "charset_lookup.gperf"
│ │ │ │ +
1154 {(int)offsetof(struct stringpool_t, stringpool_str196), 61},
│ │ │ │ +
1155#line 302 "charset_lookup.gperf"
│ │ │ │ +
1156 {(int)offsetof(struct stringpool_t, stringpool_str197), 94},
│ │ │ │ +
1157#line 160 "charset_lookup.gperf"
│ │ │ │ +
1158 {(int)offsetof(struct stringpool_t, stringpool_str198), 49},
│ │ │ │ +
1159#line 292 "charset_lookup.gperf"
│ │ │ │ +
1160 {(int)offsetof(struct stringpool_t, stringpool_str199), 88},
│ │ │ │ +
1161#line 164 "charset_lookup.gperf"
│ │ │ │ +
1162 {(int)offsetof(struct stringpool_t, stringpool_str200), 62},
│ │ │ │ +
1163#line 161 "charset_lookup.gperf"
│ │ │ │ +
1164 {(int)offsetof(struct stringpool_t, stringpool_str201), 9},
│ │ │ │ +
1165#line 117 "charset_lookup.gperf"
│ │ │ │ +
1166 {(int)offsetof(struct stringpool_t, stringpool_str202), 0},
│ │ │ │ +
1167#line 379 "charset_lookup.gperf"
│ │ │ │ +
1168 {(int)offsetof(struct stringpool_t, stringpool_str203), 78},
│ │ │ │ +
1169#line 258 "charset_lookup.gperf"
│ │ │ │ +
1170 {(int)offsetof(struct stringpool_t, stringpool_str204), 15},
│ │ │ │ +
1171#line 380 "charset_lookup.gperf"
│ │ │ │ +
1172 {(int)offsetof(struct stringpool_t, stringpool_str205), 79},
│ │ │ │ +
1173 {-1,-1},
│ │ │ │ +
1174#line 31 "charset_lookup.gperf"
│ │ │ │ +
1175 {(int)offsetof(struct stringpool_t, stringpool_str207), 14},
│ │ │ │ +
1176#line 153 "charset_lookup.gperf"
│ │ │ │ +
1177 {(int)offsetof(struct stringpool_t, stringpool_str208), 45},
│ │ │ │ +
1178#line 38 "charset_lookup.gperf"
│ │ │ │ +
1179 {(int)offsetof(struct stringpool_t, stringpool_str209), 21},
│ │ │ │ +
1180#line 239 "charset_lookup.gperf"
│ │ │ │ +
1181 {(int)offsetof(struct stringpool_t, stringpool_str210), 52},
│ │ │ │ +
1182#line 35 "charset_lookup.gperf"
│ │ │ │ +
1183 {(int)offsetof(struct stringpool_t, stringpool_str211), 18},
│ │ │ │ +
1184#line 181 "charset_lookup.gperf"
│ │ │ │ +
1185 {(int)offsetof(struct stringpool_t, stringpool_str212), 45},
│ │ │ │ +
1186#line 331 "charset_lookup.gperf"
│ │ │ │ +
1187 {(int)offsetof(struct stringpool_t, stringpool_str213), 26},
│ │ │ │ +
1188#line 366 "charset_lookup.gperf"
│ │ │ │ +
1189 {(int)offsetof(struct stringpool_t, stringpool_str214), 30},
│ │ │ │ +
1190 {-1,-1},
│ │ │ │ +
1191#line 180 "charset_lookup.gperf"
│ │ │ │ +
1192 {(int)offsetof(struct stringpool_t, stringpool_str216), 45},
│ │ │ │ +
1193#line 349 "charset_lookup.gperf"
│ │ │ │ +
1194 {(int)offsetof(struct stringpool_t, stringpool_str217), 51},
│ │ │ │ +
1195#line 269 "charset_lookup.gperf"
│ │ │ │ +
1196 {(int)offsetof(struct stringpool_t, stringpool_str218), 83},
│ │ │ │ +
1197#line 24 "charset_lookup.gperf"
│ │ │ │ +
1198 {(int)offsetof(struct stringpool_t, stringpool_str219), 8},
│ │ │ │ +
1199#line 207 "charset_lookup.gperf"
│ │ │ │ +
1200 {(int)offsetof(struct stringpool_t, stringpool_str220), 62},
│ │ │ │ +
1201 {-1,-1}, {-1,-1},
│ │ │ │ +
1202#line 200 "charset_lookup.gperf"
│ │ │ │ +
1203 {(int)offsetof(struct stringpool_t, stringpool_str223), 55},
│ │ │ │ +
1204 {-1,-1},
│ │ │ │ +
1205#line 378 "charset_lookup.gperf"
│ │ │ │ +
1206 {(int)offsetof(struct stringpool_t, stringpool_str225), 74},
│ │ │ │ +
1207#line 320 "charset_lookup.gperf"
│ │ │ │ +
1208 {(int)offsetof(struct stringpool_t, stringpool_str226), 14},
│ │ │ │ +
1209#line 363 "charset_lookup.gperf"
│ │ │ │ +
1210 {(int)offsetof(struct stringpool_t, stringpool_str227), 0},
│ │ │ │ +
1211#line 327 "charset_lookup.gperf"
│ │ │ │ +
1212 {(int)offsetof(struct stringpool_t, stringpool_str228), 21},
│ │ │ │ +
1213#line 90 "charset_lookup.gperf"
│ │ │ │ +
1214 {(int)offsetof(struct stringpool_t, stringpool_str229), 55},
│ │ │ │ +
1215#line 324 "charset_lookup.gperf"
│ │ │ │ +
1216 {(int)offsetof(struct stringpool_t, stringpool_str230), 18},
│ │ │ │ +
1217#line 36 "charset_lookup.gperf"
│ │ │ │ +
1218 {(int)offsetof(struct stringpool_t, stringpool_str231), 19},
│ │ │ │ +
1219#line 120 "charset_lookup.gperf"
│ │ │ │ +
1220 {(int)offsetof(struct stringpool_t, stringpool_str232), 26},
│ │ │ │ +
1221#line 134 "charset_lookup.gperf"
│ │ │ │ +
1222 {(int)offsetof(struct stringpool_t, stringpool_str233), 51},
│ │ │ │ +
1223#line 237 "charset_lookup.gperf"
│ │ │ │ +
1224 {(int)offsetof(struct stringpool_t, stringpool_str234), 50},
│ │ │ │ +
1225#line 19 "charset_lookup.gperf"
│ │ │ │ +
1226 {(int)offsetof(struct stringpool_t, stringpool_str235), 5},
│ │ │ │ +
1227#line 266 "charset_lookup.gperf"
│ │ │ │ +
1228 {(int)offsetof(struct stringpool_t, stringpool_str236), 81},
│ │ │ │ +
1229#line 261 "charset_lookup.gperf"
│ │ │ │ +
1230 {(int)offsetof(struct stringpool_t, stringpool_str237), 13},
│ │ │ │ +
1231 {-1,-1},
│ │ │ │ +
1232#line 165 "charset_lookup.gperf"
│ │ │ │ +
1233 {(int)offsetof(struct stringpool_t, stringpool_str239), 9},
│ │ │ │ +
1234#line 129 "charset_lookup.gperf"
│ │ │ │ +
1235 {(int)offsetof(struct stringpool_t, stringpool_str240), 46},
│ │ │ │ +
1236 {-1,-1},
│ │ │ │ +
1237#line 142 "charset_lookup.gperf"
│ │ │ │ +
1238 {(int)offsetof(struct stringpool_t, stringpool_str242), 0},
│ │ │ │ +
1239#line 17 "charset_lookup.gperf"
│ │ │ │ +
1240 {(int)offsetof(struct stringpool_t, stringpool_str243), 5},
│ │ │ │ +
1241 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1242#line 147 "charset_lookup.gperf"
│ │ │ │ +
1243 {(int)offsetof(struct stringpool_t, stringpool_str247), 54},
│ │ │ │ +
1244#line 109 "charset_lookup.gperf"
│ │ │ │ +
1245 {(int)offsetof(struct stringpool_t, stringpool_str248), 55},
│ │ │ │ +
1246 {-1,-1},
│ │ │ │ +
1247#line 325 "charset_lookup.gperf"
│ │ │ │ +
1248 {(int)offsetof(struct stringpool_t, stringpool_str250), 19},
│ │ │ │ +
1249 {-1,-1},
│ │ │ │ +
1250#line 44 "charset_lookup.gperf"
│ │ │ │ +
1251 {(int)offsetof(struct stringpool_t, stringpool_str252), 25},
│ │ │ │ +
1252#line 39 "charset_lookup.gperf"
│ │ │ │ +
1253 {(int)offsetof(struct stringpool_t, stringpool_str253), 22},
│ │ │ │ +
1254 {-1,-1},
│ │ │ │ +
1255#line 103 "charset_lookup.gperf"
│ │ │ │ +
1256 {(int)offsetof(struct stringpool_t, stringpool_str255), 29},
│ │ │ │ +
1257 {-1,-1}, {-1,-1},
│ │ │ │ +
1258#line 91 "charset_lookup.gperf"
│ │ │ │ +
1259 {(int)offsetof(struct stringpool_t, stringpool_str258), 55},
│ │ │ │ +
1260 {-1,-1},
│ │ │ │ +
1261#line 43 "charset_lookup.gperf"
│ │ │ │ +
1262 {(int)offsetof(struct stringpool_t, stringpool_str260), 24},
│ │ │ │ +
1263#line 48 "charset_lookup.gperf"
│ │ │ │ +
1264 {(int)offsetof(struct stringpool_t, stringpool_str261), 29},
│ │ │ │ +
1265#line 50 "charset_lookup.gperf"
│ │ │ │ +
1266 {(int)offsetof(struct stringpool_t, stringpool_str262), 31},
│ │ │ │ +
1267#line 192 "charset_lookup.gperf"
│ │ │ │ +
1268 {(int)offsetof(struct stringpool_t, stringpool_str263), 51},
│ │ │ │ +
1269 {-1,-1},
│ │ │ │ +
1270#line 34 "charset_lookup.gperf"
│ │ │ │ +
1271 {(int)offsetof(struct stringpool_t, stringpool_str265), 17},
│ │ │ │ +
1272#line 242 "charset_lookup.gperf"
│ │ │ │ +
1273 {(int)offsetof(struct stringpool_t, stringpool_str266), 46},
│ │ │ │ +
1274 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1275#line 182 "charset_lookup.gperf"
│ │ │ │ +
1276 {(int)offsetof(struct stringpool_t, stringpool_str270), 46},
│ │ │ │ +
1277#line 330 "charset_lookup.gperf"
│ │ │ │ +
1278 {(int)offsetof(struct stringpool_t, stringpool_str271), 25},
│ │ │ │ +
1279 {-1,-1},
│ │ │ │ +
1280#line 46 "charset_lookup.gperf"
│ │ │ │ +
1281 {(int)offsetof(struct stringpool_t, stringpool_str273), 27},
│ │ │ │ +
1282#line 79 "charset_lookup.gperf"
│ │ │ │ +
1283 {(int)offsetof(struct stringpool_t, stringpool_str274), 65},
│ │ │ │ +
1284#line 98 "charset_lookup.gperf"
│ │ │ │ +
1285 {(int)offsetof(struct stringpool_t, stringpool_str275), 33},
│ │ │ │ +
1286 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1287#line 329 "charset_lookup.gperf"
│ │ │ │ +
1288 {(int)offsetof(struct stringpool_t, stringpool_str279), 24},
│ │ │ │ +
1289#line 365 "charset_lookup.gperf"
│ │ │ │ +
1290 {(int)offsetof(struct stringpool_t, stringpool_str280), 29},
│ │ │ │ +
1291#line 367 "charset_lookup.gperf"
│ │ │ │ +
1292 {(int)offsetof(struct stringpool_t, stringpool_str281), 31},
│ │ │ │ +
1293 {-1,-1},
│ │ │ │ +
1294#line 94 "charset_lookup.gperf"
│ │ │ │ +
1295 {(int)offsetof(struct stringpool_t, stringpool_str283), 33},
│ │ │ │ +
1296#line 323 "charset_lookup.gperf"
│ │ │ │ +
1297 {(int)offsetof(struct stringpool_t, stringpool_str284), 17},
│ │ │ │ +
1298#line 89 "charset_lookup.gperf"
│ │ │ │ +
1299 {(int)offsetof(struct stringpool_t, stringpool_str285), 54},
│ │ │ │ +
1300 {-1,-1}, {-1,-1},
│ │ │ │ +
1301#line 334 "charset_lookup.gperf"
│ │ │ │ +
1302 {(int)offsetof(struct stringpool_t, stringpool_str288), 33},
│ │ │ │ +
1303#line 32 "charset_lookup.gperf"
│ │ │ │ +
1304 {(int)offsetof(struct stringpool_t, stringpool_str289), 15},
│ │ │ │ +
1305#line 119 "charset_lookup.gperf"
│ │ │ │ +
1306 {(int)offsetof(struct stringpool_t, stringpool_str290), 25},
│ │ │ │ +
1307#line 61 "charset_lookup.gperf"
│ │ │ │ +
1308 {(int)offsetof(struct stringpool_t, stringpool_str291), 60},
│ │ │ │ +
1309#line 332 "charset_lookup.gperf"
│ │ │ │ +
1310 {(int)offsetof(struct stringpool_t, stringpool_str292), 27},
│ │ │ │ +
1311#line 166 "charset_lookup.gperf"
│ │ │ │ +
1312 {(int)offsetof(struct stringpool_t, stringpool_str293), 58},
│ │ │ │ +
1313#line 51 "charset_lookup.gperf"
│ │ │ │ +
1314 {(int)offsetof(struct stringpool_t, stringpool_str294), 88},
│ │ │ │ +
1315#line 96 "charset_lookup.gperf"
│ │ │ │ +
1316 {(int)offsetof(struct stringpool_t, stringpool_str295), 10},
│ │ │ │ +
1317 {-1,-1},
│ │ │ │ +
1318#line 286 "charset_lookup.gperf"
│ │ │ │ +
1319 {(int)offsetof(struct stringpool_t, stringpool_str297), 87},
│ │ │ │ +
1320#line 118 "charset_lookup.gperf"
│ │ │ │ +
1321 {(int)offsetof(struct stringpool_t, stringpool_str298), 24},
│ │ │ │ +
1322 {-1,-1}, {-1,-1},
│ │ │ │ +
1323#line 108 "charset_lookup.gperf"
│ │ │ │ +
1324 {(int)offsetof(struct stringpool_t, stringpool_str301), 55},
│ │ │ │ +
1325#line 167 "charset_lookup.gperf"
│ │ │ │ +
1326 {(int)offsetof(struct stringpool_t, stringpool_str302), 88},
│ │ │ │ +
1327#line 92 "charset_lookup.gperf"
│ │ │ │ +
1328 {(int)offsetof(struct stringpool_t, stringpool_str303), 10},
│ │ │ │ +
1329#line 278 "charset_lookup.gperf"
│ │ │ │ +
1330 {(int)offsetof(struct stringpool_t, stringpool_str304), 61},
│ │ │ │ +
1331#line 376 "charset_lookup.gperf"
│ │ │ │ +
1332 {(int)offsetof(struct stringpool_t, stringpool_str305), 69},
│ │ │ │ +
1333#line 238 "charset_lookup.gperf"
│ │ │ │ +
1334 {(int)offsetof(struct stringpool_t, stringpool_str306), 51},
│ │ │ │ +
1335#line 30 "charset_lookup.gperf"
│ │ │ │ +
1336 {(int)offsetof(struct stringpool_t, stringpool_str307), 13},
│ │ │ │ +
1337#line 321 "charset_lookup.gperf"
│ │ │ │ +
1338 {(int)offsetof(struct stringpool_t, stringpool_str308), 15},
│ │ │ │ +
1339#line 284 "charset_lookup.gperf"
│ │ │ │ +
1340 {(int)offsetof(struct stringpool_t, stringpool_str309), 2},
│ │ │ │ +
1341#line 69 "charset_lookup.gperf"
│ │ │ │ +
1342 {(int)offsetof(struct stringpool_t, stringpool_str310), 0},
│ │ │ │ +
1343 {-1,-1},
│ │ │ │ +
1344#line 277 "charset_lookup.gperf"
│ │ │ │ +
1345 {(int)offsetof(struct stringpool_t, stringpool_str312), 61},
│ │ │ │ +
1346#line 275 "charset_lookup.gperf"
│ │ │ │ +
1347 {(int)offsetof(struct stringpool_t, stringpool_str313), 85},
│ │ │ │ +
1348#line 73 "charset_lookup.gperf"
│ │ │ │ +
1349 {(int)offsetof(struct stringpool_t, stringpool_str314), 57},
│ │ │ │ +
1350 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1351#line 104 "charset_lookup.gperf"
│ │ │ │ +
1352 {(int)offsetof(struct stringpool_t, stringpool_str318), 9},
│ │ │ │ +
1353#line 47 "charset_lookup.gperf"
│ │ │ │ +
1354 {(int)offsetof(struct stringpool_t, stringpool_str319), 28},
│ │ │ │ +
1355#line 16 "charset_lookup.gperf"
│ │ │ │ +
1356 {(int)offsetof(struct stringpool_t, stringpool_str320), 54},
│ │ │ │ +
1357#line 37 "charset_lookup.gperf"
│ │ │ │ +
1358 {(int)offsetof(struct stringpool_t, stringpool_str321), 20},
│ │ │ │ +
1359 {-1,-1}, {-1,-1},
│ │ │ │ +
1360#line 222 "charset_lookup.gperf"
│ │ │ │ +
1361 {(int)offsetof(struct stringpool_t, stringpool_str324), 67},
│ │ │ │ +
1362 {-1,-1},
│ │ │ │ +
1363#line 319 "charset_lookup.gperf"
│ │ │ │ +
1364 {(int)offsetof(struct stringpool_t, stringpool_str326), 13},
│ │ │ │ +
1365 {-1,-1}, {-1,-1},
│ │ │ │ +
1366#line 111 "charset_lookup.gperf"
│ │ │ │ +
1367 {(int)offsetof(struct stringpool_t, stringpool_str329), 83},
│ │ │ │ +
1368 {-1,-1},
│ │ │ │ +
1369#line 265 "charset_lookup.gperf"
│ │ │ │ +
1370 {(int)offsetof(struct stringpool_t, stringpool_str331), 84},
│ │ │ │ +
1371 {-1,-1},
│ │ │ │ +
1372#line 87 "charset_lookup.gperf"
│ │ │ │ +
1373 {(int)offsetof(struct stringpool_t, stringpool_str333), 94},
│ │ │ │ +
1374#line 74 "charset_lookup.gperf"
│ │ │ │ +
1375 {(int)offsetof(struct stringpool_t, stringpool_str334), 45},
│ │ │ │ +
1376#line 225 "charset_lookup.gperf"
│ │ │ │ +
1377 {(int)offsetof(struct stringpool_t, stringpool_str335), 59},
│ │ │ │ +
1378#line 270 "charset_lookup.gperf"
│ │ │ │ +
1379 {(int)offsetof(struct stringpool_t, stringpool_str336), 84},
│ │ │ │ +
1380#line 159 "charset_lookup.gperf"
│ │ │ │ +
1381 {(int)offsetof(struct stringpool_t, stringpool_str337), 48},
│ │ │ │ +
1382#line 364 "charset_lookup.gperf"
│ │ │ │ +
1383 {(int)offsetof(struct stringpool_t, stringpool_str338), 28},
│ │ │ │ +
1384#line 218 "charset_lookup.gperf"
│ │ │ │ +
1385 {(int)offsetof(struct stringpool_t, stringpool_str339), 22},
│ │ │ │ +
1386#line 326 "charset_lookup.gperf"
│ │ │ │ +
1387 {(int)offsetof(struct stringpool_t, stringpool_str340), 20},
│ │ │ │ +
1388 {-1,-1},
│ │ │ │ +
1389#line 14 "charset_lookup.gperf"
│ │ │ │ +
1390 {(int)offsetof(struct stringpool_t, stringpool_str342), 4},
│ │ │ │ +
1391 {-1,-1}, {-1,-1},
│ │ │ │ +
1392#line 178 "charset_lookup.gperf"
│ │ │ │ +
1393 {(int)offsetof(struct stringpool_t, stringpool_str345), 88},
│ │ │ │ +
1394 {-1,-1},
│ │ │ │ +
1395#line 274 "charset_lookup.gperf"
│ │ │ │ +
1396 {(int)offsetof(struct stringpool_t, stringpool_str347), 85},
│ │ │ │ +
1397 {-1,-1},
│ │ │ │ +
1398#line 97 "charset_lookup.gperf"
│ │ │ │ +
1399 {(int)offsetof(struct stringpool_t, stringpool_str349), 32},
│ │ │ │ +
1400#line 301 "charset_lookup.gperf"
│ │ │ │ +
1401 {(int)offsetof(struct stringpool_t, stringpool_str350), 1},
│ │ │ │ +
1402#line 315 "charset_lookup.gperf"
│ │ │ │ +
1403 {(int)offsetof(struct stringpool_t, stringpool_str351), 64},
│ │ │ │ +
1404#line 102 "charset_lookup.gperf"
│ │ │ │ +
1405 {(int)offsetof(struct stringpool_t, stringpool_str352), 10},
│ │ │ │ +
1406#line 316 "charset_lookup.gperf"
│ │ │ │ +
1407 {(int)offsetof(struct stringpool_t, stringpool_str353), 62},
│ │ │ │ +
1408#line 126 "charset_lookup.gperf"
│ │ │ │ +
1409 {(int)offsetof(struct stringpool_t, stringpool_str354), 44},
│ │ │ │ +
1410#line 260 "charset_lookup.gperf"
│ │ │ │ +
1411 {(int)offsetof(struct stringpool_t, stringpool_str355), 14},
│ │ │ │ +
1412#line 124 "charset_lookup.gperf"
│ │ │ │ +
1413 {(int)offsetof(struct stringpool_t, stringpool_str356), 42},
│ │ │ │ +
1414#line 93 "charset_lookup.gperf"
│ │ │ │ +
1415 {(int)offsetof(struct stringpool_t, stringpool_str357), 32},
│ │ │ │ +
1416#line 299 "charset_lookup.gperf"
│ │ │ │ +
1417 {(int)offsetof(struct stringpool_t, stringpool_str358), 1},
│ │ │ │ +
1418#line 303 "charset_lookup.gperf"
│ │ │ │ +
1419 {(int)offsetof(struct stringpool_t, stringpool_str359), 94},
│ │ │ │ +
1420#line 40 "charset_lookup.gperf"
│ │ │ │ +
1421 {(int)offsetof(struct stringpool_t, stringpool_str360), 88},
│ │ │ │ +
1422#line 33 "charset_lookup.gperf"
│ │ │ │ +
1423 {(int)offsetof(struct stringpool_t, stringpool_str361), 16},
│ │ │ │ +
1424#line 333 "charset_lookup.gperf"
│ │ │ │ +
1425 {(int)offsetof(struct stringpool_t, stringpool_str362), 32},
│ │ │ │ +
1426 {-1,-1},
│ │ │ │ +
1427#line 377 "charset_lookup.gperf"
│ │ │ │ +
1428 {(int)offsetof(struct stringpool_t, stringpool_str364), 73},
│ │ │ │ +
1429#line 293 "charset_lookup.gperf"
│ │ │ │ +
1430 {(int)offsetof(struct stringpool_t, stringpool_str365), 88},
│ │ │ │ +
1431#line 271 "charset_lookup.gperf"
│ │ │ │ +
1432 {(int)offsetof(struct stringpool_t, stringpool_str366), 84},
│ │ │ │ +
1433 {-1,-1},
│ │ │ │ +
1434#line 72 "charset_lookup.gperf"
│ │ │ │ +
1435 {(int)offsetof(struct stringpool_t, stringpool_str368), 52},
│ │ │ │ +
1436#line 279 "charset_lookup.gperf"
│ │ │ │ +
1437 {(int)offsetof(struct stringpool_t, stringpool_str369), 61},
│ │ │ │ +
1438 {-1,-1},
│ │ │ │ +
1439#line 52 "charset_lookup.gperf"
│ │ │ │ +
1440 {(int)offsetof(struct stringpool_t, stringpool_str371), 5},
│ │ │ │ +
1441 {-1,-1}, {-1,-1},
│ │ │ │ +
1442#line 121 "charset_lookup.gperf"
│ │ │ │ +
1443 {(int)offsetof(struct stringpool_t, stringpool_str374), 39},
│ │ │ │ +
1444 {-1,-1}, {-1,-1},
│ │ │ │ +
1445#line 41 "charset_lookup.gperf"
│ │ │ │ +
1446 {(int)offsetof(struct stringpool_t, stringpool_str377), 23},
│ │ │ │ +
1447 {-1,-1},
│ │ │ │ +
1448#line 26 "charset_lookup.gperf"
│ │ │ │ +
1449 {(int)offsetof(struct stringpool_t, stringpool_str379), 5},
│ │ │ │ +
1450#line 322 "charset_lookup.gperf"
│ │ │ │ +
1451 {(int)offsetof(struct stringpool_t, stringpool_str380), 16},
│ │ │ │ +
1452#line 13 "charset_lookup.gperf"
│ │ │ │ +
1453 {(int)offsetof(struct stringpool_t, stringpool_str381), 54},
│ │ │ │ +
1454 {-1,-1},
│ │ │ │ +
1455#line 317 "charset_lookup.gperf"
│ │ │ │ +
1456 {(int)offsetof(struct stringpool_t, stringpool_str383), 60},
│ │ │ │ +
1457#line 60 "charset_lookup.gperf"
│ │ │ │ +
1458 {(int)offsetof(struct stringpool_t, stringpool_str384), 58},
│ │ │ │ +
1459 {-1,-1}, {-1,-1},
│ │ │ │ +
1460#line 101 "charset_lookup.gperf"
│ │ │ │ +
1461 {(int)offsetof(struct stringpool_t, stringpool_str387), 35},
│ │ │ │ +
1462 {-1,-1},
│ │ │ │ +
1463#line 285 "charset_lookup.gperf"
│ │ │ │ +
1464 {(int)offsetof(struct stringpool_t, stringpool_str389), 86},
│ │ │ │ +
1465 {-1,-1}, {-1,-1},
│ │ │ │ +
1466#line 70 "charset_lookup.gperf"
│ │ │ │ +
1467 {(int)offsetof(struct stringpool_t, stringpool_str392), 50},
│ │ │ │ +
1468#line 107 "charset_lookup.gperf"
│ │ │ │ +
1469 {(int)offsetof(struct stringpool_t, stringpool_str393), 37},
│ │ │ │ +
1470#line 227 "charset_lookup.gperf"
│ │ │ │ +
1471 {(int)offsetof(struct stringpool_t, stringpool_str394), 59},
│ │ │ │ +
1472#line 29 "charset_lookup.gperf"
│ │ │ │ +
1473 {(int)offsetof(struct stringpool_t, stringpool_str395), 12},
│ │ │ │ +
1474#line 328 "charset_lookup.gperf"
│ │ │ │ +
1475 {(int)offsetof(struct stringpool_t, stringpool_str396), 23},
│ │ │ │ +
1476#line 125 "charset_lookup.gperf"
│ │ │ │ +
1477 {(int)offsetof(struct stringpool_t, stringpool_str397), 43},
│ │ │ │ +
1478#line 115 "charset_lookup.gperf"
│ │ │ │ +
1479 {(int)offsetof(struct stringpool_t, stringpool_str398), 88},
│ │ │ │ +
1480 {-1,-1}, {-1,-1},
│ │ │ │ +
1481#line 283 "charset_lookup.gperf"
│ │ │ │ +
1482 {(int)offsetof(struct stringpool_t, stringpool_str401), 3},
│ │ │ │ +
1483#line 288 "charset_lookup.gperf"
│ │ │ │ +
1484 {(int)offsetof(struct stringpool_t, stringpool_str402), 3},
│ │ │ │ +
1485 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1486#line 209 "charset_lookup.gperf"
│ │ │ │ +
1487 {(int)offsetof(struct stringpool_t, stringpool_str409), 58},
│ │ │ │ +
1488 {-1,-1},
│ │ │ │ +
1489#line 259 "charset_lookup.gperf"
│ │ │ │ +
1490 {(int)offsetof(struct stringpool_t, stringpool_str411), 19},
│ │ │ │ +
1491 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1492#line 116 "charset_lookup.gperf"
│ │ │ │ +
1493 {(int)offsetof(struct stringpool_t, stringpool_str415), 23},
│ │ │ │ +
1494 {-1,-1}, {-1,-1},
│ │ │ │ +
1495#line 244 "charset_lookup.gperf"
│ │ │ │ +
1496 {(int)offsetof(struct stringpool_t, stringpool_str418), 69},
│ │ │ │ +
1497 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1498#line 295 "charset_lookup.gperf"
│ │ │ │ +
1499 {(int)offsetof(struct stringpool_t, stringpool_str422), 90},
│ │ │ │ +
1500 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1501#line 123 "charset_lookup.gperf"
│ │ │ │ +
1502 {(int)offsetof(struct stringpool_t, stringpool_str428), 41},
│ │ │ │ +
1503#line 28 "charset_lookup.gperf"
│ │ │ │ +
1504 {(int)offsetof(struct stringpool_t, stringpool_str429), 11},
│ │ │ │ +
1505 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1506#line 306 "charset_lookup.gperf"
│ │ │ │ +
1507 {(int)offsetof(struct stringpool_t, stringpool_str434), 14},
│ │ │ │ +
1508#line 313 "charset_lookup.gperf"
│ │ │ │ +
1509 {(int)offsetof(struct stringpool_t, stringpool_str435), 21},
│ │ │ │ +
1510#line 310 "charset_lookup.gperf"
│ │ │ │ +
1511 {(int)offsetof(struct stringpool_t, stringpool_str436), 18},
│ │ │ │ +
1512 {-1,-1},
│ │ │ │ +
1513#line 75 "charset_lookup.gperf"
│ │ │ │ +
1514 {(int)offsetof(struct stringpool_t, stringpool_str438), 54},
│ │ │ │ +
1515 {-1,-1}, {-1,-1},
│ │ │ │ +
1516#line 263 "charset_lookup.gperf"
│ │ │ │ +
1517 {(int)offsetof(struct stringpool_t, stringpool_str441), 18},
│ │ │ │ +
1518 {-1,-1}, {-1,-1},
│ │ │ │ +
1519#line 88 "charset_lookup.gperf"
│ │ │ │ +
1520 {(int)offsetof(struct stringpool_t, stringpool_str444), 53},
│ │ │ │ +
1521#line 210 "charset_lookup.gperf"
│ │ │ │ +
1522 {(int)offsetof(struct stringpool_t, stringpool_str445), 62},
│ │ │ │ +
1523#line 311 "charset_lookup.gperf"
│ │ │ │ +
1524 {(int)offsetof(struct stringpool_t, stringpool_str446), 19},
│ │ │ │ +
1525 {-1,-1},
│ │ │ │ +
1526#line 226 "charset_lookup.gperf"
│ │ │ │ +
1527 {(int)offsetof(struct stringpool_t, stringpool_str448), 59},
│ │ │ │ +
1528 {-1,-1},
│ │ │ │ +
1529#line 287 "charset_lookup.gperf"
│ │ │ │ +
1530 {(int)offsetof(struct stringpool_t, stringpool_str450), 30},
│ │ │ │ +
1531 {-1,-1},
│ │ │ │ +
1532#line 22 "charset_lookup.gperf"
│ │ │ │ +
1533 {(int)offsetof(struct stringpool_t, stringpool_str452), 5},
│ │ │ │ +
1534 {-1,-1},
│ │ │ │ +
1535#line 27 "charset_lookup.gperf"
│ │ │ │ +
1536 {(int)offsetof(struct stringpool_t, stringpool_str454), 10},
│ │ │ │ +
1537#line 106 "charset_lookup.gperf"
│ │ │ │ +
1538 {(int)offsetof(struct stringpool_t, stringpool_str455), 36},
│ │ │ │ +
1539 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1540#line 18 "charset_lookup.gperf"
│ │ │ │ +
1541 {(int)offsetof(struct stringpool_t, stringpool_str460), 5},
│ │ │ │ +
1542#line 59 "charset_lookup.gperf"
│ │ │ │ +
1543 {(int)offsetof(struct stringpool_t, stringpool_str461), 26},
│ │ │ │ +
1544#line 300 "charset_lookup.gperf"
│ │ │ │ +
1545 {(int)offsetof(struct stringpool_t, stringpool_str462), 93},
│ │ │ │ +
1546#line 309 "charset_lookup.gperf"
│ │ │ │ +
1547 {(int)offsetof(struct stringpool_t, stringpool_str463), 17},
│ │ │ │ +
1548#line 71 "charset_lookup.gperf"
│ │ │ │ +
1549 {(int)offsetof(struct stringpool_t, stringpool_str464), 51},
│ │ │ │ +
1550#line 289 "charset_lookup.gperf"
│ │ │ │ +
1551 {(int)offsetof(struct stringpool_t, stringpool_str465), 93},
│ │ │ │ +
1552 {-1,-1},
│ │ │ │ +
1553#line 66 "charset_lookup.gperf"
│ │ │ │ +
1554 {(int)offsetof(struct stringpool_t, stringpool_str467), 9},
│ │ │ │ +
1555 {-1,-1}, {-1,-1},
│ │ │ │ +
1556#line 298 "charset_lookup.gperf"
│ │ │ │ +
1557 {(int)offsetof(struct stringpool_t, stringpool_str470), 93},
│ │ │ │ +
1558 {-1,-1},
│ │ │ │ +
1559#line 105 "charset_lookup.gperf"
│ │ │ │ +
1560 {(int)offsetof(struct stringpool_t, stringpool_str472), 8},
│ │ │ │ +
1561 {-1,-1},
│ │ │ │ +
1562#line 65 "charset_lookup.gperf"
│ │ │ │ +
1563 {(int)offsetof(struct stringpool_t, stringpool_str474), 44},
│ │ │ │ +
1564#line 307 "charset_lookup.gperf"
│ │ │ │ +
1565 {(int)offsetof(struct stringpool_t, stringpool_str475), 15},
│ │ │ │ +
1566#line 223 "charset_lookup.gperf"
│ │ │ │ +
1567 {(int)offsetof(struct stringpool_t, stringpool_str476), 68},
│ │ │ │ +
1568 {-1,-1}, {-1,-1},
│ │ │ │ +
1569#line 203 "charset_lookup.gperf"
│ │ │ │ +
1570 {(int)offsetof(struct stringpool_t, stringpool_str479), 56},
│ │ │ │ +
1571#line 197 "charset_lookup.gperf"
│ │ │ │ +
1572 {(int)offsetof(struct stringpool_t, stringpool_str480), 53},
│ │ │ │ +
1573 {-1,-1}, {-1,-1},
│ │ │ │ +
1574#line 205 "charset_lookup.gperf"
│ │ │ │ +
1575 {(int)offsetof(struct stringpool_t, stringpool_str483), 57},
│ │ │ │ +
1576#line 305 "charset_lookup.gperf"
│ │ │ │ +
1577 {(int)offsetof(struct stringpool_t, stringpool_str484), 13},
│ │ │ │ +
1578#line 251 "charset_lookup.gperf"
│ │ │ │ +
1579 {(int)offsetof(struct stringpool_t, stringpool_str485), 76},
│ │ │ │ +
1580#line 77 "charset_lookup.gperf"
│ │ │ │ +
1581 {(int)offsetof(struct stringpool_t, stringpool_str486), 55},
│ │ │ │ +
1582#line 122 "charset_lookup.gperf"
│ │ │ │ +
1583 {(int)offsetof(struct stringpool_t, stringpool_str487), 40},
│ │ │ │ +
1584#line 211 "charset_lookup.gperf"
│ │ │ │ +
1585 {(int)offsetof(struct stringpool_t, stringpool_str488), 64},
│ │ │ │ +
1586#line 208 "charset_lookup.gperf"
│ │ │ │ +
1587 {(int)offsetof(struct stringpool_t, stringpool_str489), 64},
│ │ │ │ +
1588#line 212 "charset_lookup.gperf"
│ │ │ │ +
1589 {(int)offsetof(struct stringpool_t, stringpool_str490), 62},
│ │ │ │ +
1590#line 312 "charset_lookup.gperf"
│ │ │ │ +
1591 {(int)offsetof(struct stringpool_t, stringpool_str491), 20},
│ │ │ │ +
1592 {-1,-1}, {-1,-1},
│ │ │ │ +
1593#line 62 "charset_lookup.gperf"
│ │ │ │ +
1594 {(int)offsetof(struct stringpool_t, stringpool_str494), 39},
│ │ │ │ +
1595 {-1,-1},
│ │ │ │ +
1596#line 262 "charset_lookup.gperf"
│ │ │ │ +
1597 {(int)offsetof(struct stringpool_t, stringpool_str496), 16},
│ │ │ │ +
1598 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1599#line 100 "charset_lookup.gperf"
│ │ │ │ +
1600 {(int)offsetof(struct stringpool_t, stringpool_str500), 32},
│ │ │ │ +
1601 {-1,-1}, {-1,-1},
│ │ │ │ +
1602#line 221 "charset_lookup.gperf"
│ │ │ │ +
1603 {(int)offsetof(struct stringpool_t, stringpool_str503), 66},
│ │ │ │ +
1604#line 280 "charset_lookup.gperf"
│ │ │ │ +
1605 {(int)offsetof(struct stringpool_t, stringpool_str504), 61},
│ │ │ │ +
1606#line 253 "charset_lookup.gperf"
│ │ │ │ +
1607 {(int)offsetof(struct stringpool_t, stringpool_str505), 69},
│ │ │ │ +
1608#line 314 "charset_lookup.gperf"
│ │ │ │ +
1609 {(int)offsetof(struct stringpool_t, stringpool_str506), 27},
│ │ │ │ +
1610#line 195 "charset_lookup.gperf"
│ │ │ │ +
1611 {(int)offsetof(struct stringpool_t, stringpool_str507), 52},
│ │ │ │ +
1612 {-1,-1},
│ │ │ │ +
1613#line 80 "charset_lookup.gperf"
│ │ │ │ +
1614 {(int)offsetof(struct stringpool_t, stringpool_str509), 59},
│ │ │ │ +
1615 {-1,-1},
│ │ │ │ +
1616#line 308 "charset_lookup.gperf"
│ │ │ │ +
1617 {(int)offsetof(struct stringpool_t, stringpool_str511), 16},
│ │ │ │ +
1618 {-1,-1}, {-1,-1},
│ │ │ │ +
1619#line 294 "charset_lookup.gperf"
│ │ │ │ +
1620 {(int)offsetof(struct stringpool_t, stringpool_str514), 89},
│ │ │ │ +
1621#line 68 "charset_lookup.gperf"
│ │ │ │ +
1622 {(int)offsetof(struct stringpool_t, stringpool_str515), 62},
│ │ │ │ +
1623#line 64 "charset_lookup.gperf"
│ │ │ │ +
1624 {(int)offsetof(struct stringpool_t, stringpool_str516), 43},
│ │ │ │ +
1625 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1626#line 215 "charset_lookup.gperf"
│ │ │ │ +
1627 {(int)offsetof(struct stringpool_t, stringpool_str520), 60},
│ │ │ │ +
1628#line 254 "charset_lookup.gperf"
│ │ │ │ +
1629 {(int)offsetof(struct stringpool_t, stringpool_str521), 77},
│ │ │ │ +
1630#line 85 "charset_lookup.gperf"
│ │ │ │ +
1631 {(int)offsetof(struct stringpool_t, stringpool_str522), 3},
│ │ │ │ +
1632#line 255 "charset_lookup.gperf"
│ │ │ │ +
1633 {(int)offsetof(struct stringpool_t, stringpool_str523), 78},
│ │ │ │ +
1634 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1635#line 297 "charset_lookup.gperf"
│ │ │ │ +
1636 {(int)offsetof(struct stringpool_t, stringpool_str528), 92},
│ │ │ │ +
1637 {-1,-1}, {-1,-1},
│ │ │ │ +
1638#line 58 "charset_lookup.gperf"
│ │ │ │ +
1639 {(int)offsetof(struct stringpool_t, stringpool_str531), 83},
│ │ │ │ +
1640 {-1,-1}, {-1,-1},
│ │ │ │ +
1641#line 189 "charset_lookup.gperf"
│ │ │ │ +
1642 {(int)offsetof(struct stringpool_t, stringpool_str534), 0},
│ │ │ │ +
1643 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1644#line 21 "charset_lookup.gperf"
│ │ │ │ +
1645 {(int)offsetof(struct stringpool_t, stringpool_str541), 6},
│ │ │ │ +
1646 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1647#line 199 "charset_lookup.gperf"
│ │ │ │ +
1648 {(int)offsetof(struct stringpool_t, stringpool_str546), 54},
│ │ │ │ +
1649#line 216 "charset_lookup.gperf"
│ │ │ │ +
1650 {(int)offsetof(struct stringpool_t, stringpool_str547), 60},
│ │ │ │ +
1651#line 63 "charset_lookup.gperf"
│ │ │ │ +
1652 {(int)offsetof(struct stringpool_t, stringpool_str548), 41},
│ │ │ │ +
1653#line 20 "charset_lookup.gperf"
│ │ │ │ +
1654 {(int)offsetof(struct stringpool_t, stringpool_str549), 6},
│ │ │ │ +
1655 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1656#line 84 "charset_lookup.gperf"
│ │ │ │ +
1657 {(int)offsetof(struct stringpool_t, stringpool_str553), 84},
│ │ │ │ +
1658 {-1,-1},
│ │ │ │ +
1659#line 193 "charset_lookup.gperf"
│ │ │ │ +
1660 {(int)offsetof(struct stringpool_t, stringpool_str555), 51},
│ │ │ │ +
1661 {-1,-1},
│ │ │ │ +
1662#line 214 "charset_lookup.gperf"
│ │ │ │ +
1663 {(int)offsetof(struct stringpool_t, stringpool_str557), 62},
│ │ │ │ +
1664 {-1,-1}, {-1,-1},
│ │ │ │ +
1665#line 78 "charset_lookup.gperf"
│ │ │ │ +
1666 {(int)offsetof(struct stringpool_t, stringpool_str560), 56},
│ │ │ │ +
1667#line 76 "charset_lookup.gperf"
│ │ │ │ +
1668 {(int)offsetof(struct stringpool_t, stringpool_str561), 53},
│ │ │ │ +
1669 {-1,-1},
│ │ │ │ +
1670#line 141 "charset_lookup.gperf"
│ │ │ │ +
1671 {(int)offsetof(struct stringpool_t, stringpool_str563), 47},
│ │ │ │ +
1672#line 113 "charset_lookup.gperf"
│ │ │ │ +
1673 {(int)offsetof(struct stringpool_t, stringpool_str564), 38},
│ │ │ │ +
1674 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1675#line 11 "charset_lookup.gperf"
│ │ │ │ +
1676 {(int)offsetof(struct stringpool_t, stringpool_str571), 88},
│ │ │ │ +
1677#line 110 "charset_lookup.gperf"
│ │ │ │ +
1678 {(int)offsetof(struct stringpool_t, stringpool_str572), 56},
│ │ │ │ +
1679 {-1,-1}, {-1,-1},
│ │ │ │ +
1680#line 191 "charset_lookup.gperf"
│ │ │ │ +
1681 {(int)offsetof(struct stringpool_t, stringpool_str575), 50},
│ │ │ │ +
1682 {-1,-1},
│ │ │ │ +
1683#line 67 "charset_lookup.gperf"
│ │ │ │ +
1684 {(int)offsetof(struct stringpool_t, stringpool_str577), 8},
│ │ │ │ +
1685 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1686#line 56 "charset_lookup.gperf"
│ │ │ │ +
1687 {(int)offsetof(struct stringpool_t, stringpool_str581), 10},
│ │ │ │ +
1688#line 12 "charset_lookup.gperf"
│ │ │ │ +
1689 {(int)offsetof(struct stringpool_t, stringpool_str582), 88},
│ │ │ │ +
1690#line 86 "charset_lookup.gperf"
│ │ │ │ +
1691 {(int)offsetof(struct stringpool_t, stringpool_str583), 93},
│ │ │ │ +
1692#line 213 "charset_lookup.gperf"
│ │ │ │ +
1693 {(int)offsetof(struct stringpool_t, stringpool_str584), 62},
│ │ │ │ +
1694 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1695#line 201 "charset_lookup.gperf"
│ │ │ │ +
1696 {(int)offsetof(struct stringpool_t, stringpool_str591), 55},
│ │ │ │ +
1697 {-1,-1}, {-1,-1},
│ │ │ │ +
1698#line 99 "charset_lookup.gperf"
│ │ │ │ +
1699 {(int)offsetof(struct stringpool_t, stringpool_str594), 34},
│ │ │ │ +
1700 {-1,-1},
│ │ │ │ +
1701#line 53 "charset_lookup.gperf"
│ │ │ │ +
1702 {(int)offsetof(struct stringpool_t, stringpool_str596), 33},
│ │ │ │ +
1703 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1704#line 95 "charset_lookup.gperf"
│ │ │ │ +
1705 {(int)offsetof(struct stringpool_t, stringpool_str602), 34},
│ │ │ │ +
1706 {-1,-1}, {-1,-1},
│ │ │ │ +
1707#line 247 "charset_lookup.gperf"
│ │ │ │ +
1708 {(int)offsetof(struct stringpool_t, stringpool_str605), 72},
│ │ │ │ +
1709 {-1,-1},
│ │ │ │ +
1710#line 335 "charset_lookup.gperf"
│ │ │ │ +
1711 {(int)offsetof(struct stringpool_t, stringpool_str607), 34},
│ │ │ │ +
1712 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1713#line 282 "charset_lookup.gperf"
│ │ │ │ +
1714 {(int)offsetof(struct stringpool_t, stringpool_str614), 61},
│ │ │ │ +
1715 {-1,-1}, {-1,-1},
│ │ │ │ +
1716#line 249 "charset_lookup.gperf"
│ │ │ │ +
1717 {(int)offsetof(struct stringpool_t, stringpool_str617), 74},
│ │ │ │ +
1718 {-1,-1}, {-1,-1},
│ │ │ │ +
1719#line 296 "charset_lookup.gperf"
│ │ │ │ +
1720 {(int)offsetof(struct stringpool_t, stringpool_str620), 91},
│ │ │ │ +
1721 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1722#line 252 "charset_lookup.gperf"
│ │ │ │ +
1723 {(int)offsetof(struct stringpool_t, stringpool_str625), 69},
│ │ │ │ +
1724 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1725 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1726#line 291 "charset_lookup.gperf"
│ │ │ │ +
1727 {(int)offsetof(struct stringpool_t, stringpool_str637), 2},
│ │ │ │ +
1728 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1729#line 264 "charset_lookup.gperf"
│ │ │ │ +
1730 {(int)offsetof(struct stringpool_t, stringpool_str641), 17},
│ │ │ │ +
1731 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1732#line 257 "charset_lookup.gperf"
│ │ │ │ +
1733 {(int)offsetof(struct stringpool_t, stringpool_str645), 80},
│ │ │ │ +
1734 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1735#line 114 "charset_lookup.gperf"
│ │ │ │ +
1736 {(int)offsetof(struct stringpool_t, stringpool_str651), 12},
│ │ │ │ +
1737 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1738#line 246 "charset_lookup.gperf"
│ │ │ │ +
1739 {(int)offsetof(struct stringpool_t, stringpool_str658), 71},
│ │ │ │ +
1740 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1741#line 267 "charset_lookup.gperf"
│ │ │ │ +
1742 {(int)offsetof(struct stringpool_t, stringpool_str663), 82},
│ │ │ │ +
1743#line 281 "charset_lookup.gperf"
│ │ │ │ +
1744 {(int)offsetof(struct stringpool_t, stringpool_str664), 61},
│ │ │ │ +
1745 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1746 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1747#line 217 "charset_lookup.gperf"
│ │ │ │ +
1748 {(int)offsetof(struct stringpool_t, stringpool_str674), 60},
│ │ │ │ +
1749 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1750 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1751 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1752 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1753#line 245 "charset_lookup.gperf"
│ │ │ │ +
1754 {(int)offsetof(struct stringpool_t, stringpool_str697), 70},
│ │ │ │ +
1755 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1756 {-1,-1}, {-1,-1},
│ │ │ │ +
1757#line 290 "charset_lookup.gperf"
│ │ │ │ +
1758 {(int)offsetof(struct stringpool_t, stringpool_str706), 3},
│ │ │ │ +
1759 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1760 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1761 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1762#line 83 "charset_lookup.gperf"
│ │ │ │ +
1763 {(int)offsetof(struct stringpool_t, stringpool_str723), 25},
│ │ │ │ +
1764 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1765 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1766 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1767 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1768#line 248 "charset_lookup.gperf"
│ │ │ │ +
1769 {(int)offsetof(struct stringpool_t, stringpool_str748), 73},
│ │ │ │ +
1770 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1771 {-1,-1},
│ │ │ │ +
1772#line 304 "charset_lookup.gperf"
│ │ │ │ +
1773 {(int)offsetof(struct stringpool_t, stringpool_str756), 20},
│ │ │ │ +
1774 {-1,-1},
│ │ │ │ +
1775#line 276 "charset_lookup.gperf"
│ │ │ │ +
1776 {(int)offsetof(struct stringpool_t, stringpool_str758), 85},
│ │ │ │ +
1777 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1778#line 81 "charset_lookup.gperf"
│ │ │ │ +
1779 {(int)offsetof(struct stringpool_t, stringpool_str762), 69},
│ │ │ │ +
1780 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1781 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1782 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1783 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1784 {-1,-1},
│ │ │ │ +
1785#line 57 "charset_lookup.gperf"
│ │ │ │ +
1786 {(int)offsetof(struct stringpool_t, stringpool_str788), 64},
│ │ │ │ +
1787 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1788 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1789 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1790 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1791 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1792 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1793 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1794 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1795 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1796 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1797 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1798 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1799 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1800 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1801 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1802 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1803#line 250 "charset_lookup.gperf"
│ │ │ │ +
1804 {(int)offsetof(struct stringpool_t, stringpool_str884), 75},
│ │ │ │ +
1805 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1806 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1807 {-1,-1}, {-1,-1},
│ │ │ │ +
1808#line 256 "charset_lookup.gperf"
│ │ │ │ +
1809 {(int)offsetof(struct stringpool_t, stringpool_str899), 79},
│ │ │ │ +
1810 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1811#line 82 "charset_lookup.gperf"
│ │ │ │ +
1812 {(int)offsetof(struct stringpool_t, stringpool_str905), 24},
│ │ │ │ +
1813 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1814 {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1815#line 55 "charset_lookup.gperf"
│ │ │ │ +
1816 {(int)offsetof(struct stringpool_t, stringpool_str915), 34},
│ │ │ │ +
1817 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1818 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1819 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1820 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1821 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1822 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1823 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1824 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1825 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1826 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1827 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1828 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1829 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1830 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1831 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1832 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1833 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1834 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1835 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1836 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1837 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1838 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1839 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1840 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1841 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1842 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1843 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1},
│ │ │ │ +
1844 {-1,-1},
│ │ │ │ +
1845#line 54 "charset_lookup.gperf"
│ │ │ │ +
1846 {(int)offsetof(struct stringpool_t, stringpool_str1079), 32}
│ │ │ │ +
1847 };
│ │ │ │ +
1848
│ │ │ │ +
1849 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
│ │ │ │ +
1850 {
│ │ │ │ +
1851 register unsigned int key = hash_charset (str, len);
│ │ │ │ +
1852
│ │ │ │ +
1853 if (key <= MAX_HASH_VALUE)
│ │ │ │ +
1854 {
│ │ │ │ +
1855 register int o = wordlist[key].alias_pos;
│ │ │ │ +
1856 if (o >= 0)
│ │ │ │ +
1857 {
│ │ │ │ +
1858 register const char *s = o + stringpool;
│ │ │ │ +
1859
│ │ │ │ +
1860 if (*str == *s && !strcmp (str + 1, s + 1))
│ │ │ │ +
1861 return &wordlist[key];
│ │ │ │ +
1862 }
│ │ │ │ +
1863 }
│ │ │ │ +
1864 }
│ │ │ │ +
1865 return 0;
│ │ │ │ +
1866}
│ │ │ │ +
1867#line 381 "charset_lookup.gperf"
│ │ │ │ +
1868
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,94 +1,1881 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -server.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef _tdsserver_h_ │ │ │ │ │ -21#define _tdsserver_h_ │ │ │ │ │ -22#endif │ │ │ │ │ -23 │ │ │ │ │ -24#ifdef __cplusplus │ │ │ │ │ -25extern "C" │ │ │ │ │ -26{ │ │ │ │ │ -27#endif │ │ │ │ │ -28#if 0 │ │ │ │ │ -29} │ │ │ │ │ +charset_lookup.h │ │ │ │ │ +1/* ANSI-C code produced by gperf version 3.1 */ │ │ │ │ │ +2/* Command-line: /usr/pkg/bin/gperf -m 100 -C -K alias_pos -t -F ,-1 -P - │ │ │ │ │ +H hash_charset -N charset_lookup -L ANSI-C charset_lookup.gperf */ │ │ │ │ │ +3/* Computed positions: -k'1,3-11,$' */ │ │ │ │ │ +4 │ │ │ │ │ +5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ │ │ │ │ │ +6 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ │ │ │ │ │ +7 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ │ │ │ │ │ +8 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ │ │ │ │ │ +9 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ │ │ │ │ │ +10 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ │ │ │ │ │ +11 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ │ │ │ │ │ +12 && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ │ │ │ │ │ +13 && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ │ │ │ │ │ +14 && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ │ │ │ │ │ +15 && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ │ │ │ │ │ +16 && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ │ │ │ │ │ +17 && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ │ │ │ │ │ +18 && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ │ │ │ │ │ +19 && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ │ │ │ │ │ +20 && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ │ │ │ │ │ +21 && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ │ │ │ │ │ +22 && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ │ │ │ │ │ +23 && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ │ │ │ │ │ +24 && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ │ │ │ │ │ +25 && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ │ │ │ │ │ +26 && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ │ │ │ │ │ +27 && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) │ │ │ │ │ +28/* The character set is not based on ISO-646. */ │ │ │ │ │ +29#error "gperf generated tables don't work with this execution character set. │ │ │ │ │ +Please report a bug to ." │ │ │ │ │ 30#endif │ │ │ │ │ 31 │ │ │ │ │ -32/* login.c */ │ │ │ │ │ -33unsigned char *tds7_decrypt_pass(const unsigned char *crypt_pass, int len, │ │ │ │ │ -unsigned char *clear_pass); │ │ │ │ │ -34_T_D_S_S_O_C_K_E_T *tds_listen(_T_D_S_C_O_N_T_E_X_T * ctx, int ip_port); │ │ │ │ │ -35int tds_read_login(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ -36int tds7_read_login(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_L_O_G_I_N * login); │ │ │ │ │ -37_T_D_S_L_O_G_I_N *tds_alloc_read_login(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -38 │ │ │ │ │ -39/* query.c */ │ │ │ │ │ -40char *tds_get_query(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -41char *tds_get_generic_query(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -42 │ │ │ │ │ -43/* server.c */ │ │ │ │ │ -44void tds_env_change(_T_D_S_S_O_C_K_E_T * tds, int type, const char *oldvalue, const │ │ │ │ │ -char *newvalue); │ │ │ │ │ -45void tds_send_msg(_T_D_S_S_O_C_K_E_T * tds, int msgno, int msgstate, int severity, │ │ │ │ │ -const char *msgtext, const char *srvname, │ │ │ │ │ -46 const char *procname, int line); │ │ │ │ │ -47void tds_send_login_ack(_T_D_S_S_O_C_K_E_T * tds, const char *progname); │ │ │ │ │ -48void tds_send_eed(_T_D_S_S_O_C_K_E_T * tds, int msgno, int msgstate, int severity, │ │ │ │ │ -char *msgtext, char *srvname, char *procname, int line); │ │ │ │ │ -49void tds_send_err(_T_D_S_S_O_C_K_E_T * tds, int severity, int dberr, int oserr, char │ │ │ │ │ -*dberrstr, char *oserrstr); │ │ │ │ │ -50void tds_send_capabilities_token(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -51/* TODO remove, use tds_send_done */ │ │ │ │ │ -52void tds_send_done_token(_T_D_S_S_O_C_K_E_T * tds, TDS_SMALLINT flags, TDS_INT │ │ │ │ │ -numrows); │ │ │ │ │ -53void tds_send_done(_T_D_S_S_O_C_K_E_T * tds, int token, TDS_SMALLINT flags, TDS_INT │ │ │ │ │ -numrows); │ │ │ │ │ -54void tds_send_control_token(_T_D_S_S_O_C_K_E_T * tds, TDS_SMALLINT numcols); │ │ │ │ │ -55void tds_send_col_name(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ -56void tds_send_col_info(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ -57void tds_send_result(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ -58void tds7_send_result(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ -59void tds_send_table_header(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ -60void tds_send_row(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo); │ │ │ │ │ -61void tds71_send_prelogin(_T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ -62 │ │ │ │ │ -63#if 0 │ │ │ │ │ -64{ │ │ │ │ │ -65#endif │ │ │ │ │ -66#ifdef __cplusplus │ │ │ │ │ -67} │ │ │ │ │ -68#endif │ │ │ │ │ -_t_d_s___l_o_g_i_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ -_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ -Hold information for any results. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ -_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +32#line 3 "charset_lookup.gperf" │ │ │ │ │ +33 │ │ │ │ │ +34static const struct charset_alias *charset_lookup(register const char *str, │ │ │ │ │ +register size_t len); │ │ │ │ │ +35#line 2 "charset_lookup.gperf" │ │ │ │ │ +_3_6struct charset_alias { short int alias_pos; short int canonic; }; │ │ │ │ │ +37 │ │ │ │ │ +38#define TOTAL_KEYWORDS 374 │ │ │ │ │ +39#define MIN_WORD_LENGTH 2 │ │ │ │ │ +40#define MAX_WORD_LENGTH 45 │ │ │ │ │ +41#define MIN_HASH_VALUE 15 │ │ │ │ │ +42#define MAX_HASH_VALUE 1079 │ │ │ │ │ +43/* maximum key range = 1065, duplicates = 0 */ │ │ │ │ │ +44 │ │ │ │ │ +45#ifdef __GNUC__ │ │ │ │ │ +46__inline │ │ │ │ │ +47#else │ │ │ │ │ +48#ifdef __cplusplus │ │ │ │ │ +49inline │ │ │ │ │ +50#endif │ │ │ │ │ +51#endif │ │ │ │ │ +52static unsigned int │ │ │ │ │ +53hash_charset (register const char *str, register size_t len) │ │ │ │ │ +54{ │ │ │ │ │ +55 static const unsigned short asso_values[] = │ │ │ │ │ +56 { │ │ │ │ │ +57 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +58 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +59 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +60 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +61 1080, 1080, 1080, 1080, 1080, 7, 132, 1080, 56, 6, │ │ │ │ │ +62 47, 83, 35, 8, 18, 63, 7, 9, 363, 1080, │ │ │ │ │ +63 1080, 1080, 1080, 1080, 1080, 7, 99, 128, 6, 22, │ │ │ │ │ +64 141, 116, 95, 6, 34, 68, 7, 159, 6, 6, │ │ │ │ │ +65 80, 1080, 26, 6, 115, 191, 39, 162, 231, 14, │ │ │ │ │ +66 8, 1080, 1080, 1080, 1080, 37, 1080, 10, 16, 147, │ │ │ │ │ +67 1080, 16, 8, 12, 13, 6, 1080, 6, 1080, 8, │ │ │ │ │ +68 6, 6, 1080, 1080, 6, 7, 6, 19, 1080, 1080, │ │ │ │ │ +69 1080, 6, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +70 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +71 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +72 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +73 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +74 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +75 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +76 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +77 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +78 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +79 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +80 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +81 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, │ │ │ │ │ +82 1080, 1080, 1080, 1080, 1080, 1080 │ │ │ │ │ +83 }; │ │ │ │ │ +84 register unsigned int hval = len; │ │ │ │ │ +85 │ │ │ │ │ +86 switch (hval) │ │ │ │ │ +87 { │ │ │ │ │ +88 default: │ │ │ │ │ +89 hval += asso_values[(unsigned char)str[10]]; │ │ │ │ │ +90 /*FALLTHROUGH*/ │ │ │ │ │ +91 case 10: │ │ │ │ │ +92 hval += asso_values[(unsigned char)str[9]]; │ │ │ │ │ +93 /*FALLTHROUGH*/ │ │ │ │ │ +94 case 9: │ │ │ │ │ +95 hval += asso_values[(unsigned char)str[8]]; │ │ │ │ │ +96 /*FALLTHROUGH*/ │ │ │ │ │ +97 case 8: │ │ │ │ │ +98 hval += asso_values[(unsigned char)str[7]]; │ │ │ │ │ +99 /*FALLTHROUGH*/ │ │ │ │ │ +100 case 7: │ │ │ │ │ +101 hval += asso_values[(unsigned char)str[6]]; │ │ │ │ │ +102 /*FALLTHROUGH*/ │ │ │ │ │ +103 case 6: │ │ │ │ │ +104 hval += asso_values[(unsigned char)str[5]]; │ │ │ │ │ +105 /*FALLTHROUGH*/ │ │ │ │ │ +106 case 5: │ │ │ │ │ +107 hval += asso_values[(unsigned char)str[4]]; │ │ │ │ │ +108 /*FALLTHROUGH*/ │ │ │ │ │ +109 case 4: │ │ │ │ │ +110 hval += asso_values[(unsigned char)str[3]]; │ │ │ │ │ +111 /*FALLTHROUGH*/ │ │ │ │ │ +112 case 3: │ │ │ │ │ +113 hval += asso_values[(unsigned char)str[2]]; │ │ │ │ │ +114 /*FALLTHROUGH*/ │ │ │ │ │ +115 case 2: │ │ │ │ │ +116 case 1: │ │ │ │ │ +117 hval += asso_values[(unsigned char)str[0]]; │ │ │ │ │ +118 break; │ │ │ │ │ +119 } │ │ │ │ │ +120 return hval + asso_values[(unsigned char)str[len - 1]]; │ │ │ │ │ +121} │ │ │ │ │ +122 │ │ │ │ │ +_1_2_3struct stringpool_t │ │ │ │ │ +124 { │ │ │ │ │ +125 char stringpool_str15[sizeof("L1")]; │ │ │ │ │ +126 char stringpool_str16[sizeof("L8")]; │ │ │ │ │ +127 char stringpool_str17[sizeof("L5")]; │ │ │ │ │ +128 char stringpool_str27[sizeof("L6")]; │ │ │ │ │ +129 char stringpool_str28[sizeof("SJIS")]; │ │ │ │ │ +130 char stringpool_str30[sizeof("koi8")]; │ │ │ │ │ +131 char stringpool_str31[sizeof("sjis")]; │ │ │ │ │ +132 char stringpool_str35[sizeof("R8")]; │ │ │ │ │ +133 char stringpool_str36[sizeof("iso81")]; │ │ │ │ │ +134 char stringpool_str38[sizeof("iso88")]; │ │ │ │ │ +135 char stringpool_str39[sizeof("iso15")]; │ │ │ │ │ +136 char stringpool_str40[sizeof("iso85")]; │ │ │ │ │ +137 char stringpool_str41[sizeof("thai8")]; │ │ │ │ │ +138 char stringpool_str42[sizeof("iso89")]; │ │ │ │ │ +139 char stringpool_str43[sizeof("roma8")]; │ │ │ │ │ +140 char stringpool_str44[sizeof("L4")]; │ │ │ │ │ +141 char stringpool_str45[sizeof("utf8")]; │ │ │ │ │ +142 char stringpool_str46[sizeof("866")]; │ │ │ │ │ +143 char stringpool_str47[sizeof("iso815")]; │ │ │ │ │ +144 char stringpool_str48[sizeof("big5")]; │ │ │ │ │ +145 char stringpool_str50[sizeof("roman8")]; │ │ │ │ │ +146 char stringpool_str56[sizeof("L2")]; │ │ │ │ │ +147 char stringpool_str57[sizeof("646")]; │ │ │ │ │ +148 char stringpool_str60[sizeof("iso86")]; │ │ │ │ │ +149 char stringpool_str63[sizeof("iso88591")]; │ │ │ │ │ +150 char stringpool_str65[sizeof("iso88598")]; │ │ │ │ │ +151 char stringpool_str66[sizeof("iso_1")]; │ │ │ │ │ +152 char stringpool_str67[sizeof("iso88595")]; │ │ │ │ │ +153 char stringpool_str69[sizeof("iso88599")]; │ │ │ │ │ +154 char stringpool_str70[sizeof("greek8")]; │ │ │ │ │ +155 char stringpool_str71[sizeof("ISO8859-1")]; │ │ │ │ │ +156 char stringpool_str72[sizeof("L7")]; │ │ │ │ │ +157 char stringpool_str73[sizeof("ISO8859-8")]; │ │ │ │ │ +158 char stringpool_str74[sizeof("iso885915")]; │ │ │ │ │ +159 char stringpool_str75[sizeof("ISO8859-5")]; │ │ │ │ │ +160 char stringpool_str77[sizeof("ISO8859-9")]; │ │ │ │ │ +161 char stringpool_str79[sizeof("ISO-8859-1")]; │ │ │ │ │ +162 char stringpool_str81[sizeof("ISO-8859-8")]; │ │ │ │ │ +163 char stringpool_str82[sizeof("ISO8859-15")]; │ │ │ │ │ +164 char stringpool_str83[sizeof("ISO-8859-5")]; │ │ │ │ │ +165 char stringpool_str85[sizeof("ISO-8859-9")]; │ │ │ │ │ +166 char stringpool_str87[sizeof("iso88596")]; │ │ │ │ │ +167 char stringpool_str89[sizeof("ISO-IR-58")]; │ │ │ │ │ +168 char stringpool_str90[sizeof("ISO-8859-15")]; │ │ │ │ │ +169 char stringpool_str91[sizeof("JAVA")]; │ │ │ │ │ +170 char stringpool_str92[sizeof("L3")]; │ │ │ │ │ +171 char stringpool_str93[sizeof("iso14")]; │ │ │ │ │ +172 char stringpool_str94[sizeof("iso84")]; │ │ │ │ │ +173 char stringpool_str95[sizeof("ISO8859-6")]; │ │ │ │ │ +174 char stringpool_str100[sizeof("ISO-IR-159")]; │ │ │ │ │ +175 char stringpool_str101[sizeof("ISO-IR-199")]; │ │ │ │ │ +176 char stringpool_str102[sizeof("ISO-IR-6")]; │ │ │ │ │ +177 char stringpool_str103[sizeof("ISO-8859-6")]; │ │ │ │ │ +178 char stringpool_str104[sizeof("862")]; │ │ │ │ │ +179 char stringpool_str105[sizeof("HZ")]; │ │ │ │ │ +180 char stringpool_str107[sizeof("iso646")]; │ │ │ │ │ +181 char stringpool_str108[sizeof("ISO-IR-165")]; │ │ │ │ │ +182 char stringpool_str109[sizeof("ISO_8859-1")]; │ │ │ │ │ +183 char stringpool_str110[sizeof("ISO-8859-16")]; │ │ │ │ │ +184 char stringpool_str111[sizeof("ISO_8859-8")]; │ │ │ │ │ +185 char stringpool_str113[sizeof("ISO_8859-5")]; │ │ │ │ │ +186 char stringpool_str115[sizeof("ISO_8859-9")]; │ │ │ │ │ +187 char stringpool_str116[sizeof("JP")]; │ │ │ │ │ +188 char stringpool_str118[sizeof("iso82")]; │ │ │ │ │ +189 char stringpool_str120[sizeof("ISO_8859-15")]; │ │ │ │ │ +190 char stringpool_str121[sizeof("iso88594")]; │ │ │ │ │ +191 char stringpool_str122[sizeof("850")]; │ │ │ │ │ +192 char stringpool_str123[sizeof("ISO-IR-148")]; │ │ │ │ │ +193 char stringpool_str124[sizeof("ISO_8859-15:1998")]; │ │ │ │ │ +194 char stringpool_str127[sizeof("ISO-IR-149")]; │ │ │ │ │ +195 char stringpool_str128[sizeof("ISO-IR-166")]; │ │ │ │ │ +196 char stringpool_str129[sizeof("ISO8859-4")]; │ │ │ │ │ +197 char stringpool_str133[sizeof("ISO_8859-6")]; │ │ │ │ │ +198 char stringpool_str135[sizeof("iso10")]; │ │ │ │ │ +199 char stringpool_str136[sizeof("CN")]; │ │ │ │ │ +200 char stringpool_str137[sizeof("ISO-8859-4")]; │ │ │ │ │ +201 char stringpool_str140[sizeof("ISO_8859-16")]; │ │ │ │ │ +202 char stringpool_str141[sizeof("KOREAN")]; │ │ │ │ │ +203 char stringpool_str142[sizeof("ISO-IR-101")]; │ │ │ │ │ +204 char stringpool_str143[sizeof("ISO-IR-14")]; │ │ │ │ │ +205 char stringpool_str144[sizeof("ISO-8859-14")]; │ │ │ │ │ +206 char stringpool_str145[sizeof("iso88592")]; │ │ │ │ │ +207 char stringpool_str146[sizeof("KOI8-R")]; │ │ │ │ │ +208 char stringpool_str148[sizeof("ISO-IR-109")]; │ │ │ │ │ +209 char stringpool_str149[sizeof("C99")]; │ │ │ │ │ +210 char stringpool_str150[sizeof("iso87")]; │ │ │ │ │ +211 char stringpool_str151[sizeof("ISO_8859-14:1998")]; │ │ │ │ │ +212 char stringpool_str152[sizeof("LATIN1")]; │ │ │ │ │ +213 char stringpool_str153[sizeof("ISO8859-2")]; │ │ │ │ │ +214 char stringpool_str154[sizeof("LATIN8")]; │ │ │ │ │ +215 char stringpool_str155[sizeof("ISO-IR-179")]; │ │ │ │ │ +216 char stringpool_str156[sizeof("LATIN5")]; │ │ │ │ │ +217 char stringpool_str157[sizeof("ISO-IR-126")]; │ │ │ │ │ +218 char stringpool_str158[sizeof("ASCII")]; │ │ │ │ │ +219 char stringpool_str161[sizeof("ISO-8859-2")]; │ │ │ │ │ +220 char stringpool_str164[sizeof("CP819")]; │ │ │ │ │ +221 char stringpool_str167[sizeof("ISO_8859-4")]; │ │ │ │ │ +222 char stringpool_str170[sizeof("TCVN")]; │ │ │ │ │ +223 char stringpool_str171[sizeof("ISO-IR-138")]; │ │ │ │ │ +224 char stringpool_str173[sizeof("hp15CN")]; │ │ │ │ │ +225 char stringpool_str174[sizeof("ISO_8859-14")]; │ │ │ │ │ +226 char stringpool_str176[sizeof("LATIN6")]; │ │ │ │ │ +227 char stringpool_str177[sizeof("iso88597")]; │ │ │ │ │ +228 char stringpool_str178[sizeof("ISO8859-10")]; │ │ │ │ │ +229 char stringpool_str179[sizeof("ISO-IR-144")]; │ │ │ │ │ +230 char stringpool_str183[sizeof("ISO_8859-16:2000")]; │ │ │ │ │ +231 char stringpool_str185[sizeof("ISO8859-7")]; │ │ │ │ │ +232 char stringpool_str186[sizeof("ISO-8859-10")]; │ │ │ │ │ +233 char stringpool_str189[sizeof("iso13")]; │ │ │ │ │ +234 char stringpool_str190[sizeof("iso83")]; │ │ │ │ │ +235 char stringpool_str191[sizeof("ISO_8859-2")]; │ │ │ │ │ +236 char stringpool_str192[sizeof("ISO-IR-110")]; │ │ │ │ │ +237 char stringpool_str193[sizeof("ISO-8859-7")]; │ │ │ │ │ +238 char stringpool_str194[sizeof("CP866")]; │ │ │ │ │ +239 char stringpool_str195[sizeof("CP949")]; │ │ │ │ │ +240 char stringpool_str196[sizeof("tis620")]; │ │ │ │ │ +241 char stringpool_str197[sizeof("VISCII")]; │ │ │ │ │ +242 char stringpool_str198[sizeof("ISO-IR-226")]; │ │ │ │ │ +243 char stringpool_str199[sizeof("US")]; │ │ │ │ │ +244 char stringpool_str200[sizeof("ISO-IR-87")]; │ │ │ │ │ +245 char stringpool_str201[sizeof("ISO-IR-57")]; │ │ │ │ │ +246 char stringpool_str202[sizeof("IBM819")]; │ │ │ │ │ +247 char stringpool_str203[sizeof("macthai")]; │ │ │ │ │ +248 char stringpool_str204[sizeof("MS-ANSI")]; │ │ │ │ │ +249 char stringpool_str205[sizeof("macturk")]; │ │ │ │ │ +250 char stringpool_str207[sizeof("CP1251")]; │ │ │ │ │ +251 char stringpool_str208[sizeof("ISO-IR-157")]; │ │ │ │ │ +252 char stringpool_str209[sizeof("CP1258")]; │ │ │ │ │ +253 char stringpool_str210[sizeof("LATIN4")]; │ │ │ │ │ +254 char stringpool_str211[sizeof("CP1255")]; │ │ │ │ │ +255 char stringpool_str212[sizeof("ISO_8859-10:1992")]; │ │ │ │ │ +256 char stringpool_str213[sizeof("cp866")]; │ │ │ │ │ +257 char stringpool_str214[sizeof("cp949")]; │ │ │ │ │ +258 char stringpool_str216[sizeof("ISO_8859-10")]; │ │ │ │ │ +259 char stringpool_str217[sizeof("iso88593")]; │ │ │ │ │ +260 char stringpool_str218[sizeof("ROMAN8")]; │ │ │ │ │ +261 char stringpool_str219[sizeof("CHINESE")]; │ │ │ │ │ +262 char stringpool_str220[sizeof("JIS0208")]; │ │ │ │ │ +263 char stringpool_str223[sizeof("ISO_8859-7")]; │ │ │ │ │ +264 char stringpool_str225[sizeof("macgreek")]; │ │ │ │ │ +265 char stringpool_str226[sizeof("cp1251")]; │ │ │ │ │ +266 char stringpool_str227[sizeof("ascii_8")]; │ │ │ │ │ +267 char stringpool_str228[sizeof("cp1258")]; │ │ │ │ │ +268 char stringpool_str229[sizeof("ECMA-118")]; │ │ │ │ │ +269 char stringpool_str230[sizeof("cp1255")]; │ │ │ │ │ +270 char stringpool_str231[sizeof("CP1256")]; │ │ │ │ │ +271 char stringpool_str232[sizeof("IBM866")]; │ │ │ │ │ +272 char stringpool_str233[sizeof("ISO-8859-3")]; │ │ │ │ │ +273 char stringpool_str234[sizeof("LATIN2")]; │ │ │ │ │ +274 char stringpool_str235[sizeof("BIG5")]; │ │ │ │ │ +275 char stringpool_str236[sizeof("MULELAO-1")]; │ │ │ │ │ +276 char stringpool_str237[sizeof("MS-EE")]; │ │ │ │ │ +277 char stringpool_str239[sizeof("ISO646-CN")]; │ │ │ │ │ +278 char stringpool_str240[sizeof("ISO-8859-13")]; │ │ │ │ │ +279 char stringpool_str242[sizeof("ISO-IR-100")]; │ │ │ │ │ +280 char stringpool_str243[sizeof("BIG-5")]; │ │ │ │ │ +281 char stringpool_str247[sizeof("ISO-IR-127")]; │ │ │ │ │ +282 char stringpool_str248[sizeof("GREEK8")]; │ │ │ │ │ +283 char stringpool_str250[sizeof("cp1256")]; │ │ │ │ │ +284 char stringpool_str252[sizeof("CP862")]; │ │ │ │ │ +285 char stringpool_str253[sizeof("CP1361")]; │ │ │ │ │ +286 char stringpool_str255[sizeof("GBK")]; │ │ │ │ │ +287 char stringpool_str258[sizeof("ELOT_928")]; │ │ │ │ │ +288 char stringpool_str260[sizeof("CP850")]; │ │ │ │ │ +289 char stringpool_str261[sizeof("CP936")]; │ │ │ │ │ +290 char stringpool_str262[sizeof("CP950")]; │ │ │ │ │ +291 char stringpool_str263[sizeof("ISO_8859-3")]; │ │ │ │ │ +292 char stringpool_str265[sizeof("CP1254")]; │ │ │ │ │ +293 char stringpool_str266[sizeof("LATIN7")]; │ │ │ │ │ +294 char stringpool_str270[sizeof("ISO_8859-13")]; │ │ │ │ │ +295 char stringpool_str271[sizeof("cp862")]; │ │ │ │ │ +296 char stringpool_str273[sizeof("CP874")]; │ │ │ │ │ +297 char stringpool_str274[sizeof("CSKOI8R")]; │ │ │ │ │ +298 char stringpool_str275[sizeof("EUCKR")]; │ │ │ │ │ +299 char stringpool_str279[sizeof("cp850")]; │ │ │ │ │ +300 char stringpool_str280[sizeof("cp936")]; │ │ │ │ │ +301 char stringpool_str281[sizeof("cp950")]; │ │ │ │ │ +302 char stringpool_str283[sizeof("EUC-KR")]; │ │ │ │ │ +303 char stringpool_str284[sizeof("cp1254")]; │ │ │ │ │ +304 char stringpool_str285[sizeof("ECMA-114")]; │ │ │ │ │ +305 char stringpool_str288[sizeof("eucKR")]; │ │ │ │ │ +306 char stringpool_str289[sizeof("CP1252")]; │ │ │ │ │ +307 char stringpool_str290[sizeof("IBM862")]; │ │ │ │ │ +308 char stringpool_str291[sizeof("CSISO159JISX02121990")]; │ │ │ │ │ +309 char stringpool_str292[sizeof("cp874")]; │ │ │ │ │ +310 char stringpool_str293[sizeof("ISO646-JP")]; │ │ │ │ │ +311 char stringpool_str294[sizeof("CSASCII")]; │ │ │ │ │ +312 char stringpool_str295[sizeof("EUCCN")]; │ │ │ │ │ +313 char stringpool_str297[sizeof("UCS-4LE")]; │ │ │ │ │ +314 char stringpool_str298[sizeof("IBM850")]; │ │ │ │ │ +315 char stringpool_str301[sizeof("GREEK")]; │ │ │ │ │ +316 char stringpool_str302[sizeof("ISO646-US")]; │ │ │ │ │ +317 char stringpool_str303[sizeof("EUC-CN")]; │ │ │ │ │ +318 char stringpool_str304[sizeof("TIS620")]; │ │ │ │ │ +319 char stringpool_str305[sizeof("mac")]; │ │ │ │ │ +320 char stringpool_str306[sizeof("LATIN3")]; │ │ │ │ │ +321 char stringpool_str307[sizeof("CP1250")]; │ │ │ │ │ +322 char stringpool_str308[sizeof("cp1252")]; │ │ │ │ │ +323 char stringpool_str309[sizeof("UCS-2LE")]; │ │ │ │ │ +324 char stringpool_str310[sizeof("CSISOLATIN1")]; │ │ │ │ │ +325 char stringpool_str312[sizeof("TIS-620")]; │ │ │ │ │ +326 char stringpool_str313[sizeof("TCVN5712-1")]; │ │ │ │ │ +327 char stringpool_str314[sizeof("CSISOLATIN5")]; │ │ │ │ │ +328 char stringpool_str318[sizeof("GB_1988-80")]; │ │ │ │ │ +329 char stringpool_str319[sizeof("CP932")]; │ │ │ │ │ +330 char stringpool_str320[sizeof("ASMO-708")]; │ │ │ │ │ +331 char stringpool_str321[sizeof("CP1257")]; │ │ │ │ │ +332 char stringpool_str324[sizeof("KOI8-T")]; │ │ │ │ │ +333 char stringpool_str326[sizeof("cp1250")]; │ │ │ │ │ +334 char stringpool_str329[sizeof("HP-ROMAN8")]; │ │ │ │ │ +335 char stringpool_str331[sizeof("MS_KANJI")]; │ │ │ │ │ +336 char stringpool_str333[sizeof("CSVISCII")]; │ │ │ │ │ +337 char stringpool_str334[sizeof("CSISOLATIN6")]; │ │ │ │ │ +338 char stringpool_str335[sizeof("KSC_5601")]; │ │ │ │ │ +339 char stringpool_str336[sizeof("SHIFT-JIS")]; │ │ │ │ │ +340 char stringpool_str337[sizeof("ISO-IR-203")]; │ │ │ │ │ +341 char stringpool_str338[sizeof("cp932")]; │ │ │ │ │ +342 char stringpool_str339[sizeof("JOHAB")]; │ │ │ │ │ +343 char stringpool_str340[sizeof("cp1257")]; │ │ │ │ │ +344 char stringpool_str342[sizeof("ARMSCII-8")]; │ │ │ │ │ +345 char stringpool_str345[sizeof("ISO_646.IRV:1991")]; │ │ │ │ │ +346 char stringpool_str347[sizeof("TCVN-5712")]; │ │ │ │ │ +347 char stringpool_str349[sizeof("EUCJP")]; │ │ │ │ │ +348 char stringpool_str350[sizeof("UTF8")]; │ │ │ │ │ +349 char stringpool_str351[sizeof("X0201")]; │ │ │ │ │ +350 char stringpool_str352[sizeof("GB2312")]; │ │ │ │ │ +351 char stringpool_str353[sizeof("X0208")]; │ │ │ │ │ +352 char stringpool_str354[sizeof("ISO-2022-KR")]; │ │ │ │ │ +353 char stringpool_str355[sizeof("MS-CYRL")]; │ │ │ │ │ +354 char stringpool_str356[sizeof("ISO-2022-JP-1")]; │ │ │ │ │ +355 char stringpool_str357[sizeof("EUC-JP")]; │ │ │ │ │ +356 char stringpool_str358[sizeof("UTF-8")]; │ │ │ │ │ +357 char stringpool_str359[sizeof("VISCII1.1-1")]; │ │ │ │ │ +358 char stringpool_str360[sizeof("CP367")]; │ │ │ │ │ +359 char stringpool_str361[sizeof("CP1253")]; │ │ │ │ │ +360 char stringpool_str362[sizeof("eucJP")]; │ │ │ │ │ +361 char stringpool_str364[sizeof("mac_cyr")]; │ │ │ │ │ +362 char stringpool_str365[sizeof("US-ASCII")]; │ │ │ │ │ +363 char stringpool_str366[sizeof("SHIFT_JIS")]; │ │ │ │ │ +364 char stringpool_str368[sizeof("CSISOLATIN4")]; │ │ │ │ │ +365 char stringpool_str369[sizeof("TIS620-0")]; │ │ │ │ │ +366 char stringpool_str371[sizeof("CSBIG5")]; │ │ │ │ │ +367 char stringpool_str374[sizeof("ISO-2022-CN")]; │ │ │ │ │ +368 char stringpool_str377[sizeof("CP437")]; │ │ │ │ │ +369 char stringpool_str379[sizeof("CN-BIG5")]; │ │ │ │ │ +370 char stringpool_str380[sizeof("cp1253")]; │ │ │ │ │ +371 char stringpool_str381[sizeof("ARABIC")]; │ │ │ │ │ +372 char stringpool_str383[sizeof("X0212")]; │ │ │ │ │ +373 char stringpool_str384[sizeof("CSISO14JISC6220RO")]; │ │ │ │ │ +374 char stringpool_str387[sizeof("GB18030")]; │ │ │ │ │ +375 char stringpool_str389[sizeof("UCS-4BE")]; │ │ │ │ │ +376 char stringpool_str392[sizeof("CSISOLATIN2")]; │ │ │ │ │ +377 char stringpool_str393[sizeof("GEORGIAN-PS")]; │ │ │ │ │ +378 char stringpool_str394[sizeof("KS_C_5601-1989")]; │ │ │ │ │ +379 char stringpool_str395[sizeof("CP1133")]; │ │ │ │ │ +380 char stringpool_str396[sizeof("cp437")]; │ │ │ │ │ +381 char stringpool_str397[sizeof("ISO-2022-JP-2")]; │ │ │ │ │ +382 char stringpool_str398[sizeof("IBM367")]; │ │ │ │ │ +383 char stringpool_str401[sizeof("UCS-2BE")]; │ │ │ │ │ +384 char stringpool_str402[sizeof("UNICODE-1-1")]; │ │ │ │ │ +385 char stringpool_str409[sizeof("JIS_C6220-1969-RO")]; │ │ │ │ │ +386 char stringpool_str411[sizeof("MS-ARAB")]; │ │ │ │ │ +387 char stringpool_str415[sizeof("IBM437")]; │ │ │ │ │ +388 char stringpool_str418[sizeof("MAC")]; │ │ │ │ │ +389 char stringpool_str422[sizeof("UTF-16LE")]; │ │ │ │ │ +390 char stringpool_str428[sizeof("ISO-2022-JP")]; │ │ │ │ │ +391 char stringpool_str429[sizeof("CN-GB-ISOIR165")]; │ │ │ │ │ +392 char stringpool_str434[sizeof("WINDOWS-1251")]; │ │ │ │ │ +393 char stringpool_str435[sizeof("WINDOWS-1258")]; │ │ │ │ │ +394 char stringpool_str436[sizeof("WINDOWS-1255")]; │ │ │ │ │ +395 char stringpool_str438[sizeof("CSISOLATINARABIC")]; │ │ │ │ │ +396 char stringpool_str441[sizeof("MS-HEBR")]; │ │ │ │ │ +397 char stringpool_str444[sizeof("CYRILLIC")]; │ │ │ │ │ +398 char stringpool_str445[sizeof("JIS_C6226-1983")]; │ │ │ │ │ +399 char stringpool_str446[sizeof("WINDOWS-1256")]; │ │ │ │ │ +400 char stringpool_str448[sizeof("KS_C_5601-1987")]; │ │ │ │ │ +401 char stringpool_str450[sizeof("UHC")]; │ │ │ │ │ +402 char stringpool_str452[sizeof("BIGFIVE")]; │ │ │ │ │ +403 char stringpool_str454[sizeof("CN-GB")]; │ │ │ │ │ +404 char stringpool_str455[sizeof("GEORGIAN-ACADEMY")]; │ │ │ │ │ +405 char stringpool_str460[sizeof("BIG-FIVE")]; │ │ │ │ │ +406 char stringpool_str461[sizeof("CSIBM866")]; │ │ │ │ │ +407 char stringpool_str462[sizeof("UTF7")]; │ │ │ │ │ +408 char stringpool_str463[sizeof("WINDOWS-1254")]; │ │ │ │ │ +409 char stringpool_str464[sizeof("CSISOLATIN3")]; │ │ │ │ │ +410 char stringpool_str465[sizeof("UNICODE-1-1-UTF-7")]; │ │ │ │ │ +411 char stringpool_str467[sizeof("CSISO57GB1988")]; │ │ │ │ │ +412 char stringpool_str470[sizeof("UTF-7")]; │ │ │ │ │ +413 char stringpool_str472[sizeof("GB_2312-80")]; │ │ │ │ │ +414 char stringpool_str474[sizeof("CSISO2022KR")]; │ │ │ │ │ +415 char stringpool_str475[sizeof("WINDOWS-1252")]; │ │ │ │ │ +416 char stringpool_str476[sizeof("KOI8-U")]; │ │ │ │ │ +417 char stringpool_str479[sizeof("ISO_8859-8:1988")]; │ │ │ │ │ +418 char stringpool_str480[sizeof("ISO_8859-5:1988")]; │ │ │ │ │ +419 char stringpool_str483[sizeof("ISO_8859-9:1989")]; │ │ │ │ │ +420 char stringpool_str484[sizeof("WINDOWS-1250")]; │ │ │ │ │ +421 char stringpool_str485[sizeof("MACICELAND")]; │ │ │ │ │ +422 char stringpool_str486[sizeof("CSISOLATINGREEK")]; │ │ │ │ │ +423 char stringpool_str487[sizeof("ISO-2022-CN-EXT")]; │ │ │ │ │ +424 char stringpool_str488[sizeof("JIS_X0201")]; │ │ │ │ │ +425 char stringpool_str489[sizeof("JISX0201-1976")]; │ │ │ │ │ +426 char stringpool_str490[sizeof("JIS_X0208")]; │ │ │ │ │ +427 char stringpool_str491[sizeof("WINDOWS-1257")]; │ │ │ │ │ +428 char stringpool_str494[sizeof("CSISO2022CN")]; │ │ │ │ │ +429 char stringpool_str496[sizeof("MS-GREEK")]; │ │ │ │ │ +430 char stringpool_str500[sizeof │ │ │ │ │ +("EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE")]; │ │ │ │ │ +431 char stringpool_str503[sizeof("KOI8-RU")]; │ │ │ │ │ +432 char stringpool_str504[sizeof("TIS620.2529-1")]; │ │ │ │ │ +433 char stringpool_str505[sizeof("MACROMAN")]; │ │ │ │ │ +434 char stringpool_str506[sizeof("WINDOWS-874")]; │ │ │ │ │ +435 char stringpool_str507[sizeof("ISO_8859-4:1988")]; │ │ │ │ │ +436 char stringpool_str509[sizeof("CSKSC56011987")]; │ │ │ │ │ +437 char stringpool_str511[sizeof("WINDOWS-1253")]; │ │ │ │ │ +438 char stringpool_str514[sizeof("UTF-16BE")]; │ │ │ │ │ +439 char stringpool_str515[sizeof("CSISO87JISX0208")]; │ │ │ │ │ +440 char stringpool_str516[sizeof("CSISO2022JP2")]; │ │ │ │ │ +441 char stringpool_str520[sizeof("JIS_X0212")]; │ │ │ │ │ +442 char stringpool_str521[sizeof("MACROMANIA")]; │ │ │ │ │ +443 char stringpool_str522[sizeof("CSUNICODE11")]; │ │ │ │ │ +444 char stringpool_str523[sizeof("MACTHAI")]; │ │ │ │ │ +445 char stringpool_str528[sizeof("UTF-32LE")]; │ │ │ │ │ +446 char stringpool_str531[sizeof("CSHPROMAN8")]; │ │ │ │ │ +447 char stringpool_str534[sizeof("ISO_8859-1:1987")]; │ │ │ │ │ +448 char stringpool_str541[sizeof("BIG5HKSCS")]; │ │ │ │ │ +449 char stringpool_str546[sizeof("ISO_8859-6:1987")]; │ │ │ │ │ +450 char stringpool_str547[sizeof("JIS_X0212-1990")]; │ │ │ │ │ +451 char stringpool_str548[sizeof("CSISO2022JP")]; │ │ │ │ │ +452 char stringpool_str549[sizeof("BIG5-HKSCS")]; │ │ │ │ │ +453 char stringpool_str553[sizeof("CSSHIFTJIS")]; │ │ │ │ │ +454 char stringpool_str555[sizeof("ISO_8859-3:1988")]; │ │ │ │ │ +455 char stringpool_str557[sizeof("JIS_X0208-1990")]; │ │ │ │ │ +456 char stringpool_str560[sizeof("CSISOLATINHEBREW")]; │ │ │ │ │ +457 char stringpool_str561[sizeof("CSISOLATINCYRILLIC")]; │ │ │ │ │ +458 char stringpool_str563[sizeof("ISO-CELTIC")]; │ │ │ │ │ +459 char stringpool_str564[sizeof("HZ-GB-2312")]; │ │ │ │ │ +460 char stringpool_str571[sizeof("ANSI_X3.4-1968")]; │ │ │ │ │ +461 char stringpool_str572[sizeof("HEBREW")]; │ │ │ │ │ +462 char stringpool_str575[sizeof("ISO_8859-2:1987")]; │ │ │ │ │ +463 char stringpool_str577[sizeof("CSISO58GB231280")]; │ │ │ │ │ +464 char stringpool_str581[sizeof("CSGB2312")]; │ │ │ │ │ +465 char stringpool_str582[sizeof("ANSI_X3.4-1986")]; │ │ │ │ │ +466 char stringpool_str583[sizeof("CSUNICODE11UTF7")]; │ │ │ │ │ +467 char stringpool_str584[sizeof("JIS_X0208-1983")]; │ │ │ │ │ +468 char stringpool_str591[sizeof("ISO_8859-7:1987")]; │ │ │ │ │ +469 char stringpool_str594[sizeof("EUCTW")]; │ │ │ │ │ +470 char stringpool_str596[sizeof("CSEUCKR")]; │ │ │ │ │ +471 char stringpool_str602[sizeof("EUC-TW")]; │ │ │ │ │ +472 char stringpool_str605[sizeof("MACCROATIAN")]; │ │ │ │ │ +473 char stringpool_str607[sizeof("eucTW")]; │ │ │ │ │ +474 char stringpool_str614[sizeof("TIS620.2533-1")]; │ │ │ │ │ +475 char stringpool_str617[sizeof("MACGREEK")]; │ │ │ │ │ +476 char stringpool_str620[sizeof("UTF-32BE")]; │ │ │ │ │ +477 char stringpool_str625[sizeof("MACINTOSH")]; │ │ │ │ │ +478 char stringpool_str637[sizeof("UNICODELITTLE")]; │ │ │ │ │ +479 char stringpool_str641[sizeof("MS-TURK")]; │ │ │ │ │ +480 char stringpool_str645[sizeof("MACUKRAINE")]; │ │ │ │ │ +481 char stringpool_str651[sizeof("IBM-CP1133")]; │ │ │ │ │ +482 char stringpool_str658[sizeof("MACCENTRALEUROPE")]; │ │ │ │ │ +483 char stringpool_str663[sizeof("NEXTSTEP")]; │ │ │ │ │ +484 char stringpool_str664[sizeof("TIS620.2533-0")]; │ │ │ │ │ +485 char stringpool_str674[sizeof("JIS_X0212.1990-0")]; │ │ │ │ │ +486 char stringpool_str697[sizeof("MACARABIC")]; │ │ │ │ │ +487 char stringpool_str706[sizeof("UNICODEBIG")]; │ │ │ │ │ +488 char stringpool_str723[sizeof("CSPC862LATINHEBREW")]; │ │ │ │ │ +489 char stringpool_str748[sizeof("MACCYRILLIC")]; │ │ │ │ │ +490 char stringpool_str756[sizeof("WINBALTRIM")]; │ │ │ │ │ +491 char stringpool_str758[sizeof("TCVN5712-1:1993")]; │ │ │ │ │ +492 char stringpool_str762[sizeof("CSMACINTOSH")]; │ │ │ │ │ +493 char stringpool_str788[sizeof("CSHALFWIDTHKATAKANA")]; │ │ │ │ │ +494 char stringpool_str884[sizeof("MACHEBREW")]; │ │ │ │ │ +495 char stringpool_str899[sizeof("MACTURKISH")]; │ │ │ │ │ +496 char stringpool_str905[sizeof("CSPC850MULTILINGUAL")]; │ │ │ │ │ +497 char stringpool_str915[sizeof("CSEUCTW")]; │ │ │ │ │ +498 char stringpool_str1079[sizeof("CSEUCPKDFMTJAPANESE")]; │ │ │ │ │ +499 }; │ │ │ │ │ +500static const struct stringpool_t stringpool_contents = │ │ │ │ │ +501 { │ │ │ │ │ +502 "L1", │ │ │ │ │ +503 "L8", │ │ │ │ │ +504 "L5", │ │ │ │ │ +505 "L6", │ │ │ │ │ +506 "SJIS", │ │ │ │ │ +507 "koi8", │ │ │ │ │ +508 "sjis", │ │ │ │ │ +509 "R8", │ │ │ │ │ +510 "iso81", │ │ │ │ │ +511 "iso88", │ │ │ │ │ +512 "iso15", │ │ │ │ │ +513 "iso85", │ │ │ │ │ +514 "thai8", │ │ │ │ │ +515 "iso89", │ │ │ │ │ +516 "roma8", │ │ │ │ │ +517 "L4", │ │ │ │ │ +518 "utf8", │ │ │ │ │ +519 "866", │ │ │ │ │ +520 "iso815", │ │ │ │ │ +521 "big5", │ │ │ │ │ +522 "roman8", │ │ │ │ │ +523 "L2", │ │ │ │ │ +524 "646", │ │ │ │ │ +525 "iso86", │ │ │ │ │ +526 "iso88591", │ │ │ │ │ +527 "iso88598", │ │ │ │ │ +528 "iso_1", │ │ │ │ │ +529 "iso88595", │ │ │ │ │ +530 "iso88599", │ │ │ │ │ +531 "greek8", │ │ │ │ │ +532 "ISO8859-1", │ │ │ │ │ +533 "L7", │ │ │ │ │ +534 "ISO8859-8", │ │ │ │ │ +535 "iso885915", │ │ │ │ │ +536 "ISO8859-5", │ │ │ │ │ +537 "ISO8859-9", │ │ │ │ │ +538 "ISO-8859-1", │ │ │ │ │ +539 "ISO-8859-8", │ │ │ │ │ +540 "ISO8859-15", │ │ │ │ │ +541 "ISO-8859-5", │ │ │ │ │ +542 "ISO-8859-9", │ │ │ │ │ +543 "iso88596", │ │ │ │ │ +544 "ISO-IR-58", │ │ │ │ │ +545 "ISO-8859-15", │ │ │ │ │ +546 "JAVA", │ │ │ │ │ +547 "L3", │ │ │ │ │ +548 "iso14", │ │ │ │ │ +549 "iso84", │ │ │ │ │ +550 "ISO8859-6", │ │ │ │ │ +551 "ISO-IR-159", │ │ │ │ │ +552 "ISO-IR-199", │ │ │ │ │ +553 "ISO-IR-6", │ │ │ │ │ +554 "ISO-8859-6", │ │ │ │ │ +555 "862", │ │ │ │ │ +556 "HZ", │ │ │ │ │ +557 "iso646", │ │ │ │ │ +558 "ISO-IR-165", │ │ │ │ │ +559 "ISO_8859-1", │ │ │ │ │ +560 "ISO-8859-16", │ │ │ │ │ +561 "ISO_8859-8", │ │ │ │ │ +562 "ISO_8859-5", │ │ │ │ │ +563 "ISO_8859-9", │ │ │ │ │ +564 "JP", │ │ │ │ │ +565 "iso82", │ │ │ │ │ +566 "ISO_8859-15", │ │ │ │ │ +567 "iso88594", │ │ │ │ │ +568 "850", │ │ │ │ │ +569 "ISO-IR-148", │ │ │ │ │ +570 "ISO_8859-15:1998", │ │ │ │ │ +571 "ISO-IR-149", │ │ │ │ │ +572 "ISO-IR-166", │ │ │ │ │ +573 "ISO8859-4", │ │ │ │ │ +574 "ISO_8859-6", │ │ │ │ │ +575 "iso10", │ │ │ │ │ +576 "CN", │ │ │ │ │ +577 "ISO-8859-4", │ │ │ │ │ +578 "ISO_8859-16", │ │ │ │ │ +579 "KOREAN", │ │ │ │ │ +580 "ISO-IR-101", │ │ │ │ │ +581 "ISO-IR-14", │ │ │ │ │ +582 "ISO-8859-14", │ │ │ │ │ +583 "iso88592", │ │ │ │ │ +584 "KOI8-R", │ │ │ │ │ +585 "ISO-IR-109", │ │ │ │ │ +586 "C99", │ │ │ │ │ +587 "iso87", │ │ │ │ │ +588 "ISO_8859-14:1998", │ │ │ │ │ +589 "LATIN1", │ │ │ │ │ +590 "ISO8859-2", │ │ │ │ │ +591 "LATIN8", │ │ │ │ │ +592 "ISO-IR-179", │ │ │ │ │ +593 "LATIN5", │ │ │ │ │ +594 "ISO-IR-126", │ │ │ │ │ +595 "ASCII", │ │ │ │ │ +596 "ISO-8859-2", │ │ │ │ │ +597 "CP819", │ │ │ │ │ +598 "ISO_8859-4", │ │ │ │ │ +599 "TCVN", │ │ │ │ │ +600 "ISO-IR-138", │ │ │ │ │ +601 "hp15CN", │ │ │ │ │ +602 "ISO_8859-14", │ │ │ │ │ +603 "LATIN6", │ │ │ │ │ +604 "iso88597", │ │ │ │ │ +605 "ISO8859-10", │ │ │ │ │ +606 "ISO-IR-144", │ │ │ │ │ +607 "ISO_8859-16:2000", │ │ │ │ │ +608 "ISO8859-7", │ │ │ │ │ +609 "ISO-8859-10", │ │ │ │ │ +610 "iso13", │ │ │ │ │ +611 "iso83", │ │ │ │ │ +612 "ISO_8859-2", │ │ │ │ │ +613 "ISO-IR-110", │ │ │ │ │ +614 "ISO-8859-7", │ │ │ │ │ +615 "CP866", │ │ │ │ │ +616 "CP949", │ │ │ │ │ +617 "tis620", │ │ │ │ │ +618 "VISCII", │ │ │ │ │ +619 "ISO-IR-226", │ │ │ │ │ +620 "US", │ │ │ │ │ +621 "ISO-IR-87", │ │ │ │ │ +622 "ISO-IR-57", │ │ │ │ │ +623 "IBM819", │ │ │ │ │ +624 "macthai", │ │ │ │ │ +625 "MS-ANSI", │ │ │ │ │ +626 "macturk", │ │ │ │ │ +627 "CP1251", │ │ │ │ │ +628 "ISO-IR-157", │ │ │ │ │ +629 "CP1258", │ │ │ │ │ +630 "LATIN4", │ │ │ │ │ +631 "CP1255", │ │ │ │ │ +632 "ISO_8859-10:1992", │ │ │ │ │ +633 "cp866", │ │ │ │ │ +634 "cp949", │ │ │ │ │ +635 "ISO_8859-10", │ │ │ │ │ +636 "iso88593", │ │ │ │ │ +637 "ROMAN8", │ │ │ │ │ +638 "CHINESE", │ │ │ │ │ +639 "JIS0208", │ │ │ │ │ +640 "ISO_8859-7", │ │ │ │ │ +641 "macgreek", │ │ │ │ │ +642 "cp1251", │ │ │ │ │ +643 "ascii_8", │ │ │ │ │ +644 "cp1258", │ │ │ │ │ +645 "ECMA-118", │ │ │ │ │ +646 "cp1255", │ │ │ │ │ +647 "CP1256", │ │ │ │ │ +648 "IBM866", │ │ │ │ │ +649 "ISO-8859-3", │ │ │ │ │ +650 "LATIN2", │ │ │ │ │ +651 "BIG5", │ │ │ │ │ +652 "MULELAO-1", │ │ │ │ │ +653 "MS-EE", │ │ │ │ │ +654 "ISO646-CN", │ │ │ │ │ +655 "ISO-8859-13", │ │ │ │ │ +656 "ISO-IR-100", │ │ │ │ │ +657 "BIG-5", │ │ │ │ │ +658 "ISO-IR-127", │ │ │ │ │ +659 "GREEK8", │ │ │ │ │ +660 "cp1256", │ │ │ │ │ +661 "CP862", │ │ │ │ │ +662 "CP1361", │ │ │ │ │ +663 "GBK", │ │ │ │ │ +664 "ELOT_928", │ │ │ │ │ +665 "CP850", │ │ │ │ │ +666 "CP936", │ │ │ │ │ +667 "CP950", │ │ │ │ │ +668 "ISO_8859-3", │ │ │ │ │ +669 "CP1254", │ │ │ │ │ +670 "LATIN7", │ │ │ │ │ +671 "ISO_8859-13", │ │ │ │ │ +672 "cp862", │ │ │ │ │ +673 "CP874", │ │ │ │ │ +674 "CSKOI8R", │ │ │ │ │ +675 "EUCKR", │ │ │ │ │ +676 "cp850", │ │ │ │ │ +677 "cp936", │ │ │ │ │ +678 "cp950", │ │ │ │ │ +679 "EUC-KR", │ │ │ │ │ +680 "cp1254", │ │ │ │ │ +681 "ECMA-114", │ │ │ │ │ +682 "eucKR", │ │ │ │ │ +683 "CP1252", │ │ │ │ │ +684 "IBM862", │ │ │ │ │ +685 "CSISO159JISX02121990", │ │ │ │ │ +686 "cp874", │ │ │ │ │ +687 "ISO646-JP", │ │ │ │ │ +688 "CSASCII", │ │ │ │ │ +689 "EUCCN", │ │ │ │ │ +690 "UCS-4LE", │ │ │ │ │ +691 "IBM850", │ │ │ │ │ +692 "GREEK", │ │ │ │ │ +693 "ISO646-US", │ │ │ │ │ +694 "EUC-CN", │ │ │ │ │ +695 "TIS620", │ │ │ │ │ +696 "mac", │ │ │ │ │ +697 "LATIN3", │ │ │ │ │ +698 "CP1250", │ │ │ │ │ +699 "cp1252", │ │ │ │ │ +700 "UCS-2LE", │ │ │ │ │ +701 "CSISOLATIN1", │ │ │ │ │ +702 "TIS-620", │ │ │ │ │ +703 "TCVN5712-1", │ │ │ │ │ +704 "CSISOLATIN5", │ │ │ │ │ +705 "GB_1988-80", │ │ │ │ │ +706 "CP932", │ │ │ │ │ +707 "ASMO-708", │ │ │ │ │ +708 "CP1257", │ │ │ │ │ +709 "KOI8-T", │ │ │ │ │ +710 "cp1250", │ │ │ │ │ +711 "HP-ROMAN8", │ │ │ │ │ +712 "MS_KANJI", │ │ │ │ │ +713 "CSVISCII", │ │ │ │ │ +714 "CSISOLATIN6", │ │ │ │ │ +715 "KSC_5601", │ │ │ │ │ +716 "SHIFT-JIS", │ │ │ │ │ +717 "ISO-IR-203", │ │ │ │ │ +718 "cp932", │ │ │ │ │ +719 "JOHAB", │ │ │ │ │ +720 "cp1257", │ │ │ │ │ +721 "ARMSCII-8", │ │ │ │ │ +722 "ISO_646.IRV:1991", │ │ │ │ │ +723 "TCVN-5712", │ │ │ │ │ +724 "EUCJP", │ │ │ │ │ +725 "UTF8", │ │ │ │ │ +726 "X0201", │ │ │ │ │ +727 "GB2312", │ │ │ │ │ +728 "X0208", │ │ │ │ │ +729 "ISO-2022-KR", │ │ │ │ │ +730 "MS-CYRL", │ │ │ │ │ +731 "ISO-2022-JP-1", │ │ │ │ │ +732 "EUC-JP", │ │ │ │ │ +733 "UTF-8", │ │ │ │ │ +734 "VISCII1.1-1", │ │ │ │ │ +735 "CP367", │ │ │ │ │ +736 "CP1253", │ │ │ │ │ +737 "eucJP", │ │ │ │ │ +738 "mac_cyr", │ │ │ │ │ +739 "US-ASCII", │ │ │ │ │ +740 "SHIFT_JIS", │ │ │ │ │ +741 "CSISOLATIN4", │ │ │ │ │ +742 "TIS620-0", │ │ │ │ │ +743 "CSBIG5", │ │ │ │ │ +744 "ISO-2022-CN", │ │ │ │ │ +745 "CP437", │ │ │ │ │ +746 "CN-BIG5", │ │ │ │ │ +747 "cp1253", │ │ │ │ │ +748 "ARABIC", │ │ │ │ │ +749 "X0212", │ │ │ │ │ +750 "CSISO14JISC6220RO", │ │ │ │ │ +751 "GB18030", │ │ │ │ │ +752 "UCS-4BE", │ │ │ │ │ +753 "CSISOLATIN2", │ │ │ │ │ +754 "GEORGIAN-PS", │ │ │ │ │ +755 "KS_C_5601-1989", │ │ │ │ │ +756 "CP1133", │ │ │ │ │ +757 "cp437", │ │ │ │ │ +758 "ISO-2022-JP-2", │ │ │ │ │ +759 "IBM367", │ │ │ │ │ +760 "UCS-2BE", │ │ │ │ │ +761 "UNICODE-1-1", │ │ │ │ │ +762 "JIS_C6220-1969-RO", │ │ │ │ │ +763 "MS-ARAB", │ │ │ │ │ +764 "IBM437", │ │ │ │ │ +765 "MAC", │ │ │ │ │ +766 "UTF-16LE", │ │ │ │ │ +767 "ISO-2022-JP", │ │ │ │ │ +768 "CN-GB-ISOIR165", │ │ │ │ │ +769 "WINDOWS-1251", │ │ │ │ │ +770 "WINDOWS-1258", │ │ │ │ │ +771 "WINDOWS-1255", │ │ │ │ │ +772 "CSISOLATINARABIC", │ │ │ │ │ +773 "MS-HEBR", │ │ │ │ │ +774 "CYRILLIC", │ │ │ │ │ +775 "JIS_C6226-1983", │ │ │ │ │ +776 "WINDOWS-1256", │ │ │ │ │ +777 "KS_C_5601-1987", │ │ │ │ │ +778 "UHC", │ │ │ │ │ +779 "BIGFIVE", │ │ │ │ │ +780 "CN-GB", │ │ │ │ │ +781 "GEORGIAN-ACADEMY", │ │ │ │ │ +782 "BIG-FIVE", │ │ │ │ │ +783 "CSIBM866", │ │ │ │ │ +784 "UTF7", │ │ │ │ │ +785 "WINDOWS-1254", │ │ │ │ │ +786 "CSISOLATIN3", │ │ │ │ │ +787 "UNICODE-1-1-UTF-7", │ │ │ │ │ +788 "CSISO57GB1988", │ │ │ │ │ +789 "UTF-7", │ │ │ │ │ +790 "GB_2312-80", │ │ │ │ │ +791 "CSISO2022KR", │ │ │ │ │ +792 "WINDOWS-1252", │ │ │ │ │ +793 "KOI8-U", │ │ │ │ │ +794 "ISO_8859-8:1988", │ │ │ │ │ +795 "ISO_8859-5:1988", │ │ │ │ │ +796 "ISO_8859-9:1989", │ │ │ │ │ +797 "WINDOWS-1250", │ │ │ │ │ +798 "MACICELAND", │ │ │ │ │ +799 "CSISOLATINGREEK", │ │ │ │ │ +800 "ISO-2022-CN-EXT", │ │ │ │ │ +801 "JIS_X0201", │ │ │ │ │ +802 "JISX0201-1976", │ │ │ │ │ +803 "JIS_X0208", │ │ │ │ │ +804 "WINDOWS-1257", │ │ │ │ │ +805 "CSISO2022CN", │ │ │ │ │ +806 "MS-GREEK", │ │ │ │ │ +807 "EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE", │ │ │ │ │ +808 "KOI8-RU", │ │ │ │ │ +809 "TIS620.2529-1", │ │ │ │ │ +810 "MACROMAN", │ │ │ │ │ +811 "WINDOWS-874", │ │ │ │ │ +812 "ISO_8859-4:1988", │ │ │ │ │ +813 "CSKSC56011987", │ │ │ │ │ +814 "WINDOWS-1253", │ │ │ │ │ +815 "UTF-16BE", │ │ │ │ │ +816 "CSISO87JISX0208", │ │ │ │ │ +817 "CSISO2022JP2", │ │ │ │ │ +818 "JIS_X0212", │ │ │ │ │ +819 "MACROMANIA", │ │ │ │ │ +820 "CSUNICODE11", │ │ │ │ │ +821 "MACTHAI", │ │ │ │ │ +822 "UTF-32LE", │ │ │ │ │ +823 "CSHPROMAN8", │ │ │ │ │ +824 "ISO_8859-1:1987", │ │ │ │ │ +825 "BIG5HKSCS", │ │ │ │ │ +826 "ISO_8859-6:1987", │ │ │ │ │ +827 "JIS_X0212-1990", │ │ │ │ │ +828 "CSISO2022JP", │ │ │ │ │ +829 "BIG5-HKSCS", │ │ │ │ │ +830 "CSSHIFTJIS", │ │ │ │ │ +831 "ISO_8859-3:1988", │ │ │ │ │ +832 "JIS_X0208-1990", │ │ │ │ │ +833 "CSISOLATINHEBREW", │ │ │ │ │ +834 "CSISOLATINCYRILLIC", │ │ │ │ │ +835 "ISO-CELTIC", │ │ │ │ │ +836 "HZ-GB-2312", │ │ │ │ │ +837 "ANSI_X3.4-1968", │ │ │ │ │ +838 "HEBREW", │ │ │ │ │ +839 "ISO_8859-2:1987", │ │ │ │ │ +840 "CSISO58GB231280", │ │ │ │ │ +841 "CSGB2312", │ │ │ │ │ +842 "ANSI_X3.4-1986", │ │ │ │ │ +843 "CSUNICODE11UTF7", │ │ │ │ │ +844 "JIS_X0208-1983", │ │ │ │ │ +845 "ISO_8859-7:1987", │ │ │ │ │ +846 "EUCTW", │ │ │ │ │ +847 "CSEUCKR", │ │ │ │ │ +848 "EUC-TW", │ │ │ │ │ +849 "MACCROATIAN", │ │ │ │ │ +850 "eucTW", │ │ │ │ │ +851 "TIS620.2533-1", │ │ │ │ │ +852 "MACGREEK", │ │ │ │ │ +853 "UTF-32BE", │ │ │ │ │ +854 "MACINTOSH", │ │ │ │ │ +855 "UNICODELITTLE", │ │ │ │ │ +856 "MS-TURK", │ │ │ │ │ +857 "MACUKRAINE", │ │ │ │ │ +858 "IBM-CP1133", │ │ │ │ │ +859 "MACCENTRALEUROPE", │ │ │ │ │ +860 "NEXTSTEP", │ │ │ │ │ +861 "TIS620.2533-0", │ │ │ │ │ +862 "JIS_X0212.1990-0", │ │ │ │ │ +863 "MACARABIC", │ │ │ │ │ +864 "UNICODEBIG", │ │ │ │ │ +865 "CSPC862LATINHEBREW", │ │ │ │ │ +866 "MACCYRILLIC", │ │ │ │ │ +867 "WINBALTRIM", │ │ │ │ │ +868 "TCVN5712-1:1993", │ │ │ │ │ +869 "CSMACINTOSH", │ │ │ │ │ +870 "CSHALFWIDTHKATAKANA", │ │ │ │ │ +871 "MACHEBREW", │ │ │ │ │ +872 "MACTURKISH", │ │ │ │ │ +873 "CSPC850MULTILINGUAL", │ │ │ │ │ +874 "CSEUCTW", │ │ │ │ │ +875 "CSEUCPKDFMTJAPANESE" │ │ │ │ │ +876 }; │ │ │ │ │ +877#define stringpool ((const char *) &stringpool_contents) │ │ │ │ │ +878const struct charset_alias * │ │ │ │ │ +879charset_lookup (register const char *str, register size_t len) │ │ │ │ │ +880{ │ │ │ │ │ +881 static const struct charset_alias wordlist[] = │ │ │ │ │ +882 { │ │ │ │ │ +883 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +884 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +885 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +886#line 228 "charset_lookup.gperf" │ │ │ │ │ +887 {(int)offsetof(struct stringpool_t, stringpool_str15), 0}, │ │ │ │ │ +888#line 235 "charset_lookup.gperf" │ │ │ │ │ +889 {(int)offsetof(struct stringpool_t, stringpool_str16), 47}, │ │ │ │ │ +890#line 232 "charset_lookup.gperf" │ │ │ │ │ +891 {(int)offsetof(struct stringpool_t, stringpool_str17), 57}, │ │ │ │ │ +892 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +893 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +894#line 233 "charset_lookup.gperf" │ │ │ │ │ +895 {(int)offsetof(struct stringpool_t, stringpool_str27), 45}, │ │ │ │ │ +896#line 272 "charset_lookup.gperf" │ │ │ │ │ +897 {(int)offsetof(struct stringpool_t, stringpool_str28), 84}, │ │ │ │ │ +898 {-1,-1}, │ │ │ │ │ +899#line 375 "charset_lookup.gperf" │ │ │ │ │ +900 {(int)offsetof(struct stringpool_t, stringpool_str30), 65}, │ │ │ │ │ +901#line 359 "charset_lookup.gperf" │ │ │ │ │ +902 {(int)offsetof(struct stringpool_t, stringpool_str31), 84}, │ │ │ │ │ +903 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +904#line 268 "charset_lookup.gperf" │ │ │ │ │ +905 {(int)offsetof(struct stringpool_t, stringpool_str35), 83}, │ │ │ │ │ +906#line 337 "charset_lookup.gperf" │ │ │ │ │ +907 {(int)offsetof(struct stringpool_t, stringpool_str36), 0}, │ │ │ │ │ +908 {-1,-1}, │ │ │ │ │ +909#line 345 "charset_lookup.gperf" │ │ │ │ │ +910 {(int)offsetof(struct stringpool_t, stringpool_str38), 56}, │ │ │ │ │ +911#line 372 "charset_lookup.gperf" │ │ │ │ │ +912 {(int)offsetof(struct stringpool_t, stringpool_str39), 48}, │ │ │ │ │ +913#line 342 "charset_lookup.gperf" │ │ │ │ │ +914 {(int)offsetof(struct stringpool_t, stringpool_str40), 53}, │ │ │ │ │ +915#line 360 "charset_lookup.gperf" │ │ │ │ │ +916 {(int)offsetof(struct stringpool_t, stringpool_str41), 61}, │ │ │ │ │ +917#line 356 "charset_lookup.gperf" │ │ │ │ │ +918 {(int)offsetof(struct stringpool_t, stringpool_str42), 57}, │ │ │ │ │ +919#line 357 "charset_lookup.gperf" │ │ │ │ │ +920 {(int)offsetof(struct stringpool_t, stringpool_str43), 83}, │ │ │ │ │ +921#line 231 "charset_lookup.gperf" │ │ │ │ │ +922 {(int)offsetof(struct stringpool_t, stringpool_str44), 52}, │ │ │ │ │ +923#line 362 "charset_lookup.gperf" │ │ │ │ │ +924 {(int)offsetof(struct stringpool_t, stringpool_str45), 1}, │ │ │ │ │ +925#line 10 "charset_lookup.gperf" │ │ │ │ │ +926 {(int)offsetof(struct stringpool_t, stringpool_str46), 26}, │ │ │ │ │ +927#line 338 "charset_lookup.gperf" │ │ │ │ │ +928 {(int)offsetof(struct stringpool_t, stringpool_str47), 48}, │ │ │ │ │ +929#line 318 "charset_lookup.gperf" │ │ │ │ │ +930 {(int)offsetof(struct stringpool_t, stringpool_str48), 5}, │ │ │ │ │ +931 {-1,-1}, │ │ │ │ │ +932#line 358 "charset_lookup.gperf" │ │ │ │ │ +933 {(int)offsetof(struct stringpool_t, stringpool_str50), 83}, │ │ │ │ │ +934 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +935#line 229 "charset_lookup.gperf" │ │ │ │ │ +936 {(int)offsetof(struct stringpool_t, stringpool_str56), 50}, │ │ │ │ │ +937#line 7 "charset_lookup.gperf" │ │ │ │ │ +938 {(int)offsetof(struct stringpool_t, stringpool_str57), 88}, │ │ │ │ │ +939 {-1,-1}, {-1,-1}, │ │ │ │ │ +940#line 343 "charset_lookup.gperf" │ │ │ │ │ +941 {(int)offsetof(struct stringpool_t, stringpool_str60), 54}, │ │ │ │ │ +942 {-1,-1}, {-1,-1}, │ │ │ │ │ +943#line 346 "charset_lookup.gperf" │ │ │ │ │ +944 {(int)offsetof(struct stringpool_t, stringpool_str63), 0}, │ │ │ │ │ +945 {-1,-1}, │ │ │ │ │ +946#line 354 "charset_lookup.gperf" │ │ │ │ │ +947 {(int)offsetof(struct stringpool_t, stringpool_str65), 56}, │ │ │ │ │ +948#line 374 "charset_lookup.gperf" │ │ │ │ │ +949 {(int)offsetof(struct stringpool_t, stringpool_str66), 0}, │ │ │ │ │ +950#line 351 "charset_lookup.gperf" │ │ │ │ │ +951 {(int)offsetof(struct stringpool_t, stringpool_str67), 53}, │ │ │ │ │ +952 {-1,-1}, │ │ │ │ │ +953#line 355 "charset_lookup.gperf" │ │ │ │ │ +954 {(int)offsetof(struct stringpool_t, stringpool_str69), 57}, │ │ │ │ │ +955#line 368 "charset_lookup.gperf" │ │ │ │ │ +956 {(int)offsetof(struct stringpool_t, stringpool_str70), 55}, │ │ │ │ │ +957#line 168 "charset_lookup.gperf" │ │ │ │ │ +958 {(int)offsetof(struct stringpool_t, stringpool_str71), 0}, │ │ │ │ │ +959#line 234 "charset_lookup.gperf" │ │ │ │ │ +960 {(int)offsetof(struct stringpool_t, stringpool_str72), 46}, │ │ │ │ │ +961#line 176 "charset_lookup.gperf" │ │ │ │ │ +962 {(int)offsetof(struct stringpool_t, stringpool_str73), 56}, │ │ │ │ │ +963#line 347 "charset_lookup.gperf" │ │ │ │ │ +964 {(int)offsetof(struct stringpool_t, stringpool_str74), 48}, │ │ │ │ │ +965#line 173 "charset_lookup.gperf" │ │ │ │ │ +966 {(int)offsetof(struct stringpool_t, stringpool_str75), 53}, │ │ │ │ │ +967 {-1,-1}, │ │ │ │ │ +968#line 177 "charset_lookup.gperf" │ │ │ │ │ +969 {(int)offsetof(struct stringpool_t, stringpool_str77), 57}, │ │ │ │ │ +970 {-1,-1}, │ │ │ │ │ +971#line 127 "charset_lookup.gperf" │ │ │ │ │ +972 {(int)offsetof(struct stringpool_t, stringpool_str79), 0}, │ │ │ │ │ +973 {-1,-1}, │ │ │ │ │ +974#line 139 "charset_lookup.gperf" │ │ │ │ │ +975 {(int)offsetof(struct stringpool_t, stringpool_str81), 56}, │ │ │ │ │ +976#line 170 "charset_lookup.gperf" │ │ │ │ │ +977 {(int)offsetof(struct stringpool_t, stringpool_str82), 48}, │ │ │ │ │ +978#line 136 "charset_lookup.gperf" │ │ │ │ │ +979 {(int)offsetof(struct stringpool_t, stringpool_str83), 53}, │ │ │ │ │ +980 {-1,-1}, │ │ │ │ │ +981#line 140 "charset_lookup.gperf" │ │ │ │ │ +982 {(int)offsetof(struct stringpool_t, stringpool_str85), 57}, │ │ │ │ │ +983 {-1,-1}, │ │ │ │ │ +984#line 352 "charset_lookup.gperf" │ │ │ │ │ +985 {(int)offsetof(struct stringpool_t, stringpool_str87), 54}, │ │ │ │ │ +986 {-1,-1}, │ │ │ │ │ +987#line 162 "charset_lookup.gperf" │ │ │ │ │ +988 {(int)offsetof(struct stringpool_t, stringpool_str89), 8}, │ │ │ │ │ +989#line 131 "charset_lookup.gperf" │ │ │ │ │ +990 {(int)offsetof(struct stringpool_t, stringpool_str90), 48}, │ │ │ │ │ +991#line 206 "charset_lookup.gperf" │ │ │ │ │ +992 {(int)offsetof(struct stringpool_t, stringpool_str91), 63}, │ │ │ │ │ +993#line 230 "charset_lookup.gperf" │ │ │ │ │ +994 {(int)offsetof(struct stringpool_t, stringpool_str92), 51}, │ │ │ │ │ +995#line 371 "charset_lookup.gperf" │ │ │ │ │ +996 {(int)offsetof(struct stringpool_t, stringpool_str93), 47}, │ │ │ │ │ +997#line 341 "charset_lookup.gperf" │ │ │ │ │ +998 {(int)offsetof(struct stringpool_t, stringpool_str94), 52}, │ │ │ │ │ +999#line 174 "charset_lookup.gperf" │ │ │ │ │ +1000 {(int)offsetof(struct stringpool_t, stringpool_str95), 54}, │ │ │ │ │ +1001 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1002#line 154 "charset_lookup.gperf" │ │ │ │ │ +1003 {(int)offsetof(struct stringpool_t, stringpool_str100), 60}, │ │ │ │ │ +1004#line 158 "charset_lookup.gperf" │ │ │ │ │ +1005 {(int)offsetof(struct stringpool_t, stringpool_str101), 47}, │ │ │ │ │ +1006#line 163 "charset_lookup.gperf" │ │ │ │ │ +1007 {(int)offsetof(struct stringpool_t, stringpool_str102), 88}, │ │ │ │ │ +1008#line 137 "charset_lookup.gperf" │ │ │ │ │ +1009 {(int)offsetof(struct stringpool_t, stringpool_str103), 54}, │ │ │ │ │ +1010#line 9 "charset_lookup.gperf" │ │ │ │ │ +1011 {(int)offsetof(struct stringpool_t, stringpool_str104), 25}, │ │ │ │ │ +1012#line 112 "charset_lookup.gperf" │ │ │ │ │ +1013 {(int)offsetof(struct stringpool_t, stringpool_str105), 38}, │ │ │ │ │ +1014 {-1,-1}, │ │ │ │ │ +1015#line 373 "charset_lookup.gperf" │ │ │ │ │ +1016 {(int)offsetof(struct stringpool_t, stringpool_str107), 88}, │ │ │ │ │ +1017#line 155 "charset_lookup.gperf" │ │ │ │ │ +1018 {(int)offsetof(struct stringpool_t, stringpool_str108), 11}, │ │ │ │ │ +1019#line 179 "charset_lookup.gperf" │ │ │ │ │ +1020 {(int)offsetof(struct stringpool_t, stringpool_str109), 0}, │ │ │ │ │ +1021#line 132 "charset_lookup.gperf" │ │ │ │ │ +1022 {(int)offsetof(struct stringpool_t, stringpool_str110), 49}, │ │ │ │ │ +1023#line 202 "charset_lookup.gperf" │ │ │ │ │ +1024 {(int)offsetof(struct stringpool_t, stringpool_str111), 56}, │ │ │ │ │ +1025 {-1,-1}, │ │ │ │ │ +1026#line 196 "charset_lookup.gperf" │ │ │ │ │ +1027 {(int)offsetof(struct stringpool_t, stringpool_str113), 53}, │ │ │ │ │ +1028 {-1,-1}, │ │ │ │ │ +1029#line 204 "charset_lookup.gperf" │ │ │ │ │ +1030 {(int)offsetof(struct stringpool_t, stringpool_str115), 57}, │ │ │ │ │ +1031#line 219 "charset_lookup.gperf" │ │ │ │ │ +1032 {(int)offsetof(struct stringpool_t, stringpool_str116), 58}, │ │ │ │ │ +1033 {-1,-1}, │ │ │ │ │ +1034#line 339 "charset_lookup.gperf" │ │ │ │ │ +1035 {(int)offsetof(struct stringpool_t, stringpool_str118), 50}, │ │ │ │ │ +1036 {-1,-1}, │ │ │ │ │ +1037#line 185 "charset_lookup.gperf" │ │ │ │ │ +1038 {(int)offsetof(struct stringpool_t, stringpool_str120), 48}, │ │ │ │ │ +1039#line 350 "charset_lookup.gperf" │ │ │ │ │ +1040 {(int)offsetof(struct stringpool_t, stringpool_str121), 52}, │ │ │ │ │ +1041#line 8 "charset_lookup.gperf" │ │ │ │ │ +1042 {(int)offsetof(struct stringpool_t, stringpool_str122), 24}, │ │ │ │ │ +1043#line 151 "charset_lookup.gperf" │ │ │ │ │ +1044 {(int)offsetof(struct stringpool_t, stringpool_str123), 57}, │ │ │ │ │ +1045#line 186 "charset_lookup.gperf" │ │ │ │ │ +1046 {(int)offsetof(struct stringpool_t, stringpool_str124), 48}, │ │ │ │ │ +1047 {-1,-1}, {-1,-1}, │ │ │ │ │ +1048#line 152 "charset_lookup.gperf" │ │ │ │ │ +1049 {(int)offsetof(struct stringpool_t, stringpool_str127), 59}, │ │ │ │ │ +1050#line 156 "charset_lookup.gperf" │ │ │ │ │ +1051 {(int)offsetof(struct stringpool_t, stringpool_str128), 61}, │ │ │ │ │ +1052#line 172 "charset_lookup.gperf" │ │ │ │ │ +1053 {(int)offsetof(struct stringpool_t, stringpool_str129), 52}, │ │ │ │ │ +1054 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1055#line 198 "charset_lookup.gperf" │ │ │ │ │ +1056 {(int)offsetof(struct stringpool_t, stringpool_str133), 54}, │ │ │ │ │ +1057 {-1,-1}, │ │ │ │ │ +1058#line 369 "charset_lookup.gperf" │ │ │ │ │ +1059 {(int)offsetof(struct stringpool_t, stringpool_str135), 45}, │ │ │ │ │ +1060#line 25 "charset_lookup.gperf" │ │ │ │ │ +1061 {(int)offsetof(struct stringpool_t, stringpool_str136), 9}, │ │ │ │ │ +1062#line 135 "charset_lookup.gperf" │ │ │ │ │ +1063 {(int)offsetof(struct stringpool_t, stringpool_str137), 52}, │ │ │ │ │ +1064 {-1,-1}, {-1,-1}, │ │ │ │ │ +1065#line 187 "charset_lookup.gperf" │ │ │ │ │ +1066 {(int)offsetof(struct stringpool_t, stringpool_str140), 49}, │ │ │ │ │ +1067#line 224 "charset_lookup.gperf" │ │ │ │ │ +1068 {(int)offsetof(struct stringpool_t, stringpool_str141), 59}, │ │ │ │ │ +1069#line 143 "charset_lookup.gperf" │ │ │ │ │ +1070 {(int)offsetof(struct stringpool_t, stringpool_str142), 50}, │ │ │ │ │ +1071#line 149 "charset_lookup.gperf" │ │ │ │ │ +1072 {(int)offsetof(struct stringpool_t, stringpool_str143), 58}, │ │ │ │ │ +1073#line 130 "charset_lookup.gperf" │ │ │ │ │ +1074 {(int)offsetof(struct stringpool_t, stringpool_str144), 47}, │ │ │ │ │ +1075#line 348 "charset_lookup.gperf" │ │ │ │ │ +1076 {(int)offsetof(struct stringpool_t, stringpool_str145), 50}, │ │ │ │ │ +1077#line 220 "charset_lookup.gperf" │ │ │ │ │ +1078 {(int)offsetof(struct stringpool_t, stringpool_str146), 65}, │ │ │ │ │ +1079 {-1,-1}, │ │ │ │ │ +1080#line 144 "charset_lookup.gperf" │ │ │ │ │ +1081 {(int)offsetof(struct stringpool_t, stringpool_str148), 51}, │ │ │ │ │ +1082#line 23 "charset_lookup.gperf" │ │ │ │ │ +1083 {(int)offsetof(struct stringpool_t, stringpool_str149), 7}, │ │ │ │ │ +1084#line 344 "charset_lookup.gperf" │ │ │ │ │ +1085 {(int)offsetof(struct stringpool_t, stringpool_str150), 55}, │ │ │ │ │ +1086#line 184 "charset_lookup.gperf" │ │ │ │ │ +1087 {(int)offsetof(struct stringpool_t, stringpool_str151), 47}, │ │ │ │ │ +1088#line 236 "charset_lookup.gperf" │ │ │ │ │ +1089 {(int)offsetof(struct stringpool_t, stringpool_str152), 0}, │ │ │ │ │ +1090#line 171 "charset_lookup.gperf" │ │ │ │ │ +1091 {(int)offsetof(struct stringpool_t, stringpool_str153), 50}, │ │ │ │ │ +1092#line 243 "charset_lookup.gperf" │ │ │ │ │ +1093 {(int)offsetof(struct stringpool_t, stringpool_str154), 47}, │ │ │ │ │ +1094#line 157 "charset_lookup.gperf" │ │ │ │ │ +1095 {(int)offsetof(struct stringpool_t, stringpool_str155), 46}, │ │ │ │ │ +1096#line 240 "charset_lookup.gperf" │ │ │ │ │ +1097 {(int)offsetof(struct stringpool_t, stringpool_str156), 57}, │ │ │ │ │ +1098#line 146 "charset_lookup.gperf" │ │ │ │ │ +1099 {(int)offsetof(struct stringpool_t, stringpool_str157), 55}, │ │ │ │ │ +1100#line 15 "charset_lookup.gperf" │ │ │ │ │ +1101 {(int)offsetof(struct stringpool_t, stringpool_str158), 88}, │ │ │ │ │ +1102 {-1,-1}, {-1,-1}, │ │ │ │ │ +1103#line 133 "charset_lookup.gperf" │ │ │ │ │ +1104 {(int)offsetof(struct stringpool_t, stringpool_str161), 50}, │ │ │ │ │ +1105 {-1,-1}, {-1,-1}, │ │ │ │ │ +1106#line 42 "charset_lookup.gperf" │ │ │ │ │ +1107 {(int)offsetof(struct stringpool_t, stringpool_str164), 0}, │ │ │ │ │ +1108 {-1,-1}, {-1,-1}, │ │ │ │ │ +1109#line 194 "charset_lookup.gperf" │ │ │ │ │ +1110 {(int)offsetof(struct stringpool_t, stringpool_str167), 52}, │ │ │ │ │ +1111 {-1,-1}, {-1,-1}, │ │ │ │ │ +1112#line 273 "charset_lookup.gperf" │ │ │ │ │ +1113 {(int)offsetof(struct stringpool_t, stringpool_str170), 85}, │ │ │ │ │ +1114#line 148 "charset_lookup.gperf" │ │ │ │ │ +1115 {(int)offsetof(struct stringpool_t, stringpool_str171), 56}, │ │ │ │ │ +1116 {-1,-1}, │ │ │ │ │ +1117#line 336 "charset_lookup.gperf" │ │ │ │ │ +1118 {(int)offsetof(struct stringpool_t, stringpool_str173), 8}, │ │ │ │ │ +1119#line 183 "charset_lookup.gperf" │ │ │ │ │ +1120 {(int)offsetof(struct stringpool_t, stringpool_str174), 47}, │ │ │ │ │ +1121 {-1,-1}, │ │ │ │ │ +1122#line 241 "charset_lookup.gperf" │ │ │ │ │ +1123 {(int)offsetof(struct stringpool_t, stringpool_str176), 45}, │ │ │ │ │ +1124#line 353 "charset_lookup.gperf" │ │ │ │ │ +1125 {(int)offsetof(struct stringpool_t, stringpool_str177), 55}, │ │ │ │ │ +1126#line 169 "charset_lookup.gperf" │ │ │ │ │ +1127 {(int)offsetof(struct stringpool_t, stringpool_str178), 45}, │ │ │ │ │ +1128#line 150 "charset_lookup.gperf" │ │ │ │ │ +1129 {(int)offsetof(struct stringpool_t, stringpool_str179), 53}, │ │ │ │ │ +1130 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1131#line 188 "charset_lookup.gperf" │ │ │ │ │ +1132 {(int)offsetof(struct stringpool_t, stringpool_str183), 49}, │ │ │ │ │ +1133 {-1,-1}, │ │ │ │ │ +1134#line 175 "charset_lookup.gperf" │ │ │ │ │ +1135 {(int)offsetof(struct stringpool_t, stringpool_str185), 55}, │ │ │ │ │ +1136#line 128 "charset_lookup.gperf" │ │ │ │ │ +1137 {(int)offsetof(struct stringpool_t, stringpool_str186), 45}, │ │ │ │ │ +1138 {-1,-1}, {-1,-1}, │ │ │ │ │ +1139#line 370 "charset_lookup.gperf" │ │ │ │ │ +1140 {(int)offsetof(struct stringpool_t, stringpool_str189), 46}, │ │ │ │ │ +1141#line 340 "charset_lookup.gperf" │ │ │ │ │ +1142 {(int)offsetof(struct stringpool_t, stringpool_str190), 51}, │ │ │ │ │ +1143#line 190 "charset_lookup.gperf" │ │ │ │ │ +1144 {(int)offsetof(struct stringpool_t, stringpool_str191), 50}, │ │ │ │ │ +1145#line 145 "charset_lookup.gperf" │ │ │ │ │ +1146 {(int)offsetof(struct stringpool_t, stringpool_str192), 52}, │ │ │ │ │ +1147#line 138 "charset_lookup.gperf" │ │ │ │ │ +1148 {(int)offsetof(struct stringpool_t, stringpool_str193), 55}, │ │ │ │ │ +1149#line 45 "charset_lookup.gperf" │ │ │ │ │ +1150 {(int)offsetof(struct stringpool_t, stringpool_str194), 26}, │ │ │ │ │ +1151#line 49 "charset_lookup.gperf" │ │ │ │ │ +1152 {(int)offsetof(struct stringpool_t, stringpool_str195), 30}, │ │ │ │ │ +1153#line 361 "charset_lookup.gperf" │ │ │ │ │ +1154 {(int)offsetof(struct stringpool_t, stringpool_str196), 61}, │ │ │ │ │ +1155#line 302 "charset_lookup.gperf" │ │ │ │ │ +1156 {(int)offsetof(struct stringpool_t, stringpool_str197), 94}, │ │ │ │ │ +1157#line 160 "charset_lookup.gperf" │ │ │ │ │ +1158 {(int)offsetof(struct stringpool_t, stringpool_str198), 49}, │ │ │ │ │ +1159#line 292 "charset_lookup.gperf" │ │ │ │ │ +1160 {(int)offsetof(struct stringpool_t, stringpool_str199), 88}, │ │ │ │ │ +1161#line 164 "charset_lookup.gperf" │ │ │ │ │ +1162 {(int)offsetof(struct stringpool_t, stringpool_str200), 62}, │ │ │ │ │ +1163#line 161 "charset_lookup.gperf" │ │ │ │ │ +1164 {(int)offsetof(struct stringpool_t, stringpool_str201), 9}, │ │ │ │ │ +1165#line 117 "charset_lookup.gperf" │ │ │ │ │ +1166 {(int)offsetof(struct stringpool_t, stringpool_str202), 0}, │ │ │ │ │ +1167#line 379 "charset_lookup.gperf" │ │ │ │ │ +1168 {(int)offsetof(struct stringpool_t, stringpool_str203), 78}, │ │ │ │ │ +1169#line 258 "charset_lookup.gperf" │ │ │ │ │ +1170 {(int)offsetof(struct stringpool_t, stringpool_str204), 15}, │ │ │ │ │ +1171#line 380 "charset_lookup.gperf" │ │ │ │ │ +1172 {(int)offsetof(struct stringpool_t, stringpool_str205), 79}, │ │ │ │ │ +1173 {-1,-1}, │ │ │ │ │ +1174#line 31 "charset_lookup.gperf" │ │ │ │ │ +1175 {(int)offsetof(struct stringpool_t, stringpool_str207), 14}, │ │ │ │ │ +1176#line 153 "charset_lookup.gperf" │ │ │ │ │ +1177 {(int)offsetof(struct stringpool_t, stringpool_str208), 45}, │ │ │ │ │ +1178#line 38 "charset_lookup.gperf" │ │ │ │ │ +1179 {(int)offsetof(struct stringpool_t, stringpool_str209), 21}, │ │ │ │ │ +1180#line 239 "charset_lookup.gperf" │ │ │ │ │ +1181 {(int)offsetof(struct stringpool_t, stringpool_str210), 52}, │ │ │ │ │ +1182#line 35 "charset_lookup.gperf" │ │ │ │ │ +1183 {(int)offsetof(struct stringpool_t, stringpool_str211), 18}, │ │ │ │ │ +1184#line 181 "charset_lookup.gperf" │ │ │ │ │ +1185 {(int)offsetof(struct stringpool_t, stringpool_str212), 45}, │ │ │ │ │ +1186#line 331 "charset_lookup.gperf" │ │ │ │ │ +1187 {(int)offsetof(struct stringpool_t, stringpool_str213), 26}, │ │ │ │ │ +1188#line 366 "charset_lookup.gperf" │ │ │ │ │ +1189 {(int)offsetof(struct stringpool_t, stringpool_str214), 30}, │ │ │ │ │ +1190 {-1,-1}, │ │ │ │ │ +1191#line 180 "charset_lookup.gperf" │ │ │ │ │ +1192 {(int)offsetof(struct stringpool_t, stringpool_str216), 45}, │ │ │ │ │ +1193#line 349 "charset_lookup.gperf" │ │ │ │ │ +1194 {(int)offsetof(struct stringpool_t, stringpool_str217), 51}, │ │ │ │ │ +1195#line 269 "charset_lookup.gperf" │ │ │ │ │ +1196 {(int)offsetof(struct stringpool_t, stringpool_str218), 83}, │ │ │ │ │ +1197#line 24 "charset_lookup.gperf" │ │ │ │ │ +1198 {(int)offsetof(struct stringpool_t, stringpool_str219), 8}, │ │ │ │ │ +1199#line 207 "charset_lookup.gperf" │ │ │ │ │ +1200 {(int)offsetof(struct stringpool_t, stringpool_str220), 62}, │ │ │ │ │ +1201 {-1,-1}, {-1,-1}, │ │ │ │ │ +1202#line 200 "charset_lookup.gperf" │ │ │ │ │ +1203 {(int)offsetof(struct stringpool_t, stringpool_str223), 55}, │ │ │ │ │ +1204 {-1,-1}, │ │ │ │ │ +1205#line 378 "charset_lookup.gperf" │ │ │ │ │ +1206 {(int)offsetof(struct stringpool_t, stringpool_str225), 74}, │ │ │ │ │ +1207#line 320 "charset_lookup.gperf" │ │ │ │ │ +1208 {(int)offsetof(struct stringpool_t, stringpool_str226), 14}, │ │ │ │ │ +1209#line 363 "charset_lookup.gperf" │ │ │ │ │ +1210 {(int)offsetof(struct stringpool_t, stringpool_str227), 0}, │ │ │ │ │ +1211#line 327 "charset_lookup.gperf" │ │ │ │ │ +1212 {(int)offsetof(struct stringpool_t, stringpool_str228), 21}, │ │ │ │ │ +1213#line 90 "charset_lookup.gperf" │ │ │ │ │ +1214 {(int)offsetof(struct stringpool_t, stringpool_str229), 55}, │ │ │ │ │ +1215#line 324 "charset_lookup.gperf" │ │ │ │ │ +1216 {(int)offsetof(struct stringpool_t, stringpool_str230), 18}, │ │ │ │ │ +1217#line 36 "charset_lookup.gperf" │ │ │ │ │ +1218 {(int)offsetof(struct stringpool_t, stringpool_str231), 19}, │ │ │ │ │ +1219#line 120 "charset_lookup.gperf" │ │ │ │ │ +1220 {(int)offsetof(struct stringpool_t, stringpool_str232), 26}, │ │ │ │ │ +1221#line 134 "charset_lookup.gperf" │ │ │ │ │ +1222 {(int)offsetof(struct stringpool_t, stringpool_str233), 51}, │ │ │ │ │ +1223#line 237 "charset_lookup.gperf" │ │ │ │ │ +1224 {(int)offsetof(struct stringpool_t, stringpool_str234), 50}, │ │ │ │ │ +1225#line 19 "charset_lookup.gperf" │ │ │ │ │ +1226 {(int)offsetof(struct stringpool_t, stringpool_str235), 5}, │ │ │ │ │ +1227#line 266 "charset_lookup.gperf" │ │ │ │ │ +1228 {(int)offsetof(struct stringpool_t, stringpool_str236), 81}, │ │ │ │ │ +1229#line 261 "charset_lookup.gperf" │ │ │ │ │ +1230 {(int)offsetof(struct stringpool_t, stringpool_str237), 13}, │ │ │ │ │ +1231 {-1,-1}, │ │ │ │ │ +1232#line 165 "charset_lookup.gperf" │ │ │ │ │ +1233 {(int)offsetof(struct stringpool_t, stringpool_str239), 9}, │ │ │ │ │ +1234#line 129 "charset_lookup.gperf" │ │ │ │ │ +1235 {(int)offsetof(struct stringpool_t, stringpool_str240), 46}, │ │ │ │ │ +1236 {-1,-1}, │ │ │ │ │ +1237#line 142 "charset_lookup.gperf" │ │ │ │ │ +1238 {(int)offsetof(struct stringpool_t, stringpool_str242), 0}, │ │ │ │ │ +1239#line 17 "charset_lookup.gperf" │ │ │ │ │ +1240 {(int)offsetof(struct stringpool_t, stringpool_str243), 5}, │ │ │ │ │ +1241 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1242#line 147 "charset_lookup.gperf" │ │ │ │ │ +1243 {(int)offsetof(struct stringpool_t, stringpool_str247), 54}, │ │ │ │ │ +1244#line 109 "charset_lookup.gperf" │ │ │ │ │ +1245 {(int)offsetof(struct stringpool_t, stringpool_str248), 55}, │ │ │ │ │ +1246 {-1,-1}, │ │ │ │ │ +1247#line 325 "charset_lookup.gperf" │ │ │ │ │ +1248 {(int)offsetof(struct stringpool_t, stringpool_str250), 19}, │ │ │ │ │ +1249 {-1,-1}, │ │ │ │ │ +1250#line 44 "charset_lookup.gperf" │ │ │ │ │ +1251 {(int)offsetof(struct stringpool_t, stringpool_str252), 25}, │ │ │ │ │ +1252#line 39 "charset_lookup.gperf" │ │ │ │ │ +1253 {(int)offsetof(struct stringpool_t, stringpool_str253), 22}, │ │ │ │ │ +1254 {-1,-1}, │ │ │ │ │ +1255#line 103 "charset_lookup.gperf" │ │ │ │ │ +1256 {(int)offsetof(struct stringpool_t, stringpool_str255), 29}, │ │ │ │ │ +1257 {-1,-1}, {-1,-1}, │ │ │ │ │ +1258#line 91 "charset_lookup.gperf" │ │ │ │ │ +1259 {(int)offsetof(struct stringpool_t, stringpool_str258), 55}, │ │ │ │ │ +1260 {-1,-1}, │ │ │ │ │ +1261#line 43 "charset_lookup.gperf" │ │ │ │ │ +1262 {(int)offsetof(struct stringpool_t, stringpool_str260), 24}, │ │ │ │ │ +1263#line 48 "charset_lookup.gperf" │ │ │ │ │ +1264 {(int)offsetof(struct stringpool_t, stringpool_str261), 29}, │ │ │ │ │ +1265#line 50 "charset_lookup.gperf" │ │ │ │ │ +1266 {(int)offsetof(struct stringpool_t, stringpool_str262), 31}, │ │ │ │ │ +1267#line 192 "charset_lookup.gperf" │ │ │ │ │ +1268 {(int)offsetof(struct stringpool_t, stringpool_str263), 51}, │ │ │ │ │ +1269 {-1,-1}, │ │ │ │ │ +1270#line 34 "charset_lookup.gperf" │ │ │ │ │ +1271 {(int)offsetof(struct stringpool_t, stringpool_str265), 17}, │ │ │ │ │ +1272#line 242 "charset_lookup.gperf" │ │ │ │ │ +1273 {(int)offsetof(struct stringpool_t, stringpool_str266), 46}, │ │ │ │ │ +1274 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1275#line 182 "charset_lookup.gperf" │ │ │ │ │ +1276 {(int)offsetof(struct stringpool_t, stringpool_str270), 46}, │ │ │ │ │ +1277#line 330 "charset_lookup.gperf" │ │ │ │ │ +1278 {(int)offsetof(struct stringpool_t, stringpool_str271), 25}, │ │ │ │ │ +1279 {-1,-1}, │ │ │ │ │ +1280#line 46 "charset_lookup.gperf" │ │ │ │ │ +1281 {(int)offsetof(struct stringpool_t, stringpool_str273), 27}, │ │ │ │ │ +1282#line 79 "charset_lookup.gperf" │ │ │ │ │ +1283 {(int)offsetof(struct stringpool_t, stringpool_str274), 65}, │ │ │ │ │ +1284#line 98 "charset_lookup.gperf" │ │ │ │ │ +1285 {(int)offsetof(struct stringpool_t, stringpool_str275), 33}, │ │ │ │ │ +1286 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1287#line 329 "charset_lookup.gperf" │ │ │ │ │ +1288 {(int)offsetof(struct stringpool_t, stringpool_str279), 24}, │ │ │ │ │ +1289#line 365 "charset_lookup.gperf" │ │ │ │ │ +1290 {(int)offsetof(struct stringpool_t, stringpool_str280), 29}, │ │ │ │ │ +1291#line 367 "charset_lookup.gperf" │ │ │ │ │ +1292 {(int)offsetof(struct stringpool_t, stringpool_str281), 31}, │ │ │ │ │ +1293 {-1,-1}, │ │ │ │ │ +1294#line 94 "charset_lookup.gperf" │ │ │ │ │ +1295 {(int)offsetof(struct stringpool_t, stringpool_str283), 33}, │ │ │ │ │ +1296#line 323 "charset_lookup.gperf" │ │ │ │ │ +1297 {(int)offsetof(struct stringpool_t, stringpool_str284), 17}, │ │ │ │ │ +1298#line 89 "charset_lookup.gperf" │ │ │ │ │ +1299 {(int)offsetof(struct stringpool_t, stringpool_str285), 54}, │ │ │ │ │ +1300 {-1,-1}, {-1,-1}, │ │ │ │ │ +1301#line 334 "charset_lookup.gperf" │ │ │ │ │ +1302 {(int)offsetof(struct stringpool_t, stringpool_str288), 33}, │ │ │ │ │ +1303#line 32 "charset_lookup.gperf" │ │ │ │ │ +1304 {(int)offsetof(struct stringpool_t, stringpool_str289), 15}, │ │ │ │ │ +1305#line 119 "charset_lookup.gperf" │ │ │ │ │ +1306 {(int)offsetof(struct stringpool_t, stringpool_str290), 25}, │ │ │ │ │ +1307#line 61 "charset_lookup.gperf" │ │ │ │ │ +1308 {(int)offsetof(struct stringpool_t, stringpool_str291), 60}, │ │ │ │ │ +1309#line 332 "charset_lookup.gperf" │ │ │ │ │ +1310 {(int)offsetof(struct stringpool_t, stringpool_str292), 27}, │ │ │ │ │ +1311#line 166 "charset_lookup.gperf" │ │ │ │ │ +1312 {(int)offsetof(struct stringpool_t, stringpool_str293), 58}, │ │ │ │ │ +1313#line 51 "charset_lookup.gperf" │ │ │ │ │ +1314 {(int)offsetof(struct stringpool_t, stringpool_str294), 88}, │ │ │ │ │ +1315#line 96 "charset_lookup.gperf" │ │ │ │ │ +1316 {(int)offsetof(struct stringpool_t, stringpool_str295), 10}, │ │ │ │ │ +1317 {-1,-1}, │ │ │ │ │ +1318#line 286 "charset_lookup.gperf" │ │ │ │ │ +1319 {(int)offsetof(struct stringpool_t, stringpool_str297), 87}, │ │ │ │ │ +1320#line 118 "charset_lookup.gperf" │ │ │ │ │ +1321 {(int)offsetof(struct stringpool_t, stringpool_str298), 24}, │ │ │ │ │ +1322 {-1,-1}, {-1,-1}, │ │ │ │ │ +1323#line 108 "charset_lookup.gperf" │ │ │ │ │ +1324 {(int)offsetof(struct stringpool_t, stringpool_str301), 55}, │ │ │ │ │ +1325#line 167 "charset_lookup.gperf" │ │ │ │ │ +1326 {(int)offsetof(struct stringpool_t, stringpool_str302), 88}, │ │ │ │ │ +1327#line 92 "charset_lookup.gperf" │ │ │ │ │ +1328 {(int)offsetof(struct stringpool_t, stringpool_str303), 10}, │ │ │ │ │ +1329#line 278 "charset_lookup.gperf" │ │ │ │ │ +1330 {(int)offsetof(struct stringpool_t, stringpool_str304), 61}, │ │ │ │ │ +1331#line 376 "charset_lookup.gperf" │ │ │ │ │ +1332 {(int)offsetof(struct stringpool_t, stringpool_str305), 69}, │ │ │ │ │ +1333#line 238 "charset_lookup.gperf" │ │ │ │ │ +1334 {(int)offsetof(struct stringpool_t, stringpool_str306), 51}, │ │ │ │ │ +1335#line 30 "charset_lookup.gperf" │ │ │ │ │ +1336 {(int)offsetof(struct stringpool_t, stringpool_str307), 13}, │ │ │ │ │ +1337#line 321 "charset_lookup.gperf" │ │ │ │ │ +1338 {(int)offsetof(struct stringpool_t, stringpool_str308), 15}, │ │ │ │ │ +1339#line 284 "charset_lookup.gperf" │ │ │ │ │ +1340 {(int)offsetof(struct stringpool_t, stringpool_str309), 2}, │ │ │ │ │ +1341#line 69 "charset_lookup.gperf" │ │ │ │ │ +1342 {(int)offsetof(struct stringpool_t, stringpool_str310), 0}, │ │ │ │ │ +1343 {-1,-1}, │ │ │ │ │ +1344#line 277 "charset_lookup.gperf" │ │ │ │ │ +1345 {(int)offsetof(struct stringpool_t, stringpool_str312), 61}, │ │ │ │ │ +1346#line 275 "charset_lookup.gperf" │ │ │ │ │ +1347 {(int)offsetof(struct stringpool_t, stringpool_str313), 85}, │ │ │ │ │ +1348#line 73 "charset_lookup.gperf" │ │ │ │ │ +1349 {(int)offsetof(struct stringpool_t, stringpool_str314), 57}, │ │ │ │ │ +1350 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1351#line 104 "charset_lookup.gperf" │ │ │ │ │ +1352 {(int)offsetof(struct stringpool_t, stringpool_str318), 9}, │ │ │ │ │ +1353#line 47 "charset_lookup.gperf" │ │ │ │ │ +1354 {(int)offsetof(struct stringpool_t, stringpool_str319), 28}, │ │ │ │ │ +1355#line 16 "charset_lookup.gperf" │ │ │ │ │ +1356 {(int)offsetof(struct stringpool_t, stringpool_str320), 54}, │ │ │ │ │ +1357#line 37 "charset_lookup.gperf" │ │ │ │ │ +1358 {(int)offsetof(struct stringpool_t, stringpool_str321), 20}, │ │ │ │ │ +1359 {-1,-1}, {-1,-1}, │ │ │ │ │ +1360#line 222 "charset_lookup.gperf" │ │ │ │ │ +1361 {(int)offsetof(struct stringpool_t, stringpool_str324), 67}, │ │ │ │ │ +1362 {-1,-1}, │ │ │ │ │ +1363#line 319 "charset_lookup.gperf" │ │ │ │ │ +1364 {(int)offsetof(struct stringpool_t, stringpool_str326), 13}, │ │ │ │ │ +1365 {-1,-1}, {-1,-1}, │ │ │ │ │ +1366#line 111 "charset_lookup.gperf" │ │ │ │ │ +1367 {(int)offsetof(struct stringpool_t, stringpool_str329), 83}, │ │ │ │ │ +1368 {-1,-1}, │ │ │ │ │ +1369#line 265 "charset_lookup.gperf" │ │ │ │ │ +1370 {(int)offsetof(struct stringpool_t, stringpool_str331), 84}, │ │ │ │ │ +1371 {-1,-1}, │ │ │ │ │ +1372#line 87 "charset_lookup.gperf" │ │ │ │ │ +1373 {(int)offsetof(struct stringpool_t, stringpool_str333), 94}, │ │ │ │ │ +1374#line 74 "charset_lookup.gperf" │ │ │ │ │ +1375 {(int)offsetof(struct stringpool_t, stringpool_str334), 45}, │ │ │ │ │ +1376#line 225 "charset_lookup.gperf" │ │ │ │ │ +1377 {(int)offsetof(struct stringpool_t, stringpool_str335), 59}, │ │ │ │ │ +1378#line 270 "charset_lookup.gperf" │ │ │ │ │ +1379 {(int)offsetof(struct stringpool_t, stringpool_str336), 84}, │ │ │ │ │ +1380#line 159 "charset_lookup.gperf" │ │ │ │ │ +1381 {(int)offsetof(struct stringpool_t, stringpool_str337), 48}, │ │ │ │ │ +1382#line 364 "charset_lookup.gperf" │ │ │ │ │ +1383 {(int)offsetof(struct stringpool_t, stringpool_str338), 28}, │ │ │ │ │ +1384#line 218 "charset_lookup.gperf" │ │ │ │ │ +1385 {(int)offsetof(struct stringpool_t, stringpool_str339), 22}, │ │ │ │ │ +1386#line 326 "charset_lookup.gperf" │ │ │ │ │ +1387 {(int)offsetof(struct stringpool_t, stringpool_str340), 20}, │ │ │ │ │ +1388 {-1,-1}, │ │ │ │ │ +1389#line 14 "charset_lookup.gperf" │ │ │ │ │ +1390 {(int)offsetof(struct stringpool_t, stringpool_str342), 4}, │ │ │ │ │ +1391 {-1,-1}, {-1,-1}, │ │ │ │ │ +1392#line 178 "charset_lookup.gperf" │ │ │ │ │ +1393 {(int)offsetof(struct stringpool_t, stringpool_str345), 88}, │ │ │ │ │ +1394 {-1,-1}, │ │ │ │ │ +1395#line 274 "charset_lookup.gperf" │ │ │ │ │ +1396 {(int)offsetof(struct stringpool_t, stringpool_str347), 85}, │ │ │ │ │ +1397 {-1,-1}, │ │ │ │ │ +1398#line 97 "charset_lookup.gperf" │ │ │ │ │ +1399 {(int)offsetof(struct stringpool_t, stringpool_str349), 32}, │ │ │ │ │ +1400#line 301 "charset_lookup.gperf" │ │ │ │ │ +1401 {(int)offsetof(struct stringpool_t, stringpool_str350), 1}, │ │ │ │ │ +1402#line 315 "charset_lookup.gperf" │ │ │ │ │ +1403 {(int)offsetof(struct stringpool_t, stringpool_str351), 64}, │ │ │ │ │ +1404#line 102 "charset_lookup.gperf" │ │ │ │ │ +1405 {(int)offsetof(struct stringpool_t, stringpool_str352), 10}, │ │ │ │ │ +1406#line 316 "charset_lookup.gperf" │ │ │ │ │ +1407 {(int)offsetof(struct stringpool_t, stringpool_str353), 62}, │ │ │ │ │ +1408#line 126 "charset_lookup.gperf" │ │ │ │ │ +1409 {(int)offsetof(struct stringpool_t, stringpool_str354), 44}, │ │ │ │ │ +1410#line 260 "charset_lookup.gperf" │ │ │ │ │ +1411 {(int)offsetof(struct stringpool_t, stringpool_str355), 14}, │ │ │ │ │ +1412#line 124 "charset_lookup.gperf" │ │ │ │ │ +1413 {(int)offsetof(struct stringpool_t, stringpool_str356), 42}, │ │ │ │ │ +1414#line 93 "charset_lookup.gperf" │ │ │ │ │ +1415 {(int)offsetof(struct stringpool_t, stringpool_str357), 32}, │ │ │ │ │ +1416#line 299 "charset_lookup.gperf" │ │ │ │ │ +1417 {(int)offsetof(struct stringpool_t, stringpool_str358), 1}, │ │ │ │ │ +1418#line 303 "charset_lookup.gperf" │ │ │ │ │ +1419 {(int)offsetof(struct stringpool_t, stringpool_str359), 94}, │ │ │ │ │ +1420#line 40 "charset_lookup.gperf" │ │ │ │ │ +1421 {(int)offsetof(struct stringpool_t, stringpool_str360), 88}, │ │ │ │ │ +1422#line 33 "charset_lookup.gperf" │ │ │ │ │ +1423 {(int)offsetof(struct stringpool_t, stringpool_str361), 16}, │ │ │ │ │ +1424#line 333 "charset_lookup.gperf" │ │ │ │ │ +1425 {(int)offsetof(struct stringpool_t, stringpool_str362), 32}, │ │ │ │ │ +1426 {-1,-1}, │ │ │ │ │ +1427#line 377 "charset_lookup.gperf" │ │ │ │ │ +1428 {(int)offsetof(struct stringpool_t, stringpool_str364), 73}, │ │ │ │ │ +1429#line 293 "charset_lookup.gperf" │ │ │ │ │ +1430 {(int)offsetof(struct stringpool_t, stringpool_str365), 88}, │ │ │ │ │ +1431#line 271 "charset_lookup.gperf" │ │ │ │ │ +1432 {(int)offsetof(struct stringpool_t, stringpool_str366), 84}, │ │ │ │ │ +1433 {-1,-1}, │ │ │ │ │ +1434#line 72 "charset_lookup.gperf" │ │ │ │ │ +1435 {(int)offsetof(struct stringpool_t, stringpool_str368), 52}, │ │ │ │ │ +1436#line 279 "charset_lookup.gperf" │ │ │ │ │ +1437 {(int)offsetof(struct stringpool_t, stringpool_str369), 61}, │ │ │ │ │ +1438 {-1,-1}, │ │ │ │ │ +1439#line 52 "charset_lookup.gperf" │ │ │ │ │ +1440 {(int)offsetof(struct stringpool_t, stringpool_str371), 5}, │ │ │ │ │ +1441 {-1,-1}, {-1,-1}, │ │ │ │ │ +1442#line 121 "charset_lookup.gperf" │ │ │ │ │ +1443 {(int)offsetof(struct stringpool_t, stringpool_str374), 39}, │ │ │ │ │ +1444 {-1,-1}, {-1,-1}, │ │ │ │ │ +1445#line 41 "charset_lookup.gperf" │ │ │ │ │ +1446 {(int)offsetof(struct stringpool_t, stringpool_str377), 23}, │ │ │ │ │ +1447 {-1,-1}, │ │ │ │ │ +1448#line 26 "charset_lookup.gperf" │ │ │ │ │ +1449 {(int)offsetof(struct stringpool_t, stringpool_str379), 5}, │ │ │ │ │ +1450#line 322 "charset_lookup.gperf" │ │ │ │ │ +1451 {(int)offsetof(struct stringpool_t, stringpool_str380), 16}, │ │ │ │ │ +1452#line 13 "charset_lookup.gperf" │ │ │ │ │ +1453 {(int)offsetof(struct stringpool_t, stringpool_str381), 54}, │ │ │ │ │ +1454 {-1,-1}, │ │ │ │ │ +1455#line 317 "charset_lookup.gperf" │ │ │ │ │ +1456 {(int)offsetof(struct stringpool_t, stringpool_str383), 60}, │ │ │ │ │ +1457#line 60 "charset_lookup.gperf" │ │ │ │ │ +1458 {(int)offsetof(struct stringpool_t, stringpool_str384), 58}, │ │ │ │ │ +1459 {-1,-1}, {-1,-1}, │ │ │ │ │ +1460#line 101 "charset_lookup.gperf" │ │ │ │ │ +1461 {(int)offsetof(struct stringpool_t, stringpool_str387), 35}, │ │ │ │ │ +1462 {-1,-1}, │ │ │ │ │ +1463#line 285 "charset_lookup.gperf" │ │ │ │ │ +1464 {(int)offsetof(struct stringpool_t, stringpool_str389), 86}, │ │ │ │ │ +1465 {-1,-1}, {-1,-1}, │ │ │ │ │ +1466#line 70 "charset_lookup.gperf" │ │ │ │ │ +1467 {(int)offsetof(struct stringpool_t, stringpool_str392), 50}, │ │ │ │ │ +1468#line 107 "charset_lookup.gperf" │ │ │ │ │ +1469 {(int)offsetof(struct stringpool_t, stringpool_str393), 37}, │ │ │ │ │ +1470#line 227 "charset_lookup.gperf" │ │ │ │ │ +1471 {(int)offsetof(struct stringpool_t, stringpool_str394), 59}, │ │ │ │ │ +1472#line 29 "charset_lookup.gperf" │ │ │ │ │ +1473 {(int)offsetof(struct stringpool_t, stringpool_str395), 12}, │ │ │ │ │ +1474#line 328 "charset_lookup.gperf" │ │ │ │ │ +1475 {(int)offsetof(struct stringpool_t, stringpool_str396), 23}, │ │ │ │ │ +1476#line 125 "charset_lookup.gperf" │ │ │ │ │ +1477 {(int)offsetof(struct stringpool_t, stringpool_str397), 43}, │ │ │ │ │ +1478#line 115 "charset_lookup.gperf" │ │ │ │ │ +1479 {(int)offsetof(struct stringpool_t, stringpool_str398), 88}, │ │ │ │ │ +1480 {-1,-1}, {-1,-1}, │ │ │ │ │ +1481#line 283 "charset_lookup.gperf" │ │ │ │ │ +1482 {(int)offsetof(struct stringpool_t, stringpool_str401), 3}, │ │ │ │ │ +1483#line 288 "charset_lookup.gperf" │ │ │ │ │ +1484 {(int)offsetof(struct stringpool_t, stringpool_str402), 3}, │ │ │ │ │ +1485 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1486#line 209 "charset_lookup.gperf" │ │ │ │ │ +1487 {(int)offsetof(struct stringpool_t, stringpool_str409), 58}, │ │ │ │ │ +1488 {-1,-1}, │ │ │ │ │ +1489#line 259 "charset_lookup.gperf" │ │ │ │ │ +1490 {(int)offsetof(struct stringpool_t, stringpool_str411), 19}, │ │ │ │ │ +1491 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1492#line 116 "charset_lookup.gperf" │ │ │ │ │ +1493 {(int)offsetof(struct stringpool_t, stringpool_str415), 23}, │ │ │ │ │ +1494 {-1,-1}, {-1,-1}, │ │ │ │ │ +1495#line 244 "charset_lookup.gperf" │ │ │ │ │ +1496 {(int)offsetof(struct stringpool_t, stringpool_str418), 69}, │ │ │ │ │ +1497 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1498#line 295 "charset_lookup.gperf" │ │ │ │ │ +1499 {(int)offsetof(struct stringpool_t, stringpool_str422), 90}, │ │ │ │ │ +1500 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1501#line 123 "charset_lookup.gperf" │ │ │ │ │ +1502 {(int)offsetof(struct stringpool_t, stringpool_str428), 41}, │ │ │ │ │ +1503#line 28 "charset_lookup.gperf" │ │ │ │ │ +1504 {(int)offsetof(struct stringpool_t, stringpool_str429), 11}, │ │ │ │ │ +1505 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1506#line 306 "charset_lookup.gperf" │ │ │ │ │ +1507 {(int)offsetof(struct stringpool_t, stringpool_str434), 14}, │ │ │ │ │ +1508#line 313 "charset_lookup.gperf" │ │ │ │ │ +1509 {(int)offsetof(struct stringpool_t, stringpool_str435), 21}, │ │ │ │ │ +1510#line 310 "charset_lookup.gperf" │ │ │ │ │ +1511 {(int)offsetof(struct stringpool_t, stringpool_str436), 18}, │ │ │ │ │ +1512 {-1,-1}, │ │ │ │ │ +1513#line 75 "charset_lookup.gperf" │ │ │ │ │ +1514 {(int)offsetof(struct stringpool_t, stringpool_str438), 54}, │ │ │ │ │ +1515 {-1,-1}, {-1,-1}, │ │ │ │ │ +1516#line 263 "charset_lookup.gperf" │ │ │ │ │ +1517 {(int)offsetof(struct stringpool_t, stringpool_str441), 18}, │ │ │ │ │ +1518 {-1,-1}, {-1,-1}, │ │ │ │ │ +1519#line 88 "charset_lookup.gperf" │ │ │ │ │ +1520 {(int)offsetof(struct stringpool_t, stringpool_str444), 53}, │ │ │ │ │ +1521#line 210 "charset_lookup.gperf" │ │ │ │ │ +1522 {(int)offsetof(struct stringpool_t, stringpool_str445), 62}, │ │ │ │ │ +1523#line 311 "charset_lookup.gperf" │ │ │ │ │ +1524 {(int)offsetof(struct stringpool_t, stringpool_str446), 19}, │ │ │ │ │ +1525 {-1,-1}, │ │ │ │ │ +1526#line 226 "charset_lookup.gperf" │ │ │ │ │ +1527 {(int)offsetof(struct stringpool_t, stringpool_str448), 59}, │ │ │ │ │ +1528 {-1,-1}, │ │ │ │ │ +1529#line 287 "charset_lookup.gperf" │ │ │ │ │ +1530 {(int)offsetof(struct stringpool_t, stringpool_str450), 30}, │ │ │ │ │ +1531 {-1,-1}, │ │ │ │ │ +1532#line 22 "charset_lookup.gperf" │ │ │ │ │ +1533 {(int)offsetof(struct stringpool_t, stringpool_str452), 5}, │ │ │ │ │ +1534 {-1,-1}, │ │ │ │ │ +1535#line 27 "charset_lookup.gperf" │ │ │ │ │ +1536 {(int)offsetof(struct stringpool_t, stringpool_str454), 10}, │ │ │ │ │ +1537#line 106 "charset_lookup.gperf" │ │ │ │ │ +1538 {(int)offsetof(struct stringpool_t, stringpool_str455), 36}, │ │ │ │ │ +1539 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1540#line 18 "charset_lookup.gperf" │ │ │ │ │ +1541 {(int)offsetof(struct stringpool_t, stringpool_str460), 5}, │ │ │ │ │ +1542#line 59 "charset_lookup.gperf" │ │ │ │ │ +1543 {(int)offsetof(struct stringpool_t, stringpool_str461), 26}, │ │ │ │ │ +1544#line 300 "charset_lookup.gperf" │ │ │ │ │ +1545 {(int)offsetof(struct stringpool_t, stringpool_str462), 93}, │ │ │ │ │ +1546#line 309 "charset_lookup.gperf" │ │ │ │ │ +1547 {(int)offsetof(struct stringpool_t, stringpool_str463), 17}, │ │ │ │ │ +1548#line 71 "charset_lookup.gperf" │ │ │ │ │ +1549 {(int)offsetof(struct stringpool_t, stringpool_str464), 51}, │ │ │ │ │ +1550#line 289 "charset_lookup.gperf" │ │ │ │ │ +1551 {(int)offsetof(struct stringpool_t, stringpool_str465), 93}, │ │ │ │ │ +1552 {-1,-1}, │ │ │ │ │ +1553#line 66 "charset_lookup.gperf" │ │ │ │ │ +1554 {(int)offsetof(struct stringpool_t, stringpool_str467), 9}, │ │ │ │ │ +1555 {-1,-1}, {-1,-1}, │ │ │ │ │ +1556#line 298 "charset_lookup.gperf" │ │ │ │ │ +1557 {(int)offsetof(struct stringpool_t, stringpool_str470), 93}, │ │ │ │ │ +1558 {-1,-1}, │ │ │ │ │ +1559#line 105 "charset_lookup.gperf" │ │ │ │ │ +1560 {(int)offsetof(struct stringpool_t, stringpool_str472), 8}, │ │ │ │ │ +1561 {-1,-1}, │ │ │ │ │ +1562#line 65 "charset_lookup.gperf" │ │ │ │ │ +1563 {(int)offsetof(struct stringpool_t, stringpool_str474), 44}, │ │ │ │ │ +1564#line 307 "charset_lookup.gperf" │ │ │ │ │ +1565 {(int)offsetof(struct stringpool_t, stringpool_str475), 15}, │ │ │ │ │ +1566#line 223 "charset_lookup.gperf" │ │ │ │ │ +1567 {(int)offsetof(struct stringpool_t, stringpool_str476), 68}, │ │ │ │ │ +1568 {-1,-1}, {-1,-1}, │ │ │ │ │ +1569#line 203 "charset_lookup.gperf" │ │ │ │ │ +1570 {(int)offsetof(struct stringpool_t, stringpool_str479), 56}, │ │ │ │ │ +1571#line 197 "charset_lookup.gperf" │ │ │ │ │ +1572 {(int)offsetof(struct stringpool_t, stringpool_str480), 53}, │ │ │ │ │ +1573 {-1,-1}, {-1,-1}, │ │ │ │ │ +1574#line 205 "charset_lookup.gperf" │ │ │ │ │ +1575 {(int)offsetof(struct stringpool_t, stringpool_str483), 57}, │ │ │ │ │ +1576#line 305 "charset_lookup.gperf" │ │ │ │ │ +1577 {(int)offsetof(struct stringpool_t, stringpool_str484), 13}, │ │ │ │ │ +1578#line 251 "charset_lookup.gperf" │ │ │ │ │ +1579 {(int)offsetof(struct stringpool_t, stringpool_str485), 76}, │ │ │ │ │ +1580#line 77 "charset_lookup.gperf" │ │ │ │ │ +1581 {(int)offsetof(struct stringpool_t, stringpool_str486), 55}, │ │ │ │ │ +1582#line 122 "charset_lookup.gperf" │ │ │ │ │ +1583 {(int)offsetof(struct stringpool_t, stringpool_str487), 40}, │ │ │ │ │ +1584#line 211 "charset_lookup.gperf" │ │ │ │ │ +1585 {(int)offsetof(struct stringpool_t, stringpool_str488), 64}, │ │ │ │ │ +1586#line 208 "charset_lookup.gperf" │ │ │ │ │ +1587 {(int)offsetof(struct stringpool_t, stringpool_str489), 64}, │ │ │ │ │ +1588#line 212 "charset_lookup.gperf" │ │ │ │ │ +1589 {(int)offsetof(struct stringpool_t, stringpool_str490), 62}, │ │ │ │ │ +1590#line 312 "charset_lookup.gperf" │ │ │ │ │ +1591 {(int)offsetof(struct stringpool_t, stringpool_str491), 20}, │ │ │ │ │ +1592 {-1,-1}, {-1,-1}, │ │ │ │ │ +1593#line 62 "charset_lookup.gperf" │ │ │ │ │ +1594 {(int)offsetof(struct stringpool_t, stringpool_str494), 39}, │ │ │ │ │ +1595 {-1,-1}, │ │ │ │ │ +1596#line 262 "charset_lookup.gperf" │ │ │ │ │ +1597 {(int)offsetof(struct stringpool_t, stringpool_str496), 16}, │ │ │ │ │ +1598 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1599#line 100 "charset_lookup.gperf" │ │ │ │ │ +1600 {(int)offsetof(struct stringpool_t, stringpool_str500), 32}, │ │ │ │ │ +1601 {-1,-1}, {-1,-1}, │ │ │ │ │ +1602#line 221 "charset_lookup.gperf" │ │ │ │ │ +1603 {(int)offsetof(struct stringpool_t, stringpool_str503), 66}, │ │ │ │ │ +1604#line 280 "charset_lookup.gperf" │ │ │ │ │ +1605 {(int)offsetof(struct stringpool_t, stringpool_str504), 61}, │ │ │ │ │ +1606#line 253 "charset_lookup.gperf" │ │ │ │ │ +1607 {(int)offsetof(struct stringpool_t, stringpool_str505), 69}, │ │ │ │ │ +1608#line 314 "charset_lookup.gperf" │ │ │ │ │ +1609 {(int)offsetof(struct stringpool_t, stringpool_str506), 27}, │ │ │ │ │ +1610#line 195 "charset_lookup.gperf" │ │ │ │ │ +1611 {(int)offsetof(struct stringpool_t, stringpool_str507), 52}, │ │ │ │ │ +1612 {-1,-1}, │ │ │ │ │ +1613#line 80 "charset_lookup.gperf" │ │ │ │ │ +1614 {(int)offsetof(struct stringpool_t, stringpool_str509), 59}, │ │ │ │ │ +1615 {-1,-1}, │ │ │ │ │ +1616#line 308 "charset_lookup.gperf" │ │ │ │ │ +1617 {(int)offsetof(struct stringpool_t, stringpool_str511), 16}, │ │ │ │ │ +1618 {-1,-1}, {-1,-1}, │ │ │ │ │ +1619#line 294 "charset_lookup.gperf" │ │ │ │ │ +1620 {(int)offsetof(struct stringpool_t, stringpool_str514), 89}, │ │ │ │ │ +1621#line 68 "charset_lookup.gperf" │ │ │ │ │ +1622 {(int)offsetof(struct stringpool_t, stringpool_str515), 62}, │ │ │ │ │ +1623#line 64 "charset_lookup.gperf" │ │ │ │ │ +1624 {(int)offsetof(struct stringpool_t, stringpool_str516), 43}, │ │ │ │ │ +1625 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1626#line 215 "charset_lookup.gperf" │ │ │ │ │ +1627 {(int)offsetof(struct stringpool_t, stringpool_str520), 60}, │ │ │ │ │ +1628#line 254 "charset_lookup.gperf" │ │ │ │ │ +1629 {(int)offsetof(struct stringpool_t, stringpool_str521), 77}, │ │ │ │ │ +1630#line 85 "charset_lookup.gperf" │ │ │ │ │ +1631 {(int)offsetof(struct stringpool_t, stringpool_str522), 3}, │ │ │ │ │ +1632#line 255 "charset_lookup.gperf" │ │ │ │ │ +1633 {(int)offsetof(struct stringpool_t, stringpool_str523), 78}, │ │ │ │ │ +1634 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1635#line 297 "charset_lookup.gperf" │ │ │ │ │ +1636 {(int)offsetof(struct stringpool_t, stringpool_str528), 92}, │ │ │ │ │ +1637 {-1,-1}, {-1,-1}, │ │ │ │ │ +1638#line 58 "charset_lookup.gperf" │ │ │ │ │ +1639 {(int)offsetof(struct stringpool_t, stringpool_str531), 83}, │ │ │ │ │ +1640 {-1,-1}, {-1,-1}, │ │ │ │ │ +1641#line 189 "charset_lookup.gperf" │ │ │ │ │ +1642 {(int)offsetof(struct stringpool_t, stringpool_str534), 0}, │ │ │ │ │ +1643 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1644#line 21 "charset_lookup.gperf" │ │ │ │ │ +1645 {(int)offsetof(struct stringpool_t, stringpool_str541), 6}, │ │ │ │ │ +1646 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1647#line 199 "charset_lookup.gperf" │ │ │ │ │ +1648 {(int)offsetof(struct stringpool_t, stringpool_str546), 54}, │ │ │ │ │ +1649#line 216 "charset_lookup.gperf" │ │ │ │ │ +1650 {(int)offsetof(struct stringpool_t, stringpool_str547), 60}, │ │ │ │ │ +1651#line 63 "charset_lookup.gperf" │ │ │ │ │ +1652 {(int)offsetof(struct stringpool_t, stringpool_str548), 41}, │ │ │ │ │ +1653#line 20 "charset_lookup.gperf" │ │ │ │ │ +1654 {(int)offsetof(struct stringpool_t, stringpool_str549), 6}, │ │ │ │ │ +1655 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1656#line 84 "charset_lookup.gperf" │ │ │ │ │ +1657 {(int)offsetof(struct stringpool_t, stringpool_str553), 84}, │ │ │ │ │ +1658 {-1,-1}, │ │ │ │ │ +1659#line 193 "charset_lookup.gperf" │ │ │ │ │ +1660 {(int)offsetof(struct stringpool_t, stringpool_str555), 51}, │ │ │ │ │ +1661 {-1,-1}, │ │ │ │ │ +1662#line 214 "charset_lookup.gperf" │ │ │ │ │ +1663 {(int)offsetof(struct stringpool_t, stringpool_str557), 62}, │ │ │ │ │ +1664 {-1,-1}, {-1,-1}, │ │ │ │ │ +1665#line 78 "charset_lookup.gperf" │ │ │ │ │ +1666 {(int)offsetof(struct stringpool_t, stringpool_str560), 56}, │ │ │ │ │ +1667#line 76 "charset_lookup.gperf" │ │ │ │ │ +1668 {(int)offsetof(struct stringpool_t, stringpool_str561), 53}, │ │ │ │ │ +1669 {-1,-1}, │ │ │ │ │ +1670#line 141 "charset_lookup.gperf" │ │ │ │ │ +1671 {(int)offsetof(struct stringpool_t, stringpool_str563), 47}, │ │ │ │ │ +1672#line 113 "charset_lookup.gperf" │ │ │ │ │ +1673 {(int)offsetof(struct stringpool_t, stringpool_str564), 38}, │ │ │ │ │ +1674 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1675#line 11 "charset_lookup.gperf" │ │ │ │ │ +1676 {(int)offsetof(struct stringpool_t, stringpool_str571), 88}, │ │ │ │ │ +1677#line 110 "charset_lookup.gperf" │ │ │ │ │ +1678 {(int)offsetof(struct stringpool_t, stringpool_str572), 56}, │ │ │ │ │ +1679 {-1,-1}, {-1,-1}, │ │ │ │ │ +1680#line 191 "charset_lookup.gperf" │ │ │ │ │ +1681 {(int)offsetof(struct stringpool_t, stringpool_str575), 50}, │ │ │ │ │ +1682 {-1,-1}, │ │ │ │ │ +1683#line 67 "charset_lookup.gperf" │ │ │ │ │ +1684 {(int)offsetof(struct stringpool_t, stringpool_str577), 8}, │ │ │ │ │ +1685 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1686#line 56 "charset_lookup.gperf" │ │ │ │ │ +1687 {(int)offsetof(struct stringpool_t, stringpool_str581), 10}, │ │ │ │ │ +1688#line 12 "charset_lookup.gperf" │ │ │ │ │ +1689 {(int)offsetof(struct stringpool_t, stringpool_str582), 88}, │ │ │ │ │ +1690#line 86 "charset_lookup.gperf" │ │ │ │ │ +1691 {(int)offsetof(struct stringpool_t, stringpool_str583), 93}, │ │ │ │ │ +1692#line 213 "charset_lookup.gperf" │ │ │ │ │ +1693 {(int)offsetof(struct stringpool_t, stringpool_str584), 62}, │ │ │ │ │ +1694 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1695#line 201 "charset_lookup.gperf" │ │ │ │ │ +1696 {(int)offsetof(struct stringpool_t, stringpool_str591), 55}, │ │ │ │ │ +1697 {-1,-1}, {-1,-1}, │ │ │ │ │ +1698#line 99 "charset_lookup.gperf" │ │ │ │ │ +1699 {(int)offsetof(struct stringpool_t, stringpool_str594), 34}, │ │ │ │ │ +1700 {-1,-1}, │ │ │ │ │ +1701#line 53 "charset_lookup.gperf" │ │ │ │ │ +1702 {(int)offsetof(struct stringpool_t, stringpool_str596), 33}, │ │ │ │ │ +1703 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1704#line 95 "charset_lookup.gperf" │ │ │ │ │ +1705 {(int)offsetof(struct stringpool_t, stringpool_str602), 34}, │ │ │ │ │ +1706 {-1,-1}, {-1,-1}, │ │ │ │ │ +1707#line 247 "charset_lookup.gperf" │ │ │ │ │ +1708 {(int)offsetof(struct stringpool_t, stringpool_str605), 72}, │ │ │ │ │ +1709 {-1,-1}, │ │ │ │ │ +1710#line 335 "charset_lookup.gperf" │ │ │ │ │ +1711 {(int)offsetof(struct stringpool_t, stringpool_str607), 34}, │ │ │ │ │ +1712 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1713#line 282 "charset_lookup.gperf" │ │ │ │ │ +1714 {(int)offsetof(struct stringpool_t, stringpool_str614), 61}, │ │ │ │ │ +1715 {-1,-1}, {-1,-1}, │ │ │ │ │ +1716#line 249 "charset_lookup.gperf" │ │ │ │ │ +1717 {(int)offsetof(struct stringpool_t, stringpool_str617), 74}, │ │ │ │ │ +1718 {-1,-1}, {-1,-1}, │ │ │ │ │ +1719#line 296 "charset_lookup.gperf" │ │ │ │ │ +1720 {(int)offsetof(struct stringpool_t, stringpool_str620), 91}, │ │ │ │ │ +1721 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1722#line 252 "charset_lookup.gperf" │ │ │ │ │ +1723 {(int)offsetof(struct stringpool_t, stringpool_str625), 69}, │ │ │ │ │ +1724 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1725 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1726#line 291 "charset_lookup.gperf" │ │ │ │ │ +1727 {(int)offsetof(struct stringpool_t, stringpool_str637), 2}, │ │ │ │ │ +1728 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1729#line 264 "charset_lookup.gperf" │ │ │ │ │ +1730 {(int)offsetof(struct stringpool_t, stringpool_str641), 17}, │ │ │ │ │ +1731 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1732#line 257 "charset_lookup.gperf" │ │ │ │ │ +1733 {(int)offsetof(struct stringpool_t, stringpool_str645), 80}, │ │ │ │ │ +1734 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1735#line 114 "charset_lookup.gperf" │ │ │ │ │ +1736 {(int)offsetof(struct stringpool_t, stringpool_str651), 12}, │ │ │ │ │ +1737 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1738#line 246 "charset_lookup.gperf" │ │ │ │ │ +1739 {(int)offsetof(struct stringpool_t, stringpool_str658), 71}, │ │ │ │ │ +1740 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1741#line 267 "charset_lookup.gperf" │ │ │ │ │ +1742 {(int)offsetof(struct stringpool_t, stringpool_str663), 82}, │ │ │ │ │ +1743#line 281 "charset_lookup.gperf" │ │ │ │ │ +1744 {(int)offsetof(struct stringpool_t, stringpool_str664), 61}, │ │ │ │ │ +1745 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1746 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1747#line 217 "charset_lookup.gperf" │ │ │ │ │ +1748 {(int)offsetof(struct stringpool_t, stringpool_str674), 60}, │ │ │ │ │ +1749 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1750 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1751 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1752 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1753#line 245 "charset_lookup.gperf" │ │ │ │ │ +1754 {(int)offsetof(struct stringpool_t, stringpool_str697), 70}, │ │ │ │ │ +1755 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1756 {-1,-1}, {-1,-1}, │ │ │ │ │ +1757#line 290 "charset_lookup.gperf" │ │ │ │ │ +1758 {(int)offsetof(struct stringpool_t, stringpool_str706), 3}, │ │ │ │ │ +1759 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1760 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1761 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1762#line 83 "charset_lookup.gperf" │ │ │ │ │ +1763 {(int)offsetof(struct stringpool_t, stringpool_str723), 25}, │ │ │ │ │ +1764 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1765 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1766 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1767 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1768#line 248 "charset_lookup.gperf" │ │ │ │ │ +1769 {(int)offsetof(struct stringpool_t, stringpool_str748), 73}, │ │ │ │ │ +1770 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1771 {-1,-1}, │ │ │ │ │ +1772#line 304 "charset_lookup.gperf" │ │ │ │ │ +1773 {(int)offsetof(struct stringpool_t, stringpool_str756), 20}, │ │ │ │ │ +1774 {-1,-1}, │ │ │ │ │ +1775#line 276 "charset_lookup.gperf" │ │ │ │ │ +1776 {(int)offsetof(struct stringpool_t, stringpool_str758), 85}, │ │ │ │ │ +1777 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1778#line 81 "charset_lookup.gperf" │ │ │ │ │ +1779 {(int)offsetof(struct stringpool_t, stringpool_str762), 69}, │ │ │ │ │ +1780 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1781 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1782 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1783 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1784 {-1,-1}, │ │ │ │ │ +1785#line 57 "charset_lookup.gperf" │ │ │ │ │ +1786 {(int)offsetof(struct stringpool_t, stringpool_str788), 64}, │ │ │ │ │ +1787 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1788 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1789 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1790 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1791 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1792 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1793 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1794 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1795 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1796 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1797 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1798 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1799 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1800 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1801 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1802 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1803#line 250 "charset_lookup.gperf" │ │ │ │ │ +1804 {(int)offsetof(struct stringpool_t, stringpool_str884), 75}, │ │ │ │ │ +1805 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1806 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1807 {-1,-1}, {-1,-1}, │ │ │ │ │ +1808#line 256 "charset_lookup.gperf" │ │ │ │ │ +1809 {(int)offsetof(struct stringpool_t, stringpool_str899), 79}, │ │ │ │ │ +1810 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1811#line 82 "charset_lookup.gperf" │ │ │ │ │ +1812 {(int)offsetof(struct stringpool_t, stringpool_str905), 24}, │ │ │ │ │ +1813 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1814 {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1815#line 55 "charset_lookup.gperf" │ │ │ │ │ +1816 {(int)offsetof(struct stringpool_t, stringpool_str915), 34}, │ │ │ │ │ +1817 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1818 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1819 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1820 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1821 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1822 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1823 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1824 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1825 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1826 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1827 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1828 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1829 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1830 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1831 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1832 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1833 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1834 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1835 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1836 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1837 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1838 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1839 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1840 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1841 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1842 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1843 {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1}, │ │ │ │ │ +1844 {-1,-1}, │ │ │ │ │ +1845#line 54 "charset_lookup.gperf" │ │ │ │ │ +1846 {(int)offsetof(struct stringpool_t, stringpool_str1079), 32} │ │ │ │ │ +1847 }; │ │ │ │ │ +1848 │ │ │ │ │ +1849 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) │ │ │ │ │ +1850 { │ │ │ │ │ +1851 register unsigned int key = hash_charset (str, len); │ │ │ │ │ +1852 │ │ │ │ │ +1853 if (key <= MAX_HASH_VALUE) │ │ │ │ │ +1854 { │ │ │ │ │ +1855 register int o = wordlist[key].alias_pos; │ │ │ │ │ +1856 if (o >= 0) │ │ │ │ │ +1857 { │ │ │ │ │ +1858 register const char *s = o + stringpool; │ │ │ │ │ +1859 │ │ │ │ │ +1860 if (*str == *s && !strcmp (str + 1, s + 1)) │ │ │ │ │ +1861 return &wordlist[key]; │ │ │ │ │ +1862 } │ │ │ │ │ +1863 } │ │ │ │ │ +1864 } │ │ │ │ │ +1865 return 0; │ │ │ │ │ +1866} │ │ │ │ │ +1867#line 381 "charset_lookup.gperf" │ │ │ │ │ +1868 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00461_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/alloca.h Source File │ │ │ │ +FreeTDS API: include/freetds/stream.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,43 +74,141 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
alloca.h
│ │ │ │ +
stream.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* Cfr https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Particular-Functions.html */
│ │ │ │ -
2#ifdef STDC_HEADERS
│ │ │ │ -
3# include <stdlib.h>
│ │ │ │ -
4# include <stddef.h>
│ │ │ │ -
5#else
│ │ │ │ -
6# ifdef HAVE_STDLIB_H
│ │ │ │ -
7# include <stdlib.h>
│ │ │ │ -
8# endif
│ │ │ │ -
9#endif
│ │ │ │ -
10#ifdef HAVE_ALLOCA_H
│ │ │ │ -
11# include <alloca.h>
│ │ │ │ -
12#elif !defined alloca
│ │ │ │ -
13# ifdef __GNUC__
│ │ │ │ -
14# define alloca __builtin_alloca
│ │ │ │ -
15# elif defined _AIX
│ │ │ │ -
16# define alloca __alloca
│ │ │ │ -
17# elif defined _MSC_VER
│ │ │ │ -
18# include <malloc.h>
│ │ │ │ -
19# define alloca _alloca
│ │ │ │ -
20# elif !defined HAVE_ALLOCA
│ │ │ │ -
21# ifdef __cplusplus
│ │ │ │ -
22extern "C"
│ │ │ │ -
23# endif
│ │ │ │ -
24void *alloca (size_t);
│ │ │ │ -
25# endif
│ │ │ │ -
26#endif
│ │ │ │ +
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ +
2 * Copyright (C) 2013 Frediano Ziglio
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _freetds_stream_h_
│ │ │ │ +
21#define _freetds_stream_h_
│ │ │ │ +
22
│ │ │ │ +
23#ifndef _tds_h_
│ │ │ │ +
24#error Include tds.h first
│ │ │ │ +
25#endif
│ │ │ │ +
26
│ │ │ │ +
27#include <freetds/pushvis.h>
│ │ │ │ +
28
│ │ │ │ +
│ │ │ │ +
30typedef struct tds_input_stream {
│ │ │ │ +
35 int (*read)(struct tds_input_stream *stream, void *ptr, size_t len);
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
37
│ │ │ │ +
│ │ │ │ +
39typedef struct tds_output_stream {
│ │ │ │ +
41 int (*write)(struct tds_output_stream *stream, size_t len);
│ │ │ │ +
50 char *buffer;
│ │ │ │ +
51 size_t buf_len;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
53
│ │ │ │ +
55TDSRET tds_convert_stream(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION direction,
│ │ │ │ +
56 TDSINSTREAM * istream, TDSOUTSTREAM *ostream);
│ │ │ │ +
58TDSRET tds_copy_stream(TDSINSTREAM * istream, TDSOUTSTREAM * ostream);
│ │ │ │ +
59
│ │ │ │ +
60/* Additional streams */
│ │ │ │ +
61
│ │ │ │ +
│ │ │ │ +
63typedef struct tds_datain_stream {
│ │ │ │ +
64 TDSINSTREAM stream;
│ │ │ │ +
65 size_t wire_size;
│ │ │ │ +
66 TDSSOCKET *tds;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
68
│ │ │ │ +
69void tds_datain_stream_init(TDSDATAINSTREAM * stream, TDSSOCKET * tds, size_t wire_size);
│ │ │ │ +
70
│ │ │ │ +
│ │ │ │ +
72typedef struct tds_dataout_stream {
│ │ │ │ +
73 TDSOUTSTREAM stream;
│ │ │ │ +
74 TDSSOCKET *tds;
│ │ │ │ +
75 size_t written;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
77
│ │ │ │ + │ │ │ │ +
79
│ │ │ │ +
│ │ │ │ +
81typedef struct tds_staticin_stream {
│ │ │ │ +
82 TDSINSTREAM stream;
│ │ │ │ +
83 const char *buffer;
│ │ │ │ +
84 size_t buf_left;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
86
│ │ │ │ +
87void tds_staticin_stream_init(TDSSTATICINSTREAM * stream, const void *ptr, size_t len);
│ │ │ │ +
88
│ │ │ │ +
│ │ │ │ +
92typedef struct tds_staticout_stream {
│ │ │ │ +
93 TDSOUTSTREAM stream;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
95
│ │ │ │ +
96void tds_staticout_stream_init(TDSSTATICOUTSTREAM * stream, void *ptr, size_t len);
│ │ │ │ +
97
│ │ │ │ +
│ │ │ │ +
99typedef struct tds_dynamic_stream {
│ │ │ │ +
100 TDSOUTSTREAM stream;
│ │ │ │ +
102 void **buf;
│ │ │ │ +
104 size_t allocated;
│ │ │ │ +
106 size_t size;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
108
│ │ │ │ +
109TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM * stream, void **ptr, size_t allocated);
│ │ │ │ +
110
│ │ │ │ +
111#include <freetds/popvis.h>
│ │ │ │ +
112
│ │ │ │ +
113#endif
│ │ │ │ +
114
│ │ │ │ +
TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
Initialize a dynamic output stream.
Definition stream.c:354
│ │ │ │ +
TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream to another.
Definition stream.c:163
│ │ │ │ +
TDSRET tds_convert_stream(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
Reads and writes from a stream converting characters.
Definition stream.c:71
│ │ │ │ +
void tds_staticout_stream_init(TDSSTATICOUTSTREAM *stream, void *ptr, size_t len)
Initialize an output stream for write into a static allocated buffer.
Definition stream.c:313
│ │ │ │ +
void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
Initialize a data output stream.
Definition stream.c:244
│ │ │ │ +
void tds_staticin_stream_init(TDSSTATICINSTREAM *stream, const void *ptr, size_t len)
Initialize an input stream for read from a static allocated buffer.
Definition stream.c:286
│ │ │ │ +
void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
Initialize a data input stream.
Definition stream.c:204
│ │ │ │ +
Definition iconv.h:92
│ │ │ │ +
define a stream of data used for input
Definition stream.h:30
│ │ │ │ +
int(* read)(struct tds_input_stream *stream, void *ptr, size_t len)
read some data Return 0 if end of stream Return <0 if error (actually not defined)
Definition stream.h:35
│ │ │ │ +
define a stream of data used for output
Definition stream.h:39
│ │ │ │ +
char * buffer
write buffer.
Definition stream.h:50
│ │ │ │ +
int(* write)(struct tds_output_stream *stream, size_t len)
write len bytes from buffer, return <0 if error or len
Definition stream.h:41
│ │ │ │ +
input stream to read data from tds protocol
Definition stream.h:63
│ │ │ │ +
size_t wire_size
bytes still to read
Definition stream.h:65
│ │ │ │ +
output stream to write data to tds protocol
Definition stream.h:72
│ │ │ │ +
input stream to read data from a static buffer
Definition stream.h:81
│ │ │ │ +
output stream to write data to a static buffer.
Definition stream.h:92
│ │ │ │ +
output stream to write data to a dynamic buffer
Definition stream.h:99
│ │ │ │ +
void ** buf
where is stored the pointer
Definition stream.h:102
│ │ │ │ +
size_t size
size of data inside buffer
Definition stream.h:106
│ │ │ │ +
size_t allocated
currently allocated buffer
Definition stream.h:104
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,36 +1,189 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -alloca.h │ │ │ │ │ -1/* Cfr https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf- │ │ │ │ │ -2.69/html_node/Particular-Functions.html */ │ │ │ │ │ -2#ifdef STDC_HEADERS │ │ │ │ │ -3# include │ │ │ │ │ -4# include │ │ │ │ │ -5#else │ │ │ │ │ -6# ifdef HAVE_STDLIB_H │ │ │ │ │ -7# include │ │ │ │ │ -8# endif │ │ │ │ │ -9#endif │ │ │ │ │ -10#ifdef HAVE_ALLOCA_H │ │ │ │ │ -11# include │ │ │ │ │ -12#elif !defined alloca │ │ │ │ │ -13# ifdef __GNUC__ │ │ │ │ │ -14# define alloca __builtin_alloca │ │ │ │ │ -15# elif defined _AIX │ │ │ │ │ -16# define alloca __alloca │ │ │ │ │ -17# elif defined _MSC_VER │ │ │ │ │ -18# include │ │ │ │ │ -19# define alloca _alloca │ │ │ │ │ -20# elif !defined HAVE_ALLOCA │ │ │ │ │ -21# ifdef __cplusplus │ │ │ │ │ -22extern "C" │ │ │ │ │ -23# endif │ │ │ │ │ -24void *alloca (size_t); │ │ │ │ │ -25# endif │ │ │ │ │ -26#endif │ │ │ │ │ +stream.h │ │ │ │ │ +1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ +2 * Copyright (C) 2013 Frediano Ziglio │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _freetds_stream_h_ │ │ │ │ │ +21#define _freetds_stream_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#ifndef _tds_h_ │ │ │ │ │ +24#error Include tds.h first │ │ │ │ │ +25#endif │ │ │ │ │ +26 │ │ │ │ │ +27#include │ │ │ │ │ +28 │ │ │ │ │ +_3_0typedef struct _t_d_s___i_n_p_u_t___s_t_r_e_a_m { │ │ │ │ │ +_3_5 int (*_r_e_a_d)(struct _t_d_s___i_n_p_u_t___s_t_r_e_a_m *stream, void *ptr, size_t len); │ │ │ │ │ +36} _T_D_S_I_N_S_T_R_E_A_M; │ │ │ │ │ +37 │ │ │ │ │ +_3_9typedef struct _t_d_s___o_u_t_p_u_t___s_t_r_e_a_m { │ │ │ │ │ +_4_1 int (*_w_r_i_t_e)(struct _t_d_s___o_u_t_p_u_t___s_t_r_e_a_m *stream, size_t len); │ │ │ │ │ +_5_0 char *_b_u_f_f_e_r; │ │ │ │ │ +51 size_t buf_len; │ │ │ │ │ +52} _T_D_S_O_U_T_S_T_R_E_A_M; │ │ │ │ │ +53 │ │ │ │ │ +55TDSRET _t_d_s___c_o_n_v_e_r_t___s_t_r_e_a_m(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * char_conv, │ │ │ │ │ +TDS_ICONV_DIRECTION direction, │ │ │ │ │ +56 _T_D_S_I_N_S_T_R_E_A_M * istream, _T_D_S_O_U_T_S_T_R_E_A_M *ostream); │ │ │ │ │ +58TDSRET _t_d_s___c_o_p_y___s_t_r_e_a_m(_T_D_S_I_N_S_T_R_E_A_M * istream, _T_D_S_O_U_T_S_T_R_E_A_M * ostream); │ │ │ │ │ +59 │ │ │ │ │ +60/* Additional streams */ │ │ │ │ │ +61 │ │ │ │ │ +_6_3typedef struct _t_d_s___d_a_t_a_i_n___s_t_r_e_a_m { │ │ │ │ │ +64 _T_D_S_I_N_S_T_R_E_A_M stream; │ │ │ │ │ +_6_5 size_t _w_i_r_e___s_i_z_e; │ │ │ │ │ +66 _T_D_S_S_O_C_K_E_T *tds; │ │ │ │ │ +67} _T_D_S_D_A_T_A_I_N_S_T_R_E_A_M; │ │ │ │ │ +68 │ │ │ │ │ +69void _t_d_s___d_a_t_a_i_n___s_t_r_e_a_m___i_n_i_t(_T_D_S_D_A_T_A_I_N_S_T_R_E_A_M * stream, _T_D_S_S_O_C_K_E_T * tds, size_t │ │ │ │ │ +wire_size); │ │ │ │ │ +70 │ │ │ │ │ +_7_2typedef struct _t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m { │ │ │ │ │ +73 _T_D_S_O_U_T_S_T_R_E_A_M stream; │ │ │ │ │ +74 _T_D_S_S_O_C_K_E_T *tds; │ │ │ │ │ +75 size_t written; │ │ │ │ │ +76} _T_D_S_D_A_T_A_O_U_T_S_T_R_E_A_M; │ │ │ │ │ +77 │ │ │ │ │ +78void _t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m___i_n_i_t(_T_D_S_D_A_T_A_O_U_T_S_T_R_E_A_M * stream, _T_D_S_S_O_C_K_E_T * tds); │ │ │ │ │ +79 │ │ │ │ │ +_8_1typedef struct _t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m { │ │ │ │ │ +82 _T_D_S_I_N_S_T_R_E_A_M stream; │ │ │ │ │ +83 const char *buffer; │ │ │ │ │ +84 size_t buf_left; │ │ │ │ │ +85} _T_D_S_S_T_A_T_I_C_I_N_S_T_R_E_A_M; │ │ │ │ │ +86 │ │ │ │ │ +87void _t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m___i_n_i_t(_T_D_S_S_T_A_T_I_C_I_N_S_T_R_E_A_M * stream, const void *ptr, │ │ │ │ │ +size_t len); │ │ │ │ │ +88 │ │ │ │ │ +_9_2typedef struct _t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m { │ │ │ │ │ +93 _T_D_S_O_U_T_S_T_R_E_A_M stream; │ │ │ │ │ +94} _T_D_S_S_T_A_T_I_C_O_U_T_S_T_R_E_A_M; │ │ │ │ │ +95 │ │ │ │ │ +96void _t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m___i_n_i_t(_T_D_S_S_T_A_T_I_C_O_U_T_S_T_R_E_A_M * stream, void *ptr, size_t │ │ │ │ │ +len); │ │ │ │ │ +97 │ │ │ │ │ +_9_9typedef struct _t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m { │ │ │ │ │ +100 _T_D_S_O_U_T_S_T_R_E_A_M stream; │ │ │ │ │ +_1_0_2 void **_b_u_f; │ │ │ │ │ +_1_0_4 size_t _a_l_l_o_c_a_t_e_d; │ │ │ │ │ +_1_0_6 size_t _s_i_z_e; │ │ │ │ │ +107} _T_D_S_D_Y_N_A_M_I_C_S_T_R_E_A_M; │ │ │ │ │ +108 │ │ │ │ │ +109TDSRET _t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m___i_n_i_t(_T_D_S_D_Y_N_A_M_I_C_S_T_R_E_A_M * stream, void **ptr, size_t │ │ │ │ │ +allocated); │ │ │ │ │ +110 │ │ │ │ │ +111#include │ │ │ │ │ +112 │ │ │ │ │ +113#endif │ │ │ │ │ +114 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ +TDSRET tds_dynamic_stream_init(TDSDYNAMICSTREAM *stream, void **ptr, size_t │ │ │ │ │ +allocated) │ │ │ │ │ +Initialize a dynamic output stream. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:354 │ │ │ │ │ +_t_d_s___c_o_p_y___s_t_r_e_a_m │ │ │ │ │ +TDSRET tds_copy_stream(TDSINSTREAM *istream, TDSOUTSTREAM *ostream) │ │ │ │ │ +Reads and writes from a stream to another. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:163 │ │ │ │ │ +_t_d_s___c_o_n_v_e_r_t___s_t_r_e_a_m │ │ │ │ │ +TDSRET tds_convert_stream(TDSSOCKET *tds, TDSICONV *char_conv, │ │ │ │ │ +TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream) │ │ │ │ │ +Reads and writes from a stream converting characters. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:71 │ │ │ │ │ +_t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ +void tds_staticout_stream_init(TDSSTATICOUTSTREAM *stream, void *ptr, size_t │ │ │ │ │ +len) │ │ │ │ │ +Initialize an output stream for write into a static allocated buffer. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:313 │ │ │ │ │ +_t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ +void tds_dataout_stream_init(TDSDATAOUTSTREAM *stream, TDSSOCKET *tds) │ │ │ │ │ +Initialize a data output stream. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:244 │ │ │ │ │ +_t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ +void tds_staticin_stream_init(TDSSTATICINSTREAM *stream, const void *ptr, │ │ │ │ │ +size_t len) │ │ │ │ │ +Initialize an input stream for read from a static allocated buffer. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:286 │ │ │ │ │ +_t_d_s___d_a_t_a_i_n___s_t_r_e_a_m___i_n_i_t │ │ │ │ │ +void tds_datain_stream_init(TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t │ │ │ │ │ +wire_size) │ │ │ │ │ +Initialize a data input stream. │ │ │ │ │ +DDeeffiinniittiioonn stream.c:204 │ │ │ │ │ +_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ +_t_d_s___i_n_p_u_t___s_t_r_e_a_m │ │ │ │ │ +define a stream of data used for input │ │ │ │ │ +DDeeffiinniittiioonn stream.h:30 │ │ │ │ │ +_t_d_s___i_n_p_u_t___s_t_r_e_a_m_:_:_r_e_a_d │ │ │ │ │ +int(* read)(struct tds_input_stream *stream, void *ptr, size_t len) │ │ │ │ │ +read some data Return 0 if end of stream Return <0 if error (actually not │ │ │ │ │ +defined) │ │ │ │ │ +DDeeffiinniittiioonn stream.h:35 │ │ │ │ │ +_t_d_s___o_u_t_p_u_t___s_t_r_e_a_m │ │ │ │ │ +define a stream of data used for output │ │ │ │ │ +DDeeffiinniittiioonn stream.h:39 │ │ │ │ │ +_t_d_s___o_u_t_p_u_t___s_t_r_e_a_m_:_:_b_u_f_f_e_r │ │ │ │ │ +char * buffer │ │ │ │ │ +write buffer. │ │ │ │ │ +DDeeffiinniittiioonn stream.h:50 │ │ │ │ │ +_t_d_s___o_u_t_p_u_t___s_t_r_e_a_m_:_:_w_r_i_t_e │ │ │ │ │ +int(* write)(struct tds_output_stream *stream, size_t len) │ │ │ │ │ +write len bytes from buffer, return <0 if error or len │ │ │ │ │ +DDeeffiinniittiioonn stream.h:41 │ │ │ │ │ +_t_d_s___d_a_t_a_i_n___s_t_r_e_a_m │ │ │ │ │ +input stream to read data from tds protocol │ │ │ │ │ +DDeeffiinniittiioonn stream.h:63 │ │ │ │ │ +_t_d_s___d_a_t_a_i_n___s_t_r_e_a_m_:_:_w_i_r_e___s_i_z_e │ │ │ │ │ +size_t wire_size │ │ │ │ │ +bytes still to read │ │ │ │ │ +DDeeffiinniittiioonn stream.h:65 │ │ │ │ │ +_t_d_s___d_a_t_a_o_u_t___s_t_r_e_a_m │ │ │ │ │ +output stream to write data to tds protocol │ │ │ │ │ +DDeeffiinniittiioonn stream.h:72 │ │ │ │ │ +_t_d_s___s_t_a_t_i_c_i_n___s_t_r_e_a_m │ │ │ │ │ +input stream to read data from a static buffer │ │ │ │ │ +DDeeffiinniittiioonn stream.h:81 │ │ │ │ │ +_t_d_s___s_t_a_t_i_c_o_u_t___s_t_r_e_a_m │ │ │ │ │ +output stream to write data to a static buffer. │ │ │ │ │ +DDeeffiinniittiioonn stream.h:92 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m │ │ │ │ │ +output stream to write data to a dynamic buffer │ │ │ │ │ +DDeeffiinniittiioonn stream.h:99 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m_:_:_b_u_f │ │ │ │ │ +void ** buf │ │ │ │ │ +where is stored the pointer │ │ │ │ │ +DDeeffiinniittiioonn stream.h:102 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m_:_:_s_i_z_e │ │ │ │ │ +size_t size │ │ │ │ │ +size of data inside buffer │ │ │ │ │ +DDeeffiinniittiioonn stream.h:106 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c___s_t_r_e_a_m_:_:_a_l_l_o_c_a_t_e_d │ │ │ │ │ +size_t allocated │ │ │ │ │ +currently allocated buffer │ │ │ │ │ +DDeeffiinniittiioonn stream.h:104 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00464_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/proto.h Source File │ │ │ │ +FreeTDS API: include/freetds/convert.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,577 +74,142 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
proto.h
│ │ │ │ +
convert.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ -
3 * Copyright (C) 2010, 2011 Frediano Ziglio
│ │ │ │ -
4 *
│ │ │ │ -
5 * This library is free software; you can redistribute it and/or
│ │ │ │ -
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
7 * License as published by the Free Software Foundation; either
│ │ │ │ -
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
9 *
│ │ │ │ -
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
13 * Library General Public License for more details.
│ │ │ │ -
14 *
│ │ │ │ -
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
16 * License along with this library; if not, write to the
│ │ │ │ -
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
18 * Boston, MA 02111-1307, USA.
│ │ │ │ -
19 */
│ │ │ │ -
20
│ │ │ │ -
21/*
│ │ │ │ -
22 * This file contains defines and structures strictly related to TDS protocol
│ │ │ │ -
23 */
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
3 *
│ │ │ │ +
4 * This library is free software; you can redistribute it and/or
│ │ │ │ +
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
6 * License as published by the Free Software Foundation; either
│ │ │ │ +
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
8 *
│ │ │ │ +
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
12 * Library General Public License for more details.
│ │ │ │ +
13 *
│ │ │ │ +
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
15 * License along with this library; if not, write to the
│ │ │ │ +
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
17 * Boston, MA 02111-1307, USA.
│ │ │ │ +
18 */
│ │ │ │ +
19
│ │ │ │ +
20#ifndef _tdsconvert_h_
│ │ │ │ +
21#define _tdsconvert_h_
│ │ │ │ +
22
│ │ │ │ +
23#include <freetds/pushvis.h>
│ │ │ │
24
│ │ │ │ -
│ │ │ │ -
25typedef struct tdsnumeric
│ │ │ │ -
26{
│ │ │ │ -
27 unsigned char precision;
│ │ │ │ -
28 unsigned char scale;
│ │ │ │ -
29 unsigned char array[33];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
31
│ │ │ │ -
│ │ │ │ -
32typedef struct tdsoldmoney
│ │ │ │ -
33{
│ │ │ │ -
34 TDS_INT mnyhigh;
│ │ │ │ -
35 TDS_UINT mnylow;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
37
│ │ │ │ -
│ │ │ │ -
38typedef union tdsmoney
│ │ │ │ -
39{
│ │ │ │ - │ │ │ │ -
41 TDS_INT8 mny;
│ │ │ │ -
42} TDS_MONEY;
│ │ │ │ -
│ │ │ │ -
43
│ │ │ │ -
│ │ │ │ -
44typedef struct tdsmoney4
│ │ │ │ -
45{
│ │ │ │ -
46 TDS_INT mny4;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
48
│ │ │ │ -
│ │ │ │ -
49typedef struct tdsdatetime
│ │ │ │ -
50{
│ │ │ │ -
51 TDS_INT dtdays;
│ │ │ │ -
52 TDS_INT dttime;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
54
│ │ │ │ -
│ │ │ │ -
55typedef struct tdsdatetime4
│ │ │ │ -
56{
│ │ │ │ -
57 TDS_USMALLINT days;
│ │ │ │ -
58 TDS_USMALLINT minutes;
│ │ │ │ - │ │ │ │ -
│ │ │ │ +
25#ifdef __cplusplus
│ │ │ │ +
26extern "C"
│ │ │ │ +
27{
│ │ │ │ +
28#if 0
│ │ │ │ +
29}
│ │ │ │ +
30#endif
│ │ │ │ +
31#endif
│ │ │ │ +
32
│ │ │ │ +
│ │ │ │ +
33typedef union conv_result
│ │ │ │ +
34{
│ │ │ │ +
35 /* fixed */
│ │ │ │ +
36 TDS_TINYINT ti;
│ │ │ │ +
37 TDS_SMALLINT si;
│ │ │ │ +
38 TDS_USMALLINT usi;
│ │ │ │ +
39 TDS_INT i;
│ │ │ │ +
40 TDS_UINT ui;
│ │ │ │ +
41 TDS_INT8 bi;
│ │ │ │ +
42 TDS_UINT8 ubi;
│ │ │ │ +
43 TDS_FLOAT f;
│ │ │ │ +
44 TDS_REAL r;
│ │ │ │ +
45 TDS_MONEY m;
│ │ │ │ +
46 TDS_MONEY4 m4;
│ │ │ │ +
47 TDS_DATETIME dt;
│ │ │ │ +
48 TDS_DATETIME4 dt4;
│ │ │ │ + │ │ │ │ +
50 TDS_TIME time;
│ │ │ │ +
51 TDS_DATE date;
│ │ │ │ +
52 TDS_BIGTIME bigtime;
│ │ │ │ +
53 TDS_BIGDATETIME bigdatetime;
│ │ │ │ + │ │ │ │ +
55 TDS_UNIQUE u;
│ │ │ │ +
56
│ │ │ │ +
57 /* variable */
│ │ │ │ +
58 TDS_CHAR *c;
│ │ │ │ +
59 TDS_CHAR *ib;
│ │ │ │
60
│ │ │ │ -
│ │ │ │ -
61typedef struct tdsunique
│ │ │ │ -
62{
│ │ │ │ -
63 TDS_UINT Data1;
│ │ │ │ -
64 TDS_USMALLINT Data2;
│ │ │ │ -
65 TDS_USMALLINT Data3;
│ │ │ │ -
66 TDS_UCHAR Data4[8];
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
68
│ │ │ │ -
69typedef TDS_INT TDS_DATE;
│ │ │ │ -
70typedef TDS_INT TDS_TIME;
│ │ │ │ -
71
│ │ │ │ -
72typedef TDS_UINT8 TDS_BIGTIME;
│ │ │ │ -
73typedef TDS_UINT8 TDS_BIGDATETIME;
│ │ │ │ -
74
│ │ │ │ -
75#define TDS5_PARAMFMT2_TOKEN 32 /* 0x20 */
│ │ │ │ -
76#define TDS_LANGUAGE_TOKEN 33 /* 0x21 TDS 5.0 only */
│ │ │ │ -
77#define TDS_ORDERBY2_TOKEN 34 /* 0x22 */
│ │ │ │ -
78#define TDS_ROWFMT2_TOKEN 97 /* 0x61 TDS 5.0 only */
│ │ │ │ -
79#define TDS_MSG_TOKEN 101 /* 0x65 TDS 5.0 only */
│ │ │ │ -
80#define TDS_LOGOUT_TOKEN 113 /* 0x71 TDS 5.0 only? ct_close() */
│ │ │ │ -
81#define TDS_RETURNSTATUS_TOKEN 121 /* 0x79 */
│ │ │ │ -
82#define TDS_PROCID_TOKEN 124 /* 0x7C TDS 4.2 only - TDS_PROCID */
│ │ │ │ -
83#define TDS7_RESULT_TOKEN 129 /* 0x81 TDS 7.0 only */
│ │ │ │ -
84#define TDS7_COMPUTE_RESULT_TOKEN 136 /* 0x88 TDS 7.0 only */
│ │ │ │ -
85#define TDS_COLNAME_TOKEN 160 /* 0xA0 TDS 4.2 only */
│ │ │ │ -
86#define TDS_COLFMT_TOKEN 161 /* 0xA1 TDS 4.2 only - TDS_COLFMT */
│ │ │ │ -
87#define TDS_DYNAMIC2_TOKEN 163 /* 0xA3 */
│ │ │ │ -
88#define TDS_TABNAME_TOKEN 164 /* 0xA4 */
│ │ │ │ -
89#define TDS_COLINFO_TOKEN 165 /* 0xA5 */
│ │ │ │ -
90#define TDS_OPTIONCMD_TOKEN 166 /* 0xA6 */
│ │ │ │ -
91#define TDS_COMPUTE_NAMES_TOKEN 167 /* 0xA7 */
│ │ │ │ -
92#define TDS_COMPUTE_RESULT_TOKEN 168 /* 0xA8 */
│ │ │ │ -
93#define TDS_ORDERBY_TOKEN 169 /* 0xA9 TDS_ORDER */
│ │ │ │ -
94#define TDS_ERROR_TOKEN 170 /* 0xAA */
│ │ │ │ -
95#define TDS_INFO_TOKEN 171 /* 0xAB */
│ │ │ │ -
96#define TDS_PARAM_TOKEN 172 /* 0xAC RETURNVALUE? */
│ │ │ │ -
97#define TDS_LOGINACK_TOKEN 173 /* 0xAD */
│ │ │ │ -
98#define TDS_CONTROL_FEATUREEXTACK_TOKEN \
│ │ │ │ -
99 174 /* 0xAE TDS_CONTROL/TDS_FEATUREEXTACK */
│ │ │ │ -
100#define TDS_ROW_TOKEN 209 /* 0xD1 */
│ │ │ │ -
101#define TDS_NBC_ROW_TOKEN 210 /* 0xD2 as of TDS 7.3.B */
│ │ │ │ -
102#define TDS_CMP_ROW_TOKEN 211 /* 0xD3 */
│ │ │ │ -
103#define TDS5_PARAMS_TOKEN 215 /* 0xD7 TDS 5.0 only */
│ │ │ │ -
104#define TDS_CAPABILITY_TOKEN 226 /* 0xE2 */
│ │ │ │ -
105#define TDS_ENVCHANGE_TOKEN 227 /* 0xE3 */
│ │ │ │ -
106#define TDS_SESSIONSTATE_TOKEN 228 /* 0xE4 TDS 7.4 */
│ │ │ │ -
107#define TDS_EED_TOKEN 229 /* 0xE5 */
│ │ │ │ -
108#define TDS_DBRPC_TOKEN 230 /* 0xE6 TDS 5.0 only */
│ │ │ │ -
109#define TDS5_DYNAMIC_TOKEN 231 /* 0xE7 TDS 5.0 only */
│ │ │ │ -
110#define TDS5_PARAMFMT_TOKEN 236 /* 0xEC TDS 5.0 only */
│ │ │ │ -
111#define TDS_AUTH_TOKEN 237 /* 0xED TDS 7.0 only */
│ │ │ │ -
112#define TDS_RESULT_TOKEN 238 /* 0xEE */
│ │ │ │ -
113#define TDS_DONE_TOKEN 253 /* 0xFD TDS_DONE */
│ │ │ │ -
114#define TDS_DONEPROC_TOKEN 254 /* 0xFE TDS_DONEPROC */
│ │ │ │ -
115#define TDS_DONEINPROC_TOKEN 255 /* 0xFF TDS_DONEINPROC */
│ │ │ │ -
116
│ │ │ │ -
117/* CURSOR support: TDS 5.0 only*/
│ │ │ │ -
118#define TDS_CURCLOSE_TOKEN 128 /* 0x80 TDS 5.0 only */
│ │ │ │ -
119#define TDS_CURDELETE_TOKEN 129 /* 0x81 TDS 5.0 only */
│ │ │ │ -
120#define TDS_CURFETCH_TOKEN 130 /* 0x82 TDS 5.0 only */
│ │ │ │ -
121#define TDS_CURINFO_TOKEN 131 /* 0x83 TDS 5.0 only */
│ │ │ │ -
122#define TDS_CUROPEN_TOKEN 132 /* 0x84 TDS 5.0 only */
│ │ │ │ -
123#define TDS_CURDECLARE_TOKEN 134 /* 0x86 TDS 5.0 only */
│ │ │ │ -
124
│ │ │ │ -
125
│ │ │ │ -
126/* environment type field */
│ │ │ │ -
127#define TDS_ENV_DATABASE 1
│ │ │ │ -
128#define TDS_ENV_LANG 2
│ │ │ │ -
129#define TDS_ENV_CHARSET 3
│ │ │ │ -
130#define TDS_ENV_PACKSIZE 4
│ │ │ │ -
131#define TDS_ENV_LCID 5
│ │ │ │ -
132#define TDS_ENV_SQLCOLLATION 7
│ │ │ │ -
133#define TDS_ENV_BEGINTRANS 8
│ │ │ │ -
134#define TDS_ENV_COMMITTRANS 9
│ │ │ │ -
135#define TDS_ENV_ROLLBACKTRANS 10
│ │ │ │ -
136#define TDS_ENV_ROUTING 20
│ │ │ │ -
137
│ │ │ │ -
138/* Microsoft internal stored procedure id's */
│ │ │ │ -
139#define TDS_SP_CURSOR 1
│ │ │ │ -
140#define TDS_SP_CURSOROPEN 2
│ │ │ │ -
141#define TDS_SP_CURSORPREPARE 3
│ │ │ │ -
142#define TDS_SP_CURSOREXECUTE 4
│ │ │ │ -
143#define TDS_SP_CURSORPREPEXEC 5
│ │ │ │ -
144#define TDS_SP_CURSORUNPREPARE 6
│ │ │ │ -
145#define TDS_SP_CURSORFETCH 7
│ │ │ │ -
146#define TDS_SP_CURSOROPTION 8
│ │ │ │ -
147#define TDS_SP_CURSORCLOSE 9
│ │ │ │ -
148#define TDS_SP_EXECUTESQL 10
│ │ │ │ -
149#define TDS_SP_PREPARE 11
│ │ │ │ -
150#define TDS_SP_EXECUTE 12
│ │ │ │ -
151#define TDS_SP_PREPEXEC 13
│ │ │ │ -
152#define TDS_SP_PREPEXECRPC 14
│ │ │ │ -
153#define TDS_SP_UNPREPARE 15
│ │ │ │ -
154
│ │ │ │ -
155/*
│ │ │ │ -
156 * <rant> Sybase does an awful job of this stuff, non null ints of size 1 2
│ │ │ │ -
157 * and 4 have there own codes but nullable ints are lumped into INTN
│ │ │ │ -
158 * sheesh! </rant>
│ │ │ │ -
159 */
│ │ │ │ -
160typedef enum
│ │ │ │ -
161{
│ │ │ │ -
162 SYBCHAR = 47, /* 0x2F */
│ │ │ │ -
163 SYBVARCHAR = 39, /* 0x27 */
│ │ │ │ -
164 SYBINTN = 38, /* 0x26 */
│ │ │ │ -
165 SYBINT1 = 48, /* 0x30 */
│ │ │ │ -
166 SYBINT2 = 52, /* 0x34 */
│ │ │ │ -
167 SYBINT4 = 56, /* 0x38 */
│ │ │ │ -
168 SYBFLT8 = 62, /* 0x3E */
│ │ │ │ -
169 SYBDATETIME = 61, /* 0x3D */
│ │ │ │ -
170 SYBBIT = 50, /* 0x32 */
│ │ │ │ -
171 SYBTEXT = 35, /* 0x23 */
│ │ │ │ -
172 SYBNTEXT = 99, /* 0x63 */
│ │ │ │ -
173 SYBIMAGE = 34, /* 0x22 */
│ │ │ │ -
174 SYBMONEY4 = 122, /* 0x7A */
│ │ │ │ -
175 SYBMONEY = 60, /* 0x3C */
│ │ │ │ -
176 SYBDATETIME4 = 58, /* 0x3A */
│ │ │ │ -
177 SYBREAL = 59, /* 0x3B */
│ │ │ │ -
178 SYBBINARY = 45, /* 0x2D */
│ │ │ │ -
179 SYBVOID = 31, /* 0x1F */
│ │ │ │ -
180 SYBVARBINARY = 37, /* 0x25 */
│ │ │ │ -
181 SYBBITN = 104, /* 0x68 */
│ │ │ │ -
182 SYBNUMERIC = 108, /* 0x6C */
│ │ │ │ -
183 SYBDECIMAL = 106, /* 0x6A */
│ │ │ │ -
184 SYBFLTN = 109, /* 0x6D */
│ │ │ │ -
185 SYBMONEYN = 110, /* 0x6E */
│ │ │ │ -
186 SYBDATETIMN = 111, /* 0x6F */
│ │ │ │ -
187
│ │ │ │ -
188/*
│ │ │ │ -
189 * MS only types
│ │ │ │ -
190 */
│ │ │ │ -
191 SYBNVARCHAR = 103, /* 0x67 */
│ │ │ │ -
192 SYBINT8 = 127, /* 0x7F */
│ │ │ │ -
193 XSYBCHAR = 175, /* 0xAF */
│ │ │ │ -
194 XSYBVARCHAR = 167, /* 0xA7 */
│ │ │ │ -
195 XSYBNVARCHAR = 231, /* 0xE7 */
│ │ │ │ -
196 XSYBNCHAR = 239, /* 0xEF */
│ │ │ │ -
197 XSYBVARBINARY = 165, /* 0xA5 */
│ │ │ │ -
198 XSYBBINARY = 173, /* 0xAD */
│ │ │ │ -
199 SYBUNIQUE = 36, /* 0x24 */
│ │ │ │ -
200 SYBVARIANT = 98, /* 0x62 */
│ │ │ │ -
201 SYBMSUDT = 240, /* 0xF0 */
│ │ │ │ -
202 SYBMSXML = 241, /* 0xF1 */
│ │ │ │ -
203 SYBMSDATE = 40, /* 0x28 */
│ │ │ │ -
204 SYBMSTIME = 41, /* 0x29 */
│ │ │ │ -
205 SYBMSDATETIME2 = 42, /* 0x2a */
│ │ │ │ -
206 SYBMSDATETIMEOFFSET = 43,/* 0x2b */
│ │ │ │ -
207
│ │ │ │ -
208/*
│ │ │ │ -
209 * Sybase only types
│ │ │ │ -
210 */
│ │ │ │ -
211 SYBLONGBINARY = 225, /* 0xE1 */
│ │ │ │ -
212 SYBUINT1 = 64, /* 0x40 */
│ │ │ │ -
213 SYBUINT2 = 65, /* 0x41 */
│ │ │ │ -
214 SYBUINT4 = 66, /* 0x42 */
│ │ │ │ -
215 SYBUINT8 = 67, /* 0x43 */
│ │ │ │ -
216 SYBBLOB = 36, /* 0x24 */
│ │ │ │ -
217 SYBBOUNDARY = 104, /* 0x68 */
│ │ │ │ -
218 SYBDATE = 49, /* 0x31 */
│ │ │ │ -
219 SYBDATEN = 123, /* 0x7B */
│ │ │ │ -
220 SYB5INT8 = 191, /* 0xBF */
│ │ │ │ -
221 SYBINTERVAL = 46, /* 0x2E */
│ │ │ │ -
222 SYBLONGCHAR = 175, /* 0xAF */
│ │ │ │ -
223 SYBSENSITIVITY = 103, /* 0x67 */
│ │ │ │ -
224 SYBSINT1 = 176, /* 0xB0 */
│ │ │ │ -
225 SYBTIME = 51, /* 0x33 */
│ │ │ │ -
226 SYBTIMEN = 147, /* 0x93 */
│ │ │ │ -
227 SYBUINTN = 68, /* 0x44 */
│ │ │ │ -
228 SYBUNITEXT = 174, /* 0xAE */
│ │ │ │ -
229 SYBXML = 163, /* 0xA3 */
│ │ │ │ -
230 SYB5BIGDATETIME = 187, /* 0xBB */
│ │ │ │ -
231 SYB5BIGTIME = 188, /* 0xBC */
│ │ │ │ -
232
│ │ │ │ -
233} TDS_SERVER_TYPE;
│ │ │ │ -
234
│ │ │ │ -
235typedef enum
│ │ │ │ -
236{
│ │ │ │ -
237 USER_UNICHAR_TYPE = 34, /* 0x22 */
│ │ │ │ -
238 USER_UNIVARCHAR_TYPE = 35 /* 0x23 */
│ │ │ │ -
239} TDS_USER_TYPE;
│ │ │ │ -
240
│ │ │ │ -
241/* compute operator */
│ │ │ │ -
242#define SYBAOPCNT 75 /* 0x4B */
│ │ │ │ -
243#define SYBAOPCNTU 76 /* 0x4C, obsolete */
│ │ │ │ -
244#define SYBAOPSUM 77 /* 0x4D */
│ │ │ │ -
245#define SYBAOPSUMU 78 /* 0x4E, obsolete */
│ │ │ │ -
246#define SYBAOPAVG 79 /* 0x4F */
│ │ │ │ -
247#define SYBAOPAVGU 80 /* 0x50, obsolete */
│ │ │ │ -
248#define SYBAOPMIN 81 /* 0x51 */
│ │ │ │ -
249#define SYBAOPMAX 82 /* 0x52 */
│ │ │ │ -
250
│ │ │ │ -
251/* mssql2k compute operator */
│ │ │ │ -
252#define SYBAOPCNT_BIG 9 /* 0x09 */
│ │ │ │ -
253#define SYBAOPSTDEV 48 /* 0x30 */
│ │ │ │ -
254#define SYBAOPSTDEVP 49 /* 0x31 */
│ │ │ │ -
255#define SYBAOPVAR 50 /* 0x32 */
│ │ │ │ -
256#define SYBAOPVARP 51 /* 0x33 */
│ │ │ │ -
257#define SYBAOPCHECKSUM_AGG 114 /* 0x72 */
│ │ │ │ -
258
│ │ │ │ -
262typedef enum
│ │ │ │ -
263{
│ │ │ │ -
264 TDS_OPT_SET = 1
│ │ │ │ -
265 , TDS_OPT_DEFAULT = 2
│ │ │ │ -
266 , TDS_OPT_LIST = 3
│ │ │ │ -
267 , TDS_OPT_INFO = 4
│ │ │ │ -
268} TDS_OPTION_CMD;
│ │ │ │ -
269
│ │ │ │ -
270typedef enum
│ │ │ │ -
271{
│ │ │ │ -
272 TDS_OPT_DATEFIRST = 1 /* 0x01 */
│ │ │ │ -
273 , TDS_OPT_TEXTSIZE = 2 /* 0x02 */
│ │ │ │ -
274 , TDS_OPT_STAT_TIME = 3 /* 0x03 */
│ │ │ │ -
275 , TDS_OPT_STAT_IO = 4 /* 0x04 */
│ │ │ │ -
276 , TDS_OPT_ROWCOUNT = 5 /* 0x05 */
│ │ │ │ -
277 , TDS_OPT_NATLANG = 6 /* 0x06 */
│ │ │ │ -
278 , TDS_OPT_DATEFORMAT = 7 /* 0x07 */
│ │ │ │ -
279 , TDS_OPT_ISOLATION = 8 /* 0x08 */
│ │ │ │ -
280 , TDS_OPT_AUTHON = 9 /* 0x09 */
│ │ │ │ -
281 , TDS_OPT_CHARSET = 10 /* 0x0a */
│ │ │ │ -
282 , TDS_OPT_SHOWPLAN = 13 /* 0x0d */
│ │ │ │ -
283 , TDS_OPT_NOEXEC = 14 /* 0x0e */
│ │ │ │ -
284 , TDS_OPT_ARITHIGNOREON = 15 /* 0x0f */
│ │ │ │ -
285 , TDS_OPT_ARITHABORTON = 17 /* 0x11 */
│ │ │ │ -
286 , TDS_OPT_PARSEONLY = 18 /* 0x12 */
│ │ │ │ -
287 , TDS_OPT_GETDATA = 20 /* 0x14 */
│ │ │ │ -
288 , TDS_OPT_NOCOUNT = 21 /* 0x15 */
│ │ │ │ -
289 , TDS_OPT_FORCEPLAN = 23 /* 0x17 */
│ │ │ │ -
290 , TDS_OPT_FORMATONLY = 24 /* 0x18 */
│ │ │ │ -
291 , TDS_OPT_CHAINXACTS = 25 /* 0x19 */
│ │ │ │ -
292 , TDS_OPT_CURCLOSEONXACT = 26 /* 0x1a */
│ │ │ │ -
293 , TDS_OPT_FIPSFLAG = 27 /* 0x1b */
│ │ │ │ -
294 , TDS_OPT_RESTREES = 28 /* 0x1c */
│ │ │ │ -
295 , TDS_OPT_IDENTITYON = 29 /* 0x1d */
│ │ │ │ -
296 , TDS_OPT_CURREAD = 30 /* 0x1e */
│ │ │ │ -
297 , TDS_OPT_CURWRITE = 31 /* 0x1f */
│ │ │ │ -
298 , TDS_OPT_IDENTITYOFF = 32 /* 0x20 */
│ │ │ │ -
299 , TDS_OPT_AUTHOFF = 33 /* 0x21 */
│ │ │ │ -
300 , TDS_OPT_ANSINULL = 34 /* 0x22 */
│ │ │ │ -
301 , TDS_OPT_QUOTED_IDENT = 35 /* 0x23 */
│ │ │ │ -
302 , TDS_OPT_ARITHIGNOREOFF = 36 /* 0x24 */
│ │ │ │ -
303 , TDS_OPT_ARITHABORTOFF = 37 /* 0x25 */
│ │ │ │ -
304 , TDS_OPT_TRUNCABORT = 38 /* 0x26 */
│ │ │ │ -
305} TDS_OPTION;
│ │ │ │ -
306
│ │ │ │ -
307enum {
│ │ │ │ -
308 TDS_OPT_ARITHOVERFLOW = 0x01,
│ │ │ │ -
309 TDS_OPT_NUMERICTRUNC = 0x02
│ │ │ │ -
310};
│ │ │ │ -
311
│ │ │ │ -
312enum TDS_OPT_DATEFIRST_CHOICE
│ │ │ │ -
313{
│ │ │ │ -
314 TDS_OPT_MONDAY = 1, TDS_OPT_TUESDAY = 2, TDS_OPT_WEDNESDAY = 3, TDS_OPT_THURSDAY = 4, TDS_OPT_FRIDAY = 5, TDS_OPT_SATURDAY =
│ │ │ │ -
315 6, TDS_OPT_SUNDAY = 7
│ │ │ │ -
316};
│ │ │ │ -
317
│ │ │ │ -
318enum TDS_OPT_DATEFORMAT_CHOICE
│ │ │ │ -
319{
│ │ │ │ -
320 TDS_OPT_FMTMDY = 1, TDS_OPT_FMTDMY = 2, TDS_OPT_FMTYMD = 3, TDS_OPT_FMTYDM = 4, TDS_OPT_FMTMYD = 5, TDS_OPT_FMTDYM = 6
│ │ │ │ -
321};
│ │ │ │ -
322enum TDS_OPT_ISOLATION_CHOICE
│ │ │ │ -
323{
│ │ │ │ -
324 TDS_OPT_LEVEL0 = 0,
│ │ │ │ -
325 TDS_OPT_LEVEL1 = 1,
│ │ │ │ -
326 TDS_OPT_LEVEL2 = 2,
│ │ │ │ -
327 TDS_OPT_LEVEL3 = 3
│ │ │ │ -
328};
│ │ │ │ -
329
│ │ │ │ -
330
│ │ │ │ -
331typedef enum tds_packet_type
│ │ │ │ -
332{
│ │ │ │ -
333 TDS_QUERY = 1,
│ │ │ │ -
334 TDS_LOGIN = 2,
│ │ │ │ -
335 TDS_RPC = 3,
│ │ │ │ -
336 TDS_REPLY = 4,
│ │ │ │ -
337 TDS_CANCEL = 6,
│ │ │ │ -
338 TDS_BULK = 7,
│ │ │ │ -
339 TDS7_TRANS = 14, /* transaction management */
│ │ │ │ -
340 TDS_NORMAL = 15,
│ │ │ │ -
341 TDS7_LOGIN = 16,
│ │ │ │ -
342 TDS7_AUTH = 17,
│ │ │ │ -
343 TDS71_PRELOGIN = 18,
│ │ │ │ -
344 TDS72_SMP = 0x53
│ │ │ │ -
345} TDS_PACKET_TYPE;
│ │ │ │ -
346
│ │ │ │ -
│ │ │ │ -
350typedef struct
│ │ │ │ -
351{
│ │ │ │ -
352 TDS_USMALLINT locale_id; /* master..syslanguages.lcid */
│ │ │ │ -
353 TDS_USMALLINT flags;
│ │ │ │ -
354 TDS_UCHAR charset_id; /* or zero */
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
356
│ │ │ │ -
│ │ │ │ -
360typedef struct
│ │ │ │ -
361{
│ │ │ │ -
362 TDS_UCHAR signature; /* TDS72_SMP */
│ │ │ │ -
363 TDS_UCHAR type;
│ │ │ │ -
364 TDS_USMALLINT sid;
│ │ │ │ -
365 TDS_UINT size;
│ │ │ │ -
366 TDS_UINT seq;
│ │ │ │ -
367 TDS_UINT wnd;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
369
│ │ │ │ -
370enum {
│ │ │ │ -
371 TDS_SMP_SYN = 1,
│ │ │ │ -
372 TDS_SMP_ACK = 2,
│ │ │ │ -
373 TDS_SMP_FIN = 4,
│ │ │ │ -
374 TDS_SMP_DATA = 8,
│ │ │ │ -
375};
│ │ │ │ -
376
│ │ │ │ -
377/* SF stands for "sort flag" */
│ │ │ │ -
378#define TDS_SF_BIN (TDS_USMALLINT) 0x100
│ │ │ │ -
379#define TDS_SF_WIDTH_INSENSITIVE (TDS_USMALLINT) 0x080
│ │ │ │ -
380#define TDS_SF_KATATYPE_INSENSITIVE (TDS_USMALLINT) 0x040
│ │ │ │ -
381#define TDS_SF_ACCENT_SENSITIVE (TDS_USMALLINT) 0x020
│ │ │ │ -
382#define TDS_SF_CASE_INSENSITIVE (TDS_USMALLINT) 0x010
│ │ │ │ -
383
│ │ │ │ -
384/* UT stands for user type */
│ │ │ │ -
385#define TDS_UT_TIMESTAMP 80
│ │ │ │ -
386
│ │ │ │ -
387
│ │ │ │ -
388/* mssql login options flags */
│ │ │ │ -
389enum option_flag1_values {
│ │ │ │ -
390 TDS_BYTE_ORDER_X86 = 0,
│ │ │ │ -
391 TDS_CHARSET_ASCII = 0,
│ │ │ │ -
392 TDS_DUMPLOAD_ON = 0,
│ │ │ │ -
393 TDS_FLOAT_IEEE_754 = 0,
│ │ │ │ -
394 TDS_INIT_DB_WARN = 0,
│ │ │ │ -
395 TDS_SET_LANG_OFF = 0,
│ │ │ │ -
396 TDS_USE_DB_SILENT = 0,
│ │ │ │ -
397 TDS_BYTE_ORDER_68000 = 0x01,
│ │ │ │ -
398 TDS_CHARSET_EBDDIC = 0x02,
│ │ │ │ -
399 TDS_FLOAT_VAX = 0x04,
│ │ │ │ -
400 TDS_FLOAT_ND5000 = 0x08,
│ │ │ │ -
401 TDS_DUMPLOAD_OFF = 0x10, /* prevent BCP */
│ │ │ │ -
402 TDS_USE_DB_NOTIFY = 0x20,
│ │ │ │ -
403 TDS_INIT_DB_FATAL = 0x40,
│ │ │ │ -
404 TDS_SET_LANG_ON = 0x80
│ │ │ │ -
405};
│ │ │ │ -
406
│ │ │ │ -
407enum option_flag2_values {
│ │ │ │ -
408 TDS_INIT_LANG_WARN = 0,
│ │ │ │ -
409 TDS_INTEGRATED_SECURTY_OFF = 0,
│ │ │ │ -
410 TDS_ODBC_OFF = 0,
│ │ │ │ -
411 TDS_USER_NORMAL = 0, /* SQL Server login */
│ │ │ │ -
412 TDS_INIT_LANG_REQUIRED = 0x01,
│ │ │ │ -
413 TDS_ODBC_ON = 0x02,
│ │ │ │ -
414 TDS_TRANSACTION_BOUNDARY71 = 0x04, /* removed in TDS 7.2 */
│ │ │ │ -
415 TDS_CACHE_CONNECT71 = 0x08, /* removed in TDS 7.2 */
│ │ │ │ -
416 TDS_USER_SERVER = 0x10, /* reserved */
│ │ │ │ -
417 TDS_USER_REMUSER = 0x20, /* DQ login */
│ │ │ │ -
418 TDS_USER_SQLREPL = 0x40, /* replication login */
│ │ │ │ -
419 TDS_INTEGRATED_SECURITY_ON = 0x80
│ │ │ │ -
420};
│ │ │ │ -
421
│ │ │ │ -
422enum option_flag3_values {
│ │ │ │ -
423 TDS_RESTRICTED_COLLATION = 0,
│ │ │ │ -
424 TDS_CHANGE_PASSWORD = 0x01, /* TDS 7.2 */
│ │ │ │ -
425 TDS_SEND_YUKON_BINARY_XML = 0x02, /* TDS 7.2 */
│ │ │ │ -
426 TDS_REQUEST_USER_INSTANCE = 0x04, /* TDS 7.2 */
│ │ │ │ -
427 TDS_UNKNOWN_COLLATION_HANDLING = 0x08, /* TDS 7.3 */
│ │ │ │ -
428 TDS_EXTENSION = 0x10, /* TDS 7.4 */
│ │ │ │ -
429};
│ │ │ │ -
430
│ │ │ │ -
431enum type_flags {
│ │ │ │ -
432 TDS_OLEDB_ON = 0x10,
│ │ │ │ -
433 TDS_READONLY_INTENT = 0x20,
│ │ │ │ -
434};
│ │ │ │ -
435
│ │ │ │ -
436/* Sybase dynamic types */
│ │ │ │ -
437enum dynamic_types {
│ │ │ │ -
438 TDS_DYN_PREPARE = 0x01,
│ │ │ │ -
439 TDS_DYN_EXEC = 0x02,
│ │ │ │ -
440 TDS_DYN_DEALLOC = 0x04,
│ │ │ │ -
441 TDS_DYN_EXEC_IMMED = 0x08,
│ │ │ │ -
442 TDS_DYN_PROCNAME = 0x10,
│ │ │ │ -
443 TDS_DYN_ACK = 0x20,
│ │ │ │ -
444 TDS_DYN_DESCIN = 0x40,
│ │ │ │ -
445 TDS_DYN_DESCOUT = 0x80,
│ │ │ │ -
446};
│ │ │ │ -
447
│ │ │ │ -
448/* http://jtds.sourceforge.net/apiCursors.html */
│ │ │ │ -
449/* Cursor scroll option, must be one of 0x01 - 0x10, OR'd with other bits */
│ │ │ │ -
450enum {
│ │ │ │ -
451 TDS_CUR_TYPE_KEYSET = 0x0001, /* default */
│ │ │ │ -
452 TDS_CUR_TYPE_DYNAMIC = 0x0002,
│ │ │ │ -
453 TDS_CUR_TYPE_FORWARD = 0x0004,
│ │ │ │ -
454 TDS_CUR_TYPE_STATIC = 0x0008,
│ │ │ │ -
455 TDS_CUR_TYPE_FASTFORWARDONLY = 0x0010,
│ │ │ │ -
456 TDS_CUR_TYPE_PARAMETERIZED = 0x1000,
│ │ │ │ -
457 TDS_CUR_TYPE_AUTO_FETCH = 0x2000
│ │ │ │ -
458};
│ │ │ │ -
459
│ │ │ │ -
460enum {
│ │ │ │ -
461 TDS_CUR_CONCUR_READ_ONLY = 1,
│ │ │ │ -
462 TDS_CUR_CONCUR_SCROLL_LOCKS = 2,
│ │ │ │ -
463 TDS_CUR_CONCUR_OPTIMISTIC = 4, /* default */
│ │ │ │ -
464 TDS_CUR_CONCUR_OPTIMISTIC_VALUES = 8
│ │ │ │ -
465};
│ │ │ │ -
466
│ │ │ │ -
467/* TDS 4/5 login*/
│ │ │ │ -
468#define TDS_MAXNAME 30 /* maximum login name lenghts */
│ │ │ │ -
469#define TDS_PROGNLEN 10 /* maximum program lenght */
│ │ │ │ -
470#define TDS_PKTLEN 6 /* maximum packet lenght in login */
│ │ │ │ -
471
│ │ │ │ -
472/* TDS 5 login security flags */
│ │ │ │ -
473enum {
│ │ │ │ -
474 TDS5_SEC_LOG_ENCRYPT = 1,
│ │ │ │ -
475 TDS5_SEC_LOG_CHALLENGE = 2,
│ │ │ │ -
476 TDS5_SEC_LOG_LABELS = 4,
│ │ │ │ -
477 TDS5_SEC_LOG_APPDEFINED = 8,
│ │ │ │ -
478 TDS5_SEC_LOG_SECSESS = 16,
│ │ │ │ -
479 TDS5_SEC_LOG_ENCRYPT2 = 32,
│ │ │ │ -
480 TDS5_SEC_LOG_ENCRYPT3 = 128,
│ │ │ │ -
481};
│ │ │ │ -
482
│ │ │ │ -
484enum {
│ │ │ │ -
485 TDS5_MSG_SEC_ENCRYPT = 1,
│ │ │ │ -
486 TDS5_MSG_SEC_LOGPWD = 2,
│ │ │ │ -
487 TDS5_MSG_SEC_REMPWD = 3,
│ │ │ │ -
488 TDS5_MSG_SEC_CHALLENGE = 4,
│ │ │ │ -
489 TDS5_MSG_SEC_RESPONSE = 5,
│ │ │ │ -
490 TDS5_MSG_SEC_GETLABEL = 6,
│ │ │ │ -
491 TDS5_MSG_SEC_LABEL = 7,
│ │ │ │ -
492 TDS5_MSG_SQL_TBLNAME = 8,
│ │ │ │ -
493 TDS5_MSG_GW_RESERVED = 9,
│ │ │ │ -
494 TDS5_MSG_OMNI_CAPABILITIES = 10,
│ │ │ │ -
495 TDS5_MSG_SEC_OPAQUE = 11,
│ │ │ │ -
496 TDS5_MSG_HAFAILOVER = 12,
│ │ │ │ -
497 TDS5_MSG_EMPTY = 13,
│ │ │ │ -
500 TDS5_MSG_SEC_ENCRYPT2 = 14,
│ │ │ │ -
501 TDS5_MSG_SEC_LOGPWD2 = 15,
│ │ │ │ -
502 TDS5_MSG_SEC_SUP_CIPHER = 16,
│ │ │ │ -
503 TDS5_MSG_MIG_REQ = 17,
│ │ │ │ -
505 TDS5_MSG_MIG_SYNC = 18,
│ │ │ │ -
506 TDS5_MSG_MIG_CONT = 19,
│ │ │ │ -
507 TDS5_MSG_MIG_IGN = 20,
│ │ │ │ -
508 TDS5_MSG_MIG_FAIL = 21,
│ │ │ │ -
510 TDS5_MSG_SEC_REMPWD2 = 22,
│ │ │ │ -
511 TDS5_MSG_MIG_RESUME = 23,
│ │ │ │ -
512 TDS5_MSG_SEC_ENCRYPT3 = 30,
│ │ │ │ -
513 TDS5_MSG_SEC_LOGPWD3 = 31,
│ │ │ │ -
514 TDS5_MSG_SEC_REMPWD3 = 32,
│ │ │ │ -
515 TDS5_MSG_DR_MAP = 33,
│ │ │ │ -
516};
│ │ │ │ -
517
│ │ │ │ -
528enum {
│ │ │ │ -
529 TDS5_SEC_SECSESS = 1,
│ │ │ │ -
530 TDS5_SEC_FORWARD = 2,
│ │ │ │ -
531 TDS5_SEC_SIGN = 3,
│ │ │ │ -
532 TDS5_SEC_OTHER = 4,
│ │ │ │ -
533};
│ │ │ │ -
534
│ │ │ │ -
538enum {
│ │ │ │ -
539 TDS5_SEC_NETWORK_AUTHENTICATION = 0x1,
│ │ │ │ -
540 TDS5_SEC_MUTUAL_AUTHENTICATION = 0x2,
│ │ │ │ -
541 TDS5_SEC_DELEGATION = 0x4,
│ │ │ │ -
542 TDS5_SEC_INTEGRITY = 0x8,
│ │ │ │ -
543 TDS5_SEC_CONFIDENTIALITY = 0x10,
│ │ │ │ -
544 TDS5_SEC_DETECT_REPLAY = 0x20,
│ │ │ │ -
545 TDS5_SEC_DETECT_SEQUENCE = 0x40,
│ │ │ │ -
546 TDS5_SEC_DATA_ORIGIN = 0x80,
│ │ │ │ -
547 TDS5_SEC_CHANNEL_BINDING = 0x100,
│ │ │ │ -
548};
│ │ │ │ -
549
│ │ │ │ -
550enum {
│ │ │ │ -
551 TDS5_SEC_VERSION = 50,
│ │ │ │ -
552};
│ │ │ │ -
553
│ │ │ │ -
554/* MS encryption byte (pre login) */
│ │ │ │ -
555enum {
│ │ │ │ -
556 TDS7_ENCRYPT_OFF,
│ │ │ │ -
557 TDS7_ENCRYPT_ON,
│ │ │ │ -
558 TDS7_ENCRYPT_NOT_SUP,
│ │ │ │ -
559 TDS7_ENCRYPT_REQ,
│ │ │ │ -
560};
│ │ │ │ +
61 /* sized buffer types */
│ │ │ │ +
│ │ │ │ +
62 struct cc_t {
│ │ │ │ +
63 TDS_CHAR *c;
│ │ │ │ +
64 TDS_UINT len;
│ │ │ │ +
65 } cc;
│ │ │ │ +
│ │ │ │ +
│ │ │ │ +
66 struct cb_t {
│ │ │ │ +
67 TDS_CHAR *ib;
│ │ │ │ +
68 TDS_UINT len;
│ │ │ │ +
69 } cb;
│ │ │ │ +
│ │ │ │ +
70}
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
72
│ │ │ │ +
73/*
│ │ │ │ +
74 * Failure return codes for tds_convert()
│ │ │ │ +
75 */
│ │ │ │ +
76#define TDS_CONVERT_FAIL -1 /* unspecified failure */
│ │ │ │ +
77#define TDS_CONVERT_NOAVAIL -2 /* conversion does not exist */
│ │ │ │ +
78#define TDS_CONVERT_SYNTAX -3 /* syntax error in source field */
│ │ │ │ +
79#define TDS_CONVERT_NOMEM -4 /* insufficient memory */
│ │ │ │ +
80#define TDS_CONVERT_OVERFLOW -5 /* result too large */
│ │ │ │ +
81
│ │ │ │ +
82/* sized types */
│ │ │ │ +
83#define TDS_CONVERT_CHAR 256
│ │ │ │ +
84#define TDS_CONVERT_BINARY 257
│ │ │ │ +
85
│ │ │ │ +
86unsigned char tds_willconvert(int srctype, int desttype);
│ │ │ │ +
87
│ │ │ │ +
88TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype);
│ │ │ │ +
89TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, TDS_UINT srclen);
│ │ │ │ +
90TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr);
│ │ │ │ +
91
│ │ │ │ +
92size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC * timeptr, int prec);
│ │ │ │ +
93
│ │ │ │ +
94#ifdef __cplusplus
│ │ │ │ +
95#if 0
│ │ │ │ +
96{
│ │ │ │ +
97#endif
│ │ │ │ +
98}
│ │ │ │ +
99#endif
│ │ │ │ +
100
│ │ │ │ +
101#include <freetds/popvis.h>
│ │ │ │ +
102
│ │ │ │ +
103#endif /* _tdsconvert_h_ */
│ │ │ │ +
TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype)
Get same type but nullable.
Definition convert.c:2926
│ │ │ │ +
unsigned char tds_willconvert(int srctype, int desttype)
Test if a conversion is possible.
Definition convert.c:3106
│ │ │ │ +
size_t tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *timeptr, int prec)
format a date string according to an "extended" strftime(3) formatting definition.
Definition convert.c:2992
│ │ │ │ +
TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)
tds_convert convert a type to another.
Definition convert.c:1891
│ │ │ │ +
Definition convert.h:34
│ │ │ │ +
Definition convert.h:62
│ │ │ │ +
Definition convert.h:66
│ │ │ │
Definition proto.h:26
│ │ │ │ -
Definition proto.h:33
│ │ │ │
Definition proto.h:39
│ │ │ │
Definition proto.h:45
│ │ │ │
Definition proto.h:50
│ │ │ │
Definition proto.h:56
│ │ │ │
Definition proto.h:62
│ │ │ │ -
TDS 7.1 collation informations.
Definition proto.h:351
│ │ │ │ -
TDS 7.2 SMP packet header.
Definition proto.h:361
│ │ │ │ +
this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.
Definition tds.h:146
│ │ │ │ +
Used by tds_datecrack.
Definition tds.h:159
│ │ │ │ +
Definition tds.h:1029
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,564 +1,161 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -proto.h │ │ │ │ │ +convert.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ -3 * Copyright (C) 2010, 2011 Frediano Ziglio │ │ │ │ │ -4 * │ │ │ │ │ -5 * This library is free software; you can redistribute it and/or │ │ │ │ │ -6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -7 * License as published by the Free Software Foundation; either │ │ │ │ │ -8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -9 * │ │ │ │ │ -10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -13 * Library General Public License for more details. │ │ │ │ │ -14 * │ │ │ │ │ -15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -16 * License along with this library; if not, write to the │ │ │ │ │ -17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -18 * Boston, MA 02111-1307, USA. │ │ │ │ │ -19 */ │ │ │ │ │ -20 │ │ │ │ │ -21/* │ │ │ │ │ -22 * This file contains defines and structures strictly related to TDS protocol │ │ │ │ │ -23 */ │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +3 * │ │ │ │ │ +4 * This library is free software; you can redistribute it and/or │ │ │ │ │ +5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +6 * License as published by the Free Software Foundation; either │ │ │ │ │ +7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +8 * │ │ │ │ │ +9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +12 * Library General Public License for more details. │ │ │ │ │ +13 * │ │ │ │ │ +14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +15 * License along with this library; if not, write to the │ │ │ │ │ +16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +17 * Boston, MA 02111-1307, USA. │ │ │ │ │ +18 */ │ │ │ │ │ +19 │ │ │ │ │ +20#ifndef _tdsconvert_h_ │ │ │ │ │ +21#define _tdsconvert_h_ │ │ │ │ │ +22 │ │ │ │ │ +23#include │ │ │ │ │ 24 │ │ │ │ │ -_2_5typedef struct _t_d_s_n_u_m_e_r_i_c │ │ │ │ │ -26{ │ │ │ │ │ -27 unsigned char precision; │ │ │ │ │ -28 unsigned char scale; │ │ │ │ │ -29 unsigned char array[33]; │ │ │ │ │ -30} _T_D_S___N_U_M_E_R_I_C; │ │ │ │ │ -31 │ │ │ │ │ -_3_2typedef struct _t_d_s_o_l_d_m_o_n_e_y │ │ │ │ │ -33{ │ │ │ │ │ -34 TDS_INT mnyhigh; │ │ │ │ │ -35 TDS_UINT mnylow; │ │ │ │ │ -36} _T_D_S___O_L_D___M_O_N_E_Y; │ │ │ │ │ -37 │ │ │ │ │ -_3_8typedef union _t_d_s_m_o_n_e_y │ │ │ │ │ -39{ │ │ │ │ │ -40 _T_D_S___O_L_D___M_O_N_E_Y _t_d_s_o_l_d_m_o_n_e_y; │ │ │ │ │ -41 TDS_INT8 mny; │ │ │ │ │ -42} _T_D_S___M_O_N_E_Y; │ │ │ │ │ -43 │ │ │ │ │ -_4_4typedef struct _t_d_s_m_o_n_e_y_4 │ │ │ │ │ -45{ │ │ │ │ │ -46 TDS_INT mny4; │ │ │ │ │ -47} _T_D_S___M_O_N_E_Y_4; │ │ │ │ │ -48 │ │ │ │ │ -_4_9typedef struct _t_d_s_d_a_t_e_t_i_m_e │ │ │ │ │ -50{ │ │ │ │ │ -51 TDS_INT dtdays; │ │ │ │ │ -52 TDS_INT dttime; │ │ │ │ │ -53} _T_D_S___D_A_T_E_T_I_M_E; │ │ │ │ │ -54 │ │ │ │ │ -_5_5typedef struct _t_d_s_d_a_t_e_t_i_m_e_4 │ │ │ │ │ -56{ │ │ │ │ │ -57 TDS_USMALLINT days; │ │ │ │ │ -58 TDS_USMALLINT minutes; │ │ │ │ │ -59} _T_D_S___D_A_T_E_T_I_M_E_4; │ │ │ │ │ +25#ifdef __cplusplus │ │ │ │ │ +26extern "C" │ │ │ │ │ +27{ │ │ │ │ │ +28#if 0 │ │ │ │ │ +29} │ │ │ │ │ +30#endif │ │ │ │ │ +31#endif │ │ │ │ │ +32 │ │ │ │ │ +_3_3typedef union _c_o_n_v___r_e_s_u_l_t │ │ │ │ │ +34{ │ │ │ │ │ +35 /* fixed */ │ │ │ │ │ +36 TDS_TINYINT ti; │ │ │ │ │ +37 TDS_SMALLINT si; │ │ │ │ │ +38 TDS_USMALLINT usi; │ │ │ │ │ +39 TDS_INT i; │ │ │ │ │ +40 TDS_UINT ui; │ │ │ │ │ +41 TDS_INT8 bi; │ │ │ │ │ +42 TDS_UINT8 ubi; │ │ │ │ │ +43 TDS_FLOAT f; │ │ │ │ │ +44 TDS_REAL r; │ │ │ │ │ +45 _T_D_S___M_O_N_E_Y m; │ │ │ │ │ +46 _T_D_S___M_O_N_E_Y_4 m4; │ │ │ │ │ +47 _T_D_S___D_A_T_E_T_I_M_E dt; │ │ │ │ │ +48 _T_D_S___D_A_T_E_T_I_M_E_4 dt4; │ │ │ │ │ +49 _T_D_S___D_A_T_E_T_I_M_E_A_L_L dta; │ │ │ │ │ +50 TDS_TIME time; │ │ │ │ │ +51 TDS_DATE date; │ │ │ │ │ +52 TDS_BIGTIME bigtime; │ │ │ │ │ +53 TDS_BIGDATETIME bigdatetime; │ │ │ │ │ +54 _T_D_S___N_U_M_E_R_I_C n; │ │ │ │ │ +55 _T_D_S___U_N_I_Q_U_E u; │ │ │ │ │ +56 │ │ │ │ │ +57 /* variable */ │ │ │ │ │ +58 TDS_CHAR *c; │ │ │ │ │ +59 TDS_CHAR *ib; │ │ │ │ │ 60 │ │ │ │ │ -_6_1typedef struct _t_d_s_u_n_i_q_u_e │ │ │ │ │ -62{ │ │ │ │ │ -63 TDS_UINT Data1; │ │ │ │ │ -64 TDS_USMALLINT Data2; │ │ │ │ │ -65 TDS_USMALLINT Data3; │ │ │ │ │ -66 TDS_UCHAR Data4[8]; │ │ │ │ │ -67} _T_D_S___U_N_I_Q_U_E; │ │ │ │ │ -68 │ │ │ │ │ -69typedef TDS_INT TDS_DATE; │ │ │ │ │ -70typedef TDS_INT TDS_TIME; │ │ │ │ │ -71 │ │ │ │ │ -72typedef TDS_UINT8 TDS_BIGTIME; │ │ │ │ │ -73typedef TDS_UINT8 TDS_BIGDATETIME; │ │ │ │ │ -74 │ │ │ │ │ -75#define TDS5_PARAMFMT2_TOKEN 32 /* 0x20 */ │ │ │ │ │ -76#define TDS_LANGUAGE_TOKEN 33 /* 0x21 TDS 5.0 only */ │ │ │ │ │ -77#define TDS_ORDERBY2_TOKEN 34 /* 0x22 */ │ │ │ │ │ -78#define TDS_ROWFMT2_TOKEN 97 /* 0x61 TDS 5.0 only */ │ │ │ │ │ -79#define TDS_MSG_TOKEN 101 /* 0x65 TDS 5.0 only */ │ │ │ │ │ -80#define TDS_LOGOUT_TOKEN 113 /* 0x71 TDS 5.0 only? ct_close() */ │ │ │ │ │ -81#define TDS_RETURNSTATUS_TOKEN 121 /* 0x79 */ │ │ │ │ │ -82#define TDS_PROCID_TOKEN 124 /* 0x7C TDS 4.2 only - TDS_PROCID */ │ │ │ │ │ -83#define TDS7_RESULT_TOKEN 129 /* 0x81 TDS 7.0 only */ │ │ │ │ │ -84#define TDS7_COMPUTE_RESULT_TOKEN 136 /* 0x88 TDS 7.0 only */ │ │ │ │ │ -85#define TDS_COLNAME_TOKEN 160 /* 0xA0 TDS 4.2 only */ │ │ │ │ │ -86#define TDS_COLFMT_TOKEN 161 /* 0xA1 TDS 4.2 only - TDS_COLFMT */ │ │ │ │ │ -87#define TDS_DYNAMIC2_TOKEN 163 /* 0xA3 */ │ │ │ │ │ -88#define TDS_TABNAME_TOKEN 164 /* 0xA4 */ │ │ │ │ │ -89#define TDS_COLINFO_TOKEN 165 /* 0xA5 */ │ │ │ │ │ -90#define TDS_OPTIONCMD_TOKEN 166 /* 0xA6 */ │ │ │ │ │ -91#define TDS_COMPUTE_NAMES_TOKEN 167 /* 0xA7 */ │ │ │ │ │ -92#define TDS_COMPUTE_RESULT_TOKEN 168 /* 0xA8 */ │ │ │ │ │ -93#define TDS_ORDERBY_TOKEN 169 /* 0xA9 TDS_ORDER */ │ │ │ │ │ -94#define TDS_ERROR_TOKEN 170 /* 0xAA */ │ │ │ │ │ -95#define TDS_INFO_TOKEN 171 /* 0xAB */ │ │ │ │ │ -96#define TDS_PARAM_TOKEN 172 /* 0xAC RETURNVALUE? */ │ │ │ │ │ -97#define TDS_LOGINACK_TOKEN 173 /* 0xAD */ │ │ │ │ │ -98#define TDS_CONTROL_FEATUREEXTACK_TOKEN \ │ │ │ │ │ -99 174 /* 0xAE TDS_CONTROL/TDS_FEATUREEXTACK */ │ │ │ │ │ -100#define TDS_ROW_TOKEN 209 /* 0xD1 */ │ │ │ │ │ -101#define TDS_NBC_ROW_TOKEN 210 /* 0xD2 as of TDS 7.3.B */ │ │ │ │ │ -102#define TDS_CMP_ROW_TOKEN 211 /* 0xD3 */ │ │ │ │ │ -103#define TDS5_PARAMS_TOKEN 215 /* 0xD7 TDS 5.0 only */ │ │ │ │ │ -104#define TDS_CAPABILITY_TOKEN 226 /* 0xE2 */ │ │ │ │ │ -105#define TDS_ENVCHANGE_TOKEN 227 /* 0xE3 */ │ │ │ │ │ -106#define TDS_SESSIONSTATE_TOKEN 228 /* 0xE4 TDS 7.4 */ │ │ │ │ │ -107#define TDS_EED_TOKEN 229 /* 0xE5 */ │ │ │ │ │ -108#define TDS_DBRPC_TOKEN 230 /* 0xE6 TDS 5.0 only */ │ │ │ │ │ -109#define TDS5_DYNAMIC_TOKEN 231 /* 0xE7 TDS 5.0 only */ │ │ │ │ │ -110#define TDS5_PARAMFMT_TOKEN 236 /* 0xEC TDS 5.0 only */ │ │ │ │ │ -111#define TDS_AUTH_TOKEN 237 /* 0xED TDS 7.0 only */ │ │ │ │ │ -112#define TDS_RESULT_TOKEN 238 /* 0xEE */ │ │ │ │ │ -113#define TDS_DONE_TOKEN 253 /* 0xFD TDS_DONE */ │ │ │ │ │ -114#define TDS_DONEPROC_TOKEN 254 /* 0xFE TDS_DONEPROC */ │ │ │ │ │ -115#define TDS_DONEINPROC_TOKEN 255 /* 0xFF TDS_DONEINPROC */ │ │ │ │ │ -116 │ │ │ │ │ -117/* CURSOR support: TDS 5.0 only*/ │ │ │ │ │ -118#define TDS_CURCLOSE_TOKEN 128 /* 0x80 TDS 5.0 only */ │ │ │ │ │ -119#define TDS_CURDELETE_TOKEN 129 /* 0x81 TDS 5.0 only */ │ │ │ │ │ -120#define TDS_CURFETCH_TOKEN 130 /* 0x82 TDS 5.0 only */ │ │ │ │ │ -121#define TDS_CURINFO_TOKEN 131 /* 0x83 TDS 5.0 only */ │ │ │ │ │ -122#define TDS_CUROPEN_TOKEN 132 /* 0x84 TDS 5.0 only */ │ │ │ │ │ -123#define TDS_CURDECLARE_TOKEN 134 /* 0x86 TDS 5.0 only */ │ │ │ │ │ -124 │ │ │ │ │ -125 │ │ │ │ │ -126/* environment type field */ │ │ │ │ │ -127#define TDS_ENV_DATABASE 1 │ │ │ │ │ -128#define TDS_ENV_LANG 2 │ │ │ │ │ -129#define TDS_ENV_CHARSET 3 │ │ │ │ │ -130#define TDS_ENV_PACKSIZE 4 │ │ │ │ │ -131#define TDS_ENV_LCID 5 │ │ │ │ │ -132#define TDS_ENV_SQLCOLLATION 7 │ │ │ │ │ -133#define TDS_ENV_BEGINTRANS 8 │ │ │ │ │ -134#define TDS_ENV_COMMITTRANS 9 │ │ │ │ │ -135#define TDS_ENV_ROLLBACKTRANS 10 │ │ │ │ │ -136#define TDS_ENV_ROUTING 20 │ │ │ │ │ -137 │ │ │ │ │ -138/* Microsoft internal stored procedure id's */ │ │ │ │ │ -139#define TDS_SP_CURSOR 1 │ │ │ │ │ -140#define TDS_SP_CURSOROPEN 2 │ │ │ │ │ -141#define TDS_SP_CURSORPREPARE 3 │ │ │ │ │ -142#define TDS_SP_CURSOREXECUTE 4 │ │ │ │ │ -143#define TDS_SP_CURSORPREPEXEC 5 │ │ │ │ │ -144#define TDS_SP_CURSORUNPREPARE 6 │ │ │ │ │ -145#define TDS_SP_CURSORFETCH 7 │ │ │ │ │ -146#define TDS_SP_CURSOROPTION 8 │ │ │ │ │ -147#define TDS_SP_CURSORCLOSE 9 │ │ │ │ │ -148#define TDS_SP_EXECUTESQL 10 │ │ │ │ │ -149#define TDS_SP_PREPARE 11 │ │ │ │ │ -150#define TDS_SP_EXECUTE 12 │ │ │ │ │ -151#define TDS_SP_PREPEXEC 13 │ │ │ │ │ -152#define TDS_SP_PREPEXECRPC 14 │ │ │ │ │ -153#define TDS_SP_UNPREPARE 15 │ │ │ │ │ -154 │ │ │ │ │ -155/* │ │ │ │ │ -156 * Sybase does an awful job of this stuff, non null ints of size 1 2 │ │ │ │ │ -157 * and 4 have there own codes but nullable ints are lumped into INTN │ │ │ │ │ -158 * sheesh! │ │ │ │ │ -159 */ │ │ │ │ │ -160typedef enum │ │ │ │ │ -161{ │ │ │ │ │ -162 SYBCHAR = 47, /* 0x2F */ │ │ │ │ │ -163 SYBVARCHAR = 39, /* 0x27 */ │ │ │ │ │ -164 SYBINTN = 38, /* 0x26 */ │ │ │ │ │ -165 SYBINT1 = 48, /* 0x30 */ │ │ │ │ │ -166 SYBINT2 = 52, /* 0x34 */ │ │ │ │ │ -167 SYBINT4 = 56, /* 0x38 */ │ │ │ │ │ -168 SYBFLT8 = 62, /* 0x3E */ │ │ │ │ │ -169 SYBDATETIME = 61, /* 0x3D */ │ │ │ │ │ -170 SYBBIT = 50, /* 0x32 */ │ │ │ │ │ -171 SYBTEXT = 35, /* 0x23 */ │ │ │ │ │ -172 SYBNTEXT = 99, /* 0x63 */ │ │ │ │ │ -173 SYBIMAGE = 34, /* 0x22 */ │ │ │ │ │ -174 SYBMONEY4 = 122, /* 0x7A */ │ │ │ │ │ -175 SYBMONEY = 60, /* 0x3C */ │ │ │ │ │ -176 SYBDATETIME4 = 58, /* 0x3A */ │ │ │ │ │ -177 SYBREAL = 59, /* 0x3B */ │ │ │ │ │ -178 SYBBINARY = 45, /* 0x2D */ │ │ │ │ │ -179 SYBVOID = 31, /* 0x1F */ │ │ │ │ │ -180 SYBVARBINARY = 37, /* 0x25 */ │ │ │ │ │ -181 SYBBITN = 104, /* 0x68 */ │ │ │ │ │ -182 SYBNUMERIC = 108, /* 0x6C */ │ │ │ │ │ -183 SYBDECIMAL = 106, /* 0x6A */ │ │ │ │ │ -184 SYBFLTN = 109, /* 0x6D */ │ │ │ │ │ -185 SYBMONEYN = 110, /* 0x6E */ │ │ │ │ │ -186 SYBDATETIMN = 111, /* 0x6F */ │ │ │ │ │ -187 │ │ │ │ │ -188/* │ │ │ │ │ -189 * MS only types │ │ │ │ │ -190 */ │ │ │ │ │ -191 SYBNVARCHAR = 103, /* 0x67 */ │ │ │ │ │ -192 SYBINT8 = 127, /* 0x7F */ │ │ │ │ │ -193 XSYBCHAR = 175, /* 0xAF */ │ │ │ │ │ -194 XSYBVARCHAR = 167, /* 0xA7 */ │ │ │ │ │ -195 XSYBNVARCHAR = 231, /* 0xE7 */ │ │ │ │ │ -196 XSYBNCHAR = 239, /* 0xEF */ │ │ │ │ │ -197 XSYBVARBINARY = 165, /* 0xA5 */ │ │ │ │ │ -198 XSYBBINARY = 173, /* 0xAD */ │ │ │ │ │ -199 SYBUNIQUE = 36, /* 0x24 */ │ │ │ │ │ -200 SYBVARIANT = 98, /* 0x62 */ │ │ │ │ │ -201 SYBMSUDT = 240, /* 0xF0 */ │ │ │ │ │ -202 SYBMSXML = 241, /* 0xF1 */ │ │ │ │ │ -203 SYBMSDATE = 40, /* 0x28 */ │ │ │ │ │ -204 SYBMSTIME = 41, /* 0x29 */ │ │ │ │ │ -205 SYBMSDATETIME2 = 42, /* 0x2a */ │ │ │ │ │ -206 SYBMSDATETIMEOFFSET = 43,/* 0x2b */ │ │ │ │ │ -207 │ │ │ │ │ -208/* │ │ │ │ │ -209 * Sybase only types │ │ │ │ │ -210 */ │ │ │ │ │ -211 SYBLONGBINARY = 225, /* 0xE1 */ │ │ │ │ │ -212 SYBUINT1 = 64, /* 0x40 */ │ │ │ │ │ -213 SYBUINT2 = 65, /* 0x41 */ │ │ │ │ │ -214 SYBUINT4 = 66, /* 0x42 */ │ │ │ │ │ -215 SYBUINT8 = 67, /* 0x43 */ │ │ │ │ │ -216 SYBBLOB = 36, /* 0x24 */ │ │ │ │ │ -217 SYBBOUNDARY = 104, /* 0x68 */ │ │ │ │ │ -218 SYBDATE = 49, /* 0x31 */ │ │ │ │ │ -219 SYBDATEN = 123, /* 0x7B */ │ │ │ │ │ -220 SYB5INT8 = 191, /* 0xBF */ │ │ │ │ │ -221 SYBINTERVAL = 46, /* 0x2E */ │ │ │ │ │ -222 SYBLONGCHAR = 175, /* 0xAF */ │ │ │ │ │ -223 SYBSENSITIVITY = 103, /* 0x67 */ │ │ │ │ │ -224 SYBSINT1 = 176, /* 0xB0 */ │ │ │ │ │ -225 SYBTIME = 51, /* 0x33 */ │ │ │ │ │ -226 SYBTIMEN = 147, /* 0x93 */ │ │ │ │ │ -227 SYBUINTN = 68, /* 0x44 */ │ │ │ │ │ -228 SYBUNITEXT = 174, /* 0xAE */ │ │ │ │ │ -229 SYBXML = 163, /* 0xA3 */ │ │ │ │ │ -230 SYB5BIGDATETIME = 187, /* 0xBB */ │ │ │ │ │ -231 SYB5BIGTIME = 188, /* 0xBC */ │ │ │ │ │ -232 │ │ │ │ │ -233} TDS_SERVER_TYPE; │ │ │ │ │ -234 │ │ │ │ │ -235typedef enum │ │ │ │ │ -236{ │ │ │ │ │ -237 USER_UNICHAR_TYPE = 34, /* 0x22 */ │ │ │ │ │ -238 USER_UNIVARCHAR_TYPE = 35 /* 0x23 */ │ │ │ │ │ -239} TDS_USER_TYPE; │ │ │ │ │ -240 │ │ │ │ │ -241/* compute operator */ │ │ │ │ │ -242#define SYBAOPCNT 75 /* 0x4B */ │ │ │ │ │ -243#define SYBAOPCNTU 76 /* 0x4C, obsolete */ │ │ │ │ │ -244#define SYBAOPSUM 77 /* 0x4D */ │ │ │ │ │ -245#define SYBAOPSUMU 78 /* 0x4E, obsolete */ │ │ │ │ │ -246#define SYBAOPAVG 79 /* 0x4F */ │ │ │ │ │ -247#define SYBAOPAVGU 80 /* 0x50, obsolete */ │ │ │ │ │ -248#define SYBAOPMIN 81 /* 0x51 */ │ │ │ │ │ -249#define SYBAOPMAX 82 /* 0x52 */ │ │ │ │ │ -250 │ │ │ │ │ -251/* mssql2k compute operator */ │ │ │ │ │ -252#define SYBAOPCNT_BIG 9 /* 0x09 */ │ │ │ │ │ -253#define SYBAOPSTDEV 48 /* 0x30 */ │ │ │ │ │ -254#define SYBAOPSTDEVP 49 /* 0x31 */ │ │ │ │ │ -255#define SYBAOPVAR 50 /* 0x32 */ │ │ │ │ │ -256#define SYBAOPVARP 51 /* 0x33 */ │ │ │ │ │ -257#define SYBAOPCHECKSUM_AGG 114 /* 0x72 */ │ │ │ │ │ -258 │ │ │ │ │ -262typedef enum │ │ │ │ │ -263{ │ │ │ │ │ -264 TDS_OPT_SET = 1 │ │ │ │ │ -265 , TDS_OPT_DEFAULT = 2 │ │ │ │ │ -266 , TDS_OPT_LIST = 3 │ │ │ │ │ -267 , TDS_OPT_INFO = 4 │ │ │ │ │ -268} TDS_OPTION_CMD; │ │ │ │ │ -269 │ │ │ │ │ -270typedef enum │ │ │ │ │ -271{ │ │ │ │ │ -272 TDS_OPT_DATEFIRST = 1 /* 0x01 */ │ │ │ │ │ -273 , TDS_OPT_TEXTSIZE = 2 /* 0x02 */ │ │ │ │ │ -274 , TDS_OPT_STAT_TIME = 3 /* 0x03 */ │ │ │ │ │ -275 , TDS_OPT_STAT_IO = 4 /* 0x04 */ │ │ │ │ │ -276 , TDS_OPT_ROWCOUNT = 5 /* 0x05 */ │ │ │ │ │ -277 , TDS_OPT_NATLANG = 6 /* 0x06 */ │ │ │ │ │ -278 , TDS_OPT_DATEFORMAT = 7 /* 0x07 */ │ │ │ │ │ -279 , TDS_OPT_ISOLATION = 8 /* 0x08 */ │ │ │ │ │ -280 , TDS_OPT_AUTHON = 9 /* 0x09 */ │ │ │ │ │ -281 , TDS_OPT_CHARSET = 10 /* 0x0a */ │ │ │ │ │ -282 , TDS_OPT_SHOWPLAN = 13 /* 0x0d */ │ │ │ │ │ -283 , TDS_OPT_NOEXEC = 14 /* 0x0e */ │ │ │ │ │ -284 , TDS_OPT_ARITHIGNOREON = 15 /* 0x0f */ │ │ │ │ │ -285 , TDS_OPT_ARITHABORTON = 17 /* 0x11 */ │ │ │ │ │ -286 , TDS_OPT_PARSEONLY = 18 /* 0x12 */ │ │ │ │ │ -287 , TDS_OPT_GETDATA = 20 /* 0x14 */ │ │ │ │ │ -288 , TDS_OPT_NOCOUNT = 21 /* 0x15 */ │ │ │ │ │ -289 , TDS_OPT_FORCEPLAN = 23 /* 0x17 */ │ │ │ │ │ -290 , TDS_OPT_FORMATONLY = 24 /* 0x18 */ │ │ │ │ │ -291 , TDS_OPT_CHAINXACTS = 25 /* 0x19 */ │ │ │ │ │ -292 , TDS_OPT_CURCLOSEONXACT = 26 /* 0x1a */ │ │ │ │ │ -293 , TDS_OPT_FIPSFLAG = 27 /* 0x1b */ │ │ │ │ │ -294 , TDS_OPT_RESTREES = 28 /* 0x1c */ │ │ │ │ │ -295 , TDS_OPT_IDENTITYON = 29 /* 0x1d */ │ │ │ │ │ -296 , TDS_OPT_CURREAD = 30 /* 0x1e */ │ │ │ │ │ -297 , TDS_OPT_CURWRITE = 31 /* 0x1f */ │ │ │ │ │ -298 , TDS_OPT_IDENTITYOFF = 32 /* 0x20 */ │ │ │ │ │ -299 , TDS_OPT_AUTHOFF = 33 /* 0x21 */ │ │ │ │ │ -300 , TDS_OPT_ANSINULL = 34 /* 0x22 */ │ │ │ │ │ -301 , TDS_OPT_QUOTED_IDENT = 35 /* 0x23 */ │ │ │ │ │ -302 , TDS_OPT_ARITHIGNOREOFF = 36 /* 0x24 */ │ │ │ │ │ -303 , TDS_OPT_ARITHABORTOFF = 37 /* 0x25 */ │ │ │ │ │ -304 , TDS_OPT_TRUNCABORT = 38 /* 0x26 */ │ │ │ │ │ -305} TDS_OPTION; │ │ │ │ │ -306 │ │ │ │ │ -307enum { │ │ │ │ │ -308 TDS_OPT_ARITHOVERFLOW = 0x01, │ │ │ │ │ -309 TDS_OPT_NUMERICTRUNC = 0x02 │ │ │ │ │ -310}; │ │ │ │ │ -311 │ │ │ │ │ -312enum TDS_OPT_DATEFIRST_CHOICE │ │ │ │ │ -313{ │ │ │ │ │ -314 TDS_OPT_MONDAY = 1, TDS_OPT_TUESDAY = 2, TDS_OPT_WEDNESDAY = 3, │ │ │ │ │ -TDS_OPT_THURSDAY = 4, TDS_OPT_FRIDAY = 5, TDS_OPT_SATURDAY = │ │ │ │ │ -315 6, TDS_OPT_SUNDAY = 7 │ │ │ │ │ -316}; │ │ │ │ │ -317 │ │ │ │ │ -318enum TDS_OPT_DATEFORMAT_CHOICE │ │ │ │ │ -319{ │ │ │ │ │ -320 TDS_OPT_FMTMDY = 1, TDS_OPT_FMTDMY = 2, TDS_OPT_FMTYMD = 3, TDS_OPT_FMTYDM │ │ │ │ │ -= 4, TDS_OPT_FMTMYD = 5, TDS_OPT_FMTDYM = 6 │ │ │ │ │ -321}; │ │ │ │ │ -322enum TDS_OPT_ISOLATION_CHOICE │ │ │ │ │ -323{ │ │ │ │ │ -324 TDS_OPT_LEVEL0 = 0, │ │ │ │ │ -325 TDS_OPT_LEVEL1 = 1, │ │ │ │ │ -326 TDS_OPT_LEVEL2 = 2, │ │ │ │ │ -327 TDS_OPT_LEVEL3 = 3 │ │ │ │ │ -328}; │ │ │ │ │ -329 │ │ │ │ │ -330 │ │ │ │ │ -331typedef enum tds_packet_type │ │ │ │ │ -332{ │ │ │ │ │ -333 TDS_QUERY = 1, │ │ │ │ │ -334 TDS_LOGIN = 2, │ │ │ │ │ -335 TDS_RPC = 3, │ │ │ │ │ -336 TDS_REPLY = 4, │ │ │ │ │ -337 TDS_CANCEL = 6, │ │ │ │ │ -338 TDS_BULK = 7, │ │ │ │ │ -339 TDS7_TRANS = 14, /* transaction management */ │ │ │ │ │ -340 TDS_NORMAL = 15, │ │ │ │ │ -341 TDS7_LOGIN = 16, │ │ │ │ │ -342 TDS7_AUTH = 17, │ │ │ │ │ -343 TDS71_PRELOGIN = 18, │ │ │ │ │ -344 TDS72_SMP = 0x53 │ │ │ │ │ -345} TDS_PACKET_TYPE; │ │ │ │ │ -346 │ │ │ │ │ -_3_5_0typedef struct │ │ │ │ │ -351{ │ │ │ │ │ -352 TDS_USMALLINT locale_id; /* master..syslanguages.lcid */ │ │ │ │ │ -353 TDS_USMALLINT flags; │ │ │ │ │ -354 TDS_UCHAR charset_id; /* or zero */ │ │ │ │ │ -355} _T_D_S_7_1___C_O_L_L_A_T_I_O_N; │ │ │ │ │ -356 │ │ │ │ │ -_3_6_0typedef struct │ │ │ │ │ -361{ │ │ │ │ │ -362 TDS_UCHAR signature; /* TDS72_SMP */ │ │ │ │ │ -363 TDS_UCHAR type; │ │ │ │ │ -364 TDS_USMALLINT sid; │ │ │ │ │ -365 TDS_UINT size; │ │ │ │ │ -366 TDS_UINT seq; │ │ │ │ │ -367 TDS_UINT wnd; │ │ │ │ │ -368} _T_D_S_7_2___S_M_P___H_E_A_D_E_R; │ │ │ │ │ -369 │ │ │ │ │ -370enum { │ │ │ │ │ -371 TDS_SMP_SYN = 1, │ │ │ │ │ -372 TDS_SMP_ACK = 2, │ │ │ │ │ -373 TDS_SMP_FIN = 4, │ │ │ │ │ -374 TDS_SMP_DATA = 8, │ │ │ │ │ -375}; │ │ │ │ │ -376 │ │ │ │ │ -377/* SF stands for "sort flag" */ │ │ │ │ │ -378#define TDS_SF_BIN (TDS_USMALLINT) 0x100 │ │ │ │ │ -379#define TDS_SF_WIDTH_INSENSITIVE (TDS_USMALLINT) 0x080 │ │ │ │ │ -380#define TDS_SF_KATATYPE_INSENSITIVE (TDS_USMALLINT) 0x040 │ │ │ │ │ -381#define TDS_SF_ACCENT_SENSITIVE (TDS_USMALLINT) 0x020 │ │ │ │ │ -382#define TDS_SF_CASE_INSENSITIVE (TDS_USMALLINT) 0x010 │ │ │ │ │ -383 │ │ │ │ │ -384/* UT stands for user type */ │ │ │ │ │ -385#define TDS_UT_TIMESTAMP 80 │ │ │ │ │ -386 │ │ │ │ │ -387 │ │ │ │ │ -388/* mssql login options flags */ │ │ │ │ │ -389enum option_flag1_values { │ │ │ │ │ -390 TDS_BYTE_ORDER_X86 = 0, │ │ │ │ │ -391 TDS_CHARSET_ASCII = 0, │ │ │ │ │ -392 TDS_DUMPLOAD_ON = 0, │ │ │ │ │ -393 TDS_FLOAT_IEEE_754 = 0, │ │ │ │ │ -394 TDS_INIT_DB_WARN = 0, │ │ │ │ │ -395 TDS_SET_LANG_OFF = 0, │ │ │ │ │ -396 TDS_USE_DB_SILENT = 0, │ │ │ │ │ -397 TDS_BYTE_ORDER_68000 = 0x01, │ │ │ │ │ -398 TDS_CHARSET_EBDDIC = 0x02, │ │ │ │ │ -399 TDS_FLOAT_VAX = 0x04, │ │ │ │ │ -400 TDS_FLOAT_ND5000 = 0x08, │ │ │ │ │ -401 TDS_DUMPLOAD_OFF = 0x10, /* prevent BCP */ │ │ │ │ │ -402 TDS_USE_DB_NOTIFY = 0x20, │ │ │ │ │ -403 TDS_INIT_DB_FATAL = 0x40, │ │ │ │ │ -404 TDS_SET_LANG_ON = 0x80 │ │ │ │ │ -405}; │ │ │ │ │ -406 │ │ │ │ │ -407enum option_flag2_values { │ │ │ │ │ -408 TDS_INIT_LANG_WARN = 0, │ │ │ │ │ -409 TDS_INTEGRATED_SECURTY_OFF = 0, │ │ │ │ │ -410 TDS_ODBC_OFF = 0, │ │ │ │ │ -411 TDS_USER_NORMAL = 0, /* SQL Server login */ │ │ │ │ │ -412 TDS_INIT_LANG_REQUIRED = 0x01, │ │ │ │ │ -413 TDS_ODBC_ON = 0x02, │ │ │ │ │ -414 TDS_TRANSACTION_BOUNDARY71 = 0x04, /* removed in TDS 7.2 */ │ │ │ │ │ -415 TDS_CACHE_CONNECT71 = 0x08, /* removed in TDS 7.2 */ │ │ │ │ │ -416 TDS_USER_SERVER = 0x10, /* reserved */ │ │ │ │ │ -417 TDS_USER_REMUSER = 0x20, /* DQ login */ │ │ │ │ │ -418 TDS_USER_SQLREPL = 0x40, /* replication login */ │ │ │ │ │ -419 TDS_INTEGRATED_SECURITY_ON = 0x80 │ │ │ │ │ -420}; │ │ │ │ │ -421 │ │ │ │ │ -422enum option_flag3_values { │ │ │ │ │ -423 TDS_RESTRICTED_COLLATION = 0, │ │ │ │ │ -424 TDS_CHANGE_PASSWORD = 0x01, /* TDS 7.2 */ │ │ │ │ │ -425 TDS_SEND_YUKON_BINARY_XML = 0x02, /* TDS 7.2 */ │ │ │ │ │ -426 TDS_REQUEST_USER_INSTANCE = 0x04, /* TDS 7.2 */ │ │ │ │ │ -427 TDS_UNKNOWN_COLLATION_HANDLING = 0x08, /* TDS 7.3 */ │ │ │ │ │ -428 TDS_EXTENSION = 0x10, /* TDS 7.4 */ │ │ │ │ │ -429}; │ │ │ │ │ -430 │ │ │ │ │ -431enum type_flags { │ │ │ │ │ -432 TDS_OLEDB_ON = 0x10, │ │ │ │ │ -433 TDS_READONLY_INTENT = 0x20, │ │ │ │ │ -434}; │ │ │ │ │ -435 │ │ │ │ │ -436/* Sybase dynamic types */ │ │ │ │ │ -437enum dynamic_types { │ │ │ │ │ -438 TDS_DYN_PREPARE = 0x01, │ │ │ │ │ -439 TDS_DYN_EXEC = 0x02, │ │ │ │ │ -440 TDS_DYN_DEALLOC = 0x04, │ │ │ │ │ -441 TDS_DYN_EXEC_IMMED = 0x08, │ │ │ │ │ -442 TDS_DYN_PROCNAME = 0x10, │ │ │ │ │ -443 TDS_DYN_ACK = 0x20, │ │ │ │ │ -444 TDS_DYN_DESCIN = 0x40, │ │ │ │ │ -445 TDS_DYN_DESCOUT = 0x80, │ │ │ │ │ -446}; │ │ │ │ │ -447 │ │ │ │ │ -448/* http://jtds.sourceforge.net/apiCursors.html */ │ │ │ │ │ -449/* Cursor scroll option, must be one of 0x01 - 0x10, OR'd with other bits */ │ │ │ │ │ -450enum { │ │ │ │ │ -451 TDS_CUR_TYPE_KEYSET = 0x0001, /* default */ │ │ │ │ │ -452 TDS_CUR_TYPE_DYNAMIC = 0x0002, │ │ │ │ │ -453 TDS_CUR_TYPE_FORWARD = 0x0004, │ │ │ │ │ -454 TDS_CUR_TYPE_STATIC = 0x0008, │ │ │ │ │ -455 TDS_CUR_TYPE_FASTFORWARDONLY = 0x0010, │ │ │ │ │ -456 TDS_CUR_TYPE_PARAMETERIZED = 0x1000, │ │ │ │ │ -457 TDS_CUR_TYPE_AUTO_FETCH = 0x2000 │ │ │ │ │ -458}; │ │ │ │ │ -459 │ │ │ │ │ -460enum { │ │ │ │ │ -461 TDS_CUR_CONCUR_READ_ONLY = 1, │ │ │ │ │ -462 TDS_CUR_CONCUR_SCROLL_LOCKS = 2, │ │ │ │ │ -463 TDS_CUR_CONCUR_OPTIMISTIC = 4, /* default */ │ │ │ │ │ -464 TDS_CUR_CONCUR_OPTIMISTIC_VALUES = 8 │ │ │ │ │ -465}; │ │ │ │ │ -466 │ │ │ │ │ -467/* TDS 4/5 login*/ │ │ │ │ │ -468#define TDS_MAXNAME 30 /* maximum login name lenghts */ │ │ │ │ │ -469#define TDS_PROGNLEN 10 /* maximum program lenght */ │ │ │ │ │ -470#define TDS_PKTLEN 6 /* maximum packet lenght in login */ │ │ │ │ │ -471 │ │ │ │ │ -472/* TDS 5 login security flags */ │ │ │ │ │ -473enum { │ │ │ │ │ -474 TDS5_SEC_LOG_ENCRYPT = 1, │ │ │ │ │ -475 TDS5_SEC_LOG_CHALLENGE = 2, │ │ │ │ │ -476 TDS5_SEC_LOG_LABELS = 4, │ │ │ │ │ -477 TDS5_SEC_LOG_APPDEFINED = 8, │ │ │ │ │ -478 TDS5_SEC_LOG_SECSESS = 16, │ │ │ │ │ -479 TDS5_SEC_LOG_ENCRYPT2 = 32, │ │ │ │ │ -480 TDS5_SEC_LOG_ENCRYPT3 = 128, │ │ │ │ │ -481}; │ │ │ │ │ -482 │ │ │ │ │ -484enum { │ │ │ │ │ -485 TDS5_MSG_SEC_ENCRYPT = 1, │ │ │ │ │ -486 TDS5_MSG_SEC_LOGPWD = 2, │ │ │ │ │ -487 TDS5_MSG_SEC_REMPWD = 3, │ │ │ │ │ -488 TDS5_MSG_SEC_CHALLENGE = 4, │ │ │ │ │ -489 TDS5_MSG_SEC_RESPONSE = 5, │ │ │ │ │ -490 TDS5_MSG_SEC_GETLABEL = 6, │ │ │ │ │ -491 TDS5_MSG_SEC_LABEL = 7, │ │ │ │ │ -492 TDS5_MSG_SQL_TBLNAME = 8, │ │ │ │ │ -493 TDS5_MSG_GW_RESERVED = 9, │ │ │ │ │ -494 TDS5_MSG_OMNI_CAPABILITIES = 10, │ │ │ │ │ -495 TDS5_MSG_SEC_OPAQUE = 11, │ │ │ │ │ -496 TDS5_MSG_HAFAILOVER = 12, │ │ │ │ │ -497 TDS5_MSG_EMPTY = 13, │ │ │ │ │ -500 TDS5_MSG_SEC_ENCRYPT2 = 14, │ │ │ │ │ -501 TDS5_MSG_SEC_LOGPWD2 = 15, │ │ │ │ │ -502 TDS5_MSG_SEC_SUP_CIPHER = 16, │ │ │ │ │ -503 TDS5_MSG_MIG_REQ = 17, │ │ │ │ │ -505 TDS5_MSG_MIG_SYNC = 18, │ │ │ │ │ -506 TDS5_MSG_MIG_CONT = 19, │ │ │ │ │ -507 TDS5_MSG_MIG_IGN = 20, │ │ │ │ │ -508 TDS5_MSG_MIG_FAIL = 21, │ │ │ │ │ -510 TDS5_MSG_SEC_REMPWD2 = 22, │ │ │ │ │ -511 TDS5_MSG_MIG_RESUME = 23, │ │ │ │ │ -512 TDS5_MSG_SEC_ENCRYPT3 = 30, │ │ │ │ │ -513 TDS5_MSG_SEC_LOGPWD3 = 31, │ │ │ │ │ -514 TDS5_MSG_SEC_REMPWD3 = 32, │ │ │ │ │ -515 TDS5_MSG_DR_MAP = 33, │ │ │ │ │ -516}; │ │ │ │ │ -517 │ │ │ │ │ -528enum { │ │ │ │ │ -529 TDS5_SEC_SECSESS = 1, │ │ │ │ │ -530 TDS5_SEC_FORWARD = 2, │ │ │ │ │ -531 TDS5_SEC_SIGN = 3, │ │ │ │ │ -532 TDS5_SEC_OTHER = 4, │ │ │ │ │ -533}; │ │ │ │ │ -534 │ │ │ │ │ -538enum { │ │ │ │ │ -539 TDS5_SEC_NETWORK_AUTHENTICATION = 0x1, │ │ │ │ │ -540 TDS5_SEC_MUTUAL_AUTHENTICATION = 0x2, │ │ │ │ │ -541 TDS5_SEC_DELEGATION = 0x4, │ │ │ │ │ -542 TDS5_SEC_INTEGRITY = 0x8, │ │ │ │ │ -543 TDS5_SEC_CONFIDENTIALITY = 0x10, │ │ │ │ │ -544 TDS5_SEC_DETECT_REPLAY = 0x20, │ │ │ │ │ -545 TDS5_SEC_DETECT_SEQUENCE = 0x40, │ │ │ │ │ -546 TDS5_SEC_DATA_ORIGIN = 0x80, │ │ │ │ │ -547 TDS5_SEC_CHANNEL_BINDING = 0x100, │ │ │ │ │ -548}; │ │ │ │ │ -549 │ │ │ │ │ -550enum { │ │ │ │ │ -551 TDS5_SEC_VERSION = 50, │ │ │ │ │ -552}; │ │ │ │ │ -553 │ │ │ │ │ -554/* MS encryption byte (pre login) */ │ │ │ │ │ -555enum { │ │ │ │ │ -556 TDS7_ENCRYPT_OFF, │ │ │ │ │ -557 TDS7_ENCRYPT_ON, │ │ │ │ │ -558 TDS7_ENCRYPT_NOT_SUP, │ │ │ │ │ -559 TDS7_ENCRYPT_REQ, │ │ │ │ │ -560}; │ │ │ │ │ +61 /* sized buffer types */ │ │ │ │ │ +_6_2 struct _c_c___t { │ │ │ │ │ +63 TDS_CHAR *c; │ │ │ │ │ +64 TDS_UINT len; │ │ │ │ │ +65 } cc; │ │ │ │ │ +_6_6 struct _c_b___t { │ │ │ │ │ +67 TDS_CHAR *ib; │ │ │ │ │ +68 TDS_UINT len; │ │ │ │ │ +69 } cb; │ │ │ │ │ +70} │ │ │ │ │ +71_C_O_N_V___R_E_S_U_L_T; │ │ │ │ │ +72 │ │ │ │ │ +73/* │ │ │ │ │ +74 * Failure return codes for tds_convert() │ │ │ │ │ +75 */ │ │ │ │ │ +76#define TDS_CONVERT_FAIL -1 /* unspecified failure */ │ │ │ │ │ +77#define TDS_CONVERT_NOAVAIL -2 /* conversion does not exist */ │ │ │ │ │ +78#define TDS_CONVERT_SYNTAX -3 /* syntax error in source field */ │ │ │ │ │ +79#define TDS_CONVERT_NOMEM -4 /* insufficient memory */ │ │ │ │ │ +80#define TDS_CONVERT_OVERFLOW -5 /* result too large */ │ │ │ │ │ +81 │ │ │ │ │ +82/* sized types */ │ │ │ │ │ +83#define TDS_CONVERT_CHAR 256 │ │ │ │ │ +84#define TDS_CONVERT_BINARY 257 │ │ │ │ │ +85 │ │ │ │ │ +86unsigned char _t_d_s___w_i_l_l_c_o_n_v_e_r_t(int srctype, int desttype); │ │ │ │ │ +87 │ │ │ │ │ +88TDS_SERVER_TYPE _t_d_s___g_e_t___n_u_l_l___t_y_p_e(TDS_SERVER_TYPE srctype); │ │ │ │ │ +89TDS_INT tds_char2hex(TDS_CHAR *dest, TDS_UINT destlen, const TDS_CHAR * src, │ │ │ │ │ +TDS_UINT srclen); │ │ │ │ │ +90TDS_INT _t_d_s___c_o_n_v_e_r_t(const _T_D_S_C_O_N_T_E_X_T *context, int srctype, const void *src, │ │ │ │ │ +TDS_UINT srclen, int desttype, _C_O_N_V___R_E_S_U_L_T *cr); │ │ │ │ │ +91 │ │ │ │ │ +92size_t _t_d_s___s_t_r_f_t_i_m_e(char *buf, size_t maxsize, const char *format, const │ │ │ │ │ +_T_D_S_D_A_T_E_R_E_C * timeptr, int prec); │ │ │ │ │ +93 │ │ │ │ │ +94#ifdef __cplusplus │ │ │ │ │ +95#if 0 │ │ │ │ │ +96{ │ │ │ │ │ +97#endif │ │ │ │ │ +98} │ │ │ │ │ +99#endif │ │ │ │ │ +100 │ │ │ │ │ +101#include │ │ │ │ │ +102 │ │ │ │ │ +103#endif /* _tdsconvert_h_ */ │ │ │ │ │ +_t_d_s___g_e_t___n_u_l_l___t_y_p_e │ │ │ │ │ +TDS_SERVER_TYPE tds_get_null_type(TDS_SERVER_TYPE srctype) │ │ │ │ │ +Get same type but nullable. │ │ │ │ │ +DDeeffiinniittiioonn convert.c:2926 │ │ │ │ │ +_t_d_s___w_i_l_l_c_o_n_v_e_r_t │ │ │ │ │ +unsigned char tds_willconvert(int srctype, int desttype) │ │ │ │ │ +Test if a conversion is possible. │ │ │ │ │ +DDeeffiinniittiioonn convert.c:3106 │ │ │ │ │ +_t_d_s___s_t_r_f_t_i_m_e │ │ │ │ │ +size_t tds_strftime(char *buf, size_t maxsize, const char *format, const │ │ │ │ │ +TDSDATEREC *timeptr, int prec) │ │ │ │ │ +format a date string according to an "extended" strftime(3) formatting │ │ │ │ │ +definition. │ │ │ │ │ +DDeeffiinniittiioonn convert.c:2992 │ │ │ │ │ +_t_d_s___c_o_n_v_e_r_t │ │ │ │ │ +TDS_INT tds_convert(const TDSCONTEXT *context, int srctype, const void *src, │ │ │ │ │ +TDS_UINT srclen, int desttype, CONV_RESULT *cr) │ │ │ │ │ +tds_convert convert a type to another. │ │ │ │ │ +DDeeffiinniittiioonn convert.c:1891 │ │ │ │ │ +_c_o_n_v___r_e_s_u_l_t │ │ │ │ │ +DDeeffiinniittiioonn convert.h:34 │ │ │ │ │ +_c_o_n_v___r_e_s_u_l_t_:_:_c_c___t │ │ │ │ │ +DDeeffiinniittiioonn convert.h:62 │ │ │ │ │ +_c_o_n_v___r_e_s_u_l_t_:_:_c_b___t │ │ │ │ │ +DDeeffiinniittiioonn convert.h:66 │ │ │ │ │ _t_d_s_n_u_m_e_r_i_c │ │ │ │ │ DDeeffiinniittiioonn proto.h:26 │ │ │ │ │ -_t_d_s_o_l_d_m_o_n_e_y │ │ │ │ │ -DDeeffiinniittiioonn proto.h:33 │ │ │ │ │ _t_d_s_m_o_n_e_y │ │ │ │ │ DDeeffiinniittiioonn proto.h:39 │ │ │ │ │ _t_d_s_m_o_n_e_y_4 │ │ │ │ │ DDeeffiinniittiioonn proto.h:45 │ │ │ │ │ _t_d_s_d_a_t_e_t_i_m_e │ │ │ │ │ DDeeffiinniittiioonn proto.h:50 │ │ │ │ │ _t_d_s_d_a_t_e_t_i_m_e_4 │ │ │ │ │ DDeeffiinniittiioonn proto.h:56 │ │ │ │ │ _t_d_s_u_n_i_q_u_e │ │ │ │ │ DDeeffiinniittiioonn proto.h:62 │ │ │ │ │ -_T_D_S_7_1___C_O_L_L_A_T_I_O_N │ │ │ │ │ -TDS 7.1 collation informations. │ │ │ │ │ -DDeeffiinniittiioonn proto.h:351 │ │ │ │ │ -_T_D_S_7_2___S_M_P___H_E_A_D_E_R │ │ │ │ │ -TDS 7.2 SMP packet header. │ │ │ │ │ -DDeeffiinniittiioonn proto.h:361 │ │ │ │ │ +_T_D_S___D_A_T_E_T_I_M_E_A_L_L │ │ │ │ │ +this structure is not directed connected to a TDS protocol but keeps any DATE/ │ │ │ │ │ +TIME information. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:146 │ │ │ │ │ +_t_d_s_d_a_t_e_r_e_c │ │ │ │ │ +Used by tds_datecrack. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:159 │ │ │ │ │ +_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00467_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/bkpublic.h Source File │ │ │ │ +FreeTDS API: include/dblib.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
bkpublic.h
│ │ │ │ +
dblib.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,67 +96,246 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _bkpublic_h_
│ │ │ │ -
21#define _bkpublic_h_
│ │ │ │ +
20#ifndef _dblib_h_
│ │ │ │ +
21#define _dblib_h_
│ │ │ │
22
│ │ │ │ -
23static const char rcsid_bkpublic_h[] = "$Id: bkpublic.h,v 1.5 2004-10-28 12:42:11 freddy77 Exp $";
│ │ │ │ -
24static const void *const no_unused_bkpublic_h_warn[] = { rcsid_bkpublic_h, no_unused_bkpublic_h_warn };
│ │ │ │ -
25
│ │ │ │ -
26/* seperate this stuff out later */
│ │ │ │ -
27#include <cspublic.h>
│ │ │ │ -
28
│ │ │ │ -
29#ifdef __cplusplus
│ │ │ │ -
30extern "C"
│ │ │ │ -
31{
│ │ │ │ -
32#if 0
│ │ │ │ -
33}
│ │ │ │ -
34#endif
│ │ │ │ -
35#endif
│ │ │ │ -
36
│ │ │ │ -
37/* buld properties start with 1 i guess */
│ │ │ │ -
38#define BLK_IDENTITY 1
│ │ │ │ -
39
│ │ │ │ -
40CS_RETCODE blk_alloc(CS_CONNECTION * connection, CS_INT version, CS_BLKDESC ** blk_pointer);
│ │ │ │ -
41CS_RETCODE blk_bind(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * datalen,
│ │ │ │ -
42 CS_SMALLINT * indicator);
│ │ │ │ -
43CS_RETCODE blk_colval(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp, CS_INT colnum, CS_VOID * valuep,
│ │ │ │ -
44 CS_INT valuelen, CS_INT * outlenp);
│ │ │ │ -
45CS_RETCODE blk_default(CS_BLKDESC * blkdesc, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
46CS_RETCODE blk_describe(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt);
│ │ │ │ -
47CS_RETCODE blk_done(CS_BLKDESC * blkdesc, CS_INT type, CS_INT * outrow);
│ │ │ │ -
48CS_RETCODE blk_drop(CS_BLKDESC * blkdesc);
│ │ │ │ -
49CS_RETCODE blk_getrow(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp);
│ │ │ │ -
50CS_RETCODE blk_gettext(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp, CS_INT bufsize, CS_INT * outlenp);
│ │ │ │ -
51CS_RETCODE blk_init(CS_BLKDESC * blkdesc, CS_INT direction, CS_CHAR * tablename, CS_INT tnamelen);
│ │ │ │ -
52CS_RETCODE blk_props(CS_BLKDESC * blkdesc, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
53CS_RETCODE blk_rowalloc(SRV_PROC * srvproc, CS_BLK_ROW ** row);
│ │ │ │ -
54CS_RETCODE blk_rowdrop(SRV_PROC * srvproc, CS_BLK_ROW * row);
│ │ │ │ -
55CS_RETCODE blk_rowxfer(CS_BLKDESC * blkdesc);
│ │ │ │ -
56CS_RETCODE blk_rowxfer_mult(CS_BLKDESC * blkdesc, CS_INT * row_count);
│ │ │ │ -
57CS_RETCODE blk_sendrow(CS_BLKDESC * blkdesc, CS_BLK_ROW * row);
│ │ │ │ -
58CS_RETCODE blk_sendtext(CS_BLKDESC * blkdesc, CS_BLK_ROW * row, CS_BYTE * buffer, CS_INT buflen);
│ │ │ │ -
59CS_RETCODE blk_srvinit(SRV_PROC * srvproc, CS_BLKDESC * blkdescp);
│ │ │ │ -
60CS_RETCODE blk_textxfer(CS_BLKDESC * blkdesc, CS_BYTE * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
61
│ │ │ │ -
62#ifdef __cplusplus
│ │ │ │ -
63#if 0
│ │ │ │ -
64{
│ │ │ │ -
65#endif
│ │ │ │ -
66}
│ │ │ │ -
67#endif
│ │ │ │ -
68
│ │ │ │ -
69#endif
│ │ │ │ -
Definition cstypes.h:114
│ │ │ │ -
Definition ctlib.h:117
│ │ │ │ -
Definition ctlib.h:239
│ │ │ │ +
23#include <freetds/pushvis.h>
│ │ │ │ +
24
│ │ │ │ +
25#ifdef __cplusplus
│ │ │ │ +
26extern "C"
│ │ │ │ +
27{
│ │ │ │ +
28#if 0
│ │ │ │ +
29}
│ │ │ │ +
30#endif
│ │ │ │ +
31#endif
│ │ │ │ +
32
│ │ │ │ +
33typedef enum
│ │ │ │ +
34{
│ │ │ │ +
35 _DB_RES_INIT
│ │ │ │ +
36 , _DB_RES_RESULTSET_EMPTY
│ │ │ │ +
37 , _DB_RES_RESULTSET_ROWS
│ │ │ │ +
38 , _DB_RES_NEXT_RESULT
│ │ │ │ +
39 , _DB_RES_NO_MORE_RESULTS
│ │ │ │ +
40 , _DB_RES_SUCCEED
│ │ │ │ +
41} DB_RESULT_STATE;
│ │ │ │ +
42
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
44{
│ │ │ │ + │ │ │ │ +
46 bool network_auth;
│ │ │ │ +
47};
│ │ │ │ +
│ │ │ │ +
48
│ │ │ │ +
49struct dblib_buffer_row;
│ │ │ │ +
50
│ │ │ │ +
│ │ │ │ +
51typedef struct
│ │ │ │ +
52{
│ │ │ │ +
53 int received; /* how many rows have been received for this result set */
│ │ │ │ +
54 int head; /* queue insertion point */
│ │ │ │ +
55 int tail; /* oldest item in queue */
│ │ │ │ +
56 int current; /* dbnextrow() reads this row */
│ │ │ │ +
57 int capacity; /* how many elements the queue can hold */
│ │ │ │ +
58 struct dblib_buffer_row *rows; /* pointer to the row storage */
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
60
│ │ │ │ +
│ │ │ │ +
61typedef struct
│ │ │ │ +
62{
│ │ │ │ +
63 int host_column;
│ │ │ │ +
64 TDS_SERVER_TYPE datatype;
│ │ │ │ +
65 int prefix_len;
│ │ │ │ +
66 DBINT column_len;
│ │ │ │ +
67 BYTE *terminator;
│ │ │ │ +
68 int term_len;
│ │ │ │ +
69 int tab_colnum;
│ │ │ │ +
70 int column_error;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
72
│ │ │ │ +
│ │ │ │ +
73typedef struct
│ │ │ │ +
74{
│ │ │ │ +
75 TDS_CHAR *hostfile;
│ │ │ │ +
76 TDS_CHAR *errorfile;
│ │ │ │ +
77 FILE *bcp_errfileptr;
│ │ │ │ +
78 TDS_INT host_colcount;
│ │ │ │ +
79 BCP_HOSTCOLINFO **host_columns;
│ │ │ │ +
80 TDS_INT firstrow;
│ │ │ │ +
81 TDS_INT lastrow;
│ │ │ │ +
82 TDS_INT maxerrs;
│ │ │ │ +
83 TDS_INT batch;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
85
│ │ │ │ +
86/* linked list of rpc parameters */
│ │ │ │ +
87
│ │ │ │ +
│ │ │ │ +
88typedef struct DBREMOTE_PROC_PARAM
│ │ │ │ +
89{
│ │ │ │ +
90 struct DBREMOTE_PROC_PARAM *next;
│ │ │ │ +
91
│ │ │ │ +
92 char *name;
│ │ │ │ +
93 BYTE status;
│ │ │ │ +
94 TDS_SERVER_TYPE type;
│ │ │ │ +
95 DBINT maxlen;
│ │ │ │ +
96 DBINT datalen;
│ │ │ │ +
97 BYTE *value;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
99
│ │ │ │ +
│ │ │ │ +
100typedef struct DBREMOTE_PROC
│ │ │ │ +
101{
│ │ │ │ +
102 struct DBREMOTE_PROC *next;
│ │ │ │ +
103
│ │ │ │ +
104 char *name;
│ │ │ │ +
105 DBSMALLINT options;
│ │ │ │ +
106 DBREMOTE_PROC_PARAM *param_list;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
108
│ │ │ │ +
│ │ │ │ +
109typedef struct dboption
│ │ │ │ +
110{
│ │ │ │ +
111 const char *text;
│ │ │ │ +
112 DBSTRING *param;
│ │ │ │ +
113 DBBOOL factive;
│ │ │ │ +
114} DBOPTION;
│ │ │ │ +
│ │ │ │ +
115
│ │ │ │ +
│ │ │ │ +
116typedef struct
│ │ │ │ +
117{
│ │ │ │ +
118 const BYTE *bindval;
│ │ │ │ +
119 size_t len;
│ │ │ │ +
120} NULLREP;
│ │ │ │ +
│ │ │ │ +
121
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
123{
│ │ │ │ + │ │ │ │ +
125
│ │ │ │ +
126 STATUS row_type;
│ │ │ │ +
127 DBPROC_ROWBUF row_buf;
│ │ │ │ +
128
│ │ │ │ +
129 int noautofree;
│ │ │ │ +
130 int more_results; /* boolean. Are we expecting results? */
│ │ │ │ +
131 DB_RESULT_STATE dbresults_state;
│ │ │ │ +
132 int dbresults_retcode;
│ │ │ │ +
133 BYTE *user_data; /* see dbsetuserdata() and dbgetuserdata() */
│ │ │ │ +
134 unsigned char *dbbuf; /* is dynamic! */
│ │ │ │ +
135 int dbbufsz;
│ │ │ │ +
136 int command_state;
│ │ │ │ +
137 TDS_INT text_size;
│ │ │ │ +
138 TDS_INT text_sent;
│ │ │ │ +
139 DBTYPEINFO typeinfo;
│ │ │ │ +
140 unsigned char avail_flag;
│ │ │ │ +
141 DBOPTION *dbopts;
│ │ │ │ +
142 DBSTRING *dboptcmd;
│ │ │ │ +
143 BCP_HOSTFILEINFO *hostfileinfo;
│ │ │ │ +
144 TDSBCPINFO *bcpinfo;
│ │ │ │ +
145 DBREMOTE_PROC *rpc;
│ │ │ │ +
146 DBUSMALLINT envchange_rcv;
│ │ │ │ +
147 char dbcurdb[DBMAXNAME + 1];
│ │ │ │ +
148 char servcharset[DBMAXNAME + 1];
│ │ │ │ +
149 FILE *ftos;
│ │ │ │ +
150 DB_DBCHKINTR_FUNC chkintr;
│ │ │ │ +
151 DB_DBHNDLINTR_FUNC hndlintr;
│ │ │ │ +
152
│ │ │ │ + │ │ │ │ +
155
│ │ │ │ +
156 int ntimeouts;
│ │ │ │ +
157
│ │ │ │ +
159 NULLREP nullreps[MAXBINDTYPES];
│ │ │ │ +
160};
│ │ │ │ +
│ │ │ │ +
161
│ │ │ │ +
162enum {
│ │ │ │ +
163#if MSDBLIB
│ │ │ │ +
164 dblib_msdblib = 1
│ │ │ │ +
165#else
│ │ │ │ +
166 dblib_msdblib = 0
│ │ │ │ +
167#endif
│ │ │ │ +
168};
│ │ │ │ +
169
│ │ │ │ +
170/*
│ │ │ │ +
171 * internal prototypes
│ │ │ │ +
172 */
│ │ │ │ +
173RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE* varaddr);
│ │ │ │ +
174void copy_data_to_host_var(DBPROCESS * dbproc, TDS_SERVER_TYPE srctype, const BYTE * src, DBINT srclen,
│ │ │ │ +
175 BYTE * dest, DBINT destlen,
│ │ │ │ +
176 int bindtype, DBINT *indicator);
│ │ │ │ +
177
│ │ │ │ +
178int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum, ...);
│ │ │ │ +
179int _dblib_handle_info_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
│ │ │ │ +
180int _dblib_handle_err_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
│ │ │ │ +
181int _dblib_check_and_handle_interrupt(void * vdbproc);
│ │ │ │ +
182
│ │ │ │ +
183void _dblib_setTDS_version(TDSLOGIN * tds_login, DBINT version);
│ │ │ │ +
184void _dblib_convert_err(DBPROCESS * dbproc, TDS_INT len);
│ │ │ │ +
185
│ │ │ │ +
186DBINT _convert_char(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
│ │ │ │ +
187DBINT _convert_intn(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
│ │ │ │ +
188
│ │ │ │ +
189RETCODE _bcp_clear_storage(DBPROCESS * dbproc);
│ │ │ │ +
190RETCODE _bcp_get_prog_data(DBPROCESS * dbproc);
│ │ │ │ +
191
│ │ │ │ +
192extern MHANDLEFUNC _dblib_msg_handler;
│ │ │ │ +
193extern EHANDLEFUNC _dblib_err_handler;
│ │ │ │ +
194
│ │ │ │ +
195#define CHECK_PARAMETER(x, msg, ret) if (!(x)) { dbperror(dbproc, (msg), 0); return ret; }
│ │ │ │ +
196#define CHECK_NULP(x, func, param_num, ret) if (!(x)) { dbperror(dbproc, SYBENULP, 0, func, (int) param_num); return ret; }
│ │ │ │ +
197#define CHECK_PARAMETER_NOPROC(x, msg) if (!(x)) { dbperror(NULL, (msg), 0); return FAIL; }
│ │ │ │ +
198#define DBPERROR_RETURN(x, msg) if (x) { dbperror(dbproc, (msg), 0); return FAIL; }
│ │ │ │ +
199#define DBPERROR_RETURN3(x, msg, a, b, c) if (x) { dbperror(dbproc, (msg), 0, a, b, c); return FAIL; }
│ │ │ │ +
200#define CHECK_CONN(ret) do { CHECK_PARAMETER(dbproc, SYBENULL, (ret)); \
│ │ │ │ +
201 if (IS_TDSDEAD(dbproc->tds_socket)) { dbperror(dbproc, SYBEDDNE, 0); return (ret); } } while(0)
│ │ │ │ +
202
│ │ │ │ +
203
│ │ │ │ +
204#ifdef __cplusplus
│ │ │ │ +
205#if 0
│ │ │ │ +
206{
│ │ │ │ +
207#endif
│ │ │ │ +
208}
│ │ │ │ +
209#endif
│ │ │ │ +
210
│ │ │ │ +
211#include <freetds/popvis.h>
│ │ │ │ +
212
│ │ │ │ +
213#endif
│ │ │ │ +
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition dblib.c:529
│ │ │ │ +
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition dblib.c:8148
│ │ │ │ +
int _dblib_check_and_handle_interrupt(void *vdbproc)
check interrupts for libtds.
Definition dbutil.c:192
│ │ │ │ +
Definition buffering.h:1
│ │ │ │ +
Definition dblib.h:44
│ │ │ │ +
Definition dblib.h:52
│ │ │ │ +
Definition dblib.h:62
│ │ │ │ +
Definition dblib.h:74
│ │ │ │ +
Definition dblib.h:89
│ │ │ │ +
Definition dblib.h:101
│ │ │ │ +
Definition dblib.h:110
│ │ │ │ +
Definition dblib.h:117
│ │ │ │ +
Definition dblib.h:123
│ │ │ │ +
NULLREP nullreps[MAXBINDTYPES]
default null values
Definition dblib.h:159
│ │ │ │ +
int msdblib
boolean use ms behaviour
Definition dblib.h:154
│ │ │ │ +
Definition tds.h:517
│ │ │ │ +
Definition tds.h:876
│ │ │ │ +
Definition tds.h:1029
│ │ │ │ +
Information for a server connection.
Definition tds.h:1163
│ │ │ │ +
Definition tds.h:1661
│ │ │ │ +
Definition sybdb.h:336
│ │ │ │ +
Definition sybdb.h:342
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -bkpublic.h │ │ │ │ │ +dblib.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,78 +19,267 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _bkpublic_h_ │ │ │ │ │ -21#define _bkpublic_h_ │ │ │ │ │ +20#ifndef _dblib_h_ │ │ │ │ │ +21#define _dblib_h_ │ │ │ │ │ 22 │ │ │ │ │ -23static const char rcsid_bkpublic_h[] = "$Id: bkpublic.h,v 1.5 2004-10-28 12: │ │ │ │ │ -42:11 freddy77 Exp $"; │ │ │ │ │ -24static const void *const no_unused_bkpublic_h_warn[] = { rcsid_bkpublic_h, │ │ │ │ │ -no_unused_bkpublic_h_warn }; │ │ │ │ │ -25 │ │ │ │ │ -26/* seperate this stuff out later */ │ │ │ │ │ -27#include │ │ │ │ │ -28 │ │ │ │ │ -29#ifdef __cplusplus │ │ │ │ │ -30extern "C" │ │ │ │ │ -31{ │ │ │ │ │ -32#if 0 │ │ │ │ │ -33} │ │ │ │ │ -34#endif │ │ │ │ │ -35#endif │ │ │ │ │ -36 │ │ │ │ │ -37/* buld properties start with 1 i guess */ │ │ │ │ │ -38#define BLK_IDENTITY 1 │ │ │ │ │ -39 │ │ │ │ │ -40CS_RETCODE blk_alloc(_C_S___C_O_N_N_E_C_T_I_O_N * connection, CS_INT version, _C_S___B_L_K_D_E_S_C │ │ │ │ │ -** blk_pointer); │ │ │ │ │ -41CS_RETCODE blk_bind(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT colnum, _C_S___D_A_T_A_F_M_T * │ │ │ │ │ -datafmt, CS_VOID * buffer, CS_INT * datalen, │ │ │ │ │ -42 CS_SMALLINT * indicator); │ │ │ │ │ -43CS_RETCODE blk_colval(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp, CS_BLK_ROW * │ │ │ │ │ -rowp, CS_INT colnum, CS_VOID * valuep, │ │ │ │ │ -44 CS_INT valuelen, CS_INT * outlenp); │ │ │ │ │ -45CS_RETCODE blk_default(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT colnum, CS_VOID * buffer, │ │ │ │ │ -CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -46CS_RETCODE blk_describe(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT colnum, _C_S___D_A_T_A_F_M_T * │ │ │ │ │ -datafmt); │ │ │ │ │ -47CS_RETCODE blk_done(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT type, CS_INT * outrow); │ │ │ │ │ -48CS_RETCODE blk_drop(_C_S___B_L_K_D_E_S_C * blkdesc); │ │ │ │ │ -49CS_RETCODE blk_getrow(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp, CS_BLK_ROW * │ │ │ │ │ -rowp); │ │ │ │ │ -50CS_RETCODE blk_gettext(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp, CS_BLK_ROW │ │ │ │ │ -* rowp, CS_INT bufsize, CS_INT * outlenp); │ │ │ │ │ -51CS_RETCODE blk_init(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT direction, CS_CHAR * │ │ │ │ │ -tablename, CS_INT tnamelen); │ │ │ │ │ -52CS_RETCODE blk_props(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT action, CS_INT property, │ │ │ │ │ -CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -53CS_RETCODE blk_rowalloc(SRV_PROC * srvproc, CS_BLK_ROW ** row); │ │ │ │ │ -54CS_RETCODE blk_rowdrop(SRV_PROC * srvproc, CS_BLK_ROW * row); │ │ │ │ │ -55CS_RETCODE blk_rowxfer(_C_S___B_L_K_D_E_S_C * blkdesc); │ │ │ │ │ -56CS_RETCODE blk_rowxfer_mult(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT * row_count); │ │ │ │ │ -57CS_RETCODE blk_sendrow(_C_S___B_L_K_D_E_S_C * blkdesc, CS_BLK_ROW * row); │ │ │ │ │ -58CS_RETCODE blk_sendtext(_C_S___B_L_K_D_E_S_C * blkdesc, CS_BLK_ROW * row, CS_BYTE * │ │ │ │ │ -buffer, CS_INT buflen); │ │ │ │ │ -59CS_RETCODE blk_srvinit(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp); │ │ │ │ │ -60CS_RETCODE blk_textxfer(_C_S___B_L_K_D_E_S_C * blkdesc, CS_BYTE * buffer, CS_INT │ │ │ │ │ -buflen, CS_INT * outlen); │ │ │ │ │ -61 │ │ │ │ │ -62#ifdef __cplusplus │ │ │ │ │ -63#if 0 │ │ │ │ │ -64{ │ │ │ │ │ -65#endif │ │ │ │ │ -66} │ │ │ │ │ -67#endif │ │ │ │ │ -68 │ │ │ │ │ -69#endif │ │ │ │ │ -___c_s___d_a_t_a_f_m_t │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ -___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ -___c_s___b_l_k_d_e_s_c │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:239 │ │ │ │ │ +23#include │ │ │ │ │ +24 │ │ │ │ │ +25#ifdef __cplusplus │ │ │ │ │ +26extern "C" │ │ │ │ │ +27{ │ │ │ │ │ +28#if 0 │ │ │ │ │ +29} │ │ │ │ │ +30#endif │ │ │ │ │ +31#endif │ │ │ │ │ +32 │ │ │ │ │ +33typedef enum │ │ │ │ │ +34{ │ │ │ │ │ +35 _DB_RES_INIT │ │ │ │ │ +36 , _DB_RES_RESULTSET_EMPTY │ │ │ │ │ +37 , _DB_RES_RESULTSET_ROWS │ │ │ │ │ +38 , _DB_RES_NEXT_RESULT │ │ │ │ │ +39 , _DB_RES_NO_MORE_RESULTS │ │ │ │ │ +40 , _DB_RES_SUCCEED │ │ │ │ │ +41} DB_RESULT_STATE; │ │ │ │ │ +42 │ │ │ │ │ +_4_3struct _t_d_s___d_b_l_i_b___l_o_g_i_n_r_e_c │ │ │ │ │ +44{ │ │ │ │ │ +45 _T_D_S_L_O_G_I_N *_t_d_s___l_o_g_i_n; │ │ │ │ │ +46 bool network_auth; │ │ │ │ │ +47}; │ │ │ │ │ +48 │ │ │ │ │ +49struct _d_b_l_i_b___b_u_f_f_e_r___r_o_w; │ │ │ │ │ +50 │ │ │ │ │ +_5_1typedef struct │ │ │ │ │ +52{ │ │ │ │ │ +53 int received; /* how many rows have been received for this result set */ │ │ │ │ │ +54 int head; /* queue insertion point */ │ │ │ │ │ +55 int tail; /* oldest item in queue */ │ │ │ │ │ +56 int current; /* dbnextrow() reads this row */ │ │ │ │ │ +57 int capacity; /* how many elements the queue can hold */ │ │ │ │ │ +58 struct _d_b_l_i_b___b_u_f_f_e_r___r_o_w *rows; /* pointer to the row storage */ │ │ │ │ │ +59} _D_B_P_R_O_C___R_O_W_B_U_F; │ │ │ │ │ +60 │ │ │ │ │ +_6_1typedef struct │ │ │ │ │ +62{ │ │ │ │ │ +63 int host_column; │ │ │ │ │ +64 TDS_SERVER_TYPE datatype; │ │ │ │ │ +65 int prefix_len; │ │ │ │ │ +66 DBINT column_len; │ │ │ │ │ +67 BYTE *terminator; │ │ │ │ │ +68 int term_len; │ │ │ │ │ +69 int tab_colnum; │ │ │ │ │ +70 int column_error; │ │ │ │ │ +71} _B_C_P___H_O_S_T_C_O_L_I_N_F_O; │ │ │ │ │ +72 │ │ │ │ │ +_7_3typedef struct │ │ │ │ │ +74{ │ │ │ │ │ +75 TDS_CHAR *hostfile; │ │ │ │ │ +76 TDS_CHAR *errorfile; │ │ │ │ │ +77 FILE *bcp_errfileptr; │ │ │ │ │ +78 TDS_INT host_colcount; │ │ │ │ │ +79 _B_C_P___H_O_S_T_C_O_L_I_N_F_O **host_columns; │ │ │ │ │ +80 TDS_INT firstrow; │ │ │ │ │ +81 TDS_INT lastrow; │ │ │ │ │ +82 TDS_INT maxerrs; │ │ │ │ │ +83 TDS_INT batch; │ │ │ │ │ +84} _B_C_P___H_O_S_T_F_I_L_E_I_N_F_O; │ │ │ │ │ +85 │ │ │ │ │ +86/* linked list of rpc parameters */ │ │ │ │ │ +87 │ │ │ │ │ +_8_8typedef struct _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M │ │ │ │ │ +89{ │ │ │ │ │ +90 struct _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M *next; │ │ │ │ │ +91 │ │ │ │ │ +92 char *name; │ │ │ │ │ +93 BYTE status; │ │ │ │ │ +94 TDS_SERVER_TYPE type; │ │ │ │ │ +95 DBINT maxlen; │ │ │ │ │ +96 DBINT datalen; │ │ │ │ │ +97 BYTE *value; │ │ │ │ │ +98} _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M; │ │ │ │ │ +99 │ │ │ │ │ +_1_0_0typedef struct _D_B_R_E_M_O_T_E___P_R_O_C │ │ │ │ │ +101{ │ │ │ │ │ +102 struct _D_B_R_E_M_O_T_E___P_R_O_C *next; │ │ │ │ │ +103 │ │ │ │ │ +104 char *name; │ │ │ │ │ +105 DBSMALLINT options; │ │ │ │ │ +106 _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M *param_list; │ │ │ │ │ +107} _D_B_R_E_M_O_T_E___P_R_O_C; │ │ │ │ │ +108 │ │ │ │ │ +_1_0_9typedef struct _d_b_o_p_t_i_o_n │ │ │ │ │ +110{ │ │ │ │ │ +111 const char *text; │ │ │ │ │ +112 _D_B_S_T_R_I_N_G *param; │ │ │ │ │ +113 DBBOOL factive; │ │ │ │ │ +114} _D_B_O_P_T_I_O_N; │ │ │ │ │ +115 │ │ │ │ │ +_1_1_6typedef struct │ │ │ │ │ +117{ │ │ │ │ │ +118 const BYTE *bindval; │ │ │ │ │ +119 size_t len; │ │ │ │ │ +120} _N_U_L_L_R_E_P; │ │ │ │ │ +121 │ │ │ │ │ +_1_2_2struct _t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s │ │ │ │ │ +123{ │ │ │ │ │ +124 _T_D_S_S_O_C_K_E_T *_t_d_s___s_o_c_k_e_t; │ │ │ │ │ +125 │ │ │ │ │ +126 STATUS row_type; │ │ │ │ │ +127 _D_B_P_R_O_C___R_O_W_B_U_F row_buf; │ │ │ │ │ +128 │ │ │ │ │ +129 int noautofree; │ │ │ │ │ +130 int more_results; /* boolean. Are we expecting results? */ │ │ │ │ │ +131 DB_RESULT_STATE dbresults_state; │ │ │ │ │ +132 int dbresults_retcode; │ │ │ │ │ +133 BYTE *user_data; /* see dbsetuserdata() and dbgetuserdata() */ │ │ │ │ │ +134 unsigned char *dbbuf; /* is dynamic! */ │ │ │ │ │ +135 int dbbufsz; │ │ │ │ │ +136 int command_state; │ │ │ │ │ +137 TDS_INT text_size; │ │ │ │ │ +138 TDS_INT text_sent; │ │ │ │ │ +139 _D_B_T_Y_P_E_I_N_F_O typeinfo; │ │ │ │ │ +140 unsigned char avail_flag; │ │ │ │ │ +141 _D_B_O_P_T_I_O_N *dbopts; │ │ │ │ │ +142 _D_B_S_T_R_I_N_G *dboptcmd; │ │ │ │ │ +143 _B_C_P___H_O_S_T_F_I_L_E_I_N_F_O *hostfileinfo; │ │ │ │ │ +144 _T_D_S_B_C_P_I_N_F_O *bcpinfo; │ │ │ │ │ +145 _D_B_R_E_M_O_T_E___P_R_O_C *rpc; │ │ │ │ │ +146 DBUSMALLINT envchange_rcv; │ │ │ │ │ +147 char dbcurdb[DBMAXNAME + 1]; │ │ │ │ │ +148 char servcharset[DBMAXNAME + 1]; │ │ │ │ │ +149 FILE *ftos; │ │ │ │ │ +150 DB_DBCHKINTR_FUNC chkintr; │ │ │ │ │ +151 DB_DBHNDLINTR_FUNC hndlintr; │ │ │ │ │ +152 │ │ │ │ │ +_1_5_4 int _m_s_d_b_l_i_b; │ │ │ │ │ +155 │ │ │ │ │ +156 int ntimeouts; │ │ │ │ │ +157 │ │ │ │ │ +_1_5_9 _N_U_L_L_R_E_P _n_u_l_l_r_e_p_s[MAXBINDTYPES]; │ │ │ │ │ +160}; │ │ │ │ │ +161 │ │ │ │ │ +162enum { │ │ │ │ │ +163#if MSDBLIB │ │ │ │ │ +164 dblib_msdblib = 1 │ │ │ │ │ +165#else │ │ │ │ │ +166 dblib_msdblib = 0 │ │ │ │ │ +167#endif │ │ │ │ │ +168}; │ │ │ │ │ +169 │ │ │ │ │ +170/* │ │ │ │ │ +171 * internal prototypes │ │ │ │ │ +172 */ │ │ │ │ │ +173RETCODE _d_b_g_e_t_n_u_l_l(_D_B_P_R_O_C_E_S_S *dbproc, int bindtype, int varlen, BYTE* │ │ │ │ │ +varaddr); │ │ │ │ │ +174void copy_data_to_host_var(_D_B_P_R_O_C_E_S_S * dbproc, TDS_SERVER_TYPE srctype, │ │ │ │ │ +const BYTE * src, DBINT srclen, │ │ │ │ │ +175 BYTE * dest, DBINT destlen, │ │ │ │ │ +176 int bindtype, DBINT *indicator); │ │ │ │ │ +177 │ │ │ │ │ +178int _d_b_p_e_r_r_o_r (_D_B_P_R_O_C_E_S_S *dbproc, DBINT msgno, long errnum, ...); │ │ │ │ │ +179int _dblib_handle_info_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * │ │ │ │ │ +tdsptr, _T_D_S_M_E_S_S_A_G_E* msgptr); │ │ │ │ │ +180int _dblib_handle_err_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * tdsptr, │ │ │ │ │ +_T_D_S_M_E_S_S_A_G_E* msgptr); │ │ │ │ │ +181int ___d_b_l_i_b___c_h_e_c_k___a_n_d___h_a_n_d_l_e___i_n_t_e_r_r_u_p_t(void * vdbproc); │ │ │ │ │ +182 │ │ │ │ │ +183void _dblib_setTDS_version(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, DBINT version); │ │ │ │ │ +184void _dblib_convert_err(_D_B_P_R_O_C_E_S_S * dbproc, TDS_INT len); │ │ │ │ │ +185 │ │ │ │ │ +186DBINT _convert_char(int srctype, BYTE * src, int destype, BYTE * dest, DBINT │ │ │ │ │ +destlen); │ │ │ │ │ +187DBINT _convert_intn(int srctype, BYTE * src, int destype, BYTE * dest, DBINT │ │ │ │ │ +destlen); │ │ │ │ │ +188 │ │ │ │ │ +189RETCODE _bcp_clear_storage(_D_B_P_R_O_C_E_S_S * dbproc); │ │ │ │ │ +190RETCODE _bcp_get_prog_data(_D_B_P_R_O_C_E_S_S * dbproc); │ │ │ │ │ +191 │ │ │ │ │ +192extern MHANDLEFUNC _dblib_msg_handler; │ │ │ │ │ +193extern EHANDLEFUNC _dblib_err_handler; │ │ │ │ │ +194 │ │ │ │ │ +195#define CHECK_PARAMETER(x, msg, ret) if (!(x)) { dbperror(dbproc, (msg), 0); │ │ │ │ │ +return ret; } │ │ │ │ │ +196#define CHECK_NULP(x, func, param_num, ret) if (!(x)) { dbperror(dbproc, │ │ │ │ │ +SYBENULP, 0, func, (int) param_num); return ret; } │ │ │ │ │ +197#define CHECK_PARAMETER_NOPROC(x, msg) if (!(x)) { dbperror(NULL, (msg), 0); │ │ │ │ │ +return FAIL; } │ │ │ │ │ +198#define DBPERROR_RETURN(x, msg) if (x) { dbperror(dbproc, (msg), 0); return │ │ │ │ │ +FAIL; } │ │ │ │ │ +199#define DBPERROR_RETURN3(x, msg, a, b, c) if (x) { dbperror(dbproc, (msg), │ │ │ │ │ +0, a, b, c); return FAIL; } │ │ │ │ │ +200#define CHECK_CONN(ret) do { CHECK_PARAMETER(dbproc, SYBENULL, (ret)); \ │ │ │ │ │ +201 if (IS_TDSDEAD(dbproc->tds_socket)) { dbperror(dbproc, SYBEDDNE, 0); return │ │ │ │ │ +(ret); } } while(0) │ │ │ │ │ +202 │ │ │ │ │ +203 │ │ │ │ │ +204#ifdef __cplusplus │ │ │ │ │ +205#if 0 │ │ │ │ │ +206{ │ │ │ │ │ +207#endif │ │ │ │ │ +208} │ │ │ │ │ +209#endif │ │ │ │ │ +210 │ │ │ │ │ +211#include │ │ │ │ │ +212 │ │ │ │ │ +213#endif │ │ │ │ │ +_d_b_g_e_t_n_u_l_l │ │ │ │ │ +RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr) │ │ │ │ │ +DDeeffiinniittiioonn dblib.c:529 │ │ │ │ │ +_d_b_p_e_r_r_o_r │ │ │ │ │ +int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...) │ │ │ │ │ +Call client-installed error handler. │ │ │ │ │ +DDeeffiinniittiioonn dblib.c:8148 │ │ │ │ │ +___d_b_l_i_b___c_h_e_c_k___a_n_d___h_a_n_d_l_e___i_n_t_e_r_r_u_p_t │ │ │ │ │ +int _dblib_check_and_handle_interrupt(void *vdbproc) │ │ │ │ │ +check interrupts for libtds. │ │ │ │ │ +DDeeffiinniittiioonn dbutil.c:192 │ │ │ │ │ +_d_b_l_i_b___b_u_f_f_e_r___r_o_w │ │ │ │ │ +DDeeffiinniittiioonn buffering.h:1 │ │ │ │ │ +_t_d_s___d_b_l_i_b___l_o_g_i_n_r_e_c │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:44 │ │ │ │ │ +_D_B_P_R_O_C___R_O_W_B_U_F │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:52 │ │ │ │ │ +_B_C_P___H_O_S_T_C_O_L_I_N_F_O │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:62 │ │ │ │ │ +_B_C_P___H_O_S_T_F_I_L_E_I_N_F_O │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:74 │ │ │ │ │ +_D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:89 │ │ │ │ │ +_D_B_R_E_M_O_T_E___P_R_O_C │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:101 │ │ │ │ │ +_d_b_o_p_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:110 │ │ │ │ │ +_N_U_L_L_R_E_P │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:117 │ │ │ │ │ +_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:123 │ │ │ │ │ +_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s_:_:_n_u_l_l_r_e_p_s │ │ │ │ │ +NULLREP nullreps[MAXBINDTYPES] │ │ │ │ │ +default null values │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:159 │ │ │ │ │ +_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s_:_:_m_s_d_b_l_i_b │ │ │ │ │ +int msdblib │ │ │ │ │ +boolean use ms behaviour │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:154 │ │ │ │ │ +_t_d_s___l_o_g_i_n │ │ │ │ │ +DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ +_t_d_s___m_e_s_s_a_g_e │ │ │ │ │ +DDeeffiinniittiioonn tds.h:876 │ │ │ │ │ +_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ +_t_d_s___s_o_c_k_e_t │ │ │ │ │ +Information for a server connection. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ +_t_d_s___b_c_p_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ +_d_b_t_y_p_e_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn sybdb.h:336 │ │ │ │ │ +_d_b_s_t_r_i_n_g │ │ │ │ │ +DDeeffiinniittiioonn sybdb.h:342 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00470_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/sqldb.h Source File │ │ │ │ +FreeTDS API: include/cspublic.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
sqldb.h
│ │ │ │ +
cspublic.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,176 +96,797 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef SQLDB_h
│ │ │ │ -
21#define SQLDB_h
│ │ │ │ +
20#ifndef _cspublic_h_
│ │ │ │ +
21#define _cspublic_h_
│ │ │ │
22
│ │ │ │ -
23#include "./sybdb.h"
│ │ │ │ +
23#include <cstypes.h>
│ │ │ │
24
│ │ │ │ -
25#define SQLCHAR SYBCHAR
│ │ │ │ -
26#define SQLVARCHAR SYBVARCHAR
│ │ │ │ -
27#define SQLINTN SYBINTN
│ │ │ │ -
28#define SQLINT1 SYBINT1
│ │ │ │ -
29#define SQLINT2 SYBINT2
│ │ │ │ -
30#define SQLINT4 SYBINT4
│ │ │ │ -
31#define SQLINT8 SYBINT8
│ │ │ │ -
32#define SQLFLT8 SYBFLT8
│ │ │ │ -
33#define SQLDATETIME SYBDATETIME
│ │ │ │ -
34#define SQLBIT SYBBIT
│ │ │ │ -
35#define SQLTEXT SYBTEXT
│ │ │ │ -
36#define SQLIMAGE SYBIMAGE
│ │ │ │ -
37#define SQLMONEY4 SYBMONEY4
│ │ │ │ -
38#define SQLMONEY SYBMONEY
│ │ │ │ -
39#define SQLDATETIM4 SYBDATETIME4
│ │ │ │ -
40#define SQLFLT4 SYBREAL
│ │ │ │ -
41#define SQLBINARY SYBBINARY
│ │ │ │ -
42#define SQLVARBINARY SYBVARBINARY
│ │ │ │ -
43#define SQLNUMERIC SYBNUMERIC
│ │ │ │ -
44#define SQLDECIMAL SYBDECIMAL
│ │ │ │ -
45#define SQLFLTN SYBFLTN
│ │ │ │ -
46#define SQLMONEYN SYBMONEYN
│ │ │ │ -
47#define SQLDATETIMN SYBDATETIMN
│ │ │ │ -
48#define SQLVOID SYBVOID
│ │ │ │ -
49
│ │ │ │ -
50#define SMALLDATETIBIND SMALLDATETIMEBIND
│ │ │ │ -
51
│ │ │ │ -
52#define DBERRHANDLE_PROC EHANDLEFUNC
│ │ │ │ -
53#define DBMSGHANDLE_PROC MHANDLEFUNC
│ │ │ │ -
54
│ │ │ │ -
55/* DB-Library errors as defined by Microsoft */
│ │ │ │ -
56#define SQLEMEM SYBEMEM
│ │ │ │ -
57#define SQLENULL SYBENULL
│ │ │ │ -
58#define SQLENLOG SYBENLOG
│ │ │ │ -
59#define SQLEPWD SYBEPWD
│ │ │ │ -
60#define SQLECONN SYBECONN
│ │ │ │ -
61#define SQLEDDNE SYBEDDNE
│ │ │ │ -
62#define SQLENULLO SYBENULLO
│ │ │ │ -
63#define SQLESMSG SYBESMSG
│ │ │ │ -
64#define SQLEBTOK SYBEBTOK
│ │ │ │ -
65#define SQLENSPE SYBENSPE
│ │ │ │ -
66#define SQLEREAD SYBEREAD
│ │ │ │ -
67#define SQLECNOR SYBECNOR
│ │ │ │ -
68#define SQLETSIT SYBETSIT
│ │ │ │ -
69#define SQLEPARM SYBEPARM
│ │ │ │ -
70#define SQLEAUTN SYBEAUTN
│ │ │ │ -
71#define SQLECOFL SYBECOFL
│ │ │ │ -
72#define SQLERDCN SYBERDCN
│ │ │ │ -
73#define SQLEICN SYBEICN
│ │ │ │ -
74#define SQLECLOS SYBECLOS
│ │ │ │ -
75#define SQLENTXT SYBENTXT
│ │ │ │ -
76#define SQLEDNTI SYBEDNTI
│ │ │ │ -
77#define SQLETMTD SYBETMTD
│ │ │ │ -
78#define SQLEASEC SYBEASEC
│ │ │ │ -
79#define SQLENTLL SYBENTLL
│ │ │ │ -
80#define SQLETIME SYBETIME
│ │ │ │ -
81#define SQLEWRIT SYBEWRIT
│ │ │ │ -
82#define SQLEMODE SYBEMODE
│ │ │ │ -
83#define SQLEOOB SYBEOOB
│ │ │ │ -
84#define SQLEITIM SYBEITIM
│ │ │ │ -
85#define SQLEDBPS SYBEDBPS
│ │ │ │ -
86#define SQLEIOPT SYBEIOPT
│ │ │ │ -
87#define SQLEASNL SYBEASNL
│ │ │ │ -
88#define SQLEASUL SYBEASUL
│ │ │ │ -
89#define SQLENPRM SYBENPRM
│ │ │ │ -
90#define SQLEDBOP SYBEDBOP
│ │ │ │ -
91#define SQLENSIP SYBENSIP
│ │ │ │ -
92#define SQLECNULL SYBECNULL
│ │ │ │ -
93#define SQLESEOF SYBESEOF
│ │ │ │ -
94#define SQLERPND SYBERPND
│ │ │ │ -
95#define SQLECSYN SYBECSYN
│ │ │ │ -
96#define SQLENONET SYBENONET
│ │ │ │ -
97#define SQLEBTYP SYBEBTYP
│ │ │ │ -
98#define SQLEABNC SYBEABNC
│ │ │ │ -
99#define SQLEABMT SYBEABMT
│ │ │ │ -
100#define SQLEABNP SYBEABNP
│ │ │ │ -
101#define SQLEBNCR SYBEBNCR
│ │ │ │ -
102#define SQLEAAMT SYBEAAMT
│ │ │ │ -
103#define SQLENXID SYBENXID
│ │ │ │ -
104#define SQLEIFNB SYBEIFNB
│ │ │ │ -
105#define SQLEKBCO SYBEKBCO
│ │ │ │ -
106#define SQLEBBCI SYBEBBCI
│ │ │ │ -
107#define SQLEKBCI SYBEKBCI
│ │ │ │ -
108#define SQLEBCWE SYBEBCWE
│ │ │ │ -
109#define SQLEBCNN SYBEBCNN
│ │ │ │ -
110#define SQLEBCOR SYBEBCOR
│ │ │ │ -
111#define SQLEBCPI SYBEBCPI
│ │ │ │ -
112#define SQLEBCPN SYBEBCPN
│ │ │ │ -
113#define SQLEBCPB SYBEBCPB
│ │ │ │ -
114#define SQLEVDPT SYBEVDPT
│ │ │ │ -
115#define SQLEBIVI SYBEBIVI
│ │ │ │ -
116#define SQLEBCBC SYBEBCBC
│ │ │ │ -
117#define SQLEBCFO SYBEBCFO
│ │ │ │ -
118#define SQLEBCVH SYBEBCVH
│ │ │ │ -
119#define SQLEBCUO SYBEBCUO
│ │ │ │ -
120#define SQLEBUOE SYBEBUOE
│ │ │ │ -
121#define SQLEBWEF SYBEBWEF
│ │ │ │ -
122#define SQLEBTMT SYBEBTMT
│ │ │ │ -
123#define SQLEBEOF SYBEBEOF
│ │ │ │ -
124#define SQLEBCSI SYBEBCSI
│ │ │ │ -
125#define SQLEPNUL SYBEPNUL
│ │ │ │ -
126#define SQLEBSKERR SYBEBSKERR
│ │ │ │ -
127#define SQLEBDIO SYBEBDIO
│ │ │ │ -
128#define SQLEBCNT SYBEBCNT
│ │ │ │ -
129#define SQLEMDBP SYBEMDBP
│ │ │ │ -
130#define SQLINIT SYBINIT
│ │ │ │ -
131#define SQLCRSINV SYBCRSINV
│ │ │ │ -
132#define SQLCRSCMD SYBCRSCMD
│ │ │ │ -
133#define SQLCRSNOIND SYBCRSNOIND
│ │ │ │ -
134#define SQLCRSDIS SYBCRSDIS
│ │ │ │ -
135#define SQLCRSAGR SYBCRSAGR
│ │ │ │ -
136#define SQLCRSORD SYBCRSORD
│ │ │ │ -
137#define SQLCRSMEM SYBCRSMEM
│ │ │ │ -
138#define SQLCRSBSKEY SYBCRSBSKEY
│ │ │ │ -
139#define SQLCRSNORES SYBCRSNORES
│ │ │ │ -
140#define SQLCRSVIEW SYBCRSVIEW
│ │ │ │ -
141#define SQLCRSBUFR SYBCRSBUFR
│ │ │ │ -
142#define SQLCRSFROWN SYBCRSFROWN
│ │ │ │ -
143#define SQLCRSBROL SYBCRSBROL
│ │ │ │ -
144#define SQLCRSFRAND SYBCRSFRAND
│ │ │ │ -
145#define SQLCRSFLAST SYBCRSFLAST
│ │ │ │ -
146#define SQLCRSRO SYBCRSRO
│ │ │ │ -
147#define SQLCRSTAB SYBCRSTAB
│ │ │ │ -
148#define SQLCRSUPDTAB SYBCRSUPDTAB
│ │ │ │ -
149#define SQLCRSUPDNB SYBCRSUPDNB
│ │ │ │ -
150#define SQLCRSVIIND SYBCRSVIIND
│ │ │ │ -
151#define SQLCRSNOUPD SYBCRSNOUPD
│ │ │ │ -
152#define SQLCRSOS SYBCRSOS
│ │ │ │ -
153#define SQLEBCSA SYBEBCSA
│ │ │ │ -
154#define SQLEBCRO SYBEBCRO
│ │ │ │ -
155#define SQLEBCNE SYBEBCNE
│ │ │ │ -
156#define SQLEBCSK SYBEBCSK
│ │ │ │ -
157#define SQLEUVBF SYBEUVBF
│ │ │ │ -
158#define SQLEBIHC SYBEBIHC
│ │ │ │ -
159#define SQLEBWFF SYBEBWFF
│ │ │ │ -
160#define SQLNUMVAL SYBNUMVAL
│ │ │ │ -
161#define SQLEOLDVR SYBEOLDVR
│ │ │ │ -
162#define SQLEBCPS SYBEBCPS
│ │ │ │ -
163#define SQLEDTC SYBEDTC
│ │ │ │ -
164#define SQLENOTIMPL SYBENOTIMPL
│ │ │ │ -
165#define SQLENONFLOAT SYBENONFLOAT
│ │ │ │ -
166#define SQLECONNFB SYBECONNFB
│ │ │ │ -
167
│ │ │ │ -
168
│ │ │ │ -
169#define dbfreelogin(x) dbloginfree((x))
│ │ │ │ -
170
│ │ │ │ -
171#define dbprocerrhandle(p, h) dberrhandle((h))
│ │ │ │ -
172#define dbprocmsghandle(p, h) dbmsghandle((h))
│ │ │ │ -
173
│ │ │ │ -
174#define dbwinexit()
│ │ │ │ +
25#undef TDS_STATIC_CAST
│ │ │ │ +
26#ifdef __cplusplus
│ │ │ │ +
27#define TDS_STATIC_CAST(type, a) static_cast<type>(a)
│ │ │ │ +
28extern "C"
│ │ │ │ +
29{
│ │ │ │ +
30#if 0
│ │ │ │ +
31}
│ │ │ │ +
32#endif
│ │ │ │ +
33#else
│ │ │ │ +
34#define TDS_STATIC_CAST(type, a) ((type)(a))
│ │ │ │ +
35#endif
│ │ │ │ +
36
│ │ │ │ +
37#define CS_PUBLIC
│ │ │ │ +
38#define CS_STATIC static
│ │ │ │ +
39
│ │ │ │ +
40#define CS_SUCCEED 1
│ │ │ │ +
41#define CS_FAIL 0
│ │ │ │ +
42#define CS_MEM_ERROR -1
│ │ │ │ +
43#define CS_PENDING -2
│ │ │ │ +
44#define CS_QUIET -3
│ │ │ │ +
45#define CS_BUSY -4
│ │ │ │ +
46#define CS_INTERRUPT -5
│ │ │ │ +
47#define CS_BLK_HAS_TEXT -6
│ │ │ │ +
48#define CS_CONTINUE -7
│ │ │ │ +
49#define CS_FATAL -8
│ │ │ │ +
50#define CS_RET_HAFAILOVER -9
│ │ │ │ +
51#define CS_UNSUPPORTED -10
│ │ │ │ +
52
│ │ │ │ +
53#define CS_CANCELED -202
│ │ │ │ +
54#define CS_ROW_FAIL -203
│ │ │ │ +
55#define CS_END_DATA -204
│ │ │ │ +
56#define CS_END_RESULTS -205
│ │ │ │ +
57#define CS_END_ITEM -206
│ │ │ │ +
58#define CS_NOMSG -207
│ │ │ │ +
59#define CS_TIMED_OUT -208
│ │ │ │ +
60
│ │ │ │ +
61#define CS_SIZEOF(x) sizeof(x)
│ │ │ │ +
62
│ │ │ │ +
63#define CS_LAYER(x) (((x) >> 24) & 0xFF)
│ │ │ │ +
64#define CS_ORIGIN(x) (((x) >> 16) & 0xFF)
│ │ │ │ +
65#define CS_SEVERITY(x) (((x) >> 8) & 0xFF)
│ │ │ │ +
66#define CS_NUMBER(x) ((x) & 0xFF)
│ │ │ │ +
67
│ │ │ │ +
68/* forward declarations */
│ │ │ │ +
69typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (CS_CONTEXT *, CS_CLIENTMSG *);
│ │ │ │ +
70typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_CLIENTMSG *);
│ │ │ │ +
71typedef CS_RETCODE(*CS_SERVERMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_SERVERMSG *);
│ │ │ │ +
72
│ │ │ │ +
73
│ │ │ │ +
74#define CS_IODATA TDS_STATIC_CAST(CS_INT, 1600)
│ │ │ │ +
75#define CS_SRC_VALUE -2562
│ │ │ │ +
76
│ │ │ │ +
77
│ │ │ │ +
78
│ │ │ │ +
79/* status bits for CS_SERVERMSG */
│ │ │ │ +
80#define CS_HASEED 0x01
│ │ │ │ +
81
│ │ │ │ +
82typedef struct _cs_blkdesc CS_BLKDESC;
│ │ │ │ +
83
│ │ │ │ +
84/* CS_CAP_REQUEST values */
│ │ │ │ +
85#define CS_REQ_LANG 1
│ │ │ │ +
86#define CS_REQ_RPC 2
│ │ │ │ +
87#define CS_REQ_NOTIF 3
│ │ │ │ +
88#define CS_REQ_MSTMT 4
│ │ │ │ +
89#define CS_REQ_BCP 5
│ │ │ │ +
90#define CS_REQ_CURSOR 6
│ │ │ │ +
91#define CS_REQ_DYN 7
│ │ │ │ +
92#define CS_REQ_MSG 8
│ │ │ │ +
93#define CS_REQ_PARAM 9
│ │ │ │ +
94#define CS_DATA_INT1 10
│ │ │ │ +
95#define CS_DATA_INT2 11
│ │ │ │ +
96#define CS_DATA_INT4 12
│ │ │ │ +
97#define CS_DATA_BIT 13
│ │ │ │ +
98#define CS_DATA_CHAR 14
│ │ │ │ +
99#define CS_DATA_VCHAR 15
│ │ │ │ +
100#define CS_DATA_BIN 16
│ │ │ │ +
101#define CS_DATA_VBIN 17
│ │ │ │ +
102#define CS_DATA_MNY8 18
│ │ │ │ +
103#define CS_DATA_MNY4 19
│ │ │ │ +
104#define CS_DATA_DATE8 20
│ │ │ │ +
105#define CS_DATA_DATE4 21
│ │ │ │ +
106#define CS_DATA_FLT4 22
│ │ │ │ +
107#define CS_DATA_FLT8 23
│ │ │ │ +
108#define CS_DATA_NUM 24
│ │ │ │ +
109#define CS_DATA_TEXT 25
│ │ │ │ +
110#define CS_DATA_IMAGE 26
│ │ │ │ +
111#define CS_DATA_DEC 27
│ │ │ │ +
112#define CS_DATA_LCHAR 28
│ │ │ │ +
113#define CS_DATA_LBIN 29
│ │ │ │ +
114#define CS_DATA_INTN 30
│ │ │ │ +
115#define CS_DATA_DATETIMEN 31
│ │ │ │ +
116#define CS_DATA_MONEYN 32
│ │ │ │ +
117#define CS_CSR_PREV 33
│ │ │ │ +
118#define CS_CSR_FIRST 34
│ │ │ │ +
119#define CS_CSR_LAST 35
│ │ │ │ +
120#define CS_CSR_ABS 36
│ │ │ │ +
121#define CS_CSR_REL 37
│ │ │ │ +
122#define CS_CSR_MULTI 38
│ │ │ │ +
123#define CS_CON_OOB 39
│ │ │ │ +
124#define CS_CON_INBAND 40
│ │ │ │ +
125#define CS_CON_LOGICAL 41
│ │ │ │ +
126#define CS_PROTO_TEXT 42
│ │ │ │ +
127#define CS_PROTO_BULK 43
│ │ │ │ +
128#define CS_REQ_URGNOTIF 44
│ │ │ │ +
129#define CS_DATA_SENSITIVITY 45
│ │ │ │ +
130#define CS_DATA_BOUNDARY 46
│ │ │ │ +
131#define CS_PROTO_DYNAMIC 47
│ │ │ │ +
132#define CS_PROTO_DYNPROC 48
│ │ │ │ +
133#define CS_DATA_FLTN 49
│ │ │ │ +
134#define CS_DATA_BITN 50
│ │ │ │ +
135#define CS_OPTION_GET 51
│ │ │ │ +
136#define CS_DATA_INT8 52
│ │ │ │ +
137#define CS_DATA_VOID 53
│ │ │ │ +
138
│ │ │ │ +
139/* CS_CAP_RESPONSE values */
│ │ │ │ +
140#define CS_RES_NOMSG 1
│ │ │ │ +
141#define CS_RES_NOEED 2
│ │ │ │ +
142#define CS_RES_NOPARAM 3
│ │ │ │ +
143#define CS_DATA_NOINT1 4
│ │ │ │ +
144#define CS_DATA_NOINT2 5
│ │ │ │ +
145#define CS_DATA_NOINT4 6
│ │ │ │ +
146#define CS_DATA_NOBIT 7
│ │ │ │ +
147#define CS_DATA_NOCHAR 8
│ │ │ │ +
148#define CS_DATA_NOVCHAR 9
│ │ │ │ +
149#define CS_DATA_NOBIN 10
│ │ │ │ +
150#define CS_DATA_NOVBIN 11
│ │ │ │ +
151#define CS_DATA_NOMNY8 12
│ │ │ │ +
152#define CS_DATA_NOMNY4 13
│ │ │ │ +
153#define CS_DATA_NODATE8 14
│ │ │ │ +
154#define CS_DATA_NODATE4 15
│ │ │ │ +
155#define CS_DATA_NOFLT4 16
│ │ │ │ +
156#define CS_DATA_NOFLT8 17
│ │ │ │ +
157#define CS_DATA_NONUM 18
│ │ │ │ +
158#define CS_DATA_NOTEXT 19
│ │ │ │ +
159#define CS_DATA_NOIMAGE 20
│ │ │ │ +
160#define CS_DATA_NODEC 21
│ │ │ │ +
161#define CS_DATA_NOLCHAR 22
│ │ │ │ +
162#define CS_DATA_NOLBIN 23
│ │ │ │ +
163#define CS_DATA_NOINTN 24
│ │ │ │ +
164#define CS_DATA_NODATETIMEN 25
│ │ │ │ +
165#define CS_DATA_NOMONEYN 26
│ │ │ │ +
166#define CS_CON_NOOOB 27
│ │ │ │ +
167#define CS_CON_NOINBAND 28
│ │ │ │ +
168#define CS_PROTO_NOTEXT 29
│ │ │ │ +
169#define CS_PROTO_NOBULK 30
│ │ │ │ +
170#define CS_DATA_NOSENSITIVITY 31
│ │ │ │ +
171#define CS_DATA_NOBOUNDARY 32
│ │ │ │ +
172#define CS_RES_NOTDSDEBUG 33
│ │ │ │ +
173#define CS_RES_NOSTRIPBLANKS 34
│ │ │ │ +
174#define CS_DATA_NOINT8 35
│ │ │ │
175
│ │ │ │ -
176static const char rcsid_sqldb_h[] = "$Id: sqldb.h,v 1.6 2009-12-02 22:35:18 jklowden Exp $";
│ │ │ │ -
177static const void *const no_unused_sqldb_h_warn[] = { rcsid_sqldb_h, no_unused_sqldb_h_warn };
│ │ │ │ -
178
│ │ │ │ -
179
│ │ │ │ -
180#endif
│ │ │ │ -
Primary include file for db-lib applications.
│ │ │ │ +
176/* Properties */
│ │ │ │ +
177enum
│ │ │ │ +
178{
│ │ │ │ +
179/*
│ │ │ │ +
180 * These defines looks weird but programs can test support for defines,
│ │ │ │ +
181 * compiler can check enum and there are no define side effecs
│ │ │ │ +
182 */
│ │ │ │ +
183 CS_USERNAME = 9100,
│ │ │ │ +
184#define CS_USERNAME CS_USERNAME
│ │ │ │ +
185 CS_PASSWORD = 9101,
│ │ │ │ +
186#define CS_PASSWORD CS_PASSWORD
│ │ │ │ +
187 CS_APPNAME = 9102,
│ │ │ │ +
188#define CS_APPNAME CS_APPNAME
│ │ │ │ +
189 CS_HOSTNAME = 9103,
│ │ │ │ +
190#define CS_HOSTNAME CS_HOSTNAME
│ │ │ │ +
191 CS_LOGIN_STATUS = 9104,
│ │ │ │ +
192#define CS_LOGIN_STATUS CS_LOGIN_STATUS
│ │ │ │ +
193 CS_TDS_VERSION = 9105,
│ │ │ │ +
194#define CS_TDS_VERSION CS_TDS_VERSION
│ │ │ │ +
195 CS_CHARSETCNV = 9106,
│ │ │ │ +
196#define CS_CHARSETCNV CS_CHARSETCNV
│ │ │ │ +
197 CS_PACKETSIZE = 9107,
│ │ │ │ +
198#define CS_PACKETSIZE CS_PACKETSIZE
│ │ │ │ +
199 CS_USERDATA = 9108,
│ │ │ │ +
200#define CS_USERDATA CS_USERDATA
│ │ │ │ +
201 CS_NETIO = 9110,
│ │ │ │ +
202#define CS_NETIO CS_NETIO
│ │ │ │ +
203 CS_TEXTLIMIT = 9112,
│ │ │ │ +
204#define CS_TEXTLIMIT CS_TEXTLIMIT
│ │ │ │ +
205 CS_HIDDEN_KEYS = 9113,
│ │ │ │ +
206#define CS_HIDDEN_KEYS CS_HIDDEN_KEYS
│ │ │ │ +
207 CS_VERSION = 9114,
│ │ │ │ +
208#define CS_VERSION CS_VERSION
│ │ │ │ +
209 CS_IFILE = 9115,
│ │ │ │ +
210#define CS_IFILE CS_IFILE
│ │ │ │ +
211 CS_LOGIN_TIMEOUT = 9116,
│ │ │ │ +
212#define CS_LOGIN_TIMEOUT CS_LOGIN_TIMEOUT
│ │ │ │ +
213 CS_TIMEOUT = 9117,
│ │ │ │ +
214#define CS_TIMEOUT CS_TIMEOUT
│ │ │ │ +
215 CS_MAX_CONNECT = 9118,
│ │ │ │ +
216#define CS_MAX_CONNECT CS_MAX_CONNECT
│ │ │ │ +
217 CS_EXPOSE_FMTS = 9120,
│ │ │ │ +
218#define CS_EXPOSE_FMTS CS_EXPOSE_FMTS
│ │ │ │ +
219 CS_EXTRA_INF = 9121,
│ │ │ │ +
220#define CS_EXTRA_INF CS_EXTRA_INF
│ │ │ │ +
221 CS_ANSI_BINDS = 9123,
│ │ │ │ +
222#define CS_ANSI_BINDS CS_ANSI_BINDS
│ │ │ │ +
223 CS_BULK_LOGIN = 9124,
│ │ │ │ +
224#define CS_BULK_LOGIN CS_BULK_LOGIN
│ │ │ │ +
225 CS_LOC_PROP = 9125,
│ │ │ │ +
226#define CS_LOC_PROP CS_LOC_PROP
│ │ │ │ +
227 CS_PARENT_HANDLE = 9130,
│ │ │ │ +
228#define CS_PARENT_HANDLE CS_PARENT_HANDLE
│ │ │ │ +
229 CS_EED_CMD = 9131,
│ │ │ │ +
230#define CS_EED_CMD CS_EED_CMD
│ │ │ │ +
231 CS_DIAG_TIMEOUT = 9132,
│ │ │ │ +
232#define CS_DIAG_TIMEOUT CS_DIAG_TIMEOUT
│ │ │ │ +
233 CS_DISABLE_POLL = 9133,
│ │ │ │ +
234#define CS_DISABLE_POLL CS_DISABLE_POLL
│ │ │ │ +
235 CS_SEC_ENCRYPTION = 9135,
│ │ │ │ +
236#define CS_SEC_ENCRYPTION CS_SEC_ENCRYPTION
│ │ │ │ +
237 CS_SEC_CHALLENGE = 9136,
│ │ │ │ +
238#define CS_SEC_CHALLENGE CS_SEC_CHALLENGE
│ │ │ │ +
239 CS_SEC_NEGOTIATE = 9137,
│ │ │ │ +
240#define CS_SEC_NEGOTIATE CS_SEC_NEGOTIATE
│ │ │ │ +
241 CS_CON_STATUS = 9143,
│ │ │ │ +
242#define CS_CON_STATUS CS_CON_STATUS
│ │ │ │ +
243 CS_VER_STRING = 9144,
│ │ │ │ +
244#define CS_VER_STRING CS_VER_STRING
│ │ │ │ +
245 CS_SERVERNAME = 9146,
│ │ │ │ +
246#define CS_SERVERNAME CS_SERVERNAME
│ │ │ │ +
247 CS_SEC_APPDEFINED = 9149,
│ │ │ │ +
248#define CS_SEC_APPDEFINED CS_SEC_APPDEFINED
│ │ │ │ +
249 CS_STICKY_BINDS = 9151,
│ │ │ │ +
250#define CS_STICKY_BINDS CS_STICKY_BINDS
│ │ │ │ +
251 CS_SEC_NETWORKAUTH = 9175,
│ │ │ │ +
252#define CS_SEC_NETWORKAUTH CS_SEC_NETWORKAUTH
│ │ │ │ +
253 CS_SEC_DELEGATION = 9176,
│ │ │ │ +
254#define CS_SEC_DELEGATION CS_SEC_DELEGATION
│ │ │ │ +
255 CS_SEC_MUTUALAUTH = 9177,
│ │ │ │ +
256#define CS_SEC_MUTUALAUTH CS_SEC_MUTUALAUTH
│ │ │ │ +
257 CS_SEC_SERVERPRINCIPAL = 9188,
│ │ │ │ +
258#define CS_SEC_SERVERPRINCIPAL CS_SEC_SERVERPRINCIPAL
│ │ │ │ +
259 CS_SERVERADDR = 9206,
│ │ │ │ +
260#define CS_SERVERADDR CS_SERVERADDR
│ │ │ │ +
261 CS_PORT = 9300,
│ │ │ │ +
262#define CS_PORT CS_PORT
│ │ │ │ +
263 CS_CLIENTCHARSET = 9301,
│ │ │ │ +
264#define CS_CLIENTCHARSET CS_CLIENTCHARSET
│ │ │ │ +
265 CS_DATABASE = 9302
│ │ │ │ +
266#define CS_DATABASE CS_DATABASE
│ │ │ │ +
267};
│ │ │ │ +
268
│ │ │ │ +
269/* Arbitrary precision math operators */
│ │ │ │ +
270enum
│ │ │ │ +
271{
│ │ │ │ +
272 CS_ADD = 1,
│ │ │ │ +
273 CS_SUB,
│ │ │ │ +
274 CS_MULT,
│ │ │ │ +
275 CS_DIV
│ │ │ │ +
276};
│ │ │ │ +
277
│ │ │ │ +
278enum
│ │ │ │ +
279{
│ │ │ │ +
280#define CS_TDS_AUTO CS_TDS_AUTO
│ │ │ │ +
281 CS_TDS_AUTO = 0,
│ │ │ │ +
282 CS_TDS_40 = 7360,
│ │ │ │ +
283 CS_TDS_42,
│ │ │ │ +
284 CS_TDS_46,
│ │ │ │ +
285 CS_TDS_495,
│ │ │ │ +
286 CS_TDS_50,
│ │ │ │ +
287 CS_TDS_70,
│ │ │ │ +
288 CS_TDS_71,
│ │ │ │ +
289#define CS_TDS_71 CS_TDS_71
│ │ │ │ +
290 CS_TDS_72,
│ │ │ │ +
291#define CS_TDS_72 CS_TDS_72
│ │ │ │ +
292 CS_TDS_73,
│ │ │ │ +
293#define CS_TDS_73 CS_TDS_73
│ │ │ │ +
294 CS_TDS_74,
│ │ │ │ +
295#define CS_TDS_74 CS_TDS_74
│ │ │ │ +
296};
│ │ │ │ +
297
│ │ │ │ +
298/* bit mask values used by CS_DATAFMT.status */
│ │ │ │ +
299#define CS_HIDDEN (1 << 0)
│ │ │ │ +
300#define CS_KEY (1 << 1)
│ │ │ │ +
301#define CS_VERSION_KEY (1 << 2)
│ │ │ │ +
302#define CS_NODATA (1 << 3)
│ │ │ │ +
303#define CS_UPDATABLE (1 << 4)
│ │ │ │ +
304#define CS_CANBENULL (1 << 5)
│ │ │ │ +
305#define CS_DESCIN (1 << 6)
│ │ │ │ +
306#define CS_DESCOUT (1 << 7)
│ │ │ │ +
307#define CS_INPUTVALUE (1 << 8)
│ │ │ │ +
308#define CS_UPDATECOL (1 << 9)
│ │ │ │ +
309#define CS_RETURN (1 << 10)
│ │ │ │ +
310#define CS_TIMESTAMP (1 << 13)
│ │ │ │ +
311#define CS_NODEFAULT (1 << 14)
│ │ │ │ +
312#define CS_IDENTITY (1 << 15)
│ │ │ │ +
313
│ │ │ │ +
314/*
│ │ │ │ +
315 * DBD::Sybase compares indicator to CS_NULLDATA so this is -1
│ │ │ │ +
316 * (the documentation states -1)
│ │ │ │ +
317 */
│ │ │ │ +
318#define CS_GOODDATA 0
│ │ │ │ +
319#define CS_NULLDATA (-1)
│ │ │ │ +
320
│ │ │ │ +
321/* CS_CON_STATUS read-only property bit mask values */
│ │ │ │ +
322#define CS_CONSTAT_CONNECTED 0x01
│ │ │ │ +
323#define CS_CONSTAT_DEAD 0x02
│ │ │ │ +
324
│ │ │ │ +
325/*
│ │ │ │ +
326 * Code added for CURSOR support
│ │ │ │ +
327 * types accepted by ct_cursor
│ │ │ │ +
328 */
│ │ │ │ +
329#define CS_CURSOR_DECLARE 700
│ │ │ │ +
330#define CS_CURSOR_OPEN 701
│ │ │ │ +
331#define CS_CURSOR_ROWS 703
│ │ │ │ +
332#define CS_CURSOR_UPDATE 704
│ │ │ │ +
333#define CS_CURSOR_DELETE 705
│ │ │ │ +
334#define CS_CURSOR_CLOSE 706
│ │ │ │ +
335#define CS_CURSOR_DEALLOC 707
│ │ │ │ +
336#define CS_CURSOR_OPTION 725
│ │ │ │ +
337
│ │ │ │ +
338#define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1)
│ │ │ │ +
339#define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2)
│ │ │ │ +
340#define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8)
│ │ │ │ +
341#define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40)
│ │ │ │ +
342
│ │ │ │ +
343
│ │ │ │ +
344#define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0)
│ │ │ │ +
345#define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1)
│ │ │ │ +
346#define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2)
│ │ │ │ +
347#define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4)
│ │ │ │ +
348#define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8)
│ │ │ │ +
349#define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10)
│ │ │ │ +
350#define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20)
│ │ │ │ +
351#define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40)
│ │ │ │ +
352
│ │ │ │ +
353#define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126)
│ │ │ │ +
354#define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127)
│ │ │ │ +
355#define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128)
│ │ │ │ +
356#define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129)
│ │ │ │ +
357
│ │ │ │ +
358/* options accepted by ct_options() */
│ │ │ │ +
359#define CS_OPT_DATEFIRST 5001
│ │ │ │ +
360#define CS_OPT_TEXTSIZE 5002
│ │ │ │ +
361#define CS_OPT_STATS_TIME 5003
│ │ │ │ +
362#define CS_OPT_STATS_IO 5004
│ │ │ │ +
363#define CS_OPT_ROWCOUNT 5005
│ │ │ │ +
364#define CS_OPT_DATEFORMAT 5007
│ │ │ │ +
365#define CS_OPT_ISOLATION 5008
│ │ │ │ +
366#define CS_OPT_AUTHON 5009
│ │ │ │ +
367#define CS_OPT_SHOWPLAN 5013
│ │ │ │ +
368#define CS_OPT_NOEXEC 5014
│ │ │ │ +
369#define CS_OPT_ARITHIGNORE 5015
│ │ │ │ +
370#define CS_OPT_TRUNCIGNORE 5016
│ │ │ │ +
371#define CS_OPT_ARITHABORT 5017
│ │ │ │ +
372#define CS_OPT_PARSEONLY 5018
│ │ │ │ +
373#define CS_OPT_GETDATA 5020
│ │ │ │ +
374#define CS_OPT_NOCOUNT 5021
│ │ │ │ +
375#define CS_OPT_FORCEPLAN 5023
│ │ │ │ +
376#define CS_OPT_FORMATONLY 5024
│ │ │ │ +
377#define CS_OPT_CHAINXACTS 5025
│ │ │ │ +
378#define CS_OPT_CURCLOSEONXACT 5026
│ │ │ │ +
379#define CS_OPT_FIPSFLAG 5027
│ │ │ │ +
380#define CS_OPT_RESTREES 5028
│ │ │ │ +
381#define CS_OPT_IDENTITYON 5029
│ │ │ │ +
382#define CS_OPT_CURREAD 5030
│ │ │ │ +
383#define CS_OPT_CURWRITE 5031
│ │ │ │ +
384#define CS_OPT_IDENTITYOFF 5032
│ │ │ │ +
385#define CS_OPT_AUTHOFF 5033
│ │ │ │ +
386#define CS_OPT_ANSINULL 5034
│ │ │ │ +
387#define CS_OPT_QUOTED_IDENT 5035
│ │ │ │ +
388#define CS_OPT_ANSIPERM 5036
│ │ │ │ +
389#define CS_OPT_STR_RTRUNC 5037
│ │ │ │ +
390
│ │ │ │ +
391/* options accepted by ct_command() */
│ │ │ │ +
392enum ct_command_options
│ │ │ │ +
393{
│ │ │ │ +
394 CS_MORE = 16,
│ │ │ │ +
395 CS_END = 32,
│ │ │ │ +
396 CS_RECOMPILE = 188,
│ │ │ │ +
397 CS_NO_RECOMPILE,
│ │ │ │ +
398 CS_BULK_INIT,
│ │ │ │ +
399 CS_BULK_CONT,
│ │ │ │ +
400 CS_BULK_DATA,
│ │ │ │ +
401 CS_COLUMN_DATA
│ │ │ │ +
402};
│ │ │ │ +
403
│ │ │ │ +
404
│ │ │ │ +
405/*
│ │ │ │ +
406 * bind formats, should be mapped to TDS types
│ │ │ │ +
407 * can be a combination of bit
│ │ │ │ +
408 */
│ │ │ │ +
409enum
│ │ │ │ +
410{
│ │ │ │ +
411 CS_FMT_UNUSED = 0,
│ │ │ │ +
412#define CS_FMT_UNUSED CS_FMT_UNUSED
│ │ │ │ +
413 CS_FMT_NULLTERM = 1,
│ │ │ │ +
414#define CS_FMT_NULLTERM CS_FMT_NULLTERM
│ │ │ │ +
415 CS_FMT_PADNULL = 2,
│ │ │ │ +
416#define CS_FMT_PADBLANK CS_FMT_PADBLANK
│ │ │ │ +
417 CS_FMT_PADBLANK = 4,
│ │ │ │ +
418#define CS_FMT_PADNULL CS_FMT_PADNULL
│ │ │ │ +
419 CS_FMT_JUSTIFY_RT = 8
│ │ │ │ +
420#define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT
│ │ │ │ +
421};
│ │ │ │ +
422
│ │ │ │ +
423/* callbacks */
│ │ │ │ +
424#define CS_COMPLETION_CB 1
│ │ │ │ +
425#define CS_SERVERMSG_CB 2
│ │ │ │ +
426#define CS_CLIENTMSG_CB 3
│ │ │ │ +
427#define CS_NOTIF_CB 4
│ │ │ │ +
428#define CS_ENCRYPT_CB 5
│ │ │ │ +
429#define CS_CHALLENGE_CB 6
│ │ │ │ +
430#define CS_DS_LOOKUP_CB 7
│ │ │ │ +
431#define CS_SECSESSION_CB 8
│ │ │ │ +
432#define CS_SIGNAL_CB 100
│ │ │ │ +
433#define CS_MESSAGE_CB 9119
│ │ │ │ +
434
│ │ │ │ +
435/* string types */
│ │ │ │ +
436#define CS_NULLTERM -9
│ │ │ │ +
437#define CS_WILDCARD -99
│ │ │ │ +
438#define CS_NO_LIMIT -9999
│ │ │ │ +
439#define CS_UNUSED -99999
│ │ │ │ +
440
│ │ │ │ +
441/* other */
│ │ │ │ +
442#define CS_GET 33
│ │ │ │ +
443#define CS_SET 34
│ │ │ │ +
444#define CS_CLEAR 35
│ │ │ │ +
445#define CS_INIT 36
│ │ │ │ +
446#define CS_STATUS 37
│ │ │ │ +
447#define CS_MSGLIMIT 38
│ │ │ │ +
448#define CS_SUPPORTED 40
│ │ │ │ +
449
│ │ │ │ +
450#define CS_CMD_DONE 4046
│ │ │ │ +
451#define CS_CMD_SUCCEED 4047
│ │ │ │ +
452#define CS_CMD_FAIL 4048
│ │ │ │ +
453
│ │ │ │ +
454/* commands */
│ │ │ │ +
455#define CS_LANG_CMD 148
│ │ │ │ +
456#define CS_RPC_CMD 149
│ │ │ │ +
457#define CS_SEND_DATA_CMD 151
│ │ │ │ +
458#define CS_SEND_BULK_CMD 153
│ │ │ │ +
459
│ │ │ │ +
460#define CS_VERSION_100 112
│ │ │ │ +
461#define CS_VERSION_110 1100
│ │ │ │ +
462#define CS_VERSION_120 1100
│ │ │ │ +
463#define CS_VERSION_125 12500
│ │ │ │ +
464#define CS_VERSION_150 15000
│ │ │ │ +
465
│ │ │ │ +
466#define BLK_VERSION_100 CS_VERSION_100
│ │ │ │ +
467#define BLK_VERSION_110 CS_VERSION_110
│ │ │ │ +
468#define BLK_VERSION_120 CS_VERSION_120
│ │ │ │ +
469#define BLK_VERSION_125 CS_VERSION_125
│ │ │ │ +
470#define BLK_VERSION_150 CS_VERSION_150
│ │ │ │ +
471
│ │ │ │ +
472#define CS_FORCE_EXIT 300
│ │ │ │ +
473#define CS_FORCE_CLOSE 301
│ │ │ │ +
474
│ │ │ │ +
475#define CS_SYNC_IO 8111
│ │ │ │ +
476#define CS_ASYNC_IO 8112
│ │ │ │ +
477#define CS_DEFER_IO 8113
│ │ │ │ +
478
│ │ │ │ +
479#define CS_CANCEL_CURRENT 6000
│ │ │ │ +
480#define CS_CANCEL_ALL 6001
│ │ │ │ +
481#define CS_CANCEL_ATTN 6002
│ │ │ │ +
482
│ │ │ │ +
483#define CS_ROW_COUNT 800
│ │ │ │ +
484#define CS_CMD_NUMBER 801
│ │ │ │ +
485#define CS_NUM_COMPUTES 802
│ │ │ │ +
486#define CS_NUMDATA 803
│ │ │ │ +
487#define CS_NUMORDERCOLS 805
│ │ │ │ +
488#define CS_MSGTYPE 806
│ │ │ │ +
489#define CS_BROWSE_INFO 807
│ │ │ │ +
490#define CS_TRANS_STATE 808
│ │ │ │ +
491
│ │ │ │ +
492#define CS_TRAN_UNDEFINED 0
│ │ │ │ +
493#define CS_TRAN_IN_PROGRESS 1
│ │ │ │ +
494#define CS_TRAN_COMPLETED 2
│ │ │ │ +
495#define CS_TRAN_FAIL 3
│ │ │ │ +
496#define CS_TRAN_STMT_FAIL 4
│ │ │ │ +
497
│ │ │ │ +
498#define CS_COMP_OP 5350
│ │ │ │ +
499#define CS_COMP_ID 5351
│ │ │ │ +
500#define CS_COMP_COLID 5352
│ │ │ │ +
501#define CS_COMP_BYLIST 5353
│ │ │ │ +
502#define CS_BYLIST_LEN 5354
│ │ │ │ +
503
│ │ │ │ +
504#define CS_NO_COUNT -1
│ │ │ │ +
505
│ │ │ │ +
506#define CS_OP_SUM 5370
│ │ │ │ +
507#define CS_OP_AVG 5371
│ │ │ │ +
508#define CS_OP_COUNT 5372
│ │ │ │ +
509#define CS_OP_MIN 5373
│ │ │ │ +
510#define CS_OP_MAX 5374
│ │ │ │ +
511
│ │ │ │ +
512#define CS_CAP_REQUEST 1
│ │ │ │ +
513#define CS_CAP_RESPONSE 2
│ │ │ │ +
514
│ │ │ │ +
515#define CS_PREPARE 717
│ │ │ │ +
516#define CS_EXECUTE 718
│ │ │ │ +
517#define CS_DESCRIBE_INPUT 720
│ │ │ │ +
518#define CS_DESCRIBE_OUTPUT 721
│ │ │ │ +
519
│ │ │ │ +
520#define CS_DEALLOC 711
│ │ │ │ +
521
│ │ │ │ +
522#define CS_LC_ALL 7
│ │ │ │ +
523#define CS_SYB_LANG 8
│ │ │ │ +
524#define CS_SYB_CHARSET 9
│ │ │ │ +
525#define CS_SYB_SORTORDER 10
│ │ │ │ +
526#define CS_SYB_COLLATE CS_SYB_SORTORDER
│ │ │ │ +
527#define CS_SYB_LANG_CHARSET 11
│ │ │ │ +
528
│ │ │ │ +
529#define CS_BLK_IN 1
│ │ │ │ +
530#define CS_BLK_OUT 2
│ │ │ │ +
531
│ │ │ │ +
532#define CS_BLK_BATCH 1
│ │ │ │ +
533#define CS_BLK_ALL 2
│ │ │ │ +
534#define CS_BLK_CANCEL 3
│ │ │ │ +
535
│ │ │ │ +
536/* to do support these */
│ │ │ │ +
537
│ │ │ │ +
538#define CS_BLK_ARRAY_MAXLEN 0x1000
│ │ │ │ +
539#define CS_DEF_PREC 18
│ │ │ │ +
540
│ │ │ │ +
541/* Error Severities */
│ │ │ │ +
542#define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0)
│ │ │ │ +
543#define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1)
│ │ │ │ +
544#define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2)
│ │ │ │ +
545#define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3)
│ │ │ │ +
546#define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4)
│ │ │ │ +
547#define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5)
│ │ │ │ +
548#define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6)
│ │ │ │ +
549#define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7)
│ │ │ │ +
550
│ │ │ │ +
551/* result_types */
│ │ │ │ +
552#define CS_COMPUTE_RESULT 4045
│ │ │ │ +
553#define CS_CURSOR_RESULT 4041
│ │ │ │ +
554#define CS_PARAM_RESULT 4042
│ │ │ │ +
555#define CS_ROW_RESULT 4040
│ │ │ │ +
556#define CS_STATUS_RESULT 4043
│ │ │ │ +
557#define CS_COMPUTEFMT_RESULT 4050
│ │ │ │ +
558#define CS_ROWFMT_RESULT 4049
│ │ │ │ +
559#define CS_MSG_RESULT 4044
│ │ │ │ +
560#define CS_DESCRIBE_RESULT 4051
│ │ │ │ +
561
│ │ │ │ +
562/* bind types */
│ │ │ │ +
563#define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1)
│ │ │ │ +
564#define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0)
│ │ │ │ +
565#define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1)
│ │ │ │ +
566#define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2)
│ │ │ │ +
567#define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3)
│ │ │ │ +
568#define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4)
│ │ │ │ +
569#define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5)
│ │ │ │ +
570#define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6)
│ │ │ │ +
571#define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7)
│ │ │ │ +
572#define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8)
│ │ │ │ +
573#define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9)
│ │ │ │ +
574#define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10)
│ │ │ │ +
575#define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11)
│ │ │ │ +
576#define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12)
│ │ │ │ +
577#define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13)
│ │ │ │ +
578#define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14)
│ │ │ │ +
579#define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15)
│ │ │ │ +
580#define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16)
│ │ │ │ +
581#define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17)
│ │ │ │ +
582#define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18)
│ │ │ │ +
583#define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19)
│ │ │ │ +
584#define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20)
│ │ │ │ +
585#define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21)
│ │ │ │ +
586#define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22)
│ │ │ │ +
587#define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23)
│ │ │ │ +
588#define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24)
│ │ │ │ +
589#define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25)
│ │ │ │ +
590#define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26)
│ │ │ │ +
591#define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27)
│ │ │ │ +
592#define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28)
│ │ │ │ +
593#define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29)
│ │ │ │ +
594#define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30)
│ │ │ │ +
595#define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31)
│ │ │ │ +
596#define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32)
│ │ │ │ +
597#define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33)
│ │ │ │ +
598#define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34)
│ │ │ │ +
599#define CS_BIGDATETIME_TYPE TDS_STATIC_CAST(CS_INT, 35)
│ │ │ │ +
600#define CS_BIGTIME_TYPE TDS_STATIC_CAST(CS_INT, 36)
│ │ │ │ +
601#define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40)
│ │ │ │ +
602
│ │ │ │ +
603#define CS_MIN_SYBTYPE CS_CHAR_TYPE
│ │ │ │ +
604#define CS_MAX_SYBTYPE CS_UNIQUE_TYPE
│ │ │ │ +
605
│ │ │ │ +
606#define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100)
│ │ │ │ +
607/* cs_dt_info type values */
│ │ │ │ +
608enum
│ │ │ │ +
609{
│ │ │ │ +
610 CS_MONTH = 7340,
│ │ │ │ +
611#define CS_MONTH CS_MONTH
│ │ │ │ +
612 CS_SHORTMONTH,
│ │ │ │ +
613#define CS_SHORTMONTH CS_SHORTMONTH
│ │ │ │ +
614 CS_DAYNAME,
│ │ │ │ +
615#define CS_DAYNAME CS_DAYNAME
│ │ │ │ +
616 CS_DATEORDER,
│ │ │ │ +
617#define CS_DATEORDER CS_DATEORDER
│ │ │ │ +
618 CS_12HOUR,
│ │ │ │ +
619#define CS_12HOUR CS_12HOUR
│ │ │ │ +
620 CS_DT_CONVFMT
│ │ │ │ +
621#define CS_DT_CONVFMT CS_DT_CONVFMT
│ │ │ │ +
622};
│ │ │ │ +
623
│ │ │ │ +
624/* DT_CONVFMT types */
│ │ │ │ +
625enum
│ │ │ │ +
626{
│ │ │ │ +
627 CS_DATES_SHORT = 0,
│ │ │ │ +
628#define CS_DATES_SHORT CS_DATES_SHORT
│ │ │ │ +
629 CS_DATES_MDY1,
│ │ │ │ +
630#define CS_DATES_MDY1 CS_DATES_MDY1
│ │ │ │ +
631 CS_DATES_YMD1,
│ │ │ │ +
632#define CS_DATES_YMD1 CS_DATES_YMD1
│ │ │ │ +
633 CS_DATES_DMY1,
│ │ │ │ +
634#define CS_DATES_DMY1 CS_DATES_DMY1
│ │ │ │ +
635 CS_DATES_DMY2,
│ │ │ │ +
636#define CS_DATES_DMY2 CS_DATES_DMY2
│ │ │ │ +
637 CS_DATES_DMY3,
│ │ │ │ +
638#define CS_DATES_DMY3 CS_DATES_DMY3
│ │ │ │ +
639 CS_DATES_DMY4,
│ │ │ │ +
640#define CS_DATES_DMY4 CS_DATES_DMY4
│ │ │ │ +
641 CS_DATES_MDY2,
│ │ │ │ +
642#define CS_DATES_MDY2 CS_DATES_MDY2
│ │ │ │ +
643 CS_DATES_HMS,
│ │ │ │ +
644#define CS_DATES_HMS CS_DATES_HMS
│ │ │ │ +
645 CS_DATES_LONG,
│ │ │ │ +
646#define CS_DATES_LONG CS_DATES_LONG
│ │ │ │ +
647 CS_DATES_MDY3,
│ │ │ │ +
648#define CS_DATES_MDY3 CS_DATES_MDY3
│ │ │ │ +
649 CS_DATES_YMD2,
│ │ │ │ +
650#define CS_DATES_YMD2 CS_DATES_YMD2
│ │ │ │ +
651 CS_DATES_YMD3,
│ │ │ │ +
652#define CS_DATES_YMD3 CS_DATES_YMD3
│ │ │ │ +
653 CS_DATES_YDM1,
│ │ │ │ +
654#define CS_DATES_YDM1 CS_DATES_YDM1
│ │ │ │ +
655 CS_DATES_MYD1,
│ │ │ │ +
656#define CS_DATES_MYD1 CS_DATES_MYD1
│ │ │ │ +
657 CS_DATES_DYM1,
│ │ │ │ +
658#define CS_DATES_DYM1 CS_DATES_DYM1
│ │ │ │ +
659 CS_DATES_MDY1_YYYY = 101,
│ │ │ │ +
660#define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY
│ │ │ │ +
661 CS_DATES_YMD1_YYYY,
│ │ │ │ +
662#define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY
│ │ │ │ +
663 CS_DATES_DMY1_YYYY,
│ │ │ │ +
664#define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY
│ │ │ │ +
665 CS_DATES_DMY2_YYYY,
│ │ │ │ +
666#define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY
│ │ │ │ +
667 CS_DATES_DMY3_YYYY,
│ │ │ │ +
668#define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY
│ │ │ │ +
669 CS_DATES_DMY4_YYYY,
│ │ │ │ +
670#define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY
│ │ │ │ +
671 CS_DATES_MDY2_YYYY,
│ │ │ │ +
672#define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY
│ │ │ │ +
673 CS_DATES_MDY3_YYYY = 110,
│ │ │ │ +
674#define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY
│ │ │ │ +
675 CS_DATES_YMD2_YYYY,
│ │ │ │ +
676#define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY
│ │ │ │ +
677 CS_DATES_YMD3_YYYY
│ │ │ │ +
678#define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY
│ │ │ │ +
679};
│ │ │ │ +
680
│ │ │ │ +
681typedef CS_RETCODE(*CS_CONV_FUNC) (CS_CONTEXT * context, CS_DATAFMT * srcfmt, CS_VOID * src, CS_DATAFMT * detsfmt, CS_VOID * dest,
│ │ │ │ +
682 CS_INT * destlen);
│ │ │ │ +
683
│ │ │ │ +
│ │ │ │ +
684typedef struct _cs_objname
│ │ │ │ +
685{
│ │ │ │ +
686 CS_BOOL thinkexists;
│ │ │ │ +
687 CS_INT object_type;
│ │ │ │ +
688 CS_CHAR last_name[CS_MAX_NAME];
│ │ │ │ +
689 CS_INT lnlen;
│ │ │ │ +
690 CS_CHAR first_name[CS_MAX_NAME];
│ │ │ │ +
691 CS_INT fnlen;
│ │ │ │ +
692 CS_VOID *scope;
│ │ │ │ +
693 CS_INT scopelen;
│ │ │ │ +
694 CS_VOID *thread;
│ │ │ │ +
695 CS_INT threadlen;
│ │ │ │ +
696} CS_OBJNAME;
│ │ │ │ +
│ │ │ │ +
697
│ │ │ │ +
│ │ │ │ +
698typedef struct _cs_objdata
│ │ │ │ +
699{
│ │ │ │ +
700 CS_BOOL actuallyexists;
│ │ │ │ +
701 CS_CONNECTION *connection;
│ │ │ │ +
702 CS_COMMAND *command;
│ │ │ │ +
703 CS_VOID *buffer;
│ │ │ │ +
704 CS_INT buflen;
│ │ │ │ +
705} CS_OBJDATA;
│ │ │ │ +
│ │ │ │ +
706
│ │ │ │ +
707/* Eventually, these should be in terms of TDS values */
│ │ │ │ +
708enum
│ │ │ │ +
709{
│ │ │ │ +
710 CS_OPT_MONDAY = 1,
│ │ │ │ +
711 CS_OPT_TUESDAY,
│ │ │ │ +
712 CS_OPT_WEDNESDAY,
│ │ │ │ +
713 CS_OPT_THURSDAY,
│ │ │ │ +
714 CS_OPT_FRIDAY,
│ │ │ │ +
715 CS_OPT_SATURDAY,
│ │ │ │ +
716 CS_OPT_SUNDAY
│ │ │ │ +
717};
│ │ │ │ +
718enum
│ │ │ │ +
719{
│ │ │ │ +
720 CS_OPT_FMTMDY = 1,
│ │ │ │ +
721 CS_OPT_FMTDMY,
│ │ │ │ +
722 CS_OPT_FMTYMD,
│ │ │ │ +
723 CS_OPT_FMTYDM,
│ │ │ │ +
724 CS_OPT_FMTMYD,
│ │ │ │ +
725 CS_OPT_FMTDYM
│ │ │ │ +
726};
│ │ │ │ +
727enum
│ │ │ │ +
728{
│ │ │ │ +
729 CS_OPT_LEVEL0 = 0,
│ │ │ │ +
730 CS_OPT_LEVEL1,
│ │ │ │ +
731 CS_OPT_LEVEL2,
│ │ │ │ +
732 CS_OPT_LEVEL3
│ │ │ │ +
733};
│ │ │ │ +
734
│ │ │ │ +
735#define CS_FALSE 0
│ │ │ │ +
736#define CS_TRUE 1
│ │ │ │ +
737
│ │ │ │ +
738#define SRV_PROC CS_VOID
│ │ │ │ +
739
│ │ │ │ +
740/* constants required for ct_diag (not jet implemented) */
│ │ │ │ +
741#define CS_CLIENTMSG_TYPE 4700
│ │ │ │ +
742#define CS_SERVERMSG_TYPE 4701
│ │ │ │ +
743#define CS_ALLMSG_TYPE 4702
│ │ │ │ +
744
│ │ │ │ +
745CS_RETCODE cs_convert(CS_CONTEXT * ctx, CS_DATAFMT * srcfmt, CS_VOID * srcdata, CS_DATAFMT * destfmt, CS_VOID * destdata,
│ │ │ │ +
746 CS_INT * resultlen);
│ │ │ │ +
747CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT ** ctx);
│ │ │ │ +
748CS_RETCODE cs_ctx_global(CS_INT version, CS_CONTEXT ** ctx);
│ │ │ │ +
749CS_RETCODE cs_ctx_drop(CS_CONTEXT * ctx);
│ │ │ │ +
750CS_RETCODE cs_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
751CS_RETCODE cs_strbuild(CS_CONTEXT * ctx, CS_CHAR * buffer, CS_INT buflen, CS_INT * resultlen, CS_CHAR * text, CS_INT textlen,
│ │ │ │ +
752 CS_CHAR * formats, CS_INT formatlen, ...);
│ │ │ │ +
753#undef cs_dt_crack
│ │ │ │ +
754CS_RETCODE cs_dt_crack(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
│ │ │ │ +
755CS_RETCODE cs_dt_crack_v2(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
│ │ │ │ +
756#define cs_dt_crack cs_dt_crack_v2
│ │ │ │ +
757CS_RETCODE cs_loc_alloc(CS_CONTEXT * ctx, CS_LOCALE ** locptr);
│ │ │ │ +
758CS_RETCODE cs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale);
│ │ │ │ +
759CS_RETCODE cs_locale(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_VOID * buffer, CS_INT buflen,
│ │ │ │ +
760 CS_INT * outlen);
│ │ │ │ +
761CS_RETCODE cs_dt_info(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_INT item, CS_VOID * buffer,
│ │ │ │ +
762 CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
763
│ │ │ │ +
764CS_RETCODE cs_calc(CS_CONTEXT * ctx, CS_INT op, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_VOID * dest);
│ │ │ │ +
765CS_RETCODE cs_cmp(CS_CONTEXT * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_INT * result);
│ │ │ │ +
766CS_RETCODE cs_conv_mult(CS_CONTEXT * ctx, CS_LOCALE * srcloc, CS_LOCALE * destloc, CS_INT * conv_multiplier);
│ │ │ │ +
767CS_RETCODE cs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
│ │ │ │ +
768CS_RETCODE cs_manage_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype,
│ │ │ │ +
769 CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, CS_CONV_FUNC * func);
│ │ │ │ +
770CS_RETCODE cs_objects(CS_CONTEXT * ctx, CS_INT action, CS_OBJNAME * objname, CS_OBJDATA * objdata);
│ │ │ │ +
771CS_RETCODE cs_set_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_INT desttype, CS_CONV_FUNC * func);
│ │ │ │ +
772CS_RETCODE cs_setnull(CS_CONTEXT * ctx, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT buflen);
│ │ │ │ +
773CS_RETCODE cs_strcmp(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_INT type, CS_CHAR * str1, CS_INT len1, CS_CHAR * str2, CS_INT len2,
│ │ │ │ +
774 CS_INT * result);
│ │ │ │ +
775CS_RETCODE cs_time(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen, CS_DATEREC * daterec);
│ │ │ │ +
776CS_RETCODE cs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result);
│ │ │ │ +
777
│ │ │ │ +
778const char * cs_prretcode(int retcode);
│ │ │ │ +
779
│ │ │ │ +
780#ifdef __cplusplus
│ │ │ │ +
781#if 0
│ │ │ │ +
782{
│ │ │ │ +
783#endif
│ │ │ │ +
784}
│ │ │ │ +
785#endif
│ │ │ │ +
786
│ │ │ │ +
787#endif
│ │ │ │ +
Definition cspublic.h:685
│ │ │ │ +
Definition cspublic.h:699
│ │ │ │ +
Definition cstypes.h:114
│ │ │ │ +
Definition cstypes.h:159
│ │ │ │ +
Definition cstypes.h:177
│ │ │ │ +
Definition cstypes.h:191
│ │ │ │ +
Definition ctlib.h:75
│ │ │ │ +
Definition ctlib.h:117
│ │ │ │ +
Definition ctlib.h:212
│ │ │ │ +
Definition ctlib.h:239
│ │ │ │ +
Definition ctlib.h:248
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -sqldb.h │ │ │ │ │ +cspublic.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,174 +19,821 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef SQLDB_h │ │ │ │ │ -21#define SQLDB_h │ │ │ │ │ +20#ifndef _cspublic_h_ │ │ │ │ │ +21#define _cspublic_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include "_._/_s_y_b_d_b_._h" │ │ │ │ │ +23#include │ │ │ │ │ 24 │ │ │ │ │ -25#define SQLCHAR SYBCHAR │ │ │ │ │ -26#define SQLVARCHAR SYBVARCHAR │ │ │ │ │ -27#define SQLINTN SYBINTN │ │ │ │ │ -28#define SQLINT1 SYBINT1 │ │ │ │ │ -29#define SQLINT2 SYBINT2 │ │ │ │ │ -30#define SQLINT4 SYBINT4 │ │ │ │ │ -31#define SQLINT8 SYBINT8 │ │ │ │ │ -32#define SQLFLT8 SYBFLT8 │ │ │ │ │ -33#define SQLDATETIME SYBDATETIME │ │ │ │ │ -34#define SQLBIT SYBBIT │ │ │ │ │ -35#define SQLTEXT SYBTEXT │ │ │ │ │ -36#define SQLIMAGE SYBIMAGE │ │ │ │ │ -37#define SQLMONEY4 SYBMONEY4 │ │ │ │ │ -38#define SQLMONEY SYBMONEY │ │ │ │ │ -39#define SQLDATETIM4 SYBDATETIME4 │ │ │ │ │ -40#define SQLFLT4 SYBREAL │ │ │ │ │ -41#define SQLBINARY SYBBINARY │ │ │ │ │ -42#define SQLVARBINARY SYBVARBINARY │ │ │ │ │ -43#define SQLNUMERIC SYBNUMERIC │ │ │ │ │ -44#define SQLDECIMAL SYBDECIMAL │ │ │ │ │ -45#define SQLFLTN SYBFLTN │ │ │ │ │ -46#define SQLMONEYN SYBMONEYN │ │ │ │ │ -47#define SQLDATETIMN SYBDATETIMN │ │ │ │ │ -48#define SQLVOID SYBVOID │ │ │ │ │ -49 │ │ │ │ │ -50#define SMALLDATETIBIND SMALLDATETIMEBIND │ │ │ │ │ -51 │ │ │ │ │ -52#define DBERRHANDLE_PROC EHANDLEFUNC │ │ │ │ │ -53#define DBMSGHANDLE_PROC MHANDLEFUNC │ │ │ │ │ -54 │ │ │ │ │ -55/* DB-Library errors as defined by Microsoft */ │ │ │ │ │ -56#define SQLEMEM SYBEMEM │ │ │ │ │ -57#define SQLENULL SYBENULL │ │ │ │ │ -58#define SQLENLOG SYBENLOG │ │ │ │ │ -59#define SQLEPWD SYBEPWD │ │ │ │ │ -60#define SQLECONN SYBECONN │ │ │ │ │ -61#define SQLEDDNE SYBEDDNE │ │ │ │ │ -62#define SQLENULLO SYBENULLO │ │ │ │ │ -63#define SQLESMSG SYBESMSG │ │ │ │ │ -64#define SQLEBTOK SYBEBTOK │ │ │ │ │ -65#define SQLENSPE SYBENSPE │ │ │ │ │ -66#define SQLEREAD SYBEREAD │ │ │ │ │ -67#define SQLECNOR SYBECNOR │ │ │ │ │ -68#define SQLETSIT SYBETSIT │ │ │ │ │ -69#define SQLEPARM SYBEPARM │ │ │ │ │ -70#define SQLEAUTN SYBEAUTN │ │ │ │ │ -71#define SQLECOFL SYBECOFL │ │ │ │ │ -72#define SQLERDCN SYBERDCN │ │ │ │ │ -73#define SQLEICN SYBEICN │ │ │ │ │ -74#define SQLECLOS SYBECLOS │ │ │ │ │ -75#define SQLENTXT SYBENTXT │ │ │ │ │ -76#define SQLEDNTI SYBEDNTI │ │ │ │ │ -77#define SQLETMTD SYBETMTD │ │ │ │ │ -78#define SQLEASEC SYBEASEC │ │ │ │ │ -79#define SQLENTLL SYBENTLL │ │ │ │ │ -80#define SQLETIME SYBETIME │ │ │ │ │ -81#define SQLEWRIT SYBEWRIT │ │ │ │ │ -82#define SQLEMODE SYBEMODE │ │ │ │ │ -83#define SQLEOOB SYBEOOB │ │ │ │ │ -84#define SQLEITIM SYBEITIM │ │ │ │ │ -85#define SQLEDBPS SYBEDBPS │ │ │ │ │ -86#define SQLEIOPT SYBEIOPT │ │ │ │ │ -87#define SQLEASNL SYBEASNL │ │ │ │ │ -88#define SQLEASUL SYBEASUL │ │ │ │ │ -89#define SQLENPRM SYBENPRM │ │ │ │ │ -90#define SQLEDBOP SYBEDBOP │ │ │ │ │ -91#define SQLENSIP SYBENSIP │ │ │ │ │ -92#define SQLECNULL SYBECNULL │ │ │ │ │ -93#define SQLESEOF SYBESEOF │ │ │ │ │ -94#define SQLERPND SYBERPND │ │ │ │ │ -95#define SQLECSYN SYBECSYN │ │ │ │ │ -96#define SQLENONET SYBENONET │ │ │ │ │ -97#define SQLEBTYP SYBEBTYP │ │ │ │ │ -98#define SQLEABNC SYBEABNC │ │ │ │ │ -99#define SQLEABMT SYBEABMT │ │ │ │ │ -100#define SQLEABNP SYBEABNP │ │ │ │ │ -101#define SQLEBNCR SYBEBNCR │ │ │ │ │ -102#define SQLEAAMT SYBEAAMT │ │ │ │ │ -103#define SQLENXID SYBENXID │ │ │ │ │ -104#define SQLEIFNB SYBEIFNB │ │ │ │ │ -105#define SQLEKBCO SYBEKBCO │ │ │ │ │ -106#define SQLEBBCI SYBEBBCI │ │ │ │ │ -107#define SQLEKBCI SYBEKBCI │ │ │ │ │ -108#define SQLEBCWE SYBEBCWE │ │ │ │ │ -109#define SQLEBCNN SYBEBCNN │ │ │ │ │ -110#define SQLEBCOR SYBEBCOR │ │ │ │ │ -111#define SQLEBCPI SYBEBCPI │ │ │ │ │ -112#define SQLEBCPN SYBEBCPN │ │ │ │ │ -113#define SQLEBCPB SYBEBCPB │ │ │ │ │ -114#define SQLEVDPT SYBEVDPT │ │ │ │ │ -115#define SQLEBIVI SYBEBIVI │ │ │ │ │ -116#define SQLEBCBC SYBEBCBC │ │ │ │ │ -117#define SQLEBCFO SYBEBCFO │ │ │ │ │ -118#define SQLEBCVH SYBEBCVH │ │ │ │ │ -119#define SQLEBCUO SYBEBCUO │ │ │ │ │ -120#define SQLEBUOE SYBEBUOE │ │ │ │ │ -121#define SQLEBWEF SYBEBWEF │ │ │ │ │ -122#define SQLEBTMT SYBEBTMT │ │ │ │ │ -123#define SQLEBEOF SYBEBEOF │ │ │ │ │ -124#define SQLEBCSI SYBEBCSI │ │ │ │ │ -125#define SQLEPNUL SYBEPNUL │ │ │ │ │ -126#define SQLEBSKERR SYBEBSKERR │ │ │ │ │ -127#define SQLEBDIO SYBEBDIO │ │ │ │ │ -128#define SQLEBCNT SYBEBCNT │ │ │ │ │ -129#define SQLEMDBP SYBEMDBP │ │ │ │ │ -130#define SQLINIT SYBINIT │ │ │ │ │ -131#define SQLCRSINV SYBCRSINV │ │ │ │ │ -132#define SQLCRSCMD SYBCRSCMD │ │ │ │ │ -133#define SQLCRSNOIND SYBCRSNOIND │ │ │ │ │ -134#define SQLCRSDIS SYBCRSDIS │ │ │ │ │ -135#define SQLCRSAGR SYBCRSAGR │ │ │ │ │ -136#define SQLCRSORD SYBCRSORD │ │ │ │ │ -137#define SQLCRSMEM SYBCRSMEM │ │ │ │ │ -138#define SQLCRSBSKEY SYBCRSBSKEY │ │ │ │ │ -139#define SQLCRSNORES SYBCRSNORES │ │ │ │ │ -140#define SQLCRSVIEW SYBCRSVIEW │ │ │ │ │ -141#define SQLCRSBUFR SYBCRSBUFR │ │ │ │ │ -142#define SQLCRSFROWN SYBCRSFROWN │ │ │ │ │ -143#define SQLCRSBROL SYBCRSBROL │ │ │ │ │ -144#define SQLCRSFRAND SYBCRSFRAND │ │ │ │ │ -145#define SQLCRSFLAST SYBCRSFLAST │ │ │ │ │ -146#define SQLCRSRO SYBCRSRO │ │ │ │ │ -147#define SQLCRSTAB SYBCRSTAB │ │ │ │ │ -148#define SQLCRSUPDTAB SYBCRSUPDTAB │ │ │ │ │ -149#define SQLCRSUPDNB SYBCRSUPDNB │ │ │ │ │ -150#define SQLCRSVIIND SYBCRSVIIND │ │ │ │ │ -151#define SQLCRSNOUPD SYBCRSNOUPD │ │ │ │ │ -152#define SQLCRSOS SYBCRSOS │ │ │ │ │ -153#define SQLEBCSA SYBEBCSA │ │ │ │ │ -154#define SQLEBCRO SYBEBCRO │ │ │ │ │ -155#define SQLEBCNE SYBEBCNE │ │ │ │ │ -156#define SQLEBCSK SYBEBCSK │ │ │ │ │ -157#define SQLEUVBF SYBEUVBF │ │ │ │ │ -158#define SQLEBIHC SYBEBIHC │ │ │ │ │ -159#define SQLEBWFF SYBEBWFF │ │ │ │ │ -160#define SQLNUMVAL SYBNUMVAL │ │ │ │ │ -161#define SQLEOLDVR SYBEOLDVR │ │ │ │ │ -162#define SQLEBCPS SYBEBCPS │ │ │ │ │ -163#define SQLEDTC SYBEDTC │ │ │ │ │ -164#define SQLENOTIMPL SYBENOTIMPL │ │ │ │ │ -165#define SQLENONFLOAT SYBENONFLOAT │ │ │ │ │ -166#define SQLECONNFB SYBECONNFB │ │ │ │ │ -167 │ │ │ │ │ -168 │ │ │ │ │ -169#define dbfreelogin(x) dbloginfree((x)) │ │ │ │ │ -170 │ │ │ │ │ -171#define dbprocerrhandle(p, h) dberrhandle((h)) │ │ │ │ │ -172#define dbprocmsghandle(p, h) dbmsghandle((h)) │ │ │ │ │ -173 │ │ │ │ │ -174#define dbwinexit() │ │ │ │ │ +25#undef TDS_STATIC_CAST │ │ │ │ │ +26#ifdef __cplusplus │ │ │ │ │ +27#define TDS_STATIC_CAST(type, a) static_cast(a) │ │ │ │ │ +28extern "C" │ │ │ │ │ +29{ │ │ │ │ │ +30#if 0 │ │ │ │ │ +31} │ │ │ │ │ +32#endif │ │ │ │ │ +33#else │ │ │ │ │ +34#define TDS_STATIC_CAST(type, a) ((type)(a)) │ │ │ │ │ +35#endif │ │ │ │ │ +36 │ │ │ │ │ +37#define CS_PUBLIC │ │ │ │ │ +38#define CS_STATIC static │ │ │ │ │ +39 │ │ │ │ │ +40#define CS_SUCCEED 1 │ │ │ │ │ +41#define CS_FAIL 0 │ │ │ │ │ +42#define CS_MEM_ERROR -1 │ │ │ │ │ +43#define CS_PENDING -2 │ │ │ │ │ +44#define CS_QUIET -3 │ │ │ │ │ +45#define CS_BUSY -4 │ │ │ │ │ +46#define CS_INTERRUPT -5 │ │ │ │ │ +47#define CS_BLK_HAS_TEXT -6 │ │ │ │ │ +48#define CS_CONTINUE -7 │ │ │ │ │ +49#define CS_FATAL -8 │ │ │ │ │ +50#define CS_RET_HAFAILOVER -9 │ │ │ │ │ +51#define CS_UNSUPPORTED -10 │ │ │ │ │ +52 │ │ │ │ │ +53#define CS_CANCELED -202 │ │ │ │ │ +54#define CS_ROW_FAIL -203 │ │ │ │ │ +55#define CS_END_DATA -204 │ │ │ │ │ +56#define CS_END_RESULTS -205 │ │ │ │ │ +57#define CS_END_ITEM -206 │ │ │ │ │ +58#define CS_NOMSG -207 │ │ │ │ │ +59#define CS_TIMED_OUT -208 │ │ │ │ │ +60 │ │ │ │ │ +61#define CS_SIZEOF(x) sizeof(x) │ │ │ │ │ +62 │ │ │ │ │ +63#define CS_LAYER(x) (((x) >> 24) & 0xFF) │ │ │ │ │ +64#define CS_ORIGIN(x) (((x) >> 16) & 0xFF) │ │ │ │ │ +65#define CS_SEVERITY(x) (((x) >> 8) & 0xFF) │ │ │ │ │ +66#define CS_NUMBER(x) ((x) & 0xFF) │ │ │ │ │ +67 │ │ │ │ │ +68/* forward declarations */ │ │ │ │ │ +69typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (_C_S___C_O_N_T_E_X_T *, _C_S___C_L_I_E_N_T_M_S_G *); │ │ │ │ │ +70typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (_C_S___C_O_N_T_E_X_T *, _C_S___C_O_N_N_E_C_T_I_O_N *, │ │ │ │ │ +_C_S___C_L_I_E_N_T_M_S_G *); │ │ │ │ │ +71typedef CS_RETCODE(*CS_SERVERMSG_FUNC) (_C_S___C_O_N_T_E_X_T *, _C_S___C_O_N_N_E_C_T_I_O_N *, │ │ │ │ │ +_C_S___S_E_R_V_E_R_M_S_G *); │ │ │ │ │ +72 │ │ │ │ │ +73 │ │ │ │ │ +74#define CS_IODATA TDS_STATIC_CAST(CS_INT, 1600) │ │ │ │ │ +75#define CS_SRC_VALUE -2562 │ │ │ │ │ +76 │ │ │ │ │ +77 │ │ │ │ │ +78 │ │ │ │ │ +79/* status bits for CS_SERVERMSG */ │ │ │ │ │ +80#define CS_HASEED 0x01 │ │ │ │ │ +81 │ │ │ │ │ +82typedef struct ___c_s___b_l_k_d_e_s_c _C_S___B_L_K_D_E_S_C; │ │ │ │ │ +83 │ │ │ │ │ +84/* CS_CAP_REQUEST values */ │ │ │ │ │ +85#define CS_REQ_LANG 1 │ │ │ │ │ +86#define CS_REQ_RPC 2 │ │ │ │ │ +87#define CS_REQ_NOTIF 3 │ │ │ │ │ +88#define CS_REQ_MSTMT 4 │ │ │ │ │ +89#define CS_REQ_BCP 5 │ │ │ │ │ +90#define CS_REQ_CURSOR 6 │ │ │ │ │ +91#define CS_REQ_DYN 7 │ │ │ │ │ +92#define CS_REQ_MSG 8 │ │ │ │ │ +93#define CS_REQ_PARAM 9 │ │ │ │ │ +94#define CS_DATA_INT1 10 │ │ │ │ │ +95#define CS_DATA_INT2 11 │ │ │ │ │ +96#define CS_DATA_INT4 12 │ │ │ │ │ +97#define CS_DATA_BIT 13 │ │ │ │ │ +98#define CS_DATA_CHAR 14 │ │ │ │ │ +99#define CS_DATA_VCHAR 15 │ │ │ │ │ +100#define CS_DATA_BIN 16 │ │ │ │ │ +101#define CS_DATA_VBIN 17 │ │ │ │ │ +102#define CS_DATA_MNY8 18 │ │ │ │ │ +103#define CS_DATA_MNY4 19 │ │ │ │ │ +104#define CS_DATA_DATE8 20 │ │ │ │ │ +105#define CS_DATA_DATE4 21 │ │ │ │ │ +106#define CS_DATA_FLT4 22 │ │ │ │ │ +107#define CS_DATA_FLT8 23 │ │ │ │ │ +108#define CS_DATA_NUM 24 │ │ │ │ │ +109#define CS_DATA_TEXT 25 │ │ │ │ │ +110#define CS_DATA_IMAGE 26 │ │ │ │ │ +111#define CS_DATA_DEC 27 │ │ │ │ │ +112#define CS_DATA_LCHAR 28 │ │ │ │ │ +113#define CS_DATA_LBIN 29 │ │ │ │ │ +114#define CS_DATA_INTN 30 │ │ │ │ │ +115#define CS_DATA_DATETIMEN 31 │ │ │ │ │ +116#define CS_DATA_MONEYN 32 │ │ │ │ │ +117#define CS_CSR_PREV 33 │ │ │ │ │ +118#define CS_CSR_FIRST 34 │ │ │ │ │ +119#define CS_CSR_LAST 35 │ │ │ │ │ +120#define CS_CSR_ABS 36 │ │ │ │ │ +121#define CS_CSR_REL 37 │ │ │ │ │ +122#define CS_CSR_MULTI 38 │ │ │ │ │ +123#define CS_CON_OOB 39 │ │ │ │ │ +124#define CS_CON_INBAND 40 │ │ │ │ │ +125#define CS_CON_LOGICAL 41 │ │ │ │ │ +126#define CS_PROTO_TEXT 42 │ │ │ │ │ +127#define CS_PROTO_BULK 43 │ │ │ │ │ +128#define CS_REQ_URGNOTIF 44 │ │ │ │ │ +129#define CS_DATA_SENSITIVITY 45 │ │ │ │ │ +130#define CS_DATA_BOUNDARY 46 │ │ │ │ │ +131#define CS_PROTO_DYNAMIC 47 │ │ │ │ │ +132#define CS_PROTO_DYNPROC 48 │ │ │ │ │ +133#define CS_DATA_FLTN 49 │ │ │ │ │ +134#define CS_DATA_BITN 50 │ │ │ │ │ +135#define CS_OPTION_GET 51 │ │ │ │ │ +136#define CS_DATA_INT8 52 │ │ │ │ │ +137#define CS_DATA_VOID 53 │ │ │ │ │ +138 │ │ │ │ │ +139/* CS_CAP_RESPONSE values */ │ │ │ │ │ +140#define CS_RES_NOMSG 1 │ │ │ │ │ +141#define CS_RES_NOEED 2 │ │ │ │ │ +142#define CS_RES_NOPARAM 3 │ │ │ │ │ +143#define CS_DATA_NOINT1 4 │ │ │ │ │ +144#define CS_DATA_NOINT2 5 │ │ │ │ │ +145#define CS_DATA_NOINT4 6 │ │ │ │ │ +146#define CS_DATA_NOBIT 7 │ │ │ │ │ +147#define CS_DATA_NOCHAR 8 │ │ │ │ │ +148#define CS_DATA_NOVCHAR 9 │ │ │ │ │ +149#define CS_DATA_NOBIN 10 │ │ │ │ │ +150#define CS_DATA_NOVBIN 11 │ │ │ │ │ +151#define CS_DATA_NOMNY8 12 │ │ │ │ │ +152#define CS_DATA_NOMNY4 13 │ │ │ │ │ +153#define CS_DATA_NODATE8 14 │ │ │ │ │ +154#define CS_DATA_NODATE4 15 │ │ │ │ │ +155#define CS_DATA_NOFLT4 16 │ │ │ │ │ +156#define CS_DATA_NOFLT8 17 │ │ │ │ │ +157#define CS_DATA_NONUM 18 │ │ │ │ │ +158#define CS_DATA_NOTEXT 19 │ │ │ │ │ +159#define CS_DATA_NOIMAGE 20 │ │ │ │ │ +160#define CS_DATA_NODEC 21 │ │ │ │ │ +161#define CS_DATA_NOLCHAR 22 │ │ │ │ │ +162#define CS_DATA_NOLBIN 23 │ │ │ │ │ +163#define CS_DATA_NOINTN 24 │ │ │ │ │ +164#define CS_DATA_NODATETIMEN 25 │ │ │ │ │ +165#define CS_DATA_NOMONEYN 26 │ │ │ │ │ +166#define CS_CON_NOOOB 27 │ │ │ │ │ +167#define CS_CON_NOINBAND 28 │ │ │ │ │ +168#define CS_PROTO_NOTEXT 29 │ │ │ │ │ +169#define CS_PROTO_NOBULK 30 │ │ │ │ │ +170#define CS_DATA_NOSENSITIVITY 31 │ │ │ │ │ +171#define CS_DATA_NOBOUNDARY 32 │ │ │ │ │ +172#define CS_RES_NOTDSDEBUG 33 │ │ │ │ │ +173#define CS_RES_NOSTRIPBLANKS 34 │ │ │ │ │ +174#define CS_DATA_NOINT8 35 │ │ │ │ │ 175 │ │ │ │ │ -176static const char rcsid_sqldb_h[] = "$Id: sqldb.h,v 1.6 2009-12-02 22:35:18 │ │ │ │ │ -jklowden Exp $"; │ │ │ │ │ -177static const void *const no_unused_sqldb_h_warn[] = { rcsid_sqldb_h, │ │ │ │ │ -no_unused_sqldb_h_warn }; │ │ │ │ │ -178 │ │ │ │ │ -179 │ │ │ │ │ -180#endif │ │ │ │ │ -_s_y_b_d_b_._h │ │ │ │ │ -Primary include file for db-lib applications. │ │ │ │ │ +176/* Properties */ │ │ │ │ │ +177enum │ │ │ │ │ +178{ │ │ │ │ │ +179/* │ │ │ │ │ +180 * These defines looks weird but programs can test support for defines, │ │ │ │ │ +181 * compiler can check enum and there are no define side effecs │ │ │ │ │ +182 */ │ │ │ │ │ +183 CS_USERNAME = 9100, │ │ │ │ │ +184#define CS_USERNAME CS_USERNAME │ │ │ │ │ +185 CS_PASSWORD = 9101, │ │ │ │ │ +186#define CS_PASSWORD CS_PASSWORD │ │ │ │ │ +187 CS_APPNAME = 9102, │ │ │ │ │ +188#define CS_APPNAME CS_APPNAME │ │ │ │ │ +189 CS_HOSTNAME = 9103, │ │ │ │ │ +190#define CS_HOSTNAME CS_HOSTNAME │ │ │ │ │ +191 CS_LOGIN_STATUS = 9104, │ │ │ │ │ +192#define CS_LOGIN_STATUS CS_LOGIN_STATUS │ │ │ │ │ +193 CS_TDS_VERSION = 9105, │ │ │ │ │ +194#define CS_TDS_VERSION CS_TDS_VERSION │ │ │ │ │ +195 CS_CHARSETCNV = 9106, │ │ │ │ │ +196#define CS_CHARSETCNV CS_CHARSETCNV │ │ │ │ │ +197 CS_PACKETSIZE = 9107, │ │ │ │ │ +198#define CS_PACKETSIZE CS_PACKETSIZE │ │ │ │ │ +199 CS_USERDATA = 9108, │ │ │ │ │ +200#define CS_USERDATA CS_USERDATA │ │ │ │ │ +201 CS_NETIO = 9110, │ │ │ │ │ +202#define CS_NETIO CS_NETIO │ │ │ │ │ +203 CS_TEXTLIMIT = 9112, │ │ │ │ │ +204#define CS_TEXTLIMIT CS_TEXTLIMIT │ │ │ │ │ +205 CS_HIDDEN_KEYS = 9113, │ │ │ │ │ +206#define CS_HIDDEN_KEYS CS_HIDDEN_KEYS │ │ │ │ │ +207 CS_VERSION = 9114, │ │ │ │ │ +208#define CS_VERSION CS_VERSION │ │ │ │ │ +209 CS_IFILE = 9115, │ │ │ │ │ +210#define CS_IFILE CS_IFILE │ │ │ │ │ +211 CS_LOGIN_TIMEOUT = 9116, │ │ │ │ │ +212#define CS_LOGIN_TIMEOUT CS_LOGIN_TIMEOUT │ │ │ │ │ +213 CS_TIMEOUT = 9117, │ │ │ │ │ +214#define CS_TIMEOUT CS_TIMEOUT │ │ │ │ │ +215 CS_MAX_CONNECT = 9118, │ │ │ │ │ +216#define CS_MAX_CONNECT CS_MAX_CONNECT │ │ │ │ │ +217 CS_EXPOSE_FMTS = 9120, │ │ │ │ │ +218#define CS_EXPOSE_FMTS CS_EXPOSE_FMTS │ │ │ │ │ +219 CS_EXTRA_INF = 9121, │ │ │ │ │ +220#define CS_EXTRA_INF CS_EXTRA_INF │ │ │ │ │ +221 CS_ANSI_BINDS = 9123, │ │ │ │ │ +222#define CS_ANSI_BINDS CS_ANSI_BINDS │ │ │ │ │ +223 CS_BULK_LOGIN = 9124, │ │ │ │ │ +224#define CS_BULK_LOGIN CS_BULK_LOGIN │ │ │ │ │ +225 CS_LOC_PROP = 9125, │ │ │ │ │ +226#define CS_LOC_PROP CS_LOC_PROP │ │ │ │ │ +227 CS_PARENT_HANDLE = 9130, │ │ │ │ │ +228#define CS_PARENT_HANDLE CS_PARENT_HANDLE │ │ │ │ │ +229 CS_EED_CMD = 9131, │ │ │ │ │ +230#define CS_EED_CMD CS_EED_CMD │ │ │ │ │ +231 CS_DIAG_TIMEOUT = 9132, │ │ │ │ │ +232#define CS_DIAG_TIMEOUT CS_DIAG_TIMEOUT │ │ │ │ │ +233 CS_DISABLE_POLL = 9133, │ │ │ │ │ +234#define CS_DISABLE_POLL CS_DISABLE_POLL │ │ │ │ │ +235 CS_SEC_ENCRYPTION = 9135, │ │ │ │ │ +236#define CS_SEC_ENCRYPTION CS_SEC_ENCRYPTION │ │ │ │ │ +237 CS_SEC_CHALLENGE = 9136, │ │ │ │ │ +238#define CS_SEC_CHALLENGE CS_SEC_CHALLENGE │ │ │ │ │ +239 CS_SEC_NEGOTIATE = 9137, │ │ │ │ │ +240#define CS_SEC_NEGOTIATE CS_SEC_NEGOTIATE │ │ │ │ │ +241 CS_CON_STATUS = 9143, │ │ │ │ │ +242#define CS_CON_STATUS CS_CON_STATUS │ │ │ │ │ +243 CS_VER_STRING = 9144, │ │ │ │ │ +244#define CS_VER_STRING CS_VER_STRING │ │ │ │ │ +245 CS_SERVERNAME = 9146, │ │ │ │ │ +246#define CS_SERVERNAME CS_SERVERNAME │ │ │ │ │ +247 CS_SEC_APPDEFINED = 9149, │ │ │ │ │ +248#define CS_SEC_APPDEFINED CS_SEC_APPDEFINED │ │ │ │ │ +249 CS_STICKY_BINDS = 9151, │ │ │ │ │ +250#define CS_STICKY_BINDS CS_STICKY_BINDS │ │ │ │ │ +251 CS_SEC_NETWORKAUTH = 9175, │ │ │ │ │ +252#define CS_SEC_NETWORKAUTH CS_SEC_NETWORKAUTH │ │ │ │ │ +253 CS_SEC_DELEGATION = 9176, │ │ │ │ │ +254#define CS_SEC_DELEGATION CS_SEC_DELEGATION │ │ │ │ │ +255 CS_SEC_MUTUALAUTH = 9177, │ │ │ │ │ +256#define CS_SEC_MUTUALAUTH CS_SEC_MUTUALAUTH │ │ │ │ │ +257 CS_SEC_SERVERPRINCIPAL = 9188, │ │ │ │ │ +258#define CS_SEC_SERVERPRINCIPAL CS_SEC_SERVERPRINCIPAL │ │ │ │ │ +259 CS_SERVERADDR = 9206, │ │ │ │ │ +260#define CS_SERVERADDR CS_SERVERADDR │ │ │ │ │ +261 CS_PORT = 9300, │ │ │ │ │ +262#define CS_PORT CS_PORT │ │ │ │ │ +263 CS_CLIENTCHARSET = 9301, │ │ │ │ │ +264#define CS_CLIENTCHARSET CS_CLIENTCHARSET │ │ │ │ │ +265 CS_DATABASE = 9302 │ │ │ │ │ +266#define CS_DATABASE CS_DATABASE │ │ │ │ │ +267}; │ │ │ │ │ +268 │ │ │ │ │ +269/* Arbitrary precision math operators */ │ │ │ │ │ +270enum │ │ │ │ │ +271{ │ │ │ │ │ +272 CS_ADD = 1, │ │ │ │ │ +273 CS_SUB, │ │ │ │ │ +274 CS_MULT, │ │ │ │ │ +275 CS_DIV │ │ │ │ │ +276}; │ │ │ │ │ +277 │ │ │ │ │ +278enum │ │ │ │ │ +279{ │ │ │ │ │ +280#define CS_TDS_AUTO CS_TDS_AUTO │ │ │ │ │ +281 CS_TDS_AUTO = 0, │ │ │ │ │ +282 CS_TDS_40 = 7360, │ │ │ │ │ +283 CS_TDS_42, │ │ │ │ │ +284 CS_TDS_46, │ │ │ │ │ +285 CS_TDS_495, │ │ │ │ │ +286 CS_TDS_50, │ │ │ │ │ +287 CS_TDS_70, │ │ │ │ │ +288 CS_TDS_71, │ │ │ │ │ +289#define CS_TDS_71 CS_TDS_71 │ │ │ │ │ +290 CS_TDS_72, │ │ │ │ │ +291#define CS_TDS_72 CS_TDS_72 │ │ │ │ │ +292 CS_TDS_73, │ │ │ │ │ +293#define CS_TDS_73 CS_TDS_73 │ │ │ │ │ +294 CS_TDS_74, │ │ │ │ │ +295#define CS_TDS_74 CS_TDS_74 │ │ │ │ │ +296}; │ │ │ │ │ +297 │ │ │ │ │ +298/* bit mask values used by CS_DATAFMT.status */ │ │ │ │ │ +299#define CS_HIDDEN (1 << 0) │ │ │ │ │ +300#define CS_KEY (1 << 1) │ │ │ │ │ +301#define CS_VERSION_KEY (1 << 2) │ │ │ │ │ +302#define CS_NODATA (1 << 3) │ │ │ │ │ +303#define CS_UPDATABLE (1 << 4) │ │ │ │ │ +304#define CS_CANBENULL (1 << 5) │ │ │ │ │ +305#define CS_DESCIN (1 << 6) │ │ │ │ │ +306#define CS_DESCOUT (1 << 7) │ │ │ │ │ +307#define CS_INPUTVALUE (1 << 8) │ │ │ │ │ +308#define CS_UPDATECOL (1 << 9) │ │ │ │ │ +309#define CS_RETURN (1 << 10) │ │ │ │ │ +310#define CS_TIMESTAMP (1 << 13) │ │ │ │ │ +311#define CS_NODEFAULT (1 << 14) │ │ │ │ │ +312#define CS_IDENTITY (1 << 15) │ │ │ │ │ +313 │ │ │ │ │ +314/* │ │ │ │ │ +315 * DBD::Sybase compares indicator to CS_NULLDATA so this is -1 │ │ │ │ │ +316 * (the documentation states -1) │ │ │ │ │ +317 */ │ │ │ │ │ +318#define CS_GOODDATA 0 │ │ │ │ │ +319#define CS_NULLDATA (-1) │ │ │ │ │ +320 │ │ │ │ │ +321/* CS_CON_STATUS read-only property bit mask values */ │ │ │ │ │ +322#define CS_CONSTAT_CONNECTED 0x01 │ │ │ │ │ +323#define CS_CONSTAT_DEAD 0x02 │ │ │ │ │ +324 │ │ │ │ │ +325/* │ │ │ │ │ +326 * Code added for CURSOR support │ │ │ │ │ +327 * types accepted by ct_cursor │ │ │ │ │ +328 */ │ │ │ │ │ +329#define CS_CURSOR_DECLARE 700 │ │ │ │ │ +330#define CS_CURSOR_OPEN 701 │ │ │ │ │ +331#define CS_CURSOR_ROWS 703 │ │ │ │ │ +332#define CS_CURSOR_UPDATE 704 │ │ │ │ │ +333#define CS_CURSOR_DELETE 705 │ │ │ │ │ +334#define CS_CURSOR_CLOSE 706 │ │ │ │ │ +335#define CS_CURSOR_DEALLOC 707 │ │ │ │ │ +336#define CS_CURSOR_OPTION 725 │ │ │ │ │ +337 │ │ │ │ │ +338#define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1) │ │ │ │ │ +339#define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2) │ │ │ │ │ +340#define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8) │ │ │ │ │ +341#define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40) │ │ │ │ │ +342 │ │ │ │ │ +343 │ │ │ │ │ +344#define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0) │ │ │ │ │ +345#define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1) │ │ │ │ │ +346#define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2) │ │ │ │ │ +347#define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4) │ │ │ │ │ +348#define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8) │ │ │ │ │ +349#define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10) │ │ │ │ │ +350#define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20) │ │ │ │ │ +351#define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40) │ │ │ │ │ +352 │ │ │ │ │ +353#define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126) │ │ │ │ │ +354#define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127) │ │ │ │ │ +355#define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128) │ │ │ │ │ +356#define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129) │ │ │ │ │ +357 │ │ │ │ │ +358/* options accepted by ct_options() */ │ │ │ │ │ +359#define CS_OPT_DATEFIRST 5001 │ │ │ │ │ +360#define CS_OPT_TEXTSIZE 5002 │ │ │ │ │ +361#define CS_OPT_STATS_TIME 5003 │ │ │ │ │ +362#define CS_OPT_STATS_IO 5004 │ │ │ │ │ +363#define CS_OPT_ROWCOUNT 5005 │ │ │ │ │ +364#define CS_OPT_DATEFORMAT 5007 │ │ │ │ │ +365#define CS_OPT_ISOLATION 5008 │ │ │ │ │ +366#define CS_OPT_AUTHON 5009 │ │ │ │ │ +367#define CS_OPT_SHOWPLAN 5013 │ │ │ │ │ +368#define CS_OPT_NOEXEC 5014 │ │ │ │ │ +369#define CS_OPT_ARITHIGNORE 5015 │ │ │ │ │ +370#define CS_OPT_TRUNCIGNORE 5016 │ │ │ │ │ +371#define CS_OPT_ARITHABORT 5017 │ │ │ │ │ +372#define CS_OPT_PARSEONLY 5018 │ │ │ │ │ +373#define CS_OPT_GETDATA 5020 │ │ │ │ │ +374#define CS_OPT_NOCOUNT 5021 │ │ │ │ │ +375#define CS_OPT_FORCEPLAN 5023 │ │ │ │ │ +376#define CS_OPT_FORMATONLY 5024 │ │ │ │ │ +377#define CS_OPT_CHAINXACTS 5025 │ │ │ │ │ +378#define CS_OPT_CURCLOSEONXACT 5026 │ │ │ │ │ +379#define CS_OPT_FIPSFLAG 5027 │ │ │ │ │ +380#define CS_OPT_RESTREES 5028 │ │ │ │ │ +381#define CS_OPT_IDENTITYON 5029 │ │ │ │ │ +382#define CS_OPT_CURREAD 5030 │ │ │ │ │ +383#define CS_OPT_CURWRITE 5031 │ │ │ │ │ +384#define CS_OPT_IDENTITYOFF 5032 │ │ │ │ │ +385#define CS_OPT_AUTHOFF 5033 │ │ │ │ │ +386#define CS_OPT_ANSINULL 5034 │ │ │ │ │ +387#define CS_OPT_QUOTED_IDENT 5035 │ │ │ │ │ +388#define CS_OPT_ANSIPERM 5036 │ │ │ │ │ +389#define CS_OPT_STR_RTRUNC 5037 │ │ │ │ │ +390 │ │ │ │ │ +391/* options accepted by ct_command() */ │ │ │ │ │ +392enum ct_command_options │ │ │ │ │ +393{ │ │ │ │ │ +394 CS_MORE = 16, │ │ │ │ │ +395 CS_END = 32, │ │ │ │ │ +396 CS_RECOMPILE = 188, │ │ │ │ │ +397 CS_NO_RECOMPILE, │ │ │ │ │ +398 CS_BULK_INIT, │ │ │ │ │ +399 CS_BULK_CONT, │ │ │ │ │ +400 CS_BULK_DATA, │ │ │ │ │ +401 CS_COLUMN_DATA │ │ │ │ │ +402}; │ │ │ │ │ +403 │ │ │ │ │ +404 │ │ │ │ │ +405/* │ │ │ │ │ +406 * bind formats, should be mapped to TDS types │ │ │ │ │ +407 * can be a combination of bit │ │ │ │ │ +408 */ │ │ │ │ │ +409enum │ │ │ │ │ +410{ │ │ │ │ │ +411 CS_FMT_UNUSED = 0, │ │ │ │ │ +412#define CS_FMT_UNUSED CS_FMT_UNUSED │ │ │ │ │ +413 CS_FMT_NULLTERM = 1, │ │ │ │ │ +414#define CS_FMT_NULLTERM CS_FMT_NULLTERM │ │ │ │ │ +415 CS_FMT_PADNULL = 2, │ │ │ │ │ +416#define CS_FMT_PADBLANK CS_FMT_PADBLANK │ │ │ │ │ +417 CS_FMT_PADBLANK = 4, │ │ │ │ │ +418#define CS_FMT_PADNULL CS_FMT_PADNULL │ │ │ │ │ +419 CS_FMT_JUSTIFY_RT = 8 │ │ │ │ │ +420#define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT │ │ │ │ │ +421}; │ │ │ │ │ +422 │ │ │ │ │ +423/* callbacks */ │ │ │ │ │ +424#define CS_COMPLETION_CB 1 │ │ │ │ │ +425#define CS_SERVERMSG_CB 2 │ │ │ │ │ +426#define CS_CLIENTMSG_CB 3 │ │ │ │ │ +427#define CS_NOTIF_CB 4 │ │ │ │ │ +428#define CS_ENCRYPT_CB 5 │ │ │ │ │ +429#define CS_CHALLENGE_CB 6 │ │ │ │ │ +430#define CS_DS_LOOKUP_CB 7 │ │ │ │ │ +431#define CS_SECSESSION_CB 8 │ │ │ │ │ +432#define CS_SIGNAL_CB 100 │ │ │ │ │ +433#define CS_MESSAGE_CB 9119 │ │ │ │ │ +434 │ │ │ │ │ +435/* string types */ │ │ │ │ │ +436#define CS_NULLTERM -9 │ │ │ │ │ +437#define CS_WILDCARD -99 │ │ │ │ │ +438#define CS_NO_LIMIT -9999 │ │ │ │ │ +439#define CS_UNUSED -99999 │ │ │ │ │ +440 │ │ │ │ │ +441/* other */ │ │ │ │ │ +442#define CS_GET 33 │ │ │ │ │ +443#define CS_SET 34 │ │ │ │ │ +444#define CS_CLEAR 35 │ │ │ │ │ +445#define CS_INIT 36 │ │ │ │ │ +446#define CS_STATUS 37 │ │ │ │ │ +447#define CS_MSGLIMIT 38 │ │ │ │ │ +448#define CS_SUPPORTED 40 │ │ │ │ │ +449 │ │ │ │ │ +450#define CS_CMD_DONE 4046 │ │ │ │ │ +451#define CS_CMD_SUCCEED 4047 │ │ │ │ │ +452#define CS_CMD_FAIL 4048 │ │ │ │ │ +453 │ │ │ │ │ +454/* commands */ │ │ │ │ │ +455#define CS_LANG_CMD 148 │ │ │ │ │ +456#define CS_RPC_CMD 149 │ │ │ │ │ +457#define CS_SEND_DATA_CMD 151 │ │ │ │ │ +458#define CS_SEND_BULK_CMD 153 │ │ │ │ │ +459 │ │ │ │ │ +460#define CS_VERSION_100 112 │ │ │ │ │ +461#define CS_VERSION_110 1100 │ │ │ │ │ +462#define CS_VERSION_120 1100 │ │ │ │ │ +463#define CS_VERSION_125 12500 │ │ │ │ │ +464#define CS_VERSION_150 15000 │ │ │ │ │ +465 │ │ │ │ │ +466#define BLK_VERSION_100 CS_VERSION_100 │ │ │ │ │ +467#define BLK_VERSION_110 CS_VERSION_110 │ │ │ │ │ +468#define BLK_VERSION_120 CS_VERSION_120 │ │ │ │ │ +469#define BLK_VERSION_125 CS_VERSION_125 │ │ │ │ │ +470#define BLK_VERSION_150 CS_VERSION_150 │ │ │ │ │ +471 │ │ │ │ │ +472#define CS_FORCE_EXIT 300 │ │ │ │ │ +473#define CS_FORCE_CLOSE 301 │ │ │ │ │ +474 │ │ │ │ │ +475#define CS_SYNC_IO 8111 │ │ │ │ │ +476#define CS_ASYNC_IO 8112 │ │ │ │ │ +477#define CS_DEFER_IO 8113 │ │ │ │ │ +478 │ │ │ │ │ +479#define CS_CANCEL_CURRENT 6000 │ │ │ │ │ +480#define CS_CANCEL_ALL 6001 │ │ │ │ │ +481#define CS_CANCEL_ATTN 6002 │ │ │ │ │ +482 │ │ │ │ │ +483#define CS_ROW_COUNT 800 │ │ │ │ │ +484#define CS_CMD_NUMBER 801 │ │ │ │ │ +485#define CS_NUM_COMPUTES 802 │ │ │ │ │ +486#define CS_NUMDATA 803 │ │ │ │ │ +487#define CS_NUMORDERCOLS 805 │ │ │ │ │ +488#define CS_MSGTYPE 806 │ │ │ │ │ +489#define CS_BROWSE_INFO 807 │ │ │ │ │ +490#define CS_TRANS_STATE 808 │ │ │ │ │ +491 │ │ │ │ │ +492#define CS_TRAN_UNDEFINED 0 │ │ │ │ │ +493#define CS_TRAN_IN_PROGRESS 1 │ │ │ │ │ +494#define CS_TRAN_COMPLETED 2 │ │ │ │ │ +495#define CS_TRAN_FAIL 3 │ │ │ │ │ +496#define CS_TRAN_STMT_FAIL 4 │ │ │ │ │ +497 │ │ │ │ │ +498#define CS_COMP_OP 5350 │ │ │ │ │ +499#define CS_COMP_ID 5351 │ │ │ │ │ +500#define CS_COMP_COLID 5352 │ │ │ │ │ +501#define CS_COMP_BYLIST 5353 │ │ │ │ │ +502#define CS_BYLIST_LEN 5354 │ │ │ │ │ +503 │ │ │ │ │ +504#define CS_NO_COUNT -1 │ │ │ │ │ +505 │ │ │ │ │ +506#define CS_OP_SUM 5370 │ │ │ │ │ +507#define CS_OP_AVG 5371 │ │ │ │ │ +508#define CS_OP_COUNT 5372 │ │ │ │ │ +509#define CS_OP_MIN 5373 │ │ │ │ │ +510#define CS_OP_MAX 5374 │ │ │ │ │ +511 │ │ │ │ │ +512#define CS_CAP_REQUEST 1 │ │ │ │ │ +513#define CS_CAP_RESPONSE 2 │ │ │ │ │ +514 │ │ │ │ │ +515#define CS_PREPARE 717 │ │ │ │ │ +516#define CS_EXECUTE 718 │ │ │ │ │ +517#define CS_DESCRIBE_INPUT 720 │ │ │ │ │ +518#define CS_DESCRIBE_OUTPUT 721 │ │ │ │ │ +519 │ │ │ │ │ +520#define CS_DEALLOC 711 │ │ │ │ │ +521 │ │ │ │ │ +522#define CS_LC_ALL 7 │ │ │ │ │ +523#define CS_SYB_LANG 8 │ │ │ │ │ +524#define CS_SYB_CHARSET 9 │ │ │ │ │ +525#define CS_SYB_SORTORDER 10 │ │ │ │ │ +526#define CS_SYB_COLLATE CS_SYB_SORTORDER │ │ │ │ │ +527#define CS_SYB_LANG_CHARSET 11 │ │ │ │ │ +528 │ │ │ │ │ +529#define CS_BLK_IN 1 │ │ │ │ │ +530#define CS_BLK_OUT 2 │ │ │ │ │ +531 │ │ │ │ │ +532#define CS_BLK_BATCH 1 │ │ │ │ │ +533#define CS_BLK_ALL 2 │ │ │ │ │ +534#define CS_BLK_CANCEL 3 │ │ │ │ │ +535 │ │ │ │ │ +536/* to do support these */ │ │ │ │ │ +537 │ │ │ │ │ +538#define CS_BLK_ARRAY_MAXLEN 0x1000 │ │ │ │ │ +539#define CS_DEF_PREC 18 │ │ │ │ │ +540 │ │ │ │ │ +541/* Error Severities */ │ │ │ │ │ +542#define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0) │ │ │ │ │ +543#define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1) │ │ │ │ │ +544#define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2) │ │ │ │ │ +545#define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3) │ │ │ │ │ +546#define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4) │ │ │ │ │ +547#define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5) │ │ │ │ │ +548#define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6) │ │ │ │ │ +549#define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7) │ │ │ │ │ +550 │ │ │ │ │ +551/* result_types */ │ │ │ │ │ +552#define CS_COMPUTE_RESULT 4045 │ │ │ │ │ +553#define CS_CURSOR_RESULT 4041 │ │ │ │ │ +554#define CS_PARAM_RESULT 4042 │ │ │ │ │ +555#define CS_ROW_RESULT 4040 │ │ │ │ │ +556#define CS_STATUS_RESULT 4043 │ │ │ │ │ +557#define CS_COMPUTEFMT_RESULT 4050 │ │ │ │ │ +558#define CS_ROWFMT_RESULT 4049 │ │ │ │ │ +559#define CS_MSG_RESULT 4044 │ │ │ │ │ +560#define CS_DESCRIBE_RESULT 4051 │ │ │ │ │ +561 │ │ │ │ │ +562/* bind types */ │ │ │ │ │ +563#define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1) │ │ │ │ │ +564#define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0) │ │ │ │ │ +565#define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1) │ │ │ │ │ +566#define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2) │ │ │ │ │ +567#define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3) │ │ │ │ │ +568#define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4) │ │ │ │ │ +569#define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5) │ │ │ │ │ +570#define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6) │ │ │ │ │ +571#define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7) │ │ │ │ │ +572#define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8) │ │ │ │ │ +573#define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9) │ │ │ │ │ +574#define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10) │ │ │ │ │ +575#define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11) │ │ │ │ │ +576#define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12) │ │ │ │ │ +577#define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13) │ │ │ │ │ +578#define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14) │ │ │ │ │ +579#define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15) │ │ │ │ │ +580#define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16) │ │ │ │ │ +581#define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17) │ │ │ │ │ +582#define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18) │ │ │ │ │ +583#define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19) │ │ │ │ │ +584#define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20) │ │ │ │ │ +585#define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21) │ │ │ │ │ +586#define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22) │ │ │ │ │ +587#define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23) │ │ │ │ │ +588#define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24) │ │ │ │ │ +589#define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25) │ │ │ │ │ +590#define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26) │ │ │ │ │ +591#define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27) │ │ │ │ │ +592#define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28) │ │ │ │ │ +593#define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29) │ │ │ │ │ +594#define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30) │ │ │ │ │ +595#define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31) │ │ │ │ │ +596#define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32) │ │ │ │ │ +597#define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33) │ │ │ │ │ +598#define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34) │ │ │ │ │ +599#define CS_BIGDATETIME_TYPE TDS_STATIC_CAST(CS_INT, 35) │ │ │ │ │ +600#define CS_BIGTIME_TYPE TDS_STATIC_CAST(CS_INT, 36) │ │ │ │ │ +601#define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40) │ │ │ │ │ +602 │ │ │ │ │ +603#define CS_MIN_SYBTYPE CS_CHAR_TYPE │ │ │ │ │ +604#define CS_MAX_SYBTYPE CS_UNIQUE_TYPE │ │ │ │ │ +605 │ │ │ │ │ +606#define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100) │ │ │ │ │ +607/* cs_dt_info type values */ │ │ │ │ │ +608enum │ │ │ │ │ +609{ │ │ │ │ │ +610 CS_MONTH = 7340, │ │ │ │ │ +611#define CS_MONTH CS_MONTH │ │ │ │ │ +612 CS_SHORTMONTH, │ │ │ │ │ +613#define CS_SHORTMONTH CS_SHORTMONTH │ │ │ │ │ +614 CS_DAYNAME, │ │ │ │ │ +615#define CS_DAYNAME CS_DAYNAME │ │ │ │ │ +616 CS_DATEORDER, │ │ │ │ │ +617#define CS_DATEORDER CS_DATEORDER │ │ │ │ │ +618 CS_12HOUR, │ │ │ │ │ +619#define CS_12HOUR CS_12HOUR │ │ │ │ │ +620 CS_DT_CONVFMT │ │ │ │ │ +621#define CS_DT_CONVFMT CS_DT_CONVFMT │ │ │ │ │ +622}; │ │ │ │ │ +623 │ │ │ │ │ +624/* DT_CONVFMT types */ │ │ │ │ │ +625enum │ │ │ │ │ +626{ │ │ │ │ │ +627 CS_DATES_SHORT = 0, │ │ │ │ │ +628#define CS_DATES_SHORT CS_DATES_SHORT │ │ │ │ │ +629 CS_DATES_MDY1, │ │ │ │ │ +630#define CS_DATES_MDY1 CS_DATES_MDY1 │ │ │ │ │ +631 CS_DATES_YMD1, │ │ │ │ │ +632#define CS_DATES_YMD1 CS_DATES_YMD1 │ │ │ │ │ +633 CS_DATES_DMY1, │ │ │ │ │ +634#define CS_DATES_DMY1 CS_DATES_DMY1 │ │ │ │ │ +635 CS_DATES_DMY2, │ │ │ │ │ +636#define CS_DATES_DMY2 CS_DATES_DMY2 │ │ │ │ │ +637 CS_DATES_DMY3, │ │ │ │ │ +638#define CS_DATES_DMY3 CS_DATES_DMY3 │ │ │ │ │ +639 CS_DATES_DMY4, │ │ │ │ │ +640#define CS_DATES_DMY4 CS_DATES_DMY4 │ │ │ │ │ +641 CS_DATES_MDY2, │ │ │ │ │ +642#define CS_DATES_MDY2 CS_DATES_MDY2 │ │ │ │ │ +643 CS_DATES_HMS, │ │ │ │ │ +644#define CS_DATES_HMS CS_DATES_HMS │ │ │ │ │ +645 CS_DATES_LONG, │ │ │ │ │ +646#define CS_DATES_LONG CS_DATES_LONG │ │ │ │ │ +647 CS_DATES_MDY3, │ │ │ │ │ +648#define CS_DATES_MDY3 CS_DATES_MDY3 │ │ │ │ │ +649 CS_DATES_YMD2, │ │ │ │ │ +650#define CS_DATES_YMD2 CS_DATES_YMD2 │ │ │ │ │ +651 CS_DATES_YMD3, │ │ │ │ │ +652#define CS_DATES_YMD3 CS_DATES_YMD3 │ │ │ │ │ +653 CS_DATES_YDM1, │ │ │ │ │ +654#define CS_DATES_YDM1 CS_DATES_YDM1 │ │ │ │ │ +655 CS_DATES_MYD1, │ │ │ │ │ +656#define CS_DATES_MYD1 CS_DATES_MYD1 │ │ │ │ │ +657 CS_DATES_DYM1, │ │ │ │ │ +658#define CS_DATES_DYM1 CS_DATES_DYM1 │ │ │ │ │ +659 CS_DATES_MDY1_YYYY = 101, │ │ │ │ │ +660#define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY │ │ │ │ │ +661 CS_DATES_YMD1_YYYY, │ │ │ │ │ +662#define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY │ │ │ │ │ +663 CS_DATES_DMY1_YYYY, │ │ │ │ │ +664#define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY │ │ │ │ │ +665 CS_DATES_DMY2_YYYY, │ │ │ │ │ +666#define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY │ │ │ │ │ +667 CS_DATES_DMY3_YYYY, │ │ │ │ │ +668#define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY │ │ │ │ │ +669 CS_DATES_DMY4_YYYY, │ │ │ │ │ +670#define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY │ │ │ │ │ +671 CS_DATES_MDY2_YYYY, │ │ │ │ │ +672#define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY │ │ │ │ │ +673 CS_DATES_MDY3_YYYY = 110, │ │ │ │ │ +674#define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY │ │ │ │ │ +675 CS_DATES_YMD2_YYYY, │ │ │ │ │ +676#define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY │ │ │ │ │ +677 CS_DATES_YMD3_YYYY │ │ │ │ │ +678#define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY │ │ │ │ │ +679}; │ │ │ │ │ +680 │ │ │ │ │ +681typedef CS_RETCODE(*CS_CONV_FUNC) (_C_S___C_O_N_T_E_X_T * context, _C_S___D_A_T_A_F_M_T * │ │ │ │ │ +srcfmt, CS_VOID * src, _C_S___D_A_T_A_F_M_T * detsfmt, CS_VOID * dest, │ │ │ │ │ +682 CS_INT * destlen); │ │ │ │ │ +683 │ │ │ │ │ +_6_8_4typedef struct ___c_s___o_b_j_n_a_m_e │ │ │ │ │ +685{ │ │ │ │ │ +686 CS_BOOL thinkexists; │ │ │ │ │ +687 CS_INT object_type; │ │ │ │ │ +688 CS_CHAR last_name[CS_MAX_NAME]; │ │ │ │ │ +689 CS_INT lnlen; │ │ │ │ │ +690 CS_CHAR first_name[CS_MAX_NAME]; │ │ │ │ │ +691 CS_INT fnlen; │ │ │ │ │ +692 CS_VOID *scope; │ │ │ │ │ +693 CS_INT scopelen; │ │ │ │ │ +694 CS_VOID *thread; │ │ │ │ │ +695 CS_INT threadlen; │ │ │ │ │ +696} _C_S___O_B_J_N_A_M_E; │ │ │ │ │ +697 │ │ │ │ │ +_6_9_8typedef struct ___c_s___o_b_j_d_a_t_a │ │ │ │ │ +699{ │ │ │ │ │ +700 CS_BOOL actuallyexists; │ │ │ │ │ +701 _C_S___C_O_N_N_E_C_T_I_O_N *connection; │ │ │ │ │ +702 _C_S___C_O_M_M_A_N_D *command; │ │ │ │ │ +703 CS_VOID *buffer; │ │ │ │ │ +704 CS_INT buflen; │ │ │ │ │ +705} _C_S___O_B_J_D_A_T_A; │ │ │ │ │ +706 │ │ │ │ │ +707/* Eventually, these should be in terms of TDS values */ │ │ │ │ │ +708enum │ │ │ │ │ +709{ │ │ │ │ │ +710 CS_OPT_MONDAY = 1, │ │ │ │ │ +711 CS_OPT_TUESDAY, │ │ │ │ │ +712 CS_OPT_WEDNESDAY, │ │ │ │ │ +713 CS_OPT_THURSDAY, │ │ │ │ │ +714 CS_OPT_FRIDAY, │ │ │ │ │ +715 CS_OPT_SATURDAY, │ │ │ │ │ +716 CS_OPT_SUNDAY │ │ │ │ │ +717}; │ │ │ │ │ +718enum │ │ │ │ │ +719{ │ │ │ │ │ +720 CS_OPT_FMTMDY = 1, │ │ │ │ │ +721 CS_OPT_FMTDMY, │ │ │ │ │ +722 CS_OPT_FMTYMD, │ │ │ │ │ +723 CS_OPT_FMTYDM, │ │ │ │ │ +724 CS_OPT_FMTMYD, │ │ │ │ │ +725 CS_OPT_FMTDYM │ │ │ │ │ +726}; │ │ │ │ │ +727enum │ │ │ │ │ +728{ │ │ │ │ │ +729 CS_OPT_LEVEL0 = 0, │ │ │ │ │ +730 CS_OPT_LEVEL1, │ │ │ │ │ +731 CS_OPT_LEVEL2, │ │ │ │ │ +732 CS_OPT_LEVEL3 │ │ │ │ │ +733}; │ │ │ │ │ +734 │ │ │ │ │ +735#define CS_FALSE 0 │ │ │ │ │ +736#define CS_TRUE 1 │ │ │ │ │ +737 │ │ │ │ │ +738#define SRV_PROC CS_VOID │ │ │ │ │ +739 │ │ │ │ │ +740/* constants required for ct_diag (not jet implemented) */ │ │ │ │ │ +741#define CS_CLIENTMSG_TYPE 4700 │ │ │ │ │ +742#define CS_SERVERMSG_TYPE 4701 │ │ │ │ │ +743#define CS_ALLMSG_TYPE 4702 │ │ │ │ │ +744 │ │ │ │ │ +745CS_RETCODE cs_convert(_C_S___C_O_N_T_E_X_T * ctx, _C_S___D_A_T_A_F_M_T * srcfmt, CS_VOID * │ │ │ │ │ +srcdata, _C_S___D_A_T_A_F_M_T * destfmt, CS_VOID * destdata, │ │ │ │ │ +746 CS_INT * resultlen); │ │ │ │ │ +747CS_RETCODE cs_ctx_alloc(CS_INT version, _C_S___C_O_N_T_E_X_T ** ctx); │ │ │ │ │ +748CS_RETCODE cs_ctx_global(CS_INT version, _C_S___C_O_N_T_E_X_T ** ctx); │ │ │ │ │ +749CS_RETCODE cs_ctx_drop(_C_S___C_O_N_T_E_X_T * ctx); │ │ │ │ │ +750CS_RETCODE cs_config(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT property, │ │ │ │ │ +CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +751CS_RETCODE cs_strbuild(_C_S___C_O_N_T_E_X_T * ctx, CS_CHAR * buffer, CS_INT buflen, │ │ │ │ │ +CS_INT * resultlen, CS_CHAR * text, CS_INT textlen, │ │ │ │ │ +752 CS_CHAR * formats, CS_INT formatlen, ...); │ │ │ │ │ +753#undef cs_dt_crack │ │ │ │ │ +754CS_RETCODE cs_dt_crack(_C_S___C_O_N_T_E_X_T * ctx, CS_INT datetype, CS_VOID * dateval, │ │ │ │ │ +_C_S___D_A_T_E_R_E_C * daterec); │ │ │ │ │ +755CS_RETCODE cs_dt_crack_v2(_C_S___C_O_N_T_E_X_T * ctx, CS_INT datetype, CS_VOID * │ │ │ │ │ +dateval, _C_S___D_A_T_E_R_E_C * daterec); │ │ │ │ │ +756#define cs_dt_crack cs_dt_crack_v2 │ │ │ │ │ +757CS_RETCODE cs_loc_alloc(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E ** locptr); │ │ │ │ │ +758CS_RETCODE cs_loc_drop(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * locale); │ │ │ │ │ +759CS_RETCODE cs_locale(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, _C_S___L_O_C_A_L_E * locale, │ │ │ │ │ +CS_INT type, CS_VOID * buffer, CS_INT buflen, │ │ │ │ │ +760 CS_INT * outlen); │ │ │ │ │ +761CS_RETCODE cs_dt_info(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, _C_S___L_O_C_A_L_E * locale, │ │ │ │ │ +CS_INT type, CS_INT item, CS_VOID * buffer, │ │ │ │ │ +762 CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +763 │ │ │ │ │ +764CS_RETCODE cs_calc(_C_S___C_O_N_T_E_X_T * ctx, CS_INT op, CS_INT datatype, CS_VOID * │ │ │ │ │ +var1, CS_VOID * var2, CS_VOID * dest); │ │ │ │ │ +765CS_RETCODE cs_cmp(_C_S___C_O_N_T_E_X_T * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID │ │ │ │ │ +* var2, CS_INT * result); │ │ │ │ │ +766CS_RETCODE cs_conv_mult(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * srcloc, _C_S___L_O_C_A_L_E * │ │ │ │ │ +destloc, CS_INT * conv_multiplier); │ │ │ │ │ +767CS_RETCODE cs_diag(_C_S___C_O_N_T_E_X_T * ctx, CS_INT operation, CS_INT type, CS_INT │ │ │ │ │ +idx, CS_VOID * buffer); │ │ │ │ │ +768CS_RETCODE cs_manage_convert(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT │ │ │ │ │ +srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype, │ │ │ │ │ +769 CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, │ │ │ │ │ +CS_CONV_FUNC * func); │ │ │ │ │ +770CS_RETCODE cs_objects(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, _C_S___O_B_J_N_A_M_E * objname, │ │ │ │ │ +_C_S___O_B_J_D_A_T_A * objdata); │ │ │ │ │ +771CS_RETCODE cs_set_convert(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT srctype, │ │ │ │ │ +CS_INT desttype, CS_CONV_FUNC * func); │ │ │ │ │ +772CS_RETCODE cs_setnull(_C_S___C_O_N_T_E_X_T * ctx, _C_S___D_A_T_A_F_M_T * datafmt, CS_VOID * │ │ │ │ │ +buffer, CS_INT buflen); │ │ │ │ │ +773CS_RETCODE cs_strcmp(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * locale, CS_INT type, │ │ │ │ │ +CS_CHAR * str1, CS_INT len1, CS_CHAR * str2, CS_INT len2, │ │ │ │ │ +774 CS_INT * result); │ │ │ │ │ +775CS_RETCODE cs_time(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * locale, CS_VOID * buffer, │ │ │ │ │ +CS_INT buflen, CS_INT * outlen, _C_S___D_A_T_E_R_E_C * daterec); │ │ │ │ │ +776CS_RETCODE cs_will_convert(_C_S___C_O_N_T_E_X_T * ctx, CS_INT srctype, CS_INT │ │ │ │ │ +desttype, CS_BOOL * result); │ │ │ │ │ +777 │ │ │ │ │ +778const char * cs_prretcode(int retcode); │ │ │ │ │ +779 │ │ │ │ │ +780#ifdef __cplusplus │ │ │ │ │ +781#if 0 │ │ │ │ │ +782{ │ │ │ │ │ +783#endif │ │ │ │ │ +784} │ │ │ │ │ +785#endif │ │ │ │ │ +786 │ │ │ │ │ +787#endif │ │ │ │ │ +___c_s___o_b_j_n_a_m_e │ │ │ │ │ +DDeeffiinniittiioonn cspublic.h:685 │ │ │ │ │ +___c_s___o_b_j_d_a_t_a │ │ │ │ │ +DDeeffiinniittiioonn cspublic.h:699 │ │ │ │ │ +___c_s___d_a_t_a_f_m_t │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ +___c_s___d_a_t_e_r_e_c │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:159 │ │ │ │ │ +___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:177 │ │ │ │ │ +___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:191 │ │ │ │ │ +___c_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:75 │ │ │ │ │ +___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ +___c_s___c_o_m_m_a_n_d │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:212 │ │ │ │ │ +___c_s___b_l_k_d_e_s_c │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:239 │ │ │ │ │ +___c_s___l_o_c_a_l_e │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:248 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00473_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/ctlib.h Source File │ │ │ │ +FreeTDS API: include/cstypes.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
ctlib.h
│ │ │ │ +
cstypes.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,337 +96,250 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _ctlib_h_
│ │ │ │ -
21#define _ctlib_h_
│ │ │ │ +
20#ifndef _cstypes_h_
│ │ │ │ +
21#define _cstypes_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/tds.h>
│ │ │ │ -
24#include <freetds/convert.h>
│ │ │ │ -
25#include <freetds/utils/string.h>
│ │ │ │ -
26
│ │ │ │ -
27/*
│ │ │ │ -
28 * Internal (not part of the exposed API) prototypes and such.
│ │ │ │ -
29 */
│ │ │ │ -
30
│ │ │ │ -
31#include <freetds/pushvis.h>
│ │ │ │ +
23#include "tds_sysdep_public.h"
│ │ │ │ +
24
│ │ │ │ +
25#ifdef __cplusplus
│ │ │ │ +
26extern "C"
│ │ │ │ +
27{
│ │ │ │ +
28#if 0
│ │ │ │ +
29}
│ │ │ │ +
30#endif
│ │ │ │ +
31#endif
│ │ │ │
32
│ │ │ │ -
33#ifdef __cplusplus
│ │ │ │ -
34extern "C"
│ │ │ │ -
35{
│ │ │ │ -
36#if 0
│ │ │ │ -
37}
│ │ │ │ -
38#endif
│ │ │ │ -
39#endif
│ │ │ │ -
40
│ │ │ │ -
41/*
│ │ │ │ -
42 * internal types
│ │ │ │ -
43 */
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
45{
│ │ │ │ -
46 short cs_expose_formats;
│ │ │ │ -
47};
│ │ │ │ -
│ │ │ │ -
48
│ │ │ │ -
49/* Code changed for error handling */
│ │ │ │ -
50/* Code changes starts here - CT_DIAG - 01 */
│ │ │ │ -
51
│ │ │ │ -
52/* This structure is used in CT_DIAG */
│ │ │ │ -
53
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
55{
│ │ │ │ -
56 CS_CLIENTMSG *clientmsg;
│ │ │ │ -
57 struct cs_diag_msg_client *next;
│ │ │ │ -
58};
│ │ │ │ -
│ │ │ │ -
59
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
61{
│ │ │ │ -
62 CS_SERVERMSG *servermsg;
│ │ │ │ -
63 struct cs_diag_msg_svr *next;
│ │ │ │ -
64};
│ │ │ │ -
│ │ │ │ -
65
│ │ │ │ -
66/* Code changes ends here - CT_DIAG - 01 */
│ │ │ │ +
33typedef int32_t CS_INT;
│ │ │ │ +
34typedef uint32_t CS_UINT;
│ │ │ │ +
35typedef int64_t CS_BIGINT;
│ │ │ │ +
36typedef uint64_t CS_UBIGINT;
│ │ │ │ +
37typedef int16_t CS_SMALLINT;
│ │ │ │ +
38typedef uint16_t CS_USMALLINT;
│ │ │ │ +
39typedef unsigned char CS_TINYINT;
│ │ │ │ +
40typedef char CS_CHAR;
│ │ │ │ +
41typedef unsigned char CS_BYTE;
│ │ │ │ +
42typedef tds_sysdep_real32_type CS_REAL;
│ │ │ │ +
43typedef tds_sysdep_real64_type CS_FLOAT;
│ │ │ │ +
44typedef int32_t CS_BOOL;
│ │ │ │ +
45typedef void CS_VOID;
│ │ │ │ +
46typedef unsigned char CS_IMAGE;
│ │ │ │ +
47typedef unsigned char CS_TEXT;
│ │ │ │ +
48typedef unsigned char CS_LONGBINARY;
│ │ │ │ +
49typedef unsigned char CS_LONGCHAR;
│ │ │ │ +
50typedef long CS_LONG;
│ │ │ │ +
51typedef unsigned char CS_BINARY;
│ │ │ │ +
52typedef uint16_t CS_USHORT;
│ │ │ │ +
53typedef unsigned char CS_BIT;
│ │ │ │ +
54
│ │ │ │ +
55typedef CS_INT CS_RETCODE;
│ │ │ │ +
56
│ │ │ │ +
57#define CS_MAX_NAME 132
│ │ │ │ +
58#define CS_MAX_SCALE 77
│ │ │ │ +
59#define CS_MAX_PREC 77 /* used by php */
│ │ │ │ +
60#define CS_MAX_NUMLEN 33 /* used by roguewave */
│ │ │ │ +
61#define CS_MAX_MSG 1024
│ │ │ │ +
62#define CS_SQLSTATE_SIZE 8
│ │ │ │ +
63#define CS_OBJ_NAME 400
│ │ │ │ +
64#define CS_TP_SIZE 16 /* text pointer */
│ │ │ │ +
65#define CS_TS_SIZE 8 /* length of timestamp */
│ │ │ │ +
66
│ │ │ │
67
│ │ │ │
│ │ │ │ - │ │ │ │ +
68typedef struct _cs_numeric
│ │ │ │
69{
│ │ │ │ -
70 CS_CLIENTMSG *msg;
│ │ │ │ -
71 struct cs_diag_msg *next;
│ │ │ │ -
72};
│ │ │ │ -
│ │ │ │ -
73
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
75{
│ │ │ │ -
76 CS_INT date_convert_fmt;
│ │ │ │ -
77 CS_INT cs_errhandletype;
│ │ │ │ -
78 CS_INT cs_diag_msglimit;
│ │ │ │ -
79
│ │ │ │ -
80 /* added for storing the maximum messages limit CT_DIAG */
│ │ │ │ -
81 /* code changes starts here - CT_DIAG - 02 */
│ │ │ │ +
70 unsigned char precision;
│ │ │ │ +
71 unsigned char scale;
│ │ │ │ +
72 unsigned char array[CS_MAX_NUMLEN];
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
74
│ │ │ │ + │ │ │ │ +
76
│ │ │ │ +
│ │ │ │ +
77typedef struct _cs_varbinary
│ │ │ │ +
78{
│ │ │ │ +
79 CS_SMALLINT len;
│ │ │ │ +
80 CS_CHAR array[256];
│ │ │ │ + │ │ │ │ +
│ │ │ │
82
│ │ │ │ -
83 CS_INT cs_diag_msglimit_client;
│ │ │ │ -
84 CS_INT cs_diag_msglimit_server;
│ │ │ │ -
85 CS_INT cs_diag_msglimit_total;
│ │ │ │ -
86 struct cs_diag_msg_client *clientstore;
│ │ │ │ -
87 struct cs_diag_msg_svr *svrstore;
│ │ │ │ +
│ │ │ │ +
83typedef struct _cs_varchar
│ │ │ │ +
84{
│ │ │ │ +
85 CS_SMALLINT len; /* length of the string */
│ │ │ │ +
86 CS_CHAR str[256]; /* string, no NULL terminator */
│ │ │ │ + │ │ │ │ +
│ │ │ │
88
│ │ │ │ -
89 /* code changes ends here - CT_DIAG - 02 */
│ │ │ │ -
90
│ │ │ │ -
91 struct cs_diag_msg *msgstore;
│ │ │ │ -
92 CS_CSLIBMSG_FUNC _cslibmsg_cb;
│ │ │ │ -
93 CS_CLIENTMSG_FUNC _clientmsg_cb;
│ │ │ │ -
94 CS_SERVERMSG_FUNC _servermsg_cb;
│ │ │ │ -
95 /* code changes start here - CS_CONFIG - 01*/
│ │ │ │ -
96 void *userdata;
│ │ │ │ -
97 int userdata_len;
│ │ │ │ -
98 /* code changes end here - CS_CONFIG - 01*/
│ │ │ │ -
99 TDSCONTEXT *tds_ctx;
│ │ │ │ -
100 CS_CONFIG config;
│ │ │ │ - │ │ │ │ - │ │ │ │ -
103};
│ │ │ │ -
│ │ │ │ -
104
│ │ │ │ -
105/*
│ │ │ │ -
106 * internal typedefs
│ │ │ │ -
107 */
│ │ │ │ -
│ │ │ │ -
108typedef struct _ct_colinfo
│ │ │ │ -
109{
│ │ │ │ -
110 TDS_SMALLINT *indicator;
│ │ │ │ -
111}
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
113
│ │ │ │ -
114typedef struct _cs_dynamic CS_DYNAMIC;
│ │ │ │ -
115
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
117{
│ │ │ │ -
118 CS_CONTEXT *ctx;
│ │ │ │ - │ │ │ │ - │ │ │ │ -
121 CS_CLIENTMSG_FUNC _clientmsg_cb;
│ │ │ │ -
122 CS_SERVERMSG_FUNC _servermsg_cb;
│ │ │ │ -
123 void *userdata;
│ │ │ │ -
124 int userdata_len;
│ │ │ │ +
89typedef struct _cs_config CS_CONFIG;
│ │ │ │ +
90typedef struct _cs_context CS_CONTEXT;
│ │ │ │ +
91typedef struct _cs_connection CS_CONNECTION;
│ │ │ │ +
92typedef struct _cs_locale CS_LOCALE;
│ │ │ │ +
93typedef struct _cs_command CS_COMMAND;
│ │ │ │ +
94typedef struct _cs_blk_row CS_BLK_ROW;
│ │ │ │ +
95
│ │ │ │ +
│ │ │ │ +
96typedef struct _cs_iodesc
│ │ │ │ +
97{
│ │ │ │ +
98 CS_INT iotype;
│ │ │ │ +
99 CS_INT datatype;
│ │ │ │ +
100 CS_LOCALE *locale;
│ │ │ │ +
101 CS_INT usertype;
│ │ │ │ +
102 CS_INT total_txtlen;
│ │ │ │ +
103 CS_INT offset;
│ │ │ │ +
104 CS_BOOL log_on_update;
│ │ │ │ +
105 CS_CHAR name[CS_OBJ_NAME];
│ │ │ │ +
106 CS_INT namelen;
│ │ │ │ +
107 CS_BYTE timestamp[CS_TS_SIZE];
│ │ │ │ +
108 CS_INT timestamplen;
│ │ │ │ +
109 CS_BYTE textptr[CS_TP_SIZE];
│ │ │ │ +
110 CS_INT textptrlen;
│ │ │ │ +
111} CS_IODESC;
│ │ │ │ +
│ │ │ │ +
112
│ │ │ │ +
│ │ │ │ +
113typedef struct _cs_datafmt
│ │ │ │ +
114{
│ │ │ │ +
115 CS_CHAR name[CS_MAX_NAME];
│ │ │ │ +
116 CS_INT namelen;
│ │ │ │ +
117 CS_INT datatype;
│ │ │ │ +
118 CS_INT format;
│ │ │ │ +
119 CS_INT maxlength;
│ │ │ │ +
120 CS_INT scale;
│ │ │ │ +
121 CS_INT precision;
│ │ │ │ +
122 CS_INT status;
│ │ │ │ +
123 CS_INT count;
│ │ │ │ +
124 CS_INT usertype;
│ │ │ │
125 CS_LOCALE *locale;
│ │ │ │ -
126 CS_COMMAND *cmds;
│ │ │ │ -
127 CS_DYNAMIC *dynlist;
│ │ │ │ -
128 char *server_addr;
│ │ │ │ -
129 bool network_auth;
│ │ │ │ -
130};
│ │ │ │ -
│ │ │ │ -
131
│ │ │ │ -
132/*
│ │ │ │ -
133 * Formerly CSREMOTE_PROC_PARAM, this structure can be used in other
│ │ │ │ -
134 * places, too.
│ │ │ │ -
135 */
│ │ │ │ -
136
│ │ │ │ -
│ │ │ │ -
137typedef struct _cs_param
│ │ │ │ -
138{
│ │ │ │ -
139 struct _cs_param *next;
│ │ │ │ -
140 char *name;
│ │ │ │ -
141 int status;
│ │ │ │ -
142 int datatype;
│ │ │ │ -
143 CS_INT maxlen;
│ │ │ │ -
144 CS_INT scale;
│ │ │ │ -
145 CS_INT precision;
│ │ │ │ -
146 CS_INT *datalen;
│ │ │ │ -
147 CS_SMALLINT *ind;
│ │ │ │ -
148 CS_BYTE *value;
│ │ │ │ -
149 int param_by_value;
│ │ │ │ -
150 CS_INT datalen_value;
│ │ │ │ -
151 CS_SMALLINT indicator_value;
│ │ │ │ -
152} CS_PARAM;
│ │ │ │ -
│ │ │ │ -
153
│ │ │ │ -
154/*
│ │ │ │ -
155 * Code added for RPC functionality - SUHA
│ │ │ │ -
156 * RPC Code changes starts here
│ │ │ │ -
157 */
│ │ │ │ -
158
│ │ │ │ - │ │ │ │ -
160
│ │ │ │ -
│ │ │ │ -
161typedef struct _csremote_proc
│ │ │ │ -
162{
│ │ │ │ -
163 char *name;
│ │ │ │ -
164 CS_SMALLINT options;
│ │ │ │ -
165 CSREMOTE_PROC_PARAM *param_list;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
167
│ │ │ │ -
168/*
│ │ │ │ -
169 * Structure CS_COMMAND changed for RPC functionality -SUHA
│ │ │ │ -
170 * Added CSREMOTE_PROC *rpc to CS_COMMAND structure
│ │ │ │ -
171 */
│ │ │ │ -
172
│ │ │ │ - │ │ │ │ -
174
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
176{
│ │ │ │ -
177 struct _cs_dynamic *next;
│ │ │ │ -
178 char *id;
│ │ │ │ -
179 char *stmt;
│ │ │ │ -
180 CS_DYNAMIC_PARAM *param_list;
│ │ │ │ -
181 TDSDYNAMIC *tdsdyn;
│ │ │ │ -
182};
│ │ │ │ -
│ │ │ │ -
183
│ │ │ │ -
184/* specific FreeTDS commands */
│ │ │ │ -
185#define CS_DYNAMIC_CMD 160
│ │ │ │ -
186#define CS_CUR_CMD 161
│ │ │ │ -
187
│ │ │ │ -
188/* values for cs_command.results_state */
│ │ │ │ +
126} CS_DATAFMT;
│ │ │ │ +
│ │ │ │ +
127
│ │ │ │ +
│ │ │ │ +
128typedef struct _cs_money
│ │ │ │ +
129{
│ │ │ │ +
130 CS_INT mnyhigh;
│ │ │ │ +
131 CS_UINT mnylow;
│ │ │ │ +
132} CS_MONEY;
│ │ │ │ +
│ │ │ │ +
133
│ │ │ │ +
│ │ │ │ +
134typedef struct _cs_money4
│ │ │ │ +
135{
│ │ │ │ +
136 CS_INT mny4;
│ │ │ │ +
137} CS_MONEY4;
│ │ │ │ +
│ │ │ │ +
138
│ │ │ │ +
139typedef CS_INT CS_DATE;
│ │ │ │ +
140
│ │ │ │ +
141typedef CS_INT CS_TIME;
│ │ │ │ +
142
│ │ │ │ +
143typedef CS_UBIGINT CS_BIGDATETIME;
│ │ │ │ +
144typedef CS_UBIGINT CS_BIGTIME;
│ │ │ │ +
145
│ │ │ │ +
│ │ │ │ +
146typedef struct _cs_datetime
│ │ │ │ +
147{
│ │ │ │ +
148 CS_INT dtdays;
│ │ │ │ +
149 CS_INT dttime;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
151
│ │ │ │ +
│ │ │ │ +
152typedef struct _cs_datetime4
│ │ │ │ +
153{
│ │ │ │ +
154 CS_USHORT days;
│ │ │ │ +
155 CS_USHORT minutes;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
157
│ │ │ │ +
│ │ │ │ +
158typedef struct _cs_daterec
│ │ │ │ +
159{
│ │ │ │ +
160 CS_INT dateyear;
│ │ │ │ +
161 CS_INT datemonth;
│ │ │ │ +
162 CS_INT datedmonth;
│ │ │ │ +
163 CS_INT datedyear;
│ │ │ │ +
164 CS_INT datedweek;
│ │ │ │ +
165 CS_INT datehour;
│ │ │ │ +
166 CS_INT dateminute;
│ │ │ │ +
167 CS_INT datesecond;
│ │ │ │ +
168 CS_INT datemsecond;
│ │ │ │ +
169 CS_INT datetzone;
│ │ │ │ +
170 CS_INT datesecfrac;
│ │ │ │ +
171 CS_INT datesecprec;
│ │ │ │ +
172} CS_DATEREC;
│ │ │ │ +
│ │ │ │ +
173
│ │ │ │ +
174typedef CS_INT CS_MSGNUM;
│ │ │ │ +
175
│ │ │ │ +
│ │ │ │ +
176typedef struct _cs_clientmsg
│ │ │ │ +
177{
│ │ │ │ +
178 CS_INT severity;
│ │ │ │ +
179 CS_MSGNUM msgnumber;
│ │ │ │ +
180 CS_CHAR msgstring[CS_MAX_MSG];
│ │ │ │ +
181 CS_INT msgstringlen;
│ │ │ │ +
182 CS_INT osnumber;
│ │ │ │ +
183 CS_CHAR osstring[CS_MAX_MSG];
│ │ │ │ +
184 CS_INT osstringlen;
│ │ │ │ +
185 CS_INT status;
│ │ │ │ +
186 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
│ │ │ │ +
187 CS_INT sqlstatelen;
│ │ │ │ + │ │ │ │ +
│ │ │ │
189
│ │ │ │ -
190#define _CS_RES_NONE -1
│ │ │ │ -
191#define _CS_RES_INIT 0
│ │ │ │ -
192#define _CS_RES_RESULTSET_EMPTY 1
│ │ │ │ -
193#define _CS_RES_RESULTSET_ROWS 2
│ │ │ │ -
194#define _CS_RES_STATUS 3
│ │ │ │ -
195#define _CS_RES_CMD_DONE 4
│ │ │ │ -
196#define _CS_RES_CMD_SUCCEED 5
│ │ │ │ -
197#define _CS_RES_END_RESULTS 6
│ │ │ │ -
198#define _CS_RES_DESCRIBE_RESULT 7
│ │ │ │ -
199
│ │ │ │ -
200/* values for cs_command.command_state */
│ │ │ │ -
201
│ │ │ │ -
202#define _CS_COMMAND_IDLE 0
│ │ │ │ -
203#define _CS_COMMAND_BUILDING 1
│ │ │ │ -
204#define _CS_COMMAND_READY 2
│ │ │ │ -
205#define _CS_COMMAND_SENT 3
│ │ │ │ +
│ │ │ │ +
190typedef struct _cs_servermsg
│ │ │ │ +
191{
│ │ │ │ +
192 CS_MSGNUM msgnumber;
│ │ │ │ +
193 CS_INT state;
│ │ │ │ +
194 CS_INT severity;
│ │ │ │ +
195 CS_CHAR text[CS_MAX_MSG];
│ │ │ │ +
196 CS_INT textlen;
│ │ │ │ +
197 CS_CHAR svrname[CS_MAX_NAME];
│ │ │ │ +
198 CS_INT svrnlen;
│ │ │ │ +
199 CS_CHAR proc[CS_MAX_NAME];
│ │ │ │ +
200 CS_INT proclen;
│ │ │ │ +
201 CS_INT line;
│ │ │ │ +
202 CS_INT status;
│ │ │ │ +
203 CS_BYTE sqlstate[CS_SQLSTATE_SIZE];
│ │ │ │ +
204 CS_INT sqlstatelen;
│ │ │ │ + │ │ │ │ +
│ │ │ │
206
│ │ │ │ -
207/* values for cs_command.cancel_state */
│ │ │ │ -
208#define _CS_CANCEL_NOCANCEL 0
│ │ │ │ -
209#define _CS_CANCEL_PENDING 1
│ │ │ │ -
210
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
212{
│ │ │ │ -
213 struct _cs_command *next;
│ │ │ │ -
214 CS_INT command_state;
│ │ │ │ -
215 CS_INT results_state;
│ │ │ │ -
216 CS_INT cancel_state;
│ │ │ │ -
217 CS_INT cursor_state;
│ │ │ │ -
218 CS_CONNECTION *con;
│ │ │ │ -
219 CS_INT command_type;
│ │ │ │ -
220 CS_CHAR *query;
│ │ │ │ -
221 short dynamic_cmd;
│ │ │ │ -
222 CS_DYNAMIC *dyn;
│ │ │ │ -
223 int row_prefetched;
│ │ │ │ -
224 int curr_result_type;
│ │ │ │ -
225 int bind_count;
│ │ │ │ -
226 int get_data_item;
│ │ │ │ -
227 int get_data_bytes_returned;
│ │ │ │ -
228 CS_IODESC *iodesc;
│ │ │ │ -
229 CS_INT send_data_started;
│ │ │ │ -
230 CSREMOTE_PROC *rpc;
│ │ │ │ -
231 CS_PARAM *input_params;
│ │ │ │ -
232 CS_INT client_cursor_id;
│ │ │ │ -
233 TDSCURSOR *cursor;
│ │ │ │ -
234 void *userdata;
│ │ │ │ -
235 int userdata_len;
│ │ │ │ -
236};
│ │ │ │ -
│ │ │ │ -
237
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
239{
│ │ │ │ -
240 TDSBCPINFO bcpinfo;
│ │ │ │ -
241};
│ │ │ │ -
│ │ │ │ -
242
│ │ │ │ -
243
│ │ │ │ -
244#define _CS_ERRHAND_INLINE 1
│ │ │ │ -
245#define _CS_ERRHAND_CB 2
│ │ │ │ -
246
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
248{
│ │ │ │ -
249 char *language;
│ │ │ │ -
250 char *charset;
│ │ │ │ -
251 char *time;
│ │ │ │ -
252 char *collate;
│ │ │ │ -
253};
│ │ │ │ -
│ │ │ │ -
254
│ │ │ │ -
255/* internal defines for cursor processing */
│ │ │ │ -
256
│ │ │ │ -
257#define _CS_CURS_TYPE_UNACTIONED 0
│ │ │ │ -
258#define _CS_CURS_TYPE_REQUESTED 1
│ │ │ │ -
259#define _CS_CURS_TYPE_SENT 2
│ │ │ │ -
260
│ │ │ │ -
261/*
│ │ │ │ -
262 * internal prototypes
│ │ │ │ -
263 */
│ │ │ │ -
264TDSRET _ct_handle_server_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
│ │ │ │ -
265int _ct_handle_client_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
│ │ │ │ -
266TDS_SERVER_TYPE _ct_get_server_type(TDSSOCKET *tds, int datatype);
│ │ │ │ -
267int _ct_bind_data(CS_CONTEXT *ctx, TDSRESULTINFO * resinfo, TDSRESULTINFO *bindinfo, CS_INT offset);
│ │ │ │ -
268int _ct_get_client_type(const TDSCOLUMN *col, bool describe);
│ │ │ │ -
269void _ctclient_msg(CS_CONNECTION * con, const char *funcname, int layer, int origin, int severity, int number,
│ │ │ │ -
270 const char *fmt, ...);
│ │ │ │ -
271CS_INT _ct_diag_clearmsg(CS_CONTEXT * context, CS_INT type);
│ │ │ │ -
272void _cs_locale_free(CS_LOCALE *locale);
│ │ │ │ -
273CS_LOCALE *_cs_locale_copy(CS_LOCALE *orig);
│ │ │ │ -
274int _cs_locale_copy_inplace(CS_LOCALE *new_locale, CS_LOCALE *orig);
│ │ │ │ -
275
│ │ │ │ -
276int _cs_convert_not_client(CS_CONTEXT *ctx, const TDSCOLUMN *curcol, CONV_RESULT *convert_buffer, unsigned char **p_src);
│ │ │ │ -
277
│ │ │ │ -
278#ifdef __cplusplus
│ │ │ │ -
279#if 0
│ │ │ │ -
280{
│ │ │ │ -
281#endif
│ │ │ │ -
282}
│ │ │ │ -
283#endif
│ │ │ │ -
284
│ │ │ │ -
285#include <freetds/popvis.h>
│ │ │ │ -
286
│ │ │ │ -
287#endif
│ │ │ │ -
Main include file for libtds.
│ │ │ │ +
207#ifdef __cplusplus
│ │ │ │ +
208#if 0
│ │ │ │ +
209{
│ │ │ │ +
210#endif
│ │ │ │ +
211}
│ │ │ │ +
212#endif
│ │ │ │ +
213
│ │ │ │ +
214#endif
│ │ │ │ +
Definition cstypes.h:69
│ │ │ │ +
Definition cstypes.h:78
│ │ │ │ +
Definition cstypes.h:84
│ │ │ │
Definition cstypes.h:97
│ │ │ │ +
Definition cstypes.h:114
│ │ │ │ +
Definition cstypes.h:129
│ │ │ │ +
Definition cstypes.h:135
│ │ │ │ +
Definition cstypes.h:147
│ │ │ │ +
Definition cstypes.h:153
│ │ │ │ +
Definition cstypes.h:159
│ │ │ │
Definition cstypes.h:177
│ │ │ │
Definition cstypes.h:191
│ │ │ │
Definition ctlib.h:45
│ │ │ │ -
Definition ctlib.h:55
│ │ │ │ -
Definition ctlib.h:61
│ │ │ │ -
Definition ctlib.h:69
│ │ │ │
Definition ctlib.h:75
│ │ │ │ -
int login_timeout
not used unless positive
Definition ctlib.h:101
│ │ │ │ -
int query_timeout
not used unless positive
Definition ctlib.h:102
│ │ │ │ -
Definition ctlib.h:109
│ │ │ │
Definition ctlib.h:117
│ │ │ │ -
Definition ctlib.h:138
│ │ │ │ -
Definition ctlib.h:162
│ │ │ │ -
Definition ctlib.h:176
│ │ │ │
Definition ctlib.h:212
│ │ │ │ -
Definition ctlib.h:239
│ │ │ │
Definition ctlib.h:248
│ │ │ │ -
Definition convert.h:34
│ │ │ │ -
Definition tds.h:517
│ │ │ │ -
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ -
Hold information for any results.
Definition tds.h:769
│ │ │ │ -
Definition tds.h:876
│ │ │ │ -
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ -
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │ -
Definition tds.h:1029
│ │ │ │ -
Information for a server connection.
Definition tds.h:1163
│ │ │ │ -
Definition tds.h:1661
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -ctlib.h │ │ │ │ │ +cstypes.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,349 +19,238 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _ctlib_h_ │ │ │ │ │ -21#define _ctlib_h_ │ │ │ │ │ +20#ifndef _cstypes_h_ │ │ │ │ │ +21#define _cstypes_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include <_f_r_e_e_t_d_s_/_t_d_s_._h> │ │ │ │ │ -24#include │ │ │ │ │ -25#include │ │ │ │ │ -26 │ │ │ │ │ -27/* │ │ │ │ │ -28 * Internal (not part of the exposed API) prototypes and such. │ │ │ │ │ -29 */ │ │ │ │ │ -30 │ │ │ │ │ -31#include │ │ │ │ │ +23#include "tds_sysdep_public.h" │ │ │ │ │ +24 │ │ │ │ │ +25#ifdef __cplusplus │ │ │ │ │ +26extern "C" │ │ │ │ │ +27{ │ │ │ │ │ +28#if 0 │ │ │ │ │ +29} │ │ │ │ │ +30#endif │ │ │ │ │ +31#endif │ │ │ │ │ 32 │ │ │ │ │ -33#ifdef __cplusplus │ │ │ │ │ -34extern "C" │ │ │ │ │ -35{ │ │ │ │ │ -36#if 0 │ │ │ │ │ -37} │ │ │ │ │ -38#endif │ │ │ │ │ -39#endif │ │ │ │ │ -40 │ │ │ │ │ -41/* │ │ │ │ │ -42 * internal types │ │ │ │ │ -43 */ │ │ │ │ │ -_4_4struct ___c_s___c_o_n_f_i_g │ │ │ │ │ -45{ │ │ │ │ │ -46 short cs_expose_formats; │ │ │ │ │ -47}; │ │ │ │ │ -48 │ │ │ │ │ -49/* Code changed for error handling */ │ │ │ │ │ -50/* Code changes starts here - CT_DIAG - 01 */ │ │ │ │ │ -51 │ │ │ │ │ -52/* This structure is used in CT_DIAG */ │ │ │ │ │ -53 │ │ │ │ │ -_5_4struct _c_s___d_i_a_g___m_s_g___c_l_i_e_n_t │ │ │ │ │ -55{ │ │ │ │ │ -56 _C_S___C_L_I_E_N_T_M_S_G *clientmsg; │ │ │ │ │ -57 struct _c_s___d_i_a_g___m_s_g___c_l_i_e_n_t *next; │ │ │ │ │ -58}; │ │ │ │ │ -59 │ │ │ │ │ -_6_0struct _c_s___d_i_a_g___m_s_g___s_v_r │ │ │ │ │ -61{ │ │ │ │ │ -62 _C_S___S_E_R_V_E_R_M_S_G *servermsg; │ │ │ │ │ -63 struct _c_s___d_i_a_g___m_s_g___s_v_r *next; │ │ │ │ │ -64}; │ │ │ │ │ -65 │ │ │ │ │ -66/* Code changes ends here - CT_DIAG - 01 */ │ │ │ │ │ +33typedef int32_t CS_INT; │ │ │ │ │ +34typedef uint32_t CS_UINT; │ │ │ │ │ +35typedef int64_t CS_BIGINT; │ │ │ │ │ +36typedef uint64_t CS_UBIGINT; │ │ │ │ │ +37typedef int16_t CS_SMALLINT; │ │ │ │ │ +38typedef uint16_t CS_USMALLINT; │ │ │ │ │ +39typedef unsigned char CS_TINYINT; │ │ │ │ │ +40typedef char CS_CHAR; │ │ │ │ │ +41typedef unsigned char CS_BYTE; │ │ │ │ │ +42typedef tds_sysdep_real32_type CS_REAL; │ │ │ │ │ +43typedef tds_sysdep_real64_type CS_FLOAT; │ │ │ │ │ +44typedef int32_t CS_BOOL; │ │ │ │ │ +45typedef void CS_VOID; │ │ │ │ │ +46typedef unsigned char CS_IMAGE; │ │ │ │ │ +47typedef unsigned char CS_TEXT; │ │ │ │ │ +48typedef unsigned char CS_LONGBINARY; │ │ │ │ │ +49typedef unsigned char CS_LONGCHAR; │ │ │ │ │ +50typedef long CS_LONG; │ │ │ │ │ +51typedef unsigned char CS_BINARY; │ │ │ │ │ +52typedef uint16_t CS_USHORT; │ │ │ │ │ +53typedef unsigned char CS_BIT; │ │ │ │ │ +54 │ │ │ │ │ +55typedef CS_INT CS_RETCODE; │ │ │ │ │ +56 │ │ │ │ │ +57#define CS_MAX_NAME 132 │ │ │ │ │ +58#define CS_MAX_SCALE 77 │ │ │ │ │ +59#define CS_MAX_PREC 77 /* used by php */ │ │ │ │ │ +60#define CS_MAX_NUMLEN 33 /* used by roguewave */ │ │ │ │ │ +61#define CS_MAX_MSG 1024 │ │ │ │ │ +62#define CS_SQLSTATE_SIZE 8 │ │ │ │ │ +63#define CS_OBJ_NAME 400 │ │ │ │ │ +64#define CS_TP_SIZE 16 /* text pointer */ │ │ │ │ │ +65#define CS_TS_SIZE 8 /* length of timestamp */ │ │ │ │ │ +66 │ │ │ │ │ 67 │ │ │ │ │ -_6_8struct _c_s___d_i_a_g___m_s_g │ │ │ │ │ +_6_8typedef struct ___c_s___n_u_m_e_r_i_c │ │ │ │ │ 69{ │ │ │ │ │ -70 _C_S___C_L_I_E_N_T_M_S_G *msg; │ │ │ │ │ -71 struct _c_s___d_i_a_g___m_s_g *next; │ │ │ │ │ -72}; │ │ │ │ │ -73 │ │ │ │ │ -_7_4struct ___c_s___c_o_n_t_e_x_t │ │ │ │ │ -75{ │ │ │ │ │ -76 CS_INT date_convert_fmt; │ │ │ │ │ -77 CS_INT cs_errhandletype; │ │ │ │ │ -78 CS_INT cs_diag_msglimit; │ │ │ │ │ -79 │ │ │ │ │ -80 /* added for storing the maximum messages limit CT_DIAG */ │ │ │ │ │ -81 /* code changes starts here - CT_DIAG - 02 */ │ │ │ │ │ +70 unsigned char precision; │ │ │ │ │ +71 unsigned char scale; │ │ │ │ │ +72 unsigned char array[CS_MAX_NUMLEN]; │ │ │ │ │ +73} _C_S___N_U_M_E_R_I_C; │ │ │ │ │ +74 │ │ │ │ │ +75typedef _C_S___N_U_M_E_R_I_C _C_S___D_E_C_I_M_A_L; │ │ │ │ │ +76 │ │ │ │ │ +_7_7typedef struct ___c_s___v_a_r_b_i_n_a_r_y │ │ │ │ │ +78{ │ │ │ │ │ +79 CS_SMALLINT len; │ │ │ │ │ +80 CS_CHAR array[256]; │ │ │ │ │ +81} _C_S___V_A_R_B_I_N_A_R_Y; │ │ │ │ │ 82 │ │ │ │ │ -83 CS_INT cs_diag_msglimit_client; │ │ │ │ │ -84 CS_INT cs_diag_msglimit_server; │ │ │ │ │ -85 CS_INT cs_diag_msglimit_total; │ │ │ │ │ -86 struct _c_s___d_i_a_g___m_s_g___c_l_i_e_n_t *clientstore; │ │ │ │ │ -87 struct _c_s___d_i_a_g___m_s_g___s_v_r *svrstore; │ │ │ │ │ +_8_3typedef struct ___c_s___v_a_r_c_h_a_r │ │ │ │ │ +84{ │ │ │ │ │ +85 CS_SMALLINT len; /* length of the string */ │ │ │ │ │ +86 CS_CHAR str[256]; /* string, no NULL terminator */ │ │ │ │ │ +87} _C_S___V_A_R_C_H_A_R; │ │ │ │ │ 88 │ │ │ │ │ -89 /* code changes ends here - CT_DIAG - 02 */ │ │ │ │ │ -90 │ │ │ │ │ -91 struct _c_s___d_i_a_g___m_s_g *msgstore; │ │ │ │ │ -92 CS_CSLIBMSG_FUNC _cslibmsg_cb; │ │ │ │ │ -93 CS_CLIENTMSG_FUNC _clientmsg_cb; │ │ │ │ │ -94 CS_SERVERMSG_FUNC _servermsg_cb; │ │ │ │ │ -95 /* code changes start here - CS_CONFIG - 01*/ │ │ │ │ │ -96 void *userdata; │ │ │ │ │ -97 int userdata_len; │ │ │ │ │ -98 /* code changes end here - CS_CONFIG - 01*/ │ │ │ │ │ -99 _T_D_S_C_O_N_T_E_X_T *tds_ctx; │ │ │ │ │ -100 _C_S___C_O_N_F_I_G config; │ │ │ │ │ -_1_0_1 int _l_o_g_i_n___t_i_m_e_o_u_t; │ │ │ │ │ -_1_0_2 int _q_u_e_r_y___t_i_m_e_o_u_t; │ │ │ │ │ -103}; │ │ │ │ │ -104 │ │ │ │ │ -105/* │ │ │ │ │ -106 * internal typedefs │ │ │ │ │ -107 */ │ │ │ │ │ -_1_0_8typedef struct ___c_t___c_o_l_i_n_f_o │ │ │ │ │ -109{ │ │ │ │ │ -110 TDS_SMALLINT *indicator; │ │ │ │ │ -111} │ │ │ │ │ -112_C_T___C_O_L_I_N_F_O; │ │ │ │ │ -113 │ │ │ │ │ -114typedef struct ___c_s___d_y_n_a_m_i_c _C_S___D_Y_N_A_M_I_C; │ │ │ │ │ -115 │ │ │ │ │ -_1_1_6struct ___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -117{ │ │ │ │ │ -118 _C_S___C_O_N_T_E_X_T *ctx; │ │ │ │ │ -119 _T_D_S_L_O_G_I_N *_t_d_s___l_o_g_i_n; │ │ │ │ │ -120 _T_D_S_S_O_C_K_E_T *_t_d_s___s_o_c_k_e_t; │ │ │ │ │ -121 CS_CLIENTMSG_FUNC _clientmsg_cb; │ │ │ │ │ -122 CS_SERVERMSG_FUNC _servermsg_cb; │ │ │ │ │ -123 void *userdata; │ │ │ │ │ -124 int userdata_len; │ │ │ │ │ +89typedef struct ___c_s___c_o_n_f_i_g _C_S___C_O_N_F_I_G; │ │ │ │ │ +90typedef struct ___c_s___c_o_n_t_e_x_t _C_S___C_O_N_T_E_X_T; │ │ │ │ │ +91typedef struct ___c_s___c_o_n_n_e_c_t_i_o_n _C_S___C_O_N_N_E_C_T_I_O_N; │ │ │ │ │ +92typedef struct ___c_s___l_o_c_a_l_e _C_S___L_O_C_A_L_E; │ │ │ │ │ +93typedef struct ___c_s___c_o_m_m_a_n_d _C_S___C_O_M_M_A_N_D; │ │ │ │ │ +94typedef struct _cs_blk_row CS_BLK_ROW; │ │ │ │ │ +95 │ │ │ │ │ +_9_6typedef struct ___c_s___i_o_d_e_s_c │ │ │ │ │ +97{ │ │ │ │ │ +98 CS_INT iotype; │ │ │ │ │ +99 CS_INT datatype; │ │ │ │ │ +100 _C_S___L_O_C_A_L_E *locale; │ │ │ │ │ +101 CS_INT usertype; │ │ │ │ │ +102 CS_INT total_txtlen; │ │ │ │ │ +103 CS_INT offset; │ │ │ │ │ +104 CS_BOOL log_on_update; │ │ │ │ │ +105 CS_CHAR name[CS_OBJ_NAME]; │ │ │ │ │ +106 CS_INT namelen; │ │ │ │ │ +107 CS_BYTE timestamp[CS_TS_SIZE]; │ │ │ │ │ +108 CS_INT timestamplen; │ │ │ │ │ +109 CS_BYTE textptr[CS_TP_SIZE]; │ │ │ │ │ +110 CS_INT textptrlen; │ │ │ │ │ +111} _C_S___I_O_D_E_S_C; │ │ │ │ │ +112 │ │ │ │ │ +_1_1_3typedef struct ___c_s___d_a_t_a_f_m_t │ │ │ │ │ +114{ │ │ │ │ │ +115 CS_CHAR name[CS_MAX_NAME]; │ │ │ │ │ +116 CS_INT namelen; │ │ │ │ │ +117 CS_INT datatype; │ │ │ │ │ +118 CS_INT format; │ │ │ │ │ +119 CS_INT maxlength; │ │ │ │ │ +120 CS_INT scale; │ │ │ │ │ +121 CS_INT precision; │ │ │ │ │ +122 CS_INT status; │ │ │ │ │ +123 CS_INT count; │ │ │ │ │ +124 CS_INT usertype; │ │ │ │ │ 125 _C_S___L_O_C_A_L_E *locale; │ │ │ │ │ -126 _C_S___C_O_M_M_A_N_D *cmds; │ │ │ │ │ -127 _C_S___D_Y_N_A_M_I_C *dynlist; │ │ │ │ │ -128 char *server_addr; │ │ │ │ │ -129 bool network_auth; │ │ │ │ │ -130}; │ │ │ │ │ -131 │ │ │ │ │ -132/* │ │ │ │ │ -133 * Formerly CSREMOTE_PROC_PARAM, this structure can be used in other │ │ │ │ │ -134 * places, too. │ │ │ │ │ -135 */ │ │ │ │ │ -136 │ │ │ │ │ -_1_3_7typedef struct ___c_s___p_a_r_a_m │ │ │ │ │ -138{ │ │ │ │ │ -139 struct ___c_s___p_a_r_a_m *next; │ │ │ │ │ -140 char *name; │ │ │ │ │ -141 int status; │ │ │ │ │ -142 int datatype; │ │ │ │ │ -143 CS_INT maxlen; │ │ │ │ │ -144 CS_INT scale; │ │ │ │ │ -145 CS_INT precision; │ │ │ │ │ -146 CS_INT *datalen; │ │ │ │ │ -147 CS_SMALLINT *ind; │ │ │ │ │ -148 CS_BYTE *value; │ │ │ │ │ -149 int param_by_value; │ │ │ │ │ -150 CS_INT datalen_value; │ │ │ │ │ -151 CS_SMALLINT indicator_value; │ │ │ │ │ -152} _C_S___P_A_R_A_M; │ │ │ │ │ -153 │ │ │ │ │ -154/* │ │ │ │ │ -155 * Code added for RPC functionality - SUHA │ │ │ │ │ -156 * RPC Code changes starts here │ │ │ │ │ -157 */ │ │ │ │ │ -158 │ │ │ │ │ -159typedef _C_S___P_A_R_A_M _C_S_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M; │ │ │ │ │ -160 │ │ │ │ │ -_1_6_1typedef struct ___c_s_r_e_m_o_t_e___p_r_o_c │ │ │ │ │ -162{ │ │ │ │ │ -163 char *name; │ │ │ │ │ -164 CS_SMALLINT options; │ │ │ │ │ -165 _C_S_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M *param_list; │ │ │ │ │ -166} _C_S_R_E_M_O_T_E___P_R_O_C; │ │ │ │ │ -167 │ │ │ │ │ -168/* │ │ │ │ │ -169 * Structure CS_COMMAND changed for RPC functionality -SUHA │ │ │ │ │ -170 * Added CSREMOTE_PROC *rpc to CS_COMMAND structure │ │ │ │ │ -171 */ │ │ │ │ │ -172 │ │ │ │ │ -173typedef _C_S___P_A_R_A_M _C_S___D_Y_N_A_M_I_C___P_A_R_A_M; │ │ │ │ │ -174 │ │ │ │ │ -_1_7_5struct ___c_s___d_y_n_a_m_i_c │ │ │ │ │ -176{ │ │ │ │ │ -177 struct ___c_s___d_y_n_a_m_i_c *next; │ │ │ │ │ -178 char *id; │ │ │ │ │ -179 char *stmt; │ │ │ │ │ -180 _C_S___D_Y_N_A_M_I_C___P_A_R_A_M *param_list; │ │ │ │ │ -181 _T_D_S_D_Y_N_A_M_I_C *tdsdyn; │ │ │ │ │ -182}; │ │ │ │ │ -183 │ │ │ │ │ -184/* specific FreeTDS commands */ │ │ │ │ │ -185#define CS_DYNAMIC_CMD 160 │ │ │ │ │ -186#define CS_CUR_CMD 161 │ │ │ │ │ -187 │ │ │ │ │ -188/* values for cs_command.results_state */ │ │ │ │ │ +126} _C_S___D_A_T_A_F_M_T; │ │ │ │ │ +127 │ │ │ │ │ +_1_2_8typedef struct ___c_s___m_o_n_e_y │ │ │ │ │ +129{ │ │ │ │ │ +130 CS_INT mnyhigh; │ │ │ │ │ +131 CS_UINT mnylow; │ │ │ │ │ +132} _C_S___M_O_N_E_Y; │ │ │ │ │ +133 │ │ │ │ │ +_1_3_4typedef struct ___c_s___m_o_n_e_y_4 │ │ │ │ │ +135{ │ │ │ │ │ +136 CS_INT mny4; │ │ │ │ │ +137} _C_S___M_O_N_E_Y_4; │ │ │ │ │ +138 │ │ │ │ │ +139typedef CS_INT CS_DATE; │ │ │ │ │ +140 │ │ │ │ │ +141typedef CS_INT CS_TIME; │ │ │ │ │ +142 │ │ │ │ │ +143typedef CS_UBIGINT CS_BIGDATETIME; │ │ │ │ │ +144typedef CS_UBIGINT CS_BIGTIME; │ │ │ │ │ +145 │ │ │ │ │ +_1_4_6typedef struct ___c_s___d_a_t_e_t_i_m_e │ │ │ │ │ +147{ │ │ │ │ │ +148 CS_INT dtdays; │ │ │ │ │ +149 CS_INT dttime; │ │ │ │ │ +150} _C_S___D_A_T_E_T_I_M_E; │ │ │ │ │ +151 │ │ │ │ │ +_1_5_2typedef struct ___c_s___d_a_t_e_t_i_m_e_4 │ │ │ │ │ +153{ │ │ │ │ │ +154 CS_USHORT days; │ │ │ │ │ +155 CS_USHORT minutes; │ │ │ │ │ +156} _C_S___D_A_T_E_T_I_M_E_4; │ │ │ │ │ +157 │ │ │ │ │ +_1_5_8typedef struct ___c_s___d_a_t_e_r_e_c │ │ │ │ │ +159{ │ │ │ │ │ +160 CS_INT dateyear; │ │ │ │ │ +161 CS_INT datemonth; │ │ │ │ │ +162 CS_INT datedmonth; │ │ │ │ │ +163 CS_INT datedyear; │ │ │ │ │ +164 CS_INT datedweek; │ │ │ │ │ +165 CS_INT datehour; │ │ │ │ │ +166 CS_INT dateminute; │ │ │ │ │ +167 CS_INT datesecond; │ │ │ │ │ +168 CS_INT datemsecond; │ │ │ │ │ +169 CS_INT datetzone; │ │ │ │ │ +170 CS_INT datesecfrac; │ │ │ │ │ +171 CS_INT datesecprec; │ │ │ │ │ +172} _C_S___D_A_T_E_R_E_C; │ │ │ │ │ +173 │ │ │ │ │ +174typedef CS_INT CS_MSGNUM; │ │ │ │ │ +175 │ │ │ │ │ +_1_7_6typedef struct ___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ +177{ │ │ │ │ │ +178 CS_INT severity; │ │ │ │ │ +179 CS_MSGNUM msgnumber; │ │ │ │ │ +180 CS_CHAR msgstring[CS_MAX_MSG]; │ │ │ │ │ +181 CS_INT msgstringlen; │ │ │ │ │ +182 CS_INT osnumber; │ │ │ │ │ +183 CS_CHAR osstring[CS_MAX_MSG]; │ │ │ │ │ +184 CS_INT osstringlen; │ │ │ │ │ +185 CS_INT status; │ │ │ │ │ +186 CS_BYTE sqlstate[CS_SQLSTATE_SIZE]; │ │ │ │ │ +187 CS_INT sqlstatelen; │ │ │ │ │ +188} _C_S___C_L_I_E_N_T_M_S_G; │ │ │ │ │ 189 │ │ │ │ │ -190#define _CS_RES_NONE -1 │ │ │ │ │ -191#define _CS_RES_INIT 0 │ │ │ │ │ -192#define _CS_RES_RESULTSET_EMPTY 1 │ │ │ │ │ -193#define _CS_RES_RESULTSET_ROWS 2 │ │ │ │ │ -194#define _CS_RES_STATUS 3 │ │ │ │ │ -195#define _CS_RES_CMD_DONE 4 │ │ │ │ │ -196#define _CS_RES_CMD_SUCCEED 5 │ │ │ │ │ -197#define _CS_RES_END_RESULTS 6 │ │ │ │ │ -198#define _CS_RES_DESCRIBE_RESULT 7 │ │ │ │ │ -199 │ │ │ │ │ -200/* values for cs_command.command_state */ │ │ │ │ │ -201 │ │ │ │ │ -202#define _CS_COMMAND_IDLE 0 │ │ │ │ │ -203#define _CS_COMMAND_BUILDING 1 │ │ │ │ │ -204#define _CS_COMMAND_READY 2 │ │ │ │ │ -205#define _CS_COMMAND_SENT 3 │ │ │ │ │ +_1_9_0typedef struct ___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ +191{ │ │ │ │ │ +192 CS_MSGNUM msgnumber; │ │ │ │ │ +193 CS_INT state; │ │ │ │ │ +194 CS_INT severity; │ │ │ │ │ +195 CS_CHAR text[CS_MAX_MSG]; │ │ │ │ │ +196 CS_INT textlen; │ │ │ │ │ +197 CS_CHAR svrname[CS_MAX_NAME]; │ │ │ │ │ +198 CS_INT svrnlen; │ │ │ │ │ +199 CS_CHAR proc[CS_MAX_NAME]; │ │ │ │ │ +200 CS_INT proclen; │ │ │ │ │ +201 CS_INT line; │ │ │ │ │ +202 CS_INT status; │ │ │ │ │ +203 CS_BYTE sqlstate[CS_SQLSTATE_SIZE]; │ │ │ │ │ +204 CS_INT sqlstatelen; │ │ │ │ │ +205} _C_S___S_E_R_V_E_R_M_S_G; │ │ │ │ │ 206 │ │ │ │ │ -207/* values for cs_command.cancel_state */ │ │ │ │ │ -208#define _CS_CANCEL_NOCANCEL 0 │ │ │ │ │ -209#define _CS_CANCEL_PENDING 1 │ │ │ │ │ -210 │ │ │ │ │ -_2_1_1struct ___c_s___c_o_m_m_a_n_d │ │ │ │ │ -212{ │ │ │ │ │ -213 struct ___c_s___c_o_m_m_a_n_d *next; │ │ │ │ │ -214 CS_INT command_state; │ │ │ │ │ -215 CS_INT results_state; │ │ │ │ │ -216 CS_INT cancel_state; │ │ │ │ │ -217 CS_INT cursor_state; │ │ │ │ │ -218 _C_S___C_O_N_N_E_C_T_I_O_N *con; │ │ │ │ │ -219 CS_INT command_type; │ │ │ │ │ -220 CS_CHAR *query; │ │ │ │ │ -221 short dynamic_cmd; │ │ │ │ │ -222 _C_S___D_Y_N_A_M_I_C *dyn; │ │ │ │ │ -223 int row_prefetched; │ │ │ │ │ -224 int curr_result_type; │ │ │ │ │ -225 int bind_count; │ │ │ │ │ -226 int get_data_item; │ │ │ │ │ -227 int get_data_bytes_returned; │ │ │ │ │ -228 _C_S___I_O_D_E_S_C *iodesc; │ │ │ │ │ -229 CS_INT send_data_started; │ │ │ │ │ -230 _C_S_R_E_M_O_T_E___P_R_O_C *rpc; │ │ │ │ │ -231 _C_S___P_A_R_A_M *input_params; │ │ │ │ │ -232 CS_INT client_cursor_id; │ │ │ │ │ -233 _T_D_S_C_U_R_S_O_R *cursor; │ │ │ │ │ -234 void *userdata; │ │ │ │ │ -235 int userdata_len; │ │ │ │ │ -236}; │ │ │ │ │ -237 │ │ │ │ │ -_2_3_8struct ___c_s___b_l_k_d_e_s_c │ │ │ │ │ -239{ │ │ │ │ │ -240 _T_D_S_B_C_P_I_N_F_O bcpinfo; │ │ │ │ │ -241}; │ │ │ │ │ -242 │ │ │ │ │ -243 │ │ │ │ │ -244#define _CS_ERRHAND_INLINE 1 │ │ │ │ │ -245#define _CS_ERRHAND_CB 2 │ │ │ │ │ -246 │ │ │ │ │ -_2_4_7struct ___c_s___l_o_c_a_l_e │ │ │ │ │ -248{ │ │ │ │ │ -249 char *language; │ │ │ │ │ -250 char *charset; │ │ │ │ │ -251 char *time; │ │ │ │ │ -252 char *collate; │ │ │ │ │ -253}; │ │ │ │ │ -254 │ │ │ │ │ -255/* internal defines for cursor processing */ │ │ │ │ │ -256 │ │ │ │ │ -257#define _CS_CURS_TYPE_UNACTIONED 0 │ │ │ │ │ -258#define _CS_CURS_TYPE_REQUESTED 1 │ │ │ │ │ -259#define _CS_CURS_TYPE_SENT 2 │ │ │ │ │ -260 │ │ │ │ │ -261/* │ │ │ │ │ -262 * internal prototypes │ │ │ │ │ -263 */ │ │ │ │ │ -264TDSRET _ct_handle_server_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * │ │ │ │ │ -tdsptr, _T_D_S_M_E_S_S_A_G_E * msgptr); │ │ │ │ │ -265int _ct_handle_client_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * tdsptr, │ │ │ │ │ -_T_D_S_M_E_S_S_A_G_E * msgptr); │ │ │ │ │ -266TDS_SERVER_TYPE _ct_get_server_type(_T_D_S_S_O_C_K_E_T *tds, int datatype); │ │ │ │ │ -267int _ct_bind_data(_C_S___C_O_N_T_E_X_T *ctx, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo, _T_D_S_R_E_S_U_L_T_I_N_F_O │ │ │ │ │ -*bindinfo, CS_INT offset); │ │ │ │ │ -268int _ct_get_client_type(const _T_D_S_C_O_L_U_M_N *col, bool describe); │ │ │ │ │ -269void _ctclient_msg(_C_S___C_O_N_N_E_C_T_I_O_N * con, const char *funcname, int layer, int │ │ │ │ │ -origin, int severity, int number, │ │ │ │ │ -270 const char *fmt, ...); │ │ │ │ │ -271CS_INT _ct_diag_clearmsg(_C_S___C_O_N_T_E_X_T * context, CS_INT type); │ │ │ │ │ -272void _cs_locale_free(_C_S___L_O_C_A_L_E *locale); │ │ │ │ │ -273_C_S___L_O_C_A_L_E *_cs_locale_copy(_C_S___L_O_C_A_L_E *orig); │ │ │ │ │ -274int _cs_locale_copy_inplace(_C_S___L_O_C_A_L_E *new_locale, _C_S___L_O_C_A_L_E *orig); │ │ │ │ │ -275 │ │ │ │ │ -276int _cs_convert_not_client(_C_S___C_O_N_T_E_X_T *ctx, const _T_D_S_C_O_L_U_M_N *curcol, │ │ │ │ │ -_C_O_N_V___R_E_S_U_L_T *convert_buffer, unsigned char **p_src); │ │ │ │ │ -277 │ │ │ │ │ -278#ifdef __cplusplus │ │ │ │ │ -279#if 0 │ │ │ │ │ -280{ │ │ │ │ │ -281#endif │ │ │ │ │ -282} │ │ │ │ │ -283#endif │ │ │ │ │ -284 │ │ │ │ │ -285#include │ │ │ │ │ -286 │ │ │ │ │ -287#endif │ │ │ │ │ -_t_d_s_._h │ │ │ │ │ -Main include file for libtds. │ │ │ │ │ +207#ifdef __cplusplus │ │ │ │ │ +208#if 0 │ │ │ │ │ +209{ │ │ │ │ │ +210#endif │ │ │ │ │ +211} │ │ │ │ │ +212#endif │ │ │ │ │ +213 │ │ │ │ │ +214#endif │ │ │ │ │ +___c_s___n_u_m_e_r_i_c │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:69 │ │ │ │ │ +___c_s___v_a_r_b_i_n_a_r_y │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:78 │ │ │ │ │ +___c_s___v_a_r_c_h_a_r │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:84 │ │ │ │ │ ___c_s___i_o_d_e_s_c │ │ │ │ │ DDeeffiinniittiioonn cstypes.h:97 │ │ │ │ │ +___c_s___d_a_t_a_f_m_t │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ +___c_s___m_o_n_e_y │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:129 │ │ │ │ │ +___c_s___m_o_n_e_y_4 │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:135 │ │ │ │ │ +___c_s___d_a_t_e_t_i_m_e │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:147 │ │ │ │ │ +___c_s___d_a_t_e_t_i_m_e_4 │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:153 │ │ │ │ │ +___c_s___d_a_t_e_r_e_c │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:159 │ │ │ │ │ ___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ DDeeffiinniittiioonn cstypes.h:177 │ │ │ │ │ ___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ DDeeffiinniittiioonn cstypes.h:191 │ │ │ │ │ ___c_s___c_o_n_f_i_g │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:45 │ │ │ │ │ -_c_s___d_i_a_g___m_s_g___c_l_i_e_n_t │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:55 │ │ │ │ │ -_c_s___d_i_a_g___m_s_g___s_v_r │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:61 │ │ │ │ │ -_c_s___d_i_a_g___m_s_g │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:69 │ │ │ │ │ ___c_s___c_o_n_t_e_x_t │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:75 │ │ │ │ │ -___c_s___c_o_n_t_e_x_t_:_:_l_o_g_i_n___t_i_m_e_o_u_t │ │ │ │ │ -int login_timeout │ │ │ │ │ -not used unless positive │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:101 │ │ │ │ │ -___c_s___c_o_n_t_e_x_t_:_:_q_u_e_r_y___t_i_m_e_o_u_t │ │ │ │ │ -int query_timeout │ │ │ │ │ -not used unless positive │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:102 │ │ │ │ │ -___c_t___c_o_l_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:109 │ │ │ │ │ ___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ -___c_s___p_a_r_a_m │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:138 │ │ │ │ │ -___c_s_r_e_m_o_t_e___p_r_o_c │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:162 │ │ │ │ │ -___c_s___d_y_n_a_m_i_c │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:176 │ │ │ │ │ ___c_s___c_o_m_m_a_n_d │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:212 │ │ │ │ │ -___c_s___b_l_k_d_e_s_c │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:239 │ │ │ │ │ ___c_s___l_o_c_a_l_e │ │ │ │ │ DDeeffiinniittiioonn ctlib.h:248 │ │ │ │ │ -_c_o_n_v___r_e_s_u_l_t │ │ │ │ │ -DDeeffiinniittiioonn convert.h:34 │ │ │ │ │ -_t_d_s___l_o_g_i_n │ │ │ │ │ -DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ -_t_d_s___c_o_l_u_m_n │ │ │ │ │ -Metadata about columns in regular and compute rows. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ -_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ -Hold information for any results. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ -_t_d_s___m_e_s_s_a_g_e │ │ │ │ │ -DDeeffiinniittiioonn tds.h:876 │ │ │ │ │ -_t_d_s___c_u_r_s_o_r │ │ │ │ │ -Holds informations about a cursor. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ -_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ -Holds information for a dynamic (also called prepared) query. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ -_t_d_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ -_t_d_s___s_o_c_k_e_t │ │ │ │ │ -Information for a server connection. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ -_t_d_s___b_c_p_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00476_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/odbcss.h Source File │ │ │ │ +FreeTDS API: include/tds_sysdep_public.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
odbcss.h
│ │ │ │ +
tds_sysdep_public.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 2008 Frediano Ziglio
│ │ │ │ +
2 * Copyright (C) 1998-2011 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,381 +96,117 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _odbcss_h_
│ │ │ │ -
21#define _odbcss_h_
│ │ │ │ +
20#ifndef _tds_sysdep_public_h_
│ │ │ │ +
21#define _tds_sysdep_public_h_
│ │ │ │
22
│ │ │ │ -
23#ifdef TDSODBC_BCP
│ │ │ │ -
24#include <sql.h>
│ │ │ │ -
25#endif
│ │ │ │ -
26
│ │ │ │ -
27#ifdef __cplusplus
│ │ │ │ -
28extern "C" {
│ │ │ │ -
29#endif
│ │ │ │ -
30
│ │ │ │ -
31#define SQL_DIAG_SS_MSGSTATE (-1150)
│ │ │ │ -
32#define SQL_DIAG_SS_LINE (-1154)
│ │ │ │ -
33
│ │ │ │ -
34#define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT 1233
│ │ │ │ -
35#define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT 1234
│ │ │ │ -
36#define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS 1235
│ │ │ │ -
37
│ │ │ │ -
38#ifndef SQL_SS_LENGTH_UNLIMITED
│ │ │ │ -
39#define SQL_SS_LENGTH_UNLIMITED 0
│ │ │ │ -
40#endif
│ │ │ │ -
41
│ │ │ │ -
42#ifndef SQL_COPT_SS_BASE
│ │ │ │ -
43#define SQL_COPT_SS_BASE 1200
│ │ │ │ -
44#endif
│ │ │ │ -
45
│ │ │ │ -
46#ifndef SQL_COPT_SS_MARS_ENABLED
│ │ │ │ -
47#define SQL_COPT_SS_MARS_ENABLED (SQL_COPT_SS_BASE+24)
│ │ │ │ -
48#endif
│ │ │ │ -
49
│ │ │ │ -
50#ifndef SQL_COPT_SS_OLDPWD
│ │ │ │ -
51#define SQL_COPT_SS_OLDPWD (SQL_COPT_SS_BASE+26)
│ │ │ │ -
52#endif
│ │ │ │ -
53
│ │ │ │ -
54#define SQL_INFO_FREETDS_TDS_VERSION 1300
│ │ │ │ -
55#define SQL_INFO_FREETDS_SOCKET 1301
│ │ │ │ -
56
│ │ │ │ -
57#ifndef SQL_MARS_ENABLED_NO
│ │ │ │ -
58#define SQL_MARS_ENABLED_NO 0
│ │ │ │ -
59#endif
│ │ │ │ -
60
│ │ │ │ -
61#ifndef SQL_MARS_ENABLED_YES
│ │ │ │ -
62#define SQL_MARS_ENABLED_YES 1
│ │ │ │ -
63#endif
│ │ │ │ -
64
│ │ │ │ -
65#ifndef SQL_SS_VARIANT
│ │ │ │ -
66#define SQL_SS_VARIANT (-150)
│ │ │ │ -
67#endif
│ │ │ │ -
68
│ │ │ │ -
69#ifndef SQL_SS_UDT
│ │ │ │ -
70#define SQL_SS_UDT (-151)
│ │ │ │ -
71#endif
│ │ │ │ -
72
│ │ │ │ -
73#ifndef SQL_SS_XML
│ │ │ │ -
74#define SQL_SS_XML (-152)
│ │ │ │ -
75#endif
│ │ │ │ -
76
│ │ │ │ -
77#ifndef SQL_SS_TABLE
│ │ │ │ -
78#define SQL_SS_TABLE (-153)
│ │ │ │ -
79#endif
│ │ │ │ -
80
│ │ │ │ -
81#ifndef SQL_SS_TIME2
│ │ │ │ -
82#define SQL_SS_TIME2 (-154)
│ │ │ │ -
83#endif
│ │ │ │ -
84
│ │ │ │ -
85#ifndef SQL_SS_TIMESTAMPOFFSET
│ │ │ │ -
86#define SQL_SS_TIMESTAMPOFFSET (-155)
│ │ │ │ -
87#endif
│ │ │ │ -
88
│ │ │ │ -
89/*
│ │ │ │ -
90 * these types are used from conversion from client to server
│ │ │ │ -
91 */
│ │ │ │ -
92#ifndef SQL_C_SS_TIME2
│ │ │ │ -
93#define SQL_C_SS_TIME2 (0x4000)
│ │ │ │ -
94#endif
│ │ │ │ -
95
│ │ │ │ -
96#ifndef SQL_C_SS_TIMESTAMPOFFSET
│ │ │ │ -
97#define SQL_C_SS_TIMESTAMPOFFSET (0x4001)
│ │ │ │ -
98#endif
│ │ │ │ -
99
│ │ │ │ -
100#ifndef SQL_CA_SS_BASE
│ │ │ │ -
101#define SQL_CA_SS_BASE 1200
│ │ │ │ -
102#endif
│ │ │ │ -
103
│ │ │ │ -
104#ifndef SQL_CA_SS_UDT_CATALOG_NAME
│ │ │ │ -
105#define SQL_CA_SS_UDT_CATALOG_NAME (SQL_CA_SS_BASE+18)
│ │ │ │ -
106#endif
│ │ │ │ -
107
│ │ │ │ -
108#ifndef SQL_CA_SS_UDT_SCHEMA_NAME
│ │ │ │ -
109#define SQL_CA_SS_UDT_SCHEMA_NAME (SQL_CA_SS_BASE+19)
│ │ │ │ -
110#endif
│ │ │ │ -
111
│ │ │ │ -
112#ifndef SQL_CA_SS_UDT_TYPE_NAME
│ │ │ │ -
113#define SQL_CA_SS_UDT_TYPE_NAME (SQL_CA_SS_BASE+20)
│ │ │ │ -
114#endif
│ │ │ │ -
115
│ │ │ │ -
116#ifndef SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME
│ │ │ │ -
117#define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME (SQL_CA_SS_BASE+21)
│ │ │ │ -
118#endif
│ │ │ │ -
119
│ │ │ │ -
120#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME
│ │ │ │ -
121#define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22)
│ │ │ │ -
122#endif
│ │ │ │ -
123
│ │ │ │ -
124#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME
│ │ │ │ -
125#define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME (SQL_CA_SS_BASE+23)
│ │ │ │ -
126#endif
│ │ │ │ -
127
│ │ │ │ -
128#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_NAME
│ │ │ │ -
129#define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME (SQL_CA_SS_BASE+24)
│ │ │ │ -
130#endif
│ │ │ │ -
131
│ │ │ │ -
│ │ │ │ -
132typedef struct tagSS_TIME2_STRUCT {
│ │ │ │ -
133 SQLUSMALLINT hour;
│ │ │ │ -
134 SQLUSMALLINT minute;
│ │ │ │ -
135 SQLUSMALLINT second;
│ │ │ │ -
136 SQLUINTEGER fraction;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
138
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
140 SQLSMALLINT year;
│ │ │ │ -
141 SQLUSMALLINT month;
│ │ │ │ -
142 SQLUSMALLINT day;
│ │ │ │ -
143 SQLUSMALLINT hour;
│ │ │ │ -
144 SQLUSMALLINT minute;
│ │ │ │ -
145 SQLUSMALLINT second;
│ │ │ │ -
146 SQLUINTEGER fraction;
│ │ │ │ -
147 SQLSMALLINT timezone_hour;
│ │ │ │ -
148 SQLSMALLINT timezone_minute;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
150
│ │ │ │ -
151
│ │ │ │ -
152#ifdef TDSODBC_BCP
│ │ │ │ -
153
│ │ │ │ -
154#ifndef SUCCEED
│ │ │ │ -
155#define SUCCEED 1
│ │ │ │ -
156#endif
│ │ │ │ -
157#ifndef FAIL
│ │ │ │ -
158#define FAIL 0
│ │ │ │ -
159#endif
│ │ │ │ -
160
│ │ │ │ -
161#ifndef BCPKEEPIDENTITY
│ │ │ │ -
162#define BCPKEEPIDENTITY 8
│ │ │ │ -
163#endif
│ │ │ │ -
164#ifndef BCPHINTS
│ │ │ │ -
165#define BCPHINTS 6
│ │ │ │ -
166#endif
│ │ │ │ -
167
│ │ │ │ -
168#define BCP_DIRECTION_IN 1
│ │ │ │ -
169
│ │ │ │ -
170#define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19)
│ │ │ │ -
171#define SQL_BCP_OFF 0
│ │ │ │ -
172#define SQL_BCP_ON 1
│ │ │ │ -
173
│ │ │ │ -
174#define SQL_COPT_TDSODBC_IMPL_BASE 1500
│ │ │ │ -
175#define SQL_COPT_TDSODBC_IMPL_BCP_INITA (SQL_COPT_TDSODBC_IMPL_BASE)
│ │ │ │ -
176#define SQL_COPT_TDSODBC_IMPL_BCP_CONTROL (SQL_COPT_TDSODBC_IMPL_BASE+1)
│ │ │ │ -
177#define SQL_COPT_TDSODBC_IMPL_BCP_COLPTR (SQL_COPT_TDSODBC_IMPL_BASE+2)
│ │ │ │ -
178#define SQL_COPT_TDSODBC_IMPL_BCP_SENDROW (SQL_COPT_TDSODBC_IMPL_BASE+3)
│ │ │ │ -
179#define SQL_COPT_TDSODBC_IMPL_BCP_BATCH (SQL_COPT_TDSODBC_IMPL_BASE+4)
│ │ │ │ -
180#define SQL_COPT_TDSODBC_IMPL_BCP_DONE (SQL_COPT_TDSODBC_IMPL_BASE+5)
│ │ │ │ -
181#define SQL_COPT_TDSODBC_IMPL_BCP_BIND (SQL_COPT_TDSODBC_IMPL_BASE+6)
│ │ │ │ -
182#define SQL_COPT_TDSODBC_IMPL_BCP_INITW (SQL_COPT_TDSODBC_IMPL_BASE+7)
│ │ │ │ -
183
│ │ │ │ -
184#define SQL_VARLEN_DATA -10
│ │ │ │ -
185
│ │ │ │ -
186/* copied from sybdb.h which was copied from tds.h */
│ │ │ │ -
187/* TODO find a much better way... */
│ │ │ │ -
188enum
│ │ │ │ -
189{
│ │ │ │ -
190 BCP_TYPE_SQLCHAR = 47, /* 0x2F */
│ │ │ │ -
191#define BCP_TYPE_SQLCHAR BCP_TYPE_SQLCHAR
│ │ │ │ -
192 BCP_TYPE_SQLVARCHAR = 39, /* 0x27 */
│ │ │ │ -
193#define BCP_TYPE_SQLVARCHAR BCP_TYPE_SQLVARCHAR
│ │ │ │ -
194 BCP_TYPE_SQLINTN = 38, /* 0x26 */
│ │ │ │ -
195#define BCP_TYPE_SQLINTN BCP_TYPE_SQLINTN
│ │ │ │ -
196 BCP_TYPE_SQLINT1 = 48, /* 0x30 */
│ │ │ │ -
197#define BCP_TYPE_SQLINT1 BCP_TYPE_SQLINT1
│ │ │ │ -
198 BCP_TYPE_SQLINT2 = 52, /* 0x34 */
│ │ │ │ -
199#define BCP_TYPE_SQLINT2 BCP_TYPE_SQLINT2
│ │ │ │ -
200 BCP_TYPE_SQLINT4 = 56, /* 0x38 */
│ │ │ │ -
201#define BCP_TYPE_SQLINT4 BCP_TYPE_SQLINT4
│ │ │ │ -
202 BCP_TYPE_SQLINT8 = 127, /* 0x7F */
│ │ │ │ -
203#define BCP_TYPE_SQLINT8 BCP_TYPE_SQLINT8
│ │ │ │ -
204 BCP_TYPE_SQLFLT8 = 62, /* 0x3E */
│ │ │ │ -
205#define BCP_TYPE_SQLFLT8 BCP_TYPE_SQLFLT8
│ │ │ │ -
206 BCP_TYPE_SQLDATETIME = 61, /* 0x3D */
│ │ │ │ -
207#define BCP_TYPE_SQLDATETIME BCP_TYPE_SQLDATETIME
│ │ │ │ -
208 BCP_TYPE_SQLBIT = 50, /* 0x32 */
│ │ │ │ -
209#define BCP_TYPE_SQLBIT BCP_TYPE_SQLBIT
│ │ │ │ -
210 BCP_TYPE_SQLBITN = 104, /* 0x68 */
│ │ │ │ -
211#define BCP_TYPE_SQLBITN BCP_TYPE_SQLBITN
│ │ │ │ -
212 BCP_TYPE_SQLTEXT = 35, /* 0x23 */
│ │ │ │ -
213#define BCP_TYPE_SQLTEXT BCP_TYPE_SQLTEXT
│ │ │ │ -
214 BCP_TYPE_SQLNTEXT = 99, /* 0x63 */
│ │ │ │ -
215#define BCP_TYPE_SQLNTEXT BCP_TYPE_SQLNTEXT
│ │ │ │ -
216 BCP_TYPE_SQLIMAGE = 34, /* 0x22 */
│ │ │ │ -
217#define BCP_TYPE_SQLIMAGE BCP_TYPE_SQLIMAGE
│ │ │ │ -
218 BCP_TYPE_SQLMONEY4 = 122, /* 0x7A */
│ │ │ │ -
219#define BCP_TYPE_SQLMONEY4 BCP_TYPE_SQLMONEY4
│ │ │ │ -
220 BCP_TYPE_SQLMONEY = 60, /* 0x3C */
│ │ │ │ -
221#define BCP_TYPE_SQLMONEY BCP_TYPE_SQLMONEY
│ │ │ │ -
222 BCP_TYPE_SQLDATETIME4 = 58, /* 0x3A */
│ │ │ │ -
223#define BCP_TYPE_SQLDATETIME4 BCP_TYPE_SQLDATETIME4
│ │ │ │ -
224 BCP_TYPE_SQLREAL = 59, /* 0x3B */
│ │ │ │ -
225 BCP_TYPE_SQLFLT4 = 59, /* 0x3B */
│ │ │ │ -
226#define BCP_TYPE_SQLREAL BCP_TYPE_SQLREAL
│ │ │ │ -
227#define BCP_TYPE_SQLFLT4 BCP_TYPE_SQLFLT4
│ │ │ │ -
228 BCP_TYPE_SQLBINARY = 45, /* 0x2D */
│ │ │ │ -
229#define BCP_TYPE_SQLBINARY BCP_TYPE_SQLBINARY
│ │ │ │ -
230 BCP_TYPE_SQLVOID = 31, /* 0x1F */
│ │ │ │ -
231#define BCP_TYPE_SQLVOID BCP_TYPE_SQLVOID
│ │ │ │ -
232 BCP_TYPE_SQLVARBINARY = 37, /* 0x25 */
│ │ │ │ -
233#define BCP_TYPE_SQLVARBINARY BCP_TYPE_SQLVARBINARY
│ │ │ │ -
234 BCP_TYPE_SQLNUMERIC = 108, /* 0x6C */
│ │ │ │ -
235#define BCP_TYPE_SQLNUMERIC BCP_TYPE_SQLNUMERIC
│ │ │ │ -
236 BCP_TYPE_SQLDECIMAL = 106, /* 0x6A */
│ │ │ │ -
237#define BCP_TYPE_SQLDECIMAL BCP_TYPE_SQLDECIMAL
│ │ │ │ -
238 BCP_TYPE_SQLFLTN = 109, /* 0x6D */
│ │ │ │ -
239#define BCP_TYPE_SQLFLTN BCP_TYPE_SQLFLTN
│ │ │ │ -
240 BCP_TYPE_SQLMONEYN = 110, /* 0x6E */
│ │ │ │ -
241#define BCP_TYPE_SQLMONEYN BCP_TYPE_SQLMONEYN
│ │ │ │ -
242 BCP_TYPE_SQLDATETIMN = 111, /* 0x6F */
│ │ │ │ -
243#define BCP_TYPE_SQLDATETIMN BCP_TYPE_SQLDATETIMN
│ │ │ │ -
244 BCP_TYPE_SQLNVARCHAR = 103, /* 0x67 */
│ │ │ │ -
245#define BCP_TYPE_SQLNVARCHAR BCP_TYPE_SQLNVARCHAR
│ │ │ │ -
246 BCP_TYPE_SQLUNIQUEID = 36, /* 0x24 */
│ │ │ │ -
247#define BCP_TYPE_SQLUNIQUEID BCP_TYPE_SQLUNIQUEID
│ │ │ │ -
248 BCP_TYPE_SQLDATETIME2 = 42, /* 0x2a */
│ │ │ │ -
249#define BCP_TYPE_SQLDATETIME2 BCP_TYPE_SQLDATETIME2
│ │ │ │ -
250};
│ │ │ │ -
251
│ │ │ │ -
252typedef struct
│ │ │ │ -
253{
│ │ │ │ -
254 int dtdays;
│ │ │ │ -
255 int dttime;
│ │ │ │ -
256} DBDATETIME;
│ │ │ │ -
257
│ │ │ │ -
258#ifdef _MSC_VER
│ │ │ │ -
259#define TDSODBC_INLINE __inline
│ │ │ │ -
260#else
│ │ │ │ -
261#define TDSODBC_INLINE __inline__
│ │ │ │ -
262#endif
│ │ │ │ -
263
│ │ │ │ -
264struct tdsodbc_impl_bcp_init_params
│ │ │ │ -
265{
│ │ │ │ -
266 const void *tblname;
│ │ │ │ -
267 const void *hfile;
│ │ │ │ -
268 const void *errfile;
│ │ │ │ -
269 int direction;
│ │ │ │ -
270};
│ │ │ │ -
271
│ │ │ │ -
272static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ -
273bcp_initA(HDBC hdbc, const char *tblname, const char *hfile, const char *errfile, int direction)
│ │ │ │ -
274{
│ │ │ │ -
275 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
│ │ │ │ -
276 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITA, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ -
277}
│ │ │ │ -
278
│ │ │ │ -
279static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ -
280bcp_initW(HDBC hdbc, const SQLWCHAR *tblname, const SQLWCHAR *hfile, const SQLWCHAR *errfile, int direction)
│ │ │ │ -
281{
│ │ │ │ -
282 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
│ │ │ │ -
283 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITW, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ -
284}
│ │ │ │ -
285
│ │ │ │ -
286struct tdsodbc_impl_bcp_control_params
│ │ │ │ -
287{
│ │ │ │ -
288 int field;
│ │ │ │ -
289 void *value;
│ │ │ │ -
290};
│ │ │ │ -
291
│ │ │ │ -
292static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ -
293bcp_control(HDBC hdbc, int field, void *value)
│ │ │ │ -
294{
│ │ │ │ -
295 struct tdsodbc_impl_bcp_control_params params = {field, value};
│ │ │ │ -
296 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_CONTROL, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ -
297}
│ │ │ │ -
298
│ │ │ │ -
299struct tdsodbc_impl_bcp_colptr_params
│ │ │ │ -
300{
│ │ │ │ -
301 const unsigned char * colptr;
│ │ │ │ -
302 int table_column;
│ │ │ │ -
303};
│ │ │ │ -
304
│ │ │ │ -
305static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ -
306bcp_colptr(HDBC hdbc, const unsigned char * colptr, int table_column)
│ │ │ │ -
307{
│ │ │ │ -
308 struct tdsodbc_impl_bcp_colptr_params params = {colptr, table_column};
│ │ │ │ -
309 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_COLPTR, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ -
310}
│ │ │ │ -
311
│ │ │ │ -
312static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ -
313bcp_sendrow(HDBC hdbc)
│ │ │ │ -
314{
│ │ │ │ -
315 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ -
316}
│ │ │ │ -
317
│ │ │ │ -
318struct tdsodbc_impl_bcp_batch_params
│ │ │ │ -
319{
│ │ │ │ -
320 int rows;
│ │ │ │ -
321};
│ │ │ │ -
322
│ │ │ │ -
323static TDSODBC_INLINE int SQL_API
│ │ │ │ -
324bcp_batch(HDBC hdbc)
│ │ │ │ -
325{
│ │ │ │ -
326 struct tdsodbc_impl_bcp_batch_params params = {-1};
│ │ │ │ -
327 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BATCH, &params, SQL_IS_POINTER)) ? params.rows : -1;
│ │ │ │ -
328}
│ │ │ │ -
329
│ │ │ │ -
330struct tdsodbc_impl_bcp_done_params
│ │ │ │ -
331{
│ │ │ │ -
332 int rows;
│ │ │ │ -
333};
│ │ │ │ -
334
│ │ │ │ -
335static TDSODBC_INLINE int SQL_API
│ │ │ │ -
336bcp_done(HDBC hdbc)
│ │ │ │ -
337{
│ │ │ │ -
338 struct tdsodbc_impl_bcp_done_params params = {-1};
│ │ │ │ -
339 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_DONE, &params, SQL_IS_POINTER)) ? params.rows : -1;
│ │ │ │ -
340}
│ │ │ │ -
341
│ │ │ │ -
342struct tdsodbc_impl_bcp_bind_params
│ │ │ │ -
343{
│ │ │ │ -
344 const unsigned char * varaddr;
│ │ │ │ -
345 int prefixlen;
│ │ │ │ -
346 int varlen;
│ │ │ │ -
347 const unsigned char * terminator;
│ │ │ │ -
348 int termlen;
│ │ │ │ -
349 int vartype;
│ │ │ │ -
350 int table_column;
│ │ │ │ -
351};
│ │ │ │ -
352
│ │ │ │ -
353static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ -
354bcp_bind(HDBC hdbc, const unsigned char * varaddr, int prefixlen, int varlen,
│ │ │ │ -
355 const unsigned char * terminator, int termlen, int vartype, int table_column)
│ │ │ │ -
356{
│ │ │ │ -
357 struct tdsodbc_impl_bcp_bind_params params = {varaddr, prefixlen, varlen, terminator, termlen, vartype, table_column};
│ │ │ │ -
358 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BIND, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ -
359}
│ │ │ │ -
360
│ │ │ │ -
361#ifdef UNICODE
│ │ │ │ -
362#define bcp_init bcp_initW
│ │ │ │ -
363#else
│ │ │ │ -
364#define bcp_init bcp_initA
│ │ │ │ -
365#endif
│ │ │ │ -
366
│ │ │ │ -
367#endif /* TDSODBC_BCP */
│ │ │ │ -
368
│ │ │ │ -
369#ifdef __cplusplus
│ │ │ │ -
370}
│ │ │ │ -
371#endif
│ │ │ │ -
372
│ │ │ │ -
373#endif /* _odbcss_h_ */
│ │ │ │ -
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition bcp.c:544
│ │ │ │ -
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition bcp.c:671
│ │ │ │ -
RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int db_vartype, int table_column)
Bind a program host variable to a database column.
Definition bcp.c:2079
│ │ │ │ -
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition bcp.c:2037
│ │ │ │ -
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition bcp.c:2010
│ │ │ │ -
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition bcp.c:1381
│ │ │ │ -
Definition odbcss.h:132
│ │ │ │ -
Definition odbcss.h:139
│ │ │ │ -
Definition sybdb.h:295
│ │ │ │ +
23/*
│ │ │ │ +
24 * This file is publicly installed.
│ │ │ │ +
25 * MUST not include config.h
│ │ │ │ +
26 */
│ │ │ │ +
27
│ │ │ │ +
28#if (!defined(_MSC_VER) && defined(__cplusplus) && __cplusplus >= 201103L) || \
│ │ │ │ +
29 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
│ │ │ │ +
30# include <stdint.h>
│ │ │ │ +
31#elif (defined(__sun) && defined(__SVR4)) || defined(__hpux)
│ │ │ │ +
32# include <inttypes.h>
│ │ │ │ +
33#else
│ │ │ │ +
34typedef signed char int8_t; /* 8-bit int */
│ │ │ │ +
35typedef unsigned char uint8_t; /* 8-bit int */
│ │ │ │ +
36/*
│ │ │ │ +
37 * This is where platform-specific changes need to be made.
│ │ │ │ +
38 */
│ │ │ │ +
39# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
│ │ │ │ +
40# include <winsock2.h>
│ │ │ │ +
41# include <ws2tcpip.h>
│ │ │ │ +
42# include <windows.h>
│ │ │ │ +
43 typedef signed short int16_t; /* 16-bit int */
│ │ │ │ +
44 typedef unsigned short uint16_t; /* 16-bit int */
│ │ │ │ +
45 typedef signed int int32_t; /* 32-bit int */
│ │ │ │ +
46 typedef unsigned int uint32_t; /* 32-bit int */
│ │ │ │ +
47 typedef signed __int64 int64_t; /* 64-bit int */
│ │ │ │ +
48 typedef unsigned __int64 uint64_t; /* 64-bit int */
│ │ │ │ +
49# if !defined(WIN64) && !defined(_WIN64)
│ │ │ │ +
50 typedef signed int intptr_t; /* 32-bit int */
│ │ │ │ +
51 typedef unsigned int uintptr_t; /* 32-bit int */
│ │ │ │ +
52# else
│ │ │ │ +
53 typedef signed __int64 intptr_t; /* 64-bit int */
│ │ │ │ +
54 typedef unsigned __int64 uintptr_t; /* 64-bit int */
│ │ │ │ +
55# endif
│ │ │ │ +
56# else /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */
│ │ │ │ +
57 typedef signed short int16_t; /* 16-bit int */
│ │ │ │ +
58 typedef unsigned short uint16_t; /* 16-bit int */
│ │ │ │ +
59 typedef signed int int32_t; /* 32-bit int */
│ │ │ │ +
60 typedef unsigned int uint32_t; /* 32-bit int */
│ │ │ │ +
61 typedef signed long long int64_t; /* 64-bit int */
│ │ │ │ +
62 typedef unsigned long long uint64_t; /* 64-bit int */
│ │ │ │ +
63 typedef signed int intptr_t;
│ │ │ │ +
64 typedef unsigned int uintptr_t;
│ │ │ │ +
65# endif
│ │ │ │ +
66#endif
│ │ │ │ +
67
│ │ │ │ +
68#include <float.h>
│ │ │ │ +
69
│ │ │ │ +
70/* try to understand float sizes using float.h constants */
│ │ │ │ +
71#if FLT_RADIX == 2
│ │ │ │ +
72# if FLT_MANT_DIG == 24 && FLT_MAX_EXP == 128
│ │ │ │ +
73# define tds_sysdep_real32_type float /* 32-bit real */
│ │ │ │ +
74# elif DBL_MANT_DIG == 24 && DBL_MAX_EXP == 128
│ │ │ │ +
75# define tds_sysdep_real32_type double /* 32-bit real */
│ │ │ │ +
76# elif LDBL_MANT_DIG == 24 && LDBL_MAX_EXP == 128
│ │ │ │ +
77# define tds_sysdep_real32_type long double /* 32-bit real */
│ │ │ │ +
78# endif
│ │ │ │ +
79# if FLT_MANT_DIG == 53 && FLT_MAX_EXP == 1024
│ │ │ │ +
80# define tds_sysdep_real64_type float /* 64-bit real */
│ │ │ │ +
81# elif DBL_MANT_DIG == 53 && DBL_MAX_EXP == 1024
│ │ │ │ +
82# define tds_sysdep_real64_type double /* 64-bit real */
│ │ │ │ +
83# elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
│ │ │ │ +
84# define tds_sysdep_real64_type long double /* 64-bit real */
│ │ │ │ +
85# endif
│ │ │ │ +
86# if !defined(tds_sysdep_real32_type) || !defined(tds_sysdep_real64_type)
│ │ │ │ +
87# error Some float type was not found!
│ │ │ │ +
88# endif
│ │ │ │ +
89#else
│ │ │ │ +
90# if FLT_DIG == 6 && FLT_MAX_10_EXP == 38
│ │ │ │ +
91# define tds_sysdep_real32_type float /* 32-bit real */
│ │ │ │ +
92# elif DBL_DIG == 6 && DBL_MAX_10_EXP == 38
│ │ │ │ +
93# define tds_sysdep_real32_type double /* 32-bit real */
│ │ │ │ +
94# elif LDBL_DIG == 6 && LDBL_MAX_10_EXP == 38
│ │ │ │ +
95# define tds_sysdep_real32_type long double /* 32-bit real */
│ │ │ │ +
96# endif
│ │ │ │ +
97# if FLT_DIG == 15 && FLT_MAX_10_EXP == 308
│ │ │ │ +
98# define tds_sysdep_real64_type float /* 64-bit real */
│ │ │ │ +
99# elif DBL_DIG == 15 && DBL_MAX_10_EXP == 308
│ │ │ │ +
100# define tds_sysdep_real64_type double /* 64-bit real */
│ │ │ │ +
101# elif LDBL_DIG == 15 && LDBL_MAX_10_EXP == 308
│ │ │ │ +
102# define tds_sysdep_real64_type long double /* 64-bit real */
│ │ │ │ +
103# endif
│ │ │ │ +
104#endif
│ │ │ │ +
105
│ │ │ │ +
106/* fall back to configure.ac types */
│ │ │ │ +
107#ifndef tds_sysdep_real32_type
│ │ │ │ +
108#define tds_sysdep_real32_type float /* 32-bit real */
│ │ │ │ +
109#endif /* !tds_sysdep_real32_type */
│ │ │ │ +
110
│ │ │ │ +
111#ifndef tds_sysdep_real64_type
│ │ │ │ +
112#define tds_sysdep_real64_type double /* 64-bit real */
│ │ │ │ +
113#endif /* !tds_sysdep_real64_type */
│ │ │ │ +
114
│ │ │ │ +
115#if !defined(MSDBLIB) && !defined(SYBDBLIB)
│ │ │ │ +
116#define SYBDBLIB 1
│ │ │ │ +
117#endif
│ │ │ │ +
118#if defined(MSDBLIB) && defined(SYBDBLIB)
│ │ │ │ +
119#error MSDBLIB and SYBDBLIB cannot both be defined
│ │ │ │ +
120#endif
│ │ │ │ +
121
│ │ │ │ +
122#endif /* _tds_sysdep_public_h_ */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -odbcss.h │ │ │ │ │ +tds_sysdep_public.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2008 Frediano Ziglio │ │ │ │ │ +2 * Copyright (C) 1998-2011 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,409 +19,113 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _odbcss_h_ │ │ │ │ │ -21#define _odbcss_h_ │ │ │ │ │ +20#ifndef _tds_sysdep_public_h_ │ │ │ │ │ +21#define _tds_sysdep_public_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#ifdef TDSODBC_BCP │ │ │ │ │ -24#include │ │ │ │ │ -25#endif │ │ │ │ │ -26 │ │ │ │ │ -27#ifdef __cplusplus │ │ │ │ │ -28extern "C" { │ │ │ │ │ -29#endif │ │ │ │ │ -30 │ │ │ │ │ -31#define SQL_DIAG_SS_MSGSTATE (-1150) │ │ │ │ │ -32#define SQL_DIAG_SS_LINE (-1154) │ │ │ │ │ -33 │ │ │ │ │ -34#define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT 1233 │ │ │ │ │ -35#define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT 1234 │ │ │ │ │ -36#define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS 1235 │ │ │ │ │ -37 │ │ │ │ │ -38#ifndef SQL_SS_LENGTH_UNLIMITED │ │ │ │ │ -39#define SQL_SS_LENGTH_UNLIMITED 0 │ │ │ │ │ -40#endif │ │ │ │ │ -41 │ │ │ │ │ -42#ifndef SQL_COPT_SS_BASE │ │ │ │ │ -43#define SQL_COPT_SS_BASE 1200 │ │ │ │ │ -44#endif │ │ │ │ │ -45 │ │ │ │ │ -46#ifndef SQL_COPT_SS_MARS_ENABLED │ │ │ │ │ -47#define SQL_COPT_SS_MARS_ENABLED (SQL_COPT_SS_BASE+24) │ │ │ │ │ -48#endif │ │ │ │ │ -49 │ │ │ │ │ -50#ifndef SQL_COPT_SS_OLDPWD │ │ │ │ │ -51#define SQL_COPT_SS_OLDPWD (SQL_COPT_SS_BASE+26) │ │ │ │ │ -52#endif │ │ │ │ │ -53 │ │ │ │ │ -54#define SQL_INFO_FREETDS_TDS_VERSION 1300 │ │ │ │ │ -55#define SQL_INFO_FREETDS_SOCKET 1301 │ │ │ │ │ -56 │ │ │ │ │ -57#ifndef SQL_MARS_ENABLED_NO │ │ │ │ │ -58#define SQL_MARS_ENABLED_NO 0 │ │ │ │ │ -59#endif │ │ │ │ │ -60 │ │ │ │ │ -61#ifndef SQL_MARS_ENABLED_YES │ │ │ │ │ -62#define SQL_MARS_ENABLED_YES 1 │ │ │ │ │ -63#endif │ │ │ │ │ -64 │ │ │ │ │ -65#ifndef SQL_SS_VARIANT │ │ │ │ │ -66#define SQL_SS_VARIANT (-150) │ │ │ │ │ -67#endif │ │ │ │ │ -68 │ │ │ │ │ -69#ifndef SQL_SS_UDT │ │ │ │ │ -70#define SQL_SS_UDT (-151) │ │ │ │ │ -71#endif │ │ │ │ │ -72 │ │ │ │ │ -73#ifndef SQL_SS_XML │ │ │ │ │ -74#define SQL_SS_XML (-152) │ │ │ │ │ -75#endif │ │ │ │ │ -76 │ │ │ │ │ -77#ifndef SQL_SS_TABLE │ │ │ │ │ -78#define SQL_SS_TABLE (-153) │ │ │ │ │ -79#endif │ │ │ │ │ -80 │ │ │ │ │ -81#ifndef SQL_SS_TIME2 │ │ │ │ │ -82#define SQL_SS_TIME2 (-154) │ │ │ │ │ -83#endif │ │ │ │ │ -84 │ │ │ │ │ -85#ifndef SQL_SS_TIMESTAMPOFFSET │ │ │ │ │ -86#define SQL_SS_TIMESTAMPOFFSET (-155) │ │ │ │ │ -87#endif │ │ │ │ │ -88 │ │ │ │ │ -89/* │ │ │ │ │ -90 * these types are used from conversion from client to server │ │ │ │ │ -91 */ │ │ │ │ │ -92#ifndef SQL_C_SS_TIME2 │ │ │ │ │ -93#define SQL_C_SS_TIME2 (0x4000) │ │ │ │ │ -94#endif │ │ │ │ │ -95 │ │ │ │ │ -96#ifndef SQL_C_SS_TIMESTAMPOFFSET │ │ │ │ │ -97#define SQL_C_SS_TIMESTAMPOFFSET (0x4001) │ │ │ │ │ -98#endif │ │ │ │ │ -99 │ │ │ │ │ -100#ifndef SQL_CA_SS_BASE │ │ │ │ │ -101#define SQL_CA_SS_BASE 1200 │ │ │ │ │ -102#endif │ │ │ │ │ -103 │ │ │ │ │ -104#ifndef SQL_CA_SS_UDT_CATALOG_NAME │ │ │ │ │ -105#define SQL_CA_SS_UDT_CATALOG_NAME (SQL_CA_SS_BASE+18) │ │ │ │ │ -106#endif │ │ │ │ │ -107 │ │ │ │ │ -108#ifndef SQL_CA_SS_UDT_SCHEMA_NAME │ │ │ │ │ -109#define SQL_CA_SS_UDT_SCHEMA_NAME (SQL_CA_SS_BASE+19) │ │ │ │ │ -110#endif │ │ │ │ │ -111 │ │ │ │ │ -112#ifndef SQL_CA_SS_UDT_TYPE_NAME │ │ │ │ │ -113#define SQL_CA_SS_UDT_TYPE_NAME (SQL_CA_SS_BASE+20) │ │ │ │ │ -114#endif │ │ │ │ │ -115 │ │ │ │ │ -116#ifndef SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME │ │ │ │ │ -117#define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME (SQL_CA_SS_BASE+21) │ │ │ │ │ -118#endif │ │ │ │ │ -119 │ │ │ │ │ -120#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME │ │ │ │ │ -121#define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22) │ │ │ │ │ -122#endif │ │ │ │ │ -123 │ │ │ │ │ -124#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME │ │ │ │ │ -125#define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME (SQL_CA_SS_BASE+23) │ │ │ │ │ -126#endif │ │ │ │ │ -127 │ │ │ │ │ -128#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_NAME │ │ │ │ │ -129#define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME (SQL_CA_SS_BASE+24) │ │ │ │ │ -130#endif │ │ │ │ │ -131 │ │ │ │ │ -_1_3_2typedef struct _t_a_g_S_S___T_I_M_E_2___S_T_R_U_C_T { │ │ │ │ │ -133 SQLUSMALLINT hour; │ │ │ │ │ -134 SQLUSMALLINT minute; │ │ │ │ │ -135 SQLUSMALLINT second; │ │ │ │ │ -136 SQLUINTEGER fraction; │ │ │ │ │ -137} _S_Q_L___S_S___T_I_M_E_2___S_T_R_U_C_T; │ │ │ │ │ -138 │ │ │ │ │ -_1_3_9typedef struct _t_a_g_S_S___T_I_M_E_S_T_A_M_P_O_F_F_S_E_T___S_T_R_U_C_T { │ │ │ │ │ -140 SQLSMALLINT year; │ │ │ │ │ -141 SQLUSMALLINT month; │ │ │ │ │ -142 SQLUSMALLINT day; │ │ │ │ │ -143 SQLUSMALLINT hour; │ │ │ │ │ -144 SQLUSMALLINT minute; │ │ │ │ │ -145 SQLUSMALLINT second; │ │ │ │ │ -146 SQLUINTEGER fraction; │ │ │ │ │ -147 SQLSMALLINT timezone_hour; │ │ │ │ │ -148 SQLSMALLINT timezone_minute; │ │ │ │ │ -149} _S_Q_L___S_S___T_I_M_E_S_T_A_M_P_O_F_F_S_E_T___S_T_R_U_C_T; │ │ │ │ │ -150 │ │ │ │ │ -151 │ │ │ │ │ -152#ifdef TDSODBC_BCP │ │ │ │ │ -153 │ │ │ │ │ -154#ifndef SUCCEED │ │ │ │ │ -155#define SUCCEED 1 │ │ │ │ │ -156#endif │ │ │ │ │ -157#ifndef FAIL │ │ │ │ │ -158#define FAIL 0 │ │ │ │ │ -159#endif │ │ │ │ │ -160 │ │ │ │ │ -161#ifndef BCPKEEPIDENTITY │ │ │ │ │ -162#define BCPKEEPIDENTITY 8 │ │ │ │ │ -163#endif │ │ │ │ │ -164#ifndef BCPHINTS │ │ │ │ │ -165#define BCPHINTS 6 │ │ │ │ │ -166#endif │ │ │ │ │ -167 │ │ │ │ │ -168#define BCP_DIRECTION_IN 1 │ │ │ │ │ -169 │ │ │ │ │ -170#define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19) │ │ │ │ │ -171#define SQL_BCP_OFF 0 │ │ │ │ │ -172#define SQL_BCP_ON 1 │ │ │ │ │ -173 │ │ │ │ │ -174#define SQL_COPT_TDSODBC_IMPL_BASE 1500 │ │ │ │ │ -175#define SQL_COPT_TDSODBC_IMPL_BCP_INITA (SQL_COPT_TDSODBC_IMPL_BASE) │ │ │ │ │ -176#define SQL_COPT_TDSODBC_IMPL_BCP_CONTROL (SQL_COPT_TDSODBC_IMPL_BASE+1) │ │ │ │ │ -177#define SQL_COPT_TDSODBC_IMPL_BCP_COLPTR (SQL_COPT_TDSODBC_IMPL_BASE+2) │ │ │ │ │ -178#define SQL_COPT_TDSODBC_IMPL_BCP_SENDROW (SQL_COPT_TDSODBC_IMPL_BASE+3) │ │ │ │ │ -179#define SQL_COPT_TDSODBC_IMPL_BCP_BATCH (SQL_COPT_TDSODBC_IMPL_BASE+4) │ │ │ │ │ -180#define SQL_COPT_TDSODBC_IMPL_BCP_DONE (SQL_COPT_TDSODBC_IMPL_BASE+5) │ │ │ │ │ -181#define SQL_COPT_TDSODBC_IMPL_BCP_BIND (SQL_COPT_TDSODBC_IMPL_BASE+6) │ │ │ │ │ -182#define SQL_COPT_TDSODBC_IMPL_BCP_INITW (SQL_COPT_TDSODBC_IMPL_BASE+7) │ │ │ │ │ -183 │ │ │ │ │ -184#define SQL_VARLEN_DATA -10 │ │ │ │ │ -185 │ │ │ │ │ -186/* copied from sybdb.h which was copied from tds.h */ │ │ │ │ │ -187/* TODO find a much better way... */ │ │ │ │ │ -188enum │ │ │ │ │ -189{ │ │ │ │ │ -190 BCP_TYPE_SQLCHAR = 47, /* 0x2F */ │ │ │ │ │ -191#define BCP_TYPE_SQLCHAR BCP_TYPE_SQLCHAR │ │ │ │ │ -192 BCP_TYPE_SQLVARCHAR = 39, /* 0x27 */ │ │ │ │ │ -193#define BCP_TYPE_SQLVARCHAR BCP_TYPE_SQLVARCHAR │ │ │ │ │ -194 BCP_TYPE_SQLINTN = 38, /* 0x26 */ │ │ │ │ │ -195#define BCP_TYPE_SQLINTN BCP_TYPE_SQLINTN │ │ │ │ │ -196 BCP_TYPE_SQLINT1 = 48, /* 0x30 */ │ │ │ │ │ -197#define BCP_TYPE_SQLINT1 BCP_TYPE_SQLINT1 │ │ │ │ │ -198 BCP_TYPE_SQLINT2 = 52, /* 0x34 */ │ │ │ │ │ -199#define BCP_TYPE_SQLINT2 BCP_TYPE_SQLINT2 │ │ │ │ │ -200 BCP_TYPE_SQLINT4 = 56, /* 0x38 */ │ │ │ │ │ -201#define BCP_TYPE_SQLINT4 BCP_TYPE_SQLINT4 │ │ │ │ │ -202 BCP_TYPE_SQLINT8 = 127, /* 0x7F */ │ │ │ │ │ -203#define BCP_TYPE_SQLINT8 BCP_TYPE_SQLINT8 │ │ │ │ │ -204 BCP_TYPE_SQLFLT8 = 62, /* 0x3E */ │ │ │ │ │ -205#define BCP_TYPE_SQLFLT8 BCP_TYPE_SQLFLT8 │ │ │ │ │ -206 BCP_TYPE_SQLDATETIME = 61, /* 0x3D */ │ │ │ │ │ -207#define BCP_TYPE_SQLDATETIME BCP_TYPE_SQLDATETIME │ │ │ │ │ -208 BCP_TYPE_SQLBIT = 50, /* 0x32 */ │ │ │ │ │ -209#define BCP_TYPE_SQLBIT BCP_TYPE_SQLBIT │ │ │ │ │ -210 BCP_TYPE_SQLBITN = 104, /* 0x68 */ │ │ │ │ │ -211#define BCP_TYPE_SQLBITN BCP_TYPE_SQLBITN │ │ │ │ │ -212 BCP_TYPE_SQLTEXT = 35, /* 0x23 */ │ │ │ │ │ -213#define BCP_TYPE_SQLTEXT BCP_TYPE_SQLTEXT │ │ │ │ │ -214 BCP_TYPE_SQLNTEXT = 99, /* 0x63 */ │ │ │ │ │ -215#define BCP_TYPE_SQLNTEXT BCP_TYPE_SQLNTEXT │ │ │ │ │ -216 BCP_TYPE_SQLIMAGE = 34, /* 0x22 */ │ │ │ │ │ -217#define BCP_TYPE_SQLIMAGE BCP_TYPE_SQLIMAGE │ │ │ │ │ -218 BCP_TYPE_SQLMONEY4 = 122, /* 0x7A */ │ │ │ │ │ -219#define BCP_TYPE_SQLMONEY4 BCP_TYPE_SQLMONEY4 │ │ │ │ │ -220 BCP_TYPE_SQLMONEY = 60, /* 0x3C */ │ │ │ │ │ -221#define BCP_TYPE_SQLMONEY BCP_TYPE_SQLMONEY │ │ │ │ │ -222 BCP_TYPE_SQLDATETIME4 = 58, /* 0x3A */ │ │ │ │ │ -223#define BCP_TYPE_SQLDATETIME4 BCP_TYPE_SQLDATETIME4 │ │ │ │ │ -224 BCP_TYPE_SQLREAL = 59, /* 0x3B */ │ │ │ │ │ -225 BCP_TYPE_SQLFLT4 = 59, /* 0x3B */ │ │ │ │ │ -226#define BCP_TYPE_SQLREAL BCP_TYPE_SQLREAL │ │ │ │ │ -227#define BCP_TYPE_SQLFLT4 BCP_TYPE_SQLFLT4 │ │ │ │ │ -228 BCP_TYPE_SQLBINARY = 45, /* 0x2D */ │ │ │ │ │ -229#define BCP_TYPE_SQLBINARY BCP_TYPE_SQLBINARY │ │ │ │ │ -230 BCP_TYPE_SQLVOID = 31, /* 0x1F */ │ │ │ │ │ -231#define BCP_TYPE_SQLVOID BCP_TYPE_SQLVOID │ │ │ │ │ -232 BCP_TYPE_SQLVARBINARY = 37, /* 0x25 */ │ │ │ │ │ -233#define BCP_TYPE_SQLVARBINARY BCP_TYPE_SQLVARBINARY │ │ │ │ │ -234 BCP_TYPE_SQLNUMERIC = 108, /* 0x6C */ │ │ │ │ │ -235#define BCP_TYPE_SQLNUMERIC BCP_TYPE_SQLNUMERIC │ │ │ │ │ -236 BCP_TYPE_SQLDECIMAL = 106, /* 0x6A */ │ │ │ │ │ -237#define BCP_TYPE_SQLDECIMAL BCP_TYPE_SQLDECIMAL │ │ │ │ │ -238 BCP_TYPE_SQLFLTN = 109, /* 0x6D */ │ │ │ │ │ -239#define BCP_TYPE_SQLFLTN BCP_TYPE_SQLFLTN │ │ │ │ │ -240 BCP_TYPE_SQLMONEYN = 110, /* 0x6E */ │ │ │ │ │ -241#define BCP_TYPE_SQLMONEYN BCP_TYPE_SQLMONEYN │ │ │ │ │ -242 BCP_TYPE_SQLDATETIMN = 111, /* 0x6F */ │ │ │ │ │ -243#define BCP_TYPE_SQLDATETIMN BCP_TYPE_SQLDATETIMN │ │ │ │ │ -244 BCP_TYPE_SQLNVARCHAR = 103, /* 0x67 */ │ │ │ │ │ -245#define BCP_TYPE_SQLNVARCHAR BCP_TYPE_SQLNVARCHAR │ │ │ │ │ -246 BCP_TYPE_SQLUNIQUEID = 36, /* 0x24 */ │ │ │ │ │ -247#define BCP_TYPE_SQLUNIQUEID BCP_TYPE_SQLUNIQUEID │ │ │ │ │ -248 BCP_TYPE_SQLDATETIME2 = 42, /* 0x2a */ │ │ │ │ │ -249#define BCP_TYPE_SQLDATETIME2 BCP_TYPE_SQLDATETIME2 │ │ │ │ │ -250}; │ │ │ │ │ -251 │ │ │ │ │ -252typedef struct │ │ │ │ │ -253{ │ │ │ │ │ -254 int dtdays; │ │ │ │ │ -255 int dttime; │ │ │ │ │ -256} _D_B_D_A_T_E_T_I_M_E; │ │ │ │ │ -257 │ │ │ │ │ -258#ifdef _MSC_VER │ │ │ │ │ -259#define TDSODBC_INLINE __inline │ │ │ │ │ -260#else │ │ │ │ │ -261#define TDSODBC_INLINE __inline__ │ │ │ │ │ -262#endif │ │ │ │ │ -263 │ │ │ │ │ -264struct tdsodbc_impl_bcp_init_params │ │ │ │ │ -265{ │ │ │ │ │ -266 const void *tblname; │ │ │ │ │ -267 const void *hfile; │ │ │ │ │ -268 const void *errfile; │ │ │ │ │ -269 int direction; │ │ │ │ │ -270}; │ │ │ │ │ -271 │ │ │ │ │ -272static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ -273bcp_initA(HDBC hdbc, const char *tblname, const char *hfile, const char │ │ │ │ │ -*errfile, int direction) │ │ │ │ │ -274{ │ │ │ │ │ -275 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, │ │ │ │ │ -direction}; │ │ │ │ │ -276 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_INITA, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ -277} │ │ │ │ │ -278 │ │ │ │ │ -279static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ -280bcp_initW(HDBC hdbc, const SQLWCHAR *tblname, const SQLWCHAR *hfile, const │ │ │ │ │ -SQLWCHAR *errfile, int direction) │ │ │ │ │ -281{ │ │ │ │ │ -282 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, │ │ │ │ │ -direction}; │ │ │ │ │ -283 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_INITW, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ -284} │ │ │ │ │ -285 │ │ │ │ │ -286struct tdsodbc_impl_bcp_control_params │ │ │ │ │ -287{ │ │ │ │ │ -288 int field; │ │ │ │ │ -289 void *value; │ │ │ │ │ -290}; │ │ │ │ │ -291 │ │ │ │ │ -292static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ -293_b_c_p___c_o_n_t_r_o_l(HDBC hdbc, int field, void *value) │ │ │ │ │ -294{ │ │ │ │ │ -295 struct tdsodbc_impl_bcp_control_params params = {field, value}; │ │ │ │ │ -296 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_CONTROL, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ -297} │ │ │ │ │ -298 │ │ │ │ │ -299struct tdsodbc_impl_bcp_colptr_params │ │ │ │ │ -300{ │ │ │ │ │ -301 const unsigned char * colptr; │ │ │ │ │ -302 int table_column; │ │ │ │ │ -303}; │ │ │ │ │ -304 │ │ │ │ │ -305static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ -306_b_c_p___c_o_l_p_t_r(HDBC hdbc, const unsigned char * colptr, int table_column) │ │ │ │ │ -307{ │ │ │ │ │ -308 struct tdsodbc_impl_bcp_colptr_params params = {colptr, table_column}; │ │ │ │ │ -309 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_COLPTR, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ -310} │ │ │ │ │ -311 │ │ │ │ │ -312static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ -313_b_c_p___s_e_n_d_r_o_w(HDBC hdbc) │ │ │ │ │ -314{ │ │ │ │ │ -315 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ -316} │ │ │ │ │ -317 │ │ │ │ │ -318struct tdsodbc_impl_bcp_batch_params │ │ │ │ │ -319{ │ │ │ │ │ -320 int rows; │ │ │ │ │ -321}; │ │ │ │ │ -322 │ │ │ │ │ -323static TDSODBC_INLINE int SQL_API │ │ │ │ │ -324_b_c_p___b_a_t_c_h(HDBC hdbc) │ │ │ │ │ -325{ │ │ │ │ │ -326 struct tdsodbc_impl_bcp_batch_params params = {-1}; │ │ │ │ │ -327 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_BATCH, ¶ms, SQL_IS_POINTER)) ? params.rows : -1; │ │ │ │ │ -328} │ │ │ │ │ -329 │ │ │ │ │ -330struct tdsodbc_impl_bcp_done_params │ │ │ │ │ -331{ │ │ │ │ │ -332 int rows; │ │ │ │ │ -333}; │ │ │ │ │ -334 │ │ │ │ │ -335static TDSODBC_INLINE int SQL_API │ │ │ │ │ -336_b_c_p___d_o_n_e(HDBC hdbc) │ │ │ │ │ -337{ │ │ │ │ │ -338 struct tdsodbc_impl_bcp_done_params params = {-1}; │ │ │ │ │ -339 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_DONE, ¶ms, SQL_IS_POINTER)) ? params.rows : -1; │ │ │ │ │ -340} │ │ │ │ │ -341 │ │ │ │ │ -342struct tdsodbc_impl_bcp_bind_params │ │ │ │ │ -343{ │ │ │ │ │ -344 const unsigned char * varaddr; │ │ │ │ │ -345 int prefixlen; │ │ │ │ │ -346 int varlen; │ │ │ │ │ -347 const unsigned char * terminator; │ │ │ │ │ -348 int termlen; │ │ │ │ │ -349 int vartype; │ │ │ │ │ -350 int table_column; │ │ │ │ │ -351}; │ │ │ │ │ -352 │ │ │ │ │ -353static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ -354_b_c_p___b_i_n_d(HDBC hdbc, const unsigned char * varaddr, int prefixlen, int │ │ │ │ │ -varlen, │ │ │ │ │ -355 const unsigned char * terminator, int termlen, int vartype, int │ │ │ │ │ -table_column) │ │ │ │ │ -356{ │ │ │ │ │ -357 struct tdsodbc_impl_bcp_bind_params params = {varaddr, prefixlen, varlen, │ │ │ │ │ -terminator, termlen, vartype, table_column}; │ │ │ │ │ -358 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ -SQL_COPT_TDSODBC_IMPL_BCP_BIND, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ -359} │ │ │ │ │ -360 │ │ │ │ │ -361#ifdef UNICODE │ │ │ │ │ -362#define bcp_init bcp_initW │ │ │ │ │ -363#else │ │ │ │ │ -364#define bcp_init bcp_initA │ │ │ │ │ -365#endif │ │ │ │ │ -366 │ │ │ │ │ -367#endif /* TDSODBC_BCP */ │ │ │ │ │ -368 │ │ │ │ │ -369#ifdef __cplusplus │ │ │ │ │ -370} │ │ │ │ │ -371#endif │ │ │ │ │ -372 │ │ │ │ │ -373#endif /* _odbcss_h_ */ │ │ │ │ │ -_b_c_p___c_o_n_t_r_o_l │ │ │ │ │ -RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value) │ │ │ │ │ -Set BCP options for uploading a datafile. │ │ │ │ │ -DDeeffiinniittiioonn bcp.c:544 │ │ │ │ │ -_b_c_p___c_o_l_p_t_r │ │ │ │ │ -RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column) │ │ │ │ │ -Override bcp_bind() by pointing to a different host variable. │ │ │ │ │ -DDeeffiinniittiioonn bcp.c:671 │ │ │ │ │ -_b_c_p___b_i_n_d │ │ │ │ │ -RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, │ │ │ │ │ -BYTE *terminator, int termlen, int db_vartype, int table_column) │ │ │ │ │ -Bind a program host variable to a database column. │ │ │ │ │ -DDeeffiinniittiioonn bcp.c:2079 │ │ │ │ │ -_b_c_p___d_o_n_e │ │ │ │ │ -DBINT bcp_done(DBPROCESS *dbproc) │ │ │ │ │ -Conclude the transfer of data from program variables. │ │ │ │ │ -DDeeffiinniittiioonn bcp.c:2037 │ │ │ │ │ -_b_c_p___b_a_t_c_h │ │ │ │ │ -DBINT bcp_batch(DBPROCESS *dbproc) │ │ │ │ │ -Commit a set of rows to the table. │ │ │ │ │ -DDeeffiinniittiioonn bcp.c:2010 │ │ │ │ │ -_b_c_p___s_e_n_d_r_o_w │ │ │ │ │ -RETCODE bcp_sendrow(DBPROCESS *dbproc) │ │ │ │ │ -Write data in host variables to the table. │ │ │ │ │ -DDeeffiinniittiioonn bcp.c:1381 │ │ │ │ │ -_t_a_g_S_S___T_I_M_E_2___S_T_R_U_C_T │ │ │ │ │ -DDeeffiinniittiioonn odbcss.h:132 │ │ │ │ │ -_t_a_g_S_S___T_I_M_E_S_T_A_M_P_O_F_F_S_E_T___S_T_R_U_C_T │ │ │ │ │ -DDeeffiinniittiioonn odbcss.h:139 │ │ │ │ │ -_D_B_D_A_T_E_T_I_M_E │ │ │ │ │ -DDeeffiinniittiioonn sybdb.h:295 │ │ │ │ │ +23/* │ │ │ │ │ +24 * This file is publicly installed. │ │ │ │ │ +25 * MUST not include config.h │ │ │ │ │ +26 */ │ │ │ │ │ +27 │ │ │ │ │ +28#if (!defined(_MSC_VER) && defined(__cplusplus) && __cplusplus >= 201103L) || │ │ │ │ │ +\ │ │ │ │ │ +29 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) │ │ │ │ │ +30# include │ │ │ │ │ +31#elif (defined(__sun) && defined(__SVR4)) || defined(__hpux) │ │ │ │ │ +32# include │ │ │ │ │ +33#else │ │ │ │ │ +34typedef signed char int8_t; /* 8-bit int */ │ │ │ │ │ +35typedef unsigned char uint8_t; /* 8-bit int */ │ │ │ │ │ +36/* │ │ │ │ │ +37 * This is where platform-specific changes need to be made. │ │ │ │ │ +38 */ │ │ │ │ │ +39# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) │ │ │ │ │ +40# include │ │ │ │ │ +41# include │ │ │ │ │ +42# include │ │ │ │ │ +43 typedef signed short int16_t; /* 16-bit int */ │ │ │ │ │ +44 typedef unsigned short uint16_t; /* 16-bit int */ │ │ │ │ │ +45 typedef signed int int32_t; /* 32-bit int */ │ │ │ │ │ +46 typedef unsigned int uint32_t; /* 32-bit int */ │ │ │ │ │ +47 typedef signed __int64 int64_t; /* 64-bit int */ │ │ │ │ │ +48 typedef unsigned __int64 uint64_t; /* 64-bit int */ │ │ │ │ │ +49# if !defined(WIN64) && !defined(_WIN64) │ │ │ │ │ +50 typedef signed int intptr_t; /* 32-bit int */ │ │ │ │ │ +51 typedef unsigned int uintptr_t; /* 32-bit int */ │ │ │ │ │ +52# else │ │ │ │ │ +53 typedef signed __int64 intptr_t; /* 64-bit int */ │ │ │ │ │ +54 typedef unsigned __int64 uintptr_t; /* 64-bit int */ │ │ │ │ │ +55# endif │ │ │ │ │ +56# else /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */ │ │ │ │ │ +57 typedef signed short int16_t; /* 16-bit int */ │ │ │ │ │ +58 typedef unsigned short uint16_t; /* 16-bit int */ │ │ │ │ │ +59 typedef signed int int32_t; /* 32-bit int */ │ │ │ │ │ +60 typedef unsigned int uint32_t; /* 32-bit int */ │ │ │ │ │ +61 typedef signed long long int64_t; /* 64-bit int */ │ │ │ │ │ +62 typedef unsigned long long uint64_t; /* 64-bit int */ │ │ │ │ │ +63 typedef signed int intptr_t; │ │ │ │ │ +64 typedef unsigned int uintptr_t; │ │ │ │ │ +65# endif │ │ │ │ │ +66#endif │ │ │ │ │ +67 │ │ │ │ │ +68#include │ │ │ │ │ +69 │ │ │ │ │ +70/* try to understand float sizes using float.h constants */ │ │ │ │ │ +71#if FLT_RADIX == 2 │ │ │ │ │ +72# if FLT_MANT_DIG == 24 && FLT_MAX_EXP == 128 │ │ │ │ │ +73# define tds_sysdep_real32_type float /* 32-bit real */ │ │ │ │ │ +74# elif DBL_MANT_DIG == 24 && DBL_MAX_EXP == 128 │ │ │ │ │ +75# define tds_sysdep_real32_type double /* 32-bit real */ │ │ │ │ │ +76# elif LDBL_MANT_DIG == 24 && LDBL_MAX_EXP == 128 │ │ │ │ │ +77# define tds_sysdep_real32_type long double /* 32-bit real */ │ │ │ │ │ +78# endif │ │ │ │ │ +79# if FLT_MANT_DIG == 53 && FLT_MAX_EXP == 1024 │ │ │ │ │ +80# define tds_sysdep_real64_type float /* 64-bit real */ │ │ │ │ │ +81# elif DBL_MANT_DIG == 53 && DBL_MAX_EXP == 1024 │ │ │ │ │ +82# define tds_sysdep_real64_type double /* 64-bit real */ │ │ │ │ │ +83# elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 │ │ │ │ │ +84# define tds_sysdep_real64_type long double /* 64-bit real */ │ │ │ │ │ +85# endif │ │ │ │ │ +86# if !defined(tds_sysdep_real32_type) || !defined(tds_sysdep_real64_type) │ │ │ │ │ +87# error Some float type was not found! │ │ │ │ │ +88# endif │ │ │ │ │ +89#else │ │ │ │ │ +90# if FLT_DIG == 6 && FLT_MAX_10_EXP == 38 │ │ │ │ │ +91# define tds_sysdep_real32_type float /* 32-bit real */ │ │ │ │ │ +92# elif DBL_DIG == 6 && DBL_MAX_10_EXP == 38 │ │ │ │ │ +93# define tds_sysdep_real32_type double /* 32-bit real */ │ │ │ │ │ +94# elif LDBL_DIG == 6 && LDBL_MAX_10_EXP == 38 │ │ │ │ │ +95# define tds_sysdep_real32_type long double /* 32-bit real */ │ │ │ │ │ +96# endif │ │ │ │ │ +97# if FLT_DIG == 15 && FLT_MAX_10_EXP == 308 │ │ │ │ │ +98# define tds_sysdep_real64_type float /* 64-bit real */ │ │ │ │ │ +99# elif DBL_DIG == 15 && DBL_MAX_10_EXP == 308 │ │ │ │ │ +100# define tds_sysdep_real64_type double /* 64-bit real */ │ │ │ │ │ +101# elif LDBL_DIG == 15 && LDBL_MAX_10_EXP == 308 │ │ │ │ │ +102# define tds_sysdep_real64_type long double /* 64-bit real */ │ │ │ │ │ +103# endif │ │ │ │ │ +104#endif │ │ │ │ │ +105 │ │ │ │ │ +106/* fall back to configure.ac types */ │ │ │ │ │ +107#ifndef tds_sysdep_real32_type │ │ │ │ │ +108#define tds_sysdep_real32_type float /* 32-bit real */ │ │ │ │ │ +109#endif /* !tds_sysdep_real32_type */ │ │ │ │ │ +110 │ │ │ │ │ +111#ifndef tds_sysdep_real64_type │ │ │ │ │ +112#define tds_sysdep_real64_type double /* 64-bit real */ │ │ │ │ │ +113#endif /* !tds_sysdep_real64_type */ │ │ │ │ │ +114 │ │ │ │ │ +115#if !defined(MSDBLIB) && !defined(SYBDBLIB) │ │ │ │ │ +116#define SYBDBLIB 1 │ │ │ │ │ +117#endif │ │ │ │ │ +118#if defined(MSDBLIB) && defined(SYBDBLIB) │ │ │ │ │ +119#error MSDBLIB and SYBDBLIB cannot both be defined │ │ │ │ │ +120#endif │ │ │ │ │ +121 │ │ │ │ │ +122#endif /* _tds_sysdep_public_h_ */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00479_af8ada101cd189eff87b3533cbeaaa23b_cgraph.dot.gz │ │ │ │ ├── a00479_af8ada101cd189eff87b3533cbeaaa23b_cgraph.dot │ │ │ │ │ @@ -13,15 +13,15 @@ │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node3 -> Node5 [id="edge4_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ │ Node2 -> Node6 [id="edge5_Node000002_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbwillconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaaf8349999c16b3c36caf5947747a2915",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ Node6 -> Node8 [id="edge7_Node000006_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_willconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga80487b313213f60d8be71a50a002bb2c",tooltip="Test if a conversion is possible."]; │ │ │ │ │ Node1 -> Node9 [id="edge8_Node000001_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbcollen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433",tooltip="Get size of a regular result column."]; │ │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="dbcolptr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga45d1c0fba44eafde5e156a70af5d6126",tooltip="Sanity checks for column-oriented functions."]; │ │ │ │ │ Node10 -> Node3 [id="edge10_Node000010_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00480.dot │ │ │ │ @@ -2,11 +2,11 @@ │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ Node1 [id="Node000001",label="include/sybdb.h",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Primary include file for db-lib applications."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_sysdep_public.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00491_source.html",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="tds_sysdep_public.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00476_source.html",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="float.h",height=0.2,width=0.4,color="grey60", fillcolor="#E0E0E0", style="filled",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00481.dot │ │ │ │ @@ -2,19 +2,19 @@ │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ Node1 [id="Node000001",label="include/sybdb.h",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Primary include file for db-lib applications."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="include/sqldb.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00470_source.html",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="include/sqldb.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00497_source.html",tooltip=" "]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="include/sybfront.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00347_source.html",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="include/sqlfront.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00482_source.html",tooltip=" "]; │ │ │ │ + Node4 [id="Node000004",label="include/sqlfront.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00485_source.html",tooltip=" "]; │ │ │ │ Node3 -> Node5 [id="edge4_Node000003_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="src/dblib/bcp.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html",tooltip="Implementation of db-lib bulk copy functions."]; │ │ │ │ + Node5 [id="Node000005",label="src/dblib/bcp.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html",tooltip="Implementation of db-lib bulk copy functions."]; │ │ │ │ Node3 -> Node6 [id="edge5_Node000003_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="src/dblib/dblib.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html",tooltip="Main implementation file for db-lib."]; │ │ │ │ + Node6 [id="Node000006",label="src/dblib/dblib.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html",tooltip="Main implementation file for db-lib."]; │ │ │ │ Node1 -> Node5 [id="edge6_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node6 [id="edge7_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00482_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/sqlfront.h Source File │ │ │ │ +FreeTDS API: include/config.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,78 +74,806 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
sqlfront.h
│ │ │ │ +
config.h
│ │ │ │
│ │ │ │
│ │ │ │ -
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ -
3 * Copyright (C) 2011 Frediano Ziglio
│ │ │ │ -
4 *
│ │ │ │ -
5 * This library is free software; you can redistribute it and/or
│ │ │ │ -
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
7 * License as published by the Free Software Foundation; either
│ │ │ │ -
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
9 *
│ │ │ │ -
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
13 * Library General Public License for more details.
│ │ │ │ -
14 *
│ │ │ │ -
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
16 * License along with this library; if not, write to the
│ │ │ │ -
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
18 * Boston, MA 02111-1307, USA.
│ │ │ │ -
19 */
│ │ │ │ +
1/* include/config.h. Generated from config.h.in by configure. */
│ │ │ │ +
2/* include/config.h.in. Generated from configure.ac by autoheader. */
│ │ │ │ +
3
│ │ │ │ +
4#define _freetds_config_h_
│ │ │ │ +
5
│ │ │ │ +
6/* Define if building universal (internal helper macro) */
│ │ │ │ +
7/* #undef AC_APPLE_UNIVERSAL_BUILD */
│ │ │ │ +
8
│ │ │ │ +
9/* Define to 1 if you need BSD_COMP defined to get FIONBIO defined. */
│ │ │ │ +
10/* #undef BSD_COMP */
│ │ │ │ +
11
│ │ │ │ +
12/* Define to 1 if using 'alloca.c'. */
│ │ │ │ +
13/* #undef C_ALLOCA */
│ │ │ │ +
14
│ │ │ │ +
15/* Define to enable work in progress code */
│ │ │ │ +
16/* #undef ENABLE_DEVELOPING */
│ │ │ │ +
17
│ │ │ │ +
18/* Define to enable extra checks on code */
│ │ │ │ +
19/* #undef ENABLE_EXTRA_CHECKS */
│ │ │ │
20
│ │ │ │ -
21#ifndef SQLFRONT_h
│ │ │ │ -
22#define SQLFRONT_h
│ │ │ │ +
21/* Defined if --enable-krb5 used and library detected */
│ │ │ │ +
22#define ENABLE_KRB5 1
│ │ │ │
23
│ │ │ │ -
24#include "./sybfront.h"
│ │ │ │ -
25
│ │ │ │ -
26static const char rcsid_sqlfront_h[] = "$Id: sqlfront.h,v 1.10 2011-07-13 11:06:31 freddy77 Exp $";
│ │ │ │ -
27static const void *const no_unused_sqlfront_h_warn[] = { rcsid_sqlfront_h, no_unused_sqlfront_h_warn };
│ │ │ │ -
28
│ │ │ │ -
29typedef DBPROCESS * PDBPROCESS;
│ │ │ │ -
30typedef LOGINREC * PLOGINREC;
│ │ │ │ -
31typedef DBCURSOR * PDBCURSOR;
│ │ │ │ +
24/* Define to enable MARS support */
│ │ │ │ +
25#define ENABLE_ODBC_MARS 1
│ │ │ │ +
26
│ │ │ │ +
27/* Define to enable ODBC wide string support */
│ │ │ │ +
28#define ENABLE_ODBC_WIDE 1
│ │ │ │ +
29
│ │ │ │ +
30/* Define to 1 if GNU tls use nettle as backend. */
│ │ │ │ +
31#define GNUTLS_USE_NETTLE 1
│ │ │ │
32
│ │ │ │ -
33typedef int * LPINT;
│ │ │ │ -
34typedef char * LPSTR;
│ │ │ │ -
35#if !defined(PHP_MSSQL_H) || !defined(PHP_MSSQL_API)
│ │ │ │ -
36typedef BYTE * LPBYTE;
│ │ │ │ -
37#endif
│ │ │ │ -
38typedef void * LPVOID;
│ │ │ │ -
39typedef const char * LPCSTR;
│ │ │ │ -
40
│ │ │ │ -
41typedef const LPINT LPCINT;
│ │ │ │ -
42#ifndef _LPCBYTE_DEFINED
│ │ │ │ -
43#define _LPCBYTE_DEFINED
│ │ │ │ -
44typedef const BYTE * LPCBYTE;
│ │ │ │ -
45#endif
│ │ │ │ -
46typedef USHORT * LPUSHORT;
│ │ │ │ -
47typedef const LPUSHORT LPCUSHORT;
│ │ │ │ -
48typedef DBINT * LPDBINT;
│ │ │ │ -
49typedef const LPDBINT LPCDBINT;
│ │ │ │ -
50typedef DBBINARY * LPDBBINARY;
│ │ │ │ -
51typedef const LPDBBINARY LPCDBBINARY;
│ │ │ │ -
52typedef DBDATEREC * LPDBDATEREC;
│ │ │ │ -
53typedef const LPDBDATEREC LPCDBDATEREC;
│ │ │ │ -
54typedef DBDATETIME * LPDBDATETIME;
│ │ │ │ -
55typedef const LPDBDATETIME LPCDBDATETIME;
│ │ │ │ +
33/* Define to 1 if you have the 'alarm' function. */
│ │ │ │ +
34#define HAVE_ALARM 1
│ │ │ │ +
35
│ │ │ │ +
36/* Define to 1 if you have 'alloca', as a function or macro. */
│ │ │ │ +
37#define HAVE_ALLOCA 1
│ │ │ │ +
38
│ │ │ │ +
39/* Define to 1 if <alloca.h> works. */
│ │ │ │ +
40#define HAVE_ALLOCA_H 1
│ │ │ │ +
41
│ │ │ │ +
42/* Define to 1 if you have the <arpa/inet.h> header file. */
│ │ │ │ +
43#define HAVE_ARPA_INET_H 1
│ │ │ │ +
44
│ │ │ │ +
45/* Define to 1 if you have the 'ASN1_STRING_get0_data' function. */
│ │ │ │ +
46/* #undef HAVE_ASN1_STRING_GET0_DATA */
│ │ │ │ +
47
│ │ │ │ +
48/* Define to 1 if you have the 'asprintf' function. */
│ │ │ │ +
49#define HAVE_ASPRINTF 1
│ │ │ │ +
50
│ │ │ │ +
51/* Define to 1 if you have the 'basename' function. */
│ │ │ │ +
52#define HAVE_BASENAME 1
│ │ │ │ +
53
│ │ │ │ +
54/* Define to 1 if you have the 'BIO_get_data' function. */
│ │ │ │ +
55/* #undef HAVE_BIO_GET_DATA */
│ │ │ │
56
│ │ │ │ -
57#endif
│ │ │ │ -
Definition bsqlodbc.c:100
│ │ │ │ -
Definition dblib.h:123
│ │ │ │ -
Definition sybdb.h:295
│ │ │ │ -
Definition sybdb.h:474
│ │ │ │ +
57/* Define if you have the clock_gettime function. */
│ │ │ │ +
58#define HAVE_CLOCK_GETTIME 1
│ │ │ │ +
59
│ │ │ │ +
60/* Define to 1 if you have the <com_err.h> header file. */
│ │ │ │ +
61#define HAVE_COM_ERR_H 1
│ │ │ │ +
62
│ │ │ │ +
63/* Define to 1 if you have the 'daemon' function. */
│ │ │ │ +
64#define HAVE_DAEMON 1
│ │ │ │ +
65
│ │ │ │ +
66/* Define to 1 if you have the declaration of 'tzname', and to 0 if you don't.
│ │ │ │ +
67 */
│ │ │ │ +
68/* #undef HAVE_DECL_TZNAME */
│ │ │ │ +
69
│ │ │ │ +
70/* Define to 1 if you have the <dirent.h> header file. */
│ │ │ │ +
71#define HAVE_DIRENT_H 1
│ │ │ │ +
72
│ │ │ │ +
73/* Define to 1 if you have the <dlfcn.h> header file. */
│ │ │ │ +
74#define HAVE_DLFCN_H 1
│ │ │ │ +
75
│ │ │ │ +
76/* Define to 1 if you have the <errno.h> header file. */
│ │ │ │ +
77#define HAVE_ERRNO_H 1
│ │ │ │ +
78
│ │ │ │ +
79/* Define to 1 if you have the 'error_message' function. */
│ │ │ │ +
80/* #undef HAVE_ERROR_MESSAGE */
│ │ │ │ +
81
│ │ │ │ +
82/* Define to 1 if you have the 'eventfd' function. */
│ │ │ │ +
83#define HAVE_EVENTFD 1
│ │ │ │ +
84
│ │ │ │ +
85/* Define to 1 if you have the <fcntl.h> header file. */
│ │ │ │ +
86#define HAVE_FCNTL_H 1
│ │ │ │ +
87
│ │ │ │ +
88/* Define to 1 if you have the 'fork' function. */
│ │ │ │ +
89#define HAVE_FORK 1
│ │ │ │ +
90
│ │ │ │ +
91/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */
│ │ │ │ +
92#define HAVE_FSEEKO 1
│ │ │ │ +
93
│ │ │ │ +
94/* Define to 1 if you have the 'fstat' function. */
│ │ │ │ +
95#define HAVE_FSTAT 1
│ │ │ │ +
96
│ │ │ │ +
97/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ +
98 gethostbyaddr_r(). */
│ │ │ │ +
99/* #undef HAVE_FUNC_GETHOSTBYADDR_R_5 */
│ │ │ │ +
100
│ │ │ │ +
101/* Define to 1 if your system provides the 7-parameter version of
│ │ │ │ +
102 gethostbyaddr_r(). */
│ │ │ │ +
103/* #undef HAVE_FUNC_GETHOSTBYADDR_R_7 */
│ │ │ │ +
104
│ │ │ │ +
105/* Define to 1 if your system provides the 8-parameter version of
│ │ │ │ +
106 gethostbyaddr_r(). */
│ │ │ │ +
107#define HAVE_FUNC_GETHOSTBYADDR_R_8 1
│ │ │ │ +
108
│ │ │ │ +
109/* Define to 1 if your system provides the 3-parameter version of
│ │ │ │ +
110 gethostbyname_r(). */
│ │ │ │ +
111/* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */
│ │ │ │ +
112
│ │ │ │ +
113/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ +
114 gethostbyname_r(). */
│ │ │ │ +
115/* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */
│ │ │ │ +
116
│ │ │ │ +
117/* Define to 1 if your system provides the 6-parameter version of
│ │ │ │ +
118 gethostbyname_r(). */
│ │ │ │ +
119#define HAVE_FUNC_GETHOSTBYNAME_R_6 1
│ │ │ │ +
120
│ │ │ │ +
121/* Define to 1 if your system provides the 4-parameter version of
│ │ │ │ +
122 getpwuid_r(). */
│ │ │ │ +
123/* #undef HAVE_FUNC_GETPWUID_R_4 */
│ │ │ │ +
124
│ │ │ │ +
125/* Define to 1 if your system getpwuid_r() have 4 parameters and return struct
│ │ │ │ +
126 passwd*. */
│ │ │ │ +
127/* #undef HAVE_FUNC_GETPWUID_R_4_PW */
│ │ │ │ +
128
│ │ │ │ +
129/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ +
130 getpwuid_r(). */
│ │ │ │ +
131#define HAVE_FUNC_GETPWUID_R_5 1
│ │ │ │ +
132
│ │ │ │ +
133/* Define to 1 if your system provides the 4-parameter version of
│ │ │ │ +
134 getservbyname_r(). */
│ │ │ │ +
135/* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */
│ │ │ │ +
136
│ │ │ │ +
137/* Define to 1 if your system provides the 5-parameter version of
│ │ │ │ +
138 getservbyname_r(). */
│ │ │ │ +
139/* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */
│ │ │ │ +
140
│ │ │ │ +
141/* Define to 1 if your system provides the 6-parameter version of
│ │ │ │ +
142 getservbyname_r(). */
│ │ │ │ +
143#define HAVE_FUNC_GETSERVBYNAME_R_6 1
│ │ │ │ +
144
│ │ │ │ +
145/* Define to 1 if your localtime_r return a int. */
│ │ │ │ +
146/* #undef HAVE_FUNC_LOCALTIME_R_INT */
│ │ │ │ +
147
│ │ │ │ +
148/* Define to 1 if your localtime_r return a struct tm*. */
│ │ │ │ +
149#define HAVE_FUNC_LOCALTIME_R_TM 1
│ │ │ │ +
150
│ │ │ │ +
151/* Define if you have getaddrinfo function */
│ │ │ │ +
152#define HAVE_GETADDRINFO 1
│ │ │ │ +
153
│ │ │ │ +
154/* Define to 1 if you have the 'gethostname' function. */
│ │ │ │ +
155#define HAVE_GETHOSTNAME 1
│ │ │ │ +
156
│ │ │ │ +
157/* Define to 1 if you have the 'gethrtime' function. */
│ │ │ │ +
158/* #undef HAVE_GETHRTIME */
│ │ │ │ +
159
│ │ │ │ +
160/* Define to 1 if you have the 'getipnodebyaddr' function. */
│ │ │ │ +
161/* #undef HAVE_GETIPNODEBYADDR */
│ │ │ │ +
162
│ │ │ │ +
163/* Define to 1 if you have the 'getipnodebyname' function. */
│ │ │ │ +
164/* #undef HAVE_GETIPNODEBYNAME */
│ │ │ │ +
165
│ │ │ │ +
166/* Define to 1 if you have the 'getopt' function. */
│ │ │ │ +
167#define HAVE_GETOPT 1
│ │ │ │ +
168
│ │ │ │ +
169/* Define to 1 if you have the <getopt.h> header file. */
│ │ │ │ +
170#define HAVE_GETOPT_H 1
│ │ │ │ +
171
│ │ │ │ +
172/* Define if your getopt(3) defines and uses optreset */
│ │ │ │ +
173/* #undef HAVE_GETOPT_OPTRESET */
│ │ │ │ +
174
│ │ │ │ +
175/* Define to 1 if you have the 'getpwuid' function. */
│ │ │ │ +
176#define HAVE_GETPWUID 1
│ │ │ │ +
177
│ │ │ │ +
178/* Define to 1 if you have the 'getpwuid_r' function. */
│ │ │ │ +
179#define HAVE_GETPWUID_R 1
│ │ │ │ +
180
│ │ │ │ +
181/* Define to 1 if you have the 'gettimeofday' function. */
│ │ │ │ +
182#define HAVE_GETTIMEOFDAY 1
│ │ │ │ +
183
│ │ │ │ +
184/* Define to 1 if you have the 'getuid' function. */
│ │ │ │ +
185#define HAVE_GETUID 1
│ │ │ │ +
186
│ │ │ │ +
187/* Define if you have GMP library */
│ │ │ │ +
188#define HAVE_GMP 1
│ │ │ │ +
189
│ │ │ │ +
190/* Define to 1 if you have GnuTLS. */
│ │ │ │ +
191#define HAVE_GNUTLS 1
│ │ │ │ +
192
│ │ │ │ +
193/* Define to 1 if you have the <gnutls/abstract.h> header file. */
│ │ │ │ +
194#define HAVE_GNUTLS_ABSTRACT_H 1
│ │ │ │ +
195
│ │ │ │ +
196/* Define to 1 if you have the 'gnutls_certificate_set_verify_function'
│ │ │ │ +
197 function. */
│ │ │ │ +
198#define HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION 1
│ │ │ │ +
199
│ │ │ │ +
200/* Define to 1 if you have the 'gnutls_record_disable_padding' function. */
│ │ │ │ +
201#define HAVE_GNUTLS_RECORD_DISABLE_PADDING 1
│ │ │ │ +
202
│ │ │ │ +
203/* Define to 1 if you have the 'gnutls_rnd' function. */
│ │ │ │ +
204#define HAVE_GNUTLS_RND 1
│ │ │ │ +
205
│ │ │ │ +
206/* Define if you have the iconv() function and it works. */
│ │ │ │ +
207#define HAVE_ICONV 1
│ │ │ │ +
208
│ │ │ │ +
209/* Define to 1 if you have the 'inet_ntoa_r' function. */
│ │ │ │ +
210/* #undef HAVE_INET_NTOA_R */
│ │ │ │ +
211
│ │ │ │ +
212/* Define to 1 if you have the 'inet_ntop' function. */
│ │ │ │ +
213#define HAVE_INET_NTOP 1
│ │ │ │ +
214
│ │ │ │ +
215/* Define to 1 if you have the <inttypes.h> header file. */
│ │ │ │ +
216#define HAVE_INTTYPES_H 1
│ │ │ │ +
217
│ │ │ │ +
218/* Define to 1 if you have the <iodbcinst.h> header file. */
│ │ │ │ +
219/* #undef HAVE_IODBCINST_H */
│ │ │ │ +
220
│ │ │ │ +
221/* Define to 1 if you have the <langinfo.h> header file. */
│ │ │ │ +
222#define HAVE_LANGINFO_H 1
│ │ │ │ +
223
│ │ │ │ +
224/* Define to 1 if you have the <libgen.h> header file. */
│ │ │ │ +
225#define HAVE_LIBGEN_H 1
│ │ │ │ +
226
│ │ │ │ +
227/* Define to 1 if you have the <limits.h> header file. */
│ │ │ │ +
228#define HAVE_LIMITS_H 1
│ │ │ │ +
229
│ │ │ │ +
230/* Define to 1 if you have the <localcharset.h> header file. */
│ │ │ │ +
231/* #undef HAVE_LOCALCHARSET_H */
│ │ │ │ +
232
│ │ │ │ +
233/* Define to 1 if you have the 'locale_charset' function. */
│ │ │ │ +
234/* #undef HAVE_LOCALE_CHARSET */
│ │ │ │ +
235
│ │ │ │ +
236/* Define to 1 if you have the <locale.h> header file. */
│ │ │ │ +
237#define HAVE_LOCALE_H 1
│ │ │ │ +
238
│ │ │ │ +
239/* Define to 1 if you have the 'localtime_r' function. */
│ │ │ │ +
240#define HAVE_LOCALTIME_R 1
│ │ │ │ +
241
│ │ │ │ +
242/* Define to 1 if you have the <malloc.h> header file. */
│ │ │ │ +
243#define HAVE_MALLOC_H 1
│ │ │ │ +
244
│ │ │ │ +
245/* Define to 1 if your system provides the malloc_options variable. */
│ │ │ │ +
246/* #undef HAVE_MALLOC_OPTIONS */
│ │ │ │ +
247
│ │ │ │ +
248/* Define to 1 if you have the <minix/config.h> header file. */
│ │ │ │ +
249/* #undef HAVE_MINIX_CONFIG_H */
│ │ │ │ +
250
│ │ │ │ +
251/* Define to 1 if you have the 'nanosleep' function. */
│ │ │ │ +
252#define HAVE_NANOSLEEP 1
│ │ │ │ +
253
│ │ │ │ +
254/* Define to 1 if you have the <netdb.h> header file. */
│ │ │ │ +
255#define HAVE_NETDB_H 1
│ │ │ │ +
256
│ │ │ │ +
257/* Define to 1 if you have the <netinet/in.h> header file. */
│ │ │ │ +
258#define HAVE_NETINET_IN_H 1
│ │ │ │ +
259
│ │ │ │ +
260/* Define to 1 if you have the <netinet/tcp.h> header file. */
│ │ │ │ +
261#define HAVE_NETINET_TCP_H 1
│ │ │ │ +
262
│ │ │ │ +
263/* Define to 1 if nettle is present. */
│ │ │ │ +
264#define HAVE_NETTLE 1
│ │ │ │ +
265
│ │ │ │ +
266/* Define to 1 if you have the 'nl_langinfo' function. */
│ │ │ │ +
267#define HAVE_NL_LANGINFO 1
│ │ │ │ +
268
│ │ │ │ +
269/* Define to 1 if you have the <odbcss.h> header file. */
│ │ │ │ +
270/* #undef HAVE_ODBCSS_H */
│ │ │ │ +
271
│ │ │ │ +
272/* Define if you have the OpenSSL. */
│ │ │ │ +
273/* #undef HAVE_OPENSSL */
│ │ │ │ +
274
│ │ │ │ +
275/* Define to 1 if you have the <paths.h> header file. */
│ │ │ │ +
276#define HAVE_PATHS_H 1
│ │ │ │ +
277
│ │ │ │ +
278/* Define to 1 if you have the 'poll' function. */
│ │ │ │ +
279#define HAVE_POLL 1
│ │ │ │ +
280
│ │ │ │ +
281/* Define to 1 if you have the <poll.h> header file. */
│ │ │ │ +
282#define HAVE_POLL_H 1
│ │ │ │ +
283
│ │ │ │ +
284/* Define if you have POSIX threads libraries and header files. */
│ │ │ │ +
285#define HAVE_PTHREAD 1
│ │ │ │ +
286
│ │ │ │ +
287/* Define to 1 if you have the 'pthread_condattr_setclock' function. */
│ │ │ │ +
288#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
│ │ │ │ +
289
│ │ │ │ +
290/* Define to 1 if you have the 'pthread_cond_timedwait' function. */
│ │ │ │ +
291#define HAVE_PTHREAD_COND_TIMEDWAIT 1
│ │ │ │ +
292
│ │ │ │ +
293/* Define to 1 if you have the 'pthread_cond_timedwait_relative_np' function.
│ │ │ │ +
294 */
│ │ │ │ +
295/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */
│ │ │ │ +
296
│ │ │ │ +
297/* Define to 1 if you have the 'putenv' function. */
│ │ │ │ +
298#define HAVE_PUTENV 1
│ │ │ │ +
299
│ │ │ │ +
300/* Define to 1 if you have the 'readdir_r' function. */
│ │ │ │ +
301#define HAVE_READDIR_R 1
│ │ │ │ +
302
│ │ │ │ +
303/* Define to 1 if you have the GNU Readline library. */
│ │ │ │ +
304#define HAVE_READLINE 1
│ │ │ │ +
305
│ │ │ │ +
306/* Define to 1 if you have the 'readpassphrase' function. */
│ │ │ │ +
307/* #undef HAVE_READPASSPHRASE */
│ │ │ │ +
308
│ │ │ │ +
309/* Define to 1 if you have rl_inhibit_completion. */
│ │ │ │ +
310#define HAVE_RL_INHIBIT_COMPLETION 1
│ │ │ │ +
311
│ │ │ │ +
312/* Define to 1 if you have the 'rl_on_new_line' function. */
│ │ │ │ +
313#define HAVE_RL_ON_NEW_LINE 1
│ │ │ │ +
314
│ │ │ │ +
315/* Define to 1 if you have the 'rl_reset_line_state' function. */
│ │ │ │ +
316#define HAVE_RL_RESET_LINE_STATE 1
│ │ │ │ +
317
│ │ │ │ +
318/* Define to 1 if you have the <roken.h> header file. */
│ │ │ │ +
319/* #undef HAVE_ROKEN_H */
│ │ │ │ +
320
│ │ │ │ +
321/* Define to 1 if you have the 'RSA_get0_key' function. */
│ │ │ │ +
322/* #undef HAVE_RSA_GET0_KEY */
│ │ │ │ +
323
│ │ │ │ +
324/* Define to 1 if you have the 'setenv' function. */
│ │ │ │ +
325#define HAVE_SETENV 1
│ │ │ │ +
326
│ │ │ │ +
327/* Define to 1 if you have the 'setitimer' function. */
│ │ │ │ +
328#define HAVE_SETITIMER 1
│ │ │ │ +
329
│ │ │ │ +
330/* Define to 1 if you have the 'setrlimit' function. */
│ │ │ │ +
331#define HAVE_SETRLIMIT 1
│ │ │ │ +
332
│ │ │ │ +
333/* Define to 1 if you have the <signal.h> header file. */
│ │ │ │ +
334#define HAVE_SIGNAL_H 1
│ │ │ │ +
335
│ │ │ │ +
336/* Define to 1 if you have the 'socketpair' function. */
│ │ │ │ +
337#define HAVE_SOCKETPAIR 1
│ │ │ │ +
338
│ │ │ │ +
339/* Define to 1 if you have the SQLGetPrivateProfileString function. */
│ │ │ │ +
340#define HAVE_SQLGETPRIVATEPROFILESTRING 1
│ │ │ │ +
341
│ │ │ │ +
342/* Define if sqltypes.h define SQLLEN */
│ │ │ │ +
343#define HAVE_SQLLEN 1
│ │ │ │ +
344
│ │ │ │ +
345/* Define to 1 if the system has the type 'SQLROWOFFSET'. */
│ │ │ │ +
346#define HAVE_SQLROWOFFSET 1
│ │ │ │ +
347
│ │ │ │ +
348/* Define to 1 if the system has the type 'SQLROWSETSIZE'. */
│ │ │ │ +
349#define HAVE_SQLROWSETSIZE 1
│ │ │ │ +
350
│ │ │ │ +
351/* Define to 1 if the system has the type 'SQLSETPOSIROW'. */
│ │ │ │ +
352#define HAVE_SQLSETPOSIROW 1
│ │ │ │ +
353
│ │ │ │ +
354/* Define to 1 if you have the <sql.h> header file. */
│ │ │ │ +
355#define HAVE_SQL_H 1
│ │ │ │ +
356
│ │ │ │ +
357/* Defined if not --disable-sspi and SSPI detected */
│ │ │ │ +
358/* #undef HAVE_SSPI */
│ │ │ │ +
359
│ │ │ │ +
360/* Define to 1 if you have the <stdbool.h> header file. */
│ │ │ │ +
361#define HAVE_STDBOOL_H 1
│ │ │ │ +
362
│ │ │ │ +
363/* Define to 1 if you have the <stddef.h> header file. */
│ │ │ │ +
364#define HAVE_STDDEF_H 1
│ │ │ │ +
365
│ │ │ │ +
366/* Define to 1 if you have the <stdint.h> header file. */
│ │ │ │ +
367#define HAVE_STDINT_H 1
│ │ │ │ +
368
│ │ │ │ +
369/* Define to 1 if you have the <stdio.h> header file. */
│ │ │ │ +
370#define HAVE_STDIO_H 1
│ │ │ │ +
371
│ │ │ │ +
372/* Define to 1 if you have the <stdlib.h> header file. */
│ │ │ │ +
373#define HAVE_STDLIB_H 1
│ │ │ │ +
374
│ │ │ │ +
375/* Define to 1 if you have the <strings.h> header file. */
│ │ │ │ +
376#define HAVE_STRINGS_H 1
│ │ │ │ +
377
│ │ │ │ +
378/* Define to 1 if you have the <string.h> header file. */
│ │ │ │ +
379#define HAVE_STRING_H 1
│ │ │ │ +
380
│ │ │ │ +
381/* Define to 1 if you have the 'strlcat' function. */
│ │ │ │ +
382#define HAVE_STRLCAT 1
│ │ │ │ +
383
│ │ │ │ +
384/* Define to 1 if you have the 'strlcpy' function. */
│ │ │ │ +
385#define HAVE_STRLCPY 1
│ │ │ │ +
386
│ │ │ │ +
387/* Define to 1 if you have the 'strsep' function. */
│ │ │ │ +
388#define HAVE_STRSEP 1
│ │ │ │ +
389
│ │ │ │ +
390/* Define to 1 if you have the 'strtok_r' function. */
│ │ │ │ +
391#define HAVE_STRTOK_R 1
│ │ │ │ +
392
│ │ │ │ +
393/* Define to 1 if you have the 'strtok_s' function. */
│ │ │ │ +
394/* #undef HAVE_STRTOK_S */
│ │ │ │ +
395
│ │ │ │ +
396/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */
│ │ │ │ +
397#define HAVE_STRUCT_TM_TM_ZONE 1
│ │ │ │ +
398
│ │ │ │ +
399/* Define to 1 if '__tm_zone' is a member of 'struct tm'. */
│ │ │ │ +
400/* #undef HAVE_STRUCT_TM___TM_ZONE */
│ │ │ │ +
401
│ │ │ │ +
402/* Define to 1 if you have the 'system' function */
│ │ │ │ +
403#define HAVE_SYSTEM 1
│ │ │ │ +
404
│ │ │ │ +
405/* Define to 1 if you have the <sys/eventfd.h> header file. */
│ │ │ │ +
406#define HAVE_SYS_EVENTFD_H 1
│ │ │ │ +
407
│ │ │ │ +
408/* Define to 1 if you have the <sys/ioctl.h> header file. */
│ │ │ │ +
409#define HAVE_SYS_IOCTL_H 1
│ │ │ │ +
410
│ │ │ │ +
411/* Define to 1 if you have the <sys/param.h> header file. */
│ │ │ │ +
412#define HAVE_SYS_PARAM_H 1
│ │ │ │ +
413
│ │ │ │ +
414/* Define to 1 if you have the <sys/resource.h> header file. */
│ │ │ │ +
415#define HAVE_SYS_RESOURCE_H 1
│ │ │ │ +
416
│ │ │ │ +
417/* Define to 1 if you have the <sys/select.h> header file. */
│ │ │ │ +
418#define HAVE_SYS_SELECT_H 1
│ │ │ │ +
419
│ │ │ │ +
420/* Define to 1 if you have the <sys/socket.h> header file. */
│ │ │ │ +
421#define HAVE_SYS_SOCKET_H 1
│ │ │ │ +
422
│ │ │ │ +
423/* Define to 1 if you have the <sys/stat.h> header file. */
│ │ │ │ +
424#define HAVE_SYS_STAT_H 1
│ │ │ │ +
425
│ │ │ │ +
426/* Define to 1 if you have the <sys/time.h> header file. */
│ │ │ │ +
427#define HAVE_SYS_TIME_H 1
│ │ │ │ +
428
│ │ │ │ +
429/* Define to 1 if you have the <sys/types.h> header file. */
│ │ │ │ +
430#define HAVE_SYS_TYPES_H 1
│ │ │ │ +
431
│ │ │ │ +
432/* Define to 1 if you have the <sys/wait.h> header file. */
│ │ │ │ +
433#define HAVE_SYS_WAIT_H 1
│ │ │ │ +
434
│ │ │ │ +
435/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use
│ │ │ │ +
436 'HAVE_STRUCT_TM_TM_ZONE' instead. */
│ │ │ │ +
437#define HAVE_TM_ZONE 1
│ │ │ │ +
438
│ │ │ │ +
439/* Define to 1 if you don't have 'tm_zone' but do have the external array
│ │ │ │ +
440 'tzname'. */
│ │ │ │ +
441/* #undef HAVE_TZNAME */
│ │ │ │ +
442
│ │ │ │ +
443/* Define to 1 if you have the <unistd.h> header file. */
│ │ │ │ +
444#define HAVE_UNISTD_H 1
│ │ │ │ +
445
│ │ │ │ +
446/* Define to 1 if you have the 'usleep' function. */
│ │ │ │ +
447#define HAVE_USLEEP 1
│ │ │ │ +
448
│ │ │ │ +
449/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
│ │ │ │ +
450/* #undef HAVE_VALGRIND_MEMCHECK_H */
│ │ │ │ +
451
│ │ │ │ +
452/* Define to 1 if you have the 'vasprintf' function. */
│ │ │ │ +
453#define HAVE_VASPRINTF 1
│ │ │ │ +
454
│ │ │ │ +
455/* Define to 1 if you have the 'vsnprintf' function. */
│ │ │ │ +
456#define HAVE_VSNPRINTF 1
│ │ │ │ +
457
│ │ │ │ +
458/* Define to 1 if you have the <wchar.h> header file. */
│ │ │ │ +
459#define HAVE_WCHAR_H 1
│ │ │ │ +
460
│ │ │ │ +
461/* Define to 1 if you have the <windows.h> header file. */
│ │ │ │ +
462/* #undef HAVE_WINDOWS_H */
│ │ │ │ +
463
│ │ │ │ +
464/* Define to 1 if you have the <winsock2.h> header file. */
│ │ │ │ +
465/* #undef HAVE_WINSOCK2_H */
│ │ │ │ +
466
│ │ │ │ +
467/* Define to 1 if you have the '_fseeki64' function. */
│ │ │ │ +
468/* #undef HAVE__FSEEKI64 */
│ │ │ │ +
469
│ │ │ │ +
470/* Define to 1 if you have the '_ftelli64' function. */
│ │ │ │ +
471/* #undef HAVE__FTELLI64 */
│ │ │ │ +
472
│ │ │ │ +
473/* Define to 1 if you have the '_lock_file' function. */
│ │ │ │ +
474/* #undef HAVE__LOCK_FILE */
│ │ │ │ +
475
│ │ │ │ +
476/* Define to 1 if you have the '_unlock_file' function. */
│ │ │ │ +
477/* #undef HAVE__UNLOCK_FILE */
│ │ │ │ +
478
│ │ │ │ +
479/* Define to 1 if you have the '_vscprintf' function. */
│ │ │ │ +
480/* #undef HAVE__VSCPRINTF */
│ │ │ │ +
481
│ │ │ │ +
482/* Define to 1 if you have the '_vsnprintf' function. */
│ │ │ │ +
483/* #undef HAVE__VSNPRINTF */
│ │ │ │ +
484
│ │ │ │ +
485/* Define to 1 if you have the '_xpg_accept' function. */
│ │ │ │ +
486/* #undef HAVE__XPG_ACCEPT */
│ │ │ │ +
487
│ │ │ │ +
488/* Define to 1 if you have the '_xpg_getpeername' function. */
│ │ │ │ +
489/* #undef HAVE__XPG_GETPEERNAME */
│ │ │ │ +
490
│ │ │ │ +
491/* Define to 1 if you have the '_xpg_getsockname' function. */
│ │ │ │ +
492/* #undef HAVE__XPG_GETSOCKNAME */
│ │ │ │ +
493
│ │ │ │ +
494/* Define to 1 if you have the '_xpg_getsockopt' function. */
│ │ │ │ +
495/* #undef HAVE__XPG_GETSOCKOPT */
│ │ │ │ +
496
│ │ │ │ +
497/* Define to 1 if you have the '_xpg_recvfrom' function. */
│ │ │ │ +
498/* #undef HAVE__XPG_RECVFROM */
│ │ │ │ +
499
│ │ │ │ +
500/* Define to 1 if you have the '__accept' function. */
│ │ │ │ +
501/* #undef HAVE___ACCEPT */
│ │ │ │ +
502
│ │ │ │ +
503/* Define to 1 if you have the '__getpeername' function. */
│ │ │ │ +
504/* #undef HAVE___GETPEERNAME */
│ │ │ │ +
505
│ │ │ │ +
506/* Define to 1 if you have the '__getsockname' function. */
│ │ │ │ +
507/* #undef HAVE___GETSOCKNAME */
│ │ │ │ +
508
│ │ │ │ +
509/* Define to 1 if you have the '__getsockopt' function. */
│ │ │ │ +
510/* #undef HAVE___GETSOCKOPT */
│ │ │ │ +
511
│ │ │ │ +
512/* Define to 1 if you have the '__recvfrom' function. */
│ │ │ │ +
513/* #undef HAVE___RECVFROM */
│ │ │ │ +
514
│ │ │ │ +
515/* Define as const if the declaration of iconv() needs const. */
│ │ │ │ +
516#define ICONV_CONST
│ │ │ │ +
517
│ │ │ │ +
518/* Define to value of INADDR_NONE if not provided by your system header files.
│ │ │ │ +
519 */
│ │ │ │ +
520/* #undef INADDR_NONE */
│ │ │ │ +
521
│ │ │ │ +
522/* Define to the sub-directory where libtool stores uninstalled libraries. */
│ │ │ │ +
523#define LT_OBJDIR ".libs/"
│ │ │ │ +
524
│ │ │ │ +
525/* Define to 1 if the BSD-style netdb interface is reentrant. */
│ │ │ │ +
526/* #undef NETDB_REENTRANT */
│ │ │ │ +
527
│ │ │ │ +
528/* Define to 1 if memset(0) sets pointers to NULL. */
│ │ │ │ +
529#define NULL_REP_IS_ZERO_BYTES 1
│ │ │ │ +
530
│ │ │ │ +
531/* Name of package */
│ │ │ │ +
532#define PACKAGE "freetds"
│ │ │ │ +
533
│ │ │ │ +
534/* Define to the address where bug reports for this package should be sent. */
│ │ │ │ +
535#define PACKAGE_BUGREPORT ""
│ │ │ │ +
536
│ │ │ │ +
537/* Define to the full name of this package. */
│ │ │ │ +
538#define PACKAGE_NAME "FreeTDS"
│ │ │ │ +
539
│ │ │ │ +
540/* Define to the full name and version of this package. */
│ │ │ │ +
541#define PACKAGE_STRING "FreeTDS 1.3.17"
│ │ │ │ +
542
│ │ │ │ +
543/* Define to the one symbol short name of this package. */
│ │ │ │ +
544#define PACKAGE_TARNAME "freetds"
│ │ │ │ +
545
│ │ │ │ +
546/* Define to the home page for this package. */
│ │ │ │ +
547#define PACKAGE_URL ""
│ │ │ │ +
548
│ │ │ │ +
549/* Define to the version of this package. */
│ │ │ │ +
550#define PACKAGE_VERSION "1.3.17"
│ │ │ │ +
551
│ │ │ │ +
552/* Define to necessary symbol if this constant uses a non-standard name on
│ │ │ │ +
553 your system. */
│ │ │ │ +
554/* #undef PTHREAD_CREATE_JOINABLE */
│ │ │ │ +
555
│ │ │ │ +
556/* The size of 'char', as computed by sizeof. */
│ │ │ │ +
557#define SIZEOF_CHAR 1
│ │ │ │ +
558
│ │ │ │ +
559/* The size of 'double', as computed by sizeof. */
│ │ │ │ +
560#define SIZEOF_DOUBLE 8
│ │ │ │ +
561
│ │ │ │ +
562/* The size of 'float', as computed by sizeof. */
│ │ │ │ +
563#define SIZEOF_FLOAT 4
│ │ │ │ +
564
│ │ │ │ +
565/* The size of 'int', as computed by sizeof. */
│ │ │ │ +
566#define SIZEOF_INT 4
│ │ │ │ +
567
│ │ │ │ +
568/* The size of 'long', as computed by sizeof. */
│ │ │ │ +
569#define SIZEOF_LONG 4
│ │ │ │ +
570
│ │ │ │ +
571/* The size of 'long double', as computed by sizeof. */
│ │ │ │ +
572#define SIZEOF_LONG_DOUBLE 12
│ │ │ │ +
573
│ │ │ │ +
574/* The size of 'long long', as computed by sizeof. */
│ │ │ │ +
575#define SIZEOF_LONG_LONG 8
│ │ │ │ +
576
│ │ │ │ +
577/* The size of 'short', as computed by sizeof. */
│ │ │ │ +
578#define SIZEOF_SHORT 2
│ │ │ │ +
579
│ │ │ │ +
580/* The size of 'SQLWCHAR', as computed by sizeof. */
│ │ │ │ +
581#define SIZEOF_SQLWCHAR 2
│ │ │ │ +
582
│ │ │ │ +
583/* The size of 'void *', as computed by sizeof. */
│ │ │ │ +
584#define SIZEOF_VOID_P 4
│ │ │ │ +
585
│ │ │ │ +
586/* The size of 'wchar_t', as computed by sizeof. */
│ │ │ │ +
587#define SIZEOF_WCHAR_T 4
│ │ │ │ +
588
│ │ │ │ +
589/* The size of '__int64', as computed by sizeof. */
│ │ │ │ +
590#define SIZEOF___INT64 0
│ │ │ │ +
591
│ │ │ │ +
592/* If using the C implementation of alloca, define if you know the
│ │ │ │ +
593 direction of stack growth for your system; otherwise it will be
│ │ │ │ +
594 automatically deduced at runtime.
│ │ │ │ +
595 STACK_DIRECTION > 0 => grows toward higher addresses
│ │ │ │ +
596 STACK_DIRECTION < 0 => grows toward lower addresses
│ │ │ │ +
597 STACK_DIRECTION = 0 => direction of growth unknown */
│ │ │ │ +
598/* #undef STACK_DIRECTION */
│ │ │ │ +
599
│ │ │ │ +
600/* Define to 1 if all of the C89 standard headers exist (not just the ones
│ │ │ │ +
601 required in a freestanding environment). This macro is provided for
│ │ │ │ +
602 backward compatibility; new code need not use it. */
│ │ │ │ +
603#define STDC_HEADERS 1
│ │ │ │ +
604
│ │ │ │ +
605/* Define to use TDS 5.0 by default */
│ │ │ │ +
606/* #undef TDS50 */
│ │ │ │ +
607
│ │ │ │ +
608/* Define to use TDS 7.1 by default */
│ │ │ │ +
609/* #undef TDS71 */
│ │ │ │ +
610
│ │ │ │ +
611/* Define to use TDS 7.2 by default */
│ │ │ │ +
612/* #undef TDS72 */
│ │ │ │ +
613
│ │ │ │ +
614/* Define to use TDS 7.3 by default */
│ │ │ │ +
615/* #undef TDS73 */
│ │ │ │ +
616
│ │ │ │ +
617/* Define to use TDS 7.4 by default */
│ │ │ │ +
618/* #undef TDS74 */
│ │ │ │ +
619
│ │ │ │ +
620/* Define to 1 if your compiler supports __attribute__((destructor)). */
│ │ │ │ +
621#define TDS_ATTRIBUTE_DESTRUCTOR 1
│ │ │ │ +
622
│ │ │ │ +
623/* define to constant to use for clock_gettime */
│ │ │ │ +
624#define TDS_GETTIMEMILLI_CONST CLOCK_MONOTONIC
│ │ │ │ +
625
│ │ │ │ +
626/* Define if you have pthread with mutex support */
│ │ │ │ +
627#define TDS_HAVE_PTHREAD_MUTEX 1
│ │ │ │ +
628
│ │ │ │ +
629/* Define if stdio support locking */
│ │ │ │ +
630#define TDS_HAVE_STDIO_LOCKED 1
│ │ │ │ +
631
│ │ │ │ +
632/* define to prefix format string used for 64bit integers */
│ │ │ │ +
633#define TDS_I64_PREFIX "ll"
│ │ │ │ +
634
│ │ │ │ +
635/* Define if you don't care about thread safety */
│ │ │ │ +
636/* #undef TDS_NO_THREADSAFE */
│ │ │ │ +
637
│ │ │ │ +
638/* Define to 1 if last argument of SQLColAttribute it's SQLLEN * */
│ │ │ │ +
639#define TDS_SQLCOLATTRIBUTE_SQLLEN 1
│ │ │ │ +
640
│ │ │ │ +
641/* Define to 1 if SQLParamOptions accept SQLULEN as arguments */
│ │ │ │ +
642#define TDS_SQLPARAMOPTIONS_SQLLEN 1
│ │ │ │ +
643
│ │ │ │ +
644/* Defined if --enable-sybase-compat used */
│ │ │ │ +
645#define TDS_SYBASE_COMPAT 1
│ │ │ │ +
646
│ │ │ │ +
647/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. This
│ │ │ │ +
648 macro is obsolete. */
│ │ │ │ +
649#define TIME_WITH_SYS_TIME 1
│ │ │ │ +
650
│ │ │ │ +
651/* Define to 1 if your <sys/time.h> declares 'struct tm'. */
│ │ │ │ +
652/* #undef TM_IN_SYS_TIME */
│ │ │ │ +
653
│ │ │ │ +
654/* Enable extensions on AIX, Interix, z/OS. */
│ │ │ │ +
655#ifndef _ALL_SOURCE
│ │ │ │ +
656# define _ALL_SOURCE 1
│ │ │ │ +
657#endif
│ │ │ │ +
658/* Enable general extensions on macOS. */
│ │ │ │ +
659#ifndef _DARWIN_C_SOURCE
│ │ │ │ +
660# define _DARWIN_C_SOURCE 1
│ │ │ │ +
661#endif
│ │ │ │ +
662/* Enable general extensions on Solaris. */
│ │ │ │ +
663#ifndef __EXTENSIONS__
│ │ │ │ +
664# define __EXTENSIONS__ 1
│ │ │ │ +
665#endif
│ │ │ │ +
666/* Enable GNU extensions on systems that have them. */
│ │ │ │ +
667#ifndef _GNU_SOURCE
│ │ │ │ +
668# define _GNU_SOURCE 1
│ │ │ │ +
669#endif
│ │ │ │ +
670/* Enable X/Open compliant socket functions that do not require linking
│ │ │ │ +
671 with -lxnet on HP-UX 11.11. */
│ │ │ │ +
672#ifndef _HPUX_ALT_XOPEN_SOCKET_API
│ │ │ │ +
673# define _HPUX_ALT_XOPEN_SOCKET_API 1
│ │ │ │ +
674#endif
│ │ │ │ +
675/* Identify the host operating system as Minix.
│ │ │ │ +
676 This macro does not affect the system headers' behavior.
│ │ │ │ +
677 A future release of Autoconf may stop defining this macro. */
│ │ │ │ +
678#ifndef _MINIX
│ │ │ │ +
679/* # undef _MINIX */
│ │ │ │ +
680#endif
│ │ │ │ +
681/* Enable general extensions on NetBSD.
│ │ │ │ +
682 Enable NetBSD compatibility extensions on Minix. */
│ │ │ │ +
683#ifndef _NETBSD_SOURCE
│ │ │ │ +
684# define _NETBSD_SOURCE 1
│ │ │ │ +
685#endif
│ │ │ │ +
686/* Enable OpenBSD compatibility extensions on NetBSD.
│ │ │ │ +
687 Oddly enough, this does nothing on OpenBSD. */
│ │ │ │ +
688#ifndef _OPENBSD_SOURCE
│ │ │ │ +
689# define _OPENBSD_SOURCE 1
│ │ │ │ +
690#endif
│ │ │ │ +
691/* Define to 1 if needed for POSIX-compatible behavior. */
│ │ │ │ +
692#ifndef _POSIX_SOURCE
│ │ │ │ +
693/* # undef _POSIX_SOURCE */
│ │ │ │ +
694#endif
│ │ │ │ +
695/* Define to 2 if needed for POSIX-compatible behavior. */
│ │ │ │ +
696#ifndef _POSIX_1_SOURCE
│ │ │ │ +
697/* # undef _POSIX_1_SOURCE */
│ │ │ │ +
698#endif
│ │ │ │ +
699/* Enable POSIX-compatible threading on Solaris. */
│ │ │ │ +
700#ifndef _POSIX_PTHREAD_SEMANTICS
│ │ │ │ +
701# define _POSIX_PTHREAD_SEMANTICS 1
│ │ │ │ +
702#endif
│ │ │ │ +
703/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
│ │ │ │ +
704#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
│ │ │ │ +
705# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1
│ │ │ │ +
706#endif
│ │ │ │ +
707/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
│ │ │ │ +
708#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
│ │ │ │ +
709# define __STDC_WANT_IEC_60559_BFP_EXT__ 1
│ │ │ │ +
710#endif
│ │ │ │ +
711/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
│ │ │ │ +
712#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
│ │ │ │ +
713# define __STDC_WANT_IEC_60559_DFP_EXT__ 1
│ │ │ │ +
714#endif
│ │ │ │ +
715/* Enable extensions specified by C23 Annex F. */
│ │ │ │ +
716#ifndef __STDC_WANT_IEC_60559_EXT__
│ │ │ │ +
717# define __STDC_WANT_IEC_60559_EXT__ 1
│ │ │ │ +
718#endif
│ │ │ │ +
719/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
│ │ │ │ +
720#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
│ │ │ │ +
721# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1
│ │ │ │ +
722#endif
│ │ │ │ +
723/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */
│ │ │ │ +
724#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
│ │ │ │ +
725# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1
│ │ │ │ +
726#endif
│ │ │ │ +
727/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
│ │ │ │ +
728#ifndef __STDC_WANT_LIB_EXT2__
│ │ │ │ +
729# define __STDC_WANT_LIB_EXT2__ 1
│ │ │ │ +
730#endif
│ │ │ │ +
731/* Enable extensions specified by ISO/IEC 24747:2009. */
│ │ │ │ +
732#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
│ │ │ │ +
733# define __STDC_WANT_MATH_SPEC_FUNCS__ 1
│ │ │ │ +
734#endif
│ │ │ │ +
735/* Enable extensions on HP NonStop. */
│ │ │ │ +
736#ifndef _TANDEM_SOURCE
│ │ │ │ +
737# define _TANDEM_SOURCE 1
│ │ │ │ +
738#endif
│ │ │ │ +
739/* Enable X/Open extensions. Define to 500 only if necessary
│ │ │ │ +
740 to make mbstate_t available. */
│ │ │ │ +
741#ifndef _XOPEN_SOURCE
│ │ │ │ +
742/* # undef _XOPEN_SOURCE */
│ │ │ │ +
743#endif
│ │ │ │ +
744
│ │ │ │ +
745
│ │ │ │ +
746/* Version number of package */
│ │ │ │ +
747#define VERSION "1.3.17"
│ │ │ │ +
748
│ │ │ │ +
749/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
│ │ │ │ +
750 significant byte first (like Motorola and SPARC, unlike Intel). */
│ │ │ │ +
751#if defined AC_APPLE_UNIVERSAL_BUILD
│ │ │ │ +
752# if defined __BIG_ENDIAN__
│ │ │ │ +
753# define WORDS_BIGENDIAN 1
│ │ │ │ +
754# endif
│ │ │ │ +
755#else
│ │ │ │ +
756# ifndef WORDS_BIGENDIAN
│ │ │ │ +
757/* # undef WORDS_BIGENDIAN */
│ │ │ │ +
758# endif
│ │ │ │ +
759#endif
│ │ │ │ +
760
│ │ │ │ +
761/* Number of bits in a file offset, on hosts where this is settable. */
│ │ │ │ +
762#define _FILE_OFFSET_BITS 64
│ │ │ │ +
763
│ │ │ │ +
764/* Define to 1 if necessary to make fseeko visible. */
│ │ │ │ +
765/* #undef _LARGEFILE_SOURCE */
│ │ │ │ +
766
│ │ │ │ +
767/* Define to 1 on platforms where this makes off_t a 64-bit type. */
│ │ │ │ +
768/* #undef _LARGE_FILES */
│ │ │ │ +
769
│ │ │ │ +
770/* Number of bits in time_t, on hosts where this is settable. */
│ │ │ │ +
771/* #undef _TIME_BITS */
│ │ │ │ +
772
│ │ │ │ +
773/* Define to 1 on platforms where this makes time_t a 64-bit type. */
│ │ │ │ +
774/* #undef __MINGW_USE_VC2005_COMPAT */
│ │ │ │ +
775
│ │ │ │ +
776/* Define to empty if 'const' does not conform to ANSI C. */
│ │ │ │ +
777/* #undef const */
│ │ │ │ +
778
│ │ │ │ +
779/* Define to '__inline__' or '__inline' if that's what the C compiler
│ │ │ │ +
780 calls it, or to nothing if 'inline' is not supported under any name. */
│ │ │ │ +
781#ifndef __cplusplus
│ │ │ │ +
782/* #undef inline */
│ │ │ │ +
783#endif
│ │ │ │ +
784
│ │ │ │ +
785/* Define as 'unsigned int' if <stddef.h> doesn't define. */
│ │ │ │ +
786/* #undef size_t */
│ │ │ │ +
787
│ │ │ │ +
788/* type to use in place of socklen_t if not defined */
│ │ │ │ +
789/* #undef socklen_t */
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,75 +1,805 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -sqlfront.h │ │ │ │ │ -1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ -3 * Copyright (C) 2011 Frediano Ziglio │ │ │ │ │ -4 * │ │ │ │ │ -5 * This library is free software; you can redistribute it and/or │ │ │ │ │ -6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -7 * License as published by the Free Software Foundation; either │ │ │ │ │ -8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -9 * │ │ │ │ │ -10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -13 * Library General Public License for more details. │ │ │ │ │ -14 * │ │ │ │ │ -15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -16 * License along with this library; if not, write to the │ │ │ │ │ -17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -18 * Boston, MA 02111-1307, USA. │ │ │ │ │ -19 */ │ │ │ │ │ +config.h │ │ │ │ │ +1/* include/config.h. Generated from config.h.in by configure. */ │ │ │ │ │ +2/* include/config.h.in. Generated from configure.ac by autoheader. */ │ │ │ │ │ +3 │ │ │ │ │ +4#define _freetds_config_h_ │ │ │ │ │ +5 │ │ │ │ │ +6/* Define if building universal (internal helper macro) */ │ │ │ │ │ +7/* #undef AC_APPLE_UNIVERSAL_BUILD */ │ │ │ │ │ +8 │ │ │ │ │ +9/* Define to 1 if you need BSD_COMP defined to get FIONBIO defined. */ │ │ │ │ │ +10/* #undef BSD_COMP */ │ │ │ │ │ +11 │ │ │ │ │ +12/* Define to 1 if using 'alloca.c'. */ │ │ │ │ │ +13/* #undef C_ALLOCA */ │ │ │ │ │ +14 │ │ │ │ │ +15/* Define to enable work in progress code */ │ │ │ │ │ +16/* #undef ENABLE_DEVELOPING */ │ │ │ │ │ +17 │ │ │ │ │ +18/* Define to enable extra checks on code */ │ │ │ │ │ +19/* #undef ENABLE_EXTRA_CHECKS */ │ │ │ │ │ 20 │ │ │ │ │ -21#ifndef SQLFRONT_h │ │ │ │ │ -22#define SQLFRONT_h │ │ │ │ │ +21/* Defined if --enable-krb5 used and library detected */ │ │ │ │ │ +22#define ENABLE_KRB5 1 │ │ │ │ │ 23 │ │ │ │ │ -24#include "./sybfront.h" │ │ │ │ │ -25 │ │ │ │ │ -26static const char rcsid_sqlfront_h[] = "$Id: sqlfront.h,v 1.10 2011-07-13 11: │ │ │ │ │ -06:31 freddy77 Exp $"; │ │ │ │ │ -27static const void *const no_unused_sqlfront_h_warn[] = { rcsid_sqlfront_h, │ │ │ │ │ -no_unused_sqlfront_h_warn }; │ │ │ │ │ -28 │ │ │ │ │ -29typedef _D_B_P_R_O_C_E_S_S * _P_D_B_P_R_O_C_E_S_S; │ │ │ │ │ -30typedef _L_O_G_I_N_R_E_C * _P_L_O_G_I_N_R_E_C; │ │ │ │ │ -31typedef DBCURSOR * PDBCURSOR; │ │ │ │ │ +24/* Define to enable MARS support */ │ │ │ │ │ +25#define ENABLE_ODBC_MARS 1 │ │ │ │ │ +26 │ │ │ │ │ +27/* Define to enable ODBC wide string support */ │ │ │ │ │ +28#define ENABLE_ODBC_WIDE 1 │ │ │ │ │ +29 │ │ │ │ │ +30/* Define to 1 if GNU tls use nettle as backend. */ │ │ │ │ │ +31#define GNUTLS_USE_NETTLE 1 │ │ │ │ │ 32 │ │ │ │ │ -33typedef int * LPINT; │ │ │ │ │ -34typedef char * LPSTR; │ │ │ │ │ -35#if !defined(PHP_MSSQL_H) || !defined(PHP_MSSQL_API) │ │ │ │ │ -36typedef BYTE * LPBYTE; │ │ │ │ │ -37#endif │ │ │ │ │ -38typedef void * LPVOID; │ │ │ │ │ -39typedef const char * LPCSTR; │ │ │ │ │ -40 │ │ │ │ │ -41typedef const LPINT LPCINT; │ │ │ │ │ -42#ifndef _LPCBYTE_DEFINED │ │ │ │ │ -43#define _LPCBYTE_DEFINED │ │ │ │ │ -44typedef const BYTE * LPCBYTE; │ │ │ │ │ -45#endif │ │ │ │ │ -46typedef USHORT * LPUSHORT; │ │ │ │ │ -47typedef const LPUSHORT LPCUSHORT; │ │ │ │ │ -48typedef DBINT * LPDBINT; │ │ │ │ │ -49typedef const LPDBINT LPCDBINT; │ │ │ │ │ -50typedef DBBINARY * LPDBBINARY; │ │ │ │ │ -51typedef const LPDBBINARY LPCDBBINARY; │ │ │ │ │ -52typedef _D_B_D_A_T_E_R_E_C * _L_P_D_B_D_A_T_E_R_E_C; │ │ │ │ │ -53typedef const _L_P_D_B_D_A_T_E_R_E_C _L_P_C_D_B_D_A_T_E_R_E_C; │ │ │ │ │ -54typedef _D_B_D_A_T_E_T_I_M_E * _L_P_D_B_D_A_T_E_T_I_M_E; │ │ │ │ │ -55typedef const _L_P_D_B_D_A_T_E_T_I_M_E _L_P_C_D_B_D_A_T_E_T_I_M_E; │ │ │ │ │ +33/* Define to 1 if you have the 'alarm' function. */ │ │ │ │ │ +34#define HAVE_ALARM 1 │ │ │ │ │ +35 │ │ │ │ │ +36/* Define to 1 if you have 'alloca', as a function or macro. */ │ │ │ │ │ +37#define HAVE_ALLOCA 1 │ │ │ │ │ +38 │ │ │ │ │ +39/* Define to 1 if works. */ │ │ │ │ │ +40#define HAVE_ALLOCA_H 1 │ │ │ │ │ +41 │ │ │ │ │ +42/* Define to 1 if you have the header file. */ │ │ │ │ │ +43#define HAVE_ARPA_INET_H 1 │ │ │ │ │ +44 │ │ │ │ │ +45/* Define to 1 if you have the 'ASN1_STRING_get0_data' function. */ │ │ │ │ │ +46/* #undef HAVE_ASN1_STRING_GET0_DATA */ │ │ │ │ │ +47 │ │ │ │ │ +48/* Define to 1 if you have the 'asprintf' function. */ │ │ │ │ │ +49#define HAVE_ASPRINTF 1 │ │ │ │ │ +50 │ │ │ │ │ +51/* Define to 1 if you have the 'basename' function. */ │ │ │ │ │ +52#define HAVE_BASENAME 1 │ │ │ │ │ +53 │ │ │ │ │ +54/* Define to 1 if you have the 'BIO_get_data' function. */ │ │ │ │ │ +55/* #undef HAVE_BIO_GET_DATA */ │ │ │ │ │ 56 │ │ │ │ │ -57#endif │ │ │ │ │ -_L_O_G_I_N_R_E_C │ │ │ │ │ -DDeeffiinniittiioonn bsqlodbc.c:100 │ │ │ │ │ -_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:123 │ │ │ │ │ -_D_B_D_A_T_E_T_I_M_E │ │ │ │ │ -DDeeffiinniittiioonn sybdb.h:295 │ │ │ │ │ -_t_d_s___s_y_b_a_s_e___d_b_d_a_t_e_r_e_c │ │ │ │ │ -DDeeffiinniittiioonn sybdb.h:474 │ │ │ │ │ +57/* Define if you have the clock_gettime function. */ │ │ │ │ │ +58#define HAVE_CLOCK_GETTIME 1 │ │ │ │ │ +59 │ │ │ │ │ +60/* Define to 1 if you have the header file. */ │ │ │ │ │ +61#define HAVE_COM_ERR_H 1 │ │ │ │ │ +62 │ │ │ │ │ +63/* Define to 1 if you have the 'daemon' function. */ │ │ │ │ │ +64#define HAVE_DAEMON 1 │ │ │ │ │ +65 │ │ │ │ │ +66/* Define to 1 if you have the declaration of 'tzname', and to 0 if you │ │ │ │ │ +don't. │ │ │ │ │ +67 */ │ │ │ │ │ +68/* #undef HAVE_DECL_TZNAME */ │ │ │ │ │ +69 │ │ │ │ │ +70/* Define to 1 if you have the header file. */ │ │ │ │ │ +71#define HAVE_DIRENT_H 1 │ │ │ │ │ +72 │ │ │ │ │ +73/* Define to 1 if you have the header file. */ │ │ │ │ │ +74#define HAVE_DLFCN_H 1 │ │ │ │ │ +75 │ │ │ │ │ +76/* Define to 1 if you have the header file. */ │ │ │ │ │ +77#define HAVE_ERRNO_H 1 │ │ │ │ │ +78 │ │ │ │ │ +79/* Define to 1 if you have the 'error_message' function. */ │ │ │ │ │ +80/* #undef HAVE_ERROR_MESSAGE */ │ │ │ │ │ +81 │ │ │ │ │ +82/* Define to 1 if you have the 'eventfd' function. */ │ │ │ │ │ +83#define HAVE_EVENTFD 1 │ │ │ │ │ +84 │ │ │ │ │ +85/* Define to 1 if you have the header file. */ │ │ │ │ │ +86#define HAVE_FCNTL_H 1 │ │ │ │ │ +87 │ │ │ │ │ +88/* Define to 1 if you have the 'fork' function. */ │ │ │ │ │ +89#define HAVE_FORK 1 │ │ │ │ │ +90 │ │ │ │ │ +91/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */ │ │ │ │ │ +92#define HAVE_FSEEKO 1 │ │ │ │ │ +93 │ │ │ │ │ +94/* Define to 1 if you have the 'fstat' function. */ │ │ │ │ │ +95#define HAVE_FSTAT 1 │ │ │ │ │ +96 │ │ │ │ │ +97/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ +98 gethostbyaddr_r(). */ │ │ │ │ │ +99/* #undef HAVE_FUNC_GETHOSTBYADDR_R_5 */ │ │ │ │ │ +100 │ │ │ │ │ +101/* Define to 1 if your system provides the 7-parameter version of │ │ │ │ │ +102 gethostbyaddr_r(). */ │ │ │ │ │ +103/* #undef HAVE_FUNC_GETHOSTBYADDR_R_7 */ │ │ │ │ │ +104 │ │ │ │ │ +105/* Define to 1 if your system provides the 8-parameter version of │ │ │ │ │ +106 gethostbyaddr_r(). */ │ │ │ │ │ +107#define HAVE_FUNC_GETHOSTBYADDR_R_8 1 │ │ │ │ │ +108 │ │ │ │ │ +109/* Define to 1 if your system provides the 3-parameter version of │ │ │ │ │ +110 gethostbyname_r(). */ │ │ │ │ │ +111/* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */ │ │ │ │ │ +112 │ │ │ │ │ +113/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ +114 gethostbyname_r(). */ │ │ │ │ │ +115/* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */ │ │ │ │ │ +116 │ │ │ │ │ +117/* Define to 1 if your system provides the 6-parameter version of │ │ │ │ │ +118 gethostbyname_r(). */ │ │ │ │ │ +119#define HAVE_FUNC_GETHOSTBYNAME_R_6 1 │ │ │ │ │ +120 │ │ │ │ │ +121/* Define to 1 if your system provides the 4-parameter version of │ │ │ │ │ +122 getpwuid_r(). */ │ │ │ │ │ +123/* #undef HAVE_FUNC_GETPWUID_R_4 */ │ │ │ │ │ +124 │ │ │ │ │ +125/* Define to 1 if your system getpwuid_r() have 4 parameters and return │ │ │ │ │ +struct │ │ │ │ │ +126 passwd*. */ │ │ │ │ │ +127/* #undef HAVE_FUNC_GETPWUID_R_4_PW */ │ │ │ │ │ +128 │ │ │ │ │ +129/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ +130 getpwuid_r(). */ │ │ │ │ │ +131#define HAVE_FUNC_GETPWUID_R_5 1 │ │ │ │ │ +132 │ │ │ │ │ +133/* Define to 1 if your system provides the 4-parameter version of │ │ │ │ │ +134 getservbyname_r(). */ │ │ │ │ │ +135/* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */ │ │ │ │ │ +136 │ │ │ │ │ +137/* Define to 1 if your system provides the 5-parameter version of │ │ │ │ │ +138 getservbyname_r(). */ │ │ │ │ │ +139/* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */ │ │ │ │ │ +140 │ │ │ │ │ +141/* Define to 1 if your system provides the 6-parameter version of │ │ │ │ │ +142 getservbyname_r(). */ │ │ │ │ │ +143#define HAVE_FUNC_GETSERVBYNAME_R_6 1 │ │ │ │ │ +144 │ │ │ │ │ +145/* Define to 1 if your localtime_r return a int. */ │ │ │ │ │ +146/* #undef HAVE_FUNC_LOCALTIME_R_INT */ │ │ │ │ │ +147 │ │ │ │ │ +148/* Define to 1 if your localtime_r return a struct tm*. */ │ │ │ │ │ +149#define HAVE_FUNC_LOCALTIME_R_TM 1 │ │ │ │ │ +150 │ │ │ │ │ +151/* Define if you have getaddrinfo function */ │ │ │ │ │ +152#define HAVE_GETADDRINFO 1 │ │ │ │ │ +153 │ │ │ │ │ +154/* Define to 1 if you have the 'gethostname' function. */ │ │ │ │ │ +155#define HAVE_GETHOSTNAME 1 │ │ │ │ │ +156 │ │ │ │ │ +157/* Define to 1 if you have the 'gethrtime' function. */ │ │ │ │ │ +158/* #undef HAVE_GETHRTIME */ │ │ │ │ │ +159 │ │ │ │ │ +160/* Define to 1 if you have the 'getipnodebyaddr' function. */ │ │ │ │ │ +161/* #undef HAVE_GETIPNODEBYADDR */ │ │ │ │ │ +162 │ │ │ │ │ +163/* Define to 1 if you have the 'getipnodebyname' function. */ │ │ │ │ │ +164/* #undef HAVE_GETIPNODEBYNAME */ │ │ │ │ │ +165 │ │ │ │ │ +166/* Define to 1 if you have the 'getopt' function. */ │ │ │ │ │ +167#define HAVE_GETOPT 1 │ │ │ │ │ +168 │ │ │ │ │ +169/* Define to 1 if you have the header file. */ │ │ │ │ │ +170#define HAVE_GETOPT_H 1 │ │ │ │ │ +171 │ │ │ │ │ +172/* Define if your getopt(3) defines and uses optreset */ │ │ │ │ │ +173/* #undef HAVE_GETOPT_OPTRESET */ │ │ │ │ │ +174 │ │ │ │ │ +175/* Define to 1 if you have the 'getpwuid' function. */ │ │ │ │ │ +176#define HAVE_GETPWUID 1 │ │ │ │ │ +177 │ │ │ │ │ +178/* Define to 1 if you have the 'getpwuid_r' function. */ │ │ │ │ │ +179#define HAVE_GETPWUID_R 1 │ │ │ │ │ +180 │ │ │ │ │ +181/* Define to 1 if you have the 'gettimeofday' function. */ │ │ │ │ │ +182#define HAVE_GETTIMEOFDAY 1 │ │ │ │ │ +183 │ │ │ │ │ +184/* Define to 1 if you have the 'getuid' function. */ │ │ │ │ │ +185#define HAVE_GETUID 1 │ │ │ │ │ +186 │ │ │ │ │ +187/* Define if you have GMP library */ │ │ │ │ │ +188#define HAVE_GMP 1 │ │ │ │ │ +189 │ │ │ │ │ +190/* Define to 1 if you have GnuTLS. */ │ │ │ │ │ +191#define HAVE_GNUTLS 1 │ │ │ │ │ +192 │ │ │ │ │ +193/* Define to 1 if you have the header file. */ │ │ │ │ │ +194#define HAVE_GNUTLS_ABSTRACT_H 1 │ │ │ │ │ +195 │ │ │ │ │ +196/* Define to 1 if you have the 'gnutls_certificate_set_verify_function' │ │ │ │ │ +197 function. */ │ │ │ │ │ +198#define HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION 1 │ │ │ │ │ +199 │ │ │ │ │ +200/* Define to 1 if you have the 'gnutls_record_disable_padding' function. */ │ │ │ │ │ +201#define HAVE_GNUTLS_RECORD_DISABLE_PADDING 1 │ │ │ │ │ +202 │ │ │ │ │ +203/* Define to 1 if you have the 'gnutls_rnd' function. */ │ │ │ │ │ +204#define HAVE_GNUTLS_RND 1 │ │ │ │ │ +205 │ │ │ │ │ +206/* Define if you have the iconv() function and it works. */ │ │ │ │ │ +207#define HAVE_ICONV 1 │ │ │ │ │ +208 │ │ │ │ │ +209/* Define to 1 if you have the 'inet_ntoa_r' function. */ │ │ │ │ │ +210/* #undef HAVE_INET_NTOA_R */ │ │ │ │ │ +211 │ │ │ │ │ +212/* Define to 1 if you have the 'inet_ntop' function. */ │ │ │ │ │ +213#define HAVE_INET_NTOP 1 │ │ │ │ │ +214 │ │ │ │ │ +215/* Define to 1 if you have the header file. */ │ │ │ │ │ +216#define HAVE_INTTYPES_H 1 │ │ │ │ │ +217 │ │ │ │ │ +218/* Define to 1 if you have the header file. */ │ │ │ │ │ +219/* #undef HAVE_IODBCINST_H */ │ │ │ │ │ +220 │ │ │ │ │ +221/* Define to 1 if you have the header file. */ │ │ │ │ │ +222#define HAVE_LANGINFO_H 1 │ │ │ │ │ +223 │ │ │ │ │ +224/* Define to 1 if you have the header file. */ │ │ │ │ │ +225#define HAVE_LIBGEN_H 1 │ │ │ │ │ +226 │ │ │ │ │ +227/* Define to 1 if you have the header file. */ │ │ │ │ │ +228#define HAVE_LIMITS_H 1 │ │ │ │ │ +229 │ │ │ │ │ +230/* Define to 1 if you have the header file. */ │ │ │ │ │ +231/* #undef HAVE_LOCALCHARSET_H */ │ │ │ │ │ +232 │ │ │ │ │ +233/* Define to 1 if you have the 'locale_charset' function. */ │ │ │ │ │ +234/* #undef HAVE_LOCALE_CHARSET */ │ │ │ │ │ +235 │ │ │ │ │ +236/* Define to 1 if you have the header file. */ │ │ │ │ │ +237#define HAVE_LOCALE_H 1 │ │ │ │ │ +238 │ │ │ │ │ +239/* Define to 1 if you have the 'localtime_r' function. */ │ │ │ │ │ +240#define HAVE_LOCALTIME_R 1 │ │ │ │ │ +241 │ │ │ │ │ +242/* Define to 1 if you have the header file. */ │ │ │ │ │ +243#define HAVE_MALLOC_H 1 │ │ │ │ │ +244 │ │ │ │ │ +245/* Define to 1 if your system provides the malloc_options variable. */ │ │ │ │ │ +246/* #undef HAVE_MALLOC_OPTIONS */ │ │ │ │ │ +247 │ │ │ │ │ +248/* Define to 1 if you have the header file. */ │ │ │ │ │ +249/* #undef HAVE_MINIX_CONFIG_H */ │ │ │ │ │ +250 │ │ │ │ │ +251/* Define to 1 if you have the 'nanosleep' function. */ │ │ │ │ │ +252#define HAVE_NANOSLEEP 1 │ │ │ │ │ +253 │ │ │ │ │ +254/* Define to 1 if you have the header file. */ │ │ │ │ │ +255#define HAVE_NETDB_H 1 │ │ │ │ │ +256 │ │ │ │ │ +257/* Define to 1 if you have the header file. */ │ │ │ │ │ +258#define HAVE_NETINET_IN_H 1 │ │ │ │ │ +259 │ │ │ │ │ +260/* Define to 1 if you have the header file. */ │ │ │ │ │ +261#define HAVE_NETINET_TCP_H 1 │ │ │ │ │ +262 │ │ │ │ │ +263/* Define to 1 if nettle is present. */ │ │ │ │ │ +264#define HAVE_NETTLE 1 │ │ │ │ │ +265 │ │ │ │ │ +266/* Define to 1 if you have the 'nl_langinfo' function. */ │ │ │ │ │ +267#define HAVE_NL_LANGINFO 1 │ │ │ │ │ +268 │ │ │ │ │ +269/* Define to 1 if you have the header file. */ │ │ │ │ │ +270/* #undef HAVE_ODBCSS_H */ │ │ │ │ │ +271 │ │ │ │ │ +272/* Define if you have the OpenSSL. */ │ │ │ │ │ +273/* #undef HAVE_OPENSSL */ │ │ │ │ │ +274 │ │ │ │ │ +275/* Define to 1 if you have the header file. */ │ │ │ │ │ +276#define HAVE_PATHS_H 1 │ │ │ │ │ +277 │ │ │ │ │ +278/* Define to 1 if you have the 'poll' function. */ │ │ │ │ │ +279#define HAVE_POLL 1 │ │ │ │ │ +280 │ │ │ │ │ +281/* Define to 1 if you have the header file. */ │ │ │ │ │ +282#define HAVE_POLL_H 1 │ │ │ │ │ +283 │ │ │ │ │ +284/* Define if you have POSIX threads libraries and header files. */ │ │ │ │ │ +285#define HAVE_PTHREAD 1 │ │ │ │ │ +286 │ │ │ │ │ +287/* Define to 1 if you have the 'pthread_condattr_setclock' function. */ │ │ │ │ │ +288#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1 │ │ │ │ │ +289 │ │ │ │ │ +290/* Define to 1 if you have the 'pthread_cond_timedwait' function. */ │ │ │ │ │ +291#define HAVE_PTHREAD_COND_TIMEDWAIT 1 │ │ │ │ │ +292 │ │ │ │ │ +293/* Define to 1 if you have the 'pthread_cond_timedwait_relative_np' │ │ │ │ │ +function. │ │ │ │ │ +294 */ │ │ │ │ │ +295/* #undef HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP */ │ │ │ │ │ +296 │ │ │ │ │ +297/* Define to 1 if you have the 'putenv' function. */ │ │ │ │ │ +298#define HAVE_PUTENV 1 │ │ │ │ │ +299 │ │ │ │ │ +300/* Define to 1 if you have the 'readdir_r' function. */ │ │ │ │ │ +301#define HAVE_READDIR_R 1 │ │ │ │ │ +302 │ │ │ │ │ +303/* Define to 1 if you have the GNU Readline library. */ │ │ │ │ │ +304#define HAVE_READLINE 1 │ │ │ │ │ +305 │ │ │ │ │ +306/* Define to 1 if you have the 'readpassphrase' function. */ │ │ │ │ │ +307/* #undef HAVE_READPASSPHRASE */ │ │ │ │ │ +308 │ │ │ │ │ +309/* Define to 1 if you have rl_inhibit_completion. */ │ │ │ │ │ +310#define HAVE_RL_INHIBIT_COMPLETION 1 │ │ │ │ │ +311 │ │ │ │ │ +312/* Define to 1 if you have the 'rl_on_new_line' function. */ │ │ │ │ │ +313#define HAVE_RL_ON_NEW_LINE 1 │ │ │ │ │ +314 │ │ │ │ │ +315/* Define to 1 if you have the 'rl_reset_line_state' function. */ │ │ │ │ │ +316#define HAVE_RL_RESET_LINE_STATE 1 │ │ │ │ │ +317 │ │ │ │ │ +318/* Define to 1 if you have the header file. */ │ │ │ │ │ +319/* #undef HAVE_ROKEN_H */ │ │ │ │ │ +320 │ │ │ │ │ +321/* Define to 1 if you have the 'RSA_get0_key' function. */ │ │ │ │ │ +322/* #undef HAVE_RSA_GET0_KEY */ │ │ │ │ │ +323 │ │ │ │ │ +324/* Define to 1 if you have the 'setenv' function. */ │ │ │ │ │ +325#define HAVE_SETENV 1 │ │ │ │ │ +326 │ │ │ │ │ +327/* Define to 1 if you have the 'setitimer' function. */ │ │ │ │ │ +328#define HAVE_SETITIMER 1 │ │ │ │ │ +329 │ │ │ │ │ +330/* Define to 1 if you have the 'setrlimit' function. */ │ │ │ │ │ +331#define HAVE_SETRLIMIT 1 │ │ │ │ │ +332 │ │ │ │ │ +333/* Define to 1 if you have the header file. */ │ │ │ │ │ +334#define HAVE_SIGNAL_H 1 │ │ │ │ │ +335 │ │ │ │ │ +336/* Define to 1 if you have the 'socketpair' function. */ │ │ │ │ │ +337#define HAVE_SOCKETPAIR 1 │ │ │ │ │ +338 │ │ │ │ │ +339/* Define to 1 if you have the SQLGetPrivateProfileString function. */ │ │ │ │ │ +340#define HAVE_SQLGETPRIVATEPROFILESTRING 1 │ │ │ │ │ +341 │ │ │ │ │ +342/* Define if sqltypes.h define SQLLEN */ │ │ │ │ │ +343#define HAVE_SQLLEN 1 │ │ │ │ │ +344 │ │ │ │ │ +345/* Define to 1 if the system has the type 'SQLROWOFFSET'. */ │ │ │ │ │ +346#define HAVE_SQLROWOFFSET 1 │ │ │ │ │ +347 │ │ │ │ │ +348/* Define to 1 if the system has the type 'SQLROWSETSIZE'. */ │ │ │ │ │ +349#define HAVE_SQLROWSETSIZE 1 │ │ │ │ │ +350 │ │ │ │ │ +351/* Define to 1 if the system has the type 'SQLSETPOSIROW'. */ │ │ │ │ │ +352#define HAVE_SQLSETPOSIROW 1 │ │ │ │ │ +353 │ │ │ │ │ +354/* Define to 1 if you have the header file. */ │ │ │ │ │ +355#define HAVE_SQL_H 1 │ │ │ │ │ +356 │ │ │ │ │ +357/* Defined if not --disable-sspi and SSPI detected */ │ │ │ │ │ +358/* #undef HAVE_SSPI */ │ │ │ │ │ +359 │ │ │ │ │ +360/* Define to 1 if you have the header file. */ │ │ │ │ │ +361#define HAVE_STDBOOL_H 1 │ │ │ │ │ +362 │ │ │ │ │ +363/* Define to 1 if you have the header file. */ │ │ │ │ │ +364#define HAVE_STDDEF_H 1 │ │ │ │ │ +365 │ │ │ │ │ +366/* Define to 1 if you have the header file. */ │ │ │ │ │ +367#define HAVE_STDINT_H 1 │ │ │ │ │ +368 │ │ │ │ │ +369/* Define to 1 if you have the header file. */ │ │ │ │ │ +370#define HAVE_STDIO_H 1 │ │ │ │ │ +371 │ │ │ │ │ +372/* Define to 1 if you have the header file. */ │ │ │ │ │ +373#define HAVE_STDLIB_H 1 │ │ │ │ │ +374 │ │ │ │ │ +375/* Define to 1 if you have the header file. */ │ │ │ │ │ +376#define HAVE_STRINGS_H 1 │ │ │ │ │ +377 │ │ │ │ │ +378/* Define to 1 if you have the header file. */ │ │ │ │ │ +379#define HAVE_STRING_H 1 │ │ │ │ │ +380 │ │ │ │ │ +381/* Define to 1 if you have the 'strlcat' function. */ │ │ │ │ │ +382#define HAVE_STRLCAT 1 │ │ │ │ │ +383 │ │ │ │ │ +384/* Define to 1 if you have the 'strlcpy' function. */ │ │ │ │ │ +385#define HAVE_STRLCPY 1 │ │ │ │ │ +386 │ │ │ │ │ +387/* Define to 1 if you have the 'strsep' function. */ │ │ │ │ │ +388#define HAVE_STRSEP 1 │ │ │ │ │ +389 │ │ │ │ │ +390/* Define to 1 if you have the 'strtok_r' function. */ │ │ │ │ │ +391#define HAVE_STRTOK_R 1 │ │ │ │ │ +392 │ │ │ │ │ +393/* Define to 1 if you have the 'strtok_s' function. */ │ │ │ │ │ +394/* #undef HAVE_STRTOK_S */ │ │ │ │ │ +395 │ │ │ │ │ +396/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ │ │ │ │ │ +397#define HAVE_STRUCT_TM_TM_ZONE 1 │ │ │ │ │ +398 │ │ │ │ │ +399/* Define to 1 if '__tm_zone' is a member of 'struct tm'. */ │ │ │ │ │ +400/* #undef HAVE_STRUCT_TM___TM_ZONE */ │ │ │ │ │ +401 │ │ │ │ │ +402/* Define to 1 if you have the 'system' function */ │ │ │ │ │ +403#define HAVE_SYSTEM 1 │ │ │ │ │ +404 │ │ │ │ │ +405/* Define to 1 if you have the header file. */ │ │ │ │ │ +406#define HAVE_SYS_EVENTFD_H 1 │ │ │ │ │ +407 │ │ │ │ │ +408/* Define to 1 if you have the header file. */ │ │ │ │ │ +409#define HAVE_SYS_IOCTL_H 1 │ │ │ │ │ +410 │ │ │ │ │ +411/* Define to 1 if you have the header file. */ │ │ │ │ │ +412#define HAVE_SYS_PARAM_H 1 │ │ │ │ │ +413 │ │ │ │ │ +414/* Define to 1 if you have the header file. */ │ │ │ │ │ +415#define HAVE_SYS_RESOURCE_H 1 │ │ │ │ │ +416 │ │ │ │ │ +417/* Define to 1 if you have the header file. */ │ │ │ │ │ +418#define HAVE_SYS_SELECT_H 1 │ │ │ │ │ +419 │ │ │ │ │ +420/* Define to 1 if you have the header file. */ │ │ │ │ │ +421#define HAVE_SYS_SOCKET_H 1 │ │ │ │ │ +422 │ │ │ │ │ +423/* Define to 1 if you have the header file. */ │ │ │ │ │ +424#define HAVE_SYS_STAT_H 1 │ │ │ │ │ +425 │ │ │ │ │ +426/* Define to 1 if you have the header file. */ │ │ │ │ │ +427#define HAVE_SYS_TIME_H 1 │ │ │ │ │ +428 │ │ │ │ │ +429/* Define to 1 if you have the header file. */ │ │ │ │ │ +430#define HAVE_SYS_TYPES_H 1 │ │ │ │ │ +431 │ │ │ │ │ +432/* Define to 1 if you have the header file. */ │ │ │ │ │ +433#define HAVE_SYS_WAIT_H 1 │ │ │ │ │ +434 │ │ │ │ │ +435/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use │ │ │ │ │ +436 'HAVE_STRUCT_TM_TM_ZONE' instead. */ │ │ │ │ │ +437#define HAVE_TM_ZONE 1 │ │ │ │ │ +438 │ │ │ │ │ +439/* Define to 1 if you don't have 'tm_zone' but do have the external array │ │ │ │ │ +440 'tzname'. */ │ │ │ │ │ +441/* #undef HAVE_TZNAME */ │ │ │ │ │ +442 │ │ │ │ │ +443/* Define to 1 if you have the header file. */ │ │ │ │ │ +444#define HAVE_UNISTD_H 1 │ │ │ │ │ +445 │ │ │ │ │ +446/* Define to 1 if you have the 'usleep' function. */ │ │ │ │ │ +447#define HAVE_USLEEP 1 │ │ │ │ │ +448 │ │ │ │ │ +449/* Define to 1 if you have the header file. */ │ │ │ │ │ +450/* #undef HAVE_VALGRIND_MEMCHECK_H */ │ │ │ │ │ +451 │ │ │ │ │ +452/* Define to 1 if you have the 'vasprintf' function. */ │ │ │ │ │ +453#define HAVE_VASPRINTF 1 │ │ │ │ │ +454 │ │ │ │ │ +455/* Define to 1 if you have the 'vsnprintf' function. */ │ │ │ │ │ +456#define HAVE_VSNPRINTF 1 │ │ │ │ │ +457 │ │ │ │ │ +458/* Define to 1 if you have the header file. */ │ │ │ │ │ +459#define HAVE_WCHAR_H 1 │ │ │ │ │ +460 │ │ │ │ │ +461/* Define to 1 if you have the header file. */ │ │ │ │ │ +462/* #undef HAVE_WINDOWS_H */ │ │ │ │ │ +463 │ │ │ │ │ +464/* Define to 1 if you have the header file. */ │ │ │ │ │ +465/* #undef HAVE_WINSOCK2_H */ │ │ │ │ │ +466 │ │ │ │ │ +467/* Define to 1 if you have the '_fseeki64' function. */ │ │ │ │ │ +468/* #undef HAVE__FSEEKI64 */ │ │ │ │ │ +469 │ │ │ │ │ +470/* Define to 1 if you have the '_ftelli64' function. */ │ │ │ │ │ +471/* #undef HAVE__FTELLI64 */ │ │ │ │ │ +472 │ │ │ │ │ +473/* Define to 1 if you have the '_lock_file' function. */ │ │ │ │ │ +474/* #undef HAVE__LOCK_FILE */ │ │ │ │ │ +475 │ │ │ │ │ +476/* Define to 1 if you have the '_unlock_file' function. */ │ │ │ │ │ +477/* #undef HAVE__UNLOCK_FILE */ │ │ │ │ │ +478 │ │ │ │ │ +479/* Define to 1 if you have the '_vscprintf' function. */ │ │ │ │ │ +480/* #undef HAVE__VSCPRINTF */ │ │ │ │ │ +481 │ │ │ │ │ +482/* Define to 1 if you have the '_vsnprintf' function. */ │ │ │ │ │ +483/* #undef HAVE__VSNPRINTF */ │ │ │ │ │ +484 │ │ │ │ │ +485/* Define to 1 if you have the '_xpg_accept' function. */ │ │ │ │ │ +486/* #undef HAVE__XPG_ACCEPT */ │ │ │ │ │ +487 │ │ │ │ │ +488/* Define to 1 if you have the '_xpg_getpeername' function. */ │ │ │ │ │ +489/* #undef HAVE__XPG_GETPEERNAME */ │ │ │ │ │ +490 │ │ │ │ │ +491/* Define to 1 if you have the '_xpg_getsockname' function. */ │ │ │ │ │ +492/* #undef HAVE__XPG_GETSOCKNAME */ │ │ │ │ │ +493 │ │ │ │ │ +494/* Define to 1 if you have the '_xpg_getsockopt' function. */ │ │ │ │ │ +495/* #undef HAVE__XPG_GETSOCKOPT */ │ │ │ │ │ +496 │ │ │ │ │ +497/* Define to 1 if you have the '_xpg_recvfrom' function. */ │ │ │ │ │ +498/* #undef HAVE__XPG_RECVFROM */ │ │ │ │ │ +499 │ │ │ │ │ +500/* Define to 1 if you have the '__accept' function. */ │ │ │ │ │ +501/* #undef HAVE___ACCEPT */ │ │ │ │ │ +502 │ │ │ │ │ +503/* Define to 1 if you have the '__getpeername' function. */ │ │ │ │ │ +504/* #undef HAVE___GETPEERNAME */ │ │ │ │ │ +505 │ │ │ │ │ +506/* Define to 1 if you have the '__getsockname' function. */ │ │ │ │ │ +507/* #undef HAVE___GETSOCKNAME */ │ │ │ │ │ +508 │ │ │ │ │ +509/* Define to 1 if you have the '__getsockopt' function. */ │ │ │ │ │ +510/* #undef HAVE___GETSOCKOPT */ │ │ │ │ │ +511 │ │ │ │ │ +512/* Define to 1 if you have the '__recvfrom' function. */ │ │ │ │ │ +513/* #undef HAVE___RECVFROM */ │ │ │ │ │ +514 │ │ │ │ │ +515/* Define as const if the declaration of iconv() needs const. */ │ │ │ │ │ +516#define ICONV_CONST │ │ │ │ │ +517 │ │ │ │ │ +518/* Define to value of INADDR_NONE if not provided by your system header │ │ │ │ │ +files. │ │ │ │ │ +519 */ │ │ │ │ │ +520/* #undef INADDR_NONE */ │ │ │ │ │ +521 │ │ │ │ │ +522/* Define to the sub-directory where libtool stores uninstalled libraries. │ │ │ │ │ +*/ │ │ │ │ │ +523#define LT_OBJDIR ".libs/" │ │ │ │ │ +524 │ │ │ │ │ +525/* Define to 1 if the BSD-style netdb interface is reentrant. */ │ │ │ │ │ +526/* #undef NETDB_REENTRANT */ │ │ │ │ │ +527 │ │ │ │ │ +528/* Define to 1 if memset(0) sets pointers to NULL. */ │ │ │ │ │ +529#define NULL_REP_IS_ZERO_BYTES 1 │ │ │ │ │ +530 │ │ │ │ │ +531/* Name of package */ │ │ │ │ │ +532#define PACKAGE "freetds" │ │ │ │ │ +533 │ │ │ │ │ +534/* Define to the address where bug reports for this package should be sent. │ │ │ │ │ +*/ │ │ │ │ │ +535#define PACKAGE_BUGREPORT "" │ │ │ │ │ +536 │ │ │ │ │ +537/* Define to the full name of this package. */ │ │ │ │ │ +538#define PACKAGE_NAME "FreeTDS" │ │ │ │ │ +539 │ │ │ │ │ +540/* Define to the full name and version of this package. */ │ │ │ │ │ +541#define PACKAGE_STRING "FreeTDS 1.3.17" │ │ │ │ │ +542 │ │ │ │ │ +543/* Define to the one symbol short name of this package. */ │ │ │ │ │ +544#define PACKAGE_TARNAME "freetds" │ │ │ │ │ +545 │ │ │ │ │ +546/* Define to the home page for this package. */ │ │ │ │ │ +547#define PACKAGE_URL "" │ │ │ │ │ +548 │ │ │ │ │ +549/* Define to the version of this package. */ │ │ │ │ │ +550#define PACKAGE_VERSION "1.3.17" │ │ │ │ │ +551 │ │ │ │ │ +552/* Define to necessary symbol if this constant uses a non-standard name on │ │ │ │ │ +553 your system. */ │ │ │ │ │ +554/* #undef PTHREAD_CREATE_JOINABLE */ │ │ │ │ │ +555 │ │ │ │ │ +556/* The size of 'char', as computed by sizeof. */ │ │ │ │ │ +557#define SIZEOF_CHAR 1 │ │ │ │ │ +558 │ │ │ │ │ +559/* The size of 'double', as computed by sizeof. */ │ │ │ │ │ +560#define SIZEOF_DOUBLE 8 │ │ │ │ │ +561 │ │ │ │ │ +562/* The size of 'float', as computed by sizeof. */ │ │ │ │ │ +563#define SIZEOF_FLOAT 4 │ │ │ │ │ +564 │ │ │ │ │ +565/* The size of 'int', as computed by sizeof. */ │ │ │ │ │ +566#define SIZEOF_INT 4 │ │ │ │ │ +567 │ │ │ │ │ +568/* The size of 'long', as computed by sizeof. */ │ │ │ │ │ +569#define SIZEOF_LONG 4 │ │ │ │ │ +570 │ │ │ │ │ +571/* The size of 'long double', as computed by sizeof. */ │ │ │ │ │ +572#define SIZEOF_LONG_DOUBLE 12 │ │ │ │ │ +573 │ │ │ │ │ +574/* The size of 'long long', as computed by sizeof. */ │ │ │ │ │ +575#define SIZEOF_LONG_LONG 8 │ │ │ │ │ +576 │ │ │ │ │ +577/* The size of 'short', as computed by sizeof. */ │ │ │ │ │ +578#define SIZEOF_SHORT 2 │ │ │ │ │ +579 │ │ │ │ │ +580/* The size of 'SQLWCHAR', as computed by sizeof. */ │ │ │ │ │ +581#define SIZEOF_SQLWCHAR 2 │ │ │ │ │ +582 │ │ │ │ │ +583/* The size of 'void *', as computed by sizeof. */ │ │ │ │ │ +584#define SIZEOF_VOID_P 4 │ │ │ │ │ +585 │ │ │ │ │ +586/* The size of 'wchar_t', as computed by sizeof. */ │ │ │ │ │ +587#define SIZEOF_WCHAR_T 4 │ │ │ │ │ +588 │ │ │ │ │ +589/* The size of '__int64', as computed by sizeof. */ │ │ │ │ │ +590#define SIZEOF___INT64 0 │ │ │ │ │ +591 │ │ │ │ │ +592/* If using the C implementation of alloca, define if you know the │ │ │ │ │ +593 direction of stack growth for your system; otherwise it will be │ │ │ │ │ +594 automatically deduced at runtime. │ │ │ │ │ +595 STACK_DIRECTION > 0 => grows toward higher addresses │ │ │ │ │ +596 STACK_DIRECTION < 0 => grows toward lower addresses │ │ │ │ │ +597 STACK_DIRECTION = 0 => direction of growth unknown */ │ │ │ │ │ +598/* #undef STACK_DIRECTION */ │ │ │ │ │ +599 │ │ │ │ │ +600/* Define to 1 if all of the C89 standard headers exist (not just the ones │ │ │ │ │ +601 required in a freestanding environment). This macro is provided for │ │ │ │ │ +602 backward compatibility; new code need not use it. */ │ │ │ │ │ +603#define STDC_HEADERS 1 │ │ │ │ │ +604 │ │ │ │ │ +605/* Define to use TDS 5.0 by default */ │ │ │ │ │ +606/* #undef TDS50 */ │ │ │ │ │ +607 │ │ │ │ │ +608/* Define to use TDS 7.1 by default */ │ │ │ │ │ +609/* #undef TDS71 */ │ │ │ │ │ +610 │ │ │ │ │ +611/* Define to use TDS 7.2 by default */ │ │ │ │ │ +612/* #undef TDS72 */ │ │ │ │ │ +613 │ │ │ │ │ +614/* Define to use TDS 7.3 by default */ │ │ │ │ │ +615/* #undef TDS73 */ │ │ │ │ │ +616 │ │ │ │ │ +617/* Define to use TDS 7.4 by default */ │ │ │ │ │ +618/* #undef TDS74 */ │ │ │ │ │ +619 │ │ │ │ │ +620/* Define to 1 if your compiler supports __attribute__((destructor)). */ │ │ │ │ │ +621#define TDS_ATTRIBUTE_DESTRUCTOR 1 │ │ │ │ │ +622 │ │ │ │ │ +623/* define to constant to use for clock_gettime */ │ │ │ │ │ +624#define TDS_GETTIMEMILLI_CONST CLOCK_MONOTONIC │ │ │ │ │ +625 │ │ │ │ │ +626/* Define if you have pthread with mutex support */ │ │ │ │ │ +627#define TDS_HAVE_PTHREAD_MUTEX 1 │ │ │ │ │ +628 │ │ │ │ │ +629/* Define if stdio support locking */ │ │ │ │ │ +630#define TDS_HAVE_STDIO_LOCKED 1 │ │ │ │ │ +631 │ │ │ │ │ +632/* define to prefix format string used for 64bit integers */ │ │ │ │ │ +633#define TDS_I64_PREFIX "ll" │ │ │ │ │ +634 │ │ │ │ │ +635/* Define if you don't care about thread safety */ │ │ │ │ │ +636/* #undef TDS_NO_THREADSAFE */ │ │ │ │ │ +637 │ │ │ │ │ +638/* Define to 1 if last argument of SQLColAttribute it's SQLLEN * */ │ │ │ │ │ +639#define TDS_SQLCOLATTRIBUTE_SQLLEN 1 │ │ │ │ │ +640 │ │ │ │ │ +641/* Define to 1 if SQLParamOptions accept SQLULEN as arguments */ │ │ │ │ │ +642#define TDS_SQLPARAMOPTIONS_SQLLEN 1 │ │ │ │ │ +643 │ │ │ │ │ +644/* Defined if --enable-sybase-compat used */ │ │ │ │ │ +645#define TDS_SYBASE_COMPAT 1 │ │ │ │ │ +646 │ │ │ │ │ +647/* Define to 1 if you can safely include both and . │ │ │ │ │ +This │ │ │ │ │ +648 macro is obsolete. */ │ │ │ │ │ +649#define TIME_WITH_SYS_TIME 1 │ │ │ │ │ +650 │ │ │ │ │ +651/* Define to 1 if your declares 'struct tm'. */ │ │ │ │ │ +652/* #undef TM_IN_SYS_TIME */ │ │ │ │ │ +653 │ │ │ │ │ +654/* Enable extensions on AIX, Interix, z/OS. */ │ │ │ │ │ +655#ifndef _ALL_SOURCE │ │ │ │ │ +656# define _ALL_SOURCE 1 │ │ │ │ │ +657#endif │ │ │ │ │ +658/* Enable general extensions on macOS. */ │ │ │ │ │ +659#ifndef _DARWIN_C_SOURCE │ │ │ │ │ +660# define _DARWIN_C_SOURCE 1 │ │ │ │ │ +661#endif │ │ │ │ │ +662/* Enable general extensions on Solaris. */ │ │ │ │ │ +663#ifndef __EXTENSIONS__ │ │ │ │ │ +664# define __EXTENSIONS__ 1 │ │ │ │ │ +665#endif │ │ │ │ │ +666/* Enable GNU extensions on systems that have them. */ │ │ │ │ │ +667#ifndef _GNU_SOURCE │ │ │ │ │ +668# define _GNU_SOURCE 1 │ │ │ │ │ +669#endif │ │ │ │ │ +670/* Enable X/Open compliant socket functions that do not require linking │ │ │ │ │ +671 with -lxnet on HP-UX 11.11. */ │ │ │ │ │ +672#ifndef _HPUX_ALT_XOPEN_SOCKET_API │ │ │ │ │ +673# define _HPUX_ALT_XOPEN_SOCKET_API 1 │ │ │ │ │ +674#endif │ │ │ │ │ +675/* Identify the host operating system as Minix. │ │ │ │ │ +676 This macro does not affect the system headers' behavior. │ │ │ │ │ +677 A future release of Autoconf may stop defining this macro. */ │ │ │ │ │ +678#ifndef _MINIX │ │ │ │ │ +679/* # undef _MINIX */ │ │ │ │ │ +680#endif │ │ │ │ │ +681/* Enable general extensions on NetBSD. │ │ │ │ │ +682 Enable NetBSD compatibility extensions on Minix. */ │ │ │ │ │ +683#ifndef _NETBSD_SOURCE │ │ │ │ │ +684# define _NETBSD_SOURCE 1 │ │ │ │ │ +685#endif │ │ │ │ │ +686/* Enable OpenBSD compatibility extensions on NetBSD. │ │ │ │ │ +687 Oddly enough, this does nothing on OpenBSD. */ │ │ │ │ │ +688#ifndef _OPENBSD_SOURCE │ │ │ │ │ +689# define _OPENBSD_SOURCE 1 │ │ │ │ │ +690#endif │ │ │ │ │ +691/* Define to 1 if needed for POSIX-compatible behavior. */ │ │ │ │ │ +692#ifndef _POSIX_SOURCE │ │ │ │ │ +693/* # undef _POSIX_SOURCE */ │ │ │ │ │ +694#endif │ │ │ │ │ +695/* Define to 2 if needed for POSIX-compatible behavior. */ │ │ │ │ │ +696#ifndef _POSIX_1_SOURCE │ │ │ │ │ +697/* # undef _POSIX_1_SOURCE */ │ │ │ │ │ +698#endif │ │ │ │ │ +699/* Enable POSIX-compatible threading on Solaris. */ │ │ │ │ │ +700#ifndef _POSIX_PTHREAD_SEMANTICS │ │ │ │ │ +701# define _POSIX_PTHREAD_SEMANTICS 1 │ │ │ │ │ +702#endif │ │ │ │ │ +703/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */ │ │ │ │ │ +704#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__ │ │ │ │ │ +705# define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1 │ │ │ │ │ +706#endif │ │ │ │ │ +707/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */ │ │ │ │ │ +708#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ │ │ │ │ │ +709# define __STDC_WANT_IEC_60559_BFP_EXT__ 1 │ │ │ │ │ +710#endif │ │ │ │ │ +711/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */ │ │ │ │ │ +712#ifndef __STDC_WANT_IEC_60559_DFP_EXT__ │ │ │ │ │ +713# define __STDC_WANT_IEC_60559_DFP_EXT__ 1 │ │ │ │ │ +714#endif │ │ │ │ │ +715/* Enable extensions specified by C23 Annex F. */ │ │ │ │ │ +716#ifndef __STDC_WANT_IEC_60559_EXT__ │ │ │ │ │ +717# define __STDC_WANT_IEC_60559_EXT__ 1 │ │ │ │ │ +718#endif │ │ │ │ │ +719/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ │ │ │ │ │ +720#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ │ │ │ │ │ +721# define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 │ │ │ │ │ +722#endif │ │ │ │ │ +723/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. │ │ │ │ │ +*/ │ │ │ │ │ +724#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ │ │ │ │ │ +725# define __STDC_WANT_IEC_60559_TYPES_EXT__ 1 │ │ │ │ │ +726#endif │ │ │ │ │ +727/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */ │ │ │ │ │ +728#ifndef __STDC_WANT_LIB_EXT2__ │ │ │ │ │ +729# define __STDC_WANT_LIB_EXT2__ 1 │ │ │ │ │ +730#endif │ │ │ │ │ +731/* Enable extensions specified by ISO/IEC 24747:2009. */ │ │ │ │ │ +732#ifndef __STDC_WANT_MATH_SPEC_FUNCS__ │ │ │ │ │ +733# define __STDC_WANT_MATH_SPEC_FUNCS__ 1 │ │ │ │ │ +734#endif │ │ │ │ │ +735/* Enable extensions on HP NonStop. */ │ │ │ │ │ +736#ifndef _TANDEM_SOURCE │ │ │ │ │ +737# define _TANDEM_SOURCE 1 │ │ │ │ │ +738#endif │ │ │ │ │ +739/* Enable X/Open extensions. Define to 500 only if necessary │ │ │ │ │ +740 to make mbstate_t available. */ │ │ │ │ │ +741#ifndef _XOPEN_SOURCE │ │ │ │ │ +742/* # undef _XOPEN_SOURCE */ │ │ │ │ │ +743#endif │ │ │ │ │ +744 │ │ │ │ │ +745 │ │ │ │ │ +746/* Version number of package */ │ │ │ │ │ +747#define VERSION "1.3.17" │ │ │ │ │ +748 │ │ │ │ │ +749/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most │ │ │ │ │ +750 significant byte first (like Motorola and SPARC, unlike Intel). */ │ │ │ │ │ +751#if defined AC_APPLE_UNIVERSAL_BUILD │ │ │ │ │ +752# if defined __BIG_ENDIAN__ │ │ │ │ │ +753# define WORDS_BIGENDIAN 1 │ │ │ │ │ +754# endif │ │ │ │ │ +755#else │ │ │ │ │ +756# ifndef WORDS_BIGENDIAN │ │ │ │ │ +757/* # undef WORDS_BIGENDIAN */ │ │ │ │ │ +758# endif │ │ │ │ │ +759#endif │ │ │ │ │ +760 │ │ │ │ │ +761/* Number of bits in a file offset, on hosts where this is settable. */ │ │ │ │ │ +762#define _FILE_OFFSET_BITS 64 │ │ │ │ │ +763 │ │ │ │ │ +764/* Define to 1 if necessary to make fseeko visible. */ │ │ │ │ │ +765/* #undef _LARGEFILE_SOURCE */ │ │ │ │ │ +766 │ │ │ │ │ +767/* Define to 1 on platforms where this makes off_t a 64-bit type. */ │ │ │ │ │ +768/* #undef _LARGE_FILES */ │ │ │ │ │ +769 │ │ │ │ │ +770/* Number of bits in time_t, on hosts where this is settable. */ │ │ │ │ │ +771/* #undef _TIME_BITS */ │ │ │ │ │ +772 │ │ │ │ │ +773/* Define to 1 on platforms where this makes time_t a 64-bit type. */ │ │ │ │ │ +774/* #undef __MINGW_USE_VC2005_COMPAT */ │ │ │ │ │ +775 │ │ │ │ │ +776/* Define to empty if 'const' does not conform to ANSI C. */ │ │ │ │ │ +777/* #undef const */ │ │ │ │ │ +778 │ │ │ │ │ +779/* Define to '__inline__' or '__inline' if that's what the C compiler │ │ │ │ │ +780 calls it, or to nothing if 'inline' is not supported under any name. */ │ │ │ │ │ +781#ifndef __cplusplus │ │ │ │ │ +782/* #undef inline */ │ │ │ │ │ +783#endif │ │ │ │ │ +784 │ │ │ │ │ +785/* Define as 'unsigned int' if doesn't define. */ │ │ │ │ │ +786/* #undef size_t */ │ │ │ │ │ +787 │ │ │ │ │ +788/* type to use in place of socklen_t if not defined */ │ │ │ │ │ +789/* #undef socklen_t */ │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00485_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/ctpublic.h Source File │ │ │ │ +FreeTDS API: include/sqlfront.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,162 +74,78 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
ctpublic.h
│ │ │ │ +
sqlfront.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │ -
3 *
│ │ │ │ -
4 * This library is free software; you can redistribute it and/or
│ │ │ │ -
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ -
6 * License as published by the Free Software Foundation; either
│ │ │ │ -
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │ -
8 *
│ │ │ │ -
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ -
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ -
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ -
12 * Library General Public License for more details.
│ │ │ │ -
13 *
│ │ │ │ -
14 * You should have received a copy of the GNU Library General Public
│ │ │ │ -
15 * License along with this library; if not, write to the
│ │ │ │ -
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ -
17 * Boston, MA 02111-1307, USA.
│ │ │ │ -
18 */
│ │ │ │ -
19
│ │ │ │ -
20#ifndef _ctpublic_h_
│ │ │ │ -
21#define _ctpublic_h_
│ │ │ │ -
22
│ │ │ │ -
23#include <cspublic.h>
│ │ │ │ -
24
│ │ │ │ -
25#undef TDS_STATIC_CAST
│ │ │ │ -
26#ifdef __cplusplus
│ │ │ │ -
27#define TDS_STATIC_CAST(type, a) static_cast<type>(a)
│ │ │ │ -
28extern "C"
│ │ │ │ -
29{
│ │ │ │ -
30#if 0
│ │ │ │ -
31}
│ │ │ │ -
32#endif
│ │ │ │ -
33#else
│ │ │ │ -
34#define TDS_STATIC_CAST(type, a) ((type)(a))
│ │ │ │ -
35#endif
│ │ │ │ -
36
│ │ │ │ -
37/*
│ │ │ │ -
38** define for each CT-Lib API
│ │ │ │ -
39*/
│ │ │ │ -
40#define CT_BIND TDS_STATIC_CAST(CS_INT, 0)
│ │ │ │ -
41#define CT_BR_COLUMN TDS_STATIC_CAST(CS_INT, 1)
│ │ │ │ -
42#define CT_BR_TABLE TDS_STATIC_CAST(CS_INT, 2)
│ │ │ │ -
43#define CT_CALLBACK TDS_STATIC_CAST(CS_INT, 3)
│ │ │ │ -
44#define CT_CANCEL TDS_STATIC_CAST(CS_INT, 4)
│ │ │ │ -
45#define CT_CAPABILITY TDS_STATIC_CAST(CS_INT, 5)
│ │ │ │ -
46#define CT_CLOSE TDS_STATIC_CAST(CS_INT, 6)
│ │ │ │ -
47#define CT_CMD_ALLOC TDS_STATIC_CAST(CS_INT, 7)
│ │ │ │ -
48#define CT_CMD_DROP TDS_STATIC_CAST(CS_INT, 8)
│ │ │ │ -
49#define CT_CMD_PROPS TDS_STATIC_CAST(CS_INT, 9)
│ │ │ │ -
50#define CT_COMMAND TDS_STATIC_CAST(CS_INT, 10)
│ │ │ │ -
51#define CT_COMPUTE_INFO TDS_STATIC_CAST(CS_INT, 11)
│ │ │ │ -
52#define CT_CON_ALLOC TDS_STATIC_CAST(CS_INT, 12)
│ │ │ │ -
53#define CT_CON_DROP TDS_STATIC_CAST(CS_INT, 13)
│ │ │ │ -
54#define CT_CON_PROPS TDS_STATIC_CAST(CS_INT, 14)
│ │ │ │ -
55#define CT_CON_XFER TDS_STATIC_CAST(CS_INT, 15)
│ │ │ │ -
56#define CT_CONFIG TDS_STATIC_CAST(CS_INT, 16)
│ │ │ │ -
57#define CT_CONNECT TDS_STATIC_CAST(CS_INT, 17)
│ │ │ │ -
58#define CT_CURSOR TDS_STATIC_CAST(CS_INT, 18)
│ │ │ │ -
59#define CT_DATA_INFO TDS_STATIC_CAST(CS_INT, 19)
│ │ │ │ -
60#define CT_DEBUG TDS_STATIC_CAST(CS_INT, 20)
│ │ │ │ -
61#define CT_DESCRIBE TDS_STATIC_CAST(CS_INT, 21)
│ │ │ │ -
62#define CT_DIAG TDS_STATIC_CAST(CS_INT, 22)
│ │ │ │ -
63#define CT_DYNAMIC TDS_STATIC_CAST(CS_INT, 23)
│ │ │ │ -
64#define CT_DYNDESC TDS_STATIC_CAST(CS_INT, 24)
│ │ │ │ -
65#define CT_EXIT TDS_STATIC_CAST(CS_INT, 25)
│ │ │ │ -
66#define CT_FETCH TDS_STATIC_CAST(CS_INT, 26)
│ │ │ │ -
67#define CT_GET_DATA TDS_STATIC_CAST(CS_INT, 27)
│ │ │ │ -
68#define CT_GETFORMAT TDS_STATIC_CAST(CS_INT, 28)
│ │ │ │ -
69#define CT_GETLOGINFO TDS_STATIC_CAST(CS_INT, 29)
│ │ │ │ -
70#define CT_INIT TDS_STATIC_CAST(CS_INT, 30)
│ │ │ │ -
71#define CT_KEYDATA TDS_STATIC_CAST(CS_INT, 31)
│ │ │ │ -
72#define CT_OPTIONS TDS_STATIC_CAST(CS_INT, 32)
│ │ │ │ -
73#define CT_PARAM TDS_STATIC_CAST(CS_INT, 33)
│ │ │ │ -
74#define CT_POLL TDS_STATIC_CAST(CS_INT, 34)
│ │ │ │ -
75#define CT_RECVPASSTHRU TDS_STATIC_CAST(CS_INT, 35)
│ │ │ │ -
76#define CT_REMOTE_PWD TDS_STATIC_CAST(CS_INT, 36)
│ │ │ │ -
77#define CT_RES_INFO TDS_STATIC_CAST(CS_INT, 37)
│ │ │ │ -
78#define CT_RESULTS TDS_STATIC_CAST(CS_INT, 38)
│ │ │ │ -
79#define CT_SEND TDS_STATIC_CAST(CS_INT, 39)
│ │ │ │ -
80#define CT_SEND_DATA TDS_STATIC_CAST(CS_INT, 40)
│ │ │ │ -
81#define CT_SENDPASSTHRU TDS_STATIC_CAST(CS_INT, 41)
│ │ │ │ -
82#define CT_SETLOGINFO TDS_STATIC_CAST(CS_INT, 42)
│ │ │ │ -
83#define CT_WAKEUP TDS_STATIC_CAST(CS_INT, 43)
│ │ │ │ -
84#define CT_LABELS TDS_STATIC_CAST(CS_INT, 44)
│ │ │ │ -
85#define CT_DS_LOOKUP TDS_STATIC_CAST(CS_INT, 45)
│ │ │ │ -
86#define CT_DS_DROP TDS_STATIC_CAST(CS_INT, 46)
│ │ │ │ -
87#define CT_DS_OBJINFO TDS_STATIC_CAST(CS_INT, 47)
│ │ │ │ -
88#define CT_SETPARAM TDS_STATIC_CAST(CS_INT, 48)
│ │ │ │ -
89#define CT_DYNSQLDA TDS_STATIC_CAST(CS_INT, 49)
│ │ │ │ -
90#define CT_NOTIFICATION TDS_STATIC_CAST(CS_INT, 1000)
│ │ │ │ -
91
│ │ │ │ -
92static const char rcsid_ctpublic_h[] = "$Id: ctpublic.h,v 1.14 2005-05-28 10:48:26 freddy77 Exp $";
│ │ │ │ -
93static const void *const no_unused_ctpublic_h_warn[] = { rcsid_ctpublic_h, no_unused_ctpublic_h_warn };
│ │ │ │ -
94
│ │ │ │ -
95
│ │ │ │ -
96CS_RETCODE ct_init(CS_CONTEXT * ctx, CS_INT version);
│ │ │ │ -
97CS_RETCODE ct_con_alloc(CS_CONTEXT * ctx, CS_CONNECTION ** con);
│ │ │ │ -
98CS_RETCODE ct_con_props(CS_CONNECTION * con, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
│ │ │ │ -
99CS_RETCODE ct_connect(CS_CONNECTION * con, CS_CHAR * servername, CS_INT snamelen);
│ │ │ │ -
100CS_RETCODE ct_cmd_alloc(CS_CONNECTION * con, CS_COMMAND ** cmd);
│ │ │ │ -
101CS_RETCODE ct_cancel(CS_CONNECTION * conn, CS_COMMAND * cmd, CS_INT type);
│ │ │ │ -
102CS_RETCODE ct_cmd_drop(CS_COMMAND * cmd);
│ │ │ │ -
103CS_RETCODE ct_close(CS_CONNECTION * con, CS_INT option);
│ │ │ │ -
104CS_RETCODE ct_con_drop(CS_CONNECTION * con);
│ │ │ │ -
105CS_RETCODE ct_exit(CS_CONTEXT * ctx, CS_INT unused);
│ │ │ │ -
106CS_RETCODE ct_command(CS_COMMAND * cmd, CS_INT type, const CS_VOID * buffer, CS_INT buflen, CS_INT option);
│ │ │ │ -
107CS_RETCODE ct_send(CS_COMMAND * cmd);
│ │ │ │ -
108CS_RETCODE ct_results(CS_COMMAND * cmd, CS_INT * result_type);
│ │ │ │ -
109CS_RETCODE ct_bind(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * copied, CS_SMALLINT * indicator);
│ │ │ │ -
110CS_RETCODE ct_fetch(CS_COMMAND * cmd, CS_INT type, CS_INT offset, CS_INT option, CS_INT * rows_read);
│ │ │ │ -
111CS_RETCODE ct_res_info_dyn(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
│ │ │ │ -
112CS_RETCODE ct_res_info(CS_COMMAND * cmd, CS_INT type, CS_VOID * buffer, CS_INT buflen, CS_INT * out_len);
│ │ │ │ -
113CS_RETCODE ct_describe(CS_COMMAND * cmd, CS_INT item, CS_DATAFMT * datafmt);
│ │ │ │ -
114CS_RETCODE ct_callback(CS_CONTEXT * ctx, CS_CONNECTION * con, CS_INT action, CS_INT type, CS_VOID * func);
│ │ │ │ -
115CS_RETCODE ct_send_dyn(CS_COMMAND * cmd);
│ │ │ │ -
116CS_RETCODE ct_results_dyn(CS_COMMAND * cmd, CS_INT * result_type);
│ │ │ │ -
117CS_RETCODE ct_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
118CS_RETCODE ct_cmd_props(CS_COMMAND * cmd, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
119CS_RETCODE ct_compute_info(CS_COMMAND * cmd, CS_INT type, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
120CS_RETCODE ct_get_data(CS_COMMAND * cmd, CS_INT item, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
121CS_RETCODE ct_send_data(CS_COMMAND * cmd, CS_VOID * buffer, CS_INT buflen);
│ │ │ │ -
122CS_RETCODE ct_data_info(CS_COMMAND * cmd, CS_INT action, CS_INT colnum, CS_IODESC * iodesc);
│ │ │ │ -
123CS_RETCODE ct_capability(CS_CONNECTION * con, CS_INT action, CS_INT type, CS_INT capability, CS_VOID * value);
│ │ │ │ -
124CS_RETCODE ct_dynamic(CS_COMMAND * cmd, CS_INT type, CS_CHAR * id, CS_INT idlen, CS_CHAR * buffer, CS_INT buflen);
│ │ │ │ -
125CS_RETCODE ct_param(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT datalen, CS_SMALLINT indicator);
│ │ │ │ -
126CS_RETCODE ct_setparam(CS_COMMAND * cmd, CS_DATAFMT * datafmt, CS_VOID * data, CS_INT * datalen, CS_SMALLINT * indicator);
│ │ │ │ -
127CS_RETCODE ct_options(CS_CONNECTION * con, CS_INT action, CS_INT option, CS_VOID * param, CS_INT paramlen, CS_INT * outlen);
│ │ │ │ -
128CS_RETCODE ct_poll(CS_CONTEXT * ctx, CS_CONNECTION * connection, CS_INT milliseconds, CS_CONNECTION ** compconn,
│ │ │ │ -
129 CS_COMMAND ** compcmd, CS_INT * compid, CS_INT * compstatus);
│ │ │ │ -
130CS_RETCODE ct_cursor(CS_COMMAND * cmd, CS_INT type, CS_CHAR * name, CS_INT namelen, CS_CHAR * text, CS_INT tlen, CS_INT option);
│ │ │ │ -
131CS_RETCODE ct_diag(CS_CONNECTION * conn, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
│ │ │ │ -
132
│ │ │ │ -
133#ifdef __cplusplus
│ │ │ │ -
134#if 0
│ │ │ │ -
135{
│ │ │ │ -
136#endif
│ │ │ │ -
137}
│ │ │ │ -
138#endif
│ │ │ │ -
139
│ │ │ │ -
140#endif
│ │ │ │ -
Definition cstypes.h:97
│ │ │ │ -
Definition cstypes.h:114
│ │ │ │ -
Definition ctlib.h:75
│ │ │ │ -
Definition ctlib.h:117
│ │ │ │ -
Definition ctlib.h:212
│ │ │ │ +
3 * Copyright (C) 2011 Frediano Ziglio
│ │ │ │ +
4 *
│ │ │ │ +
5 * This library is free software; you can redistribute it and/or
│ │ │ │ +
6 * modify it under the terms of the GNU Library General Public
│ │ │ │ +
7 * License as published by the Free Software Foundation; either
│ │ │ │ +
8 * version 2 of the License, or (at your option) any later version.
│ │ │ │ +
9 *
│ │ │ │ +
10 * This library is distributed in the hope that it will be useful,
│ │ │ │ +
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
│ │ │ │ +
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
│ │ │ │ +
13 * Library General Public License for more details.
│ │ │ │ +
14 *
│ │ │ │ +
15 * You should have received a copy of the GNU Library General Public
│ │ │ │ +
16 * License along with this library; if not, write to the
│ │ │ │ +
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │ +
18 * Boston, MA 02111-1307, USA.
│ │ │ │ +
19 */
│ │ │ │ +
20
│ │ │ │ +
21#ifndef SQLFRONT_h
│ │ │ │ +
22#define SQLFRONT_h
│ │ │ │ +
23
│ │ │ │ +
24#include "./sybfront.h"
│ │ │ │ +
25
│ │ │ │ +
26static const char rcsid_sqlfront_h[] = "$Id: sqlfront.h,v 1.10 2011-07-13 11:06:31 freddy77 Exp $";
│ │ │ │ +
27static const void *const no_unused_sqlfront_h_warn[] = { rcsid_sqlfront_h, no_unused_sqlfront_h_warn };
│ │ │ │ +
28
│ │ │ │ +
29typedef DBPROCESS * PDBPROCESS;
│ │ │ │ +
30typedef LOGINREC * PLOGINREC;
│ │ │ │ +
31typedef DBCURSOR * PDBCURSOR;
│ │ │ │ +
32
│ │ │ │ +
33typedef int * LPINT;
│ │ │ │ +
34typedef char * LPSTR;
│ │ │ │ +
35#if !defined(PHP_MSSQL_H) || !defined(PHP_MSSQL_API)
│ │ │ │ +
36typedef BYTE * LPBYTE;
│ │ │ │ +
37#endif
│ │ │ │ +
38typedef void * LPVOID;
│ │ │ │ +
39typedef const char * LPCSTR;
│ │ │ │ +
40
│ │ │ │ +
41typedef const LPINT LPCINT;
│ │ │ │ +
42#ifndef _LPCBYTE_DEFINED
│ │ │ │ +
43#define _LPCBYTE_DEFINED
│ │ │ │ +
44typedef const BYTE * LPCBYTE;
│ │ │ │ +
45#endif
│ │ │ │ +
46typedef USHORT * LPUSHORT;
│ │ │ │ +
47typedef const LPUSHORT LPCUSHORT;
│ │ │ │ +
48typedef DBINT * LPDBINT;
│ │ │ │ +
49typedef const LPDBINT LPCDBINT;
│ │ │ │ +
50typedef DBBINARY * LPDBBINARY;
│ │ │ │ +
51typedef const LPDBBINARY LPCDBBINARY;
│ │ │ │ +
52typedef DBDATEREC * LPDBDATEREC;
│ │ │ │ +
53typedef const LPDBDATEREC LPCDBDATEREC;
│ │ │ │ +
54typedef DBDATETIME * LPDBDATETIME;
│ │ │ │ +
55typedef const LPDBDATETIME LPCDBDATETIME;
│ │ │ │ +
56
│ │ │ │ +
57#endif
│ │ │ │ +
Definition bsqlodbc.c:100
│ │ │ │ +
Definition dblib.h:123
│ │ │ │ +
Definition sybdb.h:295
│ │ │ │ +
Definition sybdb.h:474
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,181 +1,75 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -ctpublic.h │ │ │ │ │ +sqlfront.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ -3 * │ │ │ │ │ -4 * This library is free software; you can redistribute it and/or │ │ │ │ │ -5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ -6 * License as published by the Free Software Foundation; either │ │ │ │ │ -7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ -8 * │ │ │ │ │ -9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ -10 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ -11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ -12 * Library General Public License for more details. │ │ │ │ │ -13 * │ │ │ │ │ -14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ -15 * License along with this library; if not, write to the │ │ │ │ │ -16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ -17 * Boston, MA 02111-1307, USA. │ │ │ │ │ -18 */ │ │ │ │ │ -19 │ │ │ │ │ -20#ifndef _ctpublic_h_ │ │ │ │ │ -21#define _ctpublic_h_ │ │ │ │ │ -22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#undef TDS_STATIC_CAST │ │ │ │ │ -26#ifdef __cplusplus │ │ │ │ │ -27#define TDS_STATIC_CAST(type, a) static_cast(a) │ │ │ │ │ -28extern "C" │ │ │ │ │ -29{ │ │ │ │ │ -30#if 0 │ │ │ │ │ -31} │ │ │ │ │ -32#endif │ │ │ │ │ -33#else │ │ │ │ │ -34#define TDS_STATIC_CAST(type, a) ((type)(a)) │ │ │ │ │ -35#endif │ │ │ │ │ -36 │ │ │ │ │ -37/* │ │ │ │ │ -38** define for each CT-Lib API │ │ │ │ │ -39*/ │ │ │ │ │ -40#define CT_BIND TDS_STATIC_CAST(CS_INT, 0) │ │ │ │ │ -41#define CT_BR_COLUMN TDS_STATIC_CAST(CS_INT, 1) │ │ │ │ │ -42#define CT_BR_TABLE TDS_STATIC_CAST(CS_INT, 2) │ │ │ │ │ -43#define CT_CALLBACK TDS_STATIC_CAST(CS_INT, 3) │ │ │ │ │ -44#define CT_CANCEL TDS_STATIC_CAST(CS_INT, 4) │ │ │ │ │ -45#define CT_CAPABILITY TDS_STATIC_CAST(CS_INT, 5) │ │ │ │ │ -46#define CT_CLOSE TDS_STATIC_CAST(CS_INT, 6) │ │ │ │ │ -47#define CT_CMD_ALLOC TDS_STATIC_CAST(CS_INT, 7) │ │ │ │ │ -48#define CT_CMD_DROP TDS_STATIC_CAST(CS_INT, 8) │ │ │ │ │ -49#define CT_CMD_PROPS TDS_STATIC_CAST(CS_INT, 9) │ │ │ │ │ -50#define CT_COMMAND TDS_STATIC_CAST(CS_INT, 10) │ │ │ │ │ -51#define CT_COMPUTE_INFO TDS_STATIC_CAST(CS_INT, 11) │ │ │ │ │ -52#define CT_CON_ALLOC TDS_STATIC_CAST(CS_INT, 12) │ │ │ │ │ -53#define CT_CON_DROP TDS_STATIC_CAST(CS_INT, 13) │ │ │ │ │ -54#define CT_CON_PROPS TDS_STATIC_CAST(CS_INT, 14) │ │ │ │ │ -55#define CT_CON_XFER TDS_STATIC_CAST(CS_INT, 15) │ │ │ │ │ -56#define CT_CONFIG TDS_STATIC_CAST(CS_INT, 16) │ │ │ │ │ -57#define CT_CONNECT TDS_STATIC_CAST(CS_INT, 17) │ │ │ │ │ -58#define CT_CURSOR TDS_STATIC_CAST(CS_INT, 18) │ │ │ │ │ -59#define CT_DATA_INFO TDS_STATIC_CAST(CS_INT, 19) │ │ │ │ │ -60#define CT_DEBUG TDS_STATIC_CAST(CS_INT, 20) │ │ │ │ │ -61#define CT_DESCRIBE TDS_STATIC_CAST(CS_INT, 21) │ │ │ │ │ -62#define CT_DIAG TDS_STATIC_CAST(CS_INT, 22) │ │ │ │ │ -63#define CT_DYNAMIC TDS_STATIC_CAST(CS_INT, 23) │ │ │ │ │ -64#define CT_DYNDESC TDS_STATIC_CAST(CS_INT, 24) │ │ │ │ │ -65#define CT_EXIT TDS_STATIC_CAST(CS_INT, 25) │ │ │ │ │ -66#define CT_FETCH TDS_STATIC_CAST(CS_INT, 26) │ │ │ │ │ -67#define CT_GET_DATA TDS_STATIC_CAST(CS_INT, 27) │ │ │ │ │ -68#define CT_GETFORMAT TDS_STATIC_CAST(CS_INT, 28) │ │ │ │ │ -69#define CT_GETLOGINFO TDS_STATIC_CAST(CS_INT, 29) │ │ │ │ │ -70#define CT_INIT TDS_STATIC_CAST(CS_INT, 30) │ │ │ │ │ -71#define CT_KEYDATA TDS_STATIC_CAST(CS_INT, 31) │ │ │ │ │ -72#define CT_OPTIONS TDS_STATIC_CAST(CS_INT, 32) │ │ │ │ │ -73#define CT_PARAM TDS_STATIC_CAST(CS_INT, 33) │ │ │ │ │ -74#define CT_POLL TDS_STATIC_CAST(CS_INT, 34) │ │ │ │ │ -75#define CT_RECVPASSTHRU TDS_STATIC_CAST(CS_INT, 35) │ │ │ │ │ -76#define CT_REMOTE_PWD TDS_STATIC_CAST(CS_INT, 36) │ │ │ │ │ -77#define CT_RES_INFO TDS_STATIC_CAST(CS_INT, 37) │ │ │ │ │ -78#define CT_RESULTS TDS_STATIC_CAST(CS_INT, 38) │ │ │ │ │ -79#define CT_SEND TDS_STATIC_CAST(CS_INT, 39) │ │ │ │ │ -80#define CT_SEND_DATA TDS_STATIC_CAST(CS_INT, 40) │ │ │ │ │ -81#define CT_SENDPASSTHRU TDS_STATIC_CAST(CS_INT, 41) │ │ │ │ │ -82#define CT_SETLOGINFO TDS_STATIC_CAST(CS_INT, 42) │ │ │ │ │ -83#define CT_WAKEUP TDS_STATIC_CAST(CS_INT, 43) │ │ │ │ │ -84#define CT_LABELS TDS_STATIC_CAST(CS_INT, 44) │ │ │ │ │ -85#define CT_DS_LOOKUP TDS_STATIC_CAST(CS_INT, 45) │ │ │ │ │ -86#define CT_DS_DROP TDS_STATIC_CAST(CS_INT, 46) │ │ │ │ │ -87#define CT_DS_OBJINFO TDS_STATIC_CAST(CS_INT, 47) │ │ │ │ │ -88#define CT_SETPARAM TDS_STATIC_CAST(CS_INT, 48) │ │ │ │ │ -89#define CT_DYNSQLDA TDS_STATIC_CAST(CS_INT, 49) │ │ │ │ │ -90#define CT_NOTIFICATION TDS_STATIC_CAST(CS_INT, 1000) │ │ │ │ │ -91 │ │ │ │ │ -92static const char rcsid_ctpublic_h[] = "$Id: ctpublic.h,v 1.14 2005-05-28 10: │ │ │ │ │ -48:26 freddy77 Exp $"; │ │ │ │ │ -93static const void *const no_unused_ctpublic_h_warn[] = { rcsid_ctpublic_h, │ │ │ │ │ -no_unused_ctpublic_h_warn }; │ │ │ │ │ -94 │ │ │ │ │ -95 │ │ │ │ │ -96CS_RETCODE ct_init(_C_S___C_O_N_T_E_X_T * ctx, CS_INT version); │ │ │ │ │ -97CS_RETCODE ct_con_alloc(_C_S___C_O_N_T_E_X_T * ctx, _C_S___C_O_N_N_E_C_T_I_O_N ** con); │ │ │ │ │ -98CS_RETCODE ct_con_props(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, CS_INT property, │ │ │ │ │ -CS_VOID * buffer, CS_INT buflen, CS_INT * out_len); │ │ │ │ │ -99CS_RETCODE ct_connect(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_CHAR * servername, CS_INT │ │ │ │ │ -snamelen); │ │ │ │ │ -100CS_RETCODE ct_cmd_alloc(_C_S___C_O_N_N_E_C_T_I_O_N * con, _C_S___C_O_M_M_A_N_D ** cmd); │ │ │ │ │ -101CS_RETCODE ct_cancel(_C_S___C_O_N_N_E_C_T_I_O_N * conn, _C_S___C_O_M_M_A_N_D * cmd, CS_INT type); │ │ │ │ │ -102CS_RETCODE ct_cmd_drop(_C_S___C_O_M_M_A_N_D * cmd); │ │ │ │ │ -103CS_RETCODE ct_close(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT option); │ │ │ │ │ -104CS_RETCODE ct_con_drop(_C_S___C_O_N_N_E_C_T_I_O_N * con); │ │ │ │ │ -105CS_RETCODE ct_exit(_C_S___C_O_N_T_E_X_T * ctx, CS_INT unused); │ │ │ │ │ -106CS_RETCODE ct_command(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, const CS_VOID * buffer, │ │ │ │ │ -CS_INT buflen, CS_INT option); │ │ │ │ │ -107CS_RETCODE ct_send(_C_S___C_O_M_M_A_N_D * cmd); │ │ │ │ │ -108CS_RETCODE ct_results(_C_S___C_O_M_M_A_N_D * cmd, CS_INT * result_type); │ │ │ │ │ -109CS_RETCODE ct_bind(_C_S___C_O_M_M_A_N_D * cmd, CS_INT item, _C_S___D_A_T_A_F_M_T * datafmt, │ │ │ │ │ -CS_VOID * buffer, CS_INT * copied, CS_SMALLINT * indicator); │ │ │ │ │ -110CS_RETCODE ct_fetch(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_INT offset, CS_INT │ │ │ │ │ -option, CS_INT * rows_read); │ │ │ │ │ -111CS_RETCODE ct_res_info_dyn(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_VOID * buffer, │ │ │ │ │ -CS_INT buflen, CS_INT * out_len); │ │ │ │ │ -112CS_RETCODE ct_res_info(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_VOID * buffer, │ │ │ │ │ -CS_INT buflen, CS_INT * out_len); │ │ │ │ │ -113CS_RETCODE ct_describe(_C_S___C_O_M_M_A_N_D * cmd, CS_INT item, _C_S___D_A_T_A_F_M_T * datafmt); │ │ │ │ │ -114CS_RETCODE ct_callback(_C_S___C_O_N_T_E_X_T * ctx, _C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, │ │ │ │ │ -CS_INT type, CS_VOID * func); │ │ │ │ │ -115CS_RETCODE ct_send_dyn(_C_S___C_O_M_M_A_N_D * cmd); │ │ │ │ │ -116CS_RETCODE ct_results_dyn(_C_S___C_O_M_M_A_N_D * cmd, CS_INT * result_type); │ │ │ │ │ -117CS_RETCODE ct_config(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT property, │ │ │ │ │ -CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -118CS_RETCODE ct_cmd_props(_C_S___C_O_M_M_A_N_D * cmd, CS_INT action, CS_INT property, │ │ │ │ │ -CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -119CS_RETCODE ct_compute_info(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_INT colnum, │ │ │ │ │ -CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -120CS_RETCODE ct_get_data(_C_S___C_O_M_M_A_N_D * cmd, CS_INT item, CS_VOID * buffer, │ │ │ │ │ -CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -121CS_RETCODE ct_send_data(_C_S___C_O_M_M_A_N_D * cmd, CS_VOID * buffer, CS_INT buflen); │ │ │ │ │ -122CS_RETCODE ct_data_info(_C_S___C_O_M_M_A_N_D * cmd, CS_INT action, CS_INT colnum, │ │ │ │ │ -_C_S___I_O_D_E_S_C * iodesc); │ │ │ │ │ -123CS_RETCODE ct_capability(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, CS_INT type, │ │ │ │ │ -CS_INT capability, CS_VOID * value); │ │ │ │ │ -124CS_RETCODE ct_dynamic(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_CHAR * id, CS_INT │ │ │ │ │ -idlen, CS_CHAR * buffer, CS_INT buflen); │ │ │ │ │ -125CS_RETCODE ct_param(_C_S___C_O_M_M_A_N_D * cmd, _C_S___D_A_T_A_F_M_T * datafmt, CS_VOID * data, │ │ │ │ │ -CS_INT datalen, CS_SMALLINT indicator); │ │ │ │ │ -126CS_RETCODE ct_setparam(_C_S___C_O_M_M_A_N_D * cmd, _C_S___D_A_T_A_F_M_T * datafmt, CS_VOID * │ │ │ │ │ -data, CS_INT * datalen, CS_SMALLINT * indicator); │ │ │ │ │ -127CS_RETCODE ct_options(_C_S___C_O_N_N_E_C_T_I_O_N * con, CS_INT action, CS_INT option, │ │ │ │ │ -CS_VOID * param, CS_INT paramlen, CS_INT * outlen); │ │ │ │ │ -128CS_RETCODE ct_poll(_C_S___C_O_N_T_E_X_T * ctx, _C_S___C_O_N_N_E_C_T_I_O_N * connection, CS_INT │ │ │ │ │ -milliseconds, _C_S___C_O_N_N_E_C_T_I_O_N ** compconn, │ │ │ │ │ -129 _C_S___C_O_M_M_A_N_D ** compcmd, CS_INT * compid, CS_INT * compstatus); │ │ │ │ │ -130CS_RETCODE ct_cursor(_C_S___C_O_M_M_A_N_D * cmd, CS_INT type, CS_CHAR * name, CS_INT │ │ │ │ │ -namelen, CS_CHAR * text, CS_INT tlen, CS_INT option); │ │ │ │ │ -131CS_RETCODE ct_diag(_C_S___C_O_N_N_E_C_T_I_O_N * conn, CS_INT operation, CS_INT type, │ │ │ │ │ -CS_INT idx, CS_VOID * buffer); │ │ │ │ │ -132 │ │ │ │ │ -133#ifdef __cplusplus │ │ │ │ │ -134#if 0 │ │ │ │ │ -135{ │ │ │ │ │ -136#endif │ │ │ │ │ -137} │ │ │ │ │ -138#endif │ │ │ │ │ -139 │ │ │ │ │ -140#endif │ │ │ │ │ -___c_s___i_o_d_e_s_c │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:97 │ │ │ │ │ -___c_s___d_a_t_a_f_m_t │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ -___c_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:75 │ │ │ │ │ -___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ -___c_s___c_o_m_m_a_n_d │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:212 │ │ │ │ │ +3 * Copyright (C) 2011 Frediano Ziglio │ │ │ │ │ +4 * │ │ │ │ │ +5 * This library is free software; you can redistribute it and/or │ │ │ │ │ +6 * modify it under the terms of the GNU Library General Public │ │ │ │ │ +7 * License as published by the Free Software Foundation; either │ │ │ │ │ +8 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ +9 * │ │ │ │ │ +10 * This library is distributed in the hope that it will be useful, │ │ │ │ │ +11 * but WITHOUT ANY WARRANTY; without even the implied warranty of │ │ │ │ │ +12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU │ │ │ │ │ +13 * Library General Public License for more details. │ │ │ │ │ +14 * │ │ │ │ │ +15 * You should have received a copy of the GNU Library General Public │ │ │ │ │ +16 * License along with this library; if not, write to the │ │ │ │ │ +17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ +18 * Boston, MA 02111-1307, USA. │ │ │ │ │ +19 */ │ │ │ │ │ +20 │ │ │ │ │ +21#ifndef SQLFRONT_h │ │ │ │ │ +22#define SQLFRONT_h │ │ │ │ │ +23 │ │ │ │ │ +24#include "./sybfront.h" │ │ │ │ │ +25 │ │ │ │ │ +26static const char rcsid_sqlfront_h[] = "$Id: sqlfront.h,v 1.10 2011-07-13 11: │ │ │ │ │ +06:31 freddy77 Exp $"; │ │ │ │ │ +27static const void *const no_unused_sqlfront_h_warn[] = { rcsid_sqlfront_h, │ │ │ │ │ +no_unused_sqlfront_h_warn }; │ │ │ │ │ +28 │ │ │ │ │ +29typedef _D_B_P_R_O_C_E_S_S * _P_D_B_P_R_O_C_E_S_S; │ │ │ │ │ +30typedef _L_O_G_I_N_R_E_C * _P_L_O_G_I_N_R_E_C; │ │ │ │ │ +31typedef DBCURSOR * PDBCURSOR; │ │ │ │ │ +32 │ │ │ │ │ +33typedef int * LPINT; │ │ │ │ │ +34typedef char * LPSTR; │ │ │ │ │ +35#if !defined(PHP_MSSQL_H) || !defined(PHP_MSSQL_API) │ │ │ │ │ +36typedef BYTE * LPBYTE; │ │ │ │ │ +37#endif │ │ │ │ │ +38typedef void * LPVOID; │ │ │ │ │ +39typedef const char * LPCSTR; │ │ │ │ │ +40 │ │ │ │ │ +41typedef const LPINT LPCINT; │ │ │ │ │ +42#ifndef _LPCBYTE_DEFINED │ │ │ │ │ +43#define _LPCBYTE_DEFINED │ │ │ │ │ +44typedef const BYTE * LPCBYTE; │ │ │ │ │ +45#endif │ │ │ │ │ +46typedef USHORT * LPUSHORT; │ │ │ │ │ +47typedef const LPUSHORT LPCUSHORT; │ │ │ │ │ +48typedef DBINT * LPDBINT; │ │ │ │ │ +49typedef const LPDBINT LPCDBINT; │ │ │ │ │ +50typedef DBBINARY * LPDBBINARY; │ │ │ │ │ +51typedef const LPDBBINARY LPCDBBINARY; │ │ │ │ │ +52typedef _D_B_D_A_T_E_R_E_C * _L_P_D_B_D_A_T_E_R_E_C; │ │ │ │ │ +53typedef const _L_P_D_B_D_A_T_E_R_E_C _L_P_C_D_B_D_A_T_E_R_E_C; │ │ │ │ │ +54typedef _D_B_D_A_T_E_T_I_M_E * _L_P_D_B_D_A_T_E_T_I_M_E; │ │ │ │ │ +55typedef const _L_P_D_B_D_A_T_E_T_I_M_E _L_P_C_D_B_D_A_T_E_T_I_M_E; │ │ │ │ │ +56 │ │ │ │ │ +57#endif │ │ │ │ │ +_L_O_G_I_N_R_E_C │ │ │ │ │ +DDeeffiinniittiioonn bsqlodbc.c:100 │ │ │ │ │ +_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s │ │ │ │ │ +DDeeffiinniittiioonn dblib.h:123 │ │ │ │ │ +_D_B_D_A_T_E_T_I_M_E │ │ │ │ │ +DDeeffiinniittiioonn sybdb.h:295 │ │ │ │ │ +_t_d_s___s_y_b_a_s_e___d_b_d_a_t_e_r_e_c │ │ │ │ │ +DDeeffiinniittiioonn sybdb.h:474 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00488_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/cspublic.h Source File │ │ │ │ +FreeTDS API: include/odbcss.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
cspublic.h
│ │ │ │ +
odbcss.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 2008 Frediano Ziglio
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,797 +96,381 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _cspublic_h_
│ │ │ │ -
21#define _cspublic_h_
│ │ │ │ +
20#ifndef _odbcss_h_
│ │ │ │ +
21#define _odbcss_h_
│ │ │ │
22
│ │ │ │ -
23#include <cstypes.h>
│ │ │ │ -
24
│ │ │ │ -
25#undef TDS_STATIC_CAST
│ │ │ │ -
26#ifdef __cplusplus
│ │ │ │ -
27#define TDS_STATIC_CAST(type, a) static_cast<type>(a)
│ │ │ │ -
28extern "C"
│ │ │ │ -
29{
│ │ │ │ -
30#if 0
│ │ │ │ -
31}
│ │ │ │ -
32#endif
│ │ │ │ -
33#else
│ │ │ │ -
34#define TDS_STATIC_CAST(type, a) ((type)(a))
│ │ │ │ -
35#endif
│ │ │ │ -
36
│ │ │ │ -
37#define CS_PUBLIC
│ │ │ │ -
38#define CS_STATIC static
│ │ │ │ -
39
│ │ │ │ -
40#define CS_SUCCEED 1
│ │ │ │ -
41#define CS_FAIL 0
│ │ │ │ -
42#define CS_MEM_ERROR -1
│ │ │ │ -
43#define CS_PENDING -2
│ │ │ │ -
44#define CS_QUIET -3
│ │ │ │ -
45#define CS_BUSY -4
│ │ │ │ -
46#define CS_INTERRUPT -5
│ │ │ │ -
47#define CS_BLK_HAS_TEXT -6
│ │ │ │ -
48#define CS_CONTINUE -7
│ │ │ │ -
49#define CS_FATAL -8
│ │ │ │ -
50#define CS_RET_HAFAILOVER -9
│ │ │ │ -
51#define CS_UNSUPPORTED -10
│ │ │ │ -
52
│ │ │ │ -
53#define CS_CANCELED -202
│ │ │ │ -
54#define CS_ROW_FAIL -203
│ │ │ │ -
55#define CS_END_DATA -204
│ │ │ │ -
56#define CS_END_RESULTS -205
│ │ │ │ -
57#define CS_END_ITEM -206
│ │ │ │ -
58#define CS_NOMSG -207
│ │ │ │ -
59#define CS_TIMED_OUT -208
│ │ │ │ +
23#ifdef TDSODBC_BCP
│ │ │ │ +
24#include <sql.h>
│ │ │ │ +
25#endif
│ │ │ │ +
26
│ │ │ │ +
27#ifdef __cplusplus
│ │ │ │ +
28extern "C" {
│ │ │ │ +
29#endif
│ │ │ │ +
30
│ │ │ │ +
31#define SQL_DIAG_SS_MSGSTATE (-1150)
│ │ │ │ +
32#define SQL_DIAG_SS_LINE (-1154)
│ │ │ │ +
33
│ │ │ │ +
34#define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT 1233
│ │ │ │ +
35#define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT 1234
│ │ │ │ +
36#define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS 1235
│ │ │ │ +
37
│ │ │ │ +
38#ifndef SQL_SS_LENGTH_UNLIMITED
│ │ │ │ +
39#define SQL_SS_LENGTH_UNLIMITED 0
│ │ │ │ +
40#endif
│ │ │ │ +
41
│ │ │ │ +
42#ifndef SQL_COPT_SS_BASE
│ │ │ │ +
43#define SQL_COPT_SS_BASE 1200
│ │ │ │ +
44#endif
│ │ │ │ +
45
│ │ │ │ +
46#ifndef SQL_COPT_SS_MARS_ENABLED
│ │ │ │ +
47#define SQL_COPT_SS_MARS_ENABLED (SQL_COPT_SS_BASE+24)
│ │ │ │ +
48#endif
│ │ │ │ +
49
│ │ │ │ +
50#ifndef SQL_COPT_SS_OLDPWD
│ │ │ │ +
51#define SQL_COPT_SS_OLDPWD (SQL_COPT_SS_BASE+26)
│ │ │ │ +
52#endif
│ │ │ │ +
53
│ │ │ │ +
54#define SQL_INFO_FREETDS_TDS_VERSION 1300
│ │ │ │ +
55#define SQL_INFO_FREETDS_SOCKET 1301
│ │ │ │ +
56
│ │ │ │ +
57#ifndef SQL_MARS_ENABLED_NO
│ │ │ │ +
58#define SQL_MARS_ENABLED_NO 0
│ │ │ │ +
59#endif
│ │ │ │
60
│ │ │ │ -
61#define CS_SIZEOF(x) sizeof(x)
│ │ │ │ -
62
│ │ │ │ -
63#define CS_LAYER(x) (((x) >> 24) & 0xFF)
│ │ │ │ -
64#define CS_ORIGIN(x) (((x) >> 16) & 0xFF)
│ │ │ │ -
65#define CS_SEVERITY(x) (((x) >> 8) & 0xFF)
│ │ │ │ -
66#define CS_NUMBER(x) ((x) & 0xFF)
│ │ │ │ -
67
│ │ │ │ -
68/* forward declarations */
│ │ │ │ -
69typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (CS_CONTEXT *, CS_CLIENTMSG *);
│ │ │ │ -
70typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_CLIENTMSG *);
│ │ │ │ -
71typedef CS_RETCODE(*CS_SERVERMSG_FUNC) (CS_CONTEXT *, CS_CONNECTION *, CS_SERVERMSG *);
│ │ │ │ +
61#ifndef SQL_MARS_ENABLED_YES
│ │ │ │ +
62#define SQL_MARS_ENABLED_YES 1
│ │ │ │ +
63#endif
│ │ │ │ +
64
│ │ │ │ +
65#ifndef SQL_SS_VARIANT
│ │ │ │ +
66#define SQL_SS_VARIANT (-150)
│ │ │ │ +
67#endif
│ │ │ │ +
68
│ │ │ │ +
69#ifndef SQL_SS_UDT
│ │ │ │ +
70#define SQL_SS_UDT (-151)
│ │ │ │ +
71#endif
│ │ │ │
72
│ │ │ │ -
73
│ │ │ │ -
74#define CS_IODATA TDS_STATIC_CAST(CS_INT, 1600)
│ │ │ │ -
75#define CS_SRC_VALUE -2562
│ │ │ │ +
73#ifndef SQL_SS_XML
│ │ │ │ +
74#define SQL_SS_XML (-152)
│ │ │ │ +
75#endif
│ │ │ │
76
│ │ │ │ -
77
│ │ │ │ -
78
│ │ │ │ -
79/* status bits for CS_SERVERMSG */
│ │ │ │ -
80#define CS_HASEED 0x01
│ │ │ │ -
81
│ │ │ │ -
82typedef struct _cs_blkdesc CS_BLKDESC;
│ │ │ │ -
83
│ │ │ │ -
84/* CS_CAP_REQUEST values */
│ │ │ │ -
85#define CS_REQ_LANG 1
│ │ │ │ -
86#define CS_REQ_RPC 2
│ │ │ │ -
87#define CS_REQ_NOTIF 3
│ │ │ │ -
88#define CS_REQ_MSTMT 4
│ │ │ │ -
89#define CS_REQ_BCP 5
│ │ │ │ -
90#define CS_REQ_CURSOR 6
│ │ │ │ -
91#define CS_REQ_DYN 7
│ │ │ │ -
92#define CS_REQ_MSG 8
│ │ │ │ -
93#define CS_REQ_PARAM 9
│ │ │ │ -
94#define CS_DATA_INT1 10
│ │ │ │ -
95#define CS_DATA_INT2 11
│ │ │ │ -
96#define CS_DATA_INT4 12
│ │ │ │ -
97#define CS_DATA_BIT 13
│ │ │ │ -
98#define CS_DATA_CHAR 14
│ │ │ │ -
99#define CS_DATA_VCHAR 15
│ │ │ │ -
100#define CS_DATA_BIN 16
│ │ │ │ -
101#define CS_DATA_VBIN 17
│ │ │ │ -
102#define CS_DATA_MNY8 18
│ │ │ │ -
103#define CS_DATA_MNY4 19
│ │ │ │ -
104#define CS_DATA_DATE8 20
│ │ │ │ -
105#define CS_DATA_DATE4 21
│ │ │ │ -
106#define CS_DATA_FLT4 22
│ │ │ │ -
107#define CS_DATA_FLT8 23
│ │ │ │ -
108#define CS_DATA_NUM 24
│ │ │ │ -
109#define CS_DATA_TEXT 25
│ │ │ │ -
110#define CS_DATA_IMAGE 26
│ │ │ │ -
111#define CS_DATA_DEC 27
│ │ │ │ -
112#define CS_DATA_LCHAR 28
│ │ │ │ -
113#define CS_DATA_LBIN 29
│ │ │ │ -
114#define CS_DATA_INTN 30
│ │ │ │ -
115#define CS_DATA_DATETIMEN 31
│ │ │ │ -
116#define CS_DATA_MONEYN 32
│ │ │ │ -
117#define CS_CSR_PREV 33
│ │ │ │ -
118#define CS_CSR_FIRST 34
│ │ │ │ -
119#define CS_CSR_LAST 35
│ │ │ │ -
120#define CS_CSR_ABS 36
│ │ │ │ -
121#define CS_CSR_REL 37
│ │ │ │ -
122#define CS_CSR_MULTI 38
│ │ │ │ -
123#define CS_CON_OOB 39
│ │ │ │ -
124#define CS_CON_INBAND 40
│ │ │ │ -
125#define CS_CON_LOGICAL 41
│ │ │ │ -
126#define CS_PROTO_TEXT 42
│ │ │ │ -
127#define CS_PROTO_BULK 43
│ │ │ │ -
128#define CS_REQ_URGNOTIF 44
│ │ │ │ -
129#define CS_DATA_SENSITIVITY 45
│ │ │ │ -
130#define CS_DATA_BOUNDARY 46
│ │ │ │ -
131#define CS_PROTO_DYNAMIC 47
│ │ │ │ -
132#define CS_PROTO_DYNPROC 48
│ │ │ │ -
133#define CS_DATA_FLTN 49
│ │ │ │ -
134#define CS_DATA_BITN 50
│ │ │ │ -
135#define CS_OPTION_GET 51
│ │ │ │ -
136#define CS_DATA_INT8 52
│ │ │ │ -
137#define CS_DATA_VOID 53
│ │ │ │ -
138
│ │ │ │ -
139/* CS_CAP_RESPONSE values */
│ │ │ │ -
140#define CS_RES_NOMSG 1
│ │ │ │ -
141#define CS_RES_NOEED 2
│ │ │ │ -
142#define CS_RES_NOPARAM 3
│ │ │ │ -
143#define CS_DATA_NOINT1 4
│ │ │ │ -
144#define CS_DATA_NOINT2 5
│ │ │ │ -
145#define CS_DATA_NOINT4 6
│ │ │ │ -
146#define CS_DATA_NOBIT 7
│ │ │ │ -
147#define CS_DATA_NOCHAR 8
│ │ │ │ -
148#define CS_DATA_NOVCHAR 9
│ │ │ │ -
149#define CS_DATA_NOBIN 10
│ │ │ │ -
150#define CS_DATA_NOVBIN 11
│ │ │ │ -
151#define CS_DATA_NOMNY8 12
│ │ │ │ -
152#define CS_DATA_NOMNY4 13
│ │ │ │ -
153#define CS_DATA_NODATE8 14
│ │ │ │ -
154#define CS_DATA_NODATE4 15
│ │ │ │ -
155#define CS_DATA_NOFLT4 16
│ │ │ │ -
156#define CS_DATA_NOFLT8 17
│ │ │ │ -
157#define CS_DATA_NONUM 18
│ │ │ │ -
158#define CS_DATA_NOTEXT 19
│ │ │ │ -
159#define CS_DATA_NOIMAGE 20
│ │ │ │ -
160#define CS_DATA_NODEC 21
│ │ │ │ -
161#define CS_DATA_NOLCHAR 22
│ │ │ │ -
162#define CS_DATA_NOLBIN 23
│ │ │ │ -
163#define CS_DATA_NOINTN 24
│ │ │ │ -
164#define CS_DATA_NODATETIMEN 25
│ │ │ │ -
165#define CS_DATA_NOMONEYN 26
│ │ │ │ -
166#define CS_CON_NOOOB 27
│ │ │ │ -
167#define CS_CON_NOINBAND 28
│ │ │ │ -
168#define CS_PROTO_NOTEXT 29
│ │ │ │ -
169#define CS_PROTO_NOBULK 30
│ │ │ │ -
170#define CS_DATA_NOSENSITIVITY 31
│ │ │ │ -
171#define CS_DATA_NOBOUNDARY 32
│ │ │ │ -
172#define CS_RES_NOTDSDEBUG 33
│ │ │ │ -
173#define CS_RES_NOSTRIPBLANKS 34
│ │ │ │ -
174#define CS_DATA_NOINT8 35
│ │ │ │ -
175
│ │ │ │ -
176/* Properties */
│ │ │ │ -
177enum
│ │ │ │ -
178{
│ │ │ │ -
179/*
│ │ │ │ -
180 * These defines looks weird but programs can test support for defines,
│ │ │ │ -
181 * compiler can check enum and there are no define side effecs
│ │ │ │ -
182 */
│ │ │ │ -
183 CS_USERNAME = 9100,
│ │ │ │ -
184#define CS_USERNAME CS_USERNAME
│ │ │ │ -
185 CS_PASSWORD = 9101,
│ │ │ │ -
186#define CS_PASSWORD CS_PASSWORD
│ │ │ │ -
187 CS_APPNAME = 9102,
│ │ │ │ -
188#define CS_APPNAME CS_APPNAME
│ │ │ │ -
189 CS_HOSTNAME = 9103,
│ │ │ │ -
190#define CS_HOSTNAME CS_HOSTNAME
│ │ │ │ -
191 CS_LOGIN_STATUS = 9104,
│ │ │ │ -
192#define CS_LOGIN_STATUS CS_LOGIN_STATUS
│ │ │ │ -
193 CS_TDS_VERSION = 9105,
│ │ │ │ -
194#define CS_TDS_VERSION CS_TDS_VERSION
│ │ │ │ -
195 CS_CHARSETCNV = 9106,
│ │ │ │ -
196#define CS_CHARSETCNV CS_CHARSETCNV
│ │ │ │ -
197 CS_PACKETSIZE = 9107,
│ │ │ │ -
198#define CS_PACKETSIZE CS_PACKETSIZE
│ │ │ │ -
199 CS_USERDATA = 9108,
│ │ │ │ -
200#define CS_USERDATA CS_USERDATA
│ │ │ │ -
201 CS_NETIO = 9110,
│ │ │ │ -
202#define CS_NETIO CS_NETIO
│ │ │ │ -
203 CS_TEXTLIMIT = 9112,
│ │ │ │ -
204#define CS_TEXTLIMIT CS_TEXTLIMIT
│ │ │ │ -
205 CS_HIDDEN_KEYS = 9113,
│ │ │ │ -
206#define CS_HIDDEN_KEYS CS_HIDDEN_KEYS
│ │ │ │ -
207 CS_VERSION = 9114,
│ │ │ │ -
208#define CS_VERSION CS_VERSION
│ │ │ │ -
209 CS_IFILE = 9115,
│ │ │ │ -
210#define CS_IFILE CS_IFILE
│ │ │ │ -
211 CS_LOGIN_TIMEOUT = 9116,
│ │ │ │ -
212#define CS_LOGIN_TIMEOUT CS_LOGIN_TIMEOUT
│ │ │ │ -
213 CS_TIMEOUT = 9117,
│ │ │ │ -
214#define CS_TIMEOUT CS_TIMEOUT
│ │ │ │ -
215 CS_MAX_CONNECT = 9118,
│ │ │ │ -
216#define CS_MAX_CONNECT CS_MAX_CONNECT
│ │ │ │ -
217 CS_EXPOSE_FMTS = 9120,
│ │ │ │ -
218#define CS_EXPOSE_FMTS CS_EXPOSE_FMTS
│ │ │ │ -
219 CS_EXTRA_INF = 9121,
│ │ │ │ -
220#define CS_EXTRA_INF CS_EXTRA_INF
│ │ │ │ -
221 CS_ANSI_BINDS = 9123,
│ │ │ │ -
222#define CS_ANSI_BINDS CS_ANSI_BINDS
│ │ │ │ -
223 CS_BULK_LOGIN = 9124,
│ │ │ │ -
224#define CS_BULK_LOGIN CS_BULK_LOGIN
│ │ │ │ -
225 CS_LOC_PROP = 9125,
│ │ │ │ -
226#define CS_LOC_PROP CS_LOC_PROP
│ │ │ │ -
227 CS_PARENT_HANDLE = 9130,
│ │ │ │ -
228#define CS_PARENT_HANDLE CS_PARENT_HANDLE
│ │ │ │ -
229 CS_EED_CMD = 9131,
│ │ │ │ -
230#define CS_EED_CMD CS_EED_CMD
│ │ │ │ -
231 CS_DIAG_TIMEOUT = 9132,
│ │ │ │ -
232#define CS_DIAG_TIMEOUT CS_DIAG_TIMEOUT
│ │ │ │ -
233 CS_DISABLE_POLL = 9133,
│ │ │ │ -
234#define CS_DISABLE_POLL CS_DISABLE_POLL
│ │ │ │ -
235 CS_SEC_ENCRYPTION = 9135,
│ │ │ │ -
236#define CS_SEC_ENCRYPTION CS_SEC_ENCRYPTION
│ │ │ │ -
237 CS_SEC_CHALLENGE = 9136,
│ │ │ │ -
238#define CS_SEC_CHALLENGE CS_SEC_CHALLENGE
│ │ │ │ -
239 CS_SEC_NEGOTIATE = 9137,
│ │ │ │ -
240#define CS_SEC_NEGOTIATE CS_SEC_NEGOTIATE
│ │ │ │ -
241 CS_CON_STATUS = 9143,
│ │ │ │ -
242#define CS_CON_STATUS CS_CON_STATUS
│ │ │ │ -
243 CS_VER_STRING = 9144,
│ │ │ │ -
244#define CS_VER_STRING CS_VER_STRING
│ │ │ │ -
245 CS_SERVERNAME = 9146,
│ │ │ │ -
246#define CS_SERVERNAME CS_SERVERNAME
│ │ │ │ -
247 CS_SEC_APPDEFINED = 9149,
│ │ │ │ -
248#define CS_SEC_APPDEFINED CS_SEC_APPDEFINED
│ │ │ │ -
249 CS_STICKY_BINDS = 9151,
│ │ │ │ -
250#define CS_STICKY_BINDS CS_STICKY_BINDS
│ │ │ │ -
251 CS_SEC_NETWORKAUTH = 9175,
│ │ │ │ -
252#define CS_SEC_NETWORKAUTH CS_SEC_NETWORKAUTH
│ │ │ │ -
253 CS_SEC_DELEGATION = 9176,
│ │ │ │ -
254#define CS_SEC_DELEGATION CS_SEC_DELEGATION
│ │ │ │ -
255 CS_SEC_MUTUALAUTH = 9177,
│ │ │ │ -
256#define CS_SEC_MUTUALAUTH CS_SEC_MUTUALAUTH
│ │ │ │ -
257 CS_SEC_SERVERPRINCIPAL = 9188,
│ │ │ │ -
258#define CS_SEC_SERVERPRINCIPAL CS_SEC_SERVERPRINCIPAL
│ │ │ │ -
259 CS_SERVERADDR = 9206,
│ │ │ │ -
260#define CS_SERVERADDR CS_SERVERADDR
│ │ │ │ -
261 CS_PORT = 9300,
│ │ │ │ -
262#define CS_PORT CS_PORT
│ │ │ │ -
263 CS_CLIENTCHARSET = 9301,
│ │ │ │ -
264#define CS_CLIENTCHARSET CS_CLIENTCHARSET
│ │ │ │ -
265 CS_DATABASE = 9302
│ │ │ │ -
266#define CS_DATABASE CS_DATABASE
│ │ │ │ -
267};
│ │ │ │ -
268
│ │ │ │ -
269/* Arbitrary precision math operators */
│ │ │ │ -
270enum
│ │ │ │ -
271{
│ │ │ │ -
272 CS_ADD = 1,
│ │ │ │ -
273 CS_SUB,
│ │ │ │ -
274 CS_MULT,
│ │ │ │ -
275 CS_DIV
│ │ │ │ -
276};
│ │ │ │ -
277
│ │ │ │ -
278enum
│ │ │ │ -
279{
│ │ │ │ -
280#define CS_TDS_AUTO CS_TDS_AUTO
│ │ │ │ -
281 CS_TDS_AUTO = 0,
│ │ │ │ -
282 CS_TDS_40 = 7360,
│ │ │ │ -
283 CS_TDS_42,
│ │ │ │ -
284 CS_TDS_46,
│ │ │ │ -
285 CS_TDS_495,
│ │ │ │ -
286 CS_TDS_50,
│ │ │ │ -
287 CS_TDS_70,
│ │ │ │ -
288 CS_TDS_71,
│ │ │ │ -
289#define CS_TDS_71 CS_TDS_71
│ │ │ │ -
290 CS_TDS_72,
│ │ │ │ -
291#define CS_TDS_72 CS_TDS_72
│ │ │ │ -
292 CS_TDS_73,
│ │ │ │ -
293#define CS_TDS_73 CS_TDS_73
│ │ │ │ -
294 CS_TDS_74,
│ │ │ │ -
295#define CS_TDS_74 CS_TDS_74
│ │ │ │ -
296};
│ │ │ │ -
297
│ │ │ │ -
298/* bit mask values used by CS_DATAFMT.status */
│ │ │ │ -
299#define CS_HIDDEN (1 << 0)
│ │ │ │ -
300#define CS_KEY (1 << 1)
│ │ │ │ -
301#define CS_VERSION_KEY (1 << 2)
│ │ │ │ -
302#define CS_NODATA (1 << 3)
│ │ │ │ -
303#define CS_UPDATABLE (1 << 4)
│ │ │ │ -
304#define CS_CANBENULL (1 << 5)
│ │ │ │ -
305#define CS_DESCIN (1 << 6)
│ │ │ │ -
306#define CS_DESCOUT (1 << 7)
│ │ │ │ -
307#define CS_INPUTVALUE (1 << 8)
│ │ │ │ -
308#define CS_UPDATECOL (1 << 9)
│ │ │ │ -
309#define CS_RETURN (1 << 10)
│ │ │ │ -
310#define CS_TIMESTAMP (1 << 13)
│ │ │ │ -
311#define CS_NODEFAULT (1 << 14)
│ │ │ │ -
312#define CS_IDENTITY (1 << 15)
│ │ │ │ -
313
│ │ │ │ -
314/*
│ │ │ │ -
315 * DBD::Sybase compares indicator to CS_NULLDATA so this is -1
│ │ │ │ -
316 * (the documentation states -1)
│ │ │ │ -
317 */
│ │ │ │ -
318#define CS_GOODDATA 0
│ │ │ │ -
319#define CS_NULLDATA (-1)
│ │ │ │ -
320
│ │ │ │ -
321/* CS_CON_STATUS read-only property bit mask values */
│ │ │ │ -
322#define CS_CONSTAT_CONNECTED 0x01
│ │ │ │ -
323#define CS_CONSTAT_DEAD 0x02
│ │ │ │ -
324
│ │ │ │ -
325/*
│ │ │ │ -
326 * Code added for CURSOR support
│ │ │ │ -
327 * types accepted by ct_cursor
│ │ │ │ -
328 */
│ │ │ │ -
329#define CS_CURSOR_DECLARE 700
│ │ │ │ -
330#define CS_CURSOR_OPEN 701
│ │ │ │ -
331#define CS_CURSOR_ROWS 703
│ │ │ │ -
332#define CS_CURSOR_UPDATE 704
│ │ │ │ -
333#define CS_CURSOR_DELETE 705
│ │ │ │ -
334#define CS_CURSOR_CLOSE 706
│ │ │ │ -
335#define CS_CURSOR_DEALLOC 707
│ │ │ │ -
336#define CS_CURSOR_OPTION 725
│ │ │ │ -
337
│ │ │ │ -
338#define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1)
│ │ │ │ -
339#define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2)
│ │ │ │ -
340#define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8)
│ │ │ │ -
341#define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40)
│ │ │ │ -
342
│ │ │ │ -
343
│ │ │ │ -
344#define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0)
│ │ │ │ -
345#define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1)
│ │ │ │ -
346#define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2)
│ │ │ │ -
347#define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4)
│ │ │ │ -
348#define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8)
│ │ │ │ -
349#define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10)
│ │ │ │ -
350#define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20)
│ │ │ │ -
351#define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40)
│ │ │ │ -
352
│ │ │ │ -
353#define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126)
│ │ │ │ -
354#define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127)
│ │ │ │ -
355#define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128)
│ │ │ │ -
356#define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129)
│ │ │ │ -
357
│ │ │ │ -
358/* options accepted by ct_options() */
│ │ │ │ -
359#define CS_OPT_DATEFIRST 5001
│ │ │ │ -
360#define CS_OPT_TEXTSIZE 5002
│ │ │ │ -
361#define CS_OPT_STATS_TIME 5003
│ │ │ │ -
362#define CS_OPT_STATS_IO 5004
│ │ │ │ -
363#define CS_OPT_ROWCOUNT 5005
│ │ │ │ -
364#define CS_OPT_DATEFORMAT 5007
│ │ │ │ -
365#define CS_OPT_ISOLATION 5008
│ │ │ │ -
366#define CS_OPT_AUTHON 5009
│ │ │ │ -
367#define CS_OPT_SHOWPLAN 5013
│ │ │ │ -
368#define CS_OPT_NOEXEC 5014
│ │ │ │ -
369#define CS_OPT_ARITHIGNORE 5015
│ │ │ │ -
370#define CS_OPT_TRUNCIGNORE 5016
│ │ │ │ -
371#define CS_OPT_ARITHABORT 5017
│ │ │ │ -
372#define CS_OPT_PARSEONLY 5018
│ │ │ │ -
373#define CS_OPT_GETDATA 5020
│ │ │ │ -
374#define CS_OPT_NOCOUNT 5021
│ │ │ │ -
375#define CS_OPT_FORCEPLAN 5023
│ │ │ │ -
376#define CS_OPT_FORMATONLY 5024
│ │ │ │ -
377#define CS_OPT_CHAINXACTS 5025
│ │ │ │ -
378#define CS_OPT_CURCLOSEONXACT 5026
│ │ │ │ -
379#define CS_OPT_FIPSFLAG 5027
│ │ │ │ -
380#define CS_OPT_RESTREES 5028
│ │ │ │ -
381#define CS_OPT_IDENTITYON 5029
│ │ │ │ -
382#define CS_OPT_CURREAD 5030
│ │ │ │ -
383#define CS_OPT_CURWRITE 5031
│ │ │ │ -
384#define CS_OPT_IDENTITYOFF 5032
│ │ │ │ -
385#define CS_OPT_AUTHOFF 5033
│ │ │ │ -
386#define CS_OPT_ANSINULL 5034
│ │ │ │ -
387#define CS_OPT_QUOTED_IDENT 5035
│ │ │ │ -
388#define CS_OPT_ANSIPERM 5036
│ │ │ │ -
389#define CS_OPT_STR_RTRUNC 5037
│ │ │ │ -
390
│ │ │ │ -
391/* options accepted by ct_command() */
│ │ │ │ -
392enum ct_command_options
│ │ │ │ -
393{
│ │ │ │ -
394 CS_MORE = 16,
│ │ │ │ -
395 CS_END = 32,
│ │ │ │ -
396 CS_RECOMPILE = 188,
│ │ │ │ -
397 CS_NO_RECOMPILE,
│ │ │ │ -
398 CS_BULK_INIT,
│ │ │ │ -
399 CS_BULK_CONT,
│ │ │ │ -
400 CS_BULK_DATA,
│ │ │ │ -
401 CS_COLUMN_DATA
│ │ │ │ -
402};
│ │ │ │ -
403
│ │ │ │ -
404
│ │ │ │ -
405/*
│ │ │ │ -
406 * bind formats, should be mapped to TDS types
│ │ │ │ -
407 * can be a combination of bit
│ │ │ │ -
408 */
│ │ │ │ -
409enum
│ │ │ │ -
410{
│ │ │ │ -
411 CS_FMT_UNUSED = 0,
│ │ │ │ -
412#define CS_FMT_UNUSED CS_FMT_UNUSED
│ │ │ │ -
413 CS_FMT_NULLTERM = 1,
│ │ │ │ -
414#define CS_FMT_NULLTERM CS_FMT_NULLTERM
│ │ │ │ -
415 CS_FMT_PADNULL = 2,
│ │ │ │ -
416#define CS_FMT_PADBLANK CS_FMT_PADBLANK
│ │ │ │ -
417 CS_FMT_PADBLANK = 4,
│ │ │ │ -
418#define CS_FMT_PADNULL CS_FMT_PADNULL
│ │ │ │ -
419 CS_FMT_JUSTIFY_RT = 8
│ │ │ │ -
420#define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT
│ │ │ │ -
421};
│ │ │ │ -
422
│ │ │ │ -
423/* callbacks */
│ │ │ │ -
424#define CS_COMPLETION_CB 1
│ │ │ │ -
425#define CS_SERVERMSG_CB 2
│ │ │ │ -
426#define CS_CLIENTMSG_CB 3
│ │ │ │ -
427#define CS_NOTIF_CB 4
│ │ │ │ -
428#define CS_ENCRYPT_CB 5
│ │ │ │ -
429#define CS_CHALLENGE_CB 6
│ │ │ │ -
430#define CS_DS_LOOKUP_CB 7
│ │ │ │ -
431#define CS_SECSESSION_CB 8
│ │ │ │ -
432#define CS_SIGNAL_CB 100
│ │ │ │ -
433#define CS_MESSAGE_CB 9119
│ │ │ │ -
434
│ │ │ │ -
435/* string types */
│ │ │ │ -
436#define CS_NULLTERM -9
│ │ │ │ -
437#define CS_WILDCARD -99
│ │ │ │ -
438#define CS_NO_LIMIT -9999
│ │ │ │ -
439#define CS_UNUSED -99999
│ │ │ │ -
440
│ │ │ │ -
441/* other */
│ │ │ │ -
442#define CS_GET 33
│ │ │ │ -
443#define CS_SET 34
│ │ │ │ -
444#define CS_CLEAR 35
│ │ │ │ -
445#define CS_INIT 36
│ │ │ │ -
446#define CS_STATUS 37
│ │ │ │ -
447#define CS_MSGLIMIT 38
│ │ │ │ -
448#define CS_SUPPORTED 40
│ │ │ │ -
449
│ │ │ │ -
450#define CS_CMD_DONE 4046
│ │ │ │ -
451#define CS_CMD_SUCCEED 4047
│ │ │ │ -
452#define CS_CMD_FAIL 4048
│ │ │ │ -
453
│ │ │ │ -
454/* commands */
│ │ │ │ -
455#define CS_LANG_CMD 148
│ │ │ │ -
456#define CS_RPC_CMD 149
│ │ │ │ -
457#define CS_SEND_DATA_CMD 151
│ │ │ │ -
458#define CS_SEND_BULK_CMD 153
│ │ │ │ -
459
│ │ │ │ -
460#define CS_VERSION_100 112
│ │ │ │ -
461#define CS_VERSION_110 1100
│ │ │ │ -
462#define CS_VERSION_120 1100
│ │ │ │ -
463#define CS_VERSION_125 12500
│ │ │ │ -
464#define CS_VERSION_150 15000
│ │ │ │ -
465
│ │ │ │ -
466#define BLK_VERSION_100 CS_VERSION_100
│ │ │ │ -
467#define BLK_VERSION_110 CS_VERSION_110
│ │ │ │ -
468#define BLK_VERSION_120 CS_VERSION_120
│ │ │ │ -
469#define BLK_VERSION_125 CS_VERSION_125
│ │ │ │ -
470#define BLK_VERSION_150 CS_VERSION_150
│ │ │ │ -
471
│ │ │ │ -
472#define CS_FORCE_EXIT 300
│ │ │ │ -
473#define CS_FORCE_CLOSE 301
│ │ │ │ -
474
│ │ │ │ -
475#define CS_SYNC_IO 8111
│ │ │ │ -
476#define CS_ASYNC_IO 8112
│ │ │ │ -
477#define CS_DEFER_IO 8113
│ │ │ │ -
478
│ │ │ │ -
479#define CS_CANCEL_CURRENT 6000
│ │ │ │ -
480#define CS_CANCEL_ALL 6001
│ │ │ │ -
481#define CS_CANCEL_ATTN 6002
│ │ │ │ -
482
│ │ │ │ -
483#define CS_ROW_COUNT 800
│ │ │ │ -
484#define CS_CMD_NUMBER 801
│ │ │ │ -
485#define CS_NUM_COMPUTES 802
│ │ │ │ -
486#define CS_NUMDATA 803
│ │ │ │ -
487#define CS_NUMORDERCOLS 805
│ │ │ │ -
488#define CS_MSGTYPE 806
│ │ │ │ -
489#define CS_BROWSE_INFO 807
│ │ │ │ -
490#define CS_TRANS_STATE 808
│ │ │ │ -
491
│ │ │ │ -
492#define CS_TRAN_UNDEFINED 0
│ │ │ │ -
493#define CS_TRAN_IN_PROGRESS 1
│ │ │ │ -
494#define CS_TRAN_COMPLETED 2
│ │ │ │ -
495#define CS_TRAN_FAIL 3
│ │ │ │ -
496#define CS_TRAN_STMT_FAIL 4
│ │ │ │ -
497
│ │ │ │ -
498#define CS_COMP_OP 5350
│ │ │ │ -
499#define CS_COMP_ID 5351
│ │ │ │ -
500#define CS_COMP_COLID 5352
│ │ │ │ -
501#define CS_COMP_BYLIST 5353
│ │ │ │ -
502#define CS_BYLIST_LEN 5354
│ │ │ │ -
503
│ │ │ │ -
504#define CS_NO_COUNT -1
│ │ │ │ -
505
│ │ │ │ -
506#define CS_OP_SUM 5370
│ │ │ │ -
507#define CS_OP_AVG 5371
│ │ │ │ -
508#define CS_OP_COUNT 5372
│ │ │ │ -
509#define CS_OP_MIN 5373
│ │ │ │ -
510#define CS_OP_MAX 5374
│ │ │ │ -
511
│ │ │ │ -
512#define CS_CAP_REQUEST 1
│ │ │ │ -
513#define CS_CAP_RESPONSE 2
│ │ │ │ -
514
│ │ │ │ -
515#define CS_PREPARE 717
│ │ │ │ -
516#define CS_EXECUTE 718
│ │ │ │ -
517#define CS_DESCRIBE_INPUT 720
│ │ │ │ -
518#define CS_DESCRIBE_OUTPUT 721
│ │ │ │ -
519
│ │ │ │ -
520#define CS_DEALLOC 711
│ │ │ │ -
521
│ │ │ │ -
522#define CS_LC_ALL 7
│ │ │ │ -
523#define CS_SYB_LANG 8
│ │ │ │ -
524#define CS_SYB_CHARSET 9
│ │ │ │ -
525#define CS_SYB_SORTORDER 10
│ │ │ │ -
526#define CS_SYB_COLLATE CS_SYB_SORTORDER
│ │ │ │ -
527#define CS_SYB_LANG_CHARSET 11
│ │ │ │ -
528
│ │ │ │ -
529#define CS_BLK_IN 1
│ │ │ │ -
530#define CS_BLK_OUT 2
│ │ │ │ -
531
│ │ │ │ -
532#define CS_BLK_BATCH 1
│ │ │ │ -
533#define CS_BLK_ALL 2
│ │ │ │ -
534#define CS_BLK_CANCEL 3
│ │ │ │ -
535
│ │ │ │ -
536/* to do support these */
│ │ │ │ -
537
│ │ │ │ -
538#define CS_BLK_ARRAY_MAXLEN 0x1000
│ │ │ │ -
539#define CS_DEF_PREC 18
│ │ │ │ -
540
│ │ │ │ -
541/* Error Severities */
│ │ │ │ -
542#define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0)
│ │ │ │ -
543#define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1)
│ │ │ │ -
544#define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2)
│ │ │ │ -
545#define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3)
│ │ │ │ -
546#define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4)
│ │ │ │ -
547#define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5)
│ │ │ │ -
548#define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6)
│ │ │ │ -
549#define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7)
│ │ │ │ -
550
│ │ │ │ -
551/* result_types */
│ │ │ │ -
552#define CS_COMPUTE_RESULT 4045
│ │ │ │ -
553#define CS_CURSOR_RESULT 4041
│ │ │ │ -
554#define CS_PARAM_RESULT 4042
│ │ │ │ -
555#define CS_ROW_RESULT 4040
│ │ │ │ -
556#define CS_STATUS_RESULT 4043
│ │ │ │ -
557#define CS_COMPUTEFMT_RESULT 4050
│ │ │ │ -
558#define CS_ROWFMT_RESULT 4049
│ │ │ │ -
559#define CS_MSG_RESULT 4044
│ │ │ │ -
560#define CS_DESCRIBE_RESULT 4051
│ │ │ │ -
561
│ │ │ │ -
562/* bind types */
│ │ │ │ -
563#define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1)
│ │ │ │ -
564#define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0)
│ │ │ │ -
565#define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1)
│ │ │ │ -
566#define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2)
│ │ │ │ -
567#define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3)
│ │ │ │ -
568#define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4)
│ │ │ │ -
569#define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5)
│ │ │ │ -
570#define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6)
│ │ │ │ -
571#define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7)
│ │ │ │ -
572#define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8)
│ │ │ │ -
573#define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9)
│ │ │ │ -
574#define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10)
│ │ │ │ -
575#define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11)
│ │ │ │ -
576#define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12)
│ │ │ │ -
577#define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13)
│ │ │ │ -
578#define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14)
│ │ │ │ -
579#define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15)
│ │ │ │ -
580#define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16)
│ │ │ │ -
581#define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17)
│ │ │ │ -
582#define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18)
│ │ │ │ -
583#define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19)
│ │ │ │ -
584#define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20)
│ │ │ │ -
585#define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21)
│ │ │ │ -
586#define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22)
│ │ │ │ -
587#define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23)
│ │ │ │ -
588#define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24)
│ │ │ │ -
589#define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25)
│ │ │ │ -
590#define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26)
│ │ │ │ -
591#define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27)
│ │ │ │ -
592#define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28)
│ │ │ │ -
593#define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29)
│ │ │ │ -
594#define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30)
│ │ │ │ -
595#define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31)
│ │ │ │ -
596#define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32)
│ │ │ │ -
597#define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33)
│ │ │ │ -
598#define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34)
│ │ │ │ -
599#define CS_BIGDATETIME_TYPE TDS_STATIC_CAST(CS_INT, 35)
│ │ │ │ -
600#define CS_BIGTIME_TYPE TDS_STATIC_CAST(CS_INT, 36)
│ │ │ │ -
601#define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40)
│ │ │ │ -
602
│ │ │ │ -
603#define CS_MIN_SYBTYPE CS_CHAR_TYPE
│ │ │ │ -
604#define CS_MAX_SYBTYPE CS_UNIQUE_TYPE
│ │ │ │ -
605
│ │ │ │ -
606#define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100)
│ │ │ │ -
607/* cs_dt_info type values */
│ │ │ │ -
608enum
│ │ │ │ -
609{
│ │ │ │ -
610 CS_MONTH = 7340,
│ │ │ │ -
611#define CS_MONTH CS_MONTH
│ │ │ │ -
612 CS_SHORTMONTH,
│ │ │ │ -
613#define CS_SHORTMONTH CS_SHORTMONTH
│ │ │ │ -
614 CS_DAYNAME,
│ │ │ │ -
615#define CS_DAYNAME CS_DAYNAME
│ │ │ │ -
616 CS_DATEORDER,
│ │ │ │ -
617#define CS_DATEORDER CS_DATEORDER
│ │ │ │ -
618 CS_12HOUR,
│ │ │ │ -
619#define CS_12HOUR CS_12HOUR
│ │ │ │ -
620 CS_DT_CONVFMT
│ │ │ │ -
621#define CS_DT_CONVFMT CS_DT_CONVFMT
│ │ │ │ -
622};
│ │ │ │ -
623
│ │ │ │ -
624/* DT_CONVFMT types */
│ │ │ │ -
625enum
│ │ │ │ -
626{
│ │ │ │ -
627 CS_DATES_SHORT = 0,
│ │ │ │ -
628#define CS_DATES_SHORT CS_DATES_SHORT
│ │ │ │ -
629 CS_DATES_MDY1,
│ │ │ │ -
630#define CS_DATES_MDY1 CS_DATES_MDY1
│ │ │ │ -
631 CS_DATES_YMD1,
│ │ │ │ -
632#define CS_DATES_YMD1 CS_DATES_YMD1
│ │ │ │ -
633 CS_DATES_DMY1,
│ │ │ │ -
634#define CS_DATES_DMY1 CS_DATES_DMY1
│ │ │ │ -
635 CS_DATES_DMY2,
│ │ │ │ -
636#define CS_DATES_DMY2 CS_DATES_DMY2
│ │ │ │ -
637 CS_DATES_DMY3,
│ │ │ │ -
638#define CS_DATES_DMY3 CS_DATES_DMY3
│ │ │ │ -
639 CS_DATES_DMY4,
│ │ │ │ -
640#define CS_DATES_DMY4 CS_DATES_DMY4
│ │ │ │ -
641 CS_DATES_MDY2,
│ │ │ │ -
642#define CS_DATES_MDY2 CS_DATES_MDY2
│ │ │ │ -
643 CS_DATES_HMS,
│ │ │ │ -
644#define CS_DATES_HMS CS_DATES_HMS
│ │ │ │ -
645 CS_DATES_LONG,
│ │ │ │ -
646#define CS_DATES_LONG CS_DATES_LONG
│ │ │ │ -
647 CS_DATES_MDY3,
│ │ │ │ -
648#define CS_DATES_MDY3 CS_DATES_MDY3
│ │ │ │ -
649 CS_DATES_YMD2,
│ │ │ │ -
650#define CS_DATES_YMD2 CS_DATES_YMD2
│ │ │ │ -
651 CS_DATES_YMD3,
│ │ │ │ -
652#define CS_DATES_YMD3 CS_DATES_YMD3
│ │ │ │ -
653 CS_DATES_YDM1,
│ │ │ │ -
654#define CS_DATES_YDM1 CS_DATES_YDM1
│ │ │ │ -
655 CS_DATES_MYD1,
│ │ │ │ -
656#define CS_DATES_MYD1 CS_DATES_MYD1
│ │ │ │ -
657 CS_DATES_DYM1,
│ │ │ │ -
658#define CS_DATES_DYM1 CS_DATES_DYM1
│ │ │ │ -
659 CS_DATES_MDY1_YYYY = 101,
│ │ │ │ -
660#define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY
│ │ │ │ -
661 CS_DATES_YMD1_YYYY,
│ │ │ │ -
662#define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY
│ │ │ │ -
663 CS_DATES_DMY1_YYYY,
│ │ │ │ -
664#define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY
│ │ │ │ -
665 CS_DATES_DMY2_YYYY,
│ │ │ │ -
666#define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY
│ │ │ │ -
667 CS_DATES_DMY3_YYYY,
│ │ │ │ -
668#define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY
│ │ │ │ -
669 CS_DATES_DMY4_YYYY,
│ │ │ │ -
670#define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY
│ │ │ │ -
671 CS_DATES_MDY2_YYYY,
│ │ │ │ -
672#define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY
│ │ │ │ -
673 CS_DATES_MDY3_YYYY = 110,
│ │ │ │ -
674#define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY
│ │ │ │ -
675 CS_DATES_YMD2_YYYY,
│ │ │ │ -
676#define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY
│ │ │ │ -
677 CS_DATES_YMD3_YYYY
│ │ │ │ -
678#define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY
│ │ │ │ -
679};
│ │ │ │ -
680
│ │ │ │ -
681typedef CS_RETCODE(*CS_CONV_FUNC) (CS_CONTEXT * context, CS_DATAFMT * srcfmt, CS_VOID * src, CS_DATAFMT * detsfmt, CS_VOID * dest,
│ │ │ │ -
682 CS_INT * destlen);
│ │ │ │ -
683
│ │ │ │ -
│ │ │ │ -
684typedef struct _cs_objname
│ │ │ │ -
685{
│ │ │ │ -
686 CS_BOOL thinkexists;
│ │ │ │ -
687 CS_INT object_type;
│ │ │ │ -
688 CS_CHAR last_name[CS_MAX_NAME];
│ │ │ │ -
689 CS_INT lnlen;
│ │ │ │ -
690 CS_CHAR first_name[CS_MAX_NAME];
│ │ │ │ -
691 CS_INT fnlen;
│ │ │ │ -
692 CS_VOID *scope;
│ │ │ │ -
693 CS_INT scopelen;
│ │ │ │ -
694 CS_VOID *thread;
│ │ │ │ -
695 CS_INT threadlen;
│ │ │ │ -
696} CS_OBJNAME;
│ │ │ │ +
77#ifndef SQL_SS_TABLE
│ │ │ │ +
78#define SQL_SS_TABLE (-153)
│ │ │ │ +
79#endif
│ │ │ │ +
80
│ │ │ │ +
81#ifndef SQL_SS_TIME2
│ │ │ │ +
82#define SQL_SS_TIME2 (-154)
│ │ │ │ +
83#endif
│ │ │ │ +
84
│ │ │ │ +
85#ifndef SQL_SS_TIMESTAMPOFFSET
│ │ │ │ +
86#define SQL_SS_TIMESTAMPOFFSET (-155)
│ │ │ │ +
87#endif
│ │ │ │ +
88
│ │ │ │ +
89/*
│ │ │ │ +
90 * these types are used from conversion from client to server
│ │ │ │ +
91 */
│ │ │ │ +
92#ifndef SQL_C_SS_TIME2
│ │ │ │ +
93#define SQL_C_SS_TIME2 (0x4000)
│ │ │ │ +
94#endif
│ │ │ │ +
95
│ │ │ │ +
96#ifndef SQL_C_SS_TIMESTAMPOFFSET
│ │ │ │ +
97#define SQL_C_SS_TIMESTAMPOFFSET (0x4001)
│ │ │ │ +
98#endif
│ │ │ │ +
99
│ │ │ │ +
100#ifndef SQL_CA_SS_BASE
│ │ │ │ +
101#define SQL_CA_SS_BASE 1200
│ │ │ │ +
102#endif
│ │ │ │ +
103
│ │ │ │ +
104#ifndef SQL_CA_SS_UDT_CATALOG_NAME
│ │ │ │ +
105#define SQL_CA_SS_UDT_CATALOG_NAME (SQL_CA_SS_BASE+18)
│ │ │ │ +
106#endif
│ │ │ │ +
107
│ │ │ │ +
108#ifndef SQL_CA_SS_UDT_SCHEMA_NAME
│ │ │ │ +
109#define SQL_CA_SS_UDT_SCHEMA_NAME (SQL_CA_SS_BASE+19)
│ │ │ │ +
110#endif
│ │ │ │ +
111
│ │ │ │ +
112#ifndef SQL_CA_SS_UDT_TYPE_NAME
│ │ │ │ +
113#define SQL_CA_SS_UDT_TYPE_NAME (SQL_CA_SS_BASE+20)
│ │ │ │ +
114#endif
│ │ │ │ +
115
│ │ │ │ +
116#ifndef SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME
│ │ │ │ +
117#define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME (SQL_CA_SS_BASE+21)
│ │ │ │ +
118#endif
│ │ │ │ +
119
│ │ │ │ +
120#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME
│ │ │ │ +
121#define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22)
│ │ │ │ +
122#endif
│ │ │ │ +
123
│ │ │ │ +
124#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME
│ │ │ │ +
125#define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME (SQL_CA_SS_BASE+23)
│ │ │ │ +
126#endif
│ │ │ │ +
127
│ │ │ │ +
128#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_NAME
│ │ │ │ +
129#define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME (SQL_CA_SS_BASE+24)
│ │ │ │ +
130#endif
│ │ │ │ +
131
│ │ │ │ +
│ │ │ │ +
132typedef struct tagSS_TIME2_STRUCT {
│ │ │ │ +
133 SQLUSMALLINT hour;
│ │ │ │ +
134 SQLUSMALLINT minute;
│ │ │ │ +
135 SQLUSMALLINT second;
│ │ │ │ +
136 SQLUINTEGER fraction;
│ │ │ │ + │ │ │ │
│ │ │ │ -
697
│ │ │ │ -
│ │ │ │ -
698typedef struct _cs_objdata
│ │ │ │ -
699{
│ │ │ │ -
700 CS_BOOL actuallyexists;
│ │ │ │ -
701 CS_CONNECTION *connection;
│ │ │ │ -
702 CS_COMMAND *command;
│ │ │ │ -
703 CS_VOID *buffer;
│ │ │ │ -
704 CS_INT buflen;
│ │ │ │ -
705} CS_OBJDATA;
│ │ │ │ +
138
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
140 SQLSMALLINT year;
│ │ │ │ +
141 SQLUSMALLINT month;
│ │ │ │ +
142 SQLUSMALLINT day;
│ │ │ │ +
143 SQLUSMALLINT hour;
│ │ │ │ +
144 SQLUSMALLINT minute;
│ │ │ │ +
145 SQLUSMALLINT second;
│ │ │ │ +
146 SQLUINTEGER fraction;
│ │ │ │ +
147 SQLSMALLINT timezone_hour;
│ │ │ │ +
148 SQLSMALLINT timezone_minute;
│ │ │ │ + │ │ │ │
│ │ │ │ -
706
│ │ │ │ -
707/* Eventually, these should be in terms of TDS values */
│ │ │ │ -
708enum
│ │ │ │ -
709{
│ │ │ │ -
710 CS_OPT_MONDAY = 1,
│ │ │ │ -
711 CS_OPT_TUESDAY,
│ │ │ │ -
712 CS_OPT_WEDNESDAY,
│ │ │ │ -
713 CS_OPT_THURSDAY,
│ │ │ │ -
714 CS_OPT_FRIDAY,
│ │ │ │ -
715 CS_OPT_SATURDAY,
│ │ │ │ -
716 CS_OPT_SUNDAY
│ │ │ │ -
717};
│ │ │ │ -
718enum
│ │ │ │ -
719{
│ │ │ │ -
720 CS_OPT_FMTMDY = 1,
│ │ │ │ -
721 CS_OPT_FMTDMY,
│ │ │ │ -
722 CS_OPT_FMTYMD,
│ │ │ │ -
723 CS_OPT_FMTYDM,
│ │ │ │ -
724 CS_OPT_FMTMYD,
│ │ │ │ -
725 CS_OPT_FMTDYM
│ │ │ │ -
726};
│ │ │ │ -
727enum
│ │ │ │ -
728{
│ │ │ │ -
729 CS_OPT_LEVEL0 = 0,
│ │ │ │ -
730 CS_OPT_LEVEL1,
│ │ │ │ -
731 CS_OPT_LEVEL2,
│ │ │ │ -
732 CS_OPT_LEVEL3
│ │ │ │ -
733};
│ │ │ │ -
734
│ │ │ │ -
735#define CS_FALSE 0
│ │ │ │ -
736#define CS_TRUE 1
│ │ │ │ -
737
│ │ │ │ -
738#define SRV_PROC CS_VOID
│ │ │ │ -
739
│ │ │ │ -
740/* constants required for ct_diag (not jet implemented) */
│ │ │ │ -
741#define CS_CLIENTMSG_TYPE 4700
│ │ │ │ -
742#define CS_SERVERMSG_TYPE 4701
│ │ │ │ -
743#define CS_ALLMSG_TYPE 4702
│ │ │ │ -
744
│ │ │ │ -
745CS_RETCODE cs_convert(CS_CONTEXT * ctx, CS_DATAFMT * srcfmt, CS_VOID * srcdata, CS_DATAFMT * destfmt, CS_VOID * destdata,
│ │ │ │ -
746 CS_INT * resultlen);
│ │ │ │ -
747CS_RETCODE cs_ctx_alloc(CS_INT version, CS_CONTEXT ** ctx);
│ │ │ │ -
748CS_RETCODE cs_ctx_global(CS_INT version, CS_CONTEXT ** ctx);
│ │ │ │ -
749CS_RETCODE cs_ctx_drop(CS_CONTEXT * ctx);
│ │ │ │ -
750CS_RETCODE cs_config(CS_CONTEXT * ctx, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
751CS_RETCODE cs_strbuild(CS_CONTEXT * ctx, CS_CHAR * buffer, CS_INT buflen, CS_INT * resultlen, CS_CHAR * text, CS_INT textlen,
│ │ │ │ -
752 CS_CHAR * formats, CS_INT formatlen, ...);
│ │ │ │ -
753#undef cs_dt_crack
│ │ │ │ -
754CS_RETCODE cs_dt_crack(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
│ │ │ │ -
755CS_RETCODE cs_dt_crack_v2(CS_CONTEXT * ctx, CS_INT datetype, CS_VOID * dateval, CS_DATEREC * daterec);
│ │ │ │ -
756#define cs_dt_crack cs_dt_crack_v2
│ │ │ │ -
757CS_RETCODE cs_loc_alloc(CS_CONTEXT * ctx, CS_LOCALE ** locptr);
│ │ │ │ -
758CS_RETCODE cs_loc_drop(CS_CONTEXT * ctx, CS_LOCALE * locale);
│ │ │ │ -
759CS_RETCODE cs_locale(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_VOID * buffer, CS_INT buflen,
│ │ │ │ -
760 CS_INT * outlen);
│ │ │ │ -
761CS_RETCODE cs_dt_info(CS_CONTEXT * ctx, CS_INT action, CS_LOCALE * locale, CS_INT type, CS_INT item, CS_VOID * buffer,
│ │ │ │ -
762 CS_INT buflen, CS_INT * outlen);
│ │ │ │ -
763
│ │ │ │ -
764CS_RETCODE cs_calc(CS_CONTEXT * ctx, CS_INT op, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_VOID * dest);
│ │ │ │ -
765CS_RETCODE cs_cmp(CS_CONTEXT * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID * var2, CS_INT * result);
│ │ │ │ -
766CS_RETCODE cs_conv_mult(CS_CONTEXT * ctx, CS_LOCALE * srcloc, CS_LOCALE * destloc, CS_INT * conv_multiplier);
│ │ │ │ -
767CS_RETCODE cs_diag(CS_CONTEXT * ctx, CS_INT operation, CS_INT type, CS_INT idx, CS_VOID * buffer);
│ │ │ │ -
768CS_RETCODE cs_manage_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype,
│ │ │ │ -
769 CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, CS_CONV_FUNC * func);
│ │ │ │ -
770CS_RETCODE cs_objects(CS_CONTEXT * ctx, CS_INT action, CS_OBJNAME * objname, CS_OBJDATA * objdata);
│ │ │ │ -
771CS_RETCODE cs_set_convert(CS_CONTEXT * ctx, CS_INT action, CS_INT srctype, CS_INT desttype, CS_CONV_FUNC * func);
│ │ │ │ -
772CS_RETCODE cs_setnull(CS_CONTEXT * ctx, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT buflen);
│ │ │ │ -
773CS_RETCODE cs_strcmp(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_INT type, CS_CHAR * str1, CS_INT len1, CS_CHAR * str2, CS_INT len2,
│ │ │ │ -
774 CS_INT * result);
│ │ │ │ -
775CS_RETCODE cs_time(CS_CONTEXT * ctx, CS_LOCALE * locale, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen, CS_DATEREC * daterec);
│ │ │ │ -
776CS_RETCODE cs_will_convert(CS_CONTEXT * ctx, CS_INT srctype, CS_INT desttype, CS_BOOL * result);
│ │ │ │ -
777
│ │ │ │ -
778const char * cs_prretcode(int retcode);
│ │ │ │ -
779
│ │ │ │ -
780#ifdef __cplusplus
│ │ │ │ -
781#if 0
│ │ │ │ -
782{
│ │ │ │ -
783#endif
│ │ │ │ -
784}
│ │ │ │ -
785#endif
│ │ │ │ -
786
│ │ │ │ -
787#endif
│ │ │ │ -
Definition cspublic.h:685
│ │ │ │ -
Definition cspublic.h:699
│ │ │ │ -
Definition cstypes.h:114
│ │ │ │ -
Definition cstypes.h:159
│ │ │ │ -
Definition cstypes.h:177
│ │ │ │ -
Definition cstypes.h:191
│ │ │ │ -
Definition ctlib.h:75
│ │ │ │ -
Definition ctlib.h:117
│ │ │ │ -
Definition ctlib.h:212
│ │ │ │ -
Definition ctlib.h:239
│ │ │ │ -
Definition ctlib.h:248
│ │ │ │ +
150
│ │ │ │ +
151
│ │ │ │ +
152#ifdef TDSODBC_BCP
│ │ │ │ +
153
│ │ │ │ +
154#ifndef SUCCEED
│ │ │ │ +
155#define SUCCEED 1
│ │ │ │ +
156#endif
│ │ │ │ +
157#ifndef FAIL
│ │ │ │ +
158#define FAIL 0
│ │ │ │ +
159#endif
│ │ │ │ +
160
│ │ │ │ +
161#ifndef BCPKEEPIDENTITY
│ │ │ │ +
162#define BCPKEEPIDENTITY 8
│ │ │ │ +
163#endif
│ │ │ │ +
164#ifndef BCPHINTS
│ │ │ │ +
165#define BCPHINTS 6
│ │ │ │ +
166#endif
│ │ │ │ +
167
│ │ │ │ +
168#define BCP_DIRECTION_IN 1
│ │ │ │ +
169
│ │ │ │ +
170#define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19)
│ │ │ │ +
171#define SQL_BCP_OFF 0
│ │ │ │ +
172#define SQL_BCP_ON 1
│ │ │ │ +
173
│ │ │ │ +
174#define SQL_COPT_TDSODBC_IMPL_BASE 1500
│ │ │ │ +
175#define SQL_COPT_TDSODBC_IMPL_BCP_INITA (SQL_COPT_TDSODBC_IMPL_BASE)
│ │ │ │ +
176#define SQL_COPT_TDSODBC_IMPL_BCP_CONTROL (SQL_COPT_TDSODBC_IMPL_BASE+1)
│ │ │ │ +
177#define SQL_COPT_TDSODBC_IMPL_BCP_COLPTR (SQL_COPT_TDSODBC_IMPL_BASE+2)
│ │ │ │ +
178#define SQL_COPT_TDSODBC_IMPL_BCP_SENDROW (SQL_COPT_TDSODBC_IMPL_BASE+3)
│ │ │ │ +
179#define SQL_COPT_TDSODBC_IMPL_BCP_BATCH (SQL_COPT_TDSODBC_IMPL_BASE+4)
│ │ │ │ +
180#define SQL_COPT_TDSODBC_IMPL_BCP_DONE (SQL_COPT_TDSODBC_IMPL_BASE+5)
│ │ │ │ +
181#define SQL_COPT_TDSODBC_IMPL_BCP_BIND (SQL_COPT_TDSODBC_IMPL_BASE+6)
│ │ │ │ +
182#define SQL_COPT_TDSODBC_IMPL_BCP_INITW (SQL_COPT_TDSODBC_IMPL_BASE+7)
│ │ │ │ +
183
│ │ │ │ +
184#define SQL_VARLEN_DATA -10
│ │ │ │ +
185
│ │ │ │ +
186/* copied from sybdb.h which was copied from tds.h */
│ │ │ │ +
187/* TODO find a much better way... */
│ │ │ │ +
188enum
│ │ │ │ +
189{
│ │ │ │ +
190 BCP_TYPE_SQLCHAR = 47, /* 0x2F */
│ │ │ │ +
191#define BCP_TYPE_SQLCHAR BCP_TYPE_SQLCHAR
│ │ │ │ +
192 BCP_TYPE_SQLVARCHAR = 39, /* 0x27 */
│ │ │ │ +
193#define BCP_TYPE_SQLVARCHAR BCP_TYPE_SQLVARCHAR
│ │ │ │ +
194 BCP_TYPE_SQLINTN = 38, /* 0x26 */
│ │ │ │ +
195#define BCP_TYPE_SQLINTN BCP_TYPE_SQLINTN
│ │ │ │ +
196 BCP_TYPE_SQLINT1 = 48, /* 0x30 */
│ │ │ │ +
197#define BCP_TYPE_SQLINT1 BCP_TYPE_SQLINT1
│ │ │ │ +
198 BCP_TYPE_SQLINT2 = 52, /* 0x34 */
│ │ │ │ +
199#define BCP_TYPE_SQLINT2 BCP_TYPE_SQLINT2
│ │ │ │ +
200 BCP_TYPE_SQLINT4 = 56, /* 0x38 */
│ │ │ │ +
201#define BCP_TYPE_SQLINT4 BCP_TYPE_SQLINT4
│ │ │ │ +
202 BCP_TYPE_SQLINT8 = 127, /* 0x7F */
│ │ │ │ +
203#define BCP_TYPE_SQLINT8 BCP_TYPE_SQLINT8
│ │ │ │ +
204 BCP_TYPE_SQLFLT8 = 62, /* 0x3E */
│ │ │ │ +
205#define BCP_TYPE_SQLFLT8 BCP_TYPE_SQLFLT8
│ │ │ │ +
206 BCP_TYPE_SQLDATETIME = 61, /* 0x3D */
│ │ │ │ +
207#define BCP_TYPE_SQLDATETIME BCP_TYPE_SQLDATETIME
│ │ │ │ +
208 BCP_TYPE_SQLBIT = 50, /* 0x32 */
│ │ │ │ +
209#define BCP_TYPE_SQLBIT BCP_TYPE_SQLBIT
│ │ │ │ +
210 BCP_TYPE_SQLBITN = 104, /* 0x68 */
│ │ │ │ +
211#define BCP_TYPE_SQLBITN BCP_TYPE_SQLBITN
│ │ │ │ +
212 BCP_TYPE_SQLTEXT = 35, /* 0x23 */
│ │ │ │ +
213#define BCP_TYPE_SQLTEXT BCP_TYPE_SQLTEXT
│ │ │ │ +
214 BCP_TYPE_SQLNTEXT = 99, /* 0x63 */
│ │ │ │ +
215#define BCP_TYPE_SQLNTEXT BCP_TYPE_SQLNTEXT
│ │ │ │ +
216 BCP_TYPE_SQLIMAGE = 34, /* 0x22 */
│ │ │ │ +
217#define BCP_TYPE_SQLIMAGE BCP_TYPE_SQLIMAGE
│ │ │ │ +
218 BCP_TYPE_SQLMONEY4 = 122, /* 0x7A */
│ │ │ │ +
219#define BCP_TYPE_SQLMONEY4 BCP_TYPE_SQLMONEY4
│ │ │ │ +
220 BCP_TYPE_SQLMONEY = 60, /* 0x3C */
│ │ │ │ +
221#define BCP_TYPE_SQLMONEY BCP_TYPE_SQLMONEY
│ │ │ │ +
222 BCP_TYPE_SQLDATETIME4 = 58, /* 0x3A */
│ │ │ │ +
223#define BCP_TYPE_SQLDATETIME4 BCP_TYPE_SQLDATETIME4
│ │ │ │ +
224 BCP_TYPE_SQLREAL = 59, /* 0x3B */
│ │ │ │ +
225 BCP_TYPE_SQLFLT4 = 59, /* 0x3B */
│ │ │ │ +
226#define BCP_TYPE_SQLREAL BCP_TYPE_SQLREAL
│ │ │ │ +
227#define BCP_TYPE_SQLFLT4 BCP_TYPE_SQLFLT4
│ │ │ │ +
228 BCP_TYPE_SQLBINARY = 45, /* 0x2D */
│ │ │ │ +
229#define BCP_TYPE_SQLBINARY BCP_TYPE_SQLBINARY
│ │ │ │ +
230 BCP_TYPE_SQLVOID = 31, /* 0x1F */
│ │ │ │ +
231#define BCP_TYPE_SQLVOID BCP_TYPE_SQLVOID
│ │ │ │ +
232 BCP_TYPE_SQLVARBINARY = 37, /* 0x25 */
│ │ │ │ +
233#define BCP_TYPE_SQLVARBINARY BCP_TYPE_SQLVARBINARY
│ │ │ │ +
234 BCP_TYPE_SQLNUMERIC = 108, /* 0x6C */
│ │ │ │ +
235#define BCP_TYPE_SQLNUMERIC BCP_TYPE_SQLNUMERIC
│ │ │ │ +
236 BCP_TYPE_SQLDECIMAL = 106, /* 0x6A */
│ │ │ │ +
237#define BCP_TYPE_SQLDECIMAL BCP_TYPE_SQLDECIMAL
│ │ │ │ +
238 BCP_TYPE_SQLFLTN = 109, /* 0x6D */
│ │ │ │ +
239#define BCP_TYPE_SQLFLTN BCP_TYPE_SQLFLTN
│ │ │ │ +
240 BCP_TYPE_SQLMONEYN = 110, /* 0x6E */
│ │ │ │ +
241#define BCP_TYPE_SQLMONEYN BCP_TYPE_SQLMONEYN
│ │ │ │ +
242 BCP_TYPE_SQLDATETIMN = 111, /* 0x6F */
│ │ │ │ +
243#define BCP_TYPE_SQLDATETIMN BCP_TYPE_SQLDATETIMN
│ │ │ │ +
244 BCP_TYPE_SQLNVARCHAR = 103, /* 0x67 */
│ │ │ │ +
245#define BCP_TYPE_SQLNVARCHAR BCP_TYPE_SQLNVARCHAR
│ │ │ │ +
246 BCP_TYPE_SQLUNIQUEID = 36, /* 0x24 */
│ │ │ │ +
247#define BCP_TYPE_SQLUNIQUEID BCP_TYPE_SQLUNIQUEID
│ │ │ │ +
248 BCP_TYPE_SQLDATETIME2 = 42, /* 0x2a */
│ │ │ │ +
249#define BCP_TYPE_SQLDATETIME2 BCP_TYPE_SQLDATETIME2
│ │ │ │ +
250};
│ │ │ │ +
251
│ │ │ │ +
252typedef struct
│ │ │ │ +
253{
│ │ │ │ +
254 int dtdays;
│ │ │ │ +
255 int dttime;
│ │ │ │ +
256} DBDATETIME;
│ │ │ │ +
257
│ │ │ │ +
258#ifdef _MSC_VER
│ │ │ │ +
259#define TDSODBC_INLINE __inline
│ │ │ │ +
260#else
│ │ │ │ +
261#define TDSODBC_INLINE __inline__
│ │ │ │ +
262#endif
│ │ │ │ +
263
│ │ │ │ +
264struct tdsodbc_impl_bcp_init_params
│ │ │ │ +
265{
│ │ │ │ +
266 const void *tblname;
│ │ │ │ +
267 const void *hfile;
│ │ │ │ +
268 const void *errfile;
│ │ │ │ +
269 int direction;
│ │ │ │ +
270};
│ │ │ │ +
271
│ │ │ │ +
272static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ +
273bcp_initA(HDBC hdbc, const char *tblname, const char *hfile, const char *errfile, int direction)
│ │ │ │ +
274{
│ │ │ │ +
275 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
│ │ │ │ +
276 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITA, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ +
277}
│ │ │ │ +
278
│ │ │ │ +
279static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ +
280bcp_initW(HDBC hdbc, const SQLWCHAR *tblname, const SQLWCHAR *hfile, const SQLWCHAR *errfile, int direction)
│ │ │ │ +
281{
│ │ │ │ +
282 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, direction};
│ │ │ │ +
283 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_INITW, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ +
284}
│ │ │ │ +
285
│ │ │ │ +
286struct tdsodbc_impl_bcp_control_params
│ │ │ │ +
287{
│ │ │ │ +
288 int field;
│ │ │ │ +
289 void *value;
│ │ │ │ +
290};
│ │ │ │ +
291
│ │ │ │ +
292static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ +
293bcp_control(HDBC hdbc, int field, void *value)
│ │ │ │ +
294{
│ │ │ │ +
295 struct tdsodbc_impl_bcp_control_params params = {field, value};
│ │ │ │ +
296 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_CONTROL, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ +
297}
│ │ │ │ +
298
│ │ │ │ +
299struct tdsodbc_impl_bcp_colptr_params
│ │ │ │ +
300{
│ │ │ │ +
301 const unsigned char * colptr;
│ │ │ │ +
302 int table_column;
│ │ │ │ +
303};
│ │ │ │ +
304
│ │ │ │ +
305static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ +
306bcp_colptr(HDBC hdbc, const unsigned char * colptr, int table_column)
│ │ │ │ +
307{
│ │ │ │ +
308 struct tdsodbc_impl_bcp_colptr_params params = {colptr, table_column};
│ │ │ │ +
309 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_COLPTR, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ +
310}
│ │ │ │ +
311
│ │ │ │ +
312static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ +
313bcp_sendrow(HDBC hdbc)
│ │ │ │ +
314{
│ │ │ │ +
315 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ +
316}
│ │ │ │ +
317
│ │ │ │ +
318struct tdsodbc_impl_bcp_batch_params
│ │ │ │ +
319{
│ │ │ │ +
320 int rows;
│ │ │ │ +
321};
│ │ │ │ +
322
│ │ │ │ +
323static TDSODBC_INLINE int SQL_API
│ │ │ │ +
324bcp_batch(HDBC hdbc)
│ │ │ │ +
325{
│ │ │ │ +
326 struct tdsodbc_impl_bcp_batch_params params = {-1};
│ │ │ │ +
327 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BATCH, &params, SQL_IS_POINTER)) ? params.rows : -1;
│ │ │ │ +
328}
│ │ │ │ +
329
│ │ │ │ +
330struct tdsodbc_impl_bcp_done_params
│ │ │ │ +
331{
│ │ │ │ +
332 int rows;
│ │ │ │ +
333};
│ │ │ │ +
334
│ │ │ │ +
335static TDSODBC_INLINE int SQL_API
│ │ │ │ +
336bcp_done(HDBC hdbc)
│ │ │ │ +
337{
│ │ │ │ +
338 struct tdsodbc_impl_bcp_done_params params = {-1};
│ │ │ │ +
339 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_DONE, &params, SQL_IS_POINTER)) ? params.rows : -1;
│ │ │ │ +
340}
│ │ │ │ +
341
│ │ │ │ +
342struct tdsodbc_impl_bcp_bind_params
│ │ │ │ +
343{
│ │ │ │ +
344 const unsigned char * varaddr;
│ │ │ │ +
345 int prefixlen;
│ │ │ │ +
346 int varlen;
│ │ │ │ +
347 const unsigned char * terminator;
│ │ │ │ +
348 int termlen;
│ │ │ │ +
349 int vartype;
│ │ │ │ +
350 int table_column;
│ │ │ │ +
351};
│ │ │ │ +
352
│ │ │ │ +
353static TDSODBC_INLINE RETCODE SQL_API
│ │ │ │ +
354bcp_bind(HDBC hdbc, const unsigned char * varaddr, int prefixlen, int varlen,
│ │ │ │ +
355 const unsigned char * terminator, int termlen, int vartype, int table_column)
│ │ │ │ +
356{
│ │ │ │ +
357 struct tdsodbc_impl_bcp_bind_params params = {varaddr, prefixlen, varlen, terminator, termlen, vartype, table_column};
│ │ │ │ +
358 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, SQL_COPT_TDSODBC_IMPL_BCP_BIND, &params, SQL_IS_POINTER)) ? SUCCEED : FAIL;
│ │ │ │ +
359}
│ │ │ │ +
360
│ │ │ │ +
361#ifdef UNICODE
│ │ │ │ +
362#define bcp_init bcp_initW
│ │ │ │ +
363#else
│ │ │ │ +
364#define bcp_init bcp_initA
│ │ │ │ +
365#endif
│ │ │ │ +
366
│ │ │ │ +
367#endif /* TDSODBC_BCP */
│ │ │ │ +
368
│ │ │ │ +
369#ifdef __cplusplus
│ │ │ │ +
370}
│ │ │ │ +
371#endif
│ │ │ │ +
372
│ │ │ │ +
373#endif /* _odbcss_h_ */
│ │ │ │ +
RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value)
Set BCP options for uploading a datafile.
Definition bcp.c:544
│ │ │ │ +
RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column)
Override bcp_bind() by pointing to a different host variable.
Definition bcp.c:671
│ │ │ │ +
RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int db_vartype, int table_column)
Bind a program host variable to a database column.
Definition bcp.c:2079
│ │ │ │ +
DBINT bcp_done(DBPROCESS *dbproc)
Conclude the transfer of data from program variables.
Definition bcp.c:2037
│ │ │ │ +
DBINT bcp_batch(DBPROCESS *dbproc)
Commit a set of rows to the table.
Definition bcp.c:2010
│ │ │ │ +
RETCODE bcp_sendrow(DBPROCESS *dbproc)
Write data in host variables to the table.
Definition bcp.c:1381
│ │ │ │ +
Definition odbcss.h:132
│ │ │ │ +
Definition odbcss.h:139
│ │ │ │ +
Definition sybdb.h:295
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -cspublic.h │ │ │ │ │ +odbcss.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 2008 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,821 +19,409 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _cspublic_h_ │ │ │ │ │ -21#define _cspublic_h_ │ │ │ │ │ +20#ifndef _odbcss_h_ │ │ │ │ │ +21#define _odbcss_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#undef TDS_STATIC_CAST │ │ │ │ │ -26#ifdef __cplusplus │ │ │ │ │ -27#define TDS_STATIC_CAST(type, a) static_cast(a) │ │ │ │ │ -28extern "C" │ │ │ │ │ -29{ │ │ │ │ │ -30#if 0 │ │ │ │ │ -31} │ │ │ │ │ -32#endif │ │ │ │ │ -33#else │ │ │ │ │ -34#define TDS_STATIC_CAST(type, a) ((type)(a)) │ │ │ │ │ -35#endif │ │ │ │ │ -36 │ │ │ │ │ -37#define CS_PUBLIC │ │ │ │ │ -38#define CS_STATIC static │ │ │ │ │ -39 │ │ │ │ │ -40#define CS_SUCCEED 1 │ │ │ │ │ -41#define CS_FAIL 0 │ │ │ │ │ -42#define CS_MEM_ERROR -1 │ │ │ │ │ -43#define CS_PENDING -2 │ │ │ │ │ -44#define CS_QUIET -3 │ │ │ │ │ -45#define CS_BUSY -4 │ │ │ │ │ -46#define CS_INTERRUPT -5 │ │ │ │ │ -47#define CS_BLK_HAS_TEXT -6 │ │ │ │ │ -48#define CS_CONTINUE -7 │ │ │ │ │ -49#define CS_FATAL -8 │ │ │ │ │ -50#define CS_RET_HAFAILOVER -9 │ │ │ │ │ -51#define CS_UNSUPPORTED -10 │ │ │ │ │ -52 │ │ │ │ │ -53#define CS_CANCELED -202 │ │ │ │ │ -54#define CS_ROW_FAIL -203 │ │ │ │ │ -55#define CS_END_DATA -204 │ │ │ │ │ -56#define CS_END_RESULTS -205 │ │ │ │ │ -57#define CS_END_ITEM -206 │ │ │ │ │ -58#define CS_NOMSG -207 │ │ │ │ │ -59#define CS_TIMED_OUT -208 │ │ │ │ │ +23#ifdef TDSODBC_BCP │ │ │ │ │ +24#include │ │ │ │ │ +25#endif │ │ │ │ │ +26 │ │ │ │ │ +27#ifdef __cplusplus │ │ │ │ │ +28extern "C" { │ │ │ │ │ +29#endif │ │ │ │ │ +30 │ │ │ │ │ +31#define SQL_DIAG_SS_MSGSTATE (-1150) │ │ │ │ │ +32#define SQL_DIAG_SS_LINE (-1154) │ │ │ │ │ +33 │ │ │ │ │ +34#define SQL_SOPT_SS_QUERYNOTIFICATION_TIMEOUT 1233 │ │ │ │ │ +35#define SQL_SOPT_SS_QUERYNOTIFICATION_MSGTEXT 1234 │ │ │ │ │ +36#define SQL_SOPT_SS_QUERYNOTIFICATION_OPTIONS 1235 │ │ │ │ │ +37 │ │ │ │ │ +38#ifndef SQL_SS_LENGTH_UNLIMITED │ │ │ │ │ +39#define SQL_SS_LENGTH_UNLIMITED 0 │ │ │ │ │ +40#endif │ │ │ │ │ +41 │ │ │ │ │ +42#ifndef SQL_COPT_SS_BASE │ │ │ │ │ +43#define SQL_COPT_SS_BASE 1200 │ │ │ │ │ +44#endif │ │ │ │ │ +45 │ │ │ │ │ +46#ifndef SQL_COPT_SS_MARS_ENABLED │ │ │ │ │ +47#define SQL_COPT_SS_MARS_ENABLED (SQL_COPT_SS_BASE+24) │ │ │ │ │ +48#endif │ │ │ │ │ +49 │ │ │ │ │ +50#ifndef SQL_COPT_SS_OLDPWD │ │ │ │ │ +51#define SQL_COPT_SS_OLDPWD (SQL_COPT_SS_BASE+26) │ │ │ │ │ +52#endif │ │ │ │ │ +53 │ │ │ │ │ +54#define SQL_INFO_FREETDS_TDS_VERSION 1300 │ │ │ │ │ +55#define SQL_INFO_FREETDS_SOCKET 1301 │ │ │ │ │ +56 │ │ │ │ │ +57#ifndef SQL_MARS_ENABLED_NO │ │ │ │ │ +58#define SQL_MARS_ENABLED_NO 0 │ │ │ │ │ +59#endif │ │ │ │ │ 60 │ │ │ │ │ -61#define CS_SIZEOF(x) sizeof(x) │ │ │ │ │ -62 │ │ │ │ │ -63#define CS_LAYER(x) (((x) >> 24) & 0xFF) │ │ │ │ │ -64#define CS_ORIGIN(x) (((x) >> 16) & 0xFF) │ │ │ │ │ -65#define CS_SEVERITY(x) (((x) >> 8) & 0xFF) │ │ │ │ │ -66#define CS_NUMBER(x) ((x) & 0xFF) │ │ │ │ │ -67 │ │ │ │ │ -68/* forward declarations */ │ │ │ │ │ -69typedef CS_RETCODE(*CS_CSLIBMSG_FUNC) (_C_S___C_O_N_T_E_X_T *, _C_S___C_L_I_E_N_T_M_S_G *); │ │ │ │ │ -70typedef CS_RETCODE(*CS_CLIENTMSG_FUNC) (_C_S___C_O_N_T_E_X_T *, _C_S___C_O_N_N_E_C_T_I_O_N *, │ │ │ │ │ -_C_S___C_L_I_E_N_T_M_S_G *); │ │ │ │ │ -71typedef CS_RETCODE(*CS_SERVERMSG_FUNC) (_C_S___C_O_N_T_E_X_T *, _C_S___C_O_N_N_E_C_T_I_O_N *, │ │ │ │ │ -_C_S___S_E_R_V_E_R_M_S_G *); │ │ │ │ │ +61#ifndef SQL_MARS_ENABLED_YES │ │ │ │ │ +62#define SQL_MARS_ENABLED_YES 1 │ │ │ │ │ +63#endif │ │ │ │ │ +64 │ │ │ │ │ +65#ifndef SQL_SS_VARIANT │ │ │ │ │ +66#define SQL_SS_VARIANT (-150) │ │ │ │ │ +67#endif │ │ │ │ │ +68 │ │ │ │ │ +69#ifndef SQL_SS_UDT │ │ │ │ │ +70#define SQL_SS_UDT (-151) │ │ │ │ │ +71#endif │ │ │ │ │ 72 │ │ │ │ │ -73 │ │ │ │ │ -74#define CS_IODATA TDS_STATIC_CAST(CS_INT, 1600) │ │ │ │ │ -75#define CS_SRC_VALUE -2562 │ │ │ │ │ +73#ifndef SQL_SS_XML │ │ │ │ │ +74#define SQL_SS_XML (-152) │ │ │ │ │ +75#endif │ │ │ │ │ 76 │ │ │ │ │ -77 │ │ │ │ │ -78 │ │ │ │ │ -79/* status bits for CS_SERVERMSG */ │ │ │ │ │ -80#define CS_HASEED 0x01 │ │ │ │ │ -81 │ │ │ │ │ -82typedef struct ___c_s___b_l_k_d_e_s_c _C_S___B_L_K_D_E_S_C; │ │ │ │ │ -83 │ │ │ │ │ -84/* CS_CAP_REQUEST values */ │ │ │ │ │ -85#define CS_REQ_LANG 1 │ │ │ │ │ -86#define CS_REQ_RPC 2 │ │ │ │ │ -87#define CS_REQ_NOTIF 3 │ │ │ │ │ -88#define CS_REQ_MSTMT 4 │ │ │ │ │ -89#define CS_REQ_BCP 5 │ │ │ │ │ -90#define CS_REQ_CURSOR 6 │ │ │ │ │ -91#define CS_REQ_DYN 7 │ │ │ │ │ -92#define CS_REQ_MSG 8 │ │ │ │ │ -93#define CS_REQ_PARAM 9 │ │ │ │ │ -94#define CS_DATA_INT1 10 │ │ │ │ │ -95#define CS_DATA_INT2 11 │ │ │ │ │ -96#define CS_DATA_INT4 12 │ │ │ │ │ -97#define CS_DATA_BIT 13 │ │ │ │ │ -98#define CS_DATA_CHAR 14 │ │ │ │ │ -99#define CS_DATA_VCHAR 15 │ │ │ │ │ -100#define CS_DATA_BIN 16 │ │ │ │ │ -101#define CS_DATA_VBIN 17 │ │ │ │ │ -102#define CS_DATA_MNY8 18 │ │ │ │ │ -103#define CS_DATA_MNY4 19 │ │ │ │ │ -104#define CS_DATA_DATE8 20 │ │ │ │ │ -105#define CS_DATA_DATE4 21 │ │ │ │ │ -106#define CS_DATA_FLT4 22 │ │ │ │ │ -107#define CS_DATA_FLT8 23 │ │ │ │ │ -108#define CS_DATA_NUM 24 │ │ │ │ │ -109#define CS_DATA_TEXT 25 │ │ │ │ │ -110#define CS_DATA_IMAGE 26 │ │ │ │ │ -111#define CS_DATA_DEC 27 │ │ │ │ │ -112#define CS_DATA_LCHAR 28 │ │ │ │ │ -113#define CS_DATA_LBIN 29 │ │ │ │ │ -114#define CS_DATA_INTN 30 │ │ │ │ │ -115#define CS_DATA_DATETIMEN 31 │ │ │ │ │ -116#define CS_DATA_MONEYN 32 │ │ │ │ │ -117#define CS_CSR_PREV 33 │ │ │ │ │ -118#define CS_CSR_FIRST 34 │ │ │ │ │ -119#define CS_CSR_LAST 35 │ │ │ │ │ -120#define CS_CSR_ABS 36 │ │ │ │ │ -121#define CS_CSR_REL 37 │ │ │ │ │ -122#define CS_CSR_MULTI 38 │ │ │ │ │ -123#define CS_CON_OOB 39 │ │ │ │ │ -124#define CS_CON_INBAND 40 │ │ │ │ │ -125#define CS_CON_LOGICAL 41 │ │ │ │ │ -126#define CS_PROTO_TEXT 42 │ │ │ │ │ -127#define CS_PROTO_BULK 43 │ │ │ │ │ -128#define CS_REQ_URGNOTIF 44 │ │ │ │ │ -129#define CS_DATA_SENSITIVITY 45 │ │ │ │ │ -130#define CS_DATA_BOUNDARY 46 │ │ │ │ │ -131#define CS_PROTO_DYNAMIC 47 │ │ │ │ │ -132#define CS_PROTO_DYNPROC 48 │ │ │ │ │ -133#define CS_DATA_FLTN 49 │ │ │ │ │ -134#define CS_DATA_BITN 50 │ │ │ │ │ -135#define CS_OPTION_GET 51 │ │ │ │ │ -136#define CS_DATA_INT8 52 │ │ │ │ │ -137#define CS_DATA_VOID 53 │ │ │ │ │ +77#ifndef SQL_SS_TABLE │ │ │ │ │ +78#define SQL_SS_TABLE (-153) │ │ │ │ │ +79#endif │ │ │ │ │ +80 │ │ │ │ │ +81#ifndef SQL_SS_TIME2 │ │ │ │ │ +82#define SQL_SS_TIME2 (-154) │ │ │ │ │ +83#endif │ │ │ │ │ +84 │ │ │ │ │ +85#ifndef SQL_SS_TIMESTAMPOFFSET │ │ │ │ │ +86#define SQL_SS_TIMESTAMPOFFSET (-155) │ │ │ │ │ +87#endif │ │ │ │ │ +88 │ │ │ │ │ +89/* │ │ │ │ │ +90 * these types are used from conversion from client to server │ │ │ │ │ +91 */ │ │ │ │ │ +92#ifndef SQL_C_SS_TIME2 │ │ │ │ │ +93#define SQL_C_SS_TIME2 (0x4000) │ │ │ │ │ +94#endif │ │ │ │ │ +95 │ │ │ │ │ +96#ifndef SQL_C_SS_TIMESTAMPOFFSET │ │ │ │ │ +97#define SQL_C_SS_TIMESTAMPOFFSET (0x4001) │ │ │ │ │ +98#endif │ │ │ │ │ +99 │ │ │ │ │ +100#ifndef SQL_CA_SS_BASE │ │ │ │ │ +101#define SQL_CA_SS_BASE 1200 │ │ │ │ │ +102#endif │ │ │ │ │ +103 │ │ │ │ │ +104#ifndef SQL_CA_SS_UDT_CATALOG_NAME │ │ │ │ │ +105#define SQL_CA_SS_UDT_CATALOG_NAME (SQL_CA_SS_BASE+18) │ │ │ │ │ +106#endif │ │ │ │ │ +107 │ │ │ │ │ +108#ifndef SQL_CA_SS_UDT_SCHEMA_NAME │ │ │ │ │ +109#define SQL_CA_SS_UDT_SCHEMA_NAME (SQL_CA_SS_BASE+19) │ │ │ │ │ +110#endif │ │ │ │ │ +111 │ │ │ │ │ +112#ifndef SQL_CA_SS_UDT_TYPE_NAME │ │ │ │ │ +113#define SQL_CA_SS_UDT_TYPE_NAME (SQL_CA_SS_BASE+20) │ │ │ │ │ +114#endif │ │ │ │ │ +115 │ │ │ │ │ +116#ifndef SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME │ │ │ │ │ +117#define SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME (SQL_CA_SS_BASE+21) │ │ │ │ │ +118#endif │ │ │ │ │ +119 │ │ │ │ │ +120#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME │ │ │ │ │ +121#define SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME (SQL_CA_SS_BASE+22) │ │ │ │ │ +122#endif │ │ │ │ │ +123 │ │ │ │ │ +124#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME │ │ │ │ │ +125#define SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME (SQL_CA_SS_BASE+23) │ │ │ │ │ +126#endif │ │ │ │ │ +127 │ │ │ │ │ +128#ifndef SQL_CA_SS_XML_SCHEMACOLLECTION_NAME │ │ │ │ │ +129#define SQL_CA_SS_XML_SCHEMACOLLECTION_NAME (SQL_CA_SS_BASE+24) │ │ │ │ │ +130#endif │ │ │ │ │ +131 │ │ │ │ │ +_1_3_2typedef struct _t_a_g_S_S___T_I_M_E_2___S_T_R_U_C_T { │ │ │ │ │ +133 SQLUSMALLINT hour; │ │ │ │ │ +134 SQLUSMALLINT minute; │ │ │ │ │ +135 SQLUSMALLINT second; │ │ │ │ │ +136 SQLUINTEGER fraction; │ │ │ │ │ +137} _S_Q_L___S_S___T_I_M_E_2___S_T_R_U_C_T; │ │ │ │ │ 138 │ │ │ │ │ -139/* CS_CAP_RESPONSE values */ │ │ │ │ │ -140#define CS_RES_NOMSG 1 │ │ │ │ │ -141#define CS_RES_NOEED 2 │ │ │ │ │ -142#define CS_RES_NOPARAM 3 │ │ │ │ │ -143#define CS_DATA_NOINT1 4 │ │ │ │ │ -144#define CS_DATA_NOINT2 5 │ │ │ │ │ -145#define CS_DATA_NOINT4 6 │ │ │ │ │ -146#define CS_DATA_NOBIT 7 │ │ │ │ │ -147#define CS_DATA_NOCHAR 8 │ │ │ │ │ -148#define CS_DATA_NOVCHAR 9 │ │ │ │ │ -149#define CS_DATA_NOBIN 10 │ │ │ │ │ -150#define CS_DATA_NOVBIN 11 │ │ │ │ │ -151#define CS_DATA_NOMNY8 12 │ │ │ │ │ -152#define CS_DATA_NOMNY4 13 │ │ │ │ │ -153#define CS_DATA_NODATE8 14 │ │ │ │ │ -154#define CS_DATA_NODATE4 15 │ │ │ │ │ -155#define CS_DATA_NOFLT4 16 │ │ │ │ │ -156#define CS_DATA_NOFLT8 17 │ │ │ │ │ -157#define CS_DATA_NONUM 18 │ │ │ │ │ -158#define CS_DATA_NOTEXT 19 │ │ │ │ │ -159#define CS_DATA_NOIMAGE 20 │ │ │ │ │ -160#define CS_DATA_NODEC 21 │ │ │ │ │ -161#define CS_DATA_NOLCHAR 22 │ │ │ │ │ -162#define CS_DATA_NOLBIN 23 │ │ │ │ │ -163#define CS_DATA_NOINTN 24 │ │ │ │ │ -164#define CS_DATA_NODATETIMEN 25 │ │ │ │ │ -165#define CS_DATA_NOMONEYN 26 │ │ │ │ │ -166#define CS_CON_NOOOB 27 │ │ │ │ │ -167#define CS_CON_NOINBAND 28 │ │ │ │ │ -168#define CS_PROTO_NOTEXT 29 │ │ │ │ │ -169#define CS_PROTO_NOBULK 30 │ │ │ │ │ -170#define CS_DATA_NOSENSITIVITY 31 │ │ │ │ │ -171#define CS_DATA_NOBOUNDARY 32 │ │ │ │ │ -172#define CS_RES_NOTDSDEBUG 33 │ │ │ │ │ -173#define CS_RES_NOSTRIPBLANKS 34 │ │ │ │ │ -174#define CS_DATA_NOINT8 35 │ │ │ │ │ -175 │ │ │ │ │ -176/* Properties */ │ │ │ │ │ -177enum │ │ │ │ │ -178{ │ │ │ │ │ -179/* │ │ │ │ │ -180 * These defines looks weird but programs can test support for defines, │ │ │ │ │ -181 * compiler can check enum and there are no define side effecs │ │ │ │ │ -182 */ │ │ │ │ │ -183 CS_USERNAME = 9100, │ │ │ │ │ -184#define CS_USERNAME CS_USERNAME │ │ │ │ │ -185 CS_PASSWORD = 9101, │ │ │ │ │ -186#define CS_PASSWORD CS_PASSWORD │ │ │ │ │ -187 CS_APPNAME = 9102, │ │ │ │ │ -188#define CS_APPNAME CS_APPNAME │ │ │ │ │ -189 CS_HOSTNAME = 9103, │ │ │ │ │ -190#define CS_HOSTNAME CS_HOSTNAME │ │ │ │ │ -191 CS_LOGIN_STATUS = 9104, │ │ │ │ │ -192#define CS_LOGIN_STATUS CS_LOGIN_STATUS │ │ │ │ │ -193 CS_TDS_VERSION = 9105, │ │ │ │ │ -194#define CS_TDS_VERSION CS_TDS_VERSION │ │ │ │ │ -195 CS_CHARSETCNV = 9106, │ │ │ │ │ -196#define CS_CHARSETCNV CS_CHARSETCNV │ │ │ │ │ -197 CS_PACKETSIZE = 9107, │ │ │ │ │ -198#define CS_PACKETSIZE CS_PACKETSIZE │ │ │ │ │ -199 CS_USERDATA = 9108, │ │ │ │ │ -200#define CS_USERDATA CS_USERDATA │ │ │ │ │ -201 CS_NETIO = 9110, │ │ │ │ │ -202#define CS_NETIO CS_NETIO │ │ │ │ │ -203 CS_TEXTLIMIT = 9112, │ │ │ │ │ -204#define CS_TEXTLIMIT CS_TEXTLIMIT │ │ │ │ │ -205 CS_HIDDEN_KEYS = 9113, │ │ │ │ │ -206#define CS_HIDDEN_KEYS CS_HIDDEN_KEYS │ │ │ │ │ -207 CS_VERSION = 9114, │ │ │ │ │ -208#define CS_VERSION CS_VERSION │ │ │ │ │ -209 CS_IFILE = 9115, │ │ │ │ │ -210#define CS_IFILE CS_IFILE │ │ │ │ │ -211 CS_LOGIN_TIMEOUT = 9116, │ │ │ │ │ -212#define CS_LOGIN_TIMEOUT CS_LOGIN_TIMEOUT │ │ │ │ │ -213 CS_TIMEOUT = 9117, │ │ │ │ │ -214#define CS_TIMEOUT CS_TIMEOUT │ │ │ │ │ -215 CS_MAX_CONNECT = 9118, │ │ │ │ │ -216#define CS_MAX_CONNECT CS_MAX_CONNECT │ │ │ │ │ -217 CS_EXPOSE_FMTS = 9120, │ │ │ │ │ -218#define CS_EXPOSE_FMTS CS_EXPOSE_FMTS │ │ │ │ │ -219 CS_EXTRA_INF = 9121, │ │ │ │ │ -220#define CS_EXTRA_INF CS_EXTRA_INF │ │ │ │ │ -221 CS_ANSI_BINDS = 9123, │ │ │ │ │ -222#define CS_ANSI_BINDS CS_ANSI_BINDS │ │ │ │ │ -223 CS_BULK_LOGIN = 9124, │ │ │ │ │ -224#define CS_BULK_LOGIN CS_BULK_LOGIN │ │ │ │ │ -225 CS_LOC_PROP = 9125, │ │ │ │ │ -226#define CS_LOC_PROP CS_LOC_PROP │ │ │ │ │ -227 CS_PARENT_HANDLE = 9130, │ │ │ │ │ -228#define CS_PARENT_HANDLE CS_PARENT_HANDLE │ │ │ │ │ -229 CS_EED_CMD = 9131, │ │ │ │ │ -230#define CS_EED_CMD CS_EED_CMD │ │ │ │ │ -231 CS_DIAG_TIMEOUT = 9132, │ │ │ │ │ -232#define CS_DIAG_TIMEOUT CS_DIAG_TIMEOUT │ │ │ │ │ -233 CS_DISABLE_POLL = 9133, │ │ │ │ │ -234#define CS_DISABLE_POLL CS_DISABLE_POLL │ │ │ │ │ -235 CS_SEC_ENCRYPTION = 9135, │ │ │ │ │ -236#define CS_SEC_ENCRYPTION CS_SEC_ENCRYPTION │ │ │ │ │ -237 CS_SEC_CHALLENGE = 9136, │ │ │ │ │ -238#define CS_SEC_CHALLENGE CS_SEC_CHALLENGE │ │ │ │ │ -239 CS_SEC_NEGOTIATE = 9137, │ │ │ │ │ -240#define CS_SEC_NEGOTIATE CS_SEC_NEGOTIATE │ │ │ │ │ -241 CS_CON_STATUS = 9143, │ │ │ │ │ -242#define CS_CON_STATUS CS_CON_STATUS │ │ │ │ │ -243 CS_VER_STRING = 9144, │ │ │ │ │ -244#define CS_VER_STRING CS_VER_STRING │ │ │ │ │ -245 CS_SERVERNAME = 9146, │ │ │ │ │ -246#define CS_SERVERNAME CS_SERVERNAME │ │ │ │ │ -247 CS_SEC_APPDEFINED = 9149, │ │ │ │ │ -248#define CS_SEC_APPDEFINED CS_SEC_APPDEFINED │ │ │ │ │ -249 CS_STICKY_BINDS = 9151, │ │ │ │ │ -250#define CS_STICKY_BINDS CS_STICKY_BINDS │ │ │ │ │ -251 CS_SEC_NETWORKAUTH = 9175, │ │ │ │ │ -252#define CS_SEC_NETWORKAUTH CS_SEC_NETWORKAUTH │ │ │ │ │ -253 CS_SEC_DELEGATION = 9176, │ │ │ │ │ -254#define CS_SEC_DELEGATION CS_SEC_DELEGATION │ │ │ │ │ -255 CS_SEC_MUTUALAUTH = 9177, │ │ │ │ │ -256#define CS_SEC_MUTUALAUTH CS_SEC_MUTUALAUTH │ │ │ │ │ -257 CS_SEC_SERVERPRINCIPAL = 9188, │ │ │ │ │ -258#define CS_SEC_SERVERPRINCIPAL CS_SEC_SERVERPRINCIPAL │ │ │ │ │ -259 CS_SERVERADDR = 9206, │ │ │ │ │ -260#define CS_SERVERADDR CS_SERVERADDR │ │ │ │ │ -261 CS_PORT = 9300, │ │ │ │ │ -262#define CS_PORT CS_PORT │ │ │ │ │ -263 CS_CLIENTCHARSET = 9301, │ │ │ │ │ -264#define CS_CLIENTCHARSET CS_CLIENTCHARSET │ │ │ │ │ -265 CS_DATABASE = 9302 │ │ │ │ │ -266#define CS_DATABASE CS_DATABASE │ │ │ │ │ -267}; │ │ │ │ │ -268 │ │ │ │ │ -269/* Arbitrary precision math operators */ │ │ │ │ │ -270enum │ │ │ │ │ -271{ │ │ │ │ │ -272 CS_ADD = 1, │ │ │ │ │ -273 CS_SUB, │ │ │ │ │ -274 CS_MULT, │ │ │ │ │ -275 CS_DIV │ │ │ │ │ -276}; │ │ │ │ │ -277 │ │ │ │ │ -278enum │ │ │ │ │ -279{ │ │ │ │ │ -280#define CS_TDS_AUTO CS_TDS_AUTO │ │ │ │ │ -281 CS_TDS_AUTO = 0, │ │ │ │ │ -282 CS_TDS_40 = 7360, │ │ │ │ │ -283 CS_TDS_42, │ │ │ │ │ -284 CS_TDS_46, │ │ │ │ │ -285 CS_TDS_495, │ │ │ │ │ -286 CS_TDS_50, │ │ │ │ │ -287 CS_TDS_70, │ │ │ │ │ -288 CS_TDS_71, │ │ │ │ │ -289#define CS_TDS_71 CS_TDS_71 │ │ │ │ │ -290 CS_TDS_72, │ │ │ │ │ -291#define CS_TDS_72 CS_TDS_72 │ │ │ │ │ -292 CS_TDS_73, │ │ │ │ │ -293#define CS_TDS_73 CS_TDS_73 │ │ │ │ │ -294 CS_TDS_74, │ │ │ │ │ -295#define CS_TDS_74 CS_TDS_74 │ │ │ │ │ -296}; │ │ │ │ │ -297 │ │ │ │ │ -298/* bit mask values used by CS_DATAFMT.status */ │ │ │ │ │ -299#define CS_HIDDEN (1 << 0) │ │ │ │ │ -300#define CS_KEY (1 << 1) │ │ │ │ │ -301#define CS_VERSION_KEY (1 << 2) │ │ │ │ │ -302#define CS_NODATA (1 << 3) │ │ │ │ │ -303#define CS_UPDATABLE (1 << 4) │ │ │ │ │ -304#define CS_CANBENULL (1 << 5) │ │ │ │ │ -305#define CS_DESCIN (1 << 6) │ │ │ │ │ -306#define CS_DESCOUT (1 << 7) │ │ │ │ │ -307#define CS_INPUTVALUE (1 << 8) │ │ │ │ │ -308#define CS_UPDATECOL (1 << 9) │ │ │ │ │ -309#define CS_RETURN (1 << 10) │ │ │ │ │ -310#define CS_TIMESTAMP (1 << 13) │ │ │ │ │ -311#define CS_NODEFAULT (1 << 14) │ │ │ │ │ -312#define CS_IDENTITY (1 << 15) │ │ │ │ │ -313 │ │ │ │ │ -314/* │ │ │ │ │ -315 * DBD::Sybase compares indicator to CS_NULLDATA so this is -1 │ │ │ │ │ -316 * (the documentation states -1) │ │ │ │ │ -317 */ │ │ │ │ │ -318#define CS_GOODDATA 0 │ │ │ │ │ -319#define CS_NULLDATA (-1) │ │ │ │ │ -320 │ │ │ │ │ -321/* CS_CON_STATUS read-only property bit mask values */ │ │ │ │ │ -322#define CS_CONSTAT_CONNECTED 0x01 │ │ │ │ │ -323#define CS_CONSTAT_DEAD 0x02 │ │ │ │ │ -324 │ │ │ │ │ -325/* │ │ │ │ │ -326 * Code added for CURSOR support │ │ │ │ │ -327 * types accepted by ct_cursor │ │ │ │ │ -328 */ │ │ │ │ │ -329#define CS_CURSOR_DECLARE 700 │ │ │ │ │ -330#define CS_CURSOR_OPEN 701 │ │ │ │ │ -331#define CS_CURSOR_ROWS 703 │ │ │ │ │ -332#define CS_CURSOR_UPDATE 704 │ │ │ │ │ -333#define CS_CURSOR_DELETE 705 │ │ │ │ │ -334#define CS_CURSOR_CLOSE 706 │ │ │ │ │ -335#define CS_CURSOR_DEALLOC 707 │ │ │ │ │ -336#define CS_CURSOR_OPTION 725 │ │ │ │ │ -337 │ │ │ │ │ -338#define CS_FOR_UPDATE TDS_STATIC_CAST(CS_INT, 0x1) │ │ │ │ │ -339#define CS_READ_ONLY TDS_STATIC_CAST(CS_INT, 0x2) │ │ │ │ │ -340#define CS_RESTORE_OPEN TDS_STATIC_CAST(CS_INT, 0x8) │ │ │ │ │ -341#define CS_IMPLICIT_CURSOR TDS_STATIC_CAST(CS_INT, 0x40) │ │ │ │ │ -342 │ │ │ │ │ -343 │ │ │ │ │ -344#define CS_CURSTAT_NONE TDS_STATIC_CAST(CS_INT, 0x0) │ │ │ │ │ -345#define CS_CURSTAT_DECLARED TDS_STATIC_CAST(CS_INT, 0x1) │ │ │ │ │ -346#define CS_CURSTAT_OPEN TDS_STATIC_CAST(CS_INT, 0x2) │ │ │ │ │ -347#define CS_CURSTAT_CLOSED TDS_STATIC_CAST(CS_INT, 0x4) │ │ │ │ │ -348#define CS_CURSTAT_RDONLY TDS_STATIC_CAST(CS_INT, 0x8) │ │ │ │ │ -349#define CS_CURSTAT_UPDATABLE TDS_STATIC_CAST(CS_INT, 0x10) │ │ │ │ │ -350#define CS_CURSTAT_ROWCOUNT TDS_STATIC_CAST(CS_INT, 0x20) │ │ │ │ │ -351#define CS_CURSTAT_DEALLOC TDS_STATIC_CAST(CS_INT, 0x40) │ │ │ │ │ +_1_3_9typedef struct _t_a_g_S_S___T_I_M_E_S_T_A_M_P_O_F_F_S_E_T___S_T_R_U_C_T { │ │ │ │ │ +140 SQLSMALLINT year; │ │ │ │ │ +141 SQLUSMALLINT month; │ │ │ │ │ +142 SQLUSMALLINT day; │ │ │ │ │ +143 SQLUSMALLINT hour; │ │ │ │ │ +144 SQLUSMALLINT minute; │ │ │ │ │ +145 SQLUSMALLINT second; │ │ │ │ │ +146 SQLUINTEGER fraction; │ │ │ │ │ +147 SQLSMALLINT timezone_hour; │ │ │ │ │ +148 SQLSMALLINT timezone_minute; │ │ │ │ │ +149} _S_Q_L___S_S___T_I_M_E_S_T_A_M_P_O_F_F_S_E_T___S_T_R_U_C_T; │ │ │ │ │ +150 │ │ │ │ │ +151 │ │ │ │ │ +152#ifdef TDSODBC_BCP │ │ │ │ │ +153 │ │ │ │ │ +154#ifndef SUCCEED │ │ │ │ │ +155#define SUCCEED 1 │ │ │ │ │ +156#endif │ │ │ │ │ +157#ifndef FAIL │ │ │ │ │ +158#define FAIL 0 │ │ │ │ │ +159#endif │ │ │ │ │ +160 │ │ │ │ │ +161#ifndef BCPKEEPIDENTITY │ │ │ │ │ +162#define BCPKEEPIDENTITY 8 │ │ │ │ │ +163#endif │ │ │ │ │ +164#ifndef BCPHINTS │ │ │ │ │ +165#define BCPHINTS 6 │ │ │ │ │ +166#endif │ │ │ │ │ +167 │ │ │ │ │ +168#define BCP_DIRECTION_IN 1 │ │ │ │ │ +169 │ │ │ │ │ +170#define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19) │ │ │ │ │ +171#define SQL_BCP_OFF 0 │ │ │ │ │ +172#define SQL_BCP_ON 1 │ │ │ │ │ +173 │ │ │ │ │ +174#define SQL_COPT_TDSODBC_IMPL_BASE 1500 │ │ │ │ │ +175#define SQL_COPT_TDSODBC_IMPL_BCP_INITA (SQL_COPT_TDSODBC_IMPL_BASE) │ │ │ │ │ +176#define SQL_COPT_TDSODBC_IMPL_BCP_CONTROL (SQL_COPT_TDSODBC_IMPL_BASE+1) │ │ │ │ │ +177#define SQL_COPT_TDSODBC_IMPL_BCP_COLPTR (SQL_COPT_TDSODBC_IMPL_BASE+2) │ │ │ │ │ +178#define SQL_COPT_TDSODBC_IMPL_BCP_SENDROW (SQL_COPT_TDSODBC_IMPL_BASE+3) │ │ │ │ │ +179#define SQL_COPT_TDSODBC_IMPL_BCP_BATCH (SQL_COPT_TDSODBC_IMPL_BASE+4) │ │ │ │ │ +180#define SQL_COPT_TDSODBC_IMPL_BCP_DONE (SQL_COPT_TDSODBC_IMPL_BASE+5) │ │ │ │ │ +181#define SQL_COPT_TDSODBC_IMPL_BCP_BIND (SQL_COPT_TDSODBC_IMPL_BASE+6) │ │ │ │ │ +182#define SQL_COPT_TDSODBC_IMPL_BCP_INITW (SQL_COPT_TDSODBC_IMPL_BASE+7) │ │ │ │ │ +183 │ │ │ │ │ +184#define SQL_VARLEN_DATA -10 │ │ │ │ │ +185 │ │ │ │ │ +186/* copied from sybdb.h which was copied from tds.h */ │ │ │ │ │ +187/* TODO find a much better way... */ │ │ │ │ │ +188enum │ │ │ │ │ +189{ │ │ │ │ │ +190 BCP_TYPE_SQLCHAR = 47, /* 0x2F */ │ │ │ │ │ +191#define BCP_TYPE_SQLCHAR BCP_TYPE_SQLCHAR │ │ │ │ │ +192 BCP_TYPE_SQLVARCHAR = 39, /* 0x27 */ │ │ │ │ │ +193#define BCP_TYPE_SQLVARCHAR BCP_TYPE_SQLVARCHAR │ │ │ │ │ +194 BCP_TYPE_SQLINTN = 38, /* 0x26 */ │ │ │ │ │ +195#define BCP_TYPE_SQLINTN BCP_TYPE_SQLINTN │ │ │ │ │ +196 BCP_TYPE_SQLINT1 = 48, /* 0x30 */ │ │ │ │ │ +197#define BCP_TYPE_SQLINT1 BCP_TYPE_SQLINT1 │ │ │ │ │ +198 BCP_TYPE_SQLINT2 = 52, /* 0x34 */ │ │ │ │ │ +199#define BCP_TYPE_SQLINT2 BCP_TYPE_SQLINT2 │ │ │ │ │ +200 BCP_TYPE_SQLINT4 = 56, /* 0x38 */ │ │ │ │ │ +201#define BCP_TYPE_SQLINT4 BCP_TYPE_SQLINT4 │ │ │ │ │ +202 BCP_TYPE_SQLINT8 = 127, /* 0x7F */ │ │ │ │ │ +203#define BCP_TYPE_SQLINT8 BCP_TYPE_SQLINT8 │ │ │ │ │ +204 BCP_TYPE_SQLFLT8 = 62, /* 0x3E */ │ │ │ │ │ +205#define BCP_TYPE_SQLFLT8 BCP_TYPE_SQLFLT8 │ │ │ │ │ +206 BCP_TYPE_SQLDATETIME = 61, /* 0x3D */ │ │ │ │ │ +207#define BCP_TYPE_SQLDATETIME BCP_TYPE_SQLDATETIME │ │ │ │ │ +208 BCP_TYPE_SQLBIT = 50, /* 0x32 */ │ │ │ │ │ +209#define BCP_TYPE_SQLBIT BCP_TYPE_SQLBIT │ │ │ │ │ +210 BCP_TYPE_SQLBITN = 104, /* 0x68 */ │ │ │ │ │ +211#define BCP_TYPE_SQLBITN BCP_TYPE_SQLBITN │ │ │ │ │ +212 BCP_TYPE_SQLTEXT = 35, /* 0x23 */ │ │ │ │ │ +213#define BCP_TYPE_SQLTEXT BCP_TYPE_SQLTEXT │ │ │ │ │ +214 BCP_TYPE_SQLNTEXT = 99, /* 0x63 */ │ │ │ │ │ +215#define BCP_TYPE_SQLNTEXT BCP_TYPE_SQLNTEXT │ │ │ │ │ +216 BCP_TYPE_SQLIMAGE = 34, /* 0x22 */ │ │ │ │ │ +217#define BCP_TYPE_SQLIMAGE BCP_TYPE_SQLIMAGE │ │ │ │ │ +218 BCP_TYPE_SQLMONEY4 = 122, /* 0x7A */ │ │ │ │ │ +219#define BCP_TYPE_SQLMONEY4 BCP_TYPE_SQLMONEY4 │ │ │ │ │ +220 BCP_TYPE_SQLMONEY = 60, /* 0x3C */ │ │ │ │ │ +221#define BCP_TYPE_SQLMONEY BCP_TYPE_SQLMONEY │ │ │ │ │ +222 BCP_TYPE_SQLDATETIME4 = 58, /* 0x3A */ │ │ │ │ │ +223#define BCP_TYPE_SQLDATETIME4 BCP_TYPE_SQLDATETIME4 │ │ │ │ │ +224 BCP_TYPE_SQLREAL = 59, /* 0x3B */ │ │ │ │ │ +225 BCP_TYPE_SQLFLT4 = 59, /* 0x3B */ │ │ │ │ │ +226#define BCP_TYPE_SQLREAL BCP_TYPE_SQLREAL │ │ │ │ │ +227#define BCP_TYPE_SQLFLT4 BCP_TYPE_SQLFLT4 │ │ │ │ │ +228 BCP_TYPE_SQLBINARY = 45, /* 0x2D */ │ │ │ │ │ +229#define BCP_TYPE_SQLBINARY BCP_TYPE_SQLBINARY │ │ │ │ │ +230 BCP_TYPE_SQLVOID = 31, /* 0x1F */ │ │ │ │ │ +231#define BCP_TYPE_SQLVOID BCP_TYPE_SQLVOID │ │ │ │ │ +232 BCP_TYPE_SQLVARBINARY = 37, /* 0x25 */ │ │ │ │ │ +233#define BCP_TYPE_SQLVARBINARY BCP_TYPE_SQLVARBINARY │ │ │ │ │ +234 BCP_TYPE_SQLNUMERIC = 108, /* 0x6C */ │ │ │ │ │ +235#define BCP_TYPE_SQLNUMERIC BCP_TYPE_SQLNUMERIC │ │ │ │ │ +236 BCP_TYPE_SQLDECIMAL = 106, /* 0x6A */ │ │ │ │ │ +237#define BCP_TYPE_SQLDECIMAL BCP_TYPE_SQLDECIMAL │ │ │ │ │ +238 BCP_TYPE_SQLFLTN = 109, /* 0x6D */ │ │ │ │ │ +239#define BCP_TYPE_SQLFLTN BCP_TYPE_SQLFLTN │ │ │ │ │ +240 BCP_TYPE_SQLMONEYN = 110, /* 0x6E */ │ │ │ │ │ +241#define BCP_TYPE_SQLMONEYN BCP_TYPE_SQLMONEYN │ │ │ │ │ +242 BCP_TYPE_SQLDATETIMN = 111, /* 0x6F */ │ │ │ │ │ +243#define BCP_TYPE_SQLDATETIMN BCP_TYPE_SQLDATETIMN │ │ │ │ │ +244 BCP_TYPE_SQLNVARCHAR = 103, /* 0x67 */ │ │ │ │ │ +245#define BCP_TYPE_SQLNVARCHAR BCP_TYPE_SQLNVARCHAR │ │ │ │ │ +246 BCP_TYPE_SQLUNIQUEID = 36, /* 0x24 */ │ │ │ │ │ +247#define BCP_TYPE_SQLUNIQUEID BCP_TYPE_SQLUNIQUEID │ │ │ │ │ +248 BCP_TYPE_SQLDATETIME2 = 42, /* 0x2a */ │ │ │ │ │ +249#define BCP_TYPE_SQLDATETIME2 BCP_TYPE_SQLDATETIME2 │ │ │ │ │ +250}; │ │ │ │ │ +251 │ │ │ │ │ +252typedef struct │ │ │ │ │ +253{ │ │ │ │ │ +254 int dtdays; │ │ │ │ │ +255 int dttime; │ │ │ │ │ +256} _D_B_D_A_T_E_T_I_M_E; │ │ │ │ │ +257 │ │ │ │ │ +258#ifdef _MSC_VER │ │ │ │ │ +259#define TDSODBC_INLINE __inline │ │ │ │ │ +260#else │ │ │ │ │ +261#define TDSODBC_INLINE __inline__ │ │ │ │ │ +262#endif │ │ │ │ │ +263 │ │ │ │ │ +264struct tdsodbc_impl_bcp_init_params │ │ │ │ │ +265{ │ │ │ │ │ +266 const void *tblname; │ │ │ │ │ +267 const void *hfile; │ │ │ │ │ +268 const void *errfile; │ │ │ │ │ +269 int direction; │ │ │ │ │ +270}; │ │ │ │ │ +271 │ │ │ │ │ +272static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ +273bcp_initA(HDBC hdbc, const char *tblname, const char *hfile, const char │ │ │ │ │ +*errfile, int direction) │ │ │ │ │ +274{ │ │ │ │ │ +275 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, │ │ │ │ │ +direction}; │ │ │ │ │ +276 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_INITA, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ +277} │ │ │ │ │ +278 │ │ │ │ │ +279static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ +280bcp_initW(HDBC hdbc, const SQLWCHAR *tblname, const SQLWCHAR *hfile, const │ │ │ │ │ +SQLWCHAR *errfile, int direction) │ │ │ │ │ +281{ │ │ │ │ │ +282 struct tdsodbc_impl_bcp_init_params params = {tblname, hfile, errfile, │ │ │ │ │ +direction}; │ │ │ │ │ +283 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_INITW, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ +284} │ │ │ │ │ +285 │ │ │ │ │ +286struct tdsodbc_impl_bcp_control_params │ │ │ │ │ +287{ │ │ │ │ │ +288 int field; │ │ │ │ │ +289 void *value; │ │ │ │ │ +290}; │ │ │ │ │ +291 │ │ │ │ │ +292static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ +293_b_c_p___c_o_n_t_r_o_l(HDBC hdbc, int field, void *value) │ │ │ │ │ +294{ │ │ │ │ │ +295 struct tdsodbc_impl_bcp_control_params params = {field, value}; │ │ │ │ │ +296 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_CONTROL, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ +297} │ │ │ │ │ +298 │ │ │ │ │ +299struct tdsodbc_impl_bcp_colptr_params │ │ │ │ │ +300{ │ │ │ │ │ +301 const unsigned char * colptr; │ │ │ │ │ +302 int table_column; │ │ │ │ │ +303}; │ │ │ │ │ +304 │ │ │ │ │ +305static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ +306_b_c_p___c_o_l_p_t_r(HDBC hdbc, const unsigned char * colptr, int table_column) │ │ │ │ │ +307{ │ │ │ │ │ +308 struct tdsodbc_impl_bcp_colptr_params params = {colptr, table_column}; │ │ │ │ │ +309 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_COLPTR, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ +310} │ │ │ │ │ +311 │ │ │ │ │ +312static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ +313_b_c_p___s_e_n_d_r_o_w(HDBC hdbc) │ │ │ │ │ +314{ │ │ │ │ │ +315 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_SENDROW, NULL, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ +316} │ │ │ │ │ +317 │ │ │ │ │ +318struct tdsodbc_impl_bcp_batch_params │ │ │ │ │ +319{ │ │ │ │ │ +320 int rows; │ │ │ │ │ +321}; │ │ │ │ │ +322 │ │ │ │ │ +323static TDSODBC_INLINE int SQL_API │ │ │ │ │ +324_b_c_p___b_a_t_c_h(HDBC hdbc) │ │ │ │ │ +325{ │ │ │ │ │ +326 struct tdsodbc_impl_bcp_batch_params params = {-1}; │ │ │ │ │ +327 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_BATCH, ¶ms, SQL_IS_POINTER)) ? params.rows : -1; │ │ │ │ │ +328} │ │ │ │ │ +329 │ │ │ │ │ +330struct tdsodbc_impl_bcp_done_params │ │ │ │ │ +331{ │ │ │ │ │ +332 int rows; │ │ │ │ │ +333}; │ │ │ │ │ +334 │ │ │ │ │ +335static TDSODBC_INLINE int SQL_API │ │ │ │ │ +336_b_c_p___d_o_n_e(HDBC hdbc) │ │ │ │ │ +337{ │ │ │ │ │ +338 struct tdsodbc_impl_bcp_done_params params = {-1}; │ │ │ │ │ +339 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_DONE, ¶ms, SQL_IS_POINTER)) ? params.rows : -1; │ │ │ │ │ +340} │ │ │ │ │ +341 │ │ │ │ │ +342struct tdsodbc_impl_bcp_bind_params │ │ │ │ │ +343{ │ │ │ │ │ +344 const unsigned char * varaddr; │ │ │ │ │ +345 int prefixlen; │ │ │ │ │ +346 int varlen; │ │ │ │ │ +347 const unsigned char * terminator; │ │ │ │ │ +348 int termlen; │ │ │ │ │ +349 int vartype; │ │ │ │ │ +350 int table_column; │ │ │ │ │ +351}; │ │ │ │ │ 352 │ │ │ │ │ -353#define CS_CUR_STATUS TDS_STATIC_CAST(CS_INT, 9126) │ │ │ │ │ -354#define CS_CUR_ID TDS_STATIC_CAST(CS_INT, 9127) │ │ │ │ │ -355#define CS_CUR_NAME TDS_STATIC_CAST(CS_INT, 9128) │ │ │ │ │ -356#define CS_CUR_ROWCOUNT TDS_STATIC_CAST(CS_INT, 9129) │ │ │ │ │ -357 │ │ │ │ │ -358/* options accepted by ct_options() */ │ │ │ │ │ -359#define CS_OPT_DATEFIRST 5001 │ │ │ │ │ -360#define CS_OPT_TEXTSIZE 5002 │ │ │ │ │ -361#define CS_OPT_STATS_TIME 5003 │ │ │ │ │ -362#define CS_OPT_STATS_IO 5004 │ │ │ │ │ -363#define CS_OPT_ROWCOUNT 5005 │ │ │ │ │ -364#define CS_OPT_DATEFORMAT 5007 │ │ │ │ │ -365#define CS_OPT_ISOLATION 5008 │ │ │ │ │ -366#define CS_OPT_AUTHON 5009 │ │ │ │ │ -367#define CS_OPT_SHOWPLAN 5013 │ │ │ │ │ -368#define CS_OPT_NOEXEC 5014 │ │ │ │ │ -369#define CS_OPT_ARITHIGNORE 5015 │ │ │ │ │ -370#define CS_OPT_TRUNCIGNORE 5016 │ │ │ │ │ -371#define CS_OPT_ARITHABORT 5017 │ │ │ │ │ -372#define CS_OPT_PARSEONLY 5018 │ │ │ │ │ -373#define CS_OPT_GETDATA 5020 │ │ │ │ │ -374#define CS_OPT_NOCOUNT 5021 │ │ │ │ │ -375#define CS_OPT_FORCEPLAN 5023 │ │ │ │ │ -376#define CS_OPT_FORMATONLY 5024 │ │ │ │ │ -377#define CS_OPT_CHAINXACTS 5025 │ │ │ │ │ -378#define CS_OPT_CURCLOSEONXACT 5026 │ │ │ │ │ -379#define CS_OPT_FIPSFLAG 5027 │ │ │ │ │ -380#define CS_OPT_RESTREES 5028 │ │ │ │ │ -381#define CS_OPT_IDENTITYON 5029 │ │ │ │ │ -382#define CS_OPT_CURREAD 5030 │ │ │ │ │ -383#define CS_OPT_CURWRITE 5031 │ │ │ │ │ -384#define CS_OPT_IDENTITYOFF 5032 │ │ │ │ │ -385#define CS_OPT_AUTHOFF 5033 │ │ │ │ │ -386#define CS_OPT_ANSINULL 5034 │ │ │ │ │ -387#define CS_OPT_QUOTED_IDENT 5035 │ │ │ │ │ -388#define CS_OPT_ANSIPERM 5036 │ │ │ │ │ -389#define CS_OPT_STR_RTRUNC 5037 │ │ │ │ │ -390 │ │ │ │ │ -391/* options accepted by ct_command() */ │ │ │ │ │ -392enum ct_command_options │ │ │ │ │ -393{ │ │ │ │ │ -394 CS_MORE = 16, │ │ │ │ │ -395 CS_END = 32, │ │ │ │ │ -396 CS_RECOMPILE = 188, │ │ │ │ │ -397 CS_NO_RECOMPILE, │ │ │ │ │ -398 CS_BULK_INIT, │ │ │ │ │ -399 CS_BULK_CONT, │ │ │ │ │ -400 CS_BULK_DATA, │ │ │ │ │ -401 CS_COLUMN_DATA │ │ │ │ │ -402}; │ │ │ │ │ -403 │ │ │ │ │ -404 │ │ │ │ │ -405/* │ │ │ │ │ -406 * bind formats, should be mapped to TDS types │ │ │ │ │ -407 * can be a combination of bit │ │ │ │ │ -408 */ │ │ │ │ │ -409enum │ │ │ │ │ -410{ │ │ │ │ │ -411 CS_FMT_UNUSED = 0, │ │ │ │ │ -412#define CS_FMT_UNUSED CS_FMT_UNUSED │ │ │ │ │ -413 CS_FMT_NULLTERM = 1, │ │ │ │ │ -414#define CS_FMT_NULLTERM CS_FMT_NULLTERM │ │ │ │ │ -415 CS_FMT_PADNULL = 2, │ │ │ │ │ -416#define CS_FMT_PADBLANK CS_FMT_PADBLANK │ │ │ │ │ -417 CS_FMT_PADBLANK = 4, │ │ │ │ │ -418#define CS_FMT_PADNULL CS_FMT_PADNULL │ │ │ │ │ -419 CS_FMT_JUSTIFY_RT = 8 │ │ │ │ │ -420#define CS_FMT_JUSTIFY_RT CS_FMT_JUSTIFY_RT │ │ │ │ │ -421}; │ │ │ │ │ -422 │ │ │ │ │ -423/* callbacks */ │ │ │ │ │ -424#define CS_COMPLETION_CB 1 │ │ │ │ │ -425#define CS_SERVERMSG_CB 2 │ │ │ │ │ -426#define CS_CLIENTMSG_CB 3 │ │ │ │ │ -427#define CS_NOTIF_CB 4 │ │ │ │ │ -428#define CS_ENCRYPT_CB 5 │ │ │ │ │ -429#define CS_CHALLENGE_CB 6 │ │ │ │ │ -430#define CS_DS_LOOKUP_CB 7 │ │ │ │ │ -431#define CS_SECSESSION_CB 8 │ │ │ │ │ -432#define CS_SIGNAL_CB 100 │ │ │ │ │ -433#define CS_MESSAGE_CB 9119 │ │ │ │ │ -434 │ │ │ │ │ -435/* string types */ │ │ │ │ │ -436#define CS_NULLTERM -9 │ │ │ │ │ -437#define CS_WILDCARD -99 │ │ │ │ │ -438#define CS_NO_LIMIT -9999 │ │ │ │ │ -439#define CS_UNUSED -99999 │ │ │ │ │ -440 │ │ │ │ │ -441/* other */ │ │ │ │ │ -442#define CS_GET 33 │ │ │ │ │ -443#define CS_SET 34 │ │ │ │ │ -444#define CS_CLEAR 35 │ │ │ │ │ -445#define CS_INIT 36 │ │ │ │ │ -446#define CS_STATUS 37 │ │ │ │ │ -447#define CS_MSGLIMIT 38 │ │ │ │ │ -448#define CS_SUPPORTED 40 │ │ │ │ │ -449 │ │ │ │ │ -450#define CS_CMD_DONE 4046 │ │ │ │ │ -451#define CS_CMD_SUCCEED 4047 │ │ │ │ │ -452#define CS_CMD_FAIL 4048 │ │ │ │ │ -453 │ │ │ │ │ -454/* commands */ │ │ │ │ │ -455#define CS_LANG_CMD 148 │ │ │ │ │ -456#define CS_RPC_CMD 149 │ │ │ │ │ -457#define CS_SEND_DATA_CMD 151 │ │ │ │ │ -458#define CS_SEND_BULK_CMD 153 │ │ │ │ │ -459 │ │ │ │ │ -460#define CS_VERSION_100 112 │ │ │ │ │ -461#define CS_VERSION_110 1100 │ │ │ │ │ -462#define CS_VERSION_120 1100 │ │ │ │ │ -463#define CS_VERSION_125 12500 │ │ │ │ │ -464#define CS_VERSION_150 15000 │ │ │ │ │ -465 │ │ │ │ │ -466#define BLK_VERSION_100 CS_VERSION_100 │ │ │ │ │ -467#define BLK_VERSION_110 CS_VERSION_110 │ │ │ │ │ -468#define BLK_VERSION_120 CS_VERSION_120 │ │ │ │ │ -469#define BLK_VERSION_125 CS_VERSION_125 │ │ │ │ │ -470#define BLK_VERSION_150 CS_VERSION_150 │ │ │ │ │ -471 │ │ │ │ │ -472#define CS_FORCE_EXIT 300 │ │ │ │ │ -473#define CS_FORCE_CLOSE 301 │ │ │ │ │ -474 │ │ │ │ │ -475#define CS_SYNC_IO 8111 │ │ │ │ │ -476#define CS_ASYNC_IO 8112 │ │ │ │ │ -477#define CS_DEFER_IO 8113 │ │ │ │ │ -478 │ │ │ │ │ -479#define CS_CANCEL_CURRENT 6000 │ │ │ │ │ -480#define CS_CANCEL_ALL 6001 │ │ │ │ │ -481#define CS_CANCEL_ATTN 6002 │ │ │ │ │ -482 │ │ │ │ │ -483#define CS_ROW_COUNT 800 │ │ │ │ │ -484#define CS_CMD_NUMBER 801 │ │ │ │ │ -485#define CS_NUM_COMPUTES 802 │ │ │ │ │ -486#define CS_NUMDATA 803 │ │ │ │ │ -487#define CS_NUMORDERCOLS 805 │ │ │ │ │ -488#define CS_MSGTYPE 806 │ │ │ │ │ -489#define CS_BROWSE_INFO 807 │ │ │ │ │ -490#define CS_TRANS_STATE 808 │ │ │ │ │ -491 │ │ │ │ │ -492#define CS_TRAN_UNDEFINED 0 │ │ │ │ │ -493#define CS_TRAN_IN_PROGRESS 1 │ │ │ │ │ -494#define CS_TRAN_COMPLETED 2 │ │ │ │ │ -495#define CS_TRAN_FAIL 3 │ │ │ │ │ -496#define CS_TRAN_STMT_FAIL 4 │ │ │ │ │ -497 │ │ │ │ │ -498#define CS_COMP_OP 5350 │ │ │ │ │ -499#define CS_COMP_ID 5351 │ │ │ │ │ -500#define CS_COMP_COLID 5352 │ │ │ │ │ -501#define CS_COMP_BYLIST 5353 │ │ │ │ │ -502#define CS_BYLIST_LEN 5354 │ │ │ │ │ -503 │ │ │ │ │ -504#define CS_NO_COUNT -1 │ │ │ │ │ -505 │ │ │ │ │ -506#define CS_OP_SUM 5370 │ │ │ │ │ -507#define CS_OP_AVG 5371 │ │ │ │ │ -508#define CS_OP_COUNT 5372 │ │ │ │ │ -509#define CS_OP_MIN 5373 │ │ │ │ │ -510#define CS_OP_MAX 5374 │ │ │ │ │ -511 │ │ │ │ │ -512#define CS_CAP_REQUEST 1 │ │ │ │ │ -513#define CS_CAP_RESPONSE 2 │ │ │ │ │ -514 │ │ │ │ │ -515#define CS_PREPARE 717 │ │ │ │ │ -516#define CS_EXECUTE 718 │ │ │ │ │ -517#define CS_DESCRIBE_INPUT 720 │ │ │ │ │ -518#define CS_DESCRIBE_OUTPUT 721 │ │ │ │ │ -519 │ │ │ │ │ -520#define CS_DEALLOC 711 │ │ │ │ │ -521 │ │ │ │ │ -522#define CS_LC_ALL 7 │ │ │ │ │ -523#define CS_SYB_LANG 8 │ │ │ │ │ -524#define CS_SYB_CHARSET 9 │ │ │ │ │ -525#define CS_SYB_SORTORDER 10 │ │ │ │ │ -526#define CS_SYB_COLLATE CS_SYB_SORTORDER │ │ │ │ │ -527#define CS_SYB_LANG_CHARSET 11 │ │ │ │ │ -528 │ │ │ │ │ -529#define CS_BLK_IN 1 │ │ │ │ │ -530#define CS_BLK_OUT 2 │ │ │ │ │ -531 │ │ │ │ │ -532#define CS_BLK_BATCH 1 │ │ │ │ │ -533#define CS_BLK_ALL 2 │ │ │ │ │ -534#define CS_BLK_CANCEL 3 │ │ │ │ │ -535 │ │ │ │ │ -536/* to do support these */ │ │ │ │ │ -537 │ │ │ │ │ -538#define CS_BLK_ARRAY_MAXLEN 0x1000 │ │ │ │ │ -539#define CS_DEF_PREC 18 │ │ │ │ │ -540 │ │ │ │ │ -541/* Error Severities */ │ │ │ │ │ -542#define CS_SV_INFORM TDS_STATIC_CAST(CS_INT, 0) │ │ │ │ │ -543#define CS_SV_API_FAIL TDS_STATIC_CAST(CS_INT, 1) │ │ │ │ │ -544#define CS_SV_RETRY_FAIL TDS_STATIC_CAST(CS_INT, 2) │ │ │ │ │ -545#define CS_SV_RESOURCE_FAIL TDS_STATIC_CAST(CS_INT, 3) │ │ │ │ │ -546#define CS_SV_CONFIG_FAIL TDS_STATIC_CAST(CS_INT, 4) │ │ │ │ │ -547#define CS_SV_COMM_FAIL TDS_STATIC_CAST(CS_INT, 5) │ │ │ │ │ -548#define CS_SV_INTERNAL_FAIL TDS_STATIC_CAST(CS_INT, 6) │ │ │ │ │ -549#define CS_SV_FATAL TDS_STATIC_CAST(CS_INT, 7) │ │ │ │ │ -550 │ │ │ │ │ -551/* result_types */ │ │ │ │ │ -552#define CS_COMPUTE_RESULT 4045 │ │ │ │ │ -553#define CS_CURSOR_RESULT 4041 │ │ │ │ │ -554#define CS_PARAM_RESULT 4042 │ │ │ │ │ -555#define CS_ROW_RESULT 4040 │ │ │ │ │ -556#define CS_STATUS_RESULT 4043 │ │ │ │ │ -557#define CS_COMPUTEFMT_RESULT 4050 │ │ │ │ │ -558#define CS_ROWFMT_RESULT 4049 │ │ │ │ │ -559#define CS_MSG_RESULT 4044 │ │ │ │ │ -560#define CS_DESCRIBE_RESULT 4051 │ │ │ │ │ -561 │ │ │ │ │ -562/* bind types */ │ │ │ │ │ -563#define CS_ILLEGAL_TYPE TDS_STATIC_CAST(CS_INT, -1) │ │ │ │ │ -564#define CS_CHAR_TYPE TDS_STATIC_CAST(CS_INT, 0) │ │ │ │ │ -565#define CS_BINARY_TYPE TDS_STATIC_CAST(CS_INT, 1) │ │ │ │ │ -566#define CS_LONGCHAR_TYPE TDS_STATIC_CAST(CS_INT, 2) │ │ │ │ │ -567#define CS_LONGBINARY_TYPE TDS_STATIC_CAST(CS_INT, 3) │ │ │ │ │ -568#define CS_TEXT_TYPE TDS_STATIC_CAST(CS_INT, 4) │ │ │ │ │ -569#define CS_IMAGE_TYPE TDS_STATIC_CAST(CS_INT, 5) │ │ │ │ │ -570#define CS_TINYINT_TYPE TDS_STATIC_CAST(CS_INT, 6) │ │ │ │ │ -571#define CS_SMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 7) │ │ │ │ │ -572#define CS_INT_TYPE TDS_STATIC_CAST(CS_INT, 8) │ │ │ │ │ -573#define CS_REAL_TYPE TDS_STATIC_CAST(CS_INT, 9) │ │ │ │ │ -574#define CS_FLOAT_TYPE TDS_STATIC_CAST(CS_INT, 10) │ │ │ │ │ -575#define CS_BIT_TYPE TDS_STATIC_CAST(CS_INT, 11) │ │ │ │ │ -576#define CS_DATETIME_TYPE TDS_STATIC_CAST(CS_INT, 12) │ │ │ │ │ -577#define CS_DATETIME4_TYPE TDS_STATIC_CAST(CS_INT, 13) │ │ │ │ │ -578#define CS_MONEY_TYPE TDS_STATIC_CAST(CS_INT, 14) │ │ │ │ │ -579#define CS_MONEY4_TYPE TDS_STATIC_CAST(CS_INT, 15) │ │ │ │ │ -580#define CS_NUMERIC_TYPE TDS_STATIC_CAST(CS_INT, 16) │ │ │ │ │ -581#define CS_DECIMAL_TYPE TDS_STATIC_CAST(CS_INT, 17) │ │ │ │ │ -582#define CS_VARCHAR_TYPE TDS_STATIC_CAST(CS_INT, 18) │ │ │ │ │ -583#define CS_VARBINARY_TYPE TDS_STATIC_CAST(CS_INT, 19) │ │ │ │ │ -584#define CS_LONG_TYPE TDS_STATIC_CAST(CS_INT, 20) │ │ │ │ │ -585#define CS_SENSITIVITY_TYPE TDS_STATIC_CAST(CS_INT, 21) │ │ │ │ │ -586#define CS_BOUNDARY_TYPE TDS_STATIC_CAST(CS_INT, 22) │ │ │ │ │ -587#define CS_VOID_TYPE TDS_STATIC_CAST(CS_INT, 23) │ │ │ │ │ -588#define CS_USHORT_TYPE TDS_STATIC_CAST(CS_INT, 24) │ │ │ │ │ -589#define CS_UNICHAR_TYPE TDS_STATIC_CAST(CS_INT, 25) │ │ │ │ │ -590#define CS_BLOB_TYPE TDS_STATIC_CAST(CS_INT, 26) │ │ │ │ │ -591#define CS_DATE_TYPE TDS_STATIC_CAST(CS_INT, 27) │ │ │ │ │ -592#define CS_TIME_TYPE TDS_STATIC_CAST(CS_INT, 28) │ │ │ │ │ -593#define CS_UNITEXT_TYPE TDS_STATIC_CAST(CS_INT, 29) │ │ │ │ │ -594#define CS_BIGINT_TYPE TDS_STATIC_CAST(CS_INT, 30) │ │ │ │ │ -595#define CS_USMALLINT_TYPE TDS_STATIC_CAST(CS_INT, 31) │ │ │ │ │ -596#define CS_UINT_TYPE TDS_STATIC_CAST(CS_INT, 32) │ │ │ │ │ -597#define CS_UBIGINT_TYPE TDS_STATIC_CAST(CS_INT, 33) │ │ │ │ │ -598#define CS_XML_TYPE TDS_STATIC_CAST(CS_INT, 34) │ │ │ │ │ -599#define CS_BIGDATETIME_TYPE TDS_STATIC_CAST(CS_INT, 35) │ │ │ │ │ -600#define CS_BIGTIME_TYPE TDS_STATIC_CAST(CS_INT, 36) │ │ │ │ │ -601#define CS_UNIQUE_TYPE TDS_STATIC_CAST(CS_INT, 40) │ │ │ │ │ -602 │ │ │ │ │ -603#define CS_MIN_SYBTYPE CS_CHAR_TYPE │ │ │ │ │ -604#define CS_MAX_SYBTYPE CS_UNIQUE_TYPE │ │ │ │ │ -605 │ │ │ │ │ -606#define CS_USER_TYPE TDS_STATIC_CAST(CS_INT, 100) │ │ │ │ │ -607/* cs_dt_info type values */ │ │ │ │ │ -608enum │ │ │ │ │ -609{ │ │ │ │ │ -610 CS_MONTH = 7340, │ │ │ │ │ -611#define CS_MONTH CS_MONTH │ │ │ │ │ -612 CS_SHORTMONTH, │ │ │ │ │ -613#define CS_SHORTMONTH CS_SHORTMONTH │ │ │ │ │ -614 CS_DAYNAME, │ │ │ │ │ -615#define CS_DAYNAME CS_DAYNAME │ │ │ │ │ -616 CS_DATEORDER, │ │ │ │ │ -617#define CS_DATEORDER CS_DATEORDER │ │ │ │ │ -618 CS_12HOUR, │ │ │ │ │ -619#define CS_12HOUR CS_12HOUR │ │ │ │ │ -620 CS_DT_CONVFMT │ │ │ │ │ -621#define CS_DT_CONVFMT CS_DT_CONVFMT │ │ │ │ │ -622}; │ │ │ │ │ -623 │ │ │ │ │ -624/* DT_CONVFMT types */ │ │ │ │ │ -625enum │ │ │ │ │ -626{ │ │ │ │ │ -627 CS_DATES_SHORT = 0, │ │ │ │ │ -628#define CS_DATES_SHORT CS_DATES_SHORT │ │ │ │ │ -629 CS_DATES_MDY1, │ │ │ │ │ -630#define CS_DATES_MDY1 CS_DATES_MDY1 │ │ │ │ │ -631 CS_DATES_YMD1, │ │ │ │ │ -632#define CS_DATES_YMD1 CS_DATES_YMD1 │ │ │ │ │ -633 CS_DATES_DMY1, │ │ │ │ │ -634#define CS_DATES_DMY1 CS_DATES_DMY1 │ │ │ │ │ -635 CS_DATES_DMY2, │ │ │ │ │ -636#define CS_DATES_DMY2 CS_DATES_DMY2 │ │ │ │ │ -637 CS_DATES_DMY3, │ │ │ │ │ -638#define CS_DATES_DMY3 CS_DATES_DMY3 │ │ │ │ │ -639 CS_DATES_DMY4, │ │ │ │ │ -640#define CS_DATES_DMY4 CS_DATES_DMY4 │ │ │ │ │ -641 CS_DATES_MDY2, │ │ │ │ │ -642#define CS_DATES_MDY2 CS_DATES_MDY2 │ │ │ │ │ -643 CS_DATES_HMS, │ │ │ │ │ -644#define CS_DATES_HMS CS_DATES_HMS │ │ │ │ │ -645 CS_DATES_LONG, │ │ │ │ │ -646#define CS_DATES_LONG CS_DATES_LONG │ │ │ │ │ -647 CS_DATES_MDY3, │ │ │ │ │ -648#define CS_DATES_MDY3 CS_DATES_MDY3 │ │ │ │ │ -649 CS_DATES_YMD2, │ │ │ │ │ -650#define CS_DATES_YMD2 CS_DATES_YMD2 │ │ │ │ │ -651 CS_DATES_YMD3, │ │ │ │ │ -652#define CS_DATES_YMD3 CS_DATES_YMD3 │ │ │ │ │ -653 CS_DATES_YDM1, │ │ │ │ │ -654#define CS_DATES_YDM1 CS_DATES_YDM1 │ │ │ │ │ -655 CS_DATES_MYD1, │ │ │ │ │ -656#define CS_DATES_MYD1 CS_DATES_MYD1 │ │ │ │ │ -657 CS_DATES_DYM1, │ │ │ │ │ -658#define CS_DATES_DYM1 CS_DATES_DYM1 │ │ │ │ │ -659 CS_DATES_MDY1_YYYY = 101, │ │ │ │ │ -660#define CS_DATES_MDY1_YYYY CS_DATES_MDY1_YYYY │ │ │ │ │ -661 CS_DATES_YMD1_YYYY, │ │ │ │ │ -662#define CS_DATES_YMD1_YYYY CS_DATES_YMD1_YYYY │ │ │ │ │ -663 CS_DATES_DMY1_YYYY, │ │ │ │ │ -664#define CS_DATES_DMY1_YYYY CS_DATES_DMY1_YYYY │ │ │ │ │ -665 CS_DATES_DMY2_YYYY, │ │ │ │ │ -666#define CS_DATES_DMY2_YYYY CS_DATES_DMY2_YYYY │ │ │ │ │ -667 CS_DATES_DMY3_YYYY, │ │ │ │ │ -668#define CS_DATES_DMY3_YYYY CS_DATES_DMY3_YYYY │ │ │ │ │ -669 CS_DATES_DMY4_YYYY, │ │ │ │ │ -670#define CS_DATES_DMY4_YYYY CS_DATES_DMY4_YYYY │ │ │ │ │ -671 CS_DATES_MDY2_YYYY, │ │ │ │ │ -672#define CS_DATES_MDY2_YYYY CS_DATES_MDY2_YYYY │ │ │ │ │ -673 CS_DATES_MDY3_YYYY = 110, │ │ │ │ │ -674#define CS_DATES_MDY3_YYYY CS_DATES_MDY3_YYYY │ │ │ │ │ -675 CS_DATES_YMD2_YYYY, │ │ │ │ │ -676#define CS_DATES_YMD2_YYYY CS_DATES_YMD2_YYYY │ │ │ │ │ -677 CS_DATES_YMD3_YYYY │ │ │ │ │ -678#define CS_DATES_YMD3_YYYY CS_DATES_YMD3_YYYY │ │ │ │ │ -679}; │ │ │ │ │ -680 │ │ │ │ │ -681typedef CS_RETCODE(*CS_CONV_FUNC) (_C_S___C_O_N_T_E_X_T * context, _C_S___D_A_T_A_F_M_T * │ │ │ │ │ -srcfmt, CS_VOID * src, _C_S___D_A_T_A_F_M_T * detsfmt, CS_VOID * dest, │ │ │ │ │ -682 CS_INT * destlen); │ │ │ │ │ -683 │ │ │ │ │ -_6_8_4typedef struct ___c_s___o_b_j_n_a_m_e │ │ │ │ │ -685{ │ │ │ │ │ -686 CS_BOOL thinkexists; │ │ │ │ │ -687 CS_INT object_type; │ │ │ │ │ -688 CS_CHAR last_name[CS_MAX_NAME]; │ │ │ │ │ -689 CS_INT lnlen; │ │ │ │ │ -690 CS_CHAR first_name[CS_MAX_NAME]; │ │ │ │ │ -691 CS_INT fnlen; │ │ │ │ │ -692 CS_VOID *scope; │ │ │ │ │ -693 CS_INT scopelen; │ │ │ │ │ -694 CS_VOID *thread; │ │ │ │ │ -695 CS_INT threadlen; │ │ │ │ │ -696} _C_S___O_B_J_N_A_M_E; │ │ │ │ │ -697 │ │ │ │ │ -_6_9_8typedef struct ___c_s___o_b_j_d_a_t_a │ │ │ │ │ -699{ │ │ │ │ │ -700 CS_BOOL actuallyexists; │ │ │ │ │ -701 _C_S___C_O_N_N_E_C_T_I_O_N *connection; │ │ │ │ │ -702 _C_S___C_O_M_M_A_N_D *command; │ │ │ │ │ -703 CS_VOID *buffer; │ │ │ │ │ -704 CS_INT buflen; │ │ │ │ │ -705} _C_S___O_B_J_D_A_T_A; │ │ │ │ │ -706 │ │ │ │ │ -707/* Eventually, these should be in terms of TDS values */ │ │ │ │ │ -708enum │ │ │ │ │ -709{ │ │ │ │ │ -710 CS_OPT_MONDAY = 1, │ │ │ │ │ -711 CS_OPT_TUESDAY, │ │ │ │ │ -712 CS_OPT_WEDNESDAY, │ │ │ │ │ -713 CS_OPT_THURSDAY, │ │ │ │ │ -714 CS_OPT_FRIDAY, │ │ │ │ │ -715 CS_OPT_SATURDAY, │ │ │ │ │ -716 CS_OPT_SUNDAY │ │ │ │ │ -717}; │ │ │ │ │ -718enum │ │ │ │ │ -719{ │ │ │ │ │ -720 CS_OPT_FMTMDY = 1, │ │ │ │ │ -721 CS_OPT_FMTDMY, │ │ │ │ │ -722 CS_OPT_FMTYMD, │ │ │ │ │ -723 CS_OPT_FMTYDM, │ │ │ │ │ -724 CS_OPT_FMTMYD, │ │ │ │ │ -725 CS_OPT_FMTDYM │ │ │ │ │ -726}; │ │ │ │ │ -727enum │ │ │ │ │ -728{ │ │ │ │ │ -729 CS_OPT_LEVEL0 = 0, │ │ │ │ │ -730 CS_OPT_LEVEL1, │ │ │ │ │ -731 CS_OPT_LEVEL2, │ │ │ │ │ -732 CS_OPT_LEVEL3 │ │ │ │ │ -733}; │ │ │ │ │ -734 │ │ │ │ │ -735#define CS_FALSE 0 │ │ │ │ │ -736#define CS_TRUE 1 │ │ │ │ │ -737 │ │ │ │ │ -738#define SRV_PROC CS_VOID │ │ │ │ │ -739 │ │ │ │ │ -740/* constants required for ct_diag (not jet implemented) */ │ │ │ │ │ -741#define CS_CLIENTMSG_TYPE 4700 │ │ │ │ │ -742#define CS_SERVERMSG_TYPE 4701 │ │ │ │ │ -743#define CS_ALLMSG_TYPE 4702 │ │ │ │ │ -744 │ │ │ │ │ -745CS_RETCODE cs_convert(_C_S___C_O_N_T_E_X_T * ctx, _C_S___D_A_T_A_F_M_T * srcfmt, CS_VOID * │ │ │ │ │ -srcdata, _C_S___D_A_T_A_F_M_T * destfmt, CS_VOID * destdata, │ │ │ │ │ -746 CS_INT * resultlen); │ │ │ │ │ -747CS_RETCODE cs_ctx_alloc(CS_INT version, _C_S___C_O_N_T_E_X_T ** ctx); │ │ │ │ │ -748CS_RETCODE cs_ctx_global(CS_INT version, _C_S___C_O_N_T_E_X_T ** ctx); │ │ │ │ │ -749CS_RETCODE cs_ctx_drop(_C_S___C_O_N_T_E_X_T * ctx); │ │ │ │ │ -750CS_RETCODE cs_config(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT property, │ │ │ │ │ -CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -751CS_RETCODE cs_strbuild(_C_S___C_O_N_T_E_X_T * ctx, CS_CHAR * buffer, CS_INT buflen, │ │ │ │ │ -CS_INT * resultlen, CS_CHAR * text, CS_INT textlen, │ │ │ │ │ -752 CS_CHAR * formats, CS_INT formatlen, ...); │ │ │ │ │ -753#undef cs_dt_crack │ │ │ │ │ -754CS_RETCODE cs_dt_crack(_C_S___C_O_N_T_E_X_T * ctx, CS_INT datetype, CS_VOID * dateval, │ │ │ │ │ -_C_S___D_A_T_E_R_E_C * daterec); │ │ │ │ │ -755CS_RETCODE cs_dt_crack_v2(_C_S___C_O_N_T_E_X_T * ctx, CS_INT datetype, CS_VOID * │ │ │ │ │ -dateval, _C_S___D_A_T_E_R_E_C * daterec); │ │ │ │ │ -756#define cs_dt_crack cs_dt_crack_v2 │ │ │ │ │ -757CS_RETCODE cs_loc_alloc(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E ** locptr); │ │ │ │ │ -758CS_RETCODE cs_loc_drop(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * locale); │ │ │ │ │ -759CS_RETCODE cs_locale(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, _C_S___L_O_C_A_L_E * locale, │ │ │ │ │ -CS_INT type, CS_VOID * buffer, CS_INT buflen, │ │ │ │ │ -760 CS_INT * outlen); │ │ │ │ │ -761CS_RETCODE cs_dt_info(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, _C_S___L_O_C_A_L_E * locale, │ │ │ │ │ -CS_INT type, CS_INT item, CS_VOID * buffer, │ │ │ │ │ -762 CS_INT buflen, CS_INT * outlen); │ │ │ │ │ -763 │ │ │ │ │ -764CS_RETCODE cs_calc(_C_S___C_O_N_T_E_X_T * ctx, CS_INT op, CS_INT datatype, CS_VOID * │ │ │ │ │ -var1, CS_VOID * var2, CS_VOID * dest); │ │ │ │ │ -765CS_RETCODE cs_cmp(_C_S___C_O_N_T_E_X_T * ctx, CS_INT datatype, CS_VOID * var1, CS_VOID │ │ │ │ │ -* var2, CS_INT * result); │ │ │ │ │ -766CS_RETCODE cs_conv_mult(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * srcloc, _C_S___L_O_C_A_L_E * │ │ │ │ │ -destloc, CS_INT * conv_multiplier); │ │ │ │ │ -767CS_RETCODE cs_diag(_C_S___C_O_N_T_E_X_T * ctx, CS_INT operation, CS_INT type, CS_INT │ │ │ │ │ -idx, CS_VOID * buffer); │ │ │ │ │ -768CS_RETCODE cs_manage_convert(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT │ │ │ │ │ -srctype, CS_CHAR * srcname, CS_INT srcnamelen, CS_INT desttype, │ │ │ │ │ -769 CS_CHAR * destname, CS_INT destnamelen, CS_INT * conv_multiplier, │ │ │ │ │ -CS_CONV_FUNC * func); │ │ │ │ │ -770CS_RETCODE cs_objects(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, _C_S___O_B_J_N_A_M_E * objname, │ │ │ │ │ -_C_S___O_B_J_D_A_T_A * objdata); │ │ │ │ │ -771CS_RETCODE cs_set_convert(_C_S___C_O_N_T_E_X_T * ctx, CS_INT action, CS_INT srctype, │ │ │ │ │ -CS_INT desttype, CS_CONV_FUNC * func); │ │ │ │ │ -772CS_RETCODE cs_setnull(_C_S___C_O_N_T_E_X_T * ctx, _C_S___D_A_T_A_F_M_T * datafmt, CS_VOID * │ │ │ │ │ -buffer, CS_INT buflen); │ │ │ │ │ -773CS_RETCODE cs_strcmp(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * locale, CS_INT type, │ │ │ │ │ -CS_CHAR * str1, CS_INT len1, CS_CHAR * str2, CS_INT len2, │ │ │ │ │ -774 CS_INT * result); │ │ │ │ │ -775CS_RETCODE cs_time(_C_S___C_O_N_T_E_X_T * ctx, _C_S___L_O_C_A_L_E * locale, CS_VOID * buffer, │ │ │ │ │ -CS_INT buflen, CS_INT * outlen, _C_S___D_A_T_E_R_E_C * daterec); │ │ │ │ │ -776CS_RETCODE cs_will_convert(_C_S___C_O_N_T_E_X_T * ctx, CS_INT srctype, CS_INT │ │ │ │ │ -desttype, CS_BOOL * result); │ │ │ │ │ -777 │ │ │ │ │ -778const char * cs_prretcode(int retcode); │ │ │ │ │ -779 │ │ │ │ │ -780#ifdef __cplusplus │ │ │ │ │ -781#if 0 │ │ │ │ │ -782{ │ │ │ │ │ -783#endif │ │ │ │ │ -784} │ │ │ │ │ -785#endif │ │ │ │ │ -786 │ │ │ │ │ -787#endif │ │ │ │ │ -___c_s___o_b_j_n_a_m_e │ │ │ │ │ -DDeeffiinniittiioonn cspublic.h:685 │ │ │ │ │ -___c_s___o_b_j_d_a_t_a │ │ │ │ │ -DDeeffiinniittiioonn cspublic.h:699 │ │ │ │ │ -___c_s___d_a_t_a_f_m_t │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ -___c_s___d_a_t_e_r_e_c │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:159 │ │ │ │ │ -___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:177 │ │ │ │ │ -___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ -DDeeffiinniittiioonn cstypes.h:191 │ │ │ │ │ -___c_s___c_o_n_t_e_x_t │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:75 │ │ │ │ │ -___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ -___c_s___c_o_m_m_a_n_d │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:212 │ │ │ │ │ -___c_s___b_l_k_d_e_s_c │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:239 │ │ │ │ │ -___c_s___l_o_c_a_l_e │ │ │ │ │ -DDeeffiinniittiioonn ctlib.h:248 │ │ │ │ │ +353static TDSODBC_INLINE RETCODE SQL_API │ │ │ │ │ +354_b_c_p___b_i_n_d(HDBC hdbc, const unsigned char * varaddr, int prefixlen, int │ │ │ │ │ +varlen, │ │ │ │ │ +355 const unsigned char * terminator, int termlen, int vartype, int │ │ │ │ │ +table_column) │ │ │ │ │ +356{ │ │ │ │ │ +357 struct tdsodbc_impl_bcp_bind_params params = {varaddr, prefixlen, varlen, │ │ │ │ │ +terminator, termlen, vartype, table_column}; │ │ │ │ │ +358 return SQL_SUCCEEDED(SQLSetConnectAttr(hdbc, │ │ │ │ │ +SQL_COPT_TDSODBC_IMPL_BCP_BIND, ¶ms, SQL_IS_POINTER)) ? SUCCEED : FAIL; │ │ │ │ │ +359} │ │ │ │ │ +360 │ │ │ │ │ +361#ifdef UNICODE │ │ │ │ │ +362#define bcp_init bcp_initW │ │ │ │ │ +363#else │ │ │ │ │ +364#define bcp_init bcp_initA │ │ │ │ │ +365#endif │ │ │ │ │ +366 │ │ │ │ │ +367#endif /* TDSODBC_BCP */ │ │ │ │ │ +368 │ │ │ │ │ +369#ifdef __cplusplus │ │ │ │ │ +370} │ │ │ │ │ +371#endif │ │ │ │ │ +372 │ │ │ │ │ +373#endif /* _odbcss_h_ */ │ │ │ │ │ +_b_c_p___c_o_n_t_r_o_l │ │ │ │ │ +RETCODE bcp_control(DBPROCESS *dbproc, int field, DBINT value) │ │ │ │ │ +Set BCP options for uploading a datafile. │ │ │ │ │ +DDeeffiinniittiioonn bcp.c:544 │ │ │ │ │ +_b_c_p___c_o_l_p_t_r │ │ │ │ │ +RETCODE bcp_colptr(DBPROCESS *dbproc, BYTE *colptr, int table_column) │ │ │ │ │ +Override bcp_bind() by pointing to a different host variable. │ │ │ │ │ +DDeeffiinniittiioonn bcp.c:671 │ │ │ │ │ +_b_c_p___b_i_n_d │ │ │ │ │ +RETCODE bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, │ │ │ │ │ +BYTE *terminator, int termlen, int db_vartype, int table_column) │ │ │ │ │ +Bind a program host variable to a database column. │ │ │ │ │ +DDeeffiinniittiioonn bcp.c:2079 │ │ │ │ │ +_b_c_p___d_o_n_e │ │ │ │ │ +DBINT bcp_done(DBPROCESS *dbproc) │ │ │ │ │ +Conclude the transfer of data from program variables. │ │ │ │ │ +DDeeffiinniittiioonn bcp.c:2037 │ │ │ │ │ +_b_c_p___b_a_t_c_h │ │ │ │ │ +DBINT bcp_batch(DBPROCESS *dbproc) │ │ │ │ │ +Commit a set of rows to the table. │ │ │ │ │ +DDeeffiinniittiioonn bcp.c:2010 │ │ │ │ │ +_b_c_p___s_e_n_d_r_o_w │ │ │ │ │ +RETCODE bcp_sendrow(DBPROCESS *dbproc) │ │ │ │ │ +Write data in host variables to the table. │ │ │ │ │ +DDeeffiinniittiioonn bcp.c:1381 │ │ │ │ │ +_t_a_g_S_S___T_I_M_E_2___S_T_R_U_C_T │ │ │ │ │ +DDeeffiinniittiioonn odbcss.h:132 │ │ │ │ │ +_t_a_g_S_S___T_I_M_E_S_T_A_M_P_O_F_F_S_E_T___S_T_R_U_C_T │ │ │ │ │ +DDeeffiinniittiioonn odbcss.h:139 │ │ │ │ │ +_D_B_D_A_T_E_T_I_M_E │ │ │ │ │ +DDeeffiinniittiioonn sybdb.h:295 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00491_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/tds_sysdep_public.h Source File │ │ │ │ +FreeTDS API: include/bkpublic.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
tds_sysdep_public.h
│ │ │ │ +
bkpublic.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998-2011 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,117 +96,67 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _tds_sysdep_public_h_
│ │ │ │ -
21#define _tds_sysdep_public_h_
│ │ │ │ +
20#ifndef _bkpublic_h_
│ │ │ │ +
21#define _bkpublic_h_
│ │ │ │
22
│ │ │ │ -
23/*
│ │ │ │ -
24 * This file is publicly installed.
│ │ │ │ -
25 * MUST not include config.h
│ │ │ │ -
26 */
│ │ │ │ -
27
│ │ │ │ -
28#if (!defined(_MSC_VER) && defined(__cplusplus) && __cplusplus >= 201103L) || \
│ │ │ │ -
29 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
│ │ │ │ -
30# include <stdint.h>
│ │ │ │ -
31#elif (defined(__sun) && defined(__SVR4)) || defined(__hpux)
│ │ │ │ -
32# include <inttypes.h>
│ │ │ │ -
33#else
│ │ │ │ -
34typedef signed char int8_t; /* 8-bit int */
│ │ │ │ -
35typedef unsigned char uint8_t; /* 8-bit int */
│ │ │ │ -
36/*
│ │ │ │ -
37 * This is where platform-specific changes need to be made.
│ │ │ │ -
38 */
│ │ │ │ -
39# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
│ │ │ │ -
40# include <winsock2.h>
│ │ │ │ -
41# include <ws2tcpip.h>
│ │ │ │ -
42# include <windows.h>
│ │ │ │ -
43 typedef signed short int16_t; /* 16-bit int */
│ │ │ │ -
44 typedef unsigned short uint16_t; /* 16-bit int */
│ │ │ │ -
45 typedef signed int int32_t; /* 32-bit int */
│ │ │ │ -
46 typedef unsigned int uint32_t; /* 32-bit int */
│ │ │ │ -
47 typedef signed __int64 int64_t; /* 64-bit int */
│ │ │ │ -
48 typedef unsigned __int64 uint64_t; /* 64-bit int */
│ │ │ │ -
49# if !defined(WIN64) && !defined(_WIN64)
│ │ │ │ -
50 typedef signed int intptr_t; /* 32-bit int */
│ │ │ │ -
51 typedef unsigned int uintptr_t; /* 32-bit int */
│ │ │ │ -
52# else
│ │ │ │ -
53 typedef signed __int64 intptr_t; /* 64-bit int */
│ │ │ │ -
54 typedef unsigned __int64 uintptr_t; /* 64-bit int */
│ │ │ │ -
55# endif
│ │ │ │ -
56# else /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */
│ │ │ │ -
57 typedef signed short int16_t; /* 16-bit int */
│ │ │ │ -
58 typedef unsigned short uint16_t; /* 16-bit int */
│ │ │ │ -
59 typedef signed int int32_t; /* 32-bit int */
│ │ │ │ -
60 typedef unsigned int uint32_t; /* 32-bit int */
│ │ │ │ -
61 typedef signed long long int64_t; /* 64-bit int */
│ │ │ │ -
62 typedef unsigned long long uint64_t; /* 64-bit int */
│ │ │ │ -
63 typedef signed int intptr_t;
│ │ │ │ -
64 typedef unsigned int uintptr_t;
│ │ │ │ -
65# endif
│ │ │ │ -
66#endif
│ │ │ │ -
67
│ │ │ │ -
68#include <float.h>
│ │ │ │ -
69
│ │ │ │ -
70/* try to understand float sizes using float.h constants */
│ │ │ │ -
71#if FLT_RADIX == 2
│ │ │ │ -
72# if FLT_MANT_DIG == 24 && FLT_MAX_EXP == 128
│ │ │ │ -
73# define tds_sysdep_real32_type float /* 32-bit real */
│ │ │ │ -
74# elif DBL_MANT_DIG == 24 && DBL_MAX_EXP == 128
│ │ │ │ -
75# define tds_sysdep_real32_type double /* 32-bit real */
│ │ │ │ -
76# elif LDBL_MANT_DIG == 24 && LDBL_MAX_EXP == 128
│ │ │ │ -
77# define tds_sysdep_real32_type long double /* 32-bit real */
│ │ │ │ -
78# endif
│ │ │ │ -
79# if FLT_MANT_DIG == 53 && FLT_MAX_EXP == 1024
│ │ │ │ -
80# define tds_sysdep_real64_type float /* 64-bit real */
│ │ │ │ -
81# elif DBL_MANT_DIG == 53 && DBL_MAX_EXP == 1024
│ │ │ │ -
82# define tds_sysdep_real64_type double /* 64-bit real */
│ │ │ │ -
83# elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
│ │ │ │ -
84# define tds_sysdep_real64_type long double /* 64-bit real */
│ │ │ │ -
85# endif
│ │ │ │ -
86# if !defined(tds_sysdep_real32_type) || !defined(tds_sysdep_real64_type)
│ │ │ │ -
87# error Some float type was not found!
│ │ │ │ -
88# endif
│ │ │ │ -
89#else
│ │ │ │ -
90# if FLT_DIG == 6 && FLT_MAX_10_EXP == 38
│ │ │ │ -
91# define tds_sysdep_real32_type float /* 32-bit real */
│ │ │ │ -
92# elif DBL_DIG == 6 && DBL_MAX_10_EXP == 38
│ │ │ │ -
93# define tds_sysdep_real32_type double /* 32-bit real */
│ │ │ │ -
94# elif LDBL_DIG == 6 && LDBL_MAX_10_EXP == 38
│ │ │ │ -
95# define tds_sysdep_real32_type long double /* 32-bit real */
│ │ │ │ -
96# endif
│ │ │ │ -
97# if FLT_DIG == 15 && FLT_MAX_10_EXP == 308
│ │ │ │ -
98# define tds_sysdep_real64_type float /* 64-bit real */
│ │ │ │ -
99# elif DBL_DIG == 15 && DBL_MAX_10_EXP == 308
│ │ │ │ -
100# define tds_sysdep_real64_type double /* 64-bit real */
│ │ │ │ -
101# elif LDBL_DIG == 15 && LDBL_MAX_10_EXP == 308
│ │ │ │ -
102# define tds_sysdep_real64_type long double /* 64-bit real */
│ │ │ │ -
103# endif
│ │ │ │ -
104#endif
│ │ │ │ -
105
│ │ │ │ -
106/* fall back to configure.ac types */
│ │ │ │ -
107#ifndef tds_sysdep_real32_type
│ │ │ │ -
108#define tds_sysdep_real32_type float /* 32-bit real */
│ │ │ │ -
109#endif /* !tds_sysdep_real32_type */
│ │ │ │ -
110
│ │ │ │ -
111#ifndef tds_sysdep_real64_type
│ │ │ │ -
112#define tds_sysdep_real64_type double /* 64-bit real */
│ │ │ │ -
113#endif /* !tds_sysdep_real64_type */
│ │ │ │ -
114
│ │ │ │ -
115#if !defined(MSDBLIB) && !defined(SYBDBLIB)
│ │ │ │ -
116#define SYBDBLIB 1
│ │ │ │ -
117#endif
│ │ │ │ -
118#if defined(MSDBLIB) && defined(SYBDBLIB)
│ │ │ │ -
119#error MSDBLIB and SYBDBLIB cannot both be defined
│ │ │ │ -
120#endif
│ │ │ │ -
121
│ │ │ │ -
122#endif /* _tds_sysdep_public_h_ */
│ │ │ │ +
23static const char rcsid_bkpublic_h[] = "$Id: bkpublic.h,v 1.5 2004-10-28 12:42:11 freddy77 Exp $";
│ │ │ │ +
24static const void *const no_unused_bkpublic_h_warn[] = { rcsid_bkpublic_h, no_unused_bkpublic_h_warn };
│ │ │ │ +
25
│ │ │ │ +
26/* seperate this stuff out later */
│ │ │ │ +
27#include <cspublic.h>
│ │ │ │ +
28
│ │ │ │ +
29#ifdef __cplusplus
│ │ │ │ +
30extern "C"
│ │ │ │ +
31{
│ │ │ │ +
32#if 0
│ │ │ │ +
33}
│ │ │ │ +
34#endif
│ │ │ │ +
35#endif
│ │ │ │ +
36
│ │ │ │ +
37/* buld properties start with 1 i guess */
│ │ │ │ +
38#define BLK_IDENTITY 1
│ │ │ │ +
39
│ │ │ │ +
40CS_RETCODE blk_alloc(CS_CONNECTION * connection, CS_INT version, CS_BLKDESC ** blk_pointer);
│ │ │ │ +
41CS_RETCODE blk_bind(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt, CS_VOID * buffer, CS_INT * datalen,
│ │ │ │ +
42 CS_SMALLINT * indicator);
│ │ │ │ +
43CS_RETCODE blk_colval(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp, CS_INT colnum, CS_VOID * valuep,
│ │ │ │ +
44 CS_INT valuelen, CS_INT * outlenp);
│ │ │ │ +
45CS_RETCODE blk_default(CS_BLKDESC * blkdesc, CS_INT colnum, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
46CS_RETCODE blk_describe(CS_BLKDESC * blkdesc, CS_INT colnum, CS_DATAFMT * datafmt);
│ │ │ │ +
47CS_RETCODE blk_done(CS_BLKDESC * blkdesc, CS_INT type, CS_INT * outrow);
│ │ │ │ +
48CS_RETCODE blk_drop(CS_BLKDESC * blkdesc);
│ │ │ │ +
49CS_RETCODE blk_getrow(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp);
│ │ │ │ +
50CS_RETCODE blk_gettext(SRV_PROC * srvproc, CS_BLKDESC * blkdescp, CS_BLK_ROW * rowp, CS_INT bufsize, CS_INT * outlenp);
│ │ │ │ +
51CS_RETCODE blk_init(CS_BLKDESC * blkdesc, CS_INT direction, CS_CHAR * tablename, CS_INT tnamelen);
│ │ │ │ +
52CS_RETCODE blk_props(CS_BLKDESC * blkdesc, CS_INT action, CS_INT property, CS_VOID * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
53CS_RETCODE blk_rowalloc(SRV_PROC * srvproc, CS_BLK_ROW ** row);
│ │ │ │ +
54CS_RETCODE blk_rowdrop(SRV_PROC * srvproc, CS_BLK_ROW * row);
│ │ │ │ +
55CS_RETCODE blk_rowxfer(CS_BLKDESC * blkdesc);
│ │ │ │ +
56CS_RETCODE blk_rowxfer_mult(CS_BLKDESC * blkdesc, CS_INT * row_count);
│ │ │ │ +
57CS_RETCODE blk_sendrow(CS_BLKDESC * blkdesc, CS_BLK_ROW * row);
│ │ │ │ +
58CS_RETCODE blk_sendtext(CS_BLKDESC * blkdesc, CS_BLK_ROW * row, CS_BYTE * buffer, CS_INT buflen);
│ │ │ │ +
59CS_RETCODE blk_srvinit(SRV_PROC * srvproc, CS_BLKDESC * blkdescp);
│ │ │ │ +
60CS_RETCODE blk_textxfer(CS_BLKDESC * blkdesc, CS_BYTE * buffer, CS_INT buflen, CS_INT * outlen);
│ │ │ │ +
61
│ │ │ │ +
62#ifdef __cplusplus
│ │ │ │ +
63#if 0
│ │ │ │ +
64{
│ │ │ │ +
65#endif
│ │ │ │ +
66}
│ │ │ │ +
67#endif
│ │ │ │ +
68
│ │ │ │ +
69#endif
│ │ │ │ +
Definition cstypes.h:114
│ │ │ │ +
Definition ctlib.h:117
│ │ │ │ +
Definition ctlib.h:239
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -tds_sysdep_public.h │ │ │ │ │ +bkpublic.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998-2011 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,113 +19,78 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _tds_sysdep_public_h_ │ │ │ │ │ -21#define _tds_sysdep_public_h_ │ │ │ │ │ +20#ifndef _bkpublic_h_ │ │ │ │ │ +21#define _bkpublic_h_ │ │ │ │ │ 22 │ │ │ │ │ -23/* │ │ │ │ │ -24 * This file is publicly installed. │ │ │ │ │ -25 * MUST not include config.h │ │ │ │ │ -26 */ │ │ │ │ │ -27 │ │ │ │ │ -28#if (!defined(_MSC_VER) && defined(__cplusplus) && __cplusplus >= 201103L) || │ │ │ │ │ -\ │ │ │ │ │ -29 (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) │ │ │ │ │ -30# include │ │ │ │ │ -31#elif (defined(__sun) && defined(__SVR4)) || defined(__hpux) │ │ │ │ │ -32# include │ │ │ │ │ -33#else │ │ │ │ │ -34typedef signed char int8_t; /* 8-bit int */ │ │ │ │ │ -35typedef unsigned char uint8_t; /* 8-bit int */ │ │ │ │ │ -36/* │ │ │ │ │ -37 * This is where platform-specific changes need to be made. │ │ │ │ │ -38 */ │ │ │ │ │ -39# if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) │ │ │ │ │ -40# include │ │ │ │ │ -41# include │ │ │ │ │ -42# include │ │ │ │ │ -43 typedef signed short int16_t; /* 16-bit int */ │ │ │ │ │ -44 typedef unsigned short uint16_t; /* 16-bit int */ │ │ │ │ │ -45 typedef signed int int32_t; /* 32-bit int */ │ │ │ │ │ -46 typedef unsigned int uint32_t; /* 32-bit int */ │ │ │ │ │ -47 typedef signed __int64 int64_t; /* 64-bit int */ │ │ │ │ │ -48 typedef unsigned __int64 uint64_t; /* 64-bit int */ │ │ │ │ │ -49# if !defined(WIN64) && !defined(_WIN64) │ │ │ │ │ -50 typedef signed int intptr_t; /* 32-bit int */ │ │ │ │ │ -51 typedef unsigned int uintptr_t; /* 32-bit int */ │ │ │ │ │ -52# else │ │ │ │ │ -53 typedef signed __int64 intptr_t; /* 64-bit int */ │ │ │ │ │ -54 typedef unsigned __int64 uintptr_t; /* 64-bit int */ │ │ │ │ │ -55# endif │ │ │ │ │ -56# else /* defined(WIN32) || defined(_WIN32) || defined(__WIN32__) */ │ │ │ │ │ -57 typedef signed short int16_t; /* 16-bit int */ │ │ │ │ │ -58 typedef unsigned short uint16_t; /* 16-bit int */ │ │ │ │ │ -59 typedef signed int int32_t; /* 32-bit int */ │ │ │ │ │ -60 typedef unsigned int uint32_t; /* 32-bit int */ │ │ │ │ │ -61 typedef signed long long int64_t; /* 64-bit int */ │ │ │ │ │ -62 typedef unsigned long long uint64_t; /* 64-bit int */ │ │ │ │ │ -63 typedef signed int intptr_t; │ │ │ │ │ -64 typedef unsigned int uintptr_t; │ │ │ │ │ -65# endif │ │ │ │ │ -66#endif │ │ │ │ │ -67 │ │ │ │ │ -68#include │ │ │ │ │ -69 │ │ │ │ │ -70/* try to understand float sizes using float.h constants */ │ │ │ │ │ -71#if FLT_RADIX == 2 │ │ │ │ │ -72# if FLT_MANT_DIG == 24 && FLT_MAX_EXP == 128 │ │ │ │ │ -73# define tds_sysdep_real32_type float /* 32-bit real */ │ │ │ │ │ -74# elif DBL_MANT_DIG == 24 && DBL_MAX_EXP == 128 │ │ │ │ │ -75# define tds_sysdep_real32_type double /* 32-bit real */ │ │ │ │ │ -76# elif LDBL_MANT_DIG == 24 && LDBL_MAX_EXP == 128 │ │ │ │ │ -77# define tds_sysdep_real32_type long double /* 32-bit real */ │ │ │ │ │ -78# endif │ │ │ │ │ -79# if FLT_MANT_DIG == 53 && FLT_MAX_EXP == 1024 │ │ │ │ │ -80# define tds_sysdep_real64_type float /* 64-bit real */ │ │ │ │ │ -81# elif DBL_MANT_DIG == 53 && DBL_MAX_EXP == 1024 │ │ │ │ │ -82# define tds_sysdep_real64_type double /* 64-bit real */ │ │ │ │ │ -83# elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024 │ │ │ │ │ -84# define tds_sysdep_real64_type long double /* 64-bit real */ │ │ │ │ │ -85# endif │ │ │ │ │ -86# if !defined(tds_sysdep_real32_type) || !defined(tds_sysdep_real64_type) │ │ │ │ │ -87# error Some float type was not found! │ │ │ │ │ -88# endif │ │ │ │ │ -89#else │ │ │ │ │ -90# if FLT_DIG == 6 && FLT_MAX_10_EXP == 38 │ │ │ │ │ -91# define tds_sysdep_real32_type float /* 32-bit real */ │ │ │ │ │ -92# elif DBL_DIG == 6 && DBL_MAX_10_EXP == 38 │ │ │ │ │ -93# define tds_sysdep_real32_type double /* 32-bit real */ │ │ │ │ │ -94# elif LDBL_DIG == 6 && LDBL_MAX_10_EXP == 38 │ │ │ │ │ -95# define tds_sysdep_real32_type long double /* 32-bit real */ │ │ │ │ │ -96# endif │ │ │ │ │ -97# if FLT_DIG == 15 && FLT_MAX_10_EXP == 308 │ │ │ │ │ -98# define tds_sysdep_real64_type float /* 64-bit real */ │ │ │ │ │ -99# elif DBL_DIG == 15 && DBL_MAX_10_EXP == 308 │ │ │ │ │ -100# define tds_sysdep_real64_type double /* 64-bit real */ │ │ │ │ │ -101# elif LDBL_DIG == 15 && LDBL_MAX_10_EXP == 308 │ │ │ │ │ -102# define tds_sysdep_real64_type long double /* 64-bit real */ │ │ │ │ │ -103# endif │ │ │ │ │ -104#endif │ │ │ │ │ -105 │ │ │ │ │ -106/* fall back to configure.ac types */ │ │ │ │ │ -107#ifndef tds_sysdep_real32_type │ │ │ │ │ -108#define tds_sysdep_real32_type float /* 32-bit real */ │ │ │ │ │ -109#endif /* !tds_sysdep_real32_type */ │ │ │ │ │ -110 │ │ │ │ │ -111#ifndef tds_sysdep_real64_type │ │ │ │ │ -112#define tds_sysdep_real64_type double /* 64-bit real */ │ │ │ │ │ -113#endif /* !tds_sysdep_real64_type */ │ │ │ │ │ -114 │ │ │ │ │ -115#if !defined(MSDBLIB) && !defined(SYBDBLIB) │ │ │ │ │ -116#define SYBDBLIB 1 │ │ │ │ │ -117#endif │ │ │ │ │ -118#if defined(MSDBLIB) && defined(SYBDBLIB) │ │ │ │ │ -119#error MSDBLIB and SYBDBLIB cannot both be defined │ │ │ │ │ -120#endif │ │ │ │ │ -121 │ │ │ │ │ -122#endif /* _tds_sysdep_public_h_ */ │ │ │ │ │ +23static const char rcsid_bkpublic_h[] = "$Id: bkpublic.h,v 1.5 2004-10-28 12: │ │ │ │ │ +42:11 freddy77 Exp $"; │ │ │ │ │ +24static const void *const no_unused_bkpublic_h_warn[] = { rcsid_bkpublic_h, │ │ │ │ │ +no_unused_bkpublic_h_warn }; │ │ │ │ │ +25 │ │ │ │ │ +26/* seperate this stuff out later */ │ │ │ │ │ +27#include │ │ │ │ │ +28 │ │ │ │ │ +29#ifdef __cplusplus │ │ │ │ │ +30extern "C" │ │ │ │ │ +31{ │ │ │ │ │ +32#if 0 │ │ │ │ │ +33} │ │ │ │ │ +34#endif │ │ │ │ │ +35#endif │ │ │ │ │ +36 │ │ │ │ │ +37/* buld properties start with 1 i guess */ │ │ │ │ │ +38#define BLK_IDENTITY 1 │ │ │ │ │ +39 │ │ │ │ │ +40CS_RETCODE blk_alloc(_C_S___C_O_N_N_E_C_T_I_O_N * connection, CS_INT version, _C_S___B_L_K_D_E_S_C │ │ │ │ │ +** blk_pointer); │ │ │ │ │ +41CS_RETCODE blk_bind(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT colnum, _C_S___D_A_T_A_F_M_T * │ │ │ │ │ +datafmt, CS_VOID * buffer, CS_INT * datalen, │ │ │ │ │ +42 CS_SMALLINT * indicator); │ │ │ │ │ +43CS_RETCODE blk_colval(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp, CS_BLK_ROW * │ │ │ │ │ +rowp, CS_INT colnum, CS_VOID * valuep, │ │ │ │ │ +44 CS_INT valuelen, CS_INT * outlenp); │ │ │ │ │ +45CS_RETCODE blk_default(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT colnum, CS_VOID * buffer, │ │ │ │ │ +CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +46CS_RETCODE blk_describe(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT colnum, _C_S___D_A_T_A_F_M_T * │ │ │ │ │ +datafmt); │ │ │ │ │ +47CS_RETCODE blk_done(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT type, CS_INT * outrow); │ │ │ │ │ +48CS_RETCODE blk_drop(_C_S___B_L_K_D_E_S_C * blkdesc); │ │ │ │ │ +49CS_RETCODE blk_getrow(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp, CS_BLK_ROW * │ │ │ │ │ +rowp); │ │ │ │ │ +50CS_RETCODE blk_gettext(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp, CS_BLK_ROW │ │ │ │ │ +* rowp, CS_INT bufsize, CS_INT * outlenp); │ │ │ │ │ +51CS_RETCODE blk_init(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT direction, CS_CHAR * │ │ │ │ │ +tablename, CS_INT tnamelen); │ │ │ │ │ +52CS_RETCODE blk_props(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT action, CS_INT property, │ │ │ │ │ +CS_VOID * buffer, CS_INT buflen, CS_INT * outlen); │ │ │ │ │ +53CS_RETCODE blk_rowalloc(SRV_PROC * srvproc, CS_BLK_ROW ** row); │ │ │ │ │ +54CS_RETCODE blk_rowdrop(SRV_PROC * srvproc, CS_BLK_ROW * row); │ │ │ │ │ +55CS_RETCODE blk_rowxfer(_C_S___B_L_K_D_E_S_C * blkdesc); │ │ │ │ │ +56CS_RETCODE blk_rowxfer_mult(_C_S___B_L_K_D_E_S_C * blkdesc, CS_INT * row_count); │ │ │ │ │ +57CS_RETCODE blk_sendrow(_C_S___B_L_K_D_E_S_C * blkdesc, CS_BLK_ROW * row); │ │ │ │ │ +58CS_RETCODE blk_sendtext(_C_S___B_L_K_D_E_S_C * blkdesc, CS_BLK_ROW * row, CS_BYTE * │ │ │ │ │ +buffer, CS_INT buflen); │ │ │ │ │ +59CS_RETCODE blk_srvinit(SRV_PROC * srvproc, _C_S___B_L_K_D_E_S_C * blkdescp); │ │ │ │ │ +60CS_RETCODE blk_textxfer(_C_S___B_L_K_D_E_S_C * blkdesc, CS_BYTE * buffer, CS_INT │ │ │ │ │ +buflen, CS_INT * outlen); │ │ │ │ │ +61 │ │ │ │ │ +62#ifdef __cplusplus │ │ │ │ │ +63#if 0 │ │ │ │ │ +64{ │ │ │ │ │ +65#endif │ │ │ │ │ +66} │ │ │ │ │ +67#endif │ │ │ │ │ +68 │ │ │ │ │ +69#endif │ │ │ │ │ +___c_s___d_a_t_a_f_m_t │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:114 │ │ │ │ │ +___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ +___c_s___b_l_k_d_e_s_c │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:239 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00494_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/dblib.h Source File │ │ │ │ +FreeTDS API: include/ctlib.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ -
dblib.h
│ │ │ │ +
ctlib.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │ -
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns
│ │ │ │ +
2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │
6 * License as published by the Free Software Foundation; either
│ │ │ │
7 * version 2 of the License, or (at your option) any later version.
│ │ │ │
8 *
│ │ │ │
9 * This library is distributed in the hope that it will be useful,
│ │ │ │ @@ -96,246 +96,337 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _dblib_h_
│ │ │ │ -
21#define _dblib_h_
│ │ │ │ +
20#ifndef _ctlib_h_
│ │ │ │ +
21#define _ctlib_h_
│ │ │ │
22
│ │ │ │ -
23#include <freetds/pushvis.h>
│ │ │ │ -
24
│ │ │ │ -
25#ifdef __cplusplus
│ │ │ │ -
26extern "C"
│ │ │ │ -
27{
│ │ │ │ -
28#if 0
│ │ │ │ -
29}
│ │ │ │ -
30#endif
│ │ │ │ -
31#endif
│ │ │ │ +
23#include <freetds/tds.h>
│ │ │ │ +
24#include <freetds/convert.h>
│ │ │ │ +
25#include <freetds/utils/string.h>
│ │ │ │ +
26
│ │ │ │ +
27/*
│ │ │ │ +
28 * Internal (not part of the exposed API) prototypes and such.
│ │ │ │ +
29 */
│ │ │ │ +
30
│ │ │ │ +
31#include <freetds/pushvis.h>
│ │ │ │
32
│ │ │ │ -
33typedef enum
│ │ │ │ -
34{
│ │ │ │ -
35 _DB_RES_INIT
│ │ │ │ -
36 , _DB_RES_RESULTSET_EMPTY
│ │ │ │ -
37 , _DB_RES_RESULTSET_ROWS
│ │ │ │ -
38 , _DB_RES_NEXT_RESULT
│ │ │ │ -
39 , _DB_RES_NO_MORE_RESULTS
│ │ │ │ -
40 , _DB_RES_SUCCEED
│ │ │ │ -
41} DB_RESULT_STATE;
│ │ │ │ -
42
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
44{
│ │ │ │ - │ │ │ │ -
46 bool network_auth;
│ │ │ │ +
33#ifdef __cplusplus
│ │ │ │ +
34extern "C"
│ │ │ │ +
35{
│ │ │ │ +
36#if 0
│ │ │ │ +
37}
│ │ │ │ +
38#endif
│ │ │ │ +
39#endif
│ │ │ │ +
40
│ │ │ │ +
41/*
│ │ │ │ +
42 * internal types
│ │ │ │ +
43 */
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
45{
│ │ │ │ +
46 short cs_expose_formats;
│ │ │ │
47};
│ │ │ │
│ │ │ │
48
│ │ │ │ -
49struct dblib_buffer_row;
│ │ │ │ -
50
│ │ │ │ -
│ │ │ │ -
51typedef struct
│ │ │ │ -
52{
│ │ │ │ -
53 int received; /* how many rows have been received for this result set */
│ │ │ │ -
54 int head; /* queue insertion point */
│ │ │ │ -
55 int tail; /* oldest item in queue */
│ │ │ │ -
56 int current; /* dbnextrow() reads this row */
│ │ │ │ -
57 int capacity; /* how many elements the queue can hold */
│ │ │ │ -
58 struct dblib_buffer_row *rows; /* pointer to the row storage */
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
60
│ │ │ │ -
│ │ │ │ -
61typedef struct
│ │ │ │ -
62{
│ │ │ │ -
63 int host_column;
│ │ │ │ -
64 TDS_SERVER_TYPE datatype;
│ │ │ │ -
65 int prefix_len;
│ │ │ │ -
66 DBINT column_len;
│ │ │ │ -
67 BYTE *terminator;
│ │ │ │ -
68 int term_len;
│ │ │ │ -
69 int tab_colnum;
│ │ │ │ -
70 int column_error;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
72
│ │ │ │ -
│ │ │ │ -
73typedef struct
│ │ │ │ -
74{
│ │ │ │ -
75 TDS_CHAR *hostfile;
│ │ │ │ -
76 TDS_CHAR *errorfile;
│ │ │ │ -
77 FILE *bcp_errfileptr;
│ │ │ │ -
78 TDS_INT host_colcount;
│ │ │ │ -
79 BCP_HOSTCOLINFO **host_columns;
│ │ │ │ -
80 TDS_INT firstrow;
│ │ │ │ -
81 TDS_INT lastrow;
│ │ │ │ -
82 TDS_INT maxerrs;
│ │ │ │ -
83 TDS_INT batch;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
85
│ │ │ │ -
86/* linked list of rpc parameters */
│ │ │ │ -
87
│ │ │ │ -
│ │ │ │ -
88typedef struct DBREMOTE_PROC_PARAM
│ │ │ │ -
89{
│ │ │ │ -
90 struct DBREMOTE_PROC_PARAM *next;
│ │ │ │ -
91
│ │ │ │ -
92 char *name;
│ │ │ │ -
93 BYTE status;
│ │ │ │ -
94 TDS_SERVER_TYPE type;
│ │ │ │ -
95 DBINT maxlen;
│ │ │ │ -
96 DBINT datalen;
│ │ │ │ -
97 BYTE *value;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
99
│ │ │ │ -
│ │ │ │ -
100typedef struct DBREMOTE_PROC
│ │ │ │ -
101{
│ │ │ │ -
102 struct DBREMOTE_PROC *next;
│ │ │ │ -
103
│ │ │ │ -
104 char *name;
│ │ │ │ -
105 DBSMALLINT options;
│ │ │ │ -
106 DBREMOTE_PROC_PARAM *param_list;
│ │ │ │ - │ │ │ │ -
│ │ │ │ -
108
│ │ │ │ -
│ │ │ │ -
109typedef struct dboption
│ │ │ │ -
110{
│ │ │ │ -
111 const char *text;
│ │ │ │ -
112 DBSTRING *param;
│ │ │ │ -
113 DBBOOL factive;
│ │ │ │ -
114} DBOPTION;
│ │ │ │ -
│ │ │ │ +
49/* Code changed for error handling */
│ │ │ │ +
50/* Code changes starts here - CT_DIAG - 01 */
│ │ │ │ +
51
│ │ │ │ +
52/* This structure is used in CT_DIAG */
│ │ │ │ +
53
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
55{
│ │ │ │ +
56 CS_CLIENTMSG *clientmsg;
│ │ │ │ +
57 struct cs_diag_msg_client *next;
│ │ │ │ +
58};
│ │ │ │ +
│ │ │ │ +
59
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
61{
│ │ │ │ +
62 CS_SERVERMSG *servermsg;
│ │ │ │ +
63 struct cs_diag_msg_svr *next;
│ │ │ │ +
64};
│ │ │ │ +
│ │ │ │ +
65
│ │ │ │ +
66/* Code changes ends here - CT_DIAG - 01 */
│ │ │ │ +
67
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
69{
│ │ │ │ +
70 CS_CLIENTMSG *msg;
│ │ │ │ +
71 struct cs_diag_msg *next;
│ │ │ │ +
72};
│ │ │ │ +
│ │ │ │ +
73
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
75{
│ │ │ │ +
76 CS_INT date_convert_fmt;
│ │ │ │ +
77 CS_INT cs_errhandletype;
│ │ │ │ +
78 CS_INT cs_diag_msglimit;
│ │ │ │ +
79
│ │ │ │ +
80 /* added for storing the maximum messages limit CT_DIAG */
│ │ │ │ +
81 /* code changes starts here - CT_DIAG - 02 */
│ │ │ │ +
82
│ │ │ │ +
83 CS_INT cs_diag_msglimit_client;
│ │ │ │ +
84 CS_INT cs_diag_msglimit_server;
│ │ │ │ +
85 CS_INT cs_diag_msglimit_total;
│ │ │ │ +
86 struct cs_diag_msg_client *clientstore;
│ │ │ │ +
87 struct cs_diag_msg_svr *svrstore;
│ │ │ │ +
88
│ │ │ │ +
89 /* code changes ends here - CT_DIAG - 02 */
│ │ │ │ +
90
│ │ │ │ +
91 struct cs_diag_msg *msgstore;
│ │ │ │ +
92 CS_CSLIBMSG_FUNC _cslibmsg_cb;
│ │ │ │ +
93 CS_CLIENTMSG_FUNC _clientmsg_cb;
│ │ │ │ +
94 CS_SERVERMSG_FUNC _servermsg_cb;
│ │ │ │ +
95 /* code changes start here - CS_CONFIG - 01*/
│ │ │ │ +
96 void *userdata;
│ │ │ │ +
97 int userdata_len;
│ │ │ │ +
98 /* code changes end here - CS_CONFIG - 01*/
│ │ │ │ +
99 TDSCONTEXT *tds_ctx;
│ │ │ │ +
100 CS_CONFIG config;
│ │ │ │ + │ │ │ │ + │ │ │ │ +
103};
│ │ │ │ +
│ │ │ │ +
104
│ │ │ │ +
105/*
│ │ │ │ +
106 * internal typedefs
│ │ │ │ +
107 */
│ │ │ │ +
│ │ │ │ +
108typedef struct _ct_colinfo
│ │ │ │ +
109{
│ │ │ │ +
110 TDS_SMALLINT *indicator;
│ │ │ │ +
111}
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
113
│ │ │ │ +
114typedef struct _cs_dynamic CS_DYNAMIC;
│ │ │ │
115
│ │ │ │
│ │ │ │ -
116typedef struct
│ │ │ │ + │ │ │ │
117{
│ │ │ │ -
118 const BYTE *bindval;
│ │ │ │ -
119 size_t len;
│ │ │ │ -
120} NULLREP;
│ │ │ │ -
│ │ │ │ -
121
│ │ │ │ -
│ │ │ │ - │ │ │ │ -
123{
│ │ │ │ - │ │ │ │ -
125
│ │ │ │ -
126 STATUS row_type;
│ │ │ │ -
127 DBPROC_ROWBUF row_buf;
│ │ │ │ -
128
│ │ │ │ -
129 int noautofree;
│ │ │ │ -
130 int more_results; /* boolean. Are we expecting results? */
│ │ │ │ -
131 DB_RESULT_STATE dbresults_state;
│ │ │ │ -
132 int dbresults_retcode;
│ │ │ │ -
133 BYTE *user_data; /* see dbsetuserdata() and dbgetuserdata() */
│ │ │ │ -
134 unsigned char *dbbuf; /* is dynamic! */
│ │ │ │ -
135 int dbbufsz;
│ │ │ │ -
136 int command_state;
│ │ │ │ -
137 TDS_INT text_size;
│ │ │ │ -
138 TDS_INT text_sent;
│ │ │ │ -
139 DBTYPEINFO typeinfo;
│ │ │ │ -
140 unsigned char avail_flag;
│ │ │ │ -
141 DBOPTION *dbopts;
│ │ │ │ -
142 DBSTRING *dboptcmd;
│ │ │ │ -
143 BCP_HOSTFILEINFO *hostfileinfo;
│ │ │ │ -
144 TDSBCPINFO *bcpinfo;
│ │ │ │ -
145 DBREMOTE_PROC *rpc;
│ │ │ │ -
146 DBUSMALLINT envchange_rcv;
│ │ │ │ -
147 char dbcurdb[DBMAXNAME + 1];
│ │ │ │ -
148 char servcharset[DBMAXNAME + 1];
│ │ │ │ -
149 FILE *ftos;
│ │ │ │ -
150 DB_DBCHKINTR_FUNC chkintr;
│ │ │ │ -
151 DB_DBHNDLINTR_FUNC hndlintr;
│ │ │ │ -
152
│ │ │ │ - │ │ │ │ -
155
│ │ │ │ -
156 int ntimeouts;
│ │ │ │ -
157
│ │ │ │ -
159 NULLREP nullreps[MAXBINDTYPES];
│ │ │ │ -
160};
│ │ │ │ -
│ │ │ │ -
161
│ │ │ │ -
162enum {
│ │ │ │ -
163#if MSDBLIB
│ │ │ │ -
164 dblib_msdblib = 1
│ │ │ │ -
165#else
│ │ │ │ -
166 dblib_msdblib = 0
│ │ │ │ -
167#endif
│ │ │ │ -
168};
│ │ │ │ -
169
│ │ │ │ -
170/*
│ │ │ │ -
171 * internal prototypes
│ │ │ │ -
172 */
│ │ │ │ -
173RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE* varaddr);
│ │ │ │ -
174void copy_data_to_host_var(DBPROCESS * dbproc, TDS_SERVER_TYPE srctype, const BYTE * src, DBINT srclen,
│ │ │ │ -
175 BYTE * dest, DBINT destlen,
│ │ │ │ -
176 int bindtype, DBINT *indicator);
│ │ │ │ -
177
│ │ │ │ -
178int dbperror (DBPROCESS *dbproc, DBINT msgno, long errnum, ...);
│ │ │ │ -
179int _dblib_handle_info_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
│ │ │ │ -
180int _dblib_handle_err_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE* msgptr);
│ │ │ │ -
181int _dblib_check_and_handle_interrupt(void * vdbproc);
│ │ │ │ -
182
│ │ │ │ -
183void _dblib_setTDS_version(TDSLOGIN * tds_login, DBINT version);
│ │ │ │ -
184void _dblib_convert_err(DBPROCESS * dbproc, TDS_INT len);
│ │ │ │ -
185
│ │ │ │ -
186DBINT _convert_char(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
│ │ │ │ -
187DBINT _convert_intn(int srctype, BYTE * src, int destype, BYTE * dest, DBINT destlen);
│ │ │ │ -
188
│ │ │ │ -
189RETCODE _bcp_clear_storage(DBPROCESS * dbproc);
│ │ │ │ -
190RETCODE _bcp_get_prog_data(DBPROCESS * dbproc);
│ │ │ │ -
191
│ │ │ │ -
192extern MHANDLEFUNC _dblib_msg_handler;
│ │ │ │ -
193extern EHANDLEFUNC _dblib_err_handler;
│ │ │ │ -
194
│ │ │ │ -
195#define CHECK_PARAMETER(x, msg, ret) if (!(x)) { dbperror(dbproc, (msg), 0); return ret; }
│ │ │ │ -
196#define CHECK_NULP(x, func, param_num, ret) if (!(x)) { dbperror(dbproc, SYBENULP, 0, func, (int) param_num); return ret; }
│ │ │ │ -
197#define CHECK_PARAMETER_NOPROC(x, msg) if (!(x)) { dbperror(NULL, (msg), 0); return FAIL; }
│ │ │ │ -
198#define DBPERROR_RETURN(x, msg) if (x) { dbperror(dbproc, (msg), 0); return FAIL; }
│ │ │ │ -
199#define DBPERROR_RETURN3(x, msg, a, b, c) if (x) { dbperror(dbproc, (msg), 0, a, b, c); return FAIL; }
│ │ │ │ -
200#define CHECK_CONN(ret) do { CHECK_PARAMETER(dbproc, SYBENULL, (ret)); \
│ │ │ │ -
201 if (IS_TDSDEAD(dbproc->tds_socket)) { dbperror(dbproc, SYBEDDNE, 0); return (ret); } } while(0)
│ │ │ │ -
202
│ │ │ │ -
203
│ │ │ │ -
204#ifdef __cplusplus
│ │ │ │ -
205#if 0
│ │ │ │ -
206{
│ │ │ │ -
207#endif
│ │ │ │ -
208}
│ │ │ │ -
209#endif
│ │ │ │ +
118 CS_CONTEXT *ctx;
│ │ │ │ + │ │ │ │ + │ │ │ │ +
121 CS_CLIENTMSG_FUNC _clientmsg_cb;
│ │ │ │ +
122 CS_SERVERMSG_FUNC _servermsg_cb;
│ │ │ │ +
123 void *userdata;
│ │ │ │ +
124 int userdata_len;
│ │ │ │ +
125 CS_LOCALE *locale;
│ │ │ │ +
126 CS_COMMAND *cmds;
│ │ │ │ +
127 CS_DYNAMIC *dynlist;
│ │ │ │ +
128 char *server_addr;
│ │ │ │ +
129 bool network_auth;
│ │ │ │ +
130};
│ │ │ │ +
│ │ │ │ +
131
│ │ │ │ +
132/*
│ │ │ │ +
133 * Formerly CSREMOTE_PROC_PARAM, this structure can be used in other
│ │ │ │ +
134 * places, too.
│ │ │ │ +
135 */
│ │ │ │ +
136
│ │ │ │ +
│ │ │ │ +
137typedef struct _cs_param
│ │ │ │ +
138{
│ │ │ │ +
139 struct _cs_param *next;
│ │ │ │ +
140 char *name;
│ │ │ │ +
141 int status;
│ │ │ │ +
142 int datatype;
│ │ │ │ +
143 CS_INT maxlen;
│ │ │ │ +
144 CS_INT scale;
│ │ │ │ +
145 CS_INT precision;
│ │ │ │ +
146 CS_INT *datalen;
│ │ │ │ +
147 CS_SMALLINT *ind;
│ │ │ │ +
148 CS_BYTE *value;
│ │ │ │ +
149 int param_by_value;
│ │ │ │ +
150 CS_INT datalen_value;
│ │ │ │ +
151 CS_SMALLINT indicator_value;
│ │ │ │ +
152} CS_PARAM;
│ │ │ │ +
│ │ │ │ +
153
│ │ │ │ +
154/*
│ │ │ │ +
155 * Code added for RPC functionality - SUHA
│ │ │ │ +
156 * RPC Code changes starts here
│ │ │ │ +
157 */
│ │ │ │ +
158
│ │ │ │ + │ │ │ │ +
160
│ │ │ │ +
│ │ │ │ +
161typedef struct _csremote_proc
│ │ │ │ +
162{
│ │ │ │ +
163 char *name;
│ │ │ │ +
164 CS_SMALLINT options;
│ │ │ │ +
165 CSREMOTE_PROC_PARAM *param_list;
│ │ │ │ + │ │ │ │ +
│ │ │ │ +
167
│ │ │ │ +
168/*
│ │ │ │ +
169 * Structure CS_COMMAND changed for RPC functionality -SUHA
│ │ │ │ +
170 * Added CSREMOTE_PROC *rpc to CS_COMMAND structure
│ │ │ │ +
171 */
│ │ │ │ +
172
│ │ │ │ + │ │ │ │ +
174
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
176{
│ │ │ │ +
177 struct _cs_dynamic *next;
│ │ │ │ +
178 char *id;
│ │ │ │ +
179 char *stmt;
│ │ │ │ +
180 CS_DYNAMIC_PARAM *param_list;
│ │ │ │ +
181 TDSDYNAMIC *tdsdyn;
│ │ │ │ +
182};
│ │ │ │ +
│ │ │ │ +
183
│ │ │ │ +
184/* specific FreeTDS commands */
│ │ │ │ +
185#define CS_DYNAMIC_CMD 160
│ │ │ │ +
186#define CS_CUR_CMD 161
│ │ │ │ +
187
│ │ │ │ +
188/* values for cs_command.results_state */
│ │ │ │ +
189
│ │ │ │ +
190#define _CS_RES_NONE -1
│ │ │ │ +
191#define _CS_RES_INIT 0
│ │ │ │ +
192#define _CS_RES_RESULTSET_EMPTY 1
│ │ │ │ +
193#define _CS_RES_RESULTSET_ROWS 2
│ │ │ │ +
194#define _CS_RES_STATUS 3
│ │ │ │ +
195#define _CS_RES_CMD_DONE 4
│ │ │ │ +
196#define _CS_RES_CMD_SUCCEED 5
│ │ │ │ +
197#define _CS_RES_END_RESULTS 6
│ │ │ │ +
198#define _CS_RES_DESCRIBE_RESULT 7
│ │ │ │ +
199
│ │ │ │ +
200/* values for cs_command.command_state */
│ │ │ │ +
201
│ │ │ │ +
202#define _CS_COMMAND_IDLE 0
│ │ │ │ +
203#define _CS_COMMAND_BUILDING 1
│ │ │ │ +
204#define _CS_COMMAND_READY 2
│ │ │ │ +
205#define _CS_COMMAND_SENT 3
│ │ │ │ +
206
│ │ │ │ +
207/* values for cs_command.cancel_state */
│ │ │ │ +
208#define _CS_CANCEL_NOCANCEL 0
│ │ │ │ +
209#define _CS_CANCEL_PENDING 1
│ │ │ │
210
│ │ │ │ -
211#include <freetds/popvis.h>
│ │ │ │ -
212
│ │ │ │ -
213#endif
│ │ │ │ -
RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
Definition dblib.c:529
│ │ │ │ -
int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...)
Call client-installed error handler.
Definition dblib.c:8148
│ │ │ │ -
int _dblib_check_and_handle_interrupt(void *vdbproc)
check interrupts for libtds.
Definition dbutil.c:192
│ │ │ │ -
Definition buffering.h:1
│ │ │ │ -
Definition dblib.h:44
│ │ │ │ -
Definition dblib.h:52
│ │ │ │ -
Definition dblib.h:62
│ │ │ │ -
Definition dblib.h:74
│ │ │ │ -
Definition dblib.h:89
│ │ │ │ -
Definition dblib.h:101
│ │ │ │ -
Definition dblib.h:110
│ │ │ │ -
Definition dblib.h:117
│ │ │ │ -
Definition dblib.h:123
│ │ │ │ -
NULLREP nullreps[MAXBINDTYPES]
default null values
Definition dblib.h:159
│ │ │ │ -
int msdblib
boolean use ms behaviour
Definition dblib.h:154
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
212{
│ │ │ │ +
213 struct _cs_command *next;
│ │ │ │ +
214 CS_INT command_state;
│ │ │ │ +
215 CS_INT results_state;
│ │ │ │ +
216 CS_INT cancel_state;
│ │ │ │ +
217 CS_INT cursor_state;
│ │ │ │ +
218 CS_CONNECTION *con;
│ │ │ │ +
219 CS_INT command_type;
│ │ │ │ +
220 CS_CHAR *query;
│ │ │ │ +
221 short dynamic_cmd;
│ │ │ │ +
222 CS_DYNAMIC *dyn;
│ │ │ │ +
223 int row_prefetched;
│ │ │ │ +
224 int curr_result_type;
│ │ │ │ +
225 int bind_count;
│ │ │ │ +
226 int get_data_item;
│ │ │ │ +
227 int get_data_bytes_returned;
│ │ │ │ +
228 CS_IODESC *iodesc;
│ │ │ │ +
229 CS_INT send_data_started;
│ │ │ │ +
230 CSREMOTE_PROC *rpc;
│ │ │ │ +
231 CS_PARAM *input_params;
│ │ │ │ +
232 CS_INT client_cursor_id;
│ │ │ │ +
233 TDSCURSOR *cursor;
│ │ │ │ +
234 void *userdata;
│ │ │ │ +
235 int userdata_len;
│ │ │ │ +
236};
│ │ │ │ +
│ │ │ │ +
237
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
239{
│ │ │ │ +
240 TDSBCPINFO bcpinfo;
│ │ │ │ +
241};
│ │ │ │ +
│ │ │ │ +
242
│ │ │ │ +
243
│ │ │ │ +
244#define _CS_ERRHAND_INLINE 1
│ │ │ │ +
245#define _CS_ERRHAND_CB 2
│ │ │ │ +
246
│ │ │ │ +
│ │ │ │ + │ │ │ │ +
248{
│ │ │ │ +
249 char *language;
│ │ │ │ +
250 char *charset;
│ │ │ │ +
251 char *time;
│ │ │ │ +
252 char *collate;
│ │ │ │ +
253};
│ │ │ │ +
│ │ │ │ +
254
│ │ │ │ +
255/* internal defines for cursor processing */
│ │ │ │ +
256
│ │ │ │ +
257#define _CS_CURS_TYPE_UNACTIONED 0
│ │ │ │ +
258#define _CS_CURS_TYPE_REQUESTED 1
│ │ │ │ +
259#define _CS_CURS_TYPE_SENT 2
│ │ │ │ +
260
│ │ │ │ +
261/*
│ │ │ │ +
262 * internal prototypes
│ │ │ │ +
263 */
│ │ │ │ +
264TDSRET _ct_handle_server_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
│ │ │ │ +
265int _ct_handle_client_message(const TDSCONTEXT * ctxptr, TDSSOCKET * tdsptr, TDSMESSAGE * msgptr);
│ │ │ │ +
266TDS_SERVER_TYPE _ct_get_server_type(TDSSOCKET *tds, int datatype);
│ │ │ │ +
267int _ct_bind_data(CS_CONTEXT *ctx, TDSRESULTINFO * resinfo, TDSRESULTINFO *bindinfo, CS_INT offset);
│ │ │ │ +
268int _ct_get_client_type(const TDSCOLUMN *col, bool describe);
│ │ │ │ +
269void _ctclient_msg(CS_CONNECTION * con, const char *funcname, int layer, int origin, int severity, int number,
│ │ │ │ +
270 const char *fmt, ...);
│ │ │ │ +
271CS_INT _ct_diag_clearmsg(CS_CONTEXT * context, CS_INT type);
│ │ │ │ +
272void _cs_locale_free(CS_LOCALE *locale);
│ │ │ │ +
273CS_LOCALE *_cs_locale_copy(CS_LOCALE *orig);
│ │ │ │ +
274int _cs_locale_copy_inplace(CS_LOCALE *new_locale, CS_LOCALE *orig);
│ │ │ │ +
275
│ │ │ │ +
276int _cs_convert_not_client(CS_CONTEXT *ctx, const TDSCOLUMN *curcol, CONV_RESULT *convert_buffer, unsigned char **p_src);
│ │ │ │ +
277
│ │ │ │ +
278#ifdef __cplusplus
│ │ │ │ +
279#if 0
│ │ │ │ +
280{
│ │ │ │ +
281#endif
│ │ │ │ +
282}
│ │ │ │ +
283#endif
│ │ │ │ +
284
│ │ │ │ +
285#include <freetds/popvis.h>
│ │ │ │ +
286
│ │ │ │ +
287#endif
│ │ │ │ +
Main include file for libtds.
│ │ │ │ +
Definition cstypes.h:97
│ │ │ │ +
Definition cstypes.h:177
│ │ │ │ +
Definition cstypes.h:191
│ │ │ │ +
Definition ctlib.h:45
│ │ │ │ +
Definition ctlib.h:55
│ │ │ │ +
Definition ctlib.h:61
│ │ │ │ +
Definition ctlib.h:69
│ │ │ │ +
Definition ctlib.h:75
│ │ │ │ +
int login_timeout
not used unless positive
Definition ctlib.h:101
│ │ │ │ +
int query_timeout
not used unless positive
Definition ctlib.h:102
│ │ │ │ +
Definition ctlib.h:109
│ │ │ │ +
Definition ctlib.h:117
│ │ │ │ +
Definition ctlib.h:138
│ │ │ │ +
Definition ctlib.h:162
│ │ │ │ +
Definition ctlib.h:176
│ │ │ │ +
Definition ctlib.h:212
│ │ │ │ +
Definition ctlib.h:239
│ │ │ │ +
Definition ctlib.h:248
│ │ │ │ +
Definition convert.h:34
│ │ │ │
Definition tds.h:517
│ │ │ │ +
Metadata about columns in regular and compute rows.
Definition tds.h:689
│ │ │ │ +
Hold information for any results.
Definition tds.h:769
│ │ │ │
Definition tds.h:876
│ │ │ │ +
Holds informations about a cursor.
Definition tds.h:937
│ │ │ │ +
Holds information for a dynamic (also called prepared) query.
Definition tds.h:977
│ │ │ │
Definition tds.h:1029
│ │ │ │
Information for a server connection.
Definition tds.h:1163
│ │ │ │
Definition tds.h:1661
│ │ │ │ -
Definition sybdb.h:336
│ │ │ │ -
Definition sybdb.h:342
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -dblib.h │ │ │ │ │ +ctlib.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -19,267 +19,349 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _dblib_h_ │ │ │ │ │ -21#define _dblib_h_ │ │ │ │ │ +20#ifndef _ctlib_h_ │ │ │ │ │ +21#define _ctlib_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#include │ │ │ │ │ -24 │ │ │ │ │ -25#ifdef __cplusplus │ │ │ │ │ -26extern "C" │ │ │ │ │ -27{ │ │ │ │ │ -28#if 0 │ │ │ │ │ -29} │ │ │ │ │ -30#endif │ │ │ │ │ -31#endif │ │ │ │ │ +23#include <_f_r_e_e_t_d_s_/_t_d_s_._h> │ │ │ │ │ +24#include │ │ │ │ │ +25#include │ │ │ │ │ +26 │ │ │ │ │ +27/* │ │ │ │ │ +28 * Internal (not part of the exposed API) prototypes and such. │ │ │ │ │ +29 */ │ │ │ │ │ +30 │ │ │ │ │ +31#include │ │ │ │ │ 32 │ │ │ │ │ -33typedef enum │ │ │ │ │ -34{ │ │ │ │ │ -35 _DB_RES_INIT │ │ │ │ │ -36 , _DB_RES_RESULTSET_EMPTY │ │ │ │ │ -37 , _DB_RES_RESULTSET_ROWS │ │ │ │ │ -38 , _DB_RES_NEXT_RESULT │ │ │ │ │ -39 , _DB_RES_NO_MORE_RESULTS │ │ │ │ │ -40 , _DB_RES_SUCCEED │ │ │ │ │ -41} DB_RESULT_STATE; │ │ │ │ │ -42 │ │ │ │ │ -_4_3struct _t_d_s___d_b_l_i_b___l_o_g_i_n_r_e_c │ │ │ │ │ -44{ │ │ │ │ │ -45 _T_D_S_L_O_G_I_N *_t_d_s___l_o_g_i_n; │ │ │ │ │ -46 bool network_auth; │ │ │ │ │ +33#ifdef __cplusplus │ │ │ │ │ +34extern "C" │ │ │ │ │ +35{ │ │ │ │ │ +36#if 0 │ │ │ │ │ +37} │ │ │ │ │ +38#endif │ │ │ │ │ +39#endif │ │ │ │ │ +40 │ │ │ │ │ +41/* │ │ │ │ │ +42 * internal types │ │ │ │ │ +43 */ │ │ │ │ │ +_4_4struct ___c_s___c_o_n_f_i_g │ │ │ │ │ +45{ │ │ │ │ │ +46 short cs_expose_formats; │ │ │ │ │ 47}; │ │ │ │ │ 48 │ │ │ │ │ -49struct _d_b_l_i_b___b_u_f_f_e_r___r_o_w; │ │ │ │ │ -50 │ │ │ │ │ -_5_1typedef struct │ │ │ │ │ -52{ │ │ │ │ │ -53 int received; /* how many rows have been received for this result set */ │ │ │ │ │ -54 int head; /* queue insertion point */ │ │ │ │ │ -55 int tail; /* oldest item in queue */ │ │ │ │ │ -56 int current; /* dbnextrow() reads this row */ │ │ │ │ │ -57 int capacity; /* how many elements the queue can hold */ │ │ │ │ │ -58 struct _d_b_l_i_b___b_u_f_f_e_r___r_o_w *rows; /* pointer to the row storage */ │ │ │ │ │ -59} _D_B_P_R_O_C___R_O_W_B_U_F; │ │ │ │ │ -60 │ │ │ │ │ -_6_1typedef struct │ │ │ │ │ -62{ │ │ │ │ │ -63 int host_column; │ │ │ │ │ -64 TDS_SERVER_TYPE datatype; │ │ │ │ │ -65 int prefix_len; │ │ │ │ │ -66 DBINT column_len; │ │ │ │ │ -67 BYTE *terminator; │ │ │ │ │ -68 int term_len; │ │ │ │ │ -69 int tab_colnum; │ │ │ │ │ -70 int column_error; │ │ │ │ │ -71} _B_C_P___H_O_S_T_C_O_L_I_N_F_O; │ │ │ │ │ -72 │ │ │ │ │ -_7_3typedef struct │ │ │ │ │ -74{ │ │ │ │ │ -75 TDS_CHAR *hostfile; │ │ │ │ │ -76 TDS_CHAR *errorfile; │ │ │ │ │ -77 FILE *bcp_errfileptr; │ │ │ │ │ -78 TDS_INT host_colcount; │ │ │ │ │ -79 _B_C_P___H_O_S_T_C_O_L_I_N_F_O **host_columns; │ │ │ │ │ -80 TDS_INT firstrow; │ │ │ │ │ -81 TDS_INT lastrow; │ │ │ │ │ -82 TDS_INT maxerrs; │ │ │ │ │ -83 TDS_INT batch; │ │ │ │ │ -84} _B_C_P___H_O_S_T_F_I_L_E_I_N_F_O; │ │ │ │ │ -85 │ │ │ │ │ -86/* linked list of rpc parameters */ │ │ │ │ │ -87 │ │ │ │ │ -_8_8typedef struct _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M │ │ │ │ │ -89{ │ │ │ │ │ -90 struct _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M *next; │ │ │ │ │ -91 │ │ │ │ │ -92 char *name; │ │ │ │ │ -93 BYTE status; │ │ │ │ │ -94 TDS_SERVER_TYPE type; │ │ │ │ │ -95 DBINT maxlen; │ │ │ │ │ -96 DBINT datalen; │ │ │ │ │ -97 BYTE *value; │ │ │ │ │ -98} _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M; │ │ │ │ │ -99 │ │ │ │ │ -_1_0_0typedef struct _D_B_R_E_M_O_T_E___P_R_O_C │ │ │ │ │ -101{ │ │ │ │ │ -102 struct _D_B_R_E_M_O_T_E___P_R_O_C *next; │ │ │ │ │ -103 │ │ │ │ │ -104 char *name; │ │ │ │ │ -105 DBSMALLINT options; │ │ │ │ │ -106 _D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M *param_list; │ │ │ │ │ -107} _D_B_R_E_M_O_T_E___P_R_O_C; │ │ │ │ │ -108 │ │ │ │ │ -_1_0_9typedef struct _d_b_o_p_t_i_o_n │ │ │ │ │ -110{ │ │ │ │ │ -111 const char *text; │ │ │ │ │ -112 _D_B_S_T_R_I_N_G *param; │ │ │ │ │ -113 DBBOOL factive; │ │ │ │ │ -114} _D_B_O_P_T_I_O_N; │ │ │ │ │ +49/* Code changed for error handling */ │ │ │ │ │ +50/* Code changes starts here - CT_DIAG - 01 */ │ │ │ │ │ +51 │ │ │ │ │ +52/* This structure is used in CT_DIAG */ │ │ │ │ │ +53 │ │ │ │ │ +_5_4struct _c_s___d_i_a_g___m_s_g___c_l_i_e_n_t │ │ │ │ │ +55{ │ │ │ │ │ +56 _C_S___C_L_I_E_N_T_M_S_G *clientmsg; │ │ │ │ │ +57 struct _c_s___d_i_a_g___m_s_g___c_l_i_e_n_t *next; │ │ │ │ │ +58}; │ │ │ │ │ +59 │ │ │ │ │ +_6_0struct _c_s___d_i_a_g___m_s_g___s_v_r │ │ │ │ │ +61{ │ │ │ │ │ +62 _C_S___S_E_R_V_E_R_M_S_G *servermsg; │ │ │ │ │ +63 struct _c_s___d_i_a_g___m_s_g___s_v_r *next; │ │ │ │ │ +64}; │ │ │ │ │ +65 │ │ │ │ │ +66/* Code changes ends here - CT_DIAG - 01 */ │ │ │ │ │ +67 │ │ │ │ │ +_6_8struct _c_s___d_i_a_g___m_s_g │ │ │ │ │ +69{ │ │ │ │ │ +70 _C_S___C_L_I_E_N_T_M_S_G *msg; │ │ │ │ │ +71 struct _c_s___d_i_a_g___m_s_g *next; │ │ │ │ │ +72}; │ │ │ │ │ +73 │ │ │ │ │ +_7_4struct ___c_s___c_o_n_t_e_x_t │ │ │ │ │ +75{ │ │ │ │ │ +76 CS_INT date_convert_fmt; │ │ │ │ │ +77 CS_INT cs_errhandletype; │ │ │ │ │ +78 CS_INT cs_diag_msglimit; │ │ │ │ │ +79 │ │ │ │ │ +80 /* added for storing the maximum messages limit CT_DIAG */ │ │ │ │ │ +81 /* code changes starts here - CT_DIAG - 02 */ │ │ │ │ │ +82 │ │ │ │ │ +83 CS_INT cs_diag_msglimit_client; │ │ │ │ │ +84 CS_INT cs_diag_msglimit_server; │ │ │ │ │ +85 CS_INT cs_diag_msglimit_total; │ │ │ │ │ +86 struct _c_s___d_i_a_g___m_s_g___c_l_i_e_n_t *clientstore; │ │ │ │ │ +87 struct _c_s___d_i_a_g___m_s_g___s_v_r *svrstore; │ │ │ │ │ +88 │ │ │ │ │ +89 /* code changes ends here - CT_DIAG - 02 */ │ │ │ │ │ +90 │ │ │ │ │ +91 struct _c_s___d_i_a_g___m_s_g *msgstore; │ │ │ │ │ +92 CS_CSLIBMSG_FUNC _cslibmsg_cb; │ │ │ │ │ +93 CS_CLIENTMSG_FUNC _clientmsg_cb; │ │ │ │ │ +94 CS_SERVERMSG_FUNC _servermsg_cb; │ │ │ │ │ +95 /* code changes start here - CS_CONFIG - 01*/ │ │ │ │ │ +96 void *userdata; │ │ │ │ │ +97 int userdata_len; │ │ │ │ │ +98 /* code changes end here - CS_CONFIG - 01*/ │ │ │ │ │ +99 _T_D_S_C_O_N_T_E_X_T *tds_ctx; │ │ │ │ │ +100 _C_S___C_O_N_F_I_G config; │ │ │ │ │ +_1_0_1 int _l_o_g_i_n___t_i_m_e_o_u_t; │ │ │ │ │ +_1_0_2 int _q_u_e_r_y___t_i_m_e_o_u_t; │ │ │ │ │ +103}; │ │ │ │ │ +104 │ │ │ │ │ +105/* │ │ │ │ │ +106 * internal typedefs │ │ │ │ │ +107 */ │ │ │ │ │ +_1_0_8typedef struct ___c_t___c_o_l_i_n_f_o │ │ │ │ │ +109{ │ │ │ │ │ +110 TDS_SMALLINT *indicator; │ │ │ │ │ +111} │ │ │ │ │ +112_C_T___C_O_L_I_N_F_O; │ │ │ │ │ +113 │ │ │ │ │ +114typedef struct ___c_s___d_y_n_a_m_i_c _C_S___D_Y_N_A_M_I_C; │ │ │ │ │ 115 │ │ │ │ │ -_1_1_6typedef struct │ │ │ │ │ +_1_1_6struct ___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ 117{ │ │ │ │ │ -118 const BYTE *bindval; │ │ │ │ │ -119 size_t len; │ │ │ │ │ -120} _N_U_L_L_R_E_P; │ │ │ │ │ -121 │ │ │ │ │ -_1_2_2struct _t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s │ │ │ │ │ -123{ │ │ │ │ │ -124 _T_D_S_S_O_C_K_E_T *_t_d_s___s_o_c_k_e_t; │ │ │ │ │ -125 │ │ │ │ │ -126 STATUS row_type; │ │ │ │ │ -127 _D_B_P_R_O_C___R_O_W_B_U_F row_buf; │ │ │ │ │ -128 │ │ │ │ │ -129 int noautofree; │ │ │ │ │ -130 int more_results; /* boolean. Are we expecting results? */ │ │ │ │ │ -131 DB_RESULT_STATE dbresults_state; │ │ │ │ │ -132 int dbresults_retcode; │ │ │ │ │ -133 BYTE *user_data; /* see dbsetuserdata() and dbgetuserdata() */ │ │ │ │ │ -134 unsigned char *dbbuf; /* is dynamic! */ │ │ │ │ │ -135 int dbbufsz; │ │ │ │ │ -136 int command_state; │ │ │ │ │ -137 TDS_INT text_size; │ │ │ │ │ -138 TDS_INT text_sent; │ │ │ │ │ -139 _D_B_T_Y_P_E_I_N_F_O typeinfo; │ │ │ │ │ -140 unsigned char avail_flag; │ │ │ │ │ -141 _D_B_O_P_T_I_O_N *dbopts; │ │ │ │ │ -142 _D_B_S_T_R_I_N_G *dboptcmd; │ │ │ │ │ -143 _B_C_P___H_O_S_T_F_I_L_E_I_N_F_O *hostfileinfo; │ │ │ │ │ -144 _T_D_S_B_C_P_I_N_F_O *bcpinfo; │ │ │ │ │ -145 _D_B_R_E_M_O_T_E___P_R_O_C *rpc; │ │ │ │ │ -146 DBUSMALLINT envchange_rcv; │ │ │ │ │ -147 char dbcurdb[DBMAXNAME + 1]; │ │ │ │ │ -148 char servcharset[DBMAXNAME + 1]; │ │ │ │ │ -149 FILE *ftos; │ │ │ │ │ -150 DB_DBCHKINTR_FUNC chkintr; │ │ │ │ │ -151 DB_DBHNDLINTR_FUNC hndlintr; │ │ │ │ │ -152 │ │ │ │ │ -_1_5_4 int _m_s_d_b_l_i_b; │ │ │ │ │ -155 │ │ │ │ │ -156 int ntimeouts; │ │ │ │ │ -157 │ │ │ │ │ -_1_5_9 _N_U_L_L_R_E_P _n_u_l_l_r_e_p_s[MAXBINDTYPES]; │ │ │ │ │ -160}; │ │ │ │ │ -161 │ │ │ │ │ -162enum { │ │ │ │ │ -163#if MSDBLIB │ │ │ │ │ -164 dblib_msdblib = 1 │ │ │ │ │ -165#else │ │ │ │ │ -166 dblib_msdblib = 0 │ │ │ │ │ -167#endif │ │ │ │ │ -168}; │ │ │ │ │ -169 │ │ │ │ │ -170/* │ │ │ │ │ -171 * internal prototypes │ │ │ │ │ -172 */ │ │ │ │ │ -173RETCODE _d_b_g_e_t_n_u_l_l(_D_B_P_R_O_C_E_S_S *dbproc, int bindtype, int varlen, BYTE* │ │ │ │ │ -varaddr); │ │ │ │ │ -174void copy_data_to_host_var(_D_B_P_R_O_C_E_S_S * dbproc, TDS_SERVER_TYPE srctype, │ │ │ │ │ -const BYTE * src, DBINT srclen, │ │ │ │ │ -175 BYTE * dest, DBINT destlen, │ │ │ │ │ -176 int bindtype, DBINT *indicator); │ │ │ │ │ -177 │ │ │ │ │ -178int _d_b_p_e_r_r_o_r (_D_B_P_R_O_C_E_S_S *dbproc, DBINT msgno, long errnum, ...); │ │ │ │ │ -179int _dblib_handle_info_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * │ │ │ │ │ -tdsptr, _T_D_S_M_E_S_S_A_G_E* msgptr); │ │ │ │ │ -180int _dblib_handle_err_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * tdsptr, │ │ │ │ │ -_T_D_S_M_E_S_S_A_G_E* msgptr); │ │ │ │ │ -181int ___d_b_l_i_b___c_h_e_c_k___a_n_d___h_a_n_d_l_e___i_n_t_e_r_r_u_p_t(void * vdbproc); │ │ │ │ │ -182 │ │ │ │ │ -183void _dblib_setTDS_version(_T_D_S_L_O_G_I_N * _t_d_s___l_o_g_i_n, DBINT version); │ │ │ │ │ -184void _dblib_convert_err(_D_B_P_R_O_C_E_S_S * dbproc, TDS_INT len); │ │ │ │ │ -185 │ │ │ │ │ -186DBINT _convert_char(int srctype, BYTE * src, int destype, BYTE * dest, DBINT │ │ │ │ │ -destlen); │ │ │ │ │ -187DBINT _convert_intn(int srctype, BYTE * src, int destype, BYTE * dest, DBINT │ │ │ │ │ -destlen); │ │ │ │ │ -188 │ │ │ │ │ -189RETCODE _bcp_clear_storage(_D_B_P_R_O_C_E_S_S * dbproc); │ │ │ │ │ -190RETCODE _bcp_get_prog_data(_D_B_P_R_O_C_E_S_S * dbproc); │ │ │ │ │ -191 │ │ │ │ │ -192extern MHANDLEFUNC _dblib_msg_handler; │ │ │ │ │ -193extern EHANDLEFUNC _dblib_err_handler; │ │ │ │ │ -194 │ │ │ │ │ -195#define CHECK_PARAMETER(x, msg, ret) if (!(x)) { dbperror(dbproc, (msg), 0); │ │ │ │ │ -return ret; } │ │ │ │ │ -196#define CHECK_NULP(x, func, param_num, ret) if (!(x)) { dbperror(dbproc, │ │ │ │ │ -SYBENULP, 0, func, (int) param_num); return ret; } │ │ │ │ │ -197#define CHECK_PARAMETER_NOPROC(x, msg) if (!(x)) { dbperror(NULL, (msg), 0); │ │ │ │ │ -return FAIL; } │ │ │ │ │ -198#define DBPERROR_RETURN(x, msg) if (x) { dbperror(dbproc, (msg), 0); return │ │ │ │ │ -FAIL; } │ │ │ │ │ -199#define DBPERROR_RETURN3(x, msg, a, b, c) if (x) { dbperror(dbproc, (msg), │ │ │ │ │ -0, a, b, c); return FAIL; } │ │ │ │ │ -200#define CHECK_CONN(ret) do { CHECK_PARAMETER(dbproc, SYBENULL, (ret)); \ │ │ │ │ │ -201 if (IS_TDSDEAD(dbproc->tds_socket)) { dbperror(dbproc, SYBEDDNE, 0); return │ │ │ │ │ -(ret); } } while(0) │ │ │ │ │ -202 │ │ │ │ │ -203 │ │ │ │ │ -204#ifdef __cplusplus │ │ │ │ │ -205#if 0 │ │ │ │ │ -206{ │ │ │ │ │ -207#endif │ │ │ │ │ -208} │ │ │ │ │ -209#endif │ │ │ │ │ +118 _C_S___C_O_N_T_E_X_T *ctx; │ │ │ │ │ +119 _T_D_S_L_O_G_I_N *_t_d_s___l_o_g_i_n; │ │ │ │ │ +120 _T_D_S_S_O_C_K_E_T *_t_d_s___s_o_c_k_e_t; │ │ │ │ │ +121 CS_CLIENTMSG_FUNC _clientmsg_cb; │ │ │ │ │ +122 CS_SERVERMSG_FUNC _servermsg_cb; │ │ │ │ │ +123 void *userdata; │ │ │ │ │ +124 int userdata_len; │ │ │ │ │ +125 _C_S___L_O_C_A_L_E *locale; │ │ │ │ │ +126 _C_S___C_O_M_M_A_N_D *cmds; │ │ │ │ │ +127 _C_S___D_Y_N_A_M_I_C *dynlist; │ │ │ │ │ +128 char *server_addr; │ │ │ │ │ +129 bool network_auth; │ │ │ │ │ +130}; │ │ │ │ │ +131 │ │ │ │ │ +132/* │ │ │ │ │ +133 * Formerly CSREMOTE_PROC_PARAM, this structure can be used in other │ │ │ │ │ +134 * places, too. │ │ │ │ │ +135 */ │ │ │ │ │ +136 │ │ │ │ │ +_1_3_7typedef struct ___c_s___p_a_r_a_m │ │ │ │ │ +138{ │ │ │ │ │ +139 struct ___c_s___p_a_r_a_m *next; │ │ │ │ │ +140 char *name; │ │ │ │ │ +141 int status; │ │ │ │ │ +142 int datatype; │ │ │ │ │ +143 CS_INT maxlen; │ │ │ │ │ +144 CS_INT scale; │ │ │ │ │ +145 CS_INT precision; │ │ │ │ │ +146 CS_INT *datalen; │ │ │ │ │ +147 CS_SMALLINT *ind; │ │ │ │ │ +148 CS_BYTE *value; │ │ │ │ │ +149 int param_by_value; │ │ │ │ │ +150 CS_INT datalen_value; │ │ │ │ │ +151 CS_SMALLINT indicator_value; │ │ │ │ │ +152} _C_S___P_A_R_A_M; │ │ │ │ │ +153 │ │ │ │ │ +154/* │ │ │ │ │ +155 * Code added for RPC functionality - SUHA │ │ │ │ │ +156 * RPC Code changes starts here │ │ │ │ │ +157 */ │ │ │ │ │ +158 │ │ │ │ │ +159typedef _C_S___P_A_R_A_M _C_S_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M; │ │ │ │ │ +160 │ │ │ │ │ +_1_6_1typedef struct ___c_s_r_e_m_o_t_e___p_r_o_c │ │ │ │ │ +162{ │ │ │ │ │ +163 char *name; │ │ │ │ │ +164 CS_SMALLINT options; │ │ │ │ │ +165 _C_S_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M *param_list; │ │ │ │ │ +166} _C_S_R_E_M_O_T_E___P_R_O_C; │ │ │ │ │ +167 │ │ │ │ │ +168/* │ │ │ │ │ +169 * Structure CS_COMMAND changed for RPC functionality -SUHA │ │ │ │ │ +170 * Added CSREMOTE_PROC *rpc to CS_COMMAND structure │ │ │ │ │ +171 */ │ │ │ │ │ +172 │ │ │ │ │ +173typedef _C_S___P_A_R_A_M _C_S___D_Y_N_A_M_I_C___P_A_R_A_M; │ │ │ │ │ +174 │ │ │ │ │ +_1_7_5struct ___c_s___d_y_n_a_m_i_c │ │ │ │ │ +176{ │ │ │ │ │ +177 struct ___c_s___d_y_n_a_m_i_c *next; │ │ │ │ │ +178 char *id; │ │ │ │ │ +179 char *stmt; │ │ │ │ │ +180 _C_S___D_Y_N_A_M_I_C___P_A_R_A_M *param_list; │ │ │ │ │ +181 _T_D_S_D_Y_N_A_M_I_C *tdsdyn; │ │ │ │ │ +182}; │ │ │ │ │ +183 │ │ │ │ │ +184/* specific FreeTDS commands */ │ │ │ │ │ +185#define CS_DYNAMIC_CMD 160 │ │ │ │ │ +186#define CS_CUR_CMD 161 │ │ │ │ │ +187 │ │ │ │ │ +188/* values for cs_command.results_state */ │ │ │ │ │ +189 │ │ │ │ │ +190#define _CS_RES_NONE -1 │ │ │ │ │ +191#define _CS_RES_INIT 0 │ │ │ │ │ +192#define _CS_RES_RESULTSET_EMPTY 1 │ │ │ │ │ +193#define _CS_RES_RESULTSET_ROWS 2 │ │ │ │ │ +194#define _CS_RES_STATUS 3 │ │ │ │ │ +195#define _CS_RES_CMD_DONE 4 │ │ │ │ │ +196#define _CS_RES_CMD_SUCCEED 5 │ │ │ │ │ +197#define _CS_RES_END_RESULTS 6 │ │ │ │ │ +198#define _CS_RES_DESCRIBE_RESULT 7 │ │ │ │ │ +199 │ │ │ │ │ +200/* values for cs_command.command_state */ │ │ │ │ │ +201 │ │ │ │ │ +202#define _CS_COMMAND_IDLE 0 │ │ │ │ │ +203#define _CS_COMMAND_BUILDING 1 │ │ │ │ │ +204#define _CS_COMMAND_READY 2 │ │ │ │ │ +205#define _CS_COMMAND_SENT 3 │ │ │ │ │ +206 │ │ │ │ │ +207/* values for cs_command.cancel_state */ │ │ │ │ │ +208#define _CS_CANCEL_NOCANCEL 0 │ │ │ │ │ +209#define _CS_CANCEL_PENDING 1 │ │ │ │ │ 210 │ │ │ │ │ -211#include │ │ │ │ │ -212 │ │ │ │ │ -213#endif │ │ │ │ │ -_d_b_g_e_t_n_u_l_l │ │ │ │ │ -RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr) │ │ │ │ │ -DDeeffiinniittiioonn dblib.c:529 │ │ │ │ │ -_d_b_p_e_r_r_o_r │ │ │ │ │ -int dbperror(DBPROCESS *dbproc, DBINT msgno, long errnum,...) │ │ │ │ │ -Call client-installed error handler. │ │ │ │ │ -DDeeffiinniittiioonn dblib.c:8148 │ │ │ │ │ -___d_b_l_i_b___c_h_e_c_k___a_n_d___h_a_n_d_l_e___i_n_t_e_r_r_u_p_t │ │ │ │ │ -int _dblib_check_and_handle_interrupt(void *vdbproc) │ │ │ │ │ -check interrupts for libtds. │ │ │ │ │ -DDeeffiinniittiioonn dbutil.c:192 │ │ │ │ │ -_d_b_l_i_b___b_u_f_f_e_r___r_o_w │ │ │ │ │ -DDeeffiinniittiioonn buffering.h:1 │ │ │ │ │ -_t_d_s___d_b_l_i_b___l_o_g_i_n_r_e_c │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:44 │ │ │ │ │ -_D_B_P_R_O_C___R_O_W_B_U_F │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:52 │ │ │ │ │ -_B_C_P___H_O_S_T_C_O_L_I_N_F_O │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:62 │ │ │ │ │ -_B_C_P___H_O_S_T_F_I_L_E_I_N_F_O │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:74 │ │ │ │ │ -_D_B_R_E_M_O_T_E___P_R_O_C___P_A_R_A_M │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:89 │ │ │ │ │ -_D_B_R_E_M_O_T_E___P_R_O_C │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:101 │ │ │ │ │ -_d_b_o_p_t_i_o_n │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:110 │ │ │ │ │ -_N_U_L_L_R_E_P │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:117 │ │ │ │ │ -_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:123 │ │ │ │ │ -_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s_:_:_n_u_l_l_r_e_p_s │ │ │ │ │ -NULLREP nullreps[MAXBINDTYPES] │ │ │ │ │ -default null values │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:159 │ │ │ │ │ -_t_d_s___d_b_l_i_b___d_b_p_r_o_c_e_s_s_:_:_m_s_d_b_l_i_b │ │ │ │ │ -int msdblib │ │ │ │ │ -boolean use ms behaviour │ │ │ │ │ -DDeeffiinniittiioonn dblib.h:154 │ │ │ │ │ +_2_1_1struct ___c_s___c_o_m_m_a_n_d │ │ │ │ │ +212{ │ │ │ │ │ +213 struct ___c_s___c_o_m_m_a_n_d *next; │ │ │ │ │ +214 CS_INT command_state; │ │ │ │ │ +215 CS_INT results_state; │ │ │ │ │ +216 CS_INT cancel_state; │ │ │ │ │ +217 CS_INT cursor_state; │ │ │ │ │ +218 _C_S___C_O_N_N_E_C_T_I_O_N *con; │ │ │ │ │ +219 CS_INT command_type; │ │ │ │ │ +220 CS_CHAR *query; │ │ │ │ │ +221 short dynamic_cmd; │ │ │ │ │ +222 _C_S___D_Y_N_A_M_I_C *dyn; │ │ │ │ │ +223 int row_prefetched; │ │ │ │ │ +224 int curr_result_type; │ │ │ │ │ +225 int bind_count; │ │ │ │ │ +226 int get_data_item; │ │ │ │ │ +227 int get_data_bytes_returned; │ │ │ │ │ +228 _C_S___I_O_D_E_S_C *iodesc; │ │ │ │ │ +229 CS_INT send_data_started; │ │ │ │ │ +230 _C_S_R_E_M_O_T_E___P_R_O_C *rpc; │ │ │ │ │ +231 _C_S___P_A_R_A_M *input_params; │ │ │ │ │ +232 CS_INT client_cursor_id; │ │ │ │ │ +233 _T_D_S_C_U_R_S_O_R *cursor; │ │ │ │ │ +234 void *userdata; │ │ │ │ │ +235 int userdata_len; │ │ │ │ │ +236}; │ │ │ │ │ +237 │ │ │ │ │ +_2_3_8struct ___c_s___b_l_k_d_e_s_c │ │ │ │ │ +239{ │ │ │ │ │ +240 _T_D_S_B_C_P_I_N_F_O bcpinfo; │ │ │ │ │ +241}; │ │ │ │ │ +242 │ │ │ │ │ +243 │ │ │ │ │ +244#define _CS_ERRHAND_INLINE 1 │ │ │ │ │ +245#define _CS_ERRHAND_CB 2 │ │ │ │ │ +246 │ │ │ │ │ +_2_4_7struct ___c_s___l_o_c_a_l_e │ │ │ │ │ +248{ │ │ │ │ │ +249 char *language; │ │ │ │ │ +250 char *charset; │ │ │ │ │ +251 char *time; │ │ │ │ │ +252 char *collate; │ │ │ │ │ +253}; │ │ │ │ │ +254 │ │ │ │ │ +255/* internal defines for cursor processing */ │ │ │ │ │ +256 │ │ │ │ │ +257#define _CS_CURS_TYPE_UNACTIONED 0 │ │ │ │ │ +258#define _CS_CURS_TYPE_REQUESTED 1 │ │ │ │ │ +259#define _CS_CURS_TYPE_SENT 2 │ │ │ │ │ +260 │ │ │ │ │ +261/* │ │ │ │ │ +262 * internal prototypes │ │ │ │ │ +263 */ │ │ │ │ │ +264TDSRET _ct_handle_server_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * │ │ │ │ │ +tdsptr, _T_D_S_M_E_S_S_A_G_E * msgptr); │ │ │ │ │ +265int _ct_handle_client_message(const _T_D_S_C_O_N_T_E_X_T * ctxptr, _T_D_S_S_O_C_K_E_T * tdsptr, │ │ │ │ │ +_T_D_S_M_E_S_S_A_G_E * msgptr); │ │ │ │ │ +266TDS_SERVER_TYPE _ct_get_server_type(_T_D_S_S_O_C_K_E_T *tds, int datatype); │ │ │ │ │ +267int _ct_bind_data(_C_S___C_O_N_T_E_X_T *ctx, _T_D_S_R_E_S_U_L_T_I_N_F_O * resinfo, _T_D_S_R_E_S_U_L_T_I_N_F_O │ │ │ │ │ +*bindinfo, CS_INT offset); │ │ │ │ │ +268int _ct_get_client_type(const _T_D_S_C_O_L_U_M_N *col, bool describe); │ │ │ │ │ +269void _ctclient_msg(_C_S___C_O_N_N_E_C_T_I_O_N * con, const char *funcname, int layer, int │ │ │ │ │ +origin, int severity, int number, │ │ │ │ │ +270 const char *fmt, ...); │ │ │ │ │ +271CS_INT _ct_diag_clearmsg(_C_S___C_O_N_T_E_X_T * context, CS_INT type); │ │ │ │ │ +272void _cs_locale_free(_C_S___L_O_C_A_L_E *locale); │ │ │ │ │ +273_C_S___L_O_C_A_L_E *_cs_locale_copy(_C_S___L_O_C_A_L_E *orig); │ │ │ │ │ +274int _cs_locale_copy_inplace(_C_S___L_O_C_A_L_E *new_locale, _C_S___L_O_C_A_L_E *orig); │ │ │ │ │ +275 │ │ │ │ │ +276int _cs_convert_not_client(_C_S___C_O_N_T_E_X_T *ctx, const _T_D_S_C_O_L_U_M_N *curcol, │ │ │ │ │ +_C_O_N_V___R_E_S_U_L_T *convert_buffer, unsigned char **p_src); │ │ │ │ │ +277 │ │ │ │ │ +278#ifdef __cplusplus │ │ │ │ │ +279#if 0 │ │ │ │ │ +280{ │ │ │ │ │ +281#endif │ │ │ │ │ +282} │ │ │ │ │ +283#endif │ │ │ │ │ +284 │ │ │ │ │ +285#include │ │ │ │ │ +286 │ │ │ │ │ +287#endif │ │ │ │ │ +_t_d_s_._h │ │ │ │ │ +Main include file for libtds. │ │ │ │ │ +___c_s___i_o_d_e_s_c │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:97 │ │ │ │ │ +___c_s___c_l_i_e_n_t_m_s_g │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:177 │ │ │ │ │ +___c_s___s_e_r_v_e_r_m_s_g │ │ │ │ │ +DDeeffiinniittiioonn cstypes.h:191 │ │ │ │ │ +___c_s___c_o_n_f_i_g │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:45 │ │ │ │ │ +_c_s___d_i_a_g___m_s_g___c_l_i_e_n_t │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:55 │ │ │ │ │ +_c_s___d_i_a_g___m_s_g___s_v_r │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:61 │ │ │ │ │ +_c_s___d_i_a_g___m_s_g │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:69 │ │ │ │ │ +___c_s___c_o_n_t_e_x_t │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:75 │ │ │ │ │ +___c_s___c_o_n_t_e_x_t_:_:_l_o_g_i_n___t_i_m_e_o_u_t │ │ │ │ │ +int login_timeout │ │ │ │ │ +not used unless positive │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:101 │ │ │ │ │ +___c_s___c_o_n_t_e_x_t_:_:_q_u_e_r_y___t_i_m_e_o_u_t │ │ │ │ │ +int query_timeout │ │ │ │ │ +not used unless positive │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:102 │ │ │ │ │ +___c_t___c_o_l_i_n_f_o │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:109 │ │ │ │ │ +___c_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:117 │ │ │ │ │ +___c_s___p_a_r_a_m │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:138 │ │ │ │ │ +___c_s_r_e_m_o_t_e___p_r_o_c │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:162 │ │ │ │ │ +___c_s___d_y_n_a_m_i_c │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:176 │ │ │ │ │ +___c_s___c_o_m_m_a_n_d │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:212 │ │ │ │ │ +___c_s___b_l_k_d_e_s_c │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:239 │ │ │ │ │ +___c_s___l_o_c_a_l_e │ │ │ │ │ +DDeeffiinniittiioonn ctlib.h:248 │ │ │ │ │ +_c_o_n_v___r_e_s_u_l_t │ │ │ │ │ +DDeeffiinniittiioonn convert.h:34 │ │ │ │ │ _t_d_s___l_o_g_i_n │ │ │ │ │ DDeeffiinniittiioonn tds.h:517 │ │ │ │ │ +_t_d_s___c_o_l_u_m_n │ │ │ │ │ +Metadata about columns in regular and compute rows. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:689 │ │ │ │ │ +_t_d_s___r_e_s_u_l_t___i_n_f_o │ │ │ │ │ +Hold information for any results. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:769 │ │ │ │ │ _t_d_s___m_e_s_s_a_g_e │ │ │ │ │ DDeeffiinniittiioonn tds.h:876 │ │ │ │ │ +_t_d_s___c_u_r_s_o_r │ │ │ │ │ +Holds informations about a cursor. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:937 │ │ │ │ │ +_t_d_s___d_y_n_a_m_i_c │ │ │ │ │ +Holds information for a dynamic (also called prepared) query. │ │ │ │ │ +DDeeffiinniittiioonn tds.h:977 │ │ │ │ │ _t_d_s___c_o_n_t_e_x_t │ │ │ │ │ DDeeffiinniittiioonn tds.h:1029 │ │ │ │ │ _t_d_s___s_o_c_k_e_t │ │ │ │ │ Information for a server connection. │ │ │ │ │ DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ _t_d_s___b_c_p_i_n_f_o │ │ │ │ │ DDeeffiinniittiioonn tds.h:1661 │ │ │ │ │ -_d_b_t_y_p_e_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn sybdb.h:336 │ │ │ │ │ -_d_b_s_t_r_i_n_g │ │ │ │ │ -DDeeffiinniittiioonn sybdb.h:342 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00497_source.html │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/syberror.h Source File │ │ │ │ +FreeTDS API: include/sqldb.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,15 +74,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ -
syberror.h
│ │ │ │ +
sqldb.h
│ │ │ │
│ │ │ │
│ │ │ │
1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
│ │ │ │
2 * Copyright (C) 1998-1999 Brian Bruns
│ │ │ │
3 *
│ │ │ │
4 * This library is free software; you can redistribute it and/or
│ │ │ │
5 * modify it under the terms of the GNU Library General Public
│ │ │ │ @@ -96,49 +96,176 @@ │ │ │ │
13 *
│ │ │ │
14 * You should have received a copy of the GNU Library General Public
│ │ │ │
15 * License along with this library; if not, write to the
│ │ │ │
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
│ │ │ │
17 * Boston, MA 02111-1307, USA.
│ │ │ │
18 */
│ │ │ │
19
│ │ │ │ -
20#ifndef _syberror_h_
│ │ │ │ -
21#define _syberror_h_
│ │ │ │ +
20#ifndef SQLDB_h
│ │ │ │ +
21#define SQLDB_h
│ │ │ │
22
│ │ │ │ -
23#ifdef __cplusplus
│ │ │ │ -
24extern "C"
│ │ │ │ -
25{
│ │ │ │ -
26#if 0
│ │ │ │ -
27}
│ │ │ │ -
28#endif
│ │ │ │ -
29#endif
│ │ │ │ -
30
│ │ │ │ -
31static const char rcsid_syberror_h[] = "$Id: syberror.h,v 1.4 2004-10-28 12:42:12 freddy77 Exp $";
│ │ │ │ -
32static const void *const no_unused_syberror_h_warn[] = { rcsid_syberror_h, no_unused_syberror_h_warn };
│ │ │ │ -
33
│ │ │ │ -
34/* severity levels, gleaned from google */
│ │ │ │ -
35#define EXINFO 1
│ │ │ │ -
36#define EXUSER 2
│ │ │ │ -
37#define EXNONFATAL 3
│ │ │ │ -
38#define EXCONVERSION 4
│ │ │ │ -
39#define EXSERVER 5
│ │ │ │ -
40#define EXTIME 6
│ │ │ │ -
41#define EXPROGRAM 7
│ │ │ │ -
42#define EXRESOURCE 8
│ │ │ │ -
43#define EXCOMM 9
│ │ │ │ -
44#define EXFATAL 10
│ │ │ │ -
45#define EXCONSISTENCY 11
│ │ │ │ -
46
│ │ │ │ -
47#ifdef __cplusplus
│ │ │ │ -
48#if 0
│ │ │ │ -
49{
│ │ │ │ -
50#endif
│ │ │ │ -
51}
│ │ │ │ -
52#endif
│ │ │ │ -
53
│ │ │ │ -
54#endif
│ │ │ │ +
23#include "./sybdb.h"
│ │ │ │ +
24
│ │ │ │ +
25#define SQLCHAR SYBCHAR
│ │ │ │ +
26#define SQLVARCHAR SYBVARCHAR
│ │ │ │ +
27#define SQLINTN SYBINTN
│ │ │ │ +
28#define SQLINT1 SYBINT1
│ │ │ │ +
29#define SQLINT2 SYBINT2
│ │ │ │ +
30#define SQLINT4 SYBINT4
│ │ │ │ +
31#define SQLINT8 SYBINT8
│ │ │ │ +
32#define SQLFLT8 SYBFLT8
│ │ │ │ +
33#define SQLDATETIME SYBDATETIME
│ │ │ │ +
34#define SQLBIT SYBBIT
│ │ │ │ +
35#define SQLTEXT SYBTEXT
│ │ │ │ +
36#define SQLIMAGE SYBIMAGE
│ │ │ │ +
37#define SQLMONEY4 SYBMONEY4
│ │ │ │ +
38#define SQLMONEY SYBMONEY
│ │ │ │ +
39#define SQLDATETIM4 SYBDATETIME4
│ │ │ │ +
40#define SQLFLT4 SYBREAL
│ │ │ │ +
41#define SQLBINARY SYBBINARY
│ │ │ │ +
42#define SQLVARBINARY SYBVARBINARY
│ │ │ │ +
43#define SQLNUMERIC SYBNUMERIC
│ │ │ │ +
44#define SQLDECIMAL SYBDECIMAL
│ │ │ │ +
45#define SQLFLTN SYBFLTN
│ │ │ │ +
46#define SQLMONEYN SYBMONEYN
│ │ │ │ +
47#define SQLDATETIMN SYBDATETIMN
│ │ │ │ +
48#define SQLVOID SYBVOID
│ │ │ │ +
49
│ │ │ │ +
50#define SMALLDATETIBIND SMALLDATETIMEBIND
│ │ │ │ +
51
│ │ │ │ +
52#define DBERRHANDLE_PROC EHANDLEFUNC
│ │ │ │ +
53#define DBMSGHANDLE_PROC MHANDLEFUNC
│ │ │ │ +
54
│ │ │ │ +
55/* DB-Library errors as defined by Microsoft */
│ │ │ │ +
56#define SQLEMEM SYBEMEM
│ │ │ │ +
57#define SQLENULL SYBENULL
│ │ │ │ +
58#define SQLENLOG SYBENLOG
│ │ │ │ +
59#define SQLEPWD SYBEPWD
│ │ │ │ +
60#define SQLECONN SYBECONN
│ │ │ │ +
61#define SQLEDDNE SYBEDDNE
│ │ │ │ +
62#define SQLENULLO SYBENULLO
│ │ │ │ +
63#define SQLESMSG SYBESMSG
│ │ │ │ +
64#define SQLEBTOK SYBEBTOK
│ │ │ │ +
65#define SQLENSPE SYBENSPE
│ │ │ │ +
66#define SQLEREAD SYBEREAD
│ │ │ │ +
67#define SQLECNOR SYBECNOR
│ │ │ │ +
68#define SQLETSIT SYBETSIT
│ │ │ │ +
69#define SQLEPARM SYBEPARM
│ │ │ │ +
70#define SQLEAUTN SYBEAUTN
│ │ │ │ +
71#define SQLECOFL SYBECOFL
│ │ │ │ +
72#define SQLERDCN SYBERDCN
│ │ │ │ +
73#define SQLEICN SYBEICN
│ │ │ │ +
74#define SQLECLOS SYBECLOS
│ │ │ │ +
75#define SQLENTXT SYBENTXT
│ │ │ │ +
76#define SQLEDNTI SYBEDNTI
│ │ │ │ +
77#define SQLETMTD SYBETMTD
│ │ │ │ +
78#define SQLEASEC SYBEASEC
│ │ │ │ +
79#define SQLENTLL SYBENTLL
│ │ │ │ +
80#define SQLETIME SYBETIME
│ │ │ │ +
81#define SQLEWRIT SYBEWRIT
│ │ │ │ +
82#define SQLEMODE SYBEMODE
│ │ │ │ +
83#define SQLEOOB SYBEOOB
│ │ │ │ +
84#define SQLEITIM SYBEITIM
│ │ │ │ +
85#define SQLEDBPS SYBEDBPS
│ │ │ │ +
86#define SQLEIOPT SYBEIOPT
│ │ │ │ +
87#define SQLEASNL SYBEASNL
│ │ │ │ +
88#define SQLEASUL SYBEASUL
│ │ │ │ +
89#define SQLENPRM SYBENPRM
│ │ │ │ +
90#define SQLEDBOP SYBEDBOP
│ │ │ │ +
91#define SQLENSIP SYBENSIP
│ │ │ │ +
92#define SQLECNULL SYBECNULL
│ │ │ │ +
93#define SQLESEOF SYBESEOF
│ │ │ │ +
94#define SQLERPND SYBERPND
│ │ │ │ +
95#define SQLECSYN SYBECSYN
│ │ │ │ +
96#define SQLENONET SYBENONET
│ │ │ │ +
97#define SQLEBTYP SYBEBTYP
│ │ │ │ +
98#define SQLEABNC SYBEABNC
│ │ │ │ +
99#define SQLEABMT SYBEABMT
│ │ │ │ +
100#define SQLEABNP SYBEABNP
│ │ │ │ +
101#define SQLEBNCR SYBEBNCR
│ │ │ │ +
102#define SQLEAAMT SYBEAAMT
│ │ │ │ +
103#define SQLENXID SYBENXID
│ │ │ │ +
104#define SQLEIFNB SYBEIFNB
│ │ │ │ +
105#define SQLEKBCO SYBEKBCO
│ │ │ │ +
106#define SQLEBBCI SYBEBBCI
│ │ │ │ +
107#define SQLEKBCI SYBEKBCI
│ │ │ │ +
108#define SQLEBCWE SYBEBCWE
│ │ │ │ +
109#define SQLEBCNN SYBEBCNN
│ │ │ │ +
110#define SQLEBCOR SYBEBCOR
│ │ │ │ +
111#define SQLEBCPI SYBEBCPI
│ │ │ │ +
112#define SQLEBCPN SYBEBCPN
│ │ │ │ +
113#define SQLEBCPB SYBEBCPB
│ │ │ │ +
114#define SQLEVDPT SYBEVDPT
│ │ │ │ +
115#define SQLEBIVI SYBEBIVI
│ │ │ │ +
116#define SQLEBCBC SYBEBCBC
│ │ │ │ +
117#define SQLEBCFO SYBEBCFO
│ │ │ │ +
118#define SQLEBCVH SYBEBCVH
│ │ │ │ +
119#define SQLEBCUO SYBEBCUO
│ │ │ │ +
120#define SQLEBUOE SYBEBUOE
│ │ │ │ +
121#define SQLEBWEF SYBEBWEF
│ │ │ │ +
122#define SQLEBTMT SYBEBTMT
│ │ │ │ +
123#define SQLEBEOF SYBEBEOF
│ │ │ │ +
124#define SQLEBCSI SYBEBCSI
│ │ │ │ +
125#define SQLEPNUL SYBEPNUL
│ │ │ │ +
126#define SQLEBSKERR SYBEBSKERR
│ │ │ │ +
127#define SQLEBDIO SYBEBDIO
│ │ │ │ +
128#define SQLEBCNT SYBEBCNT
│ │ │ │ +
129#define SQLEMDBP SYBEMDBP
│ │ │ │ +
130#define SQLINIT SYBINIT
│ │ │ │ +
131#define SQLCRSINV SYBCRSINV
│ │ │ │ +
132#define SQLCRSCMD SYBCRSCMD
│ │ │ │ +
133#define SQLCRSNOIND SYBCRSNOIND
│ │ │ │ +
134#define SQLCRSDIS SYBCRSDIS
│ │ │ │ +
135#define SQLCRSAGR SYBCRSAGR
│ │ │ │ +
136#define SQLCRSORD SYBCRSORD
│ │ │ │ +
137#define SQLCRSMEM SYBCRSMEM
│ │ │ │ +
138#define SQLCRSBSKEY SYBCRSBSKEY
│ │ │ │ +
139#define SQLCRSNORES SYBCRSNORES
│ │ │ │ +
140#define SQLCRSVIEW SYBCRSVIEW
│ │ │ │ +
141#define SQLCRSBUFR SYBCRSBUFR
│ │ │ │ +
142#define SQLCRSFROWN SYBCRSFROWN
│ │ │ │ +
143#define SQLCRSBROL SYBCRSBROL
│ │ │ │ +
144#define SQLCRSFRAND SYBCRSFRAND
│ │ │ │ +
145#define SQLCRSFLAST SYBCRSFLAST
│ │ │ │ +
146#define SQLCRSRO SYBCRSRO
│ │ │ │ +
147#define SQLCRSTAB SYBCRSTAB
│ │ │ │ +
148#define SQLCRSUPDTAB SYBCRSUPDTAB
│ │ │ │ +
149#define SQLCRSUPDNB SYBCRSUPDNB
│ │ │ │ +
150#define SQLCRSVIIND SYBCRSVIIND
│ │ │ │ +
151#define SQLCRSNOUPD SYBCRSNOUPD
│ │ │ │ +
152#define SQLCRSOS SYBCRSOS
│ │ │ │ +
153#define SQLEBCSA SYBEBCSA
│ │ │ │ +
154#define SQLEBCRO SYBEBCRO
│ │ │ │ +
155#define SQLEBCNE SYBEBCNE
│ │ │ │ +
156#define SQLEBCSK SYBEBCSK
│ │ │ │ +
157#define SQLEUVBF SYBEUVBF
│ │ │ │ +
158#define SQLEBIHC SYBEBIHC
│ │ │ │ +
159#define SQLEBWFF SYBEBWFF
│ │ │ │ +
160#define SQLNUMVAL SYBNUMVAL
│ │ │ │ +
161#define SQLEOLDVR SYBEOLDVR
│ │ │ │ +
162#define SQLEBCPS SYBEBCPS
│ │ │ │ +
163#define SQLEDTC SYBEDTC
│ │ │ │ +
164#define SQLENOTIMPL SYBENOTIMPL
│ │ │ │ +
165#define SQLENONFLOAT SYBENONFLOAT
│ │ │ │ +
166#define SQLECONNFB SYBECONNFB
│ │ │ │ +
167
│ │ │ │ +
168
│ │ │ │ +
169#define dbfreelogin(x) dbloginfree((x))
│ │ │ │ +
170
│ │ │ │ +
171#define dbprocerrhandle(p, h) dberrhandle((h))
│ │ │ │ +
172#define dbprocmsghandle(p, h) dbmsghandle((h))
│ │ │ │ +
173
│ │ │ │ +
174#define dbwinexit()
│ │ │ │ +
175
│ │ │ │ +
176static const char rcsid_sqldb_h[] = "$Id: sqldb.h,v 1.6 2009-12-02 22:35:18 jklowden Exp $";
│ │ │ │ +
177static const void *const no_unused_sqldb_h_warn[] = { rcsid_sqldb_h, no_unused_sqldb_h_warn };
│ │ │ │ +
178
│ │ │ │ +
179
│ │ │ │ +
180#endif
│ │ │ │ +
Primary include file for db-lib applications.
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ -syberror.h │ │ │ │ │ +sqldb.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ 2 * Copyright (C) 1998-1999 Brian Bruns │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ @@ -19,46 +19,174 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _syberror_h_ │ │ │ │ │ -21#define _syberror_h_ │ │ │ │ │ +20#ifndef SQLDB_h │ │ │ │ │ +21#define SQLDB_h │ │ │ │ │ 22 │ │ │ │ │ -23#ifdef __cplusplus │ │ │ │ │ -24extern "C" │ │ │ │ │ -25{ │ │ │ │ │ -26#if 0 │ │ │ │ │ -27} │ │ │ │ │ -28#endif │ │ │ │ │ -29#endif │ │ │ │ │ -30 │ │ │ │ │ -31static const char rcsid_syberror_h[] = "$Id: syberror.h,v 1.4 2004-10-28 12: │ │ │ │ │ -42:12 freddy77 Exp $"; │ │ │ │ │ -32static const void *const no_unused_syberror_h_warn[] = { rcsid_syberror_h, │ │ │ │ │ -no_unused_syberror_h_warn }; │ │ │ │ │ -33 │ │ │ │ │ -34/* severity levels, gleaned from google */ │ │ │ │ │ -35#define EXINFO 1 │ │ │ │ │ -36#define EXUSER 2 │ │ │ │ │ -37#define EXNONFATAL 3 │ │ │ │ │ -38#define EXCONVERSION 4 │ │ │ │ │ -39#define EXSERVER 5 │ │ │ │ │ -40#define EXTIME 6 │ │ │ │ │ -41#define EXPROGRAM 7 │ │ │ │ │ -42#define EXRESOURCE 8 │ │ │ │ │ -43#define EXCOMM 9 │ │ │ │ │ -44#define EXFATAL 10 │ │ │ │ │ -45#define EXCONSISTENCY 11 │ │ │ │ │ -46 │ │ │ │ │ -47#ifdef __cplusplus │ │ │ │ │ -48#if 0 │ │ │ │ │ -49{ │ │ │ │ │ -50#endif │ │ │ │ │ -51} │ │ │ │ │ -52#endif │ │ │ │ │ -53 │ │ │ │ │ -54#endif │ │ │ │ │ +23#include "_._/_s_y_b_d_b_._h" │ │ │ │ │ +24 │ │ │ │ │ +25#define SQLCHAR SYBCHAR │ │ │ │ │ +26#define SQLVARCHAR SYBVARCHAR │ │ │ │ │ +27#define SQLINTN SYBINTN │ │ │ │ │ +28#define SQLINT1 SYBINT1 │ │ │ │ │ +29#define SQLINT2 SYBINT2 │ │ │ │ │ +30#define SQLINT4 SYBINT4 │ │ │ │ │ +31#define SQLINT8 SYBINT8 │ │ │ │ │ +32#define SQLFLT8 SYBFLT8 │ │ │ │ │ +33#define SQLDATETIME SYBDATETIME │ │ │ │ │ +34#define SQLBIT SYBBIT │ │ │ │ │ +35#define SQLTEXT SYBTEXT │ │ │ │ │ +36#define SQLIMAGE SYBIMAGE │ │ │ │ │ +37#define SQLMONEY4 SYBMONEY4 │ │ │ │ │ +38#define SQLMONEY SYBMONEY │ │ │ │ │ +39#define SQLDATETIM4 SYBDATETIME4 │ │ │ │ │ +40#define SQLFLT4 SYBREAL │ │ │ │ │ +41#define SQLBINARY SYBBINARY │ │ │ │ │ +42#define SQLVARBINARY SYBVARBINARY │ │ │ │ │ +43#define SQLNUMERIC SYBNUMERIC │ │ │ │ │ +44#define SQLDECIMAL SYBDECIMAL │ │ │ │ │ +45#define SQLFLTN SYBFLTN │ │ │ │ │ +46#define SQLMONEYN SYBMONEYN │ │ │ │ │ +47#define SQLDATETIMN SYBDATETIMN │ │ │ │ │ +48#define SQLVOID SYBVOID │ │ │ │ │ +49 │ │ │ │ │ +50#define SMALLDATETIBIND SMALLDATETIMEBIND │ │ │ │ │ +51 │ │ │ │ │ +52#define DBERRHANDLE_PROC EHANDLEFUNC │ │ │ │ │ +53#define DBMSGHANDLE_PROC MHANDLEFUNC │ │ │ │ │ +54 │ │ │ │ │ +55/* DB-Library errors as defined by Microsoft */ │ │ │ │ │ +56#define SQLEMEM SYBEMEM │ │ │ │ │ +57#define SQLENULL SYBENULL │ │ │ │ │ +58#define SQLENLOG SYBENLOG │ │ │ │ │ +59#define SQLEPWD SYBEPWD │ │ │ │ │ +60#define SQLECONN SYBECONN │ │ │ │ │ +61#define SQLEDDNE SYBEDDNE │ │ │ │ │ +62#define SQLENULLO SYBENULLO │ │ │ │ │ +63#define SQLESMSG SYBESMSG │ │ │ │ │ +64#define SQLEBTOK SYBEBTOK │ │ │ │ │ +65#define SQLENSPE SYBENSPE │ │ │ │ │ +66#define SQLEREAD SYBEREAD │ │ │ │ │ +67#define SQLECNOR SYBECNOR │ │ │ │ │ +68#define SQLETSIT SYBETSIT │ │ │ │ │ +69#define SQLEPARM SYBEPARM │ │ │ │ │ +70#define SQLEAUTN SYBEAUTN │ │ │ │ │ +71#define SQLECOFL SYBECOFL │ │ │ │ │ +72#define SQLERDCN SYBERDCN │ │ │ │ │ +73#define SQLEICN SYBEICN │ │ │ │ │ +74#define SQLECLOS SYBECLOS │ │ │ │ │ +75#define SQLENTXT SYBENTXT │ │ │ │ │ +76#define SQLEDNTI SYBEDNTI │ │ │ │ │ +77#define SQLETMTD SYBETMTD │ │ │ │ │ +78#define SQLEASEC SYBEASEC │ │ │ │ │ +79#define SQLENTLL SYBENTLL │ │ │ │ │ +80#define SQLETIME SYBETIME │ │ │ │ │ +81#define SQLEWRIT SYBEWRIT │ │ │ │ │ +82#define SQLEMODE SYBEMODE │ │ │ │ │ +83#define SQLEOOB SYBEOOB │ │ │ │ │ +84#define SQLEITIM SYBEITIM │ │ │ │ │ +85#define SQLEDBPS SYBEDBPS │ │ │ │ │ +86#define SQLEIOPT SYBEIOPT │ │ │ │ │ +87#define SQLEASNL SYBEASNL │ │ │ │ │ +88#define SQLEASUL SYBEASUL │ │ │ │ │ +89#define SQLENPRM SYBENPRM │ │ │ │ │ +90#define SQLEDBOP SYBEDBOP │ │ │ │ │ +91#define SQLENSIP SYBENSIP │ │ │ │ │ +92#define SQLECNULL SYBECNULL │ │ │ │ │ +93#define SQLESEOF SYBESEOF │ │ │ │ │ +94#define SQLERPND SYBERPND │ │ │ │ │ +95#define SQLECSYN SYBECSYN │ │ │ │ │ +96#define SQLENONET SYBENONET │ │ │ │ │ +97#define SQLEBTYP SYBEBTYP │ │ │ │ │ +98#define SQLEABNC SYBEABNC │ │ │ │ │ +99#define SQLEABMT SYBEABMT │ │ │ │ │ +100#define SQLEABNP SYBEABNP │ │ │ │ │ +101#define SQLEBNCR SYBEBNCR │ │ │ │ │ +102#define SQLEAAMT SYBEAAMT │ │ │ │ │ +103#define SQLENXID SYBENXID │ │ │ │ │ +104#define SQLEIFNB SYBEIFNB │ │ │ │ │ +105#define SQLEKBCO SYBEKBCO │ │ │ │ │ +106#define SQLEBBCI SYBEBBCI │ │ │ │ │ +107#define SQLEKBCI SYBEKBCI │ │ │ │ │ +108#define SQLEBCWE SYBEBCWE │ │ │ │ │ +109#define SQLEBCNN SYBEBCNN │ │ │ │ │ +110#define SQLEBCOR SYBEBCOR │ │ │ │ │ +111#define SQLEBCPI SYBEBCPI │ │ │ │ │ +112#define SQLEBCPN SYBEBCPN │ │ │ │ │ +113#define SQLEBCPB SYBEBCPB │ │ │ │ │ +114#define SQLEVDPT SYBEVDPT │ │ │ │ │ +115#define SQLEBIVI SYBEBIVI │ │ │ │ │ +116#define SQLEBCBC SYBEBCBC │ │ │ │ │ +117#define SQLEBCFO SYBEBCFO │ │ │ │ │ +118#define SQLEBCVH SYBEBCVH │ │ │ │ │ +119#define SQLEBCUO SYBEBCUO │ │ │ │ │ +120#define SQLEBUOE SYBEBUOE │ │ │ │ │ +121#define SQLEBWEF SYBEBWEF │ │ │ │ │ +122#define SQLEBTMT SYBEBTMT │ │ │ │ │ +123#define SQLEBEOF SYBEBEOF │ │ │ │ │ +124#define SQLEBCSI SYBEBCSI │ │ │ │ │ +125#define SQLEPNUL SYBEPNUL │ │ │ │ │ +126#define SQLEBSKERR SYBEBSKERR │ │ │ │ │ +127#define SQLEBDIO SYBEBDIO │ │ │ │ │ +128#define SQLEBCNT SYBEBCNT │ │ │ │ │ +129#define SQLEMDBP SYBEMDBP │ │ │ │ │ +130#define SQLINIT SYBINIT │ │ │ │ │ +131#define SQLCRSINV SYBCRSINV │ │ │ │ │ +132#define SQLCRSCMD SYBCRSCMD │ │ │ │ │ +133#define SQLCRSNOIND SYBCRSNOIND │ │ │ │ │ +134#define SQLCRSDIS SYBCRSDIS │ │ │ │ │ +135#define SQLCRSAGR SYBCRSAGR │ │ │ │ │ +136#define SQLCRSORD SYBCRSORD │ │ │ │ │ +137#define SQLCRSMEM SYBCRSMEM │ │ │ │ │ +138#define SQLCRSBSKEY SYBCRSBSKEY │ │ │ │ │ +139#define SQLCRSNORES SYBCRSNORES │ │ │ │ │ +140#define SQLCRSVIEW SYBCRSVIEW │ │ │ │ │ +141#define SQLCRSBUFR SYBCRSBUFR │ │ │ │ │ +142#define SQLCRSFROWN SYBCRSFROWN │ │ │ │ │ +143#define SQLCRSBROL SYBCRSBROL │ │ │ │ │ +144#define SQLCRSFRAND SYBCRSFRAND │ │ │ │ │ +145#define SQLCRSFLAST SYBCRSFLAST │ │ │ │ │ +146#define SQLCRSRO SYBCRSRO │ │ │ │ │ +147#define SQLCRSTAB SYBCRSTAB │ │ │ │ │ +148#define SQLCRSUPDTAB SYBCRSUPDTAB │ │ │ │ │ +149#define SQLCRSUPDNB SYBCRSUPDNB │ │ │ │ │ +150#define SQLCRSVIIND SYBCRSVIIND │ │ │ │ │ +151#define SQLCRSNOUPD SYBCRSNOUPD │ │ │ │ │ +152#define SQLCRSOS SYBCRSOS │ │ │ │ │ +153#define SQLEBCSA SYBEBCSA │ │ │ │ │ +154#define SQLEBCRO SYBEBCRO │ │ │ │ │ +155#define SQLEBCNE SYBEBCNE │ │ │ │ │ +156#define SQLEBCSK SYBEBCSK │ │ │ │ │ +157#define SQLEUVBF SYBEUVBF │ │ │ │ │ +158#define SQLEBIHC SYBEBIHC │ │ │ │ │ +159#define SQLEBWFF SYBEBWFF │ │ │ │ │ +160#define SQLNUMVAL SYBNUMVAL │ │ │ │ │ +161#define SQLEOLDVR SYBEOLDVR │ │ │ │ │ +162#define SQLEBCPS SYBEBCPS │ │ │ │ │ +163#define SQLEDTC SYBEDTC │ │ │ │ │ +164#define SQLENOTIMPL SYBENOTIMPL │ │ │ │ │ +165#define SQLENONFLOAT SYBENONFLOAT │ │ │ │ │ +166#define SQLECONNFB SYBECONNFB │ │ │ │ │ +167 │ │ │ │ │ +168 │ │ │ │ │ +169#define dbfreelogin(x) dbloginfree((x)) │ │ │ │ │ +170 │ │ │ │ │ +171#define dbprocerrhandle(p, h) dberrhandle((h)) │ │ │ │ │ +172#define dbprocmsghandle(p, h) dbmsghandle((h)) │ │ │ │ │ +173 │ │ │ │ │ +174#define dbwinexit() │ │ │ │ │ +175 │ │ │ │ │ +176static const char rcsid_sqldb_h[] = "$Id: sqldb.h,v 1.6 2009-12-02 22:35:18 │ │ │ │ │ +jklowden Exp $"; │ │ │ │ │ +177static const void *const no_unused_sqldb_h_warn[] = { rcsid_sqldb_h, │ │ │ │ │ +no_unused_sqldb_h_warn }; │ │ │ │ │ +178 │ │ │ │ │ +179 │ │ │ │ │ +180#endif │ │ │ │ │ +_s_y_b_d_b_._h │ │ │ │ │ +Primary include file for db-lib applications. │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00524.html │ │ │ │ @@ -78,15 +78,15 @@ │ │ │ │
Member bcp_options (DBPROCESS *dbproc, int option, BYTE *value, int valuelen)
│ │ │ │
Simplify. Remove valuelen, and dbproc->bcpinfo->hint = strdup(hints[i])
│ │ │ │
Member dbanullbind (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)
│ │ │ │
Never fails, but only because failure conditions aren't checked.
│ │ │ │
│ │ │ │
Member dbcancel (DBPROCESS *dbproc)
│ │ │ │
Check for failure and return accordingly.
│ │ │ │ -
Member dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol)
│ │ │ │ +
Member dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol)
│ │ │ │
Support cursor rows.
│ │ │ │
Member dbconvert_ps (DBPROCESS *dbproc, int db_srctype, const BYTE *src, DBINT srclen, int db_desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)
│ │ │ │

What happens if client does not reset values?

│ │ │ │

│ │ │ │

Microsoft and Sybase define this function differently.
│ │ │ │

│ │ │ │
│ │ │ │ @@ -118,15 +118,15 @@ │ │ │ │

│ │ │ │

│ │ │ │

Support alternative to '?' for the replacement character.
│ │ │ │

│ │ │ │ │ │ │ │
Member tds_process_tokens (TDSSOCKET *tds, TDS_INT *result_type, int *done_flags, unsigned flag)
│ │ │ │
Complete TDS_DESCRIBE_RESULT description
│ │ │ │ -
Member tds_set_server (TDSLOGIN *tds_login, const char *server) TDS_WUR
│ │ │ │ +
Member tds_set_server (TDSLOGIN *tds_login, const char *server) TDS_WUR
│ │ │ │
open the log file earlier, so these messages can be seen.
│ │ │ │
│ │ │ │
Member tdsdbopen (LOGINREC *login, const char *server, int msdblib)
│ │ │ │

use asprintf() to avoid buffer overflow.

│ │ │ │

│ │ │ │

separate error messages for no-such-server and no-such-user.

│ │ │ │
│ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527.html │ │ │ │ @@ -4514,15 +4514,15 @@ │ │ │ │ columnNth in the result set, starting from 1. │ │ │ │ pdbcoladdress of structure to be populated by this function.
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
Returns
SUCCEED or FAIL.
│ │ │ │ -
See also
dbcolinfo().
│ │ │ │ +
See also
dbcolinfo().
│ │ │ │
│ │ │ │ Here is the call graph for this function:
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ @@ -4737,15 +4737,15 @@ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

See which version of db-lib is in use.

│ │ │ │
Returns
null-terminated ASCII string representing the version of db-lib.
│ │ │ │
│ │ │ │ -
Remarks
FreeTDS returns the CVS version string of dblib.c.
│ │ │ │ +
Remarks
FreeTDS returns the CVS version string of dblib.c.
│ │ │ │
│ │ │ │
See also
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │

◆ dbwillconvert()

│ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga0b5ca7723f370dac9fe1f6db35e331a0_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbcoltypeinfo",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get precision and scale information for a regular result column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga0fcfcf6846442dac9dd5584d270ec72a_icgraph.dot │ │ │ │ @@ -9,15 +9,15 @@ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="dbclose",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaef740b394b44eb33925c2718f7b30d69",tooltip="Close a connection to the server and free associated resources."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="dbexit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gad0044401c8c83205583f93a4764f2d8b",tooltip="Close server connections and free all related structures."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node5 [id="Node000005",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="dbcmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga87b39d9863316b4ba85654b0885d53a0",tooltip="Append SQL to the command buffer."]; │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="dbfcmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga43727b10d4cbb7708b374811abe6eadb",tooltip="printf-like way to form SQL to send to the server."]; │ │ │ │ Node6 -> Node8 [id="edge7_Node000006_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node8 [id="Node000008",label="dbuse",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga66ea891910f0a357cc78107d6ab7d962",tooltip="Change current database."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga32eb72f6fb3edb130e59fb3dd0766e7e_cgraph.dot │ │ │ │ @@ -5,16 +5,16 @@ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="dbconvert",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="cf."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="dbconvert_ps",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga8b00d5cdcaa20cba13fa2e03d52a443e",tooltip="Convert one datatype to another."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ + Node3 [id="Node000003",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="dbperror",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ Node2 -> Node4 [id="edge4_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 -> Node7 [id="edge5_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ Node2 -> Node8 [id="edge6_Node000002_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ + Node8 [id="Node000008",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga3bcdc8f584537b8278483f2cee59f130_icgraph.dot │ │ │ │ @@ -3,11 +3,11 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbcolname",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Return name of a regular result column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node3 [id="Node000003",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.dot.gz │ │ │ │ ├── a00527_ga548153eb2eae76c48aa9d4b72258dc1c_cgraph.dot │ │ │ │ │ @@ -7,22 +7,22 @@ │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="dbwritetext",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="dbconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga32eb72f6fb3edb130e59fb3dd0766e7e",tooltip="cf."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="dbconvert_ps",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga8b00d5cdcaa20cba13fa2e03d52a443e",tooltip="Convert one datatype to another."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ + Node4 [id="Node000004",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbperror",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node3 -> Node5 [id="edge5_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node8 [id="edge6_Node000003_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node3 -> Node9 [id="edge7_Node000003_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ Node1 -> Node5 [id="edge8_Node000001_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node10 [id="edge9_Node000001_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="dbresults",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga4e26d949be2c3bf71b1a33c75b11d931",tooltip="Set up query results."]; │ │ │ │ │ Node10 -> Node11 [id="edge10_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="_dbresults",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaf1879b85e8238c015b9648d077665285",tooltip=" "]; │ │ │ │ │ Node11 -> Node5 [id="edge11_Node000011_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 -> Node12 [id="edge12_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -30,20 +30,20 @@ │ │ │ │ │ Node1 -> Node106 [id="edge13_Node000001_Node000106",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node106 [id="Node000106",label="dbsqlok",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node106 -> Node71 [id="edge14_Node000106_Node000071",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node71 [id="Node000071",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ │ Node106 -> Node12 [id="edge15_Node000106_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node12 [id="edge16_Node000001_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node107 [id="edge17_Node000001_Node000107",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node107 [id="Node000107",label="tds_writetext_continue",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab68dead99a2ebec55895a10cd3db5202",tooltip="Send some data in the writetext request started by tds_writetext_start."]; │ │ │ │ │ + Node107 [id="Node000107",label="tds_writetext_continue",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab68dead99a2ebec55895a10cd3db5202",tooltip="Send some data in the writetext request started by tds_writetext_start."]; │ │ │ │ │ Node1 -> Node108 [id="edge18_Node000001_Node000108",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node108 [id="Node000108",label="tds_writetext_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac1e460551f1188620ea478238864ac4b",tooltip="Finish sending writetext data."]; │ │ │ │ │ + Node108 [id="Node000108",label="tds_writetext_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac1e460551f1188620ea478238864ac4b",tooltip="Finish sending writetext data."]; │ │ │ │ │ Node108 -> Node71 [id="edge19_Node000108_Node000071",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node109 [id="edge20_Node000001_Node000109",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node109 [id="Node000109",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node109 [id="Node000109",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node109 -> Node73 [id="edge21_Node000109_Node000073",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node73 [id="Node000073",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node73 -> Node12 [id="edge22_Node000073_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node109 -> Node110 [id="edge23_Node000109_Node000110",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node110 [id="Node000110",label="tds_submit_queryf",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad695defcbf663b0023851a198206a772",tooltip="Format and submit a query."]; │ │ │ │ │ Node110 -> Node111 [id="edge24_Node000110_Node000111",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node111 [id="Node000111",label="tds_submit_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga57c856964a9a0b4cc43f5192647c51e7_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbvarylen",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Determine whether a column can vary in size."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga636e6f1b64743f3cf22158a56eef371f_icgraph.dot │ │ │ │ @@ -3,11 +3,11 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbcoltype",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get the datatype of a regular result set column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node3 [id="Node000003",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga6f13381522a1fa0b6ce2c15378088cdd_cgraph.dot │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="dbmoretext",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Send chunk of a text/image value to the server."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_writetext_continue",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab68dead99a2ebec55895a10cd3db5202",tooltip="Send some data in the writetext request started by tds_writetext_start."]; │ │ │ │ + Node2 [id="Node000002",label="tds_writetext_continue",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab68dead99a2ebec55895a10cd3db5202",tooltip="Send some data in the writetext request started by tds_writetext_start."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_writetext_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac1e460551f1188620ea478238864ac4b",tooltip="Finish sending writetext data."]; │ │ │ │ + Node3 [id="Node000003",label="tds_writetext_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac1e460551f1188620ea478238864ac4b",tooltip="Finish sending writetext data."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga85dcc40c3615f94be96b09b2ec043533_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbnullbind",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Tie a null-indicator to a regular result column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node2 [id="Node000002",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga873bc0f4663165e711655ade1dfae795_cgraph.dot │ │ │ │ @@ -11,11 +11,11 @@ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="dbwillconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaaf8349999c16b3c36caf5947747a2915",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ + Node6 [id="Node000006",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ Node5 -> Node7 [id="edge6_Node000005_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_willconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga80487b313213f60d8be71a50a002bb2c",tooltip="Test if a conversion is possible."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga873bc0f4663165e711655ade1dfae795_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbbind",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Tie a host variable to a resultset column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node2 [id="Node000002",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga89fc5589b4bf41932324d2cfc6ad6433_icgraph.dot │ │ │ │ @@ -3,11 +3,11 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbcollen",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get size of a regular result column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node3 [id="Node000003",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga8b00d5cdcaa20cba13fa2e03d52a443e_cgraph.dot │ │ │ │ @@ -3,20 +3,20 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="dbconvert_ps",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Convert one datatype to another."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="dbperror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ Node3 -> Node5 [id="edge4_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ Node1 -> Node3 [id="edge5_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ Node1 -> Node7 [id="edge7_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ + Node7 [id="Node000007",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_ga9a35c8d3cd0e35c10555baf8f6a01e93_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbaltlen",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get size of data in compute column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaa30be3414a97aac6139af2e928db91ca_cgraph.dot.gz │ │ │ │ ├── a00527_gaa30be3414a97aac6139af2e928db91ca_cgraph.dot │ │ │ │ │ @@ -15,22 +15,22 @@ │ │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbalttype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaa85171e020dc606f2bd3395ad1d3ab4f",tooltip="Get datatype for a compute column."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga32eb72f6fb3edb130e59fb3dd0766e7e",tooltip="cf."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="dbconvert_ps",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga8b00d5cdcaa20cba13fa2e03d52a443e",tooltip="Convert one datatype to another."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ + Node8 [id="Node000008",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ Node8 -> Node9 [id="edge8_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbperror",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node7 -> Node9 [id="edge9_Node000007_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node12 [id="edge10_Node000007_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node7 -> Node13 [id="edge11_Node000007_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node13 [id="Node000013",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ + Node13 [id="Node000013",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ Node1 -> Node14 [id="edge12_Node000001_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 [id="Node000014",label="dbdata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga1137a30014c6ebb6d6e9836581a09cff",tooltip="Get address of data in a regular result column."]; │ │ │ │ │ Node14 -> Node15 [id="edge13_Node000014_Node000015",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="_dbcoldata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga3c6f474c0662158f3100fe464bf077d9",tooltip="Return data from a column."]; │ │ │ │ │ Node14 -> Node16 [id="edge14_Node000014_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="dbcolptr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga45d1c0fba44eafde5e156a70af5d6126",tooltip="Sanity checks for column-oriented functions."]; │ │ │ │ │ Node16 -> Node9 [id="edge15_Node000016_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaa85171e020dc606f2bd3395ad1d3ab4f_icgraph.dot │ │ │ │ @@ -3,11 +3,11 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbalttype",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get datatype for a compute column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="dbprrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaa30be3414a97aac6139af2e928db91ca",tooltip="Print a result set to stdout."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaaf8349999c16b3c36caf5947747a2915_cgraph.dot │ │ │ │ @@ -3,11 +3,11 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="dbwillconvert",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ + Node2 [id="Node000002",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_willconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga80487b313213f60d8be71a50a002bb2c",tooltip="Test if a conversion is possible."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaaf8349999c16b3c36caf5947747a2915_icgraph.dot │ │ │ │ @@ -7,9 +7,9 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbwillconvert",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="dbaltbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gafefd17e15b22adda84366c817178dd7d",tooltip="Bind a compute column to a program variable."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="dbbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga873bc0f4663165e711655ade1dfae795",tooltip="Tie a host variable to a resultset column."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node4 [id="Node000004",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gab33d2f4fd44f50e55b6c71902db4fdae_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbcolutype",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get user-defined datatype of a regular result column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaef740b394b44eb33925c2718f7b30d69_icgraph.dot │ │ │ │ @@ -7,9 +7,9 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbclose",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Close a connection to the server and free associated resources."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="dbexit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gad0044401c8c83205583f93a4764f2d8b",tooltip="Close server connections and free all related structures."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaf1c00d83dfa88dc99a3fb449c49660ea_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="dbaltutype",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Get user-defined datatype of a compute column."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.dot.gz │ │ │ │ ├── a00527_gaf641c8e3d34607ca8b7ac2afed3e6d67_cgraph.dot │ │ │ │ │ @@ -7,22 +7,22 @@ │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="dbspr1row",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Print a regular result row to a buffer."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="dbconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga32eb72f6fb3edb130e59fb3dd0766e7e",tooltip="cf."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="dbconvert_ps",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga8b00d5cdcaa20cba13fa2e03d52a443e",tooltip="Convert one datatype to another."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ + Node4 [id="Node000004",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbperror",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node3 -> Node5 [id="edge5_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node8 [id="edge6_Node000003_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node3 -> Node9 [id="edge7_Node000003_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ │ Node1 -> Node10 [id="edge8_Node000001_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="dbdata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga1137a30014c6ebb6d6e9836581a09cff",tooltip="Get address of data in a regular result column."]; │ │ │ │ │ Node10 -> Node11 [id="edge9_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="_dbcoldata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga3c6f474c0662158f3100fe464bf077d9",tooltip="Return data from a column."]; │ │ │ │ │ Node10 -> Node12 [id="edge10_Node000010_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="dbcolptr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga45d1c0fba44eafde5e156a70af5d6126",tooltip="Sanity checks for column-oriented functions."]; │ │ │ │ │ Node12 -> Node5 [id="edge11_Node000012_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00527_gafefd17e15b22adda84366c817178dd7d_cgraph.dot │ │ │ │ @@ -11,11 +11,11 @@ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="dbwillconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaaf8349999c16b3c36caf5947747a2915",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ + Node6 [id="Node000006",label="tds_prdatatype",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#ac7a199aaeb82935f6d1dda2be551a089",tooltip="Returns type in string."]; │ │ │ │ Node5 -> Node7 [id="edge6_Node000005_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_willconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga80487b313213f60d8be71a50a002bb2c",tooltip="Test if a conversion is possible."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00529_ga7a184158b27a50f713e9cfae3b746209_cgraph.dot.gz │ │ │ │ ├── a00529_ga7a184158b27a50f713e9cfae3b746209_cgraph.dot │ │ │ │ │ @@ -5,58 +5,58 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="bcp_exec",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Write a datafile to a table."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="_bcp_no_get_col_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#ad53f508d8f2177a898f8022736834afd",tooltip="Function to read data from file."]; │ │ │ │ │ + Node3 [id="Node000003",label="_bcp_no_get_col_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#ad53f508d8f2177a898f8022736834afd",tooltip="Function to read data from file."]; │ │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node5 [id="Node000005",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ + Node5 [id="Node000005",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node4 -> Node7 [id="edge6_Node000004_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="dbperror",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node4 -> Node10 [id="edge8_Node000004_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_bcp_fread",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_bcp_fread",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ Node2 -> Node7 [id="edge9_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node20 [id="edge10_Node000002_Node000020",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node20 [id="Node000020",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node20 [id="Node000020",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node20 -> Node21 [id="edge11_Node000020_Node000021",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ │ Node20 -> Node22 [id="edge12_Node000020_Node000022",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node22 -> Node23 [id="edge13_Node000022_Node000023",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ │ Node2 -> Node111 [id="edge14_Node000002_Node000111",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node111 [id="Node000111",label="tds_bcp_send_record",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ad9e44450025cbcee1ad81d7e5a2cc099",tooltip="Send one row of data to server."]; │ │ │ │ │ + Node111 [id="Node000111",label="tds_bcp_send_record",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ad9e44450025cbcee1ad81d7e5a2cc099",tooltip="Send one row of data to server."]; │ │ │ │ │ Node2 -> Node112 [id="edge15_Node000002_Node000112",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node112 [id="Node000112",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node112 [id="Node000112",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node112 -> Node113 [id="edge16_Node000112_Node000113",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node113 [id="Node000113",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node113 [id="Node000113",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node113 -> Node8 [id="edge17_Node000113_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node112 -> Node22 [id="edge18_Node000112_Node000022",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node112 -> Node116 [id="edge19_Node000112_Node000116",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node116 [id="Node000116",label="tds_submit_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node2 -> Node136 [id="edge20_Node000002_Node000136",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node136 [id="Node000136",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node136 [id="Node000136",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node136 -> Node137 [id="edge21_Node000136_Node000137",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node137 [id="Node000137",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ + Node137 [id="Node000137",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ Node136 -> Node112 [id="edge22_Node000136_Node000112",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node136 -> Node138 [id="edge23_Node000136_Node000138",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node138 [id="Node000138",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ + Node138 [id="Node000138",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ Node138 -> Node8 [id="edge24_Node000138_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node140 [id="edge25_Node000001_Node000140",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node140 [id="Node000140",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node140 -> Node141 [id="edge26_Node000140_Node000141",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node141 [id="Node000141",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ │ + Node141 [id="Node000141",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ │ Node141 -> Node6 [id="edge27_Node000141_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node141 -> Node142 [id="edge28_Node000141_Node000142",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node142 [id="Node000142",label="tds_datecrack",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga883855e6e3793de6684b21db39c756c4",tooltip="Convert from db date format to a structured date format."]; │ │ │ │ │ Node141 -> Node143 [id="edge29_Node000141_Node000143",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node143 [id="Node000143",label="tds_strftime",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga8c9652e8b1f3e56a3289fd71b12cee1d",tooltip="format a date string according to an \"extended\" strftime(3) formatting definition."]; │ │ │ │ │ Node140 -> Node7 [id="edge30_Node000140_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node140 -> Node8 [id="edge31_Node000140_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00529_ga8b85f79f53a62ac7a728fe626d609b65_cgraph.dot │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="bcp_done",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Conclude the transfer of data from program variables."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="_bcp_free_storage",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gaa134c1c3ccc4326e693adb8357272f1d",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_free_columns",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gacf69ac4cbe8e3c3e6ea665e31e5e85b8",tooltip=" "]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ + Node4 [id="Node000004",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ Node4 -> Node6 [id="edge5_Node000004_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00529_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.dot.gz │ │ │ │ ├── a00529_gaa23f8e5c7f437a94746c90292dd1cb01_cgraph.dot │ │ │ │ │ @@ -3,25 +3,25 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="bcp_batch",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ │ Node1 -> Node99 [id="edge5_Node000001_Node000099",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node99 [id="Node000099",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node99 [id="Node000099",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node99 -> Node100 [id="edge6_Node000099_Node000100",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node100 [id="Node000100",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node100 [id="Node000100",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node100 -> Node101 [id="edge7_Node000100_Node000101",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node101 [id="Node000101",label="tds_convert_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node100 -> Node14 [id="edge8_Node000100_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 [id="Node000014",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node100 -> Node102 [id="edge9_Node000100_Node000102",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node102 [id="Node000102",label="tds_dstr_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga396f139e4f886ac1b224a735138e73dd",tooltip="Returns the length of the string in bytes."]; │ │ │ │ │ Node99 -> Node4 [id="edge10_Node000099_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00529_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.dot.gz │ │ │ │ ├── a00529_gada8e987c4a6225b9276c05ba3a4f47a0_cgraph.dot │ │ │ │ │ @@ -13,17 +13,17 @@ │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="dbperror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node4 -> Node6 [id="edge5_Node000004_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ Node7 -> Node5 [id="edge8_Node000007_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node9 [id="edge9_Node000007_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_dstr_dup",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6",tooltip="Duplicate a string from another dynamic string."]; │ │ │ │ │ Node9 -> Node10 [id="edge10_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="tds_dstr_copyn",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga656718f240d7403f986ae887d84a6ca1",tooltip="Set string to a given buffer of characters."]; │ │ │ │ │ Node7 -> Node11 [id="edge11_Node000007_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="tds_process_tokens",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00529_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.dot.gz │ │ │ │ ├── a00529_gaf1130ac97f6af55e86ec70b0aa4f5b40_cgraph.dot │ │ │ │ │ @@ -5,40 +5,40 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="bcp_sendrow",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Write data in host variables to the table."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="_bcp_get_col_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga0f8def4cad04c5c1e27c2b653d482dd8",tooltip="For a bcp in from program variables, get the data from the host variable."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ + Node3 [id="Node000003",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="_bcp_get_term_var",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7",tooltip="Get the data for bcp-in from program variables, where the program data have been identified as charac..."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbperror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node6 -> Node8 [id="edge7_Node000006_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ │ Node1 -> Node9 [id="edge8_Node000001_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_bcp_send_record",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ad9e44450025cbcee1ad81d7e5a2cc099",tooltip="Send one row of data to server."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_bcp_send_record",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ad9e44450025cbcee1ad81d7e5a2cc099",tooltip="Send one row of data to server."]; │ │ │ │ │ Node1 -> Node10 [id="edge9_Node000001_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node10 -> Node11 [id="edge10_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ + Node11 [id="Node000011",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ Node10 -> Node12 [id="edge11_Node000010_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node12 -> Node13 [id="edge12_Node000012_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node13 [id="Node000013",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node13 [id="Node000013",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node13 -> Node7 [id="edge13_Node000013_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 -> Node19 [id="edge14_Node000012_Node000019",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node12 -> Node110 [id="edge15_Node000012_Node000110",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node110 [id="Node000110",label="tds_submit_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node10 -> Node130 [id="edge16_Node000010_Node000130",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node130 [id="Node000130",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ + Node130 [id="Node000130",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ Node130 -> Node131 [id="edge17_Node000130_Node000131",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node131 [id="Node000131",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ │ + Node131 [id="Node000131",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ │ Node131 -> Node7 [id="edge18_Node000131_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node130 -> Node7 [id="edge19_Node000130_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00530_ga0f8def4cad04c5c1e27c2b653d482dd8_cgraph.dot │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="_bcp_get_col_data",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="For a bcp in from program variables, get the data from the host variable."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ + Node2 [id="Node000002",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="_bcp_get_term_var",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7",tooltip="Get the data for bcp-in from program variables, where the program data have been identified as charac..."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00530_ga1b57d952a9d72f375c3296124affa908_cgraph.dot.gz │ │ │ │ ├── a00530_ga1b57d952a9d72f375c3296124affa908_cgraph.dot │ │ │ │ │ @@ -3,31 +3,31 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="_bcp_read_hostfile",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip=" "]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ + Node2 [id="Node000002",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="dbperror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node4 -> Node6 [id="edge5_Node000004_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node8 -> Node9 [id="edge8_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node7 -> Node12 [id="edge9_Node000007_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ │ Node7 -> Node13 [id="edge10_Node000007_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node13 [id="Node000013",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ │ + Node13 [id="Node000013",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ │ Node13 -> Node14 [id="edge11_Node000013_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ │ Node7 -> Node16 [id="edge12_Node000007_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node16 [id="Node000016",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ │ + Node16 [id="Node000016",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00530_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.dot.gz │ │ │ │ ├── a00530_ga7370f1223f13510d6b33e98f2de09fb5_cgraph.dot │ │ │ │ │ @@ -3,70 +3,70 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="_bcp_exec_in",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip=" "]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="_bcp_no_get_col_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#ad53f508d8f2177a898f8022736834afd",tooltip="Function to read data from file."]; │ │ │ │ │ + Node2 [id="Node000002",label="_bcp_no_get_col_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#ad53f508d8f2177a898f8022736834afd",tooltip="Function to read data from file."]; │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ + Node4 [id="Node000004",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node3 -> Node6 [id="edge5_Node000003_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbperror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#ga302a4ce6559b81808e3be51615cd1b67",tooltip="Call client-installed error handler."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node6 -> Node8 [id="edge7_Node000006_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_dstr_isempty",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga197c6af67f2e7469d06c2aa055917b1e",tooltip="test if string is empty"]; │ │ │ │ │ Node3 -> Node9 [id="edge8_Node000003_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node9 -> Node14 [id="edge10_Node000009_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ │ Node9 -> Node15 [id="edge11_Node000009_Node000015",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node15 [id="Node000015",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ │ + Node15 [id="Node000015",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ │ Node9 -> Node18 [id="edge12_Node000009_Node000018",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ │ Node1 -> Node6 [id="edge13_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node19 [id="edge14_Node000001_Node000019",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node19 -> Node20 [id="edge15_Node000019_Node000020",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ │ Node19 -> Node21 [id="edge16_Node000019_Node000021",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node21 -> Node22 [id="edge17_Node000021_Node000022",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ │ Node1 -> Node110 [id="edge18_Node000001_Node000110",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node110 [id="Node000110",label="tds_bcp_send_record",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ad9e44450025cbcee1ad81d7e5a2cc099",tooltip="Send one row of data to server."]; │ │ │ │ │ + Node110 [id="Node000110",label="tds_bcp_send_record",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ad9e44450025cbcee1ad81d7e5a2cc099",tooltip="Send one row of data to server."]; │ │ │ │ │ Node1 -> Node111 [id="edge19_Node000001_Node000111",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node111 [id="Node000111",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node111 [id="Node000111",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node111 -> Node112 [id="edge20_Node000111_Node000112",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node112 [id="Node000112",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node112 [id="Node000112",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node112 -> Node113 [id="edge21_Node000112_Node000113",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node113 [id="Node000113",label="tds_convert_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node112 -> Node7 [id="edge22_Node000112_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node112 -> Node114 [id="edge23_Node000112_Node000114",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node114 [id="Node000114",label="tds_dstr_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga396f139e4f886ac1b224a735138e73dd",tooltip="Returns the length of the string in bytes."]; │ │ │ │ │ Node111 -> Node21 [id="edge24_Node000111_Node000021",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node111 -> Node115 [id="edge25_Node000111_Node000115",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node115 [id="Node000115",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node115 -> Node116 [id="edge26_Node000115_Node000116",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node116 [id="Node000116",label="tds_submit_query_params",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga95e0fccedc459a4404f496eec74a369a",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node116 -> Node113 [id="edge27_Node000116_Node000113",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node116 -> Node8 [id="edge28_Node000116_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node135 [id="edge29_Node000001_Node000135",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node135 [id="Node000135",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node135 [id="Node000135",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node135 -> Node136 [id="edge30_Node000135_Node000136",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node136 [id="Node000136",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ + Node136 [id="Node000136",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ Node135 -> Node111 [id="edge31_Node000135_Node000111",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node135 -> Node137 [id="edge32_Node000135_Node000137",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node137 [id="Node000137",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ + Node137 [id="Node000137",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ Node137 -> Node138 [id="edge33_Node000137_Node000138",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node138 [id="Node000138",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ │ + Node138 [id="Node000138",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ │ Node138 -> Node7 [id="edge34_Node000138_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node138 -> Node114 [id="edge35_Node000138_Node000114",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node137 -> Node7 [id="edge36_Node000137_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00530_gae67546338cb9542a4902aa914f57f314_cgraph.dot.gz │ │ │ │ ├── a00530_gae67546338cb9542a4902aa914f57f314_cgraph.dot │ │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="_bcp_exec_out",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip=" "]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ │ + Node2 [id="Node000002",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_datecrack",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga883855e6e3793de6684b21db39c756c4",tooltip="Convert from db date format to a structured date format."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_strftime",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#ga8c9652e8b1f3e56a3289fd71b12cee1d",tooltip="format a date string according to an \"extended\" strftime(3) formatting definition."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00533_ga302a4ce6559b81808e3be51615cd1b67_icgraph.dot.gz │ │ │ │ ├── a00533_ga302a4ce6559b81808e3be51615cd1b67_icgraph.dot │ │ │ │ │ @@ -46,26 +46,26 @@ │ │ │ │ │ Node1 -> Node18 [id="edge22_Node000001_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ │ Node1 -> Node19 [id="edge23_Node000001_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="dbaltbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gafefd17e15b22adda84366c817178dd7d",tooltip="Bind a compute column to a program variable."]; │ │ │ │ │ Node1 -> Node20 [id="edge24_Node000001_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="dbbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga873bc0f4663165e711655ade1dfae795",tooltip="Tie a host variable to a resultset column."]; │ │ │ │ │ Node20 -> Node21 [id="edge25_Node000020_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node21 [id="Node000021",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ │ + Node21 [id="Node000021",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ │ Node1 -> Node22 [id="edge26_Node000001_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="dbbylist",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga29b0e22f5b5b8a1dae9ea59f09f279c9",tooltip="Get bylist for a compute row."]; │ │ │ │ │ Node1 -> Node23 [id="edge27_Node000001_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="dbcmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga87b39d9863316b4ba85654b0885d53a0",tooltip="Append SQL to the command buffer."]; │ │ │ │ │ Node23 -> Node24 [id="edge28_Node000023_Node000024",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node24 [id="Node000024",label="dbfcmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga43727b10d4cbb7708b374811abe6eadb",tooltip="printf-like way to form SQL to send to the server."]; │ │ │ │ │ Node23 -> Node10 [id="edge29_Node000023_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node25 [id="edge30_Node000001_Node000025",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node25 [id="Node000025",label="dbcolptr",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00533.html#ga45d1c0fba44eafde5e156a70af5d6126",tooltip="Sanity checks for column-oriented functions."]; │ │ │ │ │ Node25 -> Node26 [id="edge31_Node000025_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node26 [id="Node000026",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ │ + Node26 [id="Node000026",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ │ Node25 -> Node27 [id="edge32_Node000025_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node27 [id="Node000027",label="dbcollen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433",tooltip="Get size of a regular result column."]; │ │ │ │ │ Node27 -> Node26 [id="edge33_Node000027_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node27 -> Node21 [id="edge34_Node000027_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node25 -> Node28 [id="edge35_Node000025_Node000028",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node28 [id="Node000028",label="dbcolname",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga3bcdc8f584537b8278483f2cee59f130",tooltip="Return name of a regular result column."]; │ │ │ │ │ Node28 -> Node26 [id="edge36_Node000028_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │ │ Node25 -> Node31 [id="edge42_Node000025_Node000031",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node31 [id="Node000031",label="dbcoltypeinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga0b5ca7723f370dac9fe1f6db35e331a0",tooltip="Get precision and scale information for a regular result column."]; │ │ │ │ │ Node31 -> Node26 [id="edge43_Node000031_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node43 [id="edge44_Node000001_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node43 [id="Node000043",label="dbconvert_ps",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#ga8b00d5cdcaa20cba13fa2e03d52a443e",tooltip="Convert one datatype to another."]; │ │ │ │ │ Node1 -> Node24 [id="edge45_Node000001_Node000024",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node45 [id="edge46_Node000001_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node45 [id="Node000045",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ + Node45 [id="Node000045",label="dbgetnull",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#aea6a865806d454280126de940478c214",tooltip=" "]; │ │ │ │ │ Node45 -> Node43 [id="edge47_Node000045_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node46 [id="edge48_Node000001_Node000046",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node46 [id="Node000046",label="dblogin",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga0c66b475d359cb3e69cdf4b163a07eeb",tooltip="Allocate a LOGINREC structure."]; │ │ │ │ │ Node1 -> Node21 [id="edge49_Node000001_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node34 [id="edge50_Node000001_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node34 [id="Node000034",label="dbprrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaa30be3414a97aac6139af2e928db91ca",tooltip="Print a result set to stdout."]; │ │ │ │ │ Node1 -> Node47 [id="edge51_Node000001_Node000047",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00533_ga45d1c0fba44eafde5e156a70af5d6126_icgraph.dot.gz │ │ │ │ ├── a00533_ga45d1c0fba44eafde5e156a70af5d6126_icgraph.dot │ │ │ │ │ @@ -3,20 +3,20 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="dbcolptr",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Sanity checks for column-oriented functions."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ │ + Node2 [id="Node000002",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="dbcollen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433",tooltip="Get size of a regular result column."]; │ │ │ │ │ Node3 -> Node2 [id="edge3_Node000003_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node4 [id="edge4_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ │ + Node4 [id="Node000004",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ │ Node1 -> Node5 [id="edge5_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbcolname",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga3bcdc8f584537b8278483f2cee59f130",tooltip="Return name of a regular result column."]; │ │ │ │ │ Node5 -> Node2 [id="edge6_Node000005_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 -> Node4 [id="edge7_Node000005_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node6 [id="edge8_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbcolsource",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga7be8b405d5416bf0361f65dbb5942faa",tooltip="Get base database column name for a result set column."]; │ │ │ │ │ Node1 -> Node7 [id="edge9_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00533_gae6da75d7b9e7b567890fc83c9459d824_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tdsdbopen",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Form a connection with the server."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node2 [id="Node000002",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538.html │ │ │ │ @@ -137,15 +137,15 @@ │ │ │ │   │ │ │ │ │ │ │ │ static const void * tds_find (const void *key, const void *base, size_t nelem, size_t width, int(*compar)(const void *, const void *)) │ │ │ │   │ │ │ │ void tds_fix_login (TDSLOGIN *login) │ │ │ │  Fix configuration after reading it.
│ │ │ │   │ │ │ │ -const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void) │ │ │ │ +const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void) │ │ │ │  Return a structure capturing the compile-time settings provided to the configure script.
│ │ │ │   │ │ │ │ char * tds_get_home_file (const char *file) │ │ │ │  Return filename from HOME directory.
│ │ │ │   │ │ │ │ struct addrinfo * tds_lookup_host (const char *servername) │ │ │ │  Get the IP address for a hostname.
│ │ │ │ @@ -400,15 +400,15 @@ │ │ │ │ │ │ │ │

◆ tds_get_compiletime_settings()

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
const TDS_COMPILETIME_SETTINGS * tds_get_compiletime_settings const TDS_COMPILETIME_SETTINGS * tds_get_compiletime_settings (void )
│ │ │ │
│ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538_ga0f9a22fb6744c5224a97ec3f83af4e15_icgraph.dot │ │ │ │ @@ -7,9 +7,9 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="parse_server_name_for_port",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Check the server name to find port info first Warning: connection-> & login-> are all modified when n..."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_read_config_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538_ga44fdbe16827097d947f900d96003de98_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_read_conf_section",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Read a section of configuration file (INI style file)"]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_get_locale",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00044.html#a41390fa6e1083ba84fb523797e6b5275",tooltip="Get locale information."]; │ │ │ │ + Node2 [id="Node000002",label="tds_get_locale",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00317.html#a41390fa6e1083ba84fb523797e6b5275",tooltip="Get locale information."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538_ga4799b423b5d982dbc8f31b7738255eef_icgraph.dot │ │ │ │ @@ -7,9 +7,9 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_read_conf_file",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Read configuration info for given server return 0 on error."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_read_config_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538_ga6631af35ee817f93827c62bbda41674a_icgraph.dot │ │ │ │ @@ -7,9 +7,9 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_read_interfaces",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Try to find the IP number and port for a (possibly) logical server name."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_read_config_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538_ga9ff2436ea56ddcdecf984acf46ce4b90_icgraph.dot │ │ │ │ @@ -5,9 +5,9 @@ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_read_config_info",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node3 [id="Node000003",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00538_gacee4f06ba749b10ee9f2e5bb1c4a8910_icgraph.dot │ │ │ │ @@ -7,10 +7,10 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_fix_login",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Fix configuration after reading it."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_read_config_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ Node1 -> Node3 [id="edge4_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00539.html │ │ │ │ @@ -258,21 +258,21 @@ │ │ │ │   │ │ │ │ │ │ │ │ static TDS_INT tds_convert_uint8 (const TDS_UINT8 *src, int desttype, CONV_RESULT *cr) │ │ │ │   │ │ │ │ │ │ │ │ static TDS_INT tds_convert_unique (const TDS_CHAR *src, int desttype, CONV_RESULT *cr) │ │ │ │   │ │ │ │ -TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr) │ │ │ │ +TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr) │ │ │ │  Convert from db date format to a structured date format.
│ │ │ │   │ │ │ │ TDS_SERVER_TYPE tds_get_null_type (TDS_SERVER_TYPE srctype) │ │ │ │  Get same type but nullable.
│ │ │ │   │ │ │ │ -size_t tds_strftime (char *buf, size_t maxsize, const char *format, const TDSDATEREC *dr, int prec) │ │ │ │ +size_t tds_strftime (char *buf, size_t maxsize, const char *format, const TDSDATEREC *dr, int prec) │ │ │ │  format a date string according to an "extended" strftime(3) formatting definition.
│ │ │ │   │ │ │ │ unsigned char tds_willconvert (int srctype, int desttype) │ │ │ │  Test if a conversion is possible.
│ │ │ │   │ │ │ │ │ │ │ │ static void two_digit (char *out, int num) │ │ │ │ @@ -830,15 +830,15 @@ │ │ │ │ │ │ │ │ const void *  │ │ │ │ di, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - TDSDATEREC *  │ │ │ │ + TDSDATEREC *  │ │ │ │ dr  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ) │ │ │ │ │ │ │ │ │ │ │ │ @@ -913,15 +913,15 @@ │ │ │ │ │ │ │ │ const char *  │ │ │ │ format, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - const TDSDATEREC *  │ │ │ │ + const TDSDATEREC *  │ │ │ │ dr, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ int  │ │ │ │ prec  │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00539_ga80487b313213f60d8be71a50a002bb2c_icgraph.dot │ │ │ │ @@ -9,9 +9,9 @@ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="dbwillconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaaf8349999c16b3c36caf5947747a2915",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="dbaltbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gafefd17e15b22adda84366c817178dd7d",tooltip="Bind a compute column to a program variable."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="dbbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga873bc0f4663165e711655ade1dfae795",tooltip="Tie a host variable to a resultset column."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node5 [id="Node000005",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00539_ga883855e6e3793de6684b21db39c756c4_icgraph.dot │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_datecrack",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Convert from db date format to a structured date format."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ + Node2 [id="Node000002",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="dbprrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaa30be3414a97aac6139af2e928db91ca",tooltip="Print a result set to stdout."]; │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00539_ga8c9652e8b1f3e56a3289fd71b12cee1d_icgraph.dot │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_strftime",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="format a date string according to an \"extended\" strftime(3) formatting definition."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ + Node2 [id="Node000002",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="dbprrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaa30be3414a97aac6139af2e928db91ca",tooltip="Print a result set to stdout."]; │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00539_gad83c146aa5ba3f1515557d6b5248494a_icgraph.dot.gz │ │ │ │ ├── a00539_gad83c146aa5ba3f1515557d6b5248494a_icgraph.dot │ │ │ │ │ @@ -3,27 +3,27 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="tds_convert",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ + Node2 [id="Node000002",label="_bcp_convert_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85",tooltip="Convert column for input to a table."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="_bcp_get_col_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga0f8def4cad04c5c1e27c2b653d482dd8",tooltip="For a bcp in from program variables, get the data from the host variable."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ │ Node1 -> Node8 [id="edge7_Node000001_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ │ + Node8 [id="Node000008",label="_bcp_convert_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html#a230fa5b56ae4e3509a69bd266495732b",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ │ Node8 -> Node9 [id="edge8_Node000008_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node9 -> Node7 [id="edge9_Node000009_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node10 [id="edge10_Node000001_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="dbconvert_ps",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga8b00d5cdcaa20cba13fa2e03d52a443e",tooltip="Convert one datatype to another."]; │ │ │ │ │ Node10 -> Node11 [id="edge11_Node000010_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="dbconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga32eb72f6fb3edb130e59fb3dd0766e7e",tooltip="cf."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00540.html │ │ │ │ @@ -169,15 +169,15 @@ │ │ │ │   │ │ │ │ │ │ │ │ static int put_utf16le (unsigned char *buf, size_t buf_len, ICONV_CHAR c) │ │ │ │   │ │ │ │ │ │ │ │ static int put_utf8 (unsigned char *buf, size_t buf_len, ICONV_CHAR c) │ │ │ │   │ │ │ │ -static size_t skip_one_input_sequence (iconv_t cd, const TDS_ENCODING *charset, const char **input, size_t *input_size) │ │ │ │ +static size_t skip_one_input_sequence (iconv_t cd, const TDS_ENCODING *charset, const char **input, size_t *input_size) │ │ │ │  Move the input sequence pointer to the next valid position.
│ │ │ │   │ │ │ │ │ │ │ │ void tds7_srv_charset_changed (TDSCONNECTION *conn, TDS_UCHAR collation[5]) │ │ │ │   │ │ │ │ int tds_canonical_charset (const char *charset_name) │ │ │ │  Determine canonical iconv character set.
│ │ │ │ @@ -269,15 +269,15 @@ │ │ │ │ ( │ │ │ │ iconv_t  │ │ │ │ cd, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - const TDS_ENCODING *  │ │ │ │ + const TDS_ENCODING *  │ │ │ │ charset, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ const char **  │ │ │ │ input, │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00540_ga3380140fc6eb9f2090c430f40e846876_icgraph.dot.gz │ │ │ │ ├── a00540_ga3380140fc6eb9f2090c430f40e846876_icgraph.dot │ │ │ │ │ @@ -7,32 +7,32 @@ │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="skip_one_input_sequence",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Move the input sequence pointer to the next valid position."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="tds_iconv",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="odbc_set_string_flag",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00536.html#gadba4490bf3183799a70c9e2f44fab331",tooltip="Copy a string to client setting size according to ODBC convenction."]; │ │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node4 [id="Node000004",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="read_and_convert",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node4 -> Node65 [id="edge5_Node000004_Node000065",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node65 [id="Node000065",label="tds_bcp_fread",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ + Node65 [id="Node000065",label="tds_bcp_fread",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ Node4 -> Node67 [id="edge6_Node000004_Node000067",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node67 [id="Node000067",label="tds_put_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node67 -> Node73 [id="edge7_Node000067_Node000073",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node73 [id="Node000073",label="tds_submit_execdirect",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae603aed795a4c5bb26ab159a11256996",tooltip="Submit a prepared query with parameters."]; │ │ │ │ │ Node67 -> Node74 [id="edge8_Node000067_Node000074",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node74 [id="Node000074",label="tds_submit_prepare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga74eb08c3a1c85be8ac9db428842c8b9d",tooltip="Creates a temporary stored procedure in the server."]; │ │ │ │ │ Node67 -> Node75 [id="edge9_Node000067_Node000075",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node75 [id="Node000075",label="tds_submit_query_params",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga95e0fccedc459a4404f496eec74a369a",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node2 -> Node93 [id="edge10_Node000002_Node000093",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node93 [id="Node000093",label="tds_convert_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node93 -> Node72 [id="edge11_Node000093_Node000072",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node72 [id="Node000072",label="tds71_submit_prepexec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga08877c101704bebe4fa57e0849dc272d",tooltip="Creates a temporary stored procedure in the server and execute it."]; │ │ │ │ │ Node93 -> Node94 [id="edge12_Node000093_Node000094",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node94 [id="Node000094",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node94 [id="Node000094",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node93 -> Node63 [id="edge13_Node000093_Node000063",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node63 [id="Node000063",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node63 [id="Node000063",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node93 -> Node73 [id="edge14_Node000093_Node000073",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node93 -> Node74 [id="edge15_Node000093_Node000074",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node93 -> Node75 [id="edge16_Node000093_Node000075",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00540_ga3a7a7b4d6ed344127e164dd0b443d790_cgraph.dot │ │ │ │ @@ -3,12 +3,12 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_iconv_info_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Open iconv descriptors to convert between character sets (both directions)."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_set_iconv_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#a585ebac61354ce540d28f6da2d771b5b",tooltip="Get iconv name given canonic."]; │ │ │ │ + Node2 [id="Node000002",label="tds_set_iconv_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html#a585ebac61354ce540d28f6da2d771b5b",tooltip="Get iconv name given canonic."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_sys_iconv_open",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516",tooltip="Inputs are FreeTDS canonical names, no other."]; │ │ │ │ Node1 -> Node3 [id="edge3_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00540_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.dot.gz │ │ │ │ ├── a00540_ga87db49044919f1bc84c0ff5e9ab00304_icgraph.dot │ │ │ │ │ @@ -5,25 +5,25 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="tds_iconv",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="odbc_set_string_flag",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00536.html#gadba4490bf3183799a70c9e2f44fab331",tooltip="Copy a string to client setting size according to ODBC convenction."]; │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_get_char_data",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ │ Node4 -> Node7 [id="edge5_Node000004_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_get_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ │ Node7 -> Node62 [id="edge6_Node000007_Node000062",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node62 [id="Node000062",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node62 [id="Node000062",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node3 -> Node64 [id="edge7_Node000003_Node000064",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node64 [id="Node000064",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ + Node64 [id="Node000064",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ Node64 -> Node65 [id="edge8_Node000064_Node000065",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node65 [id="Node000065",label="_bcp_read_hostfile",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ │ Node3 -> Node66 [id="edge9_Node000003_Node000066",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node66 [id="Node000066",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node66 -> Node67 [id="edge10_Node000066_Node000067",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node67 [id="Node000067",label="tds4_send_emulated_rpc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga2d0a06c1a30dd2470dc7a788de21b080",tooltip="Send RPC as string query."]; │ │ │ │ │ Node67 -> Node68 [id="edge11_Node000067_Node000068",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -77,15 +77,15 @@ │ │ │ │ │ Node66 -> Node68 [id="edge45_Node000066_Node000068",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node66 -> Node91 [id="edge46_Node000066_Node000091",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node91 [id="Node000091",label="tds_submit_unprepare",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gaf573d8d4d2660c8c27770573fca05ff5",tooltip="Send a unprepare request for a prepared query."]; │ │ │ │ │ Node1 -> Node92 [id="edge47_Node000001_Node000092",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node92 [id="Node000092",label="tds_convert_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node92 -> Node71 [id="edge48_Node000092_Node000071",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node92 -> Node93 [id="edge49_Node000092_Node000093",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node93 [id="Node000093",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node93 [id="Node000093",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node93 -> Node38 [id="edge50_Node000093_Node000038",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node38 [id="Node000038",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node38 [id="Node000038",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node92 -> Node62 [id="edge51_Node000092_Node000062",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node92 -> Node72 [id="edge52_Node000092_Node000072",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node92 -> Node73 [id="edge53_Node000092_Node000073",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node92 -> Node74 [id="edge54_Node000092_Node000074",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00540_ga900b0bce08c6bfc2e7c988f4b5970516_icgraph.dot.gz │ │ │ │ ├── a00540_ga900b0bce08c6bfc2e7c988f4b5970516_icgraph.dot │ │ │ │ │ @@ -9,25 +9,25 @@ │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="skip_one_input_sequence",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3380140fc6eb9f2090c430f40e846876",tooltip="Move the input sequence pointer to the next valid position."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_iconv",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="odbc_set_string_flag",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00536.html#gadba4490bf3183799a70c9e2f44fab331",tooltip="Copy a string to client setting size according to ODBC convenction."]; │ │ │ │ │ Node3 -> Node5 [id="edge4_Node000003_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node5 [id="Node000005",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node5 [id="Node000005",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node3 -> Node94 [id="edge5_Node000003_Node000094",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node94 [id="Node000094",label="tds_convert_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node1 -> Node3 [id="edge6_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node96 [id="edge7_Node000001_Node000096",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node96 [id="Node000096",label="tds_iconv_info_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3a7a7b4d6ed344127e164dd0b443d790",tooltip="Open iconv descriptors to convert between character sets (both directions)."]; │ │ │ │ │ Node96 -> Node97 [id="edge8_Node000096_Node000097",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node97 [id="Node000097",label="tds_iconv_get_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga1639ccaa7e17c07457bcb37f313bc52f",tooltip="Get a iconv info structure, allocate and initialize if needed."]; │ │ │ │ │ Node97 -> Node98 [id="edge9_Node000097_Node000098",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node98 [id="Node000098",label="adjust_character_column_size",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga91770634ce8c0d6f1fe007b45da186fd",tooltip="Adjust column size according to client's encoding."]; │ │ │ │ │ Node97 -> Node101 [id="edge10_Node000097_Node000101",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node101 [id="Node000101",label="tds_iconv_from_collate",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga9d433c15ab3738aa2a477a416330f49f",tooltip="Get iconv information from a LCID (to support different column encoding under MSSQL2K)"]; │ │ │ │ │ Node1 -> Node102 [id="edge11_Node000001_Node000102",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node102 [id="Node000102",label="tds_iconv_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#a89de4d12be43b135ad355236717e9cbb",tooltip="Initialize charset searching for UTF-8, UCS-2 and ISO8859-1."]; │ │ │ │ │ + Node102 [id="Node000102",label="tds_iconv_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html#a89de4d12be43b135ad355236717e9cbb",tooltip="Initialize charset searching for UTF-8, UCS-2 and ISO8859-1."]; │ │ │ │ │ Node1 -> Node103 [id="edge12_Node000001_Node000103",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node103 [id="Node000103",label="tds_set_iconv_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#a585ebac61354ce540d28f6da2d771b5b",tooltip="Get iconv name given canonic."]; │ │ │ │ │ + Node103 [id="Node000103",label="tds_set_iconv_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html#a585ebac61354ce540d28f6da2d771b5b",tooltip="Get iconv name given canonic."]; │ │ │ │ │ Node103 -> Node96 [id="edge13_Node000103_Node000096",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00541.html │ │ │ │ @@ -132,17 +132,17 @@ │ │ │ │ │ │ │ │ TDSRET tds_alloc_compute_row (TDSCOMPUTEINFO *res_info) │ │ │ │   │ │ │ │ │ │ │ │ TDSCONTEXTtds_alloc_context (void *parent) │ │ │ │   │ │ │ │ │ │ │ │ -TDSCURSORtds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen) │ │ │ │ +TDSCURSORtds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen) │ │ │ │   │ │ │ │ -TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id) │ │ │ │ +TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id) │ │ │ │  Allocate a dynamic statement.
│ │ │ │   │ │ │ │ │ │ │ │ TDSLOCALEtds_alloc_locale (void) │ │ │ │   │ │ │ │ │ │ │ │ TDSLOGINtds_alloc_login (int use_environment) │ │ │ │ @@ -156,18 +156,18 @@ │ │ │ │ void * tds_alloc_param_data (TDSCOLUMN *curparam) │ │ │ │  Allocate data for a parameter.
│ │ │ │   │ │ │ │ TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param) │ │ │ │  Adds a output parameter to TDSPARAMINFO.
│ │ │ │   │ │ │ │ │ │ │ │ -TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols) │ │ │ │ +TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_alloc_row (TDSRESULTINFO *res_info) │ │ │ │ +TDSRET tds_alloc_row (TDSRESULTINFO *res_info) │ │ │ │  Allocate space for row store return NULL on out of memory.
│ │ │ │   │ │ │ │ │ │ │ │ TDSSOCKETtds_alloc_socket (TDSCONTEXT *context, unsigned int bufsize) │ │ │ │   │ │ │ │ │ │ │ │  TDS_COMPILE_CHECK (tds_cap_len, sizeof(defaultcaps)==TDS_MAX_CAPABILITY) │ │ │ │ @@ -175,28 +175,28 @@ │ │ │ │ │ │ │ │  TDS_COMPILE_CHECK (tds_values_len, sizeof(defaultcaps.types[0].values)==14) │ │ │ │   │ │ │ │ │ │ │ │ static void tds_connection_remove_socket (TDSCONNECTION *conn, TDSSOCKET *tds) │ │ │ │   │ │ │ │ │ │ │ │ -void tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │ +void tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │   │ │ │ │ │ │ │ │ void tds_deinit_bcpinfo (TDSBCPINFO *bcpinfo) │ │ │ │   │ │ │ │ │ │ │ │ static void tds_deinit_connection (TDSCONNECTION *conn) │ │ │ │   │ │ │ │ │ │ │ │ -void tds_detach_results (TDSRESULTINFO *info) │ │ │ │ +void tds_detach_results (TDSRESULTINFO *info) │ │ │ │  Detach result info from it current socket.
│ │ │ │   │ │ │ │ │ │ │ │ -void tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ +void tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │   │ │ │ │ │ │ │ │ void tds_free_all_results (TDSSOCKET *tds) │ │ │ │   │ │ │ │ │ │ │ │ void tds_free_bcp_column_data (BCPCOLDATA *coldata) │ │ │ │   │ │ │ │ @@ -214,15 +214,15 @@ │ │ │ │   │ │ │ │ │ │ │ │ void tds_free_context (TDSCONTEXT *context) │ │ │ │   │ │ │ │ │ │ │ │ static void tds_free_env (TDSCONNECTION *conn) │ │ │ │   │ │ │ │ -void tds_free_input_params (TDSDYNAMIC *dyn) │ │ │ │ +void tds_free_input_params (TDSDYNAMIC *dyn) │ │ │ │  Frees all allocated input parameters of a dynamic statement.
│ │ │ │   │ │ │ │ │ │ │ │ void tds_free_locale (TDSLOCALE *locale) │ │ │ │   │ │ │ │ │ │ │ │ void tds_free_login (TDSLOGIN *login) │ │ │ │ @@ -237,18 +237,18 @@ │ │ │ │ void tds_free_param_result (TDSPARAMINFO *param_info) │ │ │ │  Delete latest parameter.
│ │ │ │   │ │ │ │ │ │ │ │ void tds_free_param_results (TDSPARAMINFO *param_info) │ │ │ │   │ │ │ │ │ │ │ │ -void tds_free_results (TDSRESULTINFO *res_info) │ │ │ │ +void tds_free_results (TDSRESULTINFO *res_info) │ │ │ │   │ │ │ │ │ │ │ │ -void tds_free_row (TDSRESULTINFO *res_info, unsigned char *row) │ │ │ │ +void tds_free_row (TDSRESULTINFO *res_info, unsigned char *row) │ │ │ │   │ │ │ │ │ │ │ │ void tds_free_socket (TDSSOCKET *tds) │ │ │ │   │ │ │ │ static char * tds_get_dynid (TDSCONNECTION *conn, char *id) │ │ │ │  Get an id for dynamic query based on TDS information.
│ │ │ │   │ │ │ │ @@ -270,24 +270,24 @@ │ │ │ │ │ │ │ │ TDSPACKETtds_realloc_packet (TDSPACKET *packet, unsigned len) │ │ │ │   │ │ │ │ │ │ │ │ TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, size_t bufsize) │ │ │ │   │ │ │ │ │ │ │ │ -void tds_release_cursor (TDSCURSOR **pcursor) │ │ │ │ +void tds_release_cursor (TDSCURSOR **pcursor) │ │ │ │   │ │ │ │ -void tds_release_dynamic (TDSDYNAMIC **pdyn) │ │ │ │ +void tds_release_dynamic (TDSDYNAMIC **pdyn) │ │ │ │  Frees dynamic statement.
│ │ │ │   │ │ │ │ │ │ │ │ -static void tds_row_free (TDSRESULTINFO *res_info, unsigned char *row) │ │ │ │ +static void tds_row_free (TDSRESULTINFO *res_info, unsigned char *row) │ │ │ │   │ │ │ │ │ │ │ │ -void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info) │ │ │ │ +void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info) │ │ │ │   │ │ │ │ │ │ │ │ static int winsock_initialized (void) │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ @@ -338,15 +338,15 @@ │ │ │ │ │ │ │ │

◆ tds_alloc_dynamic()

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │

│ │ │ │ Variables

│ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -454,15 +454,15 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
TDSDYNAMIC * tds_alloc_dynamic TDSDYNAMIC * tds_alloc_dynamic (TDSCONNECTIONconn,
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
void tds_free_input_params (TDSDYNAMICTDSDYNAMICdyn)
│ │ │ │
│ │ │ │ │ │ │ │

Frees all allocated input parameters of a dynamic statement.

│ │ │ │ @@ -626,15 +626,15 @@ │ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
void tds_release_dynamic (TDSDYNAMIC ** TDSDYNAMIC ** pdyn)
│ │ │ │
│ │ │ │ │ │ │ │

Frees dynamic statement.

│ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00541_ga4f7b22f681e7160ac03dfe8d2ae8bd39_icgraph.dot │ │ │ │ @@ -7,9 +7,9 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_init_login",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize login structure with locale information and other stuff for connection."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_read_config_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ + Node4 [id="Node000004",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00541_ga8645f5abc49db03d14b66f72b83a9a4c_icgraph.dot │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_realloc",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Reallocate a pointer and update it if success."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ + Node2 [id="Node000002",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ + Node3 [id="Node000003",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_bcp_fread",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ + Node4 [id="Node000004",label="tds_bcp_fread",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542.html │ │ │ │ @@ -118,24 +118,24 @@ │ │ │ │   │ │ │ │ static char * tds5_fix_dot_query (const char *query, size_t *query_len, TDSPARAMINFO *params) │ │ │ │  Substitute ?-style placeholders with named (@param) ones.
│ │ │ │   │ │ │ │ static TDSRET tds5_put_params (TDSSOCKET *tds, TDSPARAMINFO *info, int flags) │ │ │ │  Send parameters to server.
│ │ │ │   │ │ │ │ -TDSRET tds71_submit_prepexec (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │ +TDSRET tds71_submit_prepexec (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │  Creates a temporary stored procedure in the server and execute it.
│ │ │ │   │ │ │ │ │ │ │ │ static void tds7_put_cursor_fetch (TDSSOCKET *tds, TDS_INT cursor_id, TDS_TINYINT fetch_type, TDS_INT i_row, TDS_INT num_rows) │ │ │ │   │ │ │ │ static void tds7_put_query_params (TDSSOCKET *tds, const char *query, size_t query_len) │ │ │ │  Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec)
│ │ │ │   │ │ │ │ -static TDSRET tds7_send_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ +static TDSRET tds7_send_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │  Send dynamic request on TDS 7+ to be executed.
│ │ │ │   │ │ │ │ static TDSRET tds7_write_param_def_from_params (TDSSOCKET *tds, const char *query, size_t query_len, TDSPARAMINFO *params) │ │ │ │  Write string with parameters definition, useful for TDS7+.
│ │ │ │   │ │ │ │ static TDSRET tds7_write_param_def_from_query (TDSSOCKET *tds, const char *converted_query, size_t converted_query_len, TDSPARAMINFO *params) │ │ │ │  Write string with parameters definition, useful for TDS7+.
│ │ │ │ @@ -148,49 +148,49 @@ │ │ │ │   │ │ │ │ int tds_count_placeholders (const char *query) │ │ │ │  Count the number of placeholders ('?') in a query.
│ │ │ │   │ │ │ │ static int tds_count_placeholders_ucs2le (const char *query, const char *query_end) │ │ │ │  Count the number of placeholders ('?') in a query.
│ │ │ │   │ │ │ │ -static bool tds_cursor_check_allocated (TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │ +static bool tds_cursor_check_allocated (TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │  Check if a cursor is allocated into the server.
│ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │ +TDSRET tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │ +TDSRET tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │  Send a deallocation request to server.
│ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_declare (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send) │ │ │ │ +TDSRET tds_cursor_declare (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_fetch (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row) │ │ │ │ +TDSRET tds_cursor_fetch (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_get_cursor_info (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_UINT *prow_number, TDS_UINT *prow_count) │ │ │ │ +TDSRET tds_cursor_get_cursor_info (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_UINT *prow_number, TDS_UINT *prow_count) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send) │ │ │ │ +TDSRET tds_cursor_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │ +TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_setrows (TDSSOCKET *tds, TDSCURSOR *cursor, int *something_to_send) │ │ │ │ +TDSRET tds_cursor_setrows (TDSSOCKET *tds, TDSCURSOR *cursor, int *something_to_send) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_cursor_update (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params) │ │ │ │ +TDSRET tds_cursor_update (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params) │ │ │ │   │ │ │ │ -TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │ +TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor) │ │ │ │  Deallocate cursor on idle.
│ │ │ │   │ │ │ │ -TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ +TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │  Unprepare dynamic on idle.
│ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_disconnect (TDSSOCKET *tds) │ │ │ │   │ │ │ │ │ │ │ │ size_t tds_fix_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol) │ │ │ │ @@ -199,23 +199,23 @@ │ │ │ │ TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out) │ │ │ │  Return declaration for column (like "varchar(20)").
│ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_multiple_done (TDSSOCKET *tds, TDSMULTIPLE *multiple) │ │ │ │   │ │ │ │ │ │ │ │ -TDSRET tds_multiple_execute (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn) │ │ │ │ +TDSRET tds_multiple_execute (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn) │ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_multiple_init (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS *head) │ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_multiple_query (TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO *params) │ │ │ │   │ │ │ │ -int tds_needs_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │ +int tds_needs_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn) │ │ │ │  Check if dynamic request must be unprepared.
│ │ │ │   │ │ │ │ const char * tds_next_placeholder (const char *start) │ │ │ │  Get position of next placeholder.
│ │ │ │   │ │ │ │ static const char * tds_next_placeholder_ucs2le (const char *start, const char *end, int named) │ │ │ │  Found the next placeholder (? or @param) in a string.
│ │ │ │ @@ -259,18 +259,18 @@ │ │ │ │ TDSRET tds_send_cancel (TDSSOCKET *tds) │ │ │ │  tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.
│ │ │ │   │ │ │ │ │ │ │ │ static TDSRET tds_send_emulated_execute (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params) │ │ │ │  Emulate prepared execute traslating to a normal language.
│ │ │ │   │ │ │ │ -static void tds_set_cur_cursor (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │ +static void tds_set_cur_cursor (TDSSOCKET *tds, TDSCURSOR *cursor) │ │ │ │  Set current cursor.
│ │ │ │   │ │ │ │ -void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ +void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │  Set current dynamic.
│ │ │ │   │ │ │ │ const char * tds_skip_comment (const char *s) │ │ │ │  Skip a comment in a query.
│ │ │ │   │ │ │ │ static const char * tds_skip_comment_ucs2le (const char *s, const char *end) │ │ │ │  Skip a comment in a query.
│ │ │ │ @@ -292,21 +292,21 @@ │ │ │ │   │ │ │ │ TDSRET tds_submit_commit (TDSSOCKET *tds, int cont) │ │ │ │  Send a commit request.
│ │ │ │   │ │ │ │ TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head) │ │ │ │  Submit a prepared query with parameters.
│ │ │ │   │ │ │ │ -TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ +TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │  Sends a previously prepared dynamic statement to the server.
│ │ │ │   │ │ │ │ TDSRET tds_submit_optioncmd (TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size) │ │ │ │  Send option commands to server.
│ │ │ │   │ │ │ │ -TDSRET tds_submit_prepare (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │ +TDSRET tds_submit_prepare (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params) │ │ │ │  Creates a temporary stored procedure in the server.
│ │ │ │   │ │ │ │ TDSRET tds_submit_query (TDSSOCKET *tds, const char *query) │ │ │ │  Sends a language string to the database server for processing.
│ │ │ │   │ │ │ │ TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head) │ │ │ │  Sends a language string to the database server for processing.
│ │ │ │ @@ -316,15 +316,15 @@ │ │ │ │   │ │ │ │ TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont) │ │ │ │  Send a rollback request.
│ │ │ │   │ │ │ │ TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head) │ │ │ │  Calls a RPC from server.
│ │ │ │   │ │ │ │ -TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │ +TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn) │ │ │ │  Send a unprepare request for a prepared query.
│ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -588,15 +588,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -705,15 +705,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1107,15 +1107,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1154,15 +1154,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1196,15 +1196,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1299,15 +1299,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2019,15 +2019,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2066,15 +2066,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2513,15 +2513,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2630,15 +2630,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -2947,15 +2947,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga08877c101704bebe4fa57e0849dc272d_cgraph.dot.gz │ │ │ │ ├── a00542_ga08877c101704bebe4fa57e0849dc272d_cgraph.dot │ │ │ │ │ @@ -12,21 +12,21 @@ │ │ │ │ │ Node3 [id="Node000003",label="tds_count_placeholders\l_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga0cd19215e9169ea299a6c9cbf5b2fb60",tooltip="Count the number of placeholders ('?') in a query."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_next_placeholder\l_ucs2le",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gaaa97f8535a2babe642024a0744d271d5",tooltip="Found the next placeholder (? or @param) in a string."]; │ │ │ │ │ Node2 -> Node4 [id="edge4_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node7 [id="edge5_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node7 -> Node8 [id="edge6_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node8 -> Node9 [id="edge7_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node7 -> Node12 [id="edge8_Node000007_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node7 -> Node14 [id="edge9_Node000007_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node1 -> Node16 [id="edge10_Node000001_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds7_write_param_def\l_from_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga24345856c16b15aa3e84459c2f551320",tooltip="Write string with parameters definition, useful for TDS7+."]; │ │ │ │ │ Node16 -> Node3 [id="edge11_Node000016_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 -> Node17 [id="edge12_Node000016_Node000017",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_freeze_abort",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga7274d9c5dc75c58bb7d1f1c29e03a73e",tooltip="Discard all data written after the freeze."]; │ │ │ │ │ Node16 -> Node18 [id="edge13_Node000016_Node000018",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga0da385231bfa3dc49377e1fb2bea2c07_cgraph.dot │ │ │ │ @@ -11,13 +11,13 @@ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_freeze_written",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga528cc96da09c11bc2930daae64e33e83",tooltip="Compute how many bytes has been written from freeze."]; │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node6 [id="Node000006",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node5 -> Node10 [id="edge6_Node000005_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ + Node10 [id="Node000010",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ Node5 -> Node12 [id="edge7_Node000005_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node12 [id="Node000012",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ + Node12 [id="Node000012",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga0e2e7230c425e925402d7856ff5b4b18_cgraph.dot │ │ │ │ @@ -7,22 +7,22 @@ │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_put_param_as_string",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Send a parameter to server."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node4 [id="Node000004",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node3 -> Node8 [id="edge5_Node000003_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ + Node8 [id="Node000008",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ Node8 -> Node9 [id="edge6_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node9 [id="Node000009",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ + Node9 [id="Node000009",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ Node3 -> Node10 [id="edge7_Node000003_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ + Node10 [id="Node000010",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ Node10 -> Node11 [id="edge8_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node11 [id="Node000011",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ + Node11 [id="Node000011",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ Node1 -> Node12 [id="edge9_Node000001_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node12 [id="Node000012",label="tds_quote_and_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga26b26296d060dca75f6a43e9ac41e58d",tooltip="Send a string to server while quoting it."]; │ │ │ │ Node12 -> Node3 [id="edge10_Node000012_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga11338742dc30fd0c2711f58eb830316f_icgraph.dot │ │ │ │ @@ -5,9 +5,9 @@ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_send_cancel",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called dire..."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tdserror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01392.html#abf18b98efef6ce2dc0b97d658a3a1918",tooltip="Call the client library's error handler (for library-generated errors only)"]; │ │ │ │ + Node3 [id="Node000003",label="tdserror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#abf18b98efef6ce2dc0b97d658a3a1918",tooltip="Call the client library's error handler (for library-generated errors only)"]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga24345856c16b15aa3e84459c2f551320_cgraph.dot.gz │ │ │ │ ├── a00542_ga24345856c16b15aa3e84459c2f551320_cgraph.dot │ │ │ │ │ @@ -23,19 +23,19 @@ │ │ │ │ │ Node1 -> Node9 [id="edge8_Node000001_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_get_column_declaration",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga50d62edeb2a432e2dc668263f3f958ff",tooltip="Return declaration for column (like \"varchar(20)\")."]; │ │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="tds_fix_column_size",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga440f0f469afad1eac4c008979873ccdd",tooltip="Get column size for wire."]; │ │ │ │ │ Node1 -> Node11 [id="edge10_Node000001_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node11 -> Node12 [id="edge11_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node12 -> Node13 [id="edge12_Node000012_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node11 -> Node16 [id="edge13_Node000011_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node16 [id="Node000016",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node16 [id="Node000016",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node16 -> Node17 [id="edge14_Node000016_Node000017",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node17 [id="Node000017",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ + Node17 [id="Node000017",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ Node11 -> Node18 [id="edge15_Node000011_Node000018",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node18 -> Node19 [id="edge16_Node000018_Node000019",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga24345856c16b15aa3e84459c2f551320_icgraph.dot.gz │ │ │ │ ├── a00542_ga24345856c16b15aa3e84459c2f551320_icgraph.dot │ │ │ │ │ @@ -17,15 +17,15 @@ │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node6 -> Node9 [id="edge7_Node000006_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node6 -> Node12 [id="edge8_Node000006_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node6 -> Node17 [id="edge9_Node000006_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node6 -> Node18 [id="edge10_Node000006_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ Node6 -> Node3 [id="edge11_Node000006_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node19 [id="edge12_Node000006_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga26b26296d060dca75f6a43e9ac41e58d_cgraph.dot │ │ │ │ @@ -5,19 +5,19 @@ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_quote_and_put",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Send a string to server while quoting it."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node2 -> Node7 [id="edge4_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ Node7 -> Node8 [id="edge5_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ + Node8 [id="Node000008",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ Node2 -> Node9 [id="edge6_Node000002_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node9 [id="Node000009",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ + Node9 [id="Node000009",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ Node9 -> Node10 [id="edge7_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ + Node10 [id="Node000010",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.dot.gz │ │ │ │ ├── a00542_ga2d0a06c1a30dd2470dc7a788de21b080_cgraph.dot │ │ │ │ │ @@ -19,19 +19,19 @@ │ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_put_param_as_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga0e2e7230c425e925402d7856ff5b4b18",tooltip="Send a parameter to server."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00539.html#gad83c146aa5ba3f1515557d6b5248494a",tooltip="tds_convert convert a type to another."]; │ │ │ │ │ Node7 -> Node9 [id="edge8_Node000007_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node9 -> Node14 [id="edge10_Node000009_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node9 -> Node16 [id="edge11_Node000009_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node16 [id="Node000016",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node16 [id="Node000016",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node7 -> Node18 [id="edge12_Node000007_Node000018",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="tds_quote_and_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga26b26296d060dca75f6a43e9ac41e58d",tooltip="Send a string to server while quoting it."]; │ │ │ │ │ Node18 -> Node9 [id="edge13_Node000018_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node9 [id="edge14_Node000001_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node19 [id="edge15_Node000001_Node000019",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="tds_query_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gada27f4cfce925240ad33b71b63ca692d",tooltip="Flush query packet."]; │ │ │ │ │ Node19 -> Node20 [id="edge16_Node000019_Node000020",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.dot.gz │ │ │ │ ├── a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_cgraph.dot │ │ │ │ │ @@ -24,13 +24,13 @@ │ │ │ │ │ Node7 -> Node9 [id="edge9_Node000007_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_dstr_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga396f139e4f886ac1b224a735138e73dd",tooltip="Returns the length of the string in bytes."]; │ │ │ │ │ Node7 -> Node4 [id="edge10_Node000007_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node5 [id="edge11_Node000007_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node10 [id="edge12_Node000007_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node10 -> Node11 [id="edge13_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node11 [id="Node000011",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node10 -> Node15 [id="edge14_Node000010_Node000015",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node15 [id="Node000015",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node15 [id="Node000015",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node10 -> Node17 [id="edge15_Node000010_Node000017",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node17 [id="Node000017",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node17 [id="Node000017",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_icgraph.dot.gz │ │ │ │ ├── a00542_ga4f1f0a4f77bc4ea1440dfdebc19a157c_icgraph.dot │ │ │ │ │ @@ -15,15 +15,15 @@ │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node5 -> Node8 [id="edge6_Node000005_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node5 -> Node11 [id="edge7_Node000005_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node11 [id="Node000011",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node5 -> Node16 [id="edge8_Node000005_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node5 -> Node17 [id="edge9_Node000005_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ Node5 -> Node2 [id="edge10_Node000005_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 -> Node18 [id="edge11_Node000005_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.dot.gz │ │ │ │ ├── a00542_ga50d62edeb2a432e2dc668263f3f958ff_icgraph.dot │ │ │ │ │ @@ -11,19 +11,19 @@ │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds4_send_emulated_rpc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga2d0a06c1a30dd2470dc7a788de21b080",tooltip="Send RPC as string query."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_submit_rpc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5f071b94ad7889690762dc85646c74ab",tooltip="Calls a RPC from server."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbrpcsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00528.html#gafa4dfd181be21e49c397f7daaa9cf96c",tooltip="Execute the procedure and free associated memory."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node6 [id="Node000006",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ │ + Node6 [id="Node000006",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node1 -> Node12 [id="edge8_Node000001_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds7_write_param_def\l_from_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga6513afd79629f7a928e1d3da9f56dee1",tooltip="Write string with parameters definition, useful for TDS7+."]; │ │ │ │ │ Node12 -> Node13 [id="edge9_Node000012_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_submit_query_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga95e0fccedc459a4404f496eec74a369a",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node13 -> Node14 [id="edge10_Node000013_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 [id="Node000014",label="tds_submit_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node14 -> Node23 [id="edge11_Node000014_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_icgraph.dot.gz │ │ │ │ ├── a00542_ga5a29ae7f99d089dc3cea85ec6ee5f3ab_icgraph.dot │ │ │ │ │ @@ -13,22 +13,22 @@ │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbsqlexec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaae889abeb145ec41f7361aa8f597fe46",tooltip="send the SQL command to the server and wait for an answer."]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbuse",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga66ea891910f0a357cc78107d6ab7d962",tooltip="Change current database."]; │ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node8 -> Node3 [id="edge8_Node000008_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node9 [id="edge9_Node000007_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node7 -> Node10 [id="edge10_Node000007_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node10 -> Node8 [id="edge11_Node000010_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 -> Node11 [id="edge12_Node000010_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ │ Node1 -> Node12 [id="edge13_Node000001_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node1 -> Node13 [id="edge14_Node000001_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ @@ -36,17 +36,17 @@ │ │ │ │ │ Node14 [id="Node000014",label="tds_submit_execdirect",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae603aed795a4c5bb26ab159a11256996",tooltip="Submit a prepared query with parameters."]; │ │ │ │ │ Node1 -> Node15 [id="edge16_Node000001_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node1 -> Node16 [id="edge17_Node000001_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds_submit_queryf",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad695defcbf663b0023851a198206a772",tooltip="Format and submit a query."]; │ │ │ │ │ Node16 -> Node2 [id="edge18_Node000016_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 -> Node17 [id="edge19_Node000016_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node17 [id="Node000017",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node17 [id="Node000017",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node17 -> Node18 [id="edge20_Node000017_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node16 -> Node19 [id="edge21_Node000016_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node19 -> Node20 [id="edge22_Node000019_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node1 -> Node21 [id="edge23_Node000001_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_submit_rollback",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga9c1cdcc388506a2ca3c0aaee8c461ba6",tooltip="Send a rollback request."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga6513afd79629f7a928e1d3da9f56dee1_cgraph.dot.gz │ │ │ │ ├── a00542_ga6513afd79629f7a928e1d3da9f56dee1_cgraph.dot │ │ │ │ │ @@ -27,19 +27,19 @@ │ │ │ │ │ Node10 -> Node11 [id="edge10_Node000010_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="tds_skip_comment_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gac3124fe439d9c96236fc33af7793ffcf",tooltip="Skip a comment in a query."]; │ │ │ │ │ Node10 -> Node12 [id="edge11_Node000010_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds_skip_quoted_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gab42efeaf6c795435a03de1835b3de1c6",tooltip="Return pointer to end of a quoted string."]; │ │ │ │ │ Node1 -> Node13 [id="edge12_Node000001_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node13 -> Node14 [id="edge13_Node000013_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node14 -> Node15 [id="edge14_Node000014_Node000015",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node13 -> Node18 [id="edge15_Node000013_Node000018",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node18 -> Node19 [id="edge16_Node000018_Node000019",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ Node13 -> Node20 [id="edge17_Node000013_Node000020",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node20 [id="Node000020",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node20 [id="Node000020",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node20 -> Node21 [id="edge18_Node000020_Node000021",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node21 [id="Node000021",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ + Node21 [id="Node000021",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga6513afd79629f7a928e1d3da9f56dee1_icgraph.dot.gz │ │ │ │ ├── a00542_ga6513afd79629f7a928e1d3da9f56dee1_icgraph.dot │ │ │ │ │ @@ -11,15 +11,15 @@ │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node3 -> Node6 [id="edge4_Node000003_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node3 -> Node9 [id="edge5_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node3 -> Node14 [id="edge6_Node000003_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 [id="Node000014",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node3 -> Node15 [id="edge7_Node000003_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ Node3 -> Node16 [id="edge8_Node000003_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds_submit_execdirect",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae603aed795a4c5bb26ab159a11256996",tooltip="Submit a prepared query with parameters."]; │ │ │ │ │ Node3 -> Node17 [id="edge9_Node000003_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga6e42b4a1d1d3898229ea2fe4afc2ecec_cgraph.dot.gz │ │ │ │ ├── a00542_ga6e42b4a1d1d3898229ea2fe4afc2ecec_cgraph.dot │ │ │ │ │ @@ -14,19 +14,19 @@ │ │ │ │ │ Node4 [id="Node000004",label="tds_skip_comment_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gac3124fe439d9c96236fc33af7793ffcf",tooltip="Skip a comment in a query."]; │ │ │ │ │ Node3 -> Node5 [id="edge4_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_skip_quoted_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gab42efeaf6c795435a03de1835b3de1c6",tooltip="Return pointer to end of a quoted string."]; │ │ │ │ │ Node1 -> Node3 [id="edge5_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node6 -> Node7 [id="edge7_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node7 -> Node8 [id="edge8_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node6 -> Node11 [id="edge9_Node000006_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node11 [id="Node000011",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node11 -> Node12 [id="edge10_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ Node6 -> Node13 [id="edge11_Node000006_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node13 [id="Node000013",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node13 [id="Node000013",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node13 -> Node14 [id="edge12_Node000013_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga6e42b4a1d1d3898229ea2fe4afc2ecec_icgraph.dot.gz │ │ │ │ ├── a00542_ga6e42b4a1d1d3898229ea2fe4afc2ecec_icgraph.dot │ │ │ │ │ @@ -17,15 +17,15 @@ │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node6 -> Node9 [id="edge7_Node000006_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node6 -> Node12 [id="edge8_Node000006_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node6 -> Node17 [id="edge9_Node000006_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node6 -> Node18 [id="edge10_Node000006_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ Node6 -> Node3 [id="edge11_Node000006_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node19 [id="edge12_Node000006_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga74eb08c3a1c85be8ac9db428842c8b9d_cgraph.dot.gz │ │ │ │ ├── a00542_ga74eb08c3a1c85be8ac9db428842c8b9d_cgraph.dot │ │ │ │ │ @@ -12,21 +12,21 @@ │ │ │ │ │ Node3 [id="Node000003",label="tds_count_placeholders\l_ucs2le",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga0cd19215e9169ea299a6c9cbf5b2fb60",tooltip="Count the number of placeholders ('?') in a query."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_next_placeholder\l_ucs2le",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gaaa97f8535a2babe642024a0744d271d5",tooltip="Found the next placeholder (? or @param) in a string."]; │ │ │ │ │ Node2 -> Node4 [id="edge4_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node7 [id="edge5_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node7 -> Node8 [id="edge6_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node8 -> Node9 [id="edge7_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node7 -> Node12 [id="edge8_Node000007_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node7 -> Node14 [id="edge9_Node000007_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node1 -> Node16 [id="edge10_Node000001_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds7_write_param_def\l_from_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga24345856c16b15aa3e84459c2f551320",tooltip="Write string with parameters definition, useful for TDS7+."]; │ │ │ │ │ Node16 -> Node3 [id="edge11_Node000016_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 -> Node17 [id="edge12_Node000016_Node000017",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_freeze_abort",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga7274d9c5dc75c58bb7d1f1c29e03a73e",tooltip="Discard all data written after the freeze."]; │ │ │ │ │ Node16 -> Node18 [id="edge13_Node000016_Node000018",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga7efaa23c3b21158ffc963f85fbc3fdf4_icgraph.dot │ │ │ │ @@ -11,15 +11,15 @@ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="dbuse",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga66ea891910f0a357cc78107d6ab7d962",tooltip="Change current database."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds71_read_table_names",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga7482b5730d880fcedbe9fcd609a550ce",tooltip="Reads table names for TDS 7.1+."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_process_tabname",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeec59bca9bd0c5388e245f0d19d9c81a",tooltip="Process list of table from network."]; │ │ │ │ Node2 -> Node40 [id="edge5_Node000002_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node40 [id="Node000040",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ + Node40 [id="Node000040",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ Node40 -> Node41 [id="edge6_Node000040_Node000041",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node41 [id="Node000041",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ + Node41 [id="Node000041",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ Node1 -> Node42 [id="edge7_Node000001_Node000042",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node42 [id="Node000042",label="tds_quote_id_rpc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga691e8752f4f84ed51b7f4d1447cb3d25",tooltip="Quote an id for a RPC call."]; │ │ │ │ Node1 -> Node43 [id="edge8_Node000001_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node43 [id="Node000043",label="tds_quote_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga737b9fb9971fb425af5c722415ef0eac",tooltip="Quote a string."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga8853354723094c8efcd87fabf675c64f_icgraph.dot.gz │ │ │ │ ├── a00542_ga8853354723094c8efcd87fabf675c64f_icgraph.dot │ │ │ │ │ @@ -11,15 +11,15 @@ │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node3 -> Node6 [id="edge4_Node000003_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node3 -> Node9 [id="edge5_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node3 -> Node14 [id="edge6_Node000003_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 [id="Node000014",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node3 -> Node15 [id="edge7_Node000003_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ Node3 -> Node16 [id="edge8_Node000003_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds_submit_execdirect",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae603aed795a4c5bb26ab159a11256996",tooltip="Submit a prepared query with parameters."]; │ │ │ │ │ Node3 -> Node17 [id="edge9_Node000003_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga8d8f2f1c91635ee95f30722208ae3043_icgraph.dot │ │ │ │ @@ -14,13 +14,13 @@ │ │ │ │ Node4 [id="Node000004",label="tds_process_tabname",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeec59bca9bd0c5388e245f0d19d9c81a",tooltip="Process list of table from network."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_process_default\l_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga39453d084f3f780ac4602d4abf2839f7",tooltip="tds_process_default_tokens() is a catch all function that is called to process tokens not known to ot..."]; │ │ │ │ Node5 -> Node7 [id="edge5_Node000005_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ Node4 -> Node7 [id="edge6_Node000004_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node39 [id="edge7_Node000001_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node39 [id="Node000039",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ + Node39 [id="Node000039",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ Node39 -> Node40 [id="edge8_Node000039_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node40 [id="Node000040",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ + Node40 [id="Node000040",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ Node40 -> Node32 [id="edge9_Node000040_Node000032",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node32 [id="Node000032",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ + Node32 [id="Node000032",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga95e0fccedc459a4404f496eec74a369a_icgraph.dot.gz │ │ │ │ ├── a00542_ga95e0fccedc459a4404f496eec74a369a_icgraph.dot │ │ │ │ │ @@ -13,34 +13,34 @@ │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbsqlexec",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gaae889abeb145ec41f7361aa8f597fe46",tooltip="send the SQL command to the server and wait for an answer."]; │ │ │ │ │ Node2 -> Node8 [id="edge6_Node000002_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node8 -> Node9 [id="edge7_Node000008_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node9 -> Node4 [id="edge8_Node000009_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 -> Node10 [id="edge9_Node000008_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node8 -> Node11 [id="edge10_Node000008_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node11 [id="Node000011",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node11 -> Node9 [id="edge11_Node000011_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node13 [id="edge12_Node000002_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_submit_begin_tran",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga7bf3670d3d6dabed469b9eb117298079",tooltip="Send a rollback request."]; │ │ │ │ │ Node2 -> Node14 [id="edge13_Node000002_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 [id="Node000014",label="tds_submit_commit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga530538c4c975524cf0b771a550fc94a3",tooltip="Send a commit request."]; │ │ │ │ │ Node2 -> Node15 [id="edge14_Node000002_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="tds_submit_execdirect",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae603aed795a4c5bb26ab159a11256996",tooltip="Submit a prepared query with parameters."]; │ │ │ │ │ Node2 -> Node16 [id="edge15_Node000002_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node2 -> Node17 [id="edge16_Node000002_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_submit_queryf",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad695defcbf663b0023851a198206a772",tooltip="Format and submit a query."]; │ │ │ │ │ Node17 -> Node3 [id="edge17_Node000017_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 -> Node18 [id="edge18_Node000017_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node17 -> Node20 [id="edge19_Node000017_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node20 [id="Node000020",label="tds_writetext_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node20 [id="Node000020",label="tds_writetext_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node2 -> Node22 [id="edge20_Node000002_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_submit_rollback",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga9c1cdcc388506a2ca3c0aaee8c461ba6",tooltip="Send a rollback request."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga9ad2e6defce530a8778791cce0166ccd_cgraph.dot │ │ │ │ @@ -9,19 +9,19 @@ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_freeze_written",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga528cc96da09c11bc2930daae64e33e83",tooltip="Compute how many bytes has been written from freeze."]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node5 [id="Node000005",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node4 -> Node9 [id="edge6_Node000004_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node9 [id="Node000009",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ + Node9 [id="Node000009",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ Node9 -> Node10 [id="edge7_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ + Node10 [id="Node000010",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ Node4 -> Node11 [id="edge8_Node000004_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node11 [id="Node000011",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ + Node11 [id="Node000011",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ Node11 -> Node12 [id="edge9_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node12 [id="Node000012",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ + Node12 [id="Node000012",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga9ad2e6defce530a8778791cce0166ccd_icgraph.dot.gz │ │ │ │ ├── a00542_ga9ad2e6defce530a8778791cce0166ccd_icgraph.dot │ │ │ │ │ @@ -31,15 +31,15 @@ │ │ │ │ │ Node46 -> Node47 [id="edge12_Node000046_Node000047",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node47 [id="Node000047",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node47 -> Node15 [id="edge13_Node000047_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 [id="Node000015",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node47 -> Node29 [id="edge14_Node000047_Node000029",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node29 [id="Node000029",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node47 -> Node39 [id="edge15_Node000047_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node39 [id="Node000039",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node39 [id="Node000039",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node47 -> Node4 [id="edge16_Node000047_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node47 -> Node5 [id="edge17_Node000047_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node47 -> Node45 [id="edge18_Node000047_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node47 -> Node42 [id="edge19_Node000047_Node000042",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node42 [id="Node000042",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node47 -> Node48 [id="edge20_Node000047_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 [id="Node000048",label="tds_submit_queryf",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gad695defcbf663b0023851a198206a772",tooltip="Format and submit a query."]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_ga9f6f25dd405f45e75420e6e084bf2d85_cgraph.dot │ │ │ │ @@ -17,13 +17,13 @@ │ │ │ │ Node3 -> Node6 [id="edge5_Node000003_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."]; │ │ │ │ Node3 -> Node7 [id="edge6_Node000003_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_freeze_written",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga528cc96da09c11bc2930daae64e33e83",tooltip="Compute how many bytes has been written from freeze."]; │ │ │ │ Node3 -> Node8 [id="edge7_Node000003_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node8 [id="Node000008",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ Node8 -> Node9 [id="edge8_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node9 [id="Node000009",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node9 [id="Node000009",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node8 -> Node13 [id="edge9_Node000008_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node13 [id="Node000013",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ + Node13 [id="Node000013",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ Node8 -> Node15 [id="edge10_Node000008_Node000015",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node15 [id="Node000015",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ + Node15 [id="Node000015",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_gad5b76c688898b86984d09628f030d01c_icgraph.dot.gz │ │ │ │ ├── a00542_gad5b76c688898b86984d09628f030d01c_icgraph.dot │ │ │ │ │ @@ -5,26 +5,26 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="tds_convert_string",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="tds71_submit_prepexec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga08877c101704bebe4fa57e0849dc272d",tooltip="Creates a temporary stored procedure in the server and execute it."]; │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node3 [id="Node000003",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node4 [id="Node000004",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="_bcp_exec_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node4 -> Node7 [id="edge5_Node000004_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node4 -> Node8 [id="edge6_Node000004_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node8 -> Node5 [id="edge7_Node000008_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node10 [id="edge8_Node000001_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node1 -> Node11 [id="edge9_Node000001_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="tds_submit_execdirect",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae603aed795a4c5bb26ab159a11256996",tooltip="Submit a prepared query with parameters."]; │ │ │ │ │ Node1 -> Node12 [id="edge10_Node000001_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds_submit_prepare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga74eb08c3a1c85be8ac9db428842c8b9d",tooltip="Creates a temporary stored procedure in the server."]; │ │ │ │ │ Node1 -> Node13 [id="edge11_Node000001_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_submit_query_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga95e0fccedc459a4404f496eec74a369a",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node13 -> Node14 [id="edge12_Node000013_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_gad695defcbf663b0023851a198206a772_icgraph.dot │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_submit_queryf",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Format and submit a query."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ + Node4 [id="Node000004",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ + Node6 [id="Node000006",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_gada27f4cfce925240ad33b71b63ca692d_icgraph.dot.gz │ │ │ │ ├── a00542_gada27f4cfce925240ad33b71b63ca692d_icgraph.dot │ │ │ │ │ @@ -37,15 +37,15 @@ │ │ │ │ │ Node47 -> Node48 [id="edge15_Node000047_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 [id="Node000048",label="tds_submit_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node48 -> Node12 [id="edge16_Node000048_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="_bcp_exec_out",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ │ Node48 -> Node26 [id="edge17_Node000048_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node26 [id="Node000026",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node48 -> Node36 [id="edge18_Node000048_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node36 [id="Node000036",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node36 [id="Node000036",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node48 -> Node42 [id="edge19_Node000048_Node000042",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 -> Node43 [id="edge20_Node000048_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 -> Node44 [id="edge21_Node000048_Node000044",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 -> Node39 [id="edge22_Node000048_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 -> Node49 [id="edge23_Node000048_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 [id="Node000049",label="tds_submit_queryf",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#gad695defcbf663b0023851a198206a772",tooltip="Format and submit a query."]; │ │ │ │ │ Node49 -> Node12 [id="edge24_Node000049_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_gae8b7db85af16701fc0604eb117cbd4e4_icgraph.dot.gz │ │ │ │ ├── a00542_gae8b7db85af16701fc0604eb117cbd4e4_icgraph.dot │ │ │ │ │ @@ -42,33 +42,33 @@ │ │ │ │ │ Node17 -> Node8 [id="edge18_Node000017_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 -> Node9 [id="edge19_Node000016_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node18 [id="edge20_Node000003_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node18 -> Node17 [id="edge21_Node000018_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node9 [id="edge22_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node19 [id="edge23_Node000003_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node19 -> Node20 [id="edge24_Node000019_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node3 -> Node21 [id="edge25_Node000003_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node21 -> Node22 [id="edge26_Node000021_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node3 -> Node23 [id="edge27_Node000003_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node23 -> Node24 [id="edge28_Node000023_Node000024",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node24 [id="Node000024",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node24 [id="Node000024",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node23 -> Node28 [id="edge29_Node000023_Node000028",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node28 [id="Node000028",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node28 [id="Node000028",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node23 -> Node31 [id="edge30_Node000023_Node000031",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node31 [id="Node000031",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node23 -> Node36 [id="edge31_Node000023_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node36 [id="Node000036",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node23 -> Node37 [id="edge32_Node000023_Node000037",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node37 [id="Node000037",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node37 [id="Node000037",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node37 -> Node9 [id="edge33_Node000037_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node36 [id="edge34_Node000003_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node38 [id="edge35_Node000001_Node000038",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node38 [id="Node000038",label="tds_submit_execute",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga3e7b4793c6f799fbc6c174f673bb5b32",tooltip="Sends a previously prepared dynamic statement to the server."]; │ │ │ │ │ Node1 -> Node39 [id="edge36_Node000001_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node39 [id="Node000039",label="tds_submit_prepare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga74eb08c3a1c85be8ac9db428842c8b9d",tooltip="Creates a temporary stored procedure in the server."]; │ │ │ │ │ Node1 -> Node40 [id="edge37_Node000001_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_gaf573d8d4d2660c8c27770573fca05ff5_cgraph.dot.gz │ │ │ │ ├── a00542_gaf573d8d4d2660c8c27770573fca05ff5_cgraph.dot │ │ │ │ │ @@ -5,25 +5,25 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="tds_submit_unprepare",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Send a unprepare request for a prepared query."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node2 -> Node7 [id="edge4_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node7 -> Node8 [id="edge5_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ Node2 -> Node9 [id="edge6_Node000002_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node9 [id="Node000009",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node9 [id="Node000009",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node9 -> Node10 [id="edge7_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ Node1 -> Node11 [id="edge8_Node000001_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="tds_query_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gada27f4cfce925240ad33b71b63ca692d",tooltip="Flush query packet."]; │ │ │ │ │ Node11 -> Node12 [id="edge9_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds_flush_packet",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga5feb53554e8917a81bbbc332163a61fb",tooltip="Flush packet to server."]; │ │ │ │ │ Node1 -> Node13 [id="edge10_Node000001_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="tds_set_cur_dyn",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gae8b7db85af16701fc0604eb117cbd4e4",tooltip="Set current dynamic."]; │ │ │ │ │ Node1 -> Node14 [id="edge11_Node000001_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00542_gafd74652c4722ddce4d642cc4209449d4_cgraph.dot.gz │ │ │ │ ├── a00542_gafd74652c4722ddce4d642cc4209449d4_cgraph.dot │ │ │ │ │ @@ -13,19 +13,19 @@ │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_freeze_close_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2660b893ae2bf36fe1b63b354e748bad",tooltip="Stop keeping data for this specific freeze."]; │ │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_freeze_written",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga528cc96da09c11bc2930daae64e33e83",tooltip="Compute how many bytes has been written from freeze."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node6 -> Node11 [id="edge8_Node000006_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node11 [id="Node000011",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node11 [id="Node000011",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node11 -> Node12 [id="edge9_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ │ Node6 -> Node13 [id="edge10_Node000006_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node13 [id="Node000013",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node13 [id="Node000013",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node13 -> Node14 [id="edge11_Node000013_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga017c427e9599c031be5c555cb32abe2c_cgraph.dot.gz │ │ │ │ ├── a00543_ga017c427e9599c031be5c555cb32abe2c_cgraph.dot │ │ │ │ │ @@ -19,14 +19,14 @@ │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_close_socket",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga3e3f76009fce5ceedb2f42bb2c9aed2e",tooltip="Close current socket."]; │ │ │ │ │ Node1 -> Node8 [id="edge7_Node000001_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ │ Node8 -> Node9 [id="edge8_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node9 -> Node14 [id="edge10_Node000009_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ Node9 -> Node16 [id="edge11_Node000009_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node16 [id="Node000016",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ │ + Node16 [id="Node000016",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ │ Node8 -> Node5 [id="edge12_Node000008_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.dot.gz │ │ │ │ ├── a00543_ga0cb72d3f6943795c39db1fa692be0a58_icgraph.dot │ │ │ │ │ @@ -43,17 +43,17 @@ │ │ │ │ │ Node44 -> Node5 [id="edge23_Node000044_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node43 -> Node45 [id="edge24_Node000043_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node45 [id="Node000045",label="tds7_process_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaca56fc22d65a24a96d1bef310ade73aa",tooltip="tds7_process_result() is the TDS 7.0 result set processing routine."]; │ │ │ │ │ Node45 -> Node3 [id="edge25_Node000045_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node45 -> Node5 [id="edge26_Node000045_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node44 [id="edge27_Node000001_Node000044",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node46 [id="edge28_Node000001_Node000046",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node46 [id="Node000046",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ + Node46 [id="Node000046",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ Node1 -> Node47 [id="edge29_Node000001_Node000047",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node47 [id="Node000047",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node47 [id="Node000047",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node1 -> Node48 [id="edge30_Node000001_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 [id="Node000048",label="tds_get_data_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gad9b6b86f48be077fb44ac603845a0c27",tooltip="Reads data metadata from wire."]; │ │ │ │ │ Node48 -> Node39 [id="edge31_Node000048_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 -> Node49 [id="edge32_Node000048_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 [id="Node000049",label="tds_process_dyn_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga416cf119c1d4a0fca27dc5b50c261358",tooltip="Process results from dynamic."]; │ │ │ │ │ Node49 -> Node3 [id="edge33_Node000049_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 -> Node5 [id="edge34_Node000049_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga1fcaf8d488cc1390f106ce3ad0bf37b4_cgraph.dot │ │ │ │ @@ -3,24 +3,24 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_put_string",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_iconv",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="skip_one_input_sequence",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3380140fc6eb9f2090c430f40e846876",tooltip="Move the input sequence pointer to the next valid position."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_sys_iconv_open",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516",tooltip="Inputs are FreeTDS canonical names, no other."]; │ │ │ │ Node3 -> Node5 [id="edge5_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ + Node6 [id="Node000006",label="tds_dataout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ Node6 -> Node7 [id="edge7_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ Node1 -> Node8 [id="edge8_Node000001_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ + Node8 [id="Node000008",label="tds_staticin_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ Node8 -> Node9 [id="edge9_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node9 [id="Node000009",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ + Node9 [id="Node000009",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga3e3f76009fce5ceedb2f42bb2c9aed2e_icgraph.dot.gz │ │ │ │ ├── a00543_ga3e3f76009fce5ceedb2f42bb2c9aed2e_icgraph.dot │ │ │ │ │ @@ -9,15 +9,15 @@ │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="dbclose",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaef740b394b44eb33925c2718f7b30d69",tooltip="Close a connection to the server and free associated resources."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="dbexit",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gad0044401c8c83205583f93a4764f2d8b",tooltip="Close server connections and free all related structures."]; │ │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node5 [id="Node000005",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ │ + Node5 [id="Node000005",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ │ Node1 -> Node3 [id="edge5_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_goodread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga6f2ae00407f59fb1ab280fa44a56295e",tooltip="Loops until we have received some characters return -1 on failure."]; │ │ │ │ │ Node1 -> Node7 [id="edge7_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_goodwrite",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga2734407109c834c5dda7ff8a45c71230",tooltip=" "]; │ │ │ │ │ Node1 -> Node8 [id="edge8_Node000001_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="tds_process_default\l_tokens",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga39453d084f3f780ac4602d4abf2839f7",tooltip="tds_process_default_tokens() is a catch all function that is called to process tokens not known to ot..."]; │ │ │ │ │ @@ -61,17 +61,17 @@ │ │ │ │ │ Node45 -> Node52 [id="edge34_Node000045_Node000052",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node52 [id="Node000052",label="tds7_get_data_info",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga07cee55fd522cca16fb59b7a8f0b1376",tooltip="Reads data information from wire."]; │ │ │ │ │ Node52 -> Node53 [id="edge35_Node000052_Node000053",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node53 [id="Node000053",label="tds7_process_compute\l_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga6728e344caa20aea1def85f58dea138b",tooltip="tds7_process_compute_result() processes compute result sets for TDS 7/8."]; │ │ │ │ │ Node53 -> Node10 [id="edge36_Node000053_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node45 -> Node53 [id="edge37_Node000045_Node000053",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node45 -> Node55 [id="edge38_Node000045_Node000055",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node55 [id="Node000055",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ + Node55 [id="Node000055",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ Node45 -> Node56 [id="edge39_Node000045_Node000056",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node56 [id="Node000056",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node56 [id="Node000056",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node45 -> Node57 [id="edge40_Node000045_Node000057",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node57 [id="Node000057",label="tds_get_data_info",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gad9b6b86f48be077fb44ac603845a0c27",tooltip="Reads data metadata from wire."]; │ │ │ │ │ Node57 -> Node48 [id="edge41_Node000057_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node57 -> Node58 [id="edge42_Node000057_Node000058",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node58 [id="Node000058",label="tds_process_dyn_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga416cf119c1d4a0fca27dc5b50c261358",tooltip="Process results from dynamic."]; │ │ │ │ │ Node58 -> Node8 [id="edge43_Node000058_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node58 -> Node10 [id="edge44_Node000058_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -110,15 +110,15 @@ │ │ │ │ │ Node44 -> Node69 [id="edge70_Node000044_Node000069",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 [id="Node000069",label="tds_get_n",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ │ Node69 -> Node46 [id="edge71_Node000069_Node000046",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node47 [id="edge72_Node000069_Node000047",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node48 [id="edge73_Node000069_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node49 [id="edge74_Node000069_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node70 [id="edge75_Node000069_Node000070",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node70 [id="Node000070",label="tds_datain_stream_read",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ │ + Node70 [id="Node000070",label="tds_datain_stream_read",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ │ Node69 -> Node76 [id="edge76_Node000069_Node000076",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node76 [id="Node000076",label="tds_dstr_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ │ Node76 -> Node46 [id="edge77_Node000076_Node000046",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node76 -> Node49 [id="edge78_Node000076_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node76 -> Node52 [id="edge79_Node000076_Node000052",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node76 -> Node57 [id="edge80_Node000076_Node000057",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node76 -> Node62 [id="edge81_Node000076_Node000062",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.dot.gz │ │ │ │ ├── a00543_ga410619783bdf2bb60b0f27a5578e0e07_icgraph.dot │ │ │ │ │ @@ -45,17 +45,17 @@ │ │ │ │ │ Node45 -> Node6 [id="edge24_Node000045_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node44 -> Node46 [id="edge25_Node000044_Node000046",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node46 [id="Node000046",label="tds7_process_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaca56fc22d65a24a96d1bef310ade73aa",tooltip="tds7_process_result() is the TDS 7.0 result set processing routine."]; │ │ │ │ │ Node46 -> Node4 [id="edge26_Node000046_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node46 -> Node6 [id="edge27_Node000046_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node45 [id="edge28_Node000002_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node47 [id="edge29_Node000002_Node000047",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node47 [id="Node000047",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ + Node47 [id="Node000047",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ Node2 -> Node48 [id="edge30_Node000002_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node48 [id="Node000048",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node48 [id="Node000048",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node2 -> Node49 [id="edge31_Node000002_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 [id="Node000049",label="tds_get_data_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gad9b6b86f48be077fb44ac603845a0c27",tooltip="Reads data metadata from wire."]; │ │ │ │ │ Node49 -> Node40 [id="edge32_Node000049_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 -> Node50 [id="edge33_Node000049_Node000050",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node50 [id="Node000050",label="tds_process_dyn_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga416cf119c1d4a0fca27dc5b50c261358",tooltip="Process results from dynamic."]; │ │ │ │ │ Node50 -> Node4 [id="edge34_Node000050_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node50 -> Node6 [id="edge35_Node000050_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -107,17 +107,17 @@ │ │ │ │ │ Node1 -> Node62 [id="edge70_Node000001_Node000062",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 [id="Node000062",label="tds_get_n",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ │ Node62 -> Node3 [id="edge71_Node000062_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node39 [id="edge72_Node000062_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node40 [id="edge73_Node000062_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node41 [id="edge74_Node000062_Node000041",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node63 [id="edge75_Node000062_Node000063",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node63 [id="Node000063",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ │ + Node63 [id="Node000063",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ │ Node63 -> Node64 [id="edge76_Node000063_Node000064",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node64 [id="Node000064",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ + Node64 [id="Node000064",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ Node64 -> Node47 [id="edge77_Node000064_Node000047",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node69 [id="edge78_Node000062_Node000069",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 [id="Node000069",label="tds_dstr_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ │ Node69 -> Node3 [id="edge79_Node000069_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node41 [id="edge80_Node000069_Node000041",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node44 [id="edge81_Node000069_Node000044",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node69 -> Node49 [id="edge82_Node000069_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga5feb53554e8917a81bbbc332163a61fb_icgraph.dot.gz │ │ │ │ ├── a00543_ga5feb53554e8917a81bbbc332163a61fb_icgraph.dot │ │ │ │ │ @@ -11,15 +11,15 @@ │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="dbsqlexec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaae889abeb145ec41f7361aa8f597fe46",tooltip="send the SQL command to the server and wait for an answer."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="dbuse",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga66ea891910f0a357cc78107d6ab7d962",tooltip="Change current database."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node6 [id="Node000006",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node6 [id="Node000006",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node6 -> Node7 [id="edge6_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 [id="Node000008",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ │ Node6 -> Node9 [id="edge8_Node000006_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node6 -> Node10 [id="edge9_Node000006_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -64,15 +64,15 @@ │ │ │ │ │ Node52 [id="Node000052",label="tds_submit_unprepare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf573d8d4d2660c8c27770573fca05ff5",tooltip="Send a unprepare request for a prepared query."]; │ │ │ │ │ Node52 -> Node17 [id="edge32_Node000052_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node53 [id="edge33_Node000001_Node000053",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node53 [id="Node000053",label="tds_send_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga11338742dc30fd0c2711f58eb830316f",tooltip="tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called dire..."]; │ │ │ │ │ Node53 -> Node35 [id="edge34_Node000053_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node35 [id="Node000035",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node53 -> Node54 [id="edge35_Node000053_Node000054",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node54 [id="Node000054",label="tdserror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01392.html#abf18b98efef6ce2dc0b97d658a3a1918",tooltip="Call the client library's error handler (for library-generated errors only)"]; │ │ │ │ │ + Node54 [id="Node000054",label="tdserror",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#abf18b98efef6ce2dc0b97d658a3a1918",tooltip="Call the client library's error handler (for library-generated errors only)"]; │ │ │ │ │ Node1 -> Node45 [id="edge36_Node000001_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node55 [id="edge37_Node000001_Node000055",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node55 [id="Node000055",label="tds_writetext_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac1e460551f1188620ea478238864ac4b",tooltip="Finish sending writetext data."]; │ │ │ │ │ + Node55 [id="Node000055",label="tds_writetext_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac1e460551f1188620ea478238864ac4b",tooltip="Finish sending writetext data."]; │ │ │ │ │ Node55 -> Node56 [id="edge38_Node000055_Node000056",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node56 [id="Node000056",label="dbmoretext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga6f13381522a1fa0b6ce2c15378088cdd",tooltip="Send chunk of a text/image value to the server."]; │ │ │ │ │ Node55 -> Node5 [id="edge39_Node000055_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga676c4dee6522815b16fdc8e448e43590_cgraph.dot │ │ │ │ @@ -3,26 +3,26 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="read_and_convert",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_iconv",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="skip_one_input_sequence",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3380140fc6eb9f2090c430f40e846876",tooltip="Move the input sequence pointer to the next valid position."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_sys_iconv_open",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516",tooltip="Inputs are FreeTDS canonical names, no other."]; │ │ │ │ Node3 -> Node5 [id="edge5_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ + Node6 [id="Node000006",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ Node6 -> Node7 [id="edge7_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ Node7 -> Node8 [id="edge8_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node8 [id="Node000008",label="tds_get_n",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ Node1 -> Node11 [id="edge9_Node000001_Node000011",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node11 [id="Node000011",label="tds_staticout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ + Node11 [id="Node000011",label="tds_staticout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node11 -> Node12 [id="edge10_Node000011_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node12 [id="Node000012",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ + Node12 [id="Node000012",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga676c4dee6522815b16fdc8e448e43590_icgraph.dot.gz │ │ │ │ ├── a00543_ga676c4dee6522815b16fdc8e448e43590_icgraph.dot │ │ │ │ │ @@ -5,15 +5,15 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="read_and_convert",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="tds_get_char_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ + Node3 [id="Node000003",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_alloc_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gafb26aba5d935e40b87b95e21a5185848",tooltip="Reads a string from wire in a new allocated buffer."]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds71_read_table_names",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga7482b5730d880fcedbe9fcd609a550ce",tooltip="Reads table names for TDS 7.1+."]; │ │ │ │ │ Node5 -> Node43 [id="edge6_Node000005_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -32,12 +32,12 @@ │ │ │ │ │ Node47 -> Node50 [id="edge13_Node000047_Node000050",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node50 [id="Node000050",label="tds7_get_data_info",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga07cee55fd522cca16fb59b7a8f0b1376",tooltip="Reads data information from wire."]; │ │ │ │ │ Node47 -> Node53 [id="edge14_Node000047_Node000053",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node53 [id="Node000053",label="tds_get_data_info",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gad9b6b86f48be077fb44ac603845a0c27",tooltip="Reads data metadata from wire."]; │ │ │ │ │ Node47 -> Node58 [id="edge15_Node000047_Node000058",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node58 [id="Node000058",label="tds_process_colinfo",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga22c7f413d43fc0d511e122a3de389166",tooltip="Reads column information."]; │ │ │ │ │ Node4 -> Node59 [id="edge16_Node000004_Node000059",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node59 [id="Node000059",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node59 [id="Node000059",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node4 -> Node60 [id="edge17_Node000004_Node000060",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node60 [id="Node000060",label="tds_process_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"]; │ │ │ │ │ Node60 -> Node10 [id="edge18_Node000060_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga7274d9c5dc75c58bb7d1f1c29e03a73e_icgraph.dot.gz │ │ │ │ ├── a00543_ga7274d9c5dc75c58bb7d1f1c29e03a73e_icgraph.dot │ │ │ │ │ @@ -30,12 +30,12 @@ │ │ │ │ │ Node30 [id="Node000030",label="tds7_write_param_def\l_from_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga24345856c16b15aa3e84459c2f551320",tooltip="Write string with parameters definition, useful for TDS7+."]; │ │ │ │ │ Node30 -> Node28 [id="edge13_Node000030_Node000028",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 -> Node3 [id="edge14_Node000030_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 -> Node31 [id="edge15_Node000030_Node000031",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node31 [id="Node000031",label="tds_submit_prepare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga74eb08c3a1c85be8ac9db428842c8b9d",tooltip="Creates a temporary stored procedure in the server."]; │ │ │ │ │ Node30 -> Node5 [id="edge16_Node000030_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node32 [id="edge17_Node000001_Node000032",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node32 [id="Node000032",label="tds_set_state",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01392.html#a16db200d2281f76fe46fc1cbe37ca9df",tooltip="Set state of TDS connection, with logging and checking."]; │ │ │ │ │ + Node32 [id="Node000032",label="tds_set_state",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#a16db200d2281f76fe46fc1cbe37ca9df",tooltip="Set state of TDS connection, with logging and checking."]; │ │ │ │ │ Node1 -> Node3 [id="edge18_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node31 [id="edge19_Node000001_Node000031",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node5 [id="edge20_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga8d214089b6e97fc0da5e0be09f216d73_cgraph.dot │ │ │ │ @@ -5,22 +5,22 @@ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_get_char_data",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Fetch character data the wire."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node2 -> Node7 [id="edge4_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ Node7 -> Node8 [id="edge5_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ + Node8 [id="Node000008",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ Node8 -> Node9 [id="edge6_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 [id="Node000009",label="tds_get_n",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ Node2 -> Node12 [id="edge7_Node000002_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node12 [id="Node000012",label="tds_staticout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ + Node12 [id="Node000012",label="tds_staticout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node12 -> Node13 [id="edge8_Node000012_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node13 [id="Node000013",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ + Node13 [id="Node000013",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ Node1 -> Node9 [id="edge9_Node000001_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga8d214089b6e97fc0da5e0be09f216d73_icgraph.dot │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_get_char_data",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Fetch character data the wire."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ + Node2 [id="Node000002",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga90f080e6e9448feac15dee1370d66802_cgraph.dot │ │ │ │ @@ -5,22 +5,22 @@ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_get_string",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Fetch a string from the wire."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node3 [id="Node000003",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node2 -> Node7 [id="edge4_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ Node7 -> Node8 [id="edge5_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ + Node8 [id="Node000008",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ Node8 -> Node9 [id="edge6_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 [id="Node000009",label="tds_get_n",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ Node2 -> Node12 [id="edge7_Node000002_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node12 [id="Node000012",label="tds_staticout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ + Node12 [id="Node000012",label="tds_staticout_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node12 -> Node13 [id="edge8_Node000012_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node13 [id="Node000013",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ + Node13 [id="Node000013",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ Node1 -> Node9 [id="edge9_Node000001_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_ga90f080e6e9448feac15dee1370d66802_icgraph.dot.gz │ │ │ │ ├── a00543_ga90f080e6e9448feac15dee1370d66802_icgraph.dot │ │ │ │ │ @@ -63,12 +63,12 @@ │ │ │ │ │ Node53 [id="Node000053",label="tds_process_param_result",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gacb3354443bcefe7a500a500a4904cc05",tooltip="process output parameters of a stored procedure."]; │ │ │ │ │ Node53 -> Node7 [id="edge37_Node000053_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node44 -> Node55 [id="edge38_Node000044_Node000055",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node55 [id="Node000055",label="tds_process_colinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga22c7f413d43fc0d511e122a3de389166",tooltip="Reads column information."]; │ │ │ │ │ Node55 -> Node5 [id="edge39_Node000055_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node55 -> Node4 [id="edge40_Node000055_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node56 [id="edge41_Node000001_Node000056",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node56 [id="Node000056",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node56 [id="Node000056",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node1 -> Node57 [id="edge42_Node000001_Node000057",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node57 [id="Node000057",label="tds_process_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"]; │ │ │ │ │ Node57 -> Node7 [id="edge43_Node000057_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00543_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.dot.gz │ │ │ │ ├── a00543_gae777dd57e8d1bb40349d7d7d8434fddf_icgraph.dot │ │ │ │ │ @@ -27,23 +27,23 @@ │ │ │ │ │ Node39 -> Node3 [id="edge12_Node000039_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node39 -> Node5 [id="edge13_Node000039_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node40 [id="edge14_Node000001_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node40 [id="Node000040",label="tds5_process_result2",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gabe2bdd5a41ce067cb31aef18ff81cb1c",tooltip="tds5_process_result2() is the new TDS 5.0 result set processing routine."]; │ │ │ │ │ Node40 -> Node3 [id="edge15_Node000040_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node40 -> Node5 [id="edge16_Node000040_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node41 [id="edge17_Node000001_Node000041",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node41 [id="Node000041",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ │ + Node41 [id="Node000041",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ │ Node41 -> Node42 [id="edge18_Node000041_Node000042",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node42 [id="Node000042",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ + Node42 [id="Node000042",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ Node42 -> Node43 [id="edge19_Node000042_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node43 [id="Node000043",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node43 -> Node44 [id="edge20_Node000043_Node000044",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node44 [id="Node000044",label="tds_get_char_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ │ Node44 -> Node45 [id="edge21_Node000044_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node45 [id="Node000045",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ + Node45 [id="Node000045",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ Node43 -> Node46 [id="edge22_Node000043_Node000046",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node46 [id="Node000046",label="tds_get_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ │ Node46 -> Node54 [id="edge23_Node000046_Node000054",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node54 [id="Node000054",label="tds_dstr_get",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ │ Node54 -> Node2 [id="edge24_Node000054_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node54 -> Node40 [id="edge25_Node000054_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node54 -> Node58 [id="edge26_Node000054_Node000058",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -57,15 +57,15 @@ │ │ │ │ │ Node62 [id="Node000062",label="tds_process_colinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga22c7f413d43fc0d511e122a3de389166",tooltip="Reads column information."]; │ │ │ │ │ Node62 -> Node3 [id="edge32_Node000062_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node49 [id="edge33_Node000062_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 [id="Node000049",label="tds_process_tabname",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeec59bca9bd0c5388e245f0d19d9c81a",tooltip="Process list of table from network."]; │ │ │ │ │ Node49 -> Node3 [id="edge34_Node000049_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node49 -> Node5 [id="edge35_Node000049_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node46 -> Node63 [id="edge36_Node000046_Node000063",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node63 [id="Node000063",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node63 [id="Node000063",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node46 -> Node64 [id="edge37_Node000046_Node000064",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node64 [id="Node000064",label="tds_process_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"]; │ │ │ │ │ Node64 -> Node5 [id="edge38_Node000064_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node42 -> Node45 [id="edge39_Node000042_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node54 [id="edge40_Node000001_Node000054",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node45 [id="edge41_Node000001_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node63 [id="edge42_Node000001_Node000063",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544.html │ │ │ │ @@ -130,15 +130,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -168,15 +168,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -920,15 +920,15 @@ │ │ │ │ │ │ │ │

◆ tds_lookup_dynamic()

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │

│ │ │ │ Variables

│ │ │ │ static const TDSCONTEXT empty_ctx = {0}
const char * id,
TDSDYNAMIC ** TDSDYNAMIC ** dyn_out,
TDSPARAMINFOparams (TDSSOCKETtds,
TDSDYNAMICTDSDYNAMICdyn 
)
(TDSCONNECTIONconn,
TDSCURSORTDSCURSORcursor 
)
(TDSCONNECTIONconn,
TDSCURSORTDSCURSORcursor 
)
(TDSCONNECTIONconn,
TDSDYNAMICTDSDYNAMICdyn 
)
(TDSCONNECTIONconn,
TDSDYNAMICTDSDYNAMICdyn 
)
(TDSSOCKETtds,
TDSCURSORTDSCURSORcursor 
)
(TDSSOCKETtds,
TDSDYNAMICTDSDYNAMICdyn 
)
(TDSSOCKETtds,
TDSDYNAMICTDSDYNAMICdyn 
)
const char * id,
TDSDYNAMIC ** TDSDYNAMIC ** dyn_out,
TDSPARAMINFOparams (TDSSOCKETtds,
TDSDYNAMICTDSDYNAMICdyn 
)
 
static TDSRET tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
 Reads data metadata from wire.
 
int tds_get_token_size (int marker)
 tds_get_token_size() returns the size of a fixed length token used by tds_process_cancel() to determine how to read past a token
 
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
 Finds a dynamic given string id.
 
static const char * tds_pr_op (int op)
 Returns string representation for a given operation.
 
static TDSRET tds_process_auth (TDSSOCKET *tds)
 Process authentication token.
 
static TDSRET tds_process_default_tokens (TDSSOCKET *tds, int marker)
 tds_process_default_tokens() is a catch all function that is called to process tokens not known to other tds_process_* routines
 
static TDSRET tds_process_dyn_result (TDSSOCKET *tds)
 Process results from dynamic.
 
static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
 tds_process_dynamic() finds the element of the dyns array for the id
 
static TDSRET tds_process_end (TDSSOCKET *tds, int marker, int *flags_parm)
 tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens.
 
static TDSRET tds_process_env_chg (TDSSOCKET *tds)
 tds_process_env_chg() when ever certain things change on the server, such as database, character set, language, or block size.
│ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1505,15 +1505,15 @@ │ │ │ │
│ │ │ │
│ │ │ │
TDSDYNAMIC * tds_lookup_dynamic TDSDYNAMIC * tds_lookup_dynamic (TDSCONNECTIONconn,
│ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga07cee55fd522cca16fb59b7a8f0b1376_icgraph.dot.gz │ │ │ │ ├── a00544_ga07cee55fd522cca16fb59b7a8f0b1376_icgraph.dot │ │ │ │ │ @@ -24,15 +24,15 @@ │ │ │ │ │ Node16 [id="Node000016",label="dbsqlok",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node16 -> Node9 [id="edge9_Node000016_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node3 -> Node18 [id="edge10_Node000003_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node3 -> Node9 [id="edge11_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node19 [id="edge12_Node000003_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node3 -> Node21 [id="edge13_Node000003_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_process_cancel",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node3 -> Node23 [id="edge14_Node000003_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node23 -> Node36 [id="edge15_Node000023_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node36 [id="Node000036",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node3 -> Node36 [id="edge16_Node000003_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga307f949194204f71f1a7e574424048b1_icgraph.dot.gz │ │ │ │ ├── a00544_ga307f949194204f71f1a7e574424048b1_icgraph.dot │ │ │ │ │ @@ -42,9 +42,9 @@ │ │ │ │ │ Node47 -> Node7 [id="edge21_Node000047_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node46 -> Node7 [id="edge22_Node000046_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node48 [id="edge23_Node000001_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 [id="Node000048",label="tds_process_col_fmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga4e3dd9d3614f5f0433b78b761dd68741",tooltip="tds_process_col_fmt() is the other half of result set processing under TDS 4.2."]; │ │ │ │ │ Node48 -> Node37 [id="edge24_Node000048_Node000037",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 -> Node7 [id="edge25_Node000048_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node49 [id="edge26_Node000001_Node000049",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node49 [id="Node000049",label="tdsdump_col",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00041.html#aaee3fe5c514ce5570c9548de9b16e0d9",tooltip="Write a column value to the debug log."]; │ │ │ │ │ + Node49 [id="Node000049",label="tdsdump_col",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00257.html#aaee3fe5c514ce5570c9548de9b16e0d9",tooltip="Write a column value to the debug log."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga39453d084f3f780ac4602d4abf2839f7_icgraph.dot.gz │ │ │ │ ├── a00544_ga39453d084f3f780ac4602d4abf2839f7_icgraph.dot │ │ │ │ │ @@ -25,15 +25,15 @@ │ │ │ │ │ Node16 [id="Node000016",label="dbsqlok",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node16 -> Node9 [id="edge10_Node000016_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node3 -> Node18 [id="edge11_Node000003_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node3 -> Node9 [id="edge12_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node19 [id="edge13_Node000003_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node3 -> Node21 [id="edge14_Node000003_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_process_cancel",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node3 -> Node23 [id="edge15_Node000003_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node23 -> Node33 [id="edge16_Node000023_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 [id="Node000033",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node3 -> Node33 [id="edge17_Node000003_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga4a45cadd06ae1b886459dcc1f8e482c6_icgraph.dot.gz │ │ │ │ ├── a00544_ga4a45cadd06ae1b886459dcc1f8e482c6_icgraph.dot │ │ │ │ │ @@ -32,15 +32,15 @@ │ │ │ │ │ Node20 [id="Node000020",label="dbsqlok",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node20 -> Node13 [id="edge13_Node000020_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node13 [id="Node000013",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node7 -> Node22 [id="edge14_Node000007_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node7 -> Node13 [id="edge15_Node000007_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node23 [id="edge16_Node000007_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node23 [id="Node000023",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node23 [id="Node000023",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node7 -> Node25 [id="edge17_Node000007_Node000025",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node25 [id="Node000025",label="tds_process_cancel",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node7 -> Node27 [id="edge18_Node000007_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node27 [id="Node000027",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node27 -> Node40 [id="edge19_Node000027_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node40 [id="Node000040",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node7 -> Node40 [id="edge20_Node000007_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga5cfc0340d8d717e67f60037e029b2142_cgraph.dot.gz │ │ │ │ ├── a00544_ga5cfc0340d8d717e67f60037e029b2142_cgraph.dot │ │ │ │ │ @@ -16,19 +16,19 @@ │ │ │ │ │ Node5 [id="Node000005",label="tds_get_n",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ │ Node5 -> Node3 [id="edge5_Node000005_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ │ Node6 -> Node7 [id="edge7_Node000006_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node7 -> Node8 [id="edge8_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node7 -> Node12 [id="edge9_Node000007_Node000012",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node12 [id="Node000012",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ + Node12 [id="Node000012",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ │ Node7 -> Node14 [id="edge10_Node000007_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node14 [id="Node000014",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ │ + Node14 [id="Node000014",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ │ Node6 -> Node5 [id="edge11_Node000006_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node16 [id="edge12_Node000001_Node000016",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="tds_get_usmallint",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#gad38aa5b9547817854ccba1fcc7855861",tooltip="Get an int16 from the server."]; │ │ │ │ │ Node16 -> Node5 [id="edge13_Node000016_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node17 [id="edge14_Node000001_Node000017",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="tds_lookup_dynamic",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga4a45cadd06ae1b886459dcc1f8e482c6",tooltip="Finds a dynamic given string id."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga5cfc0340d8d717e67f60037e029b2142_icgraph.dot.gz │ │ │ │ ├── a00544_ga5cfc0340d8d717e67f60037e029b2142_icgraph.dot │ │ │ │ │ @@ -40,29 +40,29 @@ │ │ │ │ │ Node16 -> Node7 [id="edge17_Node000016_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 -> Node8 [id="edge18_Node000015_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node17 [id="edge19_Node000002_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node17 -> Node16 [id="edge20_Node000017_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node8 [id="edge21_Node000002_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node18 [id="edge22_Node000002_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node18 -> Node19 [id="edge23_Node000018_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node2 -> Node20 [id="edge24_Node000002_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node20 -> Node21 [id="edge25_Node000020_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node2 -> Node22 [id="edge26_Node000002_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node22 -> Node23 [id="edge27_Node000022_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node22 -> Node27 [id="edge28_Node000022_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node22 -> Node30 [id="edge29_Node000022_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node22 -> Node35 [id="edge30_Node000022_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node35 [id="Node000035",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node22 -> Node36 [id="edge31_Node000022_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node36 -> Node8 [id="edge32_Node000036_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node35 [id="edge33_Node000002_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga62dc14d21453e88e24880ee0acaca73a_icgraph.dot.gz │ │ │ │ ├── a00544_ga62dc14d21453e88e24880ee0acaca73a_icgraph.dot │ │ │ │ │ @@ -24,15 +24,15 @@ │ │ │ │ │ Node16 [id="Node000016",label="dbsqlok",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node16 -> Node9 [id="edge9_Node000016_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node3 -> Node18 [id="edge10_Node000003_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node3 -> Node9 [id="edge11_Node000003_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 -> Node19 [id="edge12_Node000003_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node19 [id="Node000019",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node3 -> Node21 [id="edge13_Node000003_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_process_cancel",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node3 -> Node23 [id="edge14_Node000003_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node23 -> Node36 [id="edge15_Node000023_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node36 [id="Node000036",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node3 -> Node36 [id="edge16_Node000003_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga65a2316369529731732f200c190d05d6_icgraph.dot.gz │ │ │ │ ├── a00544_ga65a2316369529731732f200c190d05d6_icgraph.dot │ │ │ │ │ @@ -27,15 +27,15 @@ │ │ │ │ │ Node17 [id="Node000017",label="dbsqlok",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node17 -> Node10 [id="edge11_Node000017_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node4 -> Node19 [id="edge12_Node000004_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="dbsqlsend",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node4 -> Node10 [id="edge13_Node000004_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 -> Node20 [id="edge14_Node000004_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node20 [id="Node000020",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node20 [id="Node000020",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node4 -> Node22 [id="edge15_Node000004_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_cancel",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node4 -> Node24 [id="edge16_Node000004_Node000024",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node24 [id="Node000024",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node24 -> Node34 [id="edge17_Node000024_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node34 [id="Node000034",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node4 -> Node34 [id="edge18_Node000004_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga6728e344caa20aea1def85f58dea138b_icgraph.dot.gz │ │ │ │ ├── a00544_ga6728e344caa20aea1def85f58dea138b_icgraph.dot │ │ │ │ │ @@ -40,29 +40,29 @@ │ │ │ │ │ Node16 -> Node7 [id="edge17_Node000016_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 -> Node8 [id="edge18_Node000015_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node17 [id="edge19_Node000002_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node17 -> Node16 [id="edge20_Node000017_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node8 [id="edge21_Node000002_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node18 [id="edge22_Node000002_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node18 -> Node19 [id="edge23_Node000018_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node2 -> Node20 [id="edge24_Node000002_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node20 -> Node21 [id="edge25_Node000020_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node2 -> Node22 [id="edge26_Node000002_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node22 -> Node23 [id="edge27_Node000022_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node22 -> Node27 [id="edge28_Node000022_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node22 -> Node30 [id="edge29_Node000022_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node22 -> Node35 [id="edge30_Node000022_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node35 [id="Node000035",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node22 -> Node36 [id="edge31_Node000022_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node36 -> Node8 [id="edge32_Node000036_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node35 [id="edge33_Node000002_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga69902dffb299d62a799888e0fa3ccd68_cgraph.dot.gz │ │ │ │ ├── a00544_ga69902dffb299d62a799888e0fa3ccd68_cgraph.dot │ │ │ │ │ @@ -121,19 +121,19 @@ │ │ │ │ │ Node84 -> Node86 [id="edge76_Node000084_Node000086",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node86 [id="Node000086",label="tds_free_input_params",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00541.html#gabdc5fee73b22345c02ab894e49ad7f95",tooltip="Frees all allocated input parameters of a dynamic statement."]; │ │ │ │ │ Node1 -> Node87 [id="edge77_Node000001_Node000087",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node87 [id="Node000087",label="tds_submit_unprepare",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf573d8d4d2660c8c27770573fca05ff5",tooltip="Send a unprepare request for a prepared query."]; │ │ │ │ │ Node87 -> Node88 [id="edge78_Node000087_Node000088",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node88 [id="Node000088",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node88 -> Node27 [id="edge79_Node000088_Node000027",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node88 -> Node89 [id="edge80_Node000088_Node000089",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node89 [id="Node000089",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ + Node89 [id="Node000089",label="tds_dataout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa038a9125979f8f0915dbd53cbf27e5a",tooltip="Initialize a data output stream."]; │ │ │ │ │ Node88 -> Node91 [id="edge81_Node000088_Node000091",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node91 [id="Node000091",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ + Node91 [id="Node000091",label="tds_staticin_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#aa9e1e45f0305622dd6aed9f8fe158581",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ │ Node87 -> Node4 [id="edge82_Node000087_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node87 -> Node83 [id="edge83_Node000087_Node000083",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node87 -> Node93 [id="edge84_Node000087_Node000093",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node93 [id="Node000093",label="tds_start_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga0da385231bfa3dc49377e1fb2bea2c07",tooltip="Start query packet of a given type."]; │ │ │ │ │ Node93 -> Node94 [id="edge85_Node000093_Node000094",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node94 [id="Node000094",label="tds_start_query_head",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga9ad2e6defce530a8778791cce0166ccd",tooltip="Start query packet of a given type."]; │ │ │ │ │ Node94 -> Node88 [id="edge86_Node000094_Node000088",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga6fcb37d5addebdc1af9f34ebc59fd7a8_icgraph.dot.gz │ │ │ │ ├── a00544_ga6fcb37d5addebdc1af9f34ebc59fd7a8_icgraph.dot │ │ │ │ │ @@ -40,29 +40,29 @@ │ │ │ │ │ Node16 -> Node7 [id="edge17_Node000016_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 -> Node8 [id="edge18_Node000015_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node17 [id="edge19_Node000002_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node17 -> Node16 [id="edge20_Node000017_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node8 [id="edge21_Node000002_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node18 [id="edge22_Node000002_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node18 -> Node19 [id="edge23_Node000018_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node2 -> Node20 [id="edge24_Node000002_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node20 -> Node21 [id="edge25_Node000020_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node2 -> Node22 [id="edge26_Node000002_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node22 -> Node23 [id="edge27_Node000022_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node22 -> Node27 [id="edge28_Node000022_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node22 -> Node30 [id="edge29_Node000022_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node22 -> Node35 [id="edge30_Node000022_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node35 [id="Node000035",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node22 -> Node36 [id="edge31_Node000022_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node36 -> Node8 [id="edge32_Node000036_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node35 [id="edge33_Node000002_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_ga91770634ce8c0d6f1fe007b45da186fd_cgraph.dot │ │ │ │ @@ -9,12 +9,12 @@ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="determine_adjusted_size",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaacb26868882440aa08de9fb952628eaf",tooltip="Allow for maximum possible size of converted data, while being careful about integer division truncat..."]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_iconv_get_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga1639ccaa7e17c07457bcb37f313bc52f",tooltip="Get a iconv info structure, allocate and initialize if needed."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_iconv_info_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3a7a7b4d6ed344127e164dd0b443d790",tooltip="Open iconv descriptors to convert between character sets (both directions)."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="tds_set_iconv_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html#a585ebac61354ce540d28f6da2d771b5b",tooltip="Get iconv name given canonic."]; │ │ │ │ + Node5 [id="Node000005",label="tds_set_iconv_name",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html#a585ebac61354ce540d28f6da2d771b5b",tooltip="Get iconv name given canonic."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_sys_iconv_open",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516",tooltip="Inputs are FreeTDS canonical names, no other."]; │ │ │ │ Node4 -> Node6 [id="edge6_Node000004_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_gabfc9de1d1fe718818caf63a4be4035a6_icgraph.dot.gz │ │ │ │ ├── a00544_gabfc9de1d1fe718818caf63a4be4035a6_icgraph.dot │ │ │ │ │ @@ -38,44 +38,44 @@ │ │ │ │ │ Node15 -> Node6 [id="edge16_Node000015_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 -> Node7 [id="edge17_Node000014_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node16 [id="edge18_Node000001_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node16 [id="Node000016",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node16 -> Node15 [id="edge19_Node000016_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node7 [id="edge20_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node17 [id="edge21_Node000001_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node17 [id="Node000017",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node17 [id="Node000017",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node17 -> Node18 [id="edge22_Node000017_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node18 [id="Node000018",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node1 -> Node19 [id="edge23_Node000001_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node19 -> Node20 [id="edge24_Node000019_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node1 -> Node21 [id="edge25_Node000001_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node21 -> Node22 [id="edge26_Node000021_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node22 [id="Node000022",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node22 [id="Node000022",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node22 -> Node23 [id="edge27_Node000022_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node23 [id="Node000023",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node23 -> Node3 [id="edge28_Node000023_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 -> Node24 [id="edge29_Node000022_Node000024",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node24 [id="Node000024",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node22 -> Node25 [id="edge30_Node000022_Node000025",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node25 [id="Node000025",label="bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga8b85f79f53a62ac7a728fe626d609b65",tooltip="Conclude the transfer of data from program variables."]; │ │ │ │ │ Node21 -> Node26 [id="edge31_Node000021_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node26 [id="Node000026",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node26 [id="Node000026",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node26 -> Node23 [id="edge32_Node000026_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node26 -> Node24 [id="edge33_Node000026_Node000024",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node26 -> Node27 [id="edge34_Node000026_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node27 -> Node23 [id="edge35_Node000027_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 -> Node29 [id="edge36_Node000021_Node000029",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node29 [id="Node000029",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node29 -> Node30 [id="edge37_Node000029_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="tds_process_end",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga7a081cf9bb8f04ead12f0299fb7c4cd9",tooltip="tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens."]; │ │ │ │ │ Node30 -> Node1 [id="edge38_Node000030_Node000001",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 -> Node34 [id="edge39_Node000021_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node34 [id="Node000034",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node21 -> Node35 [id="edge40_Node000021_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node35 [id="Node000035",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node35 [id="Node000035",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node35 -> Node7 [id="edge41_Node000035_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node34 [id="edge42_Node000001_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_gae3368ea80d0d8b13791ceb13ee5f19c9_icgraph.dot.gz │ │ │ │ ├── a00544_gae3368ea80d0d8b13791ceb13ee5f19c9_icgraph.dot │ │ │ │ │ @@ -40,29 +40,29 @@ │ │ │ │ │ Node16 -> Node7 [id="edge17_Node000016_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 -> Node8 [id="edge18_Node000015_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node17 [id="edge19_Node000002_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node17 -> Node16 [id="edge20_Node000017_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node8 [id="edge21_Node000002_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node18 [id="edge22_Node000002_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node18 -> Node19 [id="edge23_Node000018_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node2 -> Node20 [id="edge24_Node000002_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node20 -> Node21 [id="edge25_Node000020_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node2 -> Node22 [id="edge26_Node000002_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node22 -> Node23 [id="edge27_Node000022_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node22 -> Node27 [id="edge28_Node000022_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node22 -> Node30 [id="edge29_Node000022_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node22 -> Node35 [id="edge30_Node000022_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node35 [id="Node000035",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node22 -> Node36 [id="edge31_Node000022_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node36 -> Node8 [id="edge32_Node000036_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node35 [id="edge33_Node000002_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_gae5b3e01f3d665f9e377de091f46f1ab9_icgraph.dot.gz │ │ │ │ ├── a00544_gae5b3e01f3d665f9e377de091f46f1ab9_icgraph.dot │ │ │ │ │ @@ -40,29 +40,29 @@ │ │ │ │ │ Node16 -> Node7 [id="edge17_Node000016_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node15 -> Node8 [id="edge18_Node000015_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node17 [id="edge19_Node000002_Node000017",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node17 [id="Node000017",label="dbsqlsend",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gac980139b9cea03cf93e373d425991481",tooltip="Transmit the command buffer to the server."]; │ │ │ │ │ Node17 -> Node16 [id="edge20_Node000017_Node000016",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node8 [id="edge21_Node000002_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node18 [id="edge22_Node000002_Node000018",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node18 [id="Node000018",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node18 -> Node19 [id="edge23_Node000018_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node19 [id="Node000019",label="bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0",tooltip="Prepare for bulk copy operation on a table."]; │ │ │ │ │ Node2 -> Node20 [id="edge24_Node000002_Node000020",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node20 [id="Node000020",label="tds_process_cancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node20 -> Node21 [id="edge25_Node000020_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node21 [id="Node000021",label="dbcancel",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga5ea23272124fff03b8d87538c1ec3ee5",tooltip="Cancel the current command batch."]; │ │ │ │ │ Node2 -> Node22 [id="edge26_Node000002_Node000022",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node22 [id="Node000022",label="tds_process_simple\l_query",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node22 -> Node23 [id="edge27_Node000022_Node000023",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node23 [id="Node000023",label="tds_bcp_done",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node22 -> Node27 [id="edge28_Node000022_Node000027",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node27 [id="Node000027",label="tds_bcp_start",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node22 -> Node30 [id="edge29_Node000022_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node22 -> Node35 [id="edge30_Node000022_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node35 [id="Node000035",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node22 -> Node36 [id="edge31_Node000022_Node000036",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node36 [id="Node000036",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node36 -> Node8 [id="edge32_Node000036_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node35 [id="edge33_Node000002_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_gaeeb1562044786ea17bea361ed83e6946_icgraph.dot.gz │ │ │ │ ├── a00544_gaeeb1562044786ea17bea361ed83e6946_icgraph.dot │ │ │ │ │ @@ -3,29 +3,29 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="tds_process_simple\l_query",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ade7df2db455b61edc83819ad60edb339",tooltip="Tell we finished sending BCP data to server."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ │ Node2 -> Node6 [id="edge5_Node000002_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="bcp_done",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga8b85f79f53a62ac7a728fe626d609b65",tooltip="Conclude the transfer of data from program variables."]; │ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node7 [id="Node000007",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ + Node7 [id="Node000007",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node7 -> Node3 [id="edge7_Node000007_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node5 [id="edge8_Node000007_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 -> Node8 [id="edge9_Node000007_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node8 [id="Node000008",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ + Node8 [id="Node000008",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ │ Node8 -> Node3 [id="edge10_Node000008_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node8 -> Node9 [id="edge11_Node000008_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node9 [id="Node000009",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ │ Node1 -> Node10 [id="edge12_Node000001_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node10 [id="Node000010",label="tds_process_pending\l_closes",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga69902dffb299d62a799888e0fa3ccd68",tooltip="Attempt to close all deferred closes (dynamics and cursors)."]; │ │ │ │ │ Node10 -> Node11 [id="edge13_Node000010_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node11 [id="Node000011",label="tds_process_end",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga7a081cf9bb8f04ead12f0299fb7c4cd9",tooltip="tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens."]; │ │ │ │ │ @@ -37,10 +37,10 @@ │ │ │ │ │ Node19 [id="Node000019",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node14 -> Node1 [id="edge17_Node000014_Node000001",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node14 -> Node33 [id="edge18_Node000014_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 [id="Node000033",label="tds_submit_optioncmd",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gaf0da49585d39e99780a004ee2ca23479",tooltip="Send option commands to server."]; │ │ │ │ │ Node11 -> Node14 [id="edge19_Node000011_Node000014",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node33 [id="edge20_Node000001_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node35 [id="edge21_Node000001_Node000035",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node35 [id="Node000035",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ + Node35 [id="Node000035",label="tds_writetext_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7711612cc544a7da2c7aa212b870acb2",tooltip="Start writing writetext request."]; │ │ │ │ │ Node35 -> Node19 [id="edge22_Node000035_Node000019",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00544_gafb26aba5d935e40b87b95e21a5185848_cgraph.dot │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_alloc_get_string",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Reads a string from wire in a new allocated buffer."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node4 [id="Node000004",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node3 -> Node8 [id="edge4_Node000003_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ + Node8 [id="Node000008",label="tds_datain_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ Node3 -> Node13 [id="edge5_Node000003_Node000013",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node13 [id="Node000013",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ + Node13 [id="Node000013",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node2 -> Node10 [id="edge6_Node000002_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node10 [id="Node000010",label="tds_get_n",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00545_ga4e6d9fa6f9b9551a5a3390e10a5322e6_icgraph.dot.gz │ │ │ │ ├── a00545_ga4e6d9fa6f9b9551a5a3390e10a5322e6_icgraph.dot │ │ │ │ │ @@ -12,20 +12,20 @@ │ │ │ │ │ Node3 [id="Node000003",label="tds_process_default\l_tokens",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga39453d084f3f780ac4602d4abf2839f7",tooltip="tds_process_default_tokens() is a catch all function that is called to process tokens not known to ot..."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_process_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga65a2316369529731732f200c190d05d6",tooltip="tds_process_info() is called for INFO, ERR, or EED tokens and is responsible for calling the CLI's me..."]; │ │ │ │ │ Node4 -> Node3 [id="edge4_Node000004_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 -> Node5 [id="edge5_Node000004_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ │ Node5 -> Node21 [id="edge6_Node000005_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node21 [id="Node000021",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node21 [id="Node000021",label="tds_bcp_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node3 -> Node37 [id="edge7_Node000003_Node000037",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node37 [id="Node000037",label="tds_process_login_tokens",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga93945b42d45ee28ae1296b35a1c1e9bb",tooltip="tds_process_login_tokens() is called after sending the login packet to the server."]; │ │ │ │ │ Node3 -> Node5 [id="edge8_Node000003_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 -> Node5 [id="edge9_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node21 [id="edge10_Node000001_Node000021",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node38 [id="edge11_Node000001_Node000038",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node38 [id="Node000038",label="tds_read_config_info",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90",tooltip="tds_read_config_info() will fill the tds connection structure based on configuration information gath..."]; │ │ │ │ │ Node38 -> Node39 [id="edge12_Node000038_Node000039",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node39 [id="Node000039",label="tdsdbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00533.html#gae6da75d7b9e7b567890fc83c9459d824",tooltip="Form a connection with the server."]; │ │ │ │ │ Node39 -> Node40 [id="edge13_Node000039_Node000040",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node40 [id="Node000040",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00176.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ │ + Node40 [id="Node000040",label="dbopen",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00170.html#af2b7a0ebad53fe7e4e0eda3bbdb89de3",tooltip="Normally not used."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00545_ga656718f240d7403f986ae887d84a6ca1_icgraph.dot.gz │ │ │ │ ├── a00545_ga656718f240d7403f986ae887d84a6ca1_icgraph.dot │ │ │ │ │ @@ -29,15 +29,15 @@ │ │ │ │ │ Node11 -> Node12 [id="edge12_Node000011_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node12 [id="Node000012",label="tds_submit_query_params",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00542.html#ga95e0fccedc459a4404f496eec74a369a",tooltip="Sends a language string to the database server for processing."]; │ │ │ │ │ Node6 -> Node33 [id="edge13_Node000006_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 [id="Node000033",label="tds7_process_compute\l_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#ga6728e344caa20aea1def85f58dea138b",tooltip="tds7_process_compute_result() processes compute result sets for TDS 7/8."]; │ │ │ │ │ Node33 -> Node34 [id="edge14_Node000033_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node34 [id="Node000034",label="tds_process_tokens",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gabfc9de1d1fe718818caf63a4be4035a6",tooltip="process all streams."]; │ │ │ │ │ Node34 -> Node29 [id="edge15_Node000034_Node000029",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node29 [id="Node000029",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node29 [id="Node000029",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node29 -> Node7 [id="edge16_Node000029_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node54 [id="edge17_Node000006_Node000054",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node54 [id="Node000054",label="tds_dstr_set",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gab78cc59b110df2817b00f9bed74c6ff1",tooltip="set a string from another buffer."]; │ │ │ │ │ Node6 -> Node55 [id="edge18_Node000006_Node000055",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node55 [id="Node000055",label="tds_init_login",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39",tooltip="Initialize login structure with locale information and other stuff for connection."]; │ │ │ │ │ Node55 -> Node3 [id="edge19_Node000055_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node56 [id="edge20_Node000006_Node000056",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -57,15 +57,15 @@ │ │ │ │ │ Node59 [id="Node000059",label="tds_process_compute\l_names",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gae5b3e01f3d665f9e377de091f46f1ab9",tooltip="tds_process_compute_names() processes compute result sets."]; │ │ │ │ │ Node59 -> Node34 [id="edge30_Node000059_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node60 [id="edge31_Node000006_Node000060",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node60 [id="Node000060",label="tds_process_compute\l_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gae3368ea80d0d8b13791ceb13ee5f19c9",tooltip="tds_process_compute_result() processes compute result sets."]; │ │ │ │ │ Node60 -> Node34 [id="edge32_Node000060_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node10 [id="edge33_Node000006_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 -> Node61 [id="edge34_Node000006_Node000061",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node61 [id="Node000061",label="tds_set_server",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html#a11dd024f29372af84d4bc73daf864206",tooltip="Set the servername in a TDSLOGIN structure."]; │ │ │ │ │ + Node61 [id="Node000061",label="tds_set_server",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01380.html#a11dd024f29372af84d4bc73daf864206",tooltip="Set the servername in a TDSLOGIN structure."]; │ │ │ │ │ Node1 -> Node62 [id="edge35_Node000001_Node000062",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 [id="Node000062",label="tds_dstr_dup",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6",tooltip="Duplicate a string from another dynamic string."]; │ │ │ │ │ Node62 -> Node63 [id="edge36_Node000062_Node000063",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node63 [id="Node000063",label="tds5_process_result2",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gabe2bdd5a41ce067cb31aef18ff81cb1c",tooltip="tds5_process_result2() is the new TDS 5.0 result set processing routine."]; │ │ │ │ │ Node63 -> Node51 [id="edge37_Node000063_Node000051",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node63 -> Node34 [id="edge38_Node000063_Node000034",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node62 -> Node29 [id="edge39_Node000062_Node000029",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00545_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.dot.gz │ │ │ │ ├── a00545_gad96366d9fa93bfc283cef1299fbe97ab_icgraph.dot │ │ │ │ │ @@ -49,15 +49,15 @@ │ │ │ │ │ Node33 -> Node42 [id="edge22_Node000033_Node000042",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node42 [id="Node000042",label="dbsqlok",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00527.html#gae1f50a6a2c31fda57cb481922b06841e",tooltip="Wait for results of a query from the server."]; │ │ │ │ │ Node42 -> Node30 [id="edge23_Node000042_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node30 [id="Node000030",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ │ Node33 -> Node15 [id="edge24_Node000033_Node000015",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 -> Node30 [id="edge25_Node000033_Node000030",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 -> Node28 [id="edge26_Node000033_Node000028",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node28 [id="Node000028",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ + Node28 [id="Node000028",label="tds_bcp_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ac6610c72bd31bad5378f760fa9b12d66",tooltip="Initialize BCP information."]; │ │ │ │ │ Node28 -> Node2 [id="edge27_Node000028_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 -> Node43 [id="edge28_Node000033_Node000043",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node43 [id="Node000043",label="tds_process_cancel",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaf233e79967f82f4e0dd4d11524917a34",tooltip=" "]; │ │ │ │ │ Node33 -> Node45 [id="edge29_Node000033_Node000045",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node45 [id="Node000045",label="tds_process_simple\l_query",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gaeeb1562044786ea17bea361ed83e6946",tooltip="Process results for simple query as \"SET TEXTSIZE\" or \"USE dbname\" If the statement returns results,..."]; │ │ │ │ │ Node45 -> Node26 [id="edge30_Node000045_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 -> Node26 [id="edge31_Node000033_Node000026",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ @@ -83,9 +83,9 @@ │ │ │ │ │ Node58 [id="Node000058",label="tds_process_compute\l_names",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gae5b3e01f3d665f9e377de091f46f1ab9",tooltip="tds_process_compute_names() processes compute result sets."]; │ │ │ │ │ Node58 -> Node33 [id="edge45_Node000058_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node59 [id="edge46_Node000001_Node000059",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node59 [id="Node000059",label="tds_process_compute\l_result",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00544.html#gae3368ea80d0d8b13791ceb13ee5f19c9",tooltip="tds_process_compute_result() processes compute result sets."]; │ │ │ │ │ Node59 -> Node33 [id="edge47_Node000059_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node9 [id="edge48_Node000001_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node1 -> Node60 [id="edge49_Node000001_Node000060",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node60 [id="Node000060",label="tds_set_server",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html#a11dd024f29372af84d4bc73daf864206",tooltip="Set the servername in a TDSLOGIN structure."]; │ │ │ │ │ + Node60 [id="Node000060",label="tds_set_server",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01380.html#a11dd024f29372af84d4bc73daf864206",tooltip="Set the servername in a TDSLOGIN structure."]; │ │ │ │ │ } │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00545_gae092e53680d954bcf4f19334987d43c7_icgraph.dot.gz │ │ │ │ ├── a00545_gae092e53680d954bcf4f19334987d43c7_icgraph.dot │ │ │ │ │ @@ -5,17 +5,17 @@ │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="tds_dstr_buf",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Returns a buffer to edit the string."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="dbcolname",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga3bcdc8f584537b8278483f2cee59f130",tooltip="Return name of a regular result column."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node3 [id="Node000003",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ │ + Node3 [id="Node000003",label="dbcolinfo",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html#a9b73fd1afa2c3ccfca481635212d2e43",tooltip="Get a bunch of column attributes with a single call (Microsoft-compatibility feature)."]; │ │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ │ + Node4 [id="Node000004",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="dbcolsource",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga7be8b405d5416bf0361f65dbb5942faa",tooltip="Get base database column name for a result set column."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="dbretname",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00528.html#ga63dc384b5c0ee3086a171337e8c78317",tooltip="Get name of an output parameter filled by a stored procedure."]; │ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_dstr_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00582.html │ │ │ │ @@ -232,15 +232,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
static TDSDYNAMIC * tds_process_dynamic static TDSDYNAMIC * tds_process_dynamic (TDSSOCKETtds)
│ │ │ │
 
│ │ │ │ int vflag
 
│ │ │ │
The documentation for this struct was generated from the following files:
    │ │ │ │
  • src/apps/datacopy.c
  • │ │ │ │ -
  • src/apps/freebcp.h
  • │ │ │ │ +
  • src/apps/freebcp.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00590.html │ │ │ │ @@ -80,15 +80,15 @@ │ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRESULTINFO *  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ -TDSRESULTINFOresinfo
resinfo
 pointer to result informations
 
│ │ │ │ DBINT row
 row number
 
│ │ │ │ @@ -97,15 +97,15 @@ │ │ │ │
 
│ │ │ │ TDS_INT * sizes
 save old sizes
 
│ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00594.html │ │ │ │ @@ -118,15 +118,15 @@ │ │ │ │ int tds_ctx_ref_count │ │ │ │  libTDS context reference counter
│ │ │ │   │ │ │ │ │ │ │ │

Detailed Description

│ │ │ │

\dblib_internal

Remarks
A db-lib connection has an implicit TDS context.
│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/dblib/dblib.c
  • │ │ │ │ +
  • src/dblib/dblib.c
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00598.html │ │ │ │ @@ -91,15 +91,15 @@ │ │ │ │

Detailed Description

│ │ │ │
Remarks
member msgno Vendor-defined message number
│ │ │ │
│ │ │ │ member severity Is passed to the error handler
│ │ │ │
│ │ │ │ member msgtext Text of message
│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/dblib/dblib.c
  • │ │ │ │ +
  • src/dblib/dblib.c
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00662.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ TDS_POOL_EXECUTE execute │ │ │ │   │ │ │ │ │ │ │ │ TDS_POOL_EVENTnext │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/pool/pool.h
  • │ │ │ │ +
  • src/pool/pool.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00666.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ bool poll_send │ │ │ │   │ │ │ │ │ │ │ │ TDSSOCKETtds │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/pool/pool.h
  • │ │ │ │ +
  • src/pool/pool.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00670.html │ │ │ │ @@ -100,15 +100,15 @@ │ │ │ │ TDS_POOL_SOCKET sock │ │ │ │   │ │ │ │ │ │ │ │ TDS_USER_STATE user_state │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/pool/pool.h
  • │ │ │ │ +
  • src/pool/pool.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00674.html │ │ │ │ @@ -100,15 +100,15 @@ │ │ │ │ time_t last_used_tm │ │ │ │   │ │ │ │ │ │ │ │ TDS_POOL_SOCKET sock │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/pool/pool.h
  • │ │ │ │ +
  • src/pool/pool.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00678.html │ │ │ │ @@ -157,15 +157,15 @@ │ │ │ │  users in wait state
│ │ │ │   │ │ │ │ │ │ │ │ TDS_SYS_SOCKET wakeup_fd │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/pool/pool.h
  • │ │ │ │ +
  • src/pool/pool.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00690.html │ │ │ │ @@ -93,15 +93,15 @@ │ │ │ │ char * pb │ │ │ │  buffer
│ │ │ │   │ │ │ │ │ │ │ │

Detailed Description

│ │ │ │

Holds clause buffer.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/tds/bulk.c
  • │ │ │ │ +
  • src/tds/bulk.c
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00694.html │ │ │ │ @@ -109,15 +109,15 @@ │ │ │ │ const char * terminator │ │ │ │  terminator
│ │ │ │   │ │ │ │ │ │ │ │

Detailed Description

│ │ │ │

input stream to read a file

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/tds/bulk.c
  • │ │ │ │ +
  • src/tds/bulk.c
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00722.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ TDSINSTREAM stream │ │ │ │   │ │ │ │ │ │ │ │ TDSSOCKETtds │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/tds/data.c
  • │ │ │ │ +
  • src/tds/data.c
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00750.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ gcry_mpi_t num │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00754.html │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ unsigned long length │ │ │ │   │ │ │ │ │ │ │ │ unsigned long type │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00758.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ mpz_t n │ │ │ │   │ │ │ │ │ │ │ │ unsigned size │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00762.html │ │ │ │ @@ -94,15 +94,15 @@ │ │ │ │ struct namelistnext │ │ │ │  next element in the list
│ │ │ │   │ │ │ │ │ │ │ │

Detailed Description

│ │ │ │

Holds list of names.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • src/tds/token.c
  • │ │ │ │ +
  • src/tds/token.c
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00778.html │ │ │ │ @@ -106,15 +106,15 @@ │ │ │ │ CS_VOID * thread │ │ │ │   │ │ │ │ │ │ │ │ CS_INT threadlen │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00782.html │ │ │ │ @@ -96,15 +96,15 @@ │ │ │ │ CS_COMMANDcommand │ │ │ │   │ │ │ │ │ │ │ │ CS_CONNECTIONconnection │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00786.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ unsigned char precision │ │ │ │   │ │ │ │ │ │ │ │ unsigned char scale │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00790.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ CS_CHAR array [256] │ │ │ │   │ │ │ │ │ │ │ │ CS_SMALLINT len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00794.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ CS_SMALLINT len │ │ │ │   │ │ │ │ │ │ │ │ CS_CHAR str [256] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00798.html │ │ │ │ @@ -120,15 +120,15 @@ │ │ │ │ CS_INT total_txtlen │ │ │ │   │ │ │ │ │ │ │ │ CS_INT usertype │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00802.html │ │ │ │ @@ -114,15 +114,15 @@ │ │ │ │ CS_INT status │ │ │ │   │ │ │ │ │ │ │ │ CS_INT usertype │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00806.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ CS_INT mnyhigh │ │ │ │   │ │ │ │ │ │ │ │ CS_UINT mnylow │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00810.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ CS_INT mny4 │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00814.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ CS_INT dtdays │ │ │ │   │ │ │ │ │ │ │ │ CS_INT dttime │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00818.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ CS_USHORT days │ │ │ │   │ │ │ │ │ │ │ │ CS_USHORT minutes │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00822.html │ │ │ │ @@ -112,15 +112,15 @@ │ │ │ │ CS_INT datetzone │ │ │ │   │ │ │ │ │ │ │ │ CS_INT dateyear │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00826.html │ │ │ │ @@ -106,15 +106,15 @@ │ │ │ │ CS_INT sqlstatelen │ │ │ │   │ │ │ │ │ │ │ │ CS_INT status │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00830.html │ │ │ │ @@ -115,15 +115,15 @@ │ │ │ │ CS_CHAR text [CS_MAX_MSG] │ │ │ │   │ │ │ │ │ │ │ │ CS_INT textlen │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00834.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ short cs_expose_formats │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00838.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ CS_CLIENTMSGclientmsg │ │ │ │   │ │ │ │ │ │ │ │ struct cs_diag_msg_clientnext │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00842.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ struct cs_diag_msg_svrnext │ │ │ │   │ │ │ │ │ │ │ │ CS_SERVERMSGservermsg │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00846.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ CS_CLIENTMSGmsg │ │ │ │   │ │ │ │ │ │ │ │ struct cs_diag_msgnext │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00850.html │ │ │ │ @@ -137,15 +137,15 @@ │ │ │ │ void * userdata │ │ │ │   │ │ │ │ │ │ │ │ int userdata_len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00854.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ TDS_SMALLINT * indicator │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00858.html │ │ │ │ @@ -117,15 +117,15 @@ │ │ │ │ void * userdata │ │ │ │   │ │ │ │ │ │ │ │ int userdata_len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00862.html │ │ │ │ @@ -120,15 +120,15 @@ │ │ │ │ int status │ │ │ │   │ │ │ │ │ │ │ │ CS_BYTE * value │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00866.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ CS_SMALLINT options │ │ │ │   │ │ │ │ │ │ │ │ CSREMOTE_PROC_PARAMparam_list │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00870.html │ │ │ │ @@ -92,19 +92,19 @@ │ │ │ │ │ │ │ │ CS_DYNAMIC_PARAMparam_list │ │ │ │   │ │ │ │ │ │ │ │ char * stmt │ │ │ │   │ │ │ │ │ │ │ │ -TDSDYNAMICtdsdyn │ │ │ │ +TDSDYNAMICtdsdyn │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00874.html │ │ │ │ @@ -101,15 +101,15 @@ │ │ │ │ │ │ │ │ CS_CONNECTIONcon │ │ │ │   │ │ │ │ │ │ │ │ int curr_result_type │ │ │ │   │ │ │ │ │ │ │ │ -TDSCURSORcursor │ │ │ │ +TDSCURSORcursor │ │ │ │   │ │ │ │ │ │ │ │ CS_INT cursor_state │ │ │ │   │ │ │ │ │ │ │ │ CS_DYNAMICdyn │ │ │ │   │ │ │ │ @@ -150,15 +150,15 @@ │ │ │ │ void * userdata │ │ │ │   │ │ │ │ │ │ │ │ int userdata_len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00878.html │ │ │ │ @@ -84,15 +84,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ TDSBCPINFO bcpinfo │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00882.html │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ char * language │ │ │ │   │ │ │ │ │ │ │ │ char * time │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/ctlib.h
  • │ │ │ │ +
  • include/ctlib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00886.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ bool network_auth │ │ │ │   │ │ │ │ │ │ │ │ TDSLOGINtds_login │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00890.html │ │ │ │ @@ -99,15 +99,15 @@ │ │ │ │ struct dblib_buffer_rowrows │ │ │ │   │ │ │ │ │ │ │ │ int tail │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00894.html │ │ │ │ @@ -100,15 +100,15 @@ │ │ │ │ int term_len │ │ │ │   │ │ │ │ │ │ │ │ BYTE * terminator │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00898.html │ │ │ │ @@ -108,15 +108,15 @@ │ │ │ │ TDS_INT lastrow │ │ │ │   │ │ │ │ │ │ │ │ TDS_INT maxerrs │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00902.html │ │ │ │ @@ -102,15 +102,15 @@ │ │ │ │ TDS_SERVER_TYPE type │ │ │ │   │ │ │ │ │ │ │ │ BYTE * value │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00906.html │ │ │ │ @@ -93,15 +93,15 @@ │ │ │ │ DBSMALLINT options │ │ │ │   │ │ │ │ │ │ │ │ DBREMOTE_PROC_PARAMparam_list │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00910.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ DBSTRINGparam │ │ │ │   │ │ │ │ │ │ │ │ const char * text │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00914.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ const BYTE * bindval │ │ │ │   │ │ │ │ │ │ │ │ size_t len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00918.html │ │ │ │ @@ -170,15 +170,15 @@ │ │ │ │ DBTYPEINFO typeinfo │ │ │ │   │ │ │ │ │ │ │ │ BYTE * user_data │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/dblib.h
  • │ │ │ │ +
  • include/dblib.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00922.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ uint32_t ui │ │ │ │   │ │ │ │ │ │ │ │ uint16_t usi │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this union was generated from the following file:
    │ │ │ │ -
  • include/freetds/bytes.h
  • │ │ │ │ +
  • include/freetds/bytes.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00926.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ short int alias_pos │ │ │ │   │ │ │ │ │ │ │ │ short int canonic │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00930.html │ │ │ │ @@ -1198,15 +1198,15 @@ │ │ │ │ char stringpool_str94 [sizeof("iso84")] │ │ │ │   │ │ │ │ │ │ │ │ char stringpool_str95 [sizeof("ISO8859-6")] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00934.html │ │ │ │ @@ -161,15 +161,15 @@ │ │ │ │ TDS_UINT ui │ │ │ │   │ │ │ │ │ │ │ │ TDS_USMALLINT usi │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this union was generated from the following file:
    │ │ │ │ -
  • include/freetds/convert.h
  • │ │ │ │ +
  • include/freetds/convert.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00938.html │ │ │ │ @@ -86,15 +86,15 @@ │ │ │ │ TDS_CHAR * c │ │ │ │   │ │ │ │ │ │ │ │ TDS_UINT len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/convert.h
  • │ │ │ │ +
  • include/freetds/convert.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00942.html │ │ │ │ @@ -86,15 +86,15 @@ │ │ │ │ TDS_CHAR * ib │ │ │ │   │ │ │ │ │ │ │ │ TDS_UINT len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/convert.h
  • │ │ │ │ +
  • include/freetds/convert.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00946.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ const char * alias │ │ │ │   │ │ │ │ │ │ │ │ int canonic │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/iconv.h
  • │ │ │ │ +
  • include/freetds/iconv.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00950.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ unsigned int eilseq:1 │ │ │ │   │ │ │ │ │ │ │ │ unsigned int einval:1 │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/iconv.h
  • │ │ │ │ +
  • include/freetds/iconv.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00954.html │ │ │ │ @@ -83,19 +83,19 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDS_ENCODING  │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ iconv_t cd
 
│ │ │ │ -TDS_ENCODING charset
charset
 
│ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/iconv.h
  • │ │ │ │ +
  • include/freetds/iconv.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00958.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ struct tdsiconvdir to from │ │ │ │   │ │ │ │ │ │ │ │ TDS_ERRNO_MESSAGE_FLAGS suppress │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/iconv.h
  • │ │ │ │ +
  • include/freetds/iconv.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00962.html │ │ │ │ @@ -100,15 +100,15 @@ │ │ │ │ char state2 [6] │ │ │ │   │ │ │ │ │ │ │ │ char state3 [6] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00966.html │ │ │ │ @@ -93,15 +93,15 @@ │ │ │ │ int num_errors │ │ │ │   │ │ │ │ │ │ │ │ char ranked │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00970.html │ │ │ │ @@ -97,15 +97,15 @@ │ │ │ │ SQLSMALLINT sql_desc_count │ │ │ │   │ │ │ │ │ │ │ │ SQLULEN * sql_desc_rows_processed_ptr │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00974.html │ │ │ │ @@ -183,15 +183,15 @@ │ │ │ │ SQLSMALLINT sql_desc_unsigned │ │ │ │   │ │ │ │ │ │ │ │ SQLSMALLINT sql_desc_updatable │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00978.html │ │ │ │ @@ -102,15 +102,15 @@ │ │ │ │ struct _drecordrecords │ │ │ │   │ │ │ │ │ │ │ │ int type │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00982.html │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ SQLINTEGER odbc_version │ │ │ │   │ │ │ │ │ │ │ │ SQLINTEGER output_nts │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00986.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ SQLSMALLINT htype │ │ │ │   │ │ │ │ │ │ │ │ tds_mutex mtx │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00990.html │ │ │ │ @@ -96,15 +96,15 @@ │ │ │ │ tds_mutex mtx │ │ │ │   │ │ │ │ │ │ │ │ TDSCONTEXTtds_ctx │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00994.html │ │ │ │ @@ -135,15 +135,15 @@ │ │ │ │ SQLUINTEGER translate_option │ │ │ │   │ │ │ │ │ │ │ │ SQLUINTEGER txn_isolation │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a00998.html │ │ │ │ @@ -150,15 +150,15 @@ │ │ │ │ │ │ │ │

Statement executing.

│ │ │ │

This should be set AFTER sending query to avoid race condition and assure to not overwrite it if another statement is executing a query.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01002.html │ │ │ │ @@ -141,15 +141,15 @@ │ │ │ │ SQLUINTEGER simulate_cursor │ │ │ │   │ │ │ │ │ │ │ │ SQLUINTEGER use_bookmarks │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01006.html │ │ │ │ @@ -92,24 +92,24 @@ │ │ │ │ │ │ │ │ struct _hsattr attr │ │ │ │   │ │ │ │ │ │ │ │ unsigned int curr_param_row │ │ │ │   │ │ │ │ │ │ │ │ -TDSCURSORcursor │ │ │ │ +TDSCURSORcursor │ │ │ │   │ │ │ │ │ │ │ │ DSTR cursor_name │ │ │ │   │ │ │ │ │ │ │ │ struct _hdbcdbc │ │ │ │   │ │ │ │ │ │ │ │ -TDSDYNAMICdyn │ │ │ │ +TDSDYNAMICdyn │ │ │ │   │ │ │ │ │ │ │ │ struct _sql_errors errs │ │ │ │   │ │ │ │ │ │ │ │ SQLSMALLINT htype │ │ │ │   │ │ │ │ @@ -211,15 +211,15 @@ │ │ │ │ │ │ │ │

Prepared statement needs to be prepared again.

│ │ │ │

This can happen if the parameters was changed or not specified.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01010.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ TDSCOLUMNFUNCS common │ │ │ │   │ │ │ │ │ │ │ │ void(* set_type_info )(TDSCOLUMN *col, struct _drecord *drec, SQLINTEGER odbc_ver) │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01014.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ size_t len │ │ │ │   │ │ │ │ │ │ │ │ const char * p │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/odbc.h
  • │ │ │ │ +
  • include/freetds/odbc.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01018.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ unsigned char precision │ │ │ │   │ │ │ │ │ │ │ │ unsigned char scale │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01022.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ TDS_INT mnyhigh │ │ │ │   │ │ │ │ │ │ │ │ TDS_UINT mnylow │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01026.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ TDS_INT8 mny │ │ │ │   │ │ │ │ │ │ │ │ TDS_OLD_MONEY tdsoldmoney │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this union was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01030.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ TDS_INT mny4 │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01034.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ TDS_INT dtdays │ │ │ │   │ │ │ │ │ │ │ │ TDS_INT dttime │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01038.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ TDS_USMALLINT days │ │ │ │   │ │ │ │ │ │ │ │ TDS_USMALLINT minutes │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01042.html │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ TDS_USMALLINT Data3 │ │ │ │   │ │ │ │ │ │ │ │ TDS_UCHAR Data4 [8] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01046.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
TDS71_COLLATION Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

TDS 7.1 collation informations. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <proto.h>

│ │ │ │ +

#include <proto.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_UCHAR charset_id
 
│ │ │ │ @@ -92,15 +92,15 @@ │ │ │ │
│ │ │ │ TDS_USMALLINT locale_id
 
│ │ │ │

Detailed Description

│ │ │ │

TDS 7.1 collation informations.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01050.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
TDS72_SMP_HEADER Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

TDS 7.2 SMP packet header. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <proto.h>

│ │ │ │ +

#include <proto.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_UINT seq
 
│ │ │ │ @@ -101,15 +101,15 @@ │ │ │ │
│ │ │ │ TDS_UINT wnd
 
│ │ │ │

Detailed Description

│ │ │ │

TDS 7.2 SMP packet header.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/proto.h
  • │ │ │ │ +
  • include/freetds/proto.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01054.html │ │ │ │ @@ -105,15 +105,15 @@ │ │ │ │ int ai_protocol │ │ │ │   │ │ │ │ │ │ │ │ int ai_socktype │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file: │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01062.html │ │ │ │ @@ -75,27 +75,27 @@ │ │ │ │
tds_input_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

define a stream of data used for input │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ int(* read )(struct tds_input_stream *stream, void *ptr, size_t len)
 read some data Return 0 if end of stream Return <0 if error (actually not defined)
 
│ │ │ │

Detailed Description

│ │ │ │

define a stream of data used for input

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01066.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_output_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

define a stream of data used for output │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -111,15 +111,15 @@ │ │ │ │ │ │ │ │

write buffer.

│ │ │ │

client will write data into this buffer. not required that buffer is the result of any alloc function so buffer pointer can point in the middle of another buffer. client will write up to buf_len. client should not cache buffer and buf_len before a call to write as write can change these values.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01070.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_datain_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

input stream to read data from tds protocol │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_datain_stream:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ size_t buf_len
 
char * buffer
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -98,15 +98,15 @@ │ │ │ │ size_t 

wire_size
 bytes still to read
 
│ │ │ │

Detailed Description

│ │ │ │

input stream to read data from tds protocol

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01074.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_dataout_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

output stream to write data to tds protocol │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_dataout_stream:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -97,15 +97,15 @@ │ │ │ │

│ │ │ │ size_t written
 
│ │ │ │

Detailed Description

│ │ │ │

output stream to write data to tds protocol

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01078.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_staticin_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

input stream to read data from a static buffer │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_staticin_stream:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -97,15 +97,15 @@ │ │ │ │

│ │ │ │ TDSINSTREAM stream
 
│ │ │ │

Detailed Description

│ │ │ │

input stream to read data from a static buffer

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01082.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_staticout_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

output stream to write data to a static buffer. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_staticout_stream:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -92,15 +92,15 @@ │ │ │ │ TDSOUTSTREAM 

stream
 
│ │ │ │

Detailed Description

│ │ │ │

output stream to write data to a static buffer.

│ │ │ │

stream.buffer contains the pointer where stream will write to.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01086.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_dynamic_stream Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

output stream to write data to a dynamic buffer │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <stream.h>

│ │ │ │ +

#include <stream.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_dynamic_stream:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -103,15 +103,15 @@ │ │ │ │

│ │ │ │ TDSOUTSTREAM stream
 
│ │ │ │

Detailed Description

│ │ │ │

output stream to write data to a dynamic buffer

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/stream.h
  • │ │ │ │ +
  • include/freetds/stream.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01090.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_compiletime_settings Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

A structure to hold all the compile-time settings. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ const char * freetds_version
 
│ │ │ │ @@ -129,15 +129,15 @@ │ │ │ │ bool unixodbc
 
│ │ │ │

Detailed Description

│ │ │ │

A structure to hold all the compile-time settings.

│ │ │ │

This structure is returned by tds_get_compiletime_settings

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01094.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
TDS_DATETIMEALL Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_USMALLINT _tds_reserved:10
 
│ │ │ │ @@ -110,15 +110,15 @@ │ │ │ │
│ │ │ │ TDS_USMALLINT time_prec:3
 
│ │ │ │

Detailed Description

│ │ │ │

this structure is not directed connected to a TDS protocol but keeps any DATE/TIME information.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01098.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tdsdaterec Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Used by tds_datecrack. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -127,15 +127,15 @@ │ │ │ │ TDS_INT  │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_INT day
 day of month (1-31)
 
year
 year
 
│ │ │ │

Detailed Description

│ │ │ │

Used by tds_datecrack.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01102.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ TDS_INT i │ │ │ │   │ │ │ │ │ │ │ │ TDS_TINYINT ti │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this union was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01106.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ void * p │ │ │ │   │ │ │ │ │ │ │ │ int64_t ui │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this union was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01110.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ unsigned char type │ │ │ │   │ │ │ │ │ │ │ │ unsigned char values [TDS_MAX_CAPABILITY/2-2] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01114.html │ │ │ │ @@ -84,15 +84,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ TDS_CAPABILITY_TYPE types [2] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01118.html │ │ │ │ @@ -256,15 +256,15 @@ │ │ │ │ │ │ │ │

charset of server e.g.

│ │ │ │

iso_1

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01122.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ const char * qn_options │ │ │ │   │ │ │ │ │ │ │ │ TDS_INT qn_timeout │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01126.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ char * language │ │ │ │   │ │ │ │ │ │ │ │ char * server_charset │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01130.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_blob Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Information about blobs (e.g. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_CHAR textptr [16]
 
│ │ │ │ @@ -96,15 +96,15 @@ │ │ │ │ unsigned char valid_ptr
 
│ │ │ │

Detailed Description

│ │ │ │

Information about blobs (e.g.

│ │ │ │

text or image). current_row contains this structure.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01134.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_variant Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Store variant informations. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_UCHAR collation [5]
 
│ │ │ │ @@ -98,15 +98,15 @@ │ │ │ │
│ │ │ │ TDS_SERVER_TYPE type
 
│ │ │ │

Detailed Description

│ │ │ │

Store variant informations.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01138.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_encoding Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Information relevant to libiconv. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -98,15 +98,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ unsigned char canonic
 internal numeric index into array of all encodings
 
 name of the encoding (ie UTF-8)
 
│ │ │ │

Detailed Description

│ │ │ │

Information relevant to libiconv.

│ │ │ │

The name is an iconv name, not the same as found in master..syslanguages.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01142.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ TDS_INT datalen │ │ │ │   │ │ │ │ │ │ │ │ bool is_null │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01146.html │ │ │ │ @@ -139,15 +139,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01150.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_column Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Metadata about columns in regular and compute rows. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_column:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -297,15 +297,15 @@ │ │ │ │

This type can be different from wire type because conversion (e.g.

│ │ │ │

type of data, saved from wire

│ │ │ │

UCS-2->Ascii) can be applied. I'm beginning to wonder about the wisdom of this, however. April 2003 jkl

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01158.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_result_info Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Hold information for any results. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_result_info:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -124,15 +124,15 @@ │ │ │ │

│ │ │ │ bool rows_exist
 
│ │ │ │

Detailed Description

│ │ │ │

Hold information for any results.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01162.html │ │ │ │ @@ -106,15 +106,15 @@ │ │ │ │ TDS_CHAR * 

sql_state
 
│ │ │ │ TDS_SMALLINT state
 
│ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01166.html │ │ │ │ @@ -90,15 +90,15 @@ │ │ │ │ char * columnname │ │ │ │   │ │ │ │ │ │ │ │ struct tds_upd_colnext │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01170.html │ │ │ │ @@ -94,15 +94,15 @@ │ │ │ │ TDS_CURSOR_STATE fetch │ │ │ │   │ │ │ │ │ │ │ │ TDS_CURSOR_STATE open │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01174.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_cursor Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Holds informations about a cursor. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_cursor:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRESULTINFO *  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -154,15 +154,15 @@ │ │ │ │ │ │ │ │

< number of updatable columns

│ │ │ │

< updatable column list number of cursor rows to fetch

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01178.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_env Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Current environment as reported by the server. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │

│ │ │ │ @@ -119,15 +119,15 @@ │ │ │ │

 SQL query.
 
│ │ │ │ TDS_INT ref_count
 reference counter so client can retain safely a pointer
 
│ │ │ │ -TDSRESULTINFOres_info
res_info
 
│ │ │ │ TDS_USMALLINT srv_status
 
│ │ │ │ TDS_CURSOR_STATUS status
 cursor parameter
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -98,15 +98,15 @@ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ int block_size
 packet size (512-65535)
 
│ │ │ │ char * language
 
│ │ │ │

Detailed Description

│ │ │ │

Current environment as reported by the server.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01182.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_dynamic Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Holds information for a dynamic (also called prepared) query. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_dynamic:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -173,15 +173,15 @@ │ │ │ │ │ │ │ │

query parameters.

│ │ │ │

Mostly used executing query however is a good idea to prepare query again if parameter type change in an incompatible way (ie different types or larger size). Is also better to prepare a query knowing parameter types earlier.

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01186.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ unsigned int 

flags
 
│ │ │ │ TDS_MULTIPLE_TYPE type
 
│ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01190.html │ │ │ │ @@ -99,15 +99,15 @@ │ │ │ │ int(* msg_handler )(const TDSCONTEXT *, TDSSOCKET *, TDSMESSAGE *) │ │ │ │   │ │ │ │ │ │ │ │ void * parent │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01194.html │ │ │ │ @@ -91,15 +91,15 @@ │ │ │ │ uint8_t * packet │ │ │ │   │ │ │ │ │ │ │ │ int packet_len │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01198.html │ │ │ │ @@ -97,15 +97,15 @@ │ │ │ │ struct tds_packetnext │ │ │ │   │ │ │ │ │ │ │ │ uint16_t sid │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01202.html │ │ │ │ @@ -82,15 +82,15 @@ │ │ │ │ TDS_SYS_SOCKET s_signal │ │ │ │   │ │ │ │ │ │ │ │ TDS_SYS_SOCKET s_signaled │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01206.html │ │ │ │ @@ -98,26 +98,26 @@ │ │ │ │ │ │ │ │ int client_spid │ │ │ │   │ │ │ │ │ │ │ │ TDS_UCHAR collation [5] │ │ │ │   │ │ │ │ │ │ │ │ -TDSCURSORcursors │ │ │ │ +TDSCURSORcursors │ │ │ │  linked list of cursors allocated for this connection contains only cursors allocated on the server
│ │ │ │   │ │ │ │ │ │ │ │ -TDSDYNAMICdyns │ │ │ │ +TDSDYNAMICdyns │ │ │ │  list of dynamic allocated for this connection contains only dynamic allocated on the server
│ │ │ │   │ │ │ │ │ │ │ │ unsigned int encrypt_single_packet:1 │ │ │ │   │ │ │ │ │ │ │ │ -TDSENV env │ │ │ │ +TDSENV env │ │ │ │  environment is shared between all sessions
│ │ │ │   │ │ │ │ │ │ │ │ tds_mutex list_mtx │ │ │ │   │ │ │ │ │ │ │ │ unsigned num_cached_packets │ │ │ │ @@ -168,15 +168,15 @@ │ │ │ │ unsigned int use_iconv:1 │ │ │ │   │ │ │ │ │ │ │ │ TDSPOLLWAKEUP wakeup │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01210.html │ │ │ │ @@ -75,15 +75,15 @@ │ │ │ │
tds_socket Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Information for a server connection. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <tds.h>

│ │ │ │ +

#include <tds.h>

│ │ │ │
│ │ │ │ Collaboration diagram for tds_socket:
│ │ │ │
│ │ │ │
│ │ │ │
[legend]
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSCURSOR *  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSDYNAMIC *  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -180,30 +180,30 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRESULTINFO *  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDS_STATE  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ @@ -95,25 +95,25 @@ │ │ │ │

│ │ │ │ TDSCOMPUTEINFO ** comp_info
 
│ │ │ │ TDSCONNECTION conn [1]
 
│ │ │ │ -TDSCURSORcur_cursor
cur_cursor
 cursor in use
 
│ │ │ │ -TDSDYNAMICcur_dyn
cur_dyn
 dynamic structure in use
 
│ │ │ │ TDS_OPERATION current_op
 
TDSRESULTINFOcurrent_results
TDSRESULTINFOcurrent_results
 Current query information.
 
│ │ │ │ void(* env_chg_func )(TDSSOCKET *tds, int type, char *oldval, char *newval)
 
│ │ │ │ unsigned frozen
│ │ │ │ TDS_INT query_timeout
 
│ │ │ │ TDSPACKETrecv_packet
 
│ │ │ │ -TDSRESULTINFOres_info
res_info
 
│ │ │ │ TDS_INT ret_status
 return status from store procedure
 
│ │ │ │ TDS_INT8 rows_affected
 rows updated/deleted/inserted/selected, TDS_NO_COUNT if not valid
 
│ │ │ │ TDSPACKETsend_packet
 packet we are preparing to send
 
│ │ │ │ -TDS_STATE state
state
 
│ │ │ │ tds_mutex wire_mtx
 
│ │ │ │

Detailed Description

│ │ │ │

Information for a server connection.

│ │ │ │ @@ -211,15 +211,15 @@ │ │ │ │ │ │ │ │

◆ current_results

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
TDSRESULTINFO* tds_socket::current_resultsTDSRESULTINFO* tds_socket::current_results
│ │ │ │
│ │ │ │ │ │ │ │

Current query information.

│ │ │ │

Contains information in process, both normal and compute results. This pointer shouldn't be freed; it's just an alias to another structure.

│ │ │ │ │ │ │ │ @@ -307,15 +307,15 @@ │ │ │ │ │ │ │ │

Maximum size of packet pointed by out_buf.

│ │ │ │

The buffer is actually a bit larger to make possible to do some optimizations (at least TDS_ADDITIONAL_SPACE bytes).

│ │ │ │ │ │ │ │
│ │ │ │
│ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01214.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ struct tdsdump_off_itemnext │ │ │ │   │ │ │ │ │ │ │ │ tds_thread_id thread_id │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01218.html │ │ │ │ @@ -97,15 +97,15 @@ │ │ │ │   │ │ │ │ │ │ │ │ TDSSOCKETtds │ │ │ │  which socket we refer to
│ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01222.html │ │ │ │ @@ -83,15 +83,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRESULTINFO *  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -108,15 +108,15 @@ │ │ │ │ DSTR  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ TDS_INT bind_count
 
│ │ │ │ -TDSRESULTINFObindinfo
bindinfo
 
│ │ │ │ TDS_INT direction
 
│ │ │ │ const char * hint
 
tablename
 
│ │ │ │ TDS_INT xfer_init
 
│ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/tds.h
  • │ │ │ │ +
  • include/freetds/tds.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01226.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ char dummy [0] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/thread.h
  • │ │ │ │ +
  • include/freetds/thread.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01230.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ char dummy [0] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/thread.h
  • │ │ │ │ +
  • include/freetds/thread.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01234.html │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ char dummy [0] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/thread.h
  • │ │ │ │ +
  • include/freetds/thread.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01238.html │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ uint8_t kn [16][8] │ │ │ │   │ │ │ │ │ │ │ │ uint32_t sp [8][64] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/utils/des.h
  • │ │ │ │ +
  • include/freetds/utils/des.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01242.html │ │ │ │ @@ -87,15 +87,15 @@ │ │ │ │ struct dlist_ringnext │ │ │ │   │ │ │ │ │ │ │ │ struct dlist_ringprev │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/utils/dlist.h
  • │ │ │ │ +
  • include/freetds/utils/dlist.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01246.html │ │ │ │ @@ -84,15 +84,15 @@ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ │ │ │ │ dlist_ring ring │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/utils/dlist.tmpl.h
  • │ │ │ │ +
  • include/freetds/utils/dlist.tmpl.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01250.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ uint64_t bytes │ │ │ │   │ │ │ │ │ │ │ │ uint32_t in [16] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/utils/md4.h
  • │ │ │ │ +
  • include/freetds/utils/md4.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01254.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │ uint64_t bytes │ │ │ │   │ │ │ │ │ │ │ │ uint32_t in [16] │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/utils/md5.h
  • │ │ │ │ +
  • include/freetds/utils/md5.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01258.html │ │ │ │ @@ -75,30 +75,30 @@ │ │ │ │
tds_dstr Struct Reference
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │

Structure to hold a string. │ │ │ │ More...

│ │ │ │ │ │ │ │ -

#include <string.h>

│ │ │ │ +

#include <string.h>

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ Public Attributes

│ │ │ │ char dstr_s [1]
 
│ │ │ │ size_t dstr_size
 
│ │ │ │

Detailed Description

│ │ │ │

Structure to hold a string.

│ │ │ │

Use tds_dstr_* functions/macros, do not access members directly. There should be always a buffer.

│ │ │ │

The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/freetds/utils/string.h
  • │ │ │ │ +
  • include/freetds/utils/string.h
  • │ │ │ │
│ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01262.html │ │ │ │ @@ -88,15 +88,15 @@ │ │ │ │ SQLUSMALLINT minute │ │ │ │   │ │ │ │ │ │ │ │ SQLUSMALLINT second │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/odbcss.h
  • │ │ │ │ +
  • include/odbcss.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01266.html │ │ │ │ @@ -103,15 +103,15 @@ │ │ │ │ SQLSMALLINT timezone_minute │ │ │ │   │ │ │ │ │ │ │ │ SQLSMALLINT year │ │ │ │   │ │ │ │ │ │ │ │
The documentation for this struct was generated from the following file:
    │ │ │ │ -
  • include/odbcss.h
  • │ │ │ │ +
  • include/odbcss.h
  • │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/a01331.html │ │ │ │ @@ -76,40 +76,40 @@ │ │ │ │ Introduction │ │ │ │

Adding a new type in FreeTDS is a quite complicated task involving different tasks.

│ │ │ │

To see an example you can look at commit id adb893f1381fd3ea40564c775e30dc8cdc81dcf2 ("Implement big(date)time types") and parent changes in the source repository.

│ │ │ │

│ │ │ │ libTDS changes

│ │ │ │
    │ │ │ │
  • │ │ │ │ -

    protocol. First thing to do is add the type to the protocol. A type usually have some mnemonic constant and a structure. Declare them in include/freetds/proto.h file. Note that here you should declare the structure the server use not the structure to hold the data in libTDS.
    │ │ │ │ +

    protocol. First thing to do is add the type to the protocol. A type usually have some mnemonic constant and a structure. Declare them in include/freetds/proto.h file. Note that here you should declare the structure the server use not the structure to hold the data in libTDS.
    │ │ │ │ Cfr commit id a74a06e1f97f3137f6cf1bc7319dd7a2cfb52b1f.

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │

    base information. Add the type to misc/types.csv file (I use LibreOffice Calc to do it). This table maintain the base information for a type.
    │ │ │ │ Cfr commit id 680cb3371e042bb372cbc5e6feb4054e50d40c1a.

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │ -

    data. There should be some code to handle this type to/from the server. This code is implemented in include/freetds/data.h and src/tds/data.c. You can either add a new set of functions to handle this new type or add the type handling do another set of types depending on how complicated is that type. One thing you have to to at this step is determine how you store that type in libTDS. This is quite important at upper level libraries will have to use these structures or even present these data to client code (like DB-Library usually do). Due to the way FreeTDS works now you would get a linker error in the ODBC part. You can either ignore the error and proceed with libTDS, add the code to ODBC or disable temporarily ODBC.
    │ │ │ │ +

    data. There should be some code to handle this type to/from the server. This code is implemented in include/freetds/data.h and src/tds/data.c. You can either add a new set of functions to handle this new type or add the type handling do another set of types depending on how complicated is that type. One thing you have to to at this step is determine how you store that type in libTDS. This is quite important at upper level libraries will have to use these structures or even present these data to client code (like DB-Library usually do). Due to the way FreeTDS works now you would get a linker error in the ODBC part. You can either ignore the error and proceed with libTDS, add the code to ODBC or disable temporarily ODBC.
    │ │ │ │ Cfr commit id 680cb3371e042bb372cbc5e6feb4054e50d40c1a.

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │

    enable the type from server. In order to receive the new type from the server you have to tell the server that we support that type. This can be either done changing the protocol (usually Microsoft) or enabling some flags (capabilities for Sybase).
    │ │ │ │ Cfr commit id a498703ff9e309c656b19dd990f4cad0283a47c7.

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │ -

    conversions. Conversions are not hard to write but usually require quite a bit of coding. After extending CONV_RESULT type in include/freetds/convert.h and adding the type to the script that generate the conversion tables in src/tds/tds_willconvert.pl you have to write the big part in src/tds/covnert.c. You have to implement all kind of conversions you declared in the previous file. Reuse the functions that are there (for instance there are some parser functions). Also if there are similar types it could be helpful to convert first your type to a super type then use the conversion for that type. For instance for SMALLINT type (tds_convert_int2) the type is just readed and then tds_convert_int is called which handle any int (actually 32 bit integer). Same for data where the TDS_DATETIMEALL structure is used. Note that conversions to binary (which usually are implemented) are done in another function (tds_convert_to_binary).
    │ │ │ │ +

    conversions. Conversions are not hard to write but usually require quite a bit of coding. After extending CONV_RESULT type in include/freetds/convert.h and adding the type to the script that generate the conversion tables in src/tds/tds_willconvert.pl you have to write the big part in src/tds/covnert.c. You have to implement all kind of conversions you declared in the previous file. Reuse the functions that are there (for instance there are some parser functions). Also if there are similar types it could be helpful to convert first your type to a super type then use the conversion for that type. For instance for SMALLINT type (tds_convert_int2) the type is just readed and then tds_convert_int is called which handle any int (actually 32 bit integer). Same for data where the TDS_DATETIMEALL structure is used. Note that conversions to binary (which usually are implemented) are done in another function (tds_convert_to_binary).
    │ │ │ │ Cfr commit id 9ed52cb78f725607ac109c8c284ca7c4658d87a9.

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │ -

    string definition. Add string for your type to src/tds/token.c in tds_prtype.
    │ │ │ │ +

    string definition. Add string for your type to src/tds/token.c in tds_prtype.
    │ │ │ │ Cfr commit id ac0d3b46db7d98436cd76f906b7d455f7651faae.

    │ │ │ │

    │ │ │ │
  • │ │ │ │
  • │ │ │ │

    conversion tests. You probably will have done some mistake with conversions but don't mind, there are some tests which will help sorting this out. src/tds/unittests/convert.c try any possible combination of conversion to check if all conversion are implemented (it does not check the conversions themself). src/tds/unittests/t0007.c test that your conversion are working. Just add manually the conversions you want to try.
    │ │ │ │ Cfr commit id abcc09c9a88acd0e9a45b46dab3ca44309917a02.

    │ │ │ │

    │ │ │ │ @@ -157,28 +157,28 @@ │ │ │ │ conversion test. You probably want to test ODBC conversions. This can be done changing src/odbc/unittests/data.c test and src/odbc/unittests/genparams.c.
    │ │ │ │ Cfr commit id e69f7d564dac44884f7c5f0106cceafce4af168b.
  • │ │ │ │
│ │ │ │

│ │ │ │ CT-Library changes

│ │ │ │

This is quite easy as usual the conversion in libTDS are fine for this library.

    │ │ │ │
  • │ │ │ │ -define type in include/cspublic.h
  • │ │ │ │ +define type in include/cspublic.h │ │ │ │
  • │ │ │ │ implement conversion in src/ctlib/cs.h
  • │ │ │ │
  • │ │ │ │ set corrent conversion from cs types to server in src/ctlib/ct.c
  • │ │ │ │
│ │ │ │

Cfr commit id c5e71e5ad4a557038ecedcec457e2531ab02a77b.

│ │ │ │

│ │ │ │ DB-Library changes

│ │ │ │

A bit more complicated than CT-Library but not that much.

    │ │ │ │
  • │ │ │ │ add type and binding type to include/sybdb.h
  • │ │ │ │
  • │ │ │ │ -add NULL handling in dbgetnull, dbsetnull and default_null_representation in src/dblib/dblib.c
  • │ │ │ │ +add NULL handling in dbgetnull, dbsetnull and default_null_representation in src/dblib/dblib.c │ │ │ │
  • │ │ │ │ add binding to dbbindtype
  • │ │ │ │
  • │ │ │ │ add support for conversion from/to server
  • │ │ │ │
  • │ │ │ │ add printable size
  • │ │ │ │
  • │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_0.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,18 +1,18 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['_5fbcp_5fconvert_5fin_0', ['_bcp_convert_in', ['../a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85', 1, 'bcp.c']]], │ │ │ │ │ - ['_5fbcp_5fconvert_5fout_1', ['_bcp_convert_out', ['../a01353.html#a230fa5b56ae4e3509a69bd266495732b', 1, 'bcp.c']]], │ │ │ │ │ + ['_5fbcp_5fconvert_5fin_0', ['_bcp_convert_in', ['../a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85', 1, 'bcp.c']]], │ │ │ │ │ + ['_5fbcp_5fconvert_5fout_1', ['_bcp_convert_out', ['../a01344.html#a230fa5b56ae4e3509a69bd266495732b', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fexec_5fin_2', ['_bcp_exec_in', ['../a00530.html#ga7370f1223f13510d6b33e98f2de09fb5', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fexec_5fout_3', ['_bcp_exec_out', ['../a00530.html#gae67546338cb9542a4902aa914f57f314', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5ffgets_4', ['_bcp_fgets', ['../a00530.html#gab672799007e720bf918caa1b33c989ea', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5ffree_5fcolumns_5', ['_bcp_free_columns', ['../a00530.html#gacf69ac4cbe8e3c3e6ea665e31e5e85b8', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5ffree_5fstorage_6', ['_bcp_free_storage', ['../a00530.html#gaa134c1c3ccc4326e693adb8357272f1d', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fget_5fcol_5fdata_7', ['_bcp_get_col_data', ['../a00530.html#ga0f8def4cad04c5c1e27c2b653d482dd8', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fget_5fterm_5fvar_8', ['_bcp_get_term_var', ['../a00530.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7', 1, 'bcp.c']]], │ │ │ │ │ - ['_5fbcp_5fno_5fget_5fcol_5fdata_9', ['_bcp_no_get_col_data', ['../a01353.html#ad53f508d8f2177a898f8022736834afd', 1, 'bcp.c']]], │ │ │ │ │ + ['_5fbcp_5fno_5fget_5fcol_5fdata_9', ['_bcp_no_get_col_data', ['../a01344.html#ad53f508d8f2177a898f8022736834afd', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fread_5fhostfile_10', ['_bcp_read_hostfile', ['../a00530.html#ga1b57d952a9d72f375c3296124affa908', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5freadfmt_5fcolinfo_11', ['_bcp_readfmt_colinfo', ['../a00530.html#gafc23d62bc86b38fb757e3ac4aadca0a4', 1, 'bcp.c']]], │ │ │ │ │ ['_5fcharacter_5fset_5falias_12', ['_character_set_alias', ['../a00946.html', 1, '']]], │ │ │ │ │ ['_5fcs_5fblkdesc_13', ['_cs_blkdesc', ['../a00878.html', 1, '']]], │ │ │ │ │ ['_5fcs_5fclientmsg_14', ['_cs_clientmsg', ['../a00826.html', 1, '']]], │ │ │ │ │ ['_5fcs_5fcommand_15', ['_cs_command', ['../a00874.html', 1, '']]], │ │ │ │ │ ['_5fcs_5fconfig_16', ['_cs_config', ['../a00834.html', 1, '']]], │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_10.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['read_0', ['read', ['../a01062.html#a2f0be7677a1bf9c730e3c697bfba21c9', 1, 'tds_input_stream']]], │ │ │ │ │ - ['read_2ec_1', ['read.c', ['../a00035.html', 1, '']]], │ │ │ │ │ + ['read_2ec_1', ['read.c', ['../a00287.html', 1, '']]], │ │ │ │ │ ['read_5fand_5fconvert_2', ['read_and_convert', ['../a00543.html#ga676c4dee6522815b16fdc8e448e43590', 1, 'read.c']]], │ │ │ │ │ ['ref_5fcount_3', ['ref_count', ['../a00594.html#a812580afdfca53b6d54a7d09938c65c2', 1, 'dblib_context::ref_count'], │ │ │ │ │ ['../a01174.html#a692ccceff71d836df0d084ec26123c2d', 1, 'tds_cursor::ref_count'], │ │ │ │ │ ['../a01182.html#a2798c66fb3c8637c7fb29c6d1efebfa4', 1, 'tds_dynamic::ref_count'] │ │ │ │ │ ]], │ │ │ │ │ ['remote_20procedure_20functions_4', ['Remote Procedure functions', ['../a00528.html', 1, '']]], │ │ │ │ │ ['res_5finfo_5', ['res_info', ['../a01182.html#ac736e163c0d4cdbca980a861214d99e7', 1, 'tds_dynamic']]], │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_11.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -14,15 +14,15 @@ │ │ │ │ │ ['size_5flen_12', ['size_len', ['../a01218.html#ae857ba89e4d2b249da64e0e7287da962', 1, 'tds_freeze']]], │ │ │ │ │ ['sizes_13', ['sizes', ['../a00590.html#abe1aa9f8ea96dda1400654813e68130a', 1, 'dblib_buffer_row']]], │ │ │ │ │ ['skip_5fone_5finput_5fsequence_14', ['skip_one_input_sequence', ['../a00540.html#ga3380140fc6eb9f2090c430f40e846876', 1, 'iconv.c']]], │ │ │ │ │ ['status_15', ['status', ['../a01174.html#ab5d6a587ac5780f001d383d4b874852f', 1, 'tds_cursor']]], │ │ │ │ │ ['stmt_5flist_16', ['stmt_list', ['../a00998.html#a4a9f3e8f1eba573df79a1ed300d8fc91', 1, '_hdbc']]], │ │ │ │ │ ['store_5fmonthname_17', ['store_monthname', ['../a00539.html#ga17a0597ec3522c7f1ddb54956226dbfc', 1, 'convert.c']]], │ │ │ │ │ ['stream_18', ['stream', ['../a00694.html#abb6db59e849d11de92f4c55c61d51744', 1, 'tds_file_stream']]], │ │ │ │ │ - ['stream_2ec_19', ['stream.c', ['../a00077.html', 1, '']]], │ │ │ │ │ + ['stream_2ec_19', ['stream.c', ['../a00275.html', 1, '']]], │ │ │ │ │ ['string_20functions_20', ['Dynamic string functions', ['../a00545.html', 1, '']]], │ │ │ │ │ ['string_5flinked_5flist_21', ['string_linked_list', ['../a00770.html', 1, '']]], │ │ │ │ │ ['string_5fto_5fint_22', ['string_to_int', ['../a00539.html#ga0176fafd412b5b8005bf1202fbc13b00', 1, 'convert.c']]], │ │ │ │ │ ['string_5fto_5fint8_23', ['string_to_int8', ['../a00539.html#ga933f87cca76156648e91f472650b98f3', 1, 'convert.c']]], │ │ │ │ │ ['string_5fto_5fnumeric_24', ['string_to_numeric', ['../a00539.html#ga28c75aff2615032005257af7455ed70d', 1, 'convert.c']]], │ │ │ │ │ ['string_5fto_5fresult_25', ['string_to_result', ['../a00539.html#ga46a5a00dfa70cad4a02d7cc73b314c31', 1, 'convert.c']]], │ │ │ │ │ ['string_5fto_5fuint8_26', ['string_to_uint8', ['../a00539.html#gae8e173a9f8d2e3f152ada9f48d3d5f28', 1, 'convert.c']]], │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_12.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,31 +1,31 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['tagss_5ftime2_5fstruct_0', ['tagSS_TIME2_STRUCT', ['../a01262.html', 1, '']]], │ │ │ │ │ ['tagss_5ftimestampoffset_5fstruct_1', ['tagSS_TIMESTAMPOFFSET_STRUCT', ['../a01266.html', 1, '']]], │ │ │ │ │ ['tds_2', ['tds', ['../a01218.html#a182ed346382edef2962aca11c7cabc22', 1, 'tds_freeze::tds'], │ │ │ │ │ ['../a01006.html#ad357e33164f46fce2bc70267d71a1959', 1, '_hstmt::tds'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_2eh_3', ['tds.h', ['../a00440.html', 1, '']]], │ │ │ │ │ + ['tds_2eh_3', ['tds.h', ['../a00443.html', 1, '']]], │ │ │ │ │ ['tds4_5fsend_5femulated_5frpc_4', ['tds4_send_emulated_rpc', ['../a00542.html#ga2d0a06c1a30dd2470dc7a788de21b080', 1, 'query.c']]], │ │ │ │ │ - ['tds5_5fbcp_5fadd_5ffixed_5fcolumns_5', ['tds5_bcp_add_fixed_columns', ['../a00059.html#a91cf6a009e823417d6c8849256cb211c', 1, 'bulk.c']]], │ │ │ │ │ - ['tds5_5fbcp_5fadd_5fvariable_5fcolumns_6', ['tds5_bcp_add_variable_columns', ['../a00059.html#a5c906a8b65694148ad530a22ce019f06', 1, 'bulk.c']]], │ │ │ │ │ + ['tds5_5fbcp_5fadd_5ffixed_5fcolumns_5', ['tds5_bcp_add_fixed_columns', ['../a00266.html#a91cf6a009e823417d6c8849256cb211c', 1, 'bulk.c']]], │ │ │ │ │ + ['tds5_5fbcp_5fadd_5fvariable_5fcolumns_6', ['tds5_bcp_add_variable_columns', ['../a00266.html#a5c906a8b65694148ad530a22ce019f06', 1, 'bulk.c']]], │ │ │ │ │ ['tds5_5ffix_5fdot_5fquery_7', ['tds5_fix_dot_query', ['../a00542.html#ga8853354723094c8efcd87fabf675c64f', 1, 'query.c']]], │ │ │ │ │ ['tds5_5fprocess_5fdyn_5fresult2_8', ['tds5_process_dyn_result2', ['../a00544.html#gae688b515631141acfbc41bbb91c8b921', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fprocess_5foptioncmd_9', ['tds5_process_optioncmd', ['../a00544.html#gaa6a7e5aeb10a1322911c47be9c43e2d2', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fprocess_5fresult_10', ['tds5_process_result', ['../a00544.html#ga547b2f48659f77a69aa802d861ac827d', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fprocess_5fresult2_11', ['tds5_process_result2', ['../a00544.html#gabe2bdd5a41ce067cb31aef18ff81cb1c', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fput_5fparams_12', ['tds5_put_params', ['../a00542.html#ga4f1f0a4f77bc4ea1440dfdebc19a157c', 1, 'query.c']]], │ │ │ │ │ ['tds71_5fcollation_13', ['TDS71_COLLATION', ['../a01046.html', 1, '']]], │ │ │ │ │ ['tds71_5fread_5ftable_5fnames_14', ['tds71_read_table_names', ['../a00544.html#ga7482b5730d880fcedbe9fcd609a550ce', 1, 'token.c']]], │ │ │ │ │ ['tds71_5fsubmit_5fprepexec_15', ['tds71_submit_prepexec', ['../a00542.html#ga08877c101704bebe4fa57e0849dc272d', 1, 'tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params): query.c'], │ │ │ │ │ ['../a00542.html#ga08877c101704bebe4fa57e0849dc272d', 1, 'tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds72_5fsmp_5fheader_16', ['TDS72_SMP_HEADER', ['../a01050.html', 1, '']]], │ │ │ │ │ - ['tds7_5fbcp_5fsend_5fcolmetadata_17', ['tds7_bcp_send_colmetadata', ['../a00059.html#a4daaa551e54dbd978650e2eef89e09ff', 1, 'bulk.c']]], │ │ │ │ │ - ['tds7_5fbuild_5fbulk_5finsert_5fstmt_18', ['tds7_build_bulk_insert_stmt', ['../a00059.html#a3118c7232bc9c3e47f8ba872bb39e967', 1, 'bulk.c']]], │ │ │ │ │ + ['tds7_5fbcp_5fsend_5fcolmetadata_17', ['tds7_bcp_send_colmetadata', ['../a00266.html#a4daaa551e54dbd978650e2eef89e09ff', 1, 'bulk.c']]], │ │ │ │ │ + ['tds7_5fbuild_5fbulk_5finsert_5fstmt_18', ['tds7_build_bulk_insert_stmt', ['../a00266.html#a3118c7232bc9c3e47f8ba872bb39e967', 1, 'bulk.c']]], │ │ │ │ │ ['tds7_5fget_5fdata_5finfo_19', ['tds7_get_data_info', ['../a00544.html#ga07cee55fd522cca16fb59b7a8f0b1376', 1, 'token.c']]], │ │ │ │ │ ['tds7_5fget_5finstance_5fport_20', ['tds7_get_instance_port', ['../a00543.html#gac23c12ccb3e8599f10f305e993e216f6', 1, 'tds7_get_instance_port(struct addrinfo *addr, const char *instance): net.c'], │ │ │ │ │ ['../a00543.html#gac23c12ccb3e8599f10f305e993e216f6', 1, 'tds7_get_instance_port(struct addrinfo *addr, const char *instance): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds7_5fget_5finstance_5fports_21', ['tds7_get_instance_ports', ['../a00543.html#ga954dcc3b0332fa9448d9edf59c0fe439', 1, 'tds7_get_instance_ports(FILE *output, struct addrinfo *addr): net.c'], │ │ │ │ │ ['../a00543.html#ga954dcc3b0332fa9448d9edf59c0fe439', 1, 'tds7_get_instance_ports(FILE *output, struct addrinfo *addr): net.c'] │ │ │ │ │ ]], │ │ │ │ │ @@ -51,35 +51,35 @@ │ │ │ │ │ ['tds_5falloc_5frow_35', ['tds_alloc_row', ['../a00541.html#ga1224fb9277112dc2ce12531d2b73b145', 1, 'tds_alloc_row(TDSRESULTINFO *res_info): mem.c'], │ │ │ │ │ ['../a00541.html#ga1224fb9277112dc2ce12531d2b73b145', 1, 'tds_alloc_row(TDSRESULTINFO *res_info): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fanswer_36', ['tds_answer', ['../a00698.html', 1, '']]], │ │ │ │ │ ['tds_5fanswer_5fchallenge_37', ['tds_answer_challenge', ['../a00537.html#ga8adf4e719762fef6fdb091d15d4d5d7f', 1, 'challenge.c']]], │ │ │ │ │ ['tds_5fascii_5fto_5fucs2_38', ['tds_ascii_to_ucs2', ['../a00542.html#gad05fc65e1d505c68d14c82b99a00e4eb', 1, 'query.c']]], │ │ │ │ │ ['tds_5fauthentication_39', ['tds_authentication', ['../a01194.html', 1, '']]], │ │ │ │ │ - ['tds_5fbcp_5fdirections_40', ['tds_bcp_directions', ['../a00440.html#ad5c5c8cb776334af4b0ebf7a0d740cb2', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fbcp_5fdone_41', ['tds_bcp_done', ['../a00440.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'], │ │ │ │ │ - ['../a00059.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5fdirections_40', ['tds_bcp_directions', ['../a00443.html#ad5c5c8cb776334af4b0ebf7a0d740cb2', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fbcp_5fdone_41', ['tds_bcp_done', ['../a00443.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'], │ │ │ │ │ + ['../a00266.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5ffread_42', ['tds_bcp_fread', ['../a00059.html#a86ac92bd8a3c61a413d27150ec9bc202', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *char_conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'], │ │ │ │ │ - ['../a00440.html#a8184311543c685f2ee0bcccfb725ca02', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5ffread_42', ['tds_bcp_fread', ['../a00266.html#a86ac92bd8a3c61a413d27150ec9bc202', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *char_conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'], │ │ │ │ │ + ['../a00443.html#a8184311543c685f2ee0bcccfb725ca02', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5finit_43', ['tds_bcp_init', ['../a00059.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ - ['../a00440.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5finit_43', ['tds_bcp_init', ['../a00266.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ + ['../a00443.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5frow_5ffree_44', ['tds_bcp_row_free', ['../a00059.html#a7c4f2b050cd1a747604aa305d6877de7', 1, 'bulk.c']]], │ │ │ │ │ - ['tds_5fbcp_5fsend_5frecord_45', ['tds_bcp_send_record', ['../a00059.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'], │ │ │ │ │ - ['../a00440.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5frow_5ffree_44', ['tds_bcp_row_free', ['../a00266.html#a7c4f2b050cd1a747604aa305d6877de7', 1, 'bulk.c']]], │ │ │ │ │ + ['tds_5fbcp_5fsend_5frecord_45', ['tds_bcp_send_record', ['../a00266.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'], │ │ │ │ │ + ['../a00443.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5fstart_46', ['tds_bcp_start', ['../a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ - ['../a00440.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5fstart_46', ['tds_bcp_start', ['../a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ + ['../a00443.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5fstart_5fcopy_5fin_47', ['tds_bcp_start_copy_in', ['../a00059.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ - ['../a00440.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5fstart_5fcopy_5fin_47', ['tds_bcp_start_copy_in', ['../a00266.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ + ['../a00443.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5fstart_5finsert_5fstmt_48', ['tds_bcp_start_insert_stmt', ['../a00059.html#ab4d7e5309152f54613d52c8469a07fd8', 1, 'bulk.c']]], │ │ │ │ │ + ['tds_5fbcp_5fstart_5finsert_5fstmt_48', ['tds_bcp_start_insert_stmt', ['../a00266.html#ab4d7e5309152f54613d52c8469a07fd8', 1, 'bulk.c']]], │ │ │ │ │ ['tds_5fbcpcoldata_49', ['tds_bcpcoldata', ['../a01142.html', 1, '']]], │ │ │ │ │ ['tds_5fbcpinfo_50', ['tds_bcpinfo', ['../a01222.html', 1, '']]], │ │ │ │ │ ['tds_5fblob_51', ['tds_blob', ['../a01130.html', 1, '']]], │ │ │ │ │ ['tds_5fcanonical_5fcharset_52', ['tds_canonical_charset', ['../a00540.html#gac01180352db7052e786463e3b07a8a9e', 1, 'tds_canonical_charset(const char *charset_name): iconv.c'], │ │ │ │ │ ['../a00540.html#gac01180352db7052e786463e3b07a8a9e', 1, 'tds_canonical_charset(const char *charset_name): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcanonical_5fcharset_5fname_53', ['tds_canonical_charset_name', ['../a00540.html#ga22c61ca41f64c7fe368659ed1eebdb56', 1, 'tds_canonical_charset_name(const char *charset_name): iconv.c'], │ │ │ │ │ @@ -88,73 +88,73 @@ │ │ │ │ │ ['tds_5fcapabilities_54', ['tds_capabilities', ['../a01114.html', 1, '']]], │ │ │ │ │ ['tds_5fcapability_5ftype_55', ['tds_capability_type', ['../a01110.html', 1, '']]], │ │ │ │ │ ['tds_5fclose_5fsocket_56', ['tds_close_socket', ['../a00543.html#ga3e3f76009fce5ceedb2f42bb2c9aed2e', 1, 'tds_close_socket(TDSSOCKET *tds): net.c'], │ │ │ │ │ ['../a00543.html#ga3e3f76009fce5ceedb2f42bb2c9aed2e', 1, 'tds_close_socket(TDSSOCKET *tds): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcolumn_57', ['tds_column', ['../a01150.html', 1, '']]], │ │ │ │ │ ['tds_5fcolumn_5ffuncs_58', ['tds_column_funcs', ['../a01146.html', 1, '']]], │ │ │ │ │ - ['tds_5fcompiletime_5fsettings_59', ['tds_compiletime_settings', ['../a00440.html#a1de034b895312fc0cfae0e28f8921a47', 1, 'TDS_COMPILETIME_SETTINGS: tds.h'], │ │ │ │ │ + ['tds_5fcompiletime_5fsettings_59', ['tds_compiletime_settings', ['../a00443.html#a1de034b895312fc0cfae0e28f8921a47', 1, 'TDS_COMPILETIME_SETTINGS: tds.h'], │ │ │ │ │ ['../a01090.html', 1, 'tds_compiletime_settings'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcondition_60', ['tds_condition', ['../a01230.html', 1, '']]], │ │ │ │ │ ['tds_5fconfig_5fverstr_61', ['tds_config_verstr', ['../a00538.html#ga05c73c963f4d8904869c739c556c58a2', 1, 'tds_config_verstr(const char *tdsver, TDSLOGIN *login): config.c'], │ │ │ │ │ ['../a00538.html#ga05c73c963f4d8904869c739c556c58a2', 1, 'tds_config_verstr(const char *tdsver, TDSLOGIN *login): config.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fconnection_62', ['tds_connection', ['../a01206.html', 1, '']]], │ │ │ │ │ ['tds_5fcontext_63', ['tds_context', ['../a01190.html', 1, '']]], │ │ │ │ │ ['tds_5fconvert_64', ['tds_convert', ['../a00539.html#gad83c146aa5ba3f1515557d6b5248494a', 1, 'tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr): convert.c'], │ │ │ │ │ ['../a00539.html#gad83c146aa5ba3f1515557d6b5248494a', 1, 'tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fconvert_5fstream_65', ['tds_convert_stream', ['../a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fconvert_5fstream_65', ['tds_convert_stream', ['../a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fconvert_5fstring_66', ['tds_convert_string', ['../a00542.html#gad5b76c688898b86984d09628f030d01c', 1, 'tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len): query.c'], │ │ │ │ │ ['../a00542.html#gad5b76c688898b86984d09628f030d01c', 1, 'tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fcopy_5fstream_67', ['tds_copy_stream', ['../a00077.html#a50bc3749988d1c3c441044fc07ab44e4', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fcopy_5fstream_67', ['tds_copy_stream', ['../a00275.html#a50bc3749988d1c3c441044fc07ab44e4', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fcount_5fplaceholders_68', ['tds_count_placeholders', ['../a00542.html#gaaa7b4d37bf796019e72f25c6e7fe7bea', 1, 'tds_count_placeholders(const char *query): query.c'], │ │ │ │ │ ['../a00542.html#gaaa7b4d37bf796019e72f25c6e7fe7bea', 1, 'tds_count_placeholders(const char *query): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcount_5fplaceholders_5fucs2le_69', ['tds_count_placeholders_ucs2le', ['../a00542.html#ga0cd19215e9169ea299a6c9cbf5b2fb60', 1, 'query.c']]], │ │ │ │ │ ['tds_5fctx_70', ['tds_ctx', ['../a00594.html#afb3fb2d591c0f75b9412f8ca77e2629d', 1, 'dblib_context']]], │ │ │ │ │ ['tds_5fctx_5fref_5fcount_71', ['tds_ctx_ref_count', ['../a00594.html#ad01d901acbc92e8c369e6a6c784d7446', 1, 'dblib_context']]], │ │ │ │ │ ['tds_5fcursor_72', ['tds_cursor', ['../a01174.html', 1, '']]], │ │ │ │ │ ['tds_5fcursor_5fcheck_5fallocated_73', ['tds_cursor_check_allocated', ['../a00542.html#ga2a64baaf4aa50ef601a49b801dfdaaf6', 1, 'query.c']]], │ │ │ │ │ ['tds_5fcursor_5fdealloc_74', ['tds_cursor_dealloc', ['../a00542.html#gab25de0567ac096e8f8e88490eeddf562', 1, 'tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor): query.c'], │ │ │ │ │ ['../a00542.html#gab25de0567ac096e8f8e88490eeddf562', 1, 'tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcursor_5fstatus_75', ['tds_cursor_status', ['../a01170.html', 1, '']]], │ │ │ │ │ ['tds_5fdatain_5fstream_76', ['tds_datain_stream', ['../a01070.html', 1, '']]], │ │ │ │ │ - ['tds_5fdatain_5fstream_5finit_77', ['tds_datain_stream_init', ['../a00077.html#abc3a77c8aa28842e7f28583cbabc1415', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdatain_5fstream_5fread_78', ['tds_datain_stream_read', ['../a00077.html#a04b537d889f7d4c9b9701eb81baf7efd', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdatain_5fstream_5finit_77', ['tds_datain_stream_init', ['../a00275.html#abc3a77c8aa28842e7f28583cbabc1415', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdatain_5fstream_5fread_78', ['tds_datain_stream_read', ['../a00275.html#a04b537d889f7d4c9b9701eb81baf7efd', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fdataout_5fstream_79', ['tds_dataout_stream', ['../a01074.html', 1, '']]], │ │ │ │ │ - ['tds_5fdataout_5fstream_5finit_80', ['tds_dataout_stream_init', ['../a00077.html#aa038a9125979f8f0915dbd53cbf27e5a', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdataout_5fstream_5fwrite_81', ['tds_dataout_stream_write', ['../a00077.html#ae38a590ee08cf398e7adef536ac94538', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdataout_5fstream_5finit_80', ['tds_dataout_stream_init', ['../a00275.html#aa038a9125979f8f0915dbd53cbf27e5a', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdataout_5fstream_5fwrite_81', ['tds_dataout_stream_write', ['../a00275.html#ae38a590ee08cf398e7adef536ac94538', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fdatecrack_82', ['tds_datecrack', ['../a00539.html#ga883855e6e3793de6684b21db39c756c4', 1, 'tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr): convert.c'], │ │ │ │ │ ['../a00539.html#ga883855e6e3793de6684b21db39c756c4', 1, 'tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fdatetimeall_83', ['TDS_DATETIMEALL', ['../a01094.html', 1, '']]], │ │ │ │ │ ['tds_5fdblib_5fdbprocess_84', ['tds_dblib_dbprocess', ['../a00918.html', 1, '']]], │ │ │ │ │ ['tds_5fdblib_5floginrec_85', ['tds_dblib_loginrec', ['../a00886.html', 1, '']]], │ │ │ │ │ - ['tds_5fdead_86', ['TDS_DEAD', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33af087b64970a1fb35bbcf1bc6ea7a643d', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdead_86', ['TDS_DEAD', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33af087b64970a1fb35bbcf1bc6ea7a643d', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fdeferred_5fcursor_5fdealloc_87', ['tds_deferred_cursor_dealloc', ['../a00542.html#ga57bd0fabe5bcdeb3ef091259b3a7c1fc', 1, 'tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor): query.c'], │ │ │ │ │ ['../a00542.html#ga57bd0fabe5bcdeb3ef091259b3a7c1fc', 1, 'tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fdeferred_5funprepare_88', ['tds_deferred_unprepare', ['../a00542.html#ga9f80fdf732b084aef7de7a323261aa61', 1, 'tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ ['../a00542.html#ga9f80fdf732b084aef7de7a323261aa61', 1, 'tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fdetach_5fresults_89', ['tds_detach_results', ['../a00541.html#ga1d60bf443e274797b1d1a9e7418ab962', 1, 'tds_detach_results(TDSRESULTINFO *info): mem.c'], │ │ │ │ │ ['../a00541.html#ga1d60bf443e274797b1d1a9e7418ab962', 1, 'tds_detach_results(TDSRESULTINFO *info): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fdone_5fcancelled_90', ['TDS_DONE_CANCELLED', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca202254cfd6784404cf1aa22bc7147c86', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fcount_91', ['TDS_DONE_COUNT', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519caf17d0c6591e318014c806a10c2f0270b', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5ferror_92', ['TDS_DONE_ERROR', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519caa9d79a3b62e3321332223ac3d1a5b18d', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5ffinal_93', ['TDS_DONE_FINAL', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca7ed9046db24ad78bb94c2b12d6e11f46', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5finxact_94', ['TDS_DONE_INXACT', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519cac79a30d1a0bac125e77d87f5d87bc2b2', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fmore_5fresults_95', ['TDS_DONE_MORE_RESULTS', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca688b8bf555ce6ae72f3e047177bfc966', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fproc_96', ['TDS_DONE_PROC', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519cae170f368306f421d507c6f08e4d48d9a', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fsrverror_97', ['TDS_DONE_SRVERROR', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca7bfe89d6f8fc309eae412ad0a503e34c', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fcancelled_90', ['TDS_DONE_CANCELLED', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca202254cfd6784404cf1aa22bc7147c86', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fcount_91', ['TDS_DONE_COUNT', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519caf17d0c6591e318014c806a10c2f0270b', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5ferror_92', ['TDS_DONE_ERROR', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519caa9d79a3b62e3321332223ac3d1a5b18d', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5ffinal_93', ['TDS_DONE_FINAL', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca7ed9046db24ad78bb94c2b12d6e11f46', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5finxact_94', ['TDS_DONE_INXACT', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519cac79a30d1a0bac125e77d87f5d87bc2b2', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fmore_5fresults_95', ['TDS_DONE_MORE_RESULTS', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca688b8bf555ce6ae72f3e047177bfc966', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fproc_96', ['TDS_DONE_PROC', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519cae170f368306f421d507c6f08e4d48d9a', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fsrverror_97', ['TDS_DONE_SRVERROR', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca7bfe89d6f8fc309eae412ad0a503e34c', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fdstr_98', ['tds_dstr', ['../a01258.html', 1, '']]], │ │ │ │ │ ['tds_5fdstr_5falloc_99', ['tds_dstr_alloc', ['../a00545.html#ga6aa14b8b717b51afcfb65bd55143689d', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fbuf_100', ['tds_dstr_buf', ['../a00545.html#gae092e53680d954bcf4f19334987d43c7', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5fcopy_101', ['tds_dstr_copy', ['../a00545.html#gad96366d9fa93bfc283cef1299fbe97ab', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fcopyn_102', ['tds_dstr_copyn', ['../a00545.html#ga656718f240d7403f986ae887d84a6ca1', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fcstr_103', ['tds_dstr_cstr', ['../a00545.html#gac536f0e4d77d3cff5702719362ec1766', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5fdup_104', ['tds_dstr_dup', ['../a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6', 1, 'tdsstring.c']]], │ │ │ │ │ @@ -167,25 +167,25 @@ │ │ │ │ │ ['tds_5fdstr_5fisempty_109', ['tds_dstr_isempty', ['../a00545.html#ga197c6af67f2e7469d06c2aa055917b1e', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5flen_110', ['tds_dstr_len', ['../a00545.html#ga396f139e4f886ac1b224a735138e73dd', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5fset_111', ['tds_dstr_set', ['../a00545.html#gab78cc59b110df2817b00f9bed74c6ff1', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fsetlen_112', ['tds_dstr_setlen', ['../a00545.html#ga0cd7863ba7c2d2da4a193234472a3d14', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fzero_113', ['tds_dstr_zero', ['../a00545.html#ga339ba30216e2bd5bd076aa9dcd26f3c4', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdynamic_114', ['tds_dynamic', ['../a01182.html', 1, '']]], │ │ │ │ │ ['tds_5fdynamic_5fstream_115', ['tds_dynamic_stream', ['../a01086.html', 1, '']]], │ │ │ │ │ - ['tds_5fdynamic_5fstream_5finit_116', ['tds_dynamic_stream_init', ['../a00077.html#a4f9e40da6941cb9407d0da5bc3030517', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdynamic_5fstream_5fwrite_117', ['tds_dynamic_stream_write', ['../a00077.html#abaf688c85ea04a2392103d519a55d04e', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fencoding_118', ['tds_encoding', ['../a00440.html#ae21e9f12e8ee5219228ee6b6a41dec66', 1, 'TDS_ENCODING: tds.h'], │ │ │ │ │ + ['tds_5fdynamic_5fstream_5finit_116', ['tds_dynamic_stream_init', ['../a00275.html#a4f9e40da6941cb9407d0da5bc3030517', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdynamic_5fstream_5fwrite_117', ['tds_dynamic_stream_write', ['../a00275.html#abaf688c85ea04a2392103d519a55d04e', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fencoding_118', ['tds_encoding', ['../a00443.html#ae21e9f12e8ee5219228ee6b6a41dec66', 1, 'TDS_ENCODING: tds.h'], │ │ │ │ │ ['../a01138.html', 1, 'tds_encoding'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fend_119', ['tds_end', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519c', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fend_119', ['tds_end', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519c', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fenv_120', ['tds_env', ['../a01178.html', 1, '']]], │ │ │ │ │ ['tds_5ferrno_5fmessage_5fflags_121', ['tds_errno_message_flags', ['../a00950.html', 1, '']]], │ │ │ │ │ ['tds_5ferror_5fmessage_122', ['tds_error_message', ['../a00766.html', 1, '']]], │ │ │ │ │ ['tds_5ffile_5fstream_123', ['tds_file_stream', ['../a00694.html', 1, '']]], │ │ │ │ │ - ['tds_5ffile_5fstream_5fread_124', ['tds_file_stream_read', ['../a00059.html#a1b83c9db016b481aa1fa0352f976d50d', 1, 'bulk.c']]], │ │ │ │ │ + ['tds_5ffile_5fstream_5fread_124', ['tds_file_stream_read', ['../a00266.html#a1b83c9db016b481aa1fa0352f976d50d', 1, 'bulk.c']]], │ │ │ │ │ ['tds_5ffix_5fcolumn_5fsize_125', ['tds_fix_column_size', ['../a00542.html#ga440f0f469afad1eac4c008979873ccdd', 1, 'tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol): query.c'], │ │ │ │ │ ['../a00542.html#ga440f0f469afad1eac4c008979873ccdd', 1, 'tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ffix_5flogin_126', ['tds_fix_login', ['../a00538.html#gacee4f06ba749b10ee9f2e5bb1c4a8910', 1, 'tds_fix_login(TDSLOGIN *login): config.c'], │ │ │ │ │ ['../a00538.html#gacee4f06ba749b10ee9f2e5bb1c4a8910', 1, 'tds_fix_login(TDSLOGIN *login): config.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fflush_5fpacket_127', ['tds_flush_packet', ['../a00543.html#ga5feb53554e8917a81bbbc332163a61fb', 1, 'tds_flush_packet(TDSSOCKET *tds): write.c'], │ │ │ │ │ @@ -211,43 +211,43 @@ │ │ │ │ │ ['tds_5ffreeze_5fclose_5flen_134', ['tds_freeze_close_len', ['../a00543.html#ga2660b893ae2bf36fe1b63b354e748bad', 1, 'tds_freeze_close_len(TDSFREEZE *freeze, int32_t size): packet.c'], │ │ │ │ │ ['../a00543.html#ga2660b893ae2bf36fe1b63b354e748bad', 1, 'tds_freeze_close_len(TDSFREEZE *freeze, int32_t size): packet.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ffreeze_5fwritten_135', ['tds_freeze_written', ['../a00543.html#ga528cc96da09c11bc2930daae64e33e83', 1, 'tds_freeze_written(TDSFREEZE *freeze): packet.c'], │ │ │ │ │ ['../a00543.html#ga528cc96da09c11bc2930daae64e33e83', 1, 'tds_freeze_written(TDSFREEZE *freeze): packet.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ffuncs_136', ['TDS_FUNCS', ['../a01010.html', 1, '']]], │ │ │ │ │ - ['tds_5fgeneric_5fget_137', ['tds_generic_get', ['../a00050.html#abac4d689e0e31e80587f89247c6395a4', 1, 'data.c']]], │ │ │ │ │ - ['tds_5fgeneric_5fput_138', ['tds_generic_put', ['../a00050.html#a84e17808683ba2dd956e811a42e23176', 1, 'data.c']]], │ │ │ │ │ - ['tds_5fgeneric_5fput_5finfo_139', ['tds_generic_put_info', ['../a00050.html#aabd0e5f15615b5c141c525b76e746520', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fgeneric_5fget_137', ['tds_generic_get', ['../a00323.html#abac4d689e0e31e80587f89247c6395a4', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fgeneric_5fput_138', ['tds_generic_put', ['../a00323.html#a84e17808683ba2dd956e811a42e23176', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fgeneric_5fput_5finfo_139', ['tds_generic_put_info', ['../a00323.html#aabd0e5f15615b5c141c525b76e746520', 1, 'data.c']]], │ │ │ │ │ ['tds_5fget_5fbyte_140', ['tds_get_byte', ['../a00543.html#ga0cb72d3f6943795c39db1fa692be0a58', 1, 'tds_get_byte(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#ga0cb72d3f6943795c39db1fa692be0a58', 1, 'tds_get_byte(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fchar_5fdata_141', ['tds_get_char_data', ['../a00543.html#ga8d214089b6e97fc0da5e0be09f216d73', 1, 'tds_get_char_data(TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol): read.c'], │ │ │ │ │ ['../a00543.html#ga8d214089b6e97fc0da5e0be09f216d73', 1, 'tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fcolumn_5fdeclaration_142', ['tds_get_column_declaration', ['../a00542.html#ga50d62edeb2a432e2dc668263f3f958ff', 1, 'tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out): query.c'], │ │ │ │ │ ['../a00542.html#ga50d62edeb2a432e2dc668263f3f958ff', 1, 'tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fcompiletime_5fsettings_143', ['tds_get_compiletime_settings', ['../a00538.html#ga0c00a50e074cec7fbb0a1de826a4a46b', 1, 'tds_get_compiletime_settings(void): config.c'], │ │ │ │ │ ['../a00538.html#ga0c00a50e074cec7fbb0a1de826a4a46b', 1, 'tds_get_compiletime_settings(void): config.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5fconversion_5ftype_144', ['tds_get_conversion_type', ['../a00440.html#a0383d5dcb629582266a442f0f0dbd13a', 1, 'tds_types.h']]], │ │ │ │ │ + ['tds_5fget_5fconversion_5ftype_144', ['tds_get_conversion_type', ['../a00443.html#a0383d5dcb629582266a442f0f0dbd13a', 1, 'tds_types.h']]], │ │ │ │ │ ['tds_5fget_5fdata_5finfo_145', ['tds_get_data_info', ['../a00544.html#gad9b6b86f48be077fb44ac603845a0c27', 1, 'token.c']]], │ │ │ │ │ ['tds_5fget_5fdynid_146', ['tds_get_dynid', ['../a00541.html#ga93503e64091b51add0801abebe22abf4', 1, 'mem.c']]], │ │ │ │ │ ['tds_5fget_5fhome_5ffile_147', ['tds_get_home_file', ['../a00538.html#ga69275bf4fa96a7bf23fd445638a6e9aa', 1, 'tds_get_home_file(const char *file): config.c'], │ │ │ │ │ ['../a00538.html#ga69275bf4fa96a7bf23fd445638a6e9aa', 1, 'tds_get_home_file(const char *file): config.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5flocale_148', ['tds_get_locale', ['../a00440.html#a41390fa6e1083ba84fb523797e6b5275', 1, 'locale.c']]], │ │ │ │ │ + ['tds_5fget_5flocale_148', ['tds_get_locale', ['../a00443.html#a41390fa6e1083ba84fb523797e6b5275', 1, 'locale.c']]], │ │ │ │ │ ['tds_5fget_5fn_149', ['tds_get_n', ['../a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf', 1, 'tds_get_n(TDSSOCKET *tds, void *dest, size_t n): read.c'], │ │ │ │ │ ['../a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf', 1, 'tds_get_n(TDSSOCKET *tds, void *dest, size_t need): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fnull_5ftype_150', ['tds_get_null_type', ['../a00539.html#ga68e3a76fd7b0a77614765826a8ab5be8', 1, 'tds_get_null_type(TDS_SERVER_TYPE srctype): convert.c'], │ │ │ │ │ ['../a00539.html#ga68e3a76fd7b0a77614765826a8ab5be8', 1, 'tds_get_null_type(TDS_SERVER_TYPE srctype): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5fsize_5fby_5ftype_151', ['tds_get_size_by_type', ['../a00440.html#a4c070147d189dede5e08a2dc66852678', 1, 'tds_types.h']]], │ │ │ │ │ + ['tds_5fget_5fsize_5fby_5ftype_151', ['tds_get_size_by_type', ['../a00443.html#a4c070147d189dede5e08a2dc66852678', 1, 'tds_types.h']]], │ │ │ │ │ ['tds_5fget_5fsocket_5ferror_152', ['tds_get_socket_error', ['../a00543.html#ga4a2418e0a4533d616ef3da526236f2b8', 1, 'net.c']]], │ │ │ │ │ ['tds_5fget_5fstring_153', ['tds_get_string', ['../a00543.html#ga90f080e6e9448feac15dee1370d66802', 1, 'tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size): read.c'], │ │ │ │ │ ['../a00543.html#ga90f080e6e9448feac15dee1370d66802', 1, 'tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5ftoken_5fsize_154', ['tds_get_token_size', ['../a00544.html#ga995b82e53aeac5bede01ef16e9aeaa65', 1, 'tds_get_token_size(int marker): token.c'], │ │ │ │ │ ['../a00544.html#ga995b82e53aeac5bede01ef16e9aeaa65', 1, 'tds_get_token_size(int marker): token.c'] │ │ │ │ │ ]], │ │ │ │ │ @@ -256,88 +256,88 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fuint8_156', ['tds_get_uint8', ['../a00543.html#ga8ab6c87318eaf15ea17a9575763f7809', 1, 'tds_get_uint8(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#ga8ab6c87318eaf15ea17a9575763f7809', 1, 'tds_get_uint8(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fusmallint_157', ['tds_get_usmallint', ['../a00543.html#gad38aa5b9547817854ccba1fcc7855861', 1, 'tds_get_usmallint(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#gad38aa5b9547817854ccba1fcc7855861', 1, 'tds_get_usmallint(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5fvarint_5fsize_158', ['tds_get_varint_size', ['../a00440.html#a68855f1251759a6b7338635306ab0041', 1, 'tds_types.h']]], │ │ │ │ │ + ['tds_5fget_5fvarint_5fsize_158', ['tds_get_varint_size', ['../a00443.html#a68855f1251759a6b7338635306ab0041', 1, 'tds_types.h']]], │ │ │ │ │ ['tds_5fgoodread_159', ['tds_goodread', ['../a00543.html#ga6f2ae00407f59fb1ab280fa44a56295e', 1, 'tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen): net.c'], │ │ │ │ │ ['../a00543.html#ga6f2ae00407f59fb1ab280fa44a56295e', 1, 'tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fgoodwrite_160', ['tds_goodwrite', ['../a00543.html#ga2734407109c834c5dda7ff8a45c71230', 1, 'tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen): net.c'], │ │ │ │ │ ['../a00543.html#ga2734407109c834c5dda7ff8a45c71230', 1, 'tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fheaders_161', ['tds_headers', ['../a01122.html', 1, '']]], │ │ │ │ │ ['tds_5ficonv_162', ['tds_iconv', ['../a00540.html#ga87db49044919f1bc84c0ff5e9ab00304', 1, 'tds_iconv(TDSSOCKET *tds, TDSICONV *conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft): iconv.c'], │ │ │ │ │ ['../a00540.html#ga87db49044919f1bc84c0ff5e9ab00304', 1, 'tds_iconv(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5ficonv_5falloc_163', ['tds_iconv_alloc', ['../a01368.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'], │ │ │ │ │ - ['../a00440.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'] │ │ │ │ │ + ['tds_5ficonv_5falloc_163', ['tds_iconv_alloc', ['../a01374.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'], │ │ │ │ │ + ['../a00443.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_5ffrom_5fcollate_164', ['tds_iconv_from_collate', ['../a00540.html#ga9d433c15ab3738aa2a477a416330f49f', 1, 'tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5]): iconv.c'], │ │ │ │ │ ['../a00540.html#ga9d433c15ab3738aa2a477a416330f49f', 1, 'tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5]): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_5fget_5finfo_165', ['tds_iconv_get_info', ['../a00540.html#ga1639ccaa7e17c07457bcb37f313bc52f', 1, 'tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int canonic_server): iconv.c'], │ │ │ │ │ ['../a00540.html#ga1639ccaa7e17c07457bcb37f313bc52f', 1, 'tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int canonic_server): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_5finfo_5finit_166', ['tds_iconv_info_init', ['../a00540.html#ga3a7a7b4d6ed344127e164dd0b443d790', 1, 'iconv.c']]], │ │ │ │ │ - ['tds_5ficonv_5finit_167', ['tds_iconv_init', ['../a01368.html#a89de4d12be43b135ad355236717e9cbb', 1, 'iconv.c']]], │ │ │ │ │ - ['tds_5fidle_168', ['TDS_IDLE', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33ad1586abc1f75b7f3d640b994afe310e9', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5ficonv_5finit_167', ['tds_iconv_init', ['../a01374.html#a89de4d12be43b135ad355236717e9cbb', 1, 'iconv.c']]], │ │ │ │ │ + ['tds_5fidle_168', ['TDS_IDLE', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33ad1586abc1f75b7f3d640b994afe310e9', 1, 'tds.h']]], │ │ │ │ │ ['tds_5finit_5flogin_169', ['tds_init_login', ['../a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39', 1, 'tds_init_login(TDSLOGIN *login, TDSLOCALE *locale): mem.c'], │ │ │ │ │ ['../a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39', 1, 'tds_init_login(TDSLOGIN *login, TDSLOCALE *locale): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5finput_5fstream_170', ['tds_input_stream', ['../a01062.html', 1, '']]], │ │ │ │ │ - ['tds_5fis_5fmssql_171', ['TDS_IS_MSSQL', ['../a00440.html#a07e9371c3e72b9e319f4c14e6fc2c20f', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fis_5fsybase_172', ['TDS_IS_SYBASE', ['../a00440.html#a4840433488d0c66601ff4002a54b41d7', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fis_5fmssql_171', ['TDS_IS_MSSQL', ['../a00443.html#a07e9371c3e72b9e319f4c14e6fc2c20f', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fis_5fsybase_172', ['TDS_IS_SYBASE', ['../a00443.html#a4840433488d0c66601ff4002a54b41d7', 1, 'tds.h']]], │ │ │ │ │ ['tds_5flocale_173', ['tds_locale', ['../a01126.html', 1, '']]], │ │ │ │ │ ['tds_5flogin_174', ['tds_login', ['../a01118.html', 1, '']]], │ │ │ │ │ ['tds_5flookup_5fdynamic_175', ['tds_lookup_dynamic', ['../a00544.html#ga4a45cadd06ae1b886459dcc1f8e482c6', 1, 'tds_lookup_dynamic(TDSCONNECTION *conn, const char *id): token.c'], │ │ │ │ │ ['../a00544.html#ga4a45cadd06ae1b886459dcc1f8e482c6', 1, 'tds_lookup_dynamic(TDSCONNECTION *conn, const char *id): token.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5flookup_5fhost_176', ['tds_lookup_host', ['../a00538.html#ga3945f760ceb97e8854e18589d6f0d241', 1, 'tds_lookup_host(const char *servername): config.c'], │ │ │ │ │ ['../a00538.html#ga3945f760ceb97e8854e18589d6f0d241', 1, 'tds_lookup_host(const char *servername): config.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5flookup_5fport_177', ['tds_lookup_port', ['../a00538.html#ga45281d1cb2ac649db65d80bb3ff06b66', 1, 'config.c']]], │ │ │ │ │ ['tds_5fmay_5falias_178', ['TDS_MAY_ALIAS', ['../a00922.html', 1, '']]], │ │ │ │ │ ['tds_5fmessage_179', ['tds_message', ['../a01162.html', 1, '']]], │ │ │ │ │ ['tds_5fmicrosoft_5fdbdaterec_180', ['tds_microsoft_dbdaterec', ['../a01318.html', 1, '']]], │ │ │ │ │ ['tds_5fmicrosoft_5fdbdaterec2_181', ['tds_microsoft_dbdaterec2', ['../a01326.html', 1, '']]], │ │ │ │ │ - ['tds_5fms_5fver_182', ['TDS_MS_VER', ['../a00440.html#a1f5fb9d2184949ed566c8ce308a4e91e', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fms_5fver_182', ['TDS_MS_VER', ['../a00443.html#a1f5fb9d2184949ed566c8ce308a4e91e', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fmultiple_183', ['tds_multiple', ['../a01186.html', 1, '']]], │ │ │ │ │ ['tds_5fneeds_5funprepare_184', ['tds_needs_unprepare', ['../a00542.html#ga05ac7bab753d19b6ba1ffc7505d8fcd0', 1, 'tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ ['../a00542.html#ga05ac7bab753d19b6ba1ffc7505d8fcd0', 1, 'tds_needs_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fnext_5fplaceholder_185', ['tds_next_placeholder', ['../a00542.html#ga8f3b00c34af2484eccb169e60a37dc36', 1, 'tds_next_placeholder(const char *start): query.c'], │ │ │ │ │ ['../a00542.html#ga8f3b00c34af2484eccb169e60a37dc36', 1, 'tds_next_placeholder(const char *start): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fnext_5fplaceholder_5fucs2le_186', ['tds_next_placeholder_ucs2le', ['../a00542.html#gaaa97f8535a2babe642024a0744d271d5', 1, 'query.c']]], │ │ │ │ │ ['tds_5fntlm_5fauth_187', ['tds_ntlm_auth', ['../a00706.html', 1, '']]], │ │ │ │ │ ['tds_5fntlm_5fget_5fauth_188', ['tds_ntlm_get_auth', ['../a00537.html#gac0f33825721aa985805d21540a254b87', 1, 'tds_ntlm_get_auth(TDSSOCKET *tds): challenge.c'], │ │ │ │ │ ['../a00537.html#gac0f33825721aa985805d21540a254b87', 1, 'tds_ntlm_get_auth(TDSSOCKET *tds): challenge.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fnumeric_5fbytes_5fper_5fprec_189', ['tds_numeric_bytes_per_prec', ['../a00440.html#a4da9eedb6322f7dfca89d5d89be7b374', 1, 'numeric.c']]], │ │ │ │ │ - ['tds_5fnumeric_5fto_5fstring_190', ['tds_numeric_to_string', ['../a00440.html#a622da936832b0337742da956be123719', 1, 'numeric.c']]], │ │ │ │ │ + ['tds_5fnumeric_5fbytes_5fper_5fprec_189', ['tds_numeric_bytes_per_prec', ['../a00443.html#a4da9eedb6322f7dfca89d5d89be7b374', 1, 'numeric.c']]], │ │ │ │ │ + ['tds_5fnumeric_5fto_5fstring_190', ['tds_numeric_to_string', ['../a00443.html#a622da936832b0337742da956be123719', 1, 'numeric.c']]], │ │ │ │ │ ['tds_5foption_5farg_191', ['tds_option_arg', ['../a01102.html', 1, '']]], │ │ │ │ │ ['tds_5foutput_5fstream_192', ['tds_output_stream', ['../a01066.html', 1, '']]], │ │ │ │ │ ['tds_5fpacket_193', ['tds_packet', ['../a01198.html', 1, '']]], │ │ │ │ │ ['tds_5fparsed_5fparam_194', ['TDS_PARSED_PARAM', ['../a01014.html', 1, '']]], │ │ │ │ │ ['tds_5fpbcb_195', ['tds_pbcb', ['../a00690.html', 1, '']]], │ │ │ │ │ ['tds_5fpeek_196', ['tds_peek', ['../a00543.html#ga221e98a9c8be96ec6c8547891e1b53af', 1, 'tds_peek(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#ga221e98a9c8be96ec6c8547891e1b53af', 1, 'tds_peek(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fpending_197', ['TDS_PENDING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a00f6d5ac5560f2f44661e599241849a8', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fpending_197', ['TDS_PENDING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a00f6d5ac5560f2f44661e599241849a8', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fpoll_5fwakeup_198', ['tds_poll_wakeup', ['../a01202.html', 1, '']]], │ │ │ │ │ ['tds_5fpool_199', ['tds_pool', ['../a00678.html', 1, '']]], │ │ │ │ │ ['tds_5fpool_5fevent_200', ['tds_pool_event', ['../a00662.html', 1, '']]], │ │ │ │ │ ['tds_5fpool_5fmember_201', ['tds_pool_member', ['../a00674.html', 1, '']]], │ │ │ │ │ ['tds_5fpool_5fsocket_202', ['tds_pool_socket', ['../a00666.html', 1, '']]], │ │ │ │ │ ['tds_5fpool_5fuser_203', ['tds_pool_user', ['../a00670.html', 1, '']]], │ │ │ │ │ ['tds_5fpr_5fop_204', ['tds_pr_op', ['../a00544.html#ga62dc14d21453e88e24880ee0acaca73a', 1, 'token.c']]], │ │ │ │ │ - ['tds_5fprdatatype_205', ['tds_prdatatype', ['../a00167.html#ac7a199aaeb82935f6d1dda2be551a089', 1, 'dblib.c']]], │ │ │ │ │ + ['tds_5fprdatatype_205', ['tds_prdatatype', ['../a00155.html#ac7a199aaeb82935f6d1dda2be551a089', 1, 'dblib.c']]], │ │ │ │ │ ['tds_5fprocess_5fauth_206', ['tds_process_auth', ['../a00544.html#ga4e1e52e09b0c27a9b9f53eb6b539afce', 1, 'token.c']]], │ │ │ │ │ ['tds_5fprocess_5fcancel_207', ['tds_process_cancel', ['../a00544.html#gaf233e79967f82f4e0dd4d11524917a34', 1, 'tds_process_cancel(TDSSOCKET *tds): token.c'], │ │ │ │ │ ['../a00544.html#gaf233e79967f82f4e0dd4d11524917a34', 1, 'tds_process_cancel(TDSSOCKET *tds): token.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fprocess_5fcol_5ffmt_208', ['tds_process_col_fmt', ['../a00544.html#ga4e3dd9d3614f5f0433b78b761dd68741', 1, 'token.c']]], │ │ │ │ │ ['tds_5fprocess_5fcol_5fname_209', ['tds_process_col_name', ['../a00544.html#ga905d2fa5e1b602817bd16bb0fcf9eadb', 1, 'token.c']]], │ │ │ │ │ ['tds_5fprocess_5fcolinfo_210', ['tds_process_colinfo', ['../a00544.html#ga22c7f413d43fc0d511e122a3de389166', 1, 'token.c']]], │ │ │ │ │ @@ -373,15 +373,15 @@ │ │ │ │ │ ['tds_5fput_5fdata_232', ['tds_put_data', ['../a00542.html#ga9fcc0a3932dcad530511395ef8a767fb', 1, 'query.c']]], │ │ │ │ │ ['tds_5fput_5fdata_5finfo_233', ['tds_put_data_info', ['../a00542.html#gafd74652c4722ddce4d642cc4209449d4', 1, 'query.c']]], │ │ │ │ │ ['tds_5fput_5fn_5fas_5fucs2_234', ['TDS_PUT_N_AS_UCS2', ['../a00542.html#ga62c3dc9946acb3ffd1b7ae43424f5b47', 1, 'query.c']]], │ │ │ │ │ ['tds_5fput_5fparam_5fas_5fstring_235', ['tds_put_param_as_string', ['../a00542.html#ga0e2e7230c425e925402d7856ff5b4b18', 1, 'query.c']]], │ │ │ │ │ ['tds_5fput_5fstring_236', ['tds_put_string', ['../a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4', 1, 'tds_put_string(TDSSOCKET *tds, const char *s, int len): write.c'], │ │ │ │ │ ['../a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4', 1, 'tds_put_string(TDSSOCKET *tds, const char *buf, int len): write.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fput_5ftinyint_237', ['tds_put_tinyint', ['../a00440.html#adfc186758f4c1856c01746b5436aff74', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fput_5ftinyint_237', ['tds_put_tinyint', ['../a00443.html#adfc186758f4c1856c01746b5436aff74', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fquery_5fflush_5fpacket_238', ['tds_query_flush_packet', ['../a00542.html#gada27f4cfce925240ad33b71b63ca692d', 1, 'query.c']]], │ │ │ │ │ ['tds_5fquote_239', ['tds_quote', ['../a00542.html#ga7efaa23c3b21158ffc963f85fbc3fdf4', 1, 'query.c']]], │ │ │ │ │ ['tds_5fquote_5fand_5fput_240', ['tds_quote_and_put', ['../a00542.html#ga26b26296d060dca75f6a43e9ac41e58d', 1, 'query.c']]], │ │ │ │ │ ['tds_5fquote_5fid_241', ['tds_quote_id', ['../a00542.html#ga8d8f2f1c91635ee95f30722208ae3043', 1, 'tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen): query.c'], │ │ │ │ │ ['../a00542.html#ga8d8f2f1c91635ee95f30722208ae3043', 1, 'tds_quote_id(TDSSOCKET *tds, char *buffer, const char *id, int idlen): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fquote_5fid_5frpc_242', ['tds_quote_id_rpc', ['../a00542.html#ga691e8752f4f84ed51b7f4d1447cb3d25', 1, 'tds_quote_id_rpc(TDSSOCKET *tds, char *buffer, const char *id, int idlen): query.c'], │ │ │ │ │ @@ -402,15 +402,15 @@ │ │ │ │ │ ['../a00538.html#ga9ff2436ea56ddcdecf984acf46ce4b90', 1, 'tds_read_config_info(TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale): config.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fread_5finterfaces_249', ['tds_read_interfaces', ['../a00538.html#ga6631af35ee817f93827c62bbda41674a', 1, 'config.c']]], │ │ │ │ │ ['tds_5fread_5fnamelist_250', ['tds_read_namelist', ['../a00544.html#gaeaaed2ea1d8c827da1a0f5b419524ae1', 1, 'token.c']]], │ │ │ │ │ ['tds_5fread_5fpacket_251', ['tds_read_packet', ['../a00543.html#ga410619783bdf2bb60b0f27a5578e0e07', 1, 'tds_read_packet(TDSSOCKET *tds): packet.c'], │ │ │ │ │ ['../a00543.html#ga410619783bdf2bb60b0f27a5578e0e07', 1, 'tds_read_packet(TDSSOCKET *tds): packet.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5freading_252', ['TDS_READING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a36ddbc8f326d6b297009a8fafd958529', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5freading_252', ['TDS_READING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a36ddbc8f326d6b297009a8fafd958529', 1, 'tds.h']]], │ │ │ │ │ ['tds_5frealloc_253', ['tds_realloc', ['../a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c', 1, 'tds_realloc(void **pp, size_t new_size): mem.c'], │ │ │ │ │ ['../a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c', 1, 'tds_realloc(void **pp, size_t new_size): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5frelease_5fdynamic_254', ['tds_release_dynamic', ['../a00541.html#gabf2fdb0def5388508602ee7dd2f49506', 1, 'tds_release_dynamic(TDSDYNAMIC **dyn): mem.c'], │ │ │ │ │ ['../a00541.html#gabf2fdb0def5388508602ee7dd2f49506', 1, 'tds_release_dynamic(TDSDYNAMIC **pdyn): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fresult_5finfo_255', ['tds_result_info', ['../a01158.html', 1, '']]], │ │ │ │ │ @@ -420,31 +420,31 @@ │ │ │ │ │ ['tds_5fselect_259', ['tds_select', ['../a00543.html#gad7aae89e32444ab30852fee056231403', 1, 'tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds): net.c'], │ │ │ │ │ ['../a00543.html#gad7aae89e32444ab30852fee056231403', 1, 'tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsend_5fcancel_260', ['tds_send_cancel', ['../a00542.html#ga11338742dc30fd0c2711f58eb830316f', 1, 'tds_send_cancel(TDSSOCKET *tds): query.c'], │ │ │ │ │ ['../a00542.html#ga11338742dc30fd0c2711f58eb830316f', 1, 'tds_send_cancel(TDSSOCKET *tds): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsend_5femulated_5fexecute_261', ['tds_send_emulated_execute', ['../a00542.html#ga02c6ce3ff96369603a6ee4efee64caae', 1, 'query.c']]], │ │ │ │ │ - ['tds_5fsending_262', ['TDS_SENDING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a2bad5be30bd85edc9495dae3d199d2c1', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fset_5fcolumn_5ftype_263', ['tds_set_column_type', ['../a00440.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ - ['../a00050.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ + ['tds_5fsending_262', ['TDS_SENDING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a2bad5be30bd85edc9495dae3d199d2c1', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fset_5fcolumn_5ftype_263', ['tds_set_column_type', ['../a00443.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ + ['../a00323.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fset_5fcur_5fcursor_264', ['tds_set_cur_cursor', ['../a00542.html#ga34fb1084682cc31fe02a4a7946955a5a', 1, 'query.c']]], │ │ │ │ │ ['tds_5fset_5fcur_5fdyn_265', ['tds_set_cur_dyn', ['../a00542.html#gae8b7db85af16701fc0604eb117cbd4e4', 1, 'tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ ['../a00542.html#gae8b7db85af16701fc0604eb117cbd4e4', 1, 'tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fset_5ficonv_5fname_266', ['tds_set_iconv_name', ['../a01368.html#a585ebac61354ce540d28f6da2d771b5b', 1, 'iconv.c']]], │ │ │ │ │ + ['tds_5fset_5ficonv_5fname_266', ['tds_set_iconv_name', ['../a01374.html#a585ebac61354ce540d28f6da2d771b5b', 1, 'iconv.c']]], │ │ │ │ │ ['tds_5fset_5finterfaces_5ffile_5floc_267', ['tds_set_interfaces_file_loc', ['../a00538.html#ga57cea6e376d7c2d28b811a5b0053210c', 1, 'tds_set_interfaces_file_loc(const char *interf): config.c'], │ │ │ │ │ ['../a00538.html#ga57cea6e376d7c2d28b811a5b0053210c', 1, 'tds_set_interfaces_file_loc(const char *interfloc): config.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fset_5fparam_5ftype_268', ['tds_set_param_type', ['../a00440.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ - ['../a00050.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ + ['tds_5fset_5fparam_5ftype_268', ['tds_set_param_type', ['../a00443.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ + ['../a00323.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fset_5fserver_269', ['tds_set_server', ['../a00440.html#a3ab8874994a0776acdaff797afdb710a', 1, 'login.c']]], │ │ │ │ │ - ['tds_5fset_5fstate_270', ['tds_set_state', ['../a00440.html#a16db200d2281f76fe46fc1cbe37ca9df', 1, 'util.c']]], │ │ │ │ │ + ['tds_5fset_5fserver_269', ['tds_set_server', ['../a00443.html#a3ab8874994a0776acdaff797afdb710a', 1, 'login.c']]], │ │ │ │ │ + ['tds_5fset_5fstate_270', ['tds_set_state', ['../a00443.html#a16db200d2281f76fe46fc1cbe37ca9df', 1, 'util.c']]], │ │ │ │ │ ['tds_5fsetup_5fsocket_271', ['tds_setup_socket', ['../a00543.html#gab604dd1d75afa8f852d1a6ee0b681974', 1, 'net.c']]], │ │ │ │ │ ['tds_5fskip_5fcomment_272', ['tds_skip_comment', ['../a00542.html#gacf0a4f2a1c2166588f4d232eda737cf5', 1, 'tds_skip_comment(const char *s): query.c'], │ │ │ │ │ ['../a00542.html#gacf0a4f2a1c2166588f4d232eda737cf5', 1, 'tds_skip_comment(const char *s): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fskip_5fcomment_5fucs2le_273', ['tds_skip_comment_ucs2le', ['../a00542.html#gac3124fe439d9c96236fc33af7793ffcf', 1, 'query.c']]], │ │ │ │ │ ['tds_5fskip_5fquoted_274', ['tds_skip_quoted', ['../a00542.html#ga0856776b63a475de7cd3fb62b1af2411', 1, 'tds_skip_quoted(const char *s): query.c'], │ │ │ │ │ ['../a00542.html#ga0856776b63a475de7cd3fb62b1af2411', 1, 'tds_skip_quoted(const char *s): query.c'] │ │ │ │ │ @@ -459,29 +459,29 @@ │ │ │ │ │ ['../a00543.html#gae36a2665a4183b4cb211d03e907112ee', 1, 'tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsocket_5fwrite_280', ['tds_socket_write', ['../a00543.html#gad6f81b48fbcfc18ce0b213dbbea47e30', 1, 'net.c']]], │ │ │ │ │ ['tds_5fstart_5fquery_281', ['tds_start_query', ['../a00542.html#ga0da385231bfa3dc49377e1fb2bea2c07', 1, 'tds_start_query(TDSSOCKET *tds, unsigned char packet_type): query.c'], │ │ │ │ │ ['../a00542.html#ga0da385231bfa3dc49377e1fb2bea2c07', 1, 'tds_start_query(TDSSOCKET *tds, unsigned char packet_type): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fstart_5fquery_5fhead_282', ['tds_start_query_head', ['../a00542.html#ga9ad2e6defce530a8778791cce0166ccd', 1, 'query.c']]], │ │ │ │ │ - ['tds_5fstate_283', ['TDS_STATE', ['../a00440.html#ac0d502ab90609c39fe7713fe0dfbefad', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fstates_284', ['tds_states', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fstate_283', ['TDS_STATE', ['../a00443.html#ac0d502ab90609c39fe7713fe0dfbefad', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fstates_284', ['tds_states', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fstaticin_5fstream_285', ['tds_staticin_stream', ['../a01078.html', 1, '']]], │ │ │ │ │ - ['tds_5fstaticin_5fstream_5finit_286', ['tds_staticin_stream_init', ['../a00077.html#aa9e1e45f0305622dd6aed9f8fe158581', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fstaticin_5fstream_5fread_287', ['tds_staticin_stream_read', ['../a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticin_5fstream_5finit_286', ['tds_staticin_stream_init', ['../a00275.html#aa9e1e45f0305622dd6aed9f8fe158581', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticin_5fstream_5fread_287', ['tds_staticin_stream_read', ['../a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fstaticout_5fstream_288', ['tds_staticout_stream', ['../a01082.html', 1, '']]], │ │ │ │ │ - ['tds_5fstaticout_5fstream_5finit_289', ['tds_staticout_stream_init', ['../a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fstaticout_5fstream_5fwrite_290', ['tds_staticout_stream_write', ['../a00077.html#a1d92ebe06f18378ac17ccfd20db05126', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticout_5fstream_5finit_289', ['tds_staticout_stream_init', ['../a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticout_5fstream_5fwrite_290', ['tds_staticout_stream_write', ['../a00275.html#a1d92ebe06f18378ac17ccfd20db05126', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fstr_5fempty_291', ['tds_str_empty', ['../a00545.html#ga676fd3c5c489584d09c89d66c7a0af2d', 1, 'tds_str_empty: tdsstring.c'], │ │ │ │ │ ['../a00545.html#ga676fd3c5c489584d09c89d66c7a0af2d', 1, 'tds_str_empty: tdsstring.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fstrftime_292', ['tds_strftime', ['../a00539.html#ga8c9652e8b1f3e56a3289fd71b12cee1d', 1, 'tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *dr, int prec): convert.c'], │ │ │ │ │ ['../a00539.html#ga8c9652e8b1f3e56a3289fd71b12cee1d', 1, 'tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *timeptr, int prec): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fstrndup_293', ['tds_strndup', ['../a00440.html#a0e1370e1c1f7ae1b2e0c304960c39161', 1, 'util.c']]], │ │ │ │ │ + ['tds_5fstrndup_293', ['tds_strndup', ['../a00443.html#a0e1370e1c1f7ae1b2e0c304960c39161', 1, 'util.c']]], │ │ │ │ │ ['tds_5fsubmit_5fbegin_5ftran_294', ['tds_submit_begin_tran', ['../a00542.html#ga7bf3670d3d6dabed469b9eb117298079', 1, 'tds_submit_begin_tran(TDSSOCKET *tds): query.c'], │ │ │ │ │ ['../a00542.html#ga7bf3670d3d6dabed469b9eb117298079', 1, 'tds_submit_begin_tran(TDSSOCKET *tds): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5fcommit_295', ['tds_submit_commit', ['../a00542.html#ga530538c4c975524cf0b771a550fc94a3', 1, 'tds_submit_commit(TDSSOCKET *tds, int cont): query.c'], │ │ │ │ │ ['../a00542.html#ga530538c4c975524cf0b771a550fc94a3', 1, 'tds_submit_commit(TDSSOCKET *tds, int cont): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5fexecdirect_296', ['tds_submit_execdirect', ['../a00542.html#gae603aed795a4c5bb26ab159a11256996', 1, 'tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head): query.c'], │ │ │ │ │ @@ -510,16 +510,16 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5frpc_304', ['tds_submit_rpc', ['../a00542.html#ga5f071b94ad7889690762dc85646c74ab', 1, 'tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head): query.c'], │ │ │ │ │ ['../a00542.html#ga5f071b94ad7889690762dc85646c74ab', 1, 'tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5funprepare_305', ['tds_submit_unprepare', ['../a00542.html#gaf573d8d4d2660c8c27770573fca05ff5', 1, 'tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ ['../a00542.html#gaf573d8d4d2660c8c27770573fca05ff5', 1, 'tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fswap_5fnumeric_306', ['tds_swap_numeric', ['../a00050.html#aa818c1cbf4d16e609b7e4895cc7ed74f', 1, 'data.c']]], │ │ │ │ │ - ['tds_5fsyb_5fver_307', ['TDS_SYB_VER', ['../a00440.html#aca53a637849948c4b7a07f69e40c685c', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fswap_5fnumeric_306', ['tds_swap_numeric', ['../a00323.html#aa818c1cbf4d16e609b7e4895cc7ed74f', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fsyb_5fver_307', ['TDS_SYB_VER', ['../a00443.html#aca53a637849948c4b7a07f69e40c685c', 1, 'tds.h']]], │ │ │ │ │ ['tds_5fsybase_5fdbdaterec_308', ['tds_sybase_dbdaterec', ['../a01322.html', 1, '']]], │ │ │ │ │ ['tds_5fsybase_5fdbdaterec2_309', ['tds_sybase_dbdaterec2', ['../a01330.html', 1, '']]], │ │ │ │ │ ['tds_5fsys_5ficonv_5fopen_310', ['tds_sys_iconv_open', ['../a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516', 1, 'tds_sys_iconv_open(const char *tocode, const char *fromcode): iconv.c'], │ │ │ │ │ ['../a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516', 1, 'tds_sys_iconv_open(const char *tocode, const char *fromcode): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fthread_311', ['tds_thread', ['../a01234.html', 1, '']]], │ │ │ │ │ ['tds_5ftime_312', ['tds_time', ['../a00718.html', 1, '']]], │ │ │ │ │ @@ -530,57 +530,57 @@ │ │ │ │ │ ['tds_5fupd_5fcol_315', ['tds_upd_col', ['../a01166.html', 1, '']]], │ │ │ │ │ ['tds_5fvariant_316', ['tds_variant', ['../a01134.html', 1, '']]], │ │ │ │ │ ['tds_5fvarmax_5fstream_317', ['tds_varmax_stream', ['../a00722.html', 1, '']]], │ │ │ │ │ ['tds_5fversion_318', ['tds_version', ['../a01118.html#a8f9f756b25fd18916a6080f9c22f835d', 1, 'tds_login']]], │ │ │ │ │ ['tds_5fwillconvert_319', ['tds_willconvert', ['../a00539.html#ga80487b313213f60d8be71a50a002bb2c', 1, 'tds_willconvert(int srctype, int desttype): convert.c'], │ │ │ │ │ ['../a00539.html#ga80487b313213f60d8be71a50a002bb2c', 1, 'tds_willconvert(int srctype, int desttype): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fwrite_5fdump_320', ['tds_write_dump', ['../a00440.html#a4766b1a553077cb3257d36b9ac28f5b5', 1, 'log.c']]], │ │ │ │ │ - ['tds_5fwritetext_5fcontinue_321', ['tds_writetext_continue', ['../a00059.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'], │ │ │ │ │ - ['../a00440.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'] │ │ │ │ │ - ]], │ │ │ │ │ - ['tds_5fwritetext_5fend_322', ['tds_writetext_end', ['../a00059.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'], │ │ │ │ │ - ['../a00440.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'] │ │ │ │ │ - ]], │ │ │ │ │ - ['tds_5fwritetext_5fstart_323', ['tds_writetext_start', ['../a00059.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'], │ │ │ │ │ - ['../a00440.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'] │ │ │ │ │ - ]], │ │ │ │ │ - ['tds_5fwriting_324', ['TDS_WRITING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a4a4fcc1840bee1e09521f08a0184d025', 1, 'tds.h']]], │ │ │ │ │ - ['tdsblob_325', ['TDSBLOB', ['../a00440.html#a47b154752431b2379988dbfdff394577', 1, 'tds.h']]], │ │ │ │ │ - ['tdscursor_326', ['TDSCURSOR', ['../a00440.html#afe061eb245f3006d93940a20415692a7', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fwrite_5fdump_320', ['tds_write_dump', ['../a00443.html#a4766b1a553077cb3257d36b9ac28f5b5', 1, 'log.c']]], │ │ │ │ │ + ['tds_5fwritetext_5fcontinue_321', ['tds_writetext_continue', ['../a00266.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'], │ │ │ │ │ + ['../a00443.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'] │ │ │ │ │ + ]], │ │ │ │ │ + ['tds_5fwritetext_5fend_322', ['tds_writetext_end', ['../a00266.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'], │ │ │ │ │ + ['../a00443.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'] │ │ │ │ │ + ]], │ │ │ │ │ + ['tds_5fwritetext_5fstart_323', ['tds_writetext_start', ['../a00266.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'], │ │ │ │ │ + ['../a00443.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'] │ │ │ │ │ + ]], │ │ │ │ │ + ['tds_5fwriting_324', ['TDS_WRITING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a4a4fcc1840bee1e09521f08a0184d025', 1, 'tds.h']]], │ │ │ │ │ + ['tdsblob_325', ['TDSBLOB', ['../a00443.html#a47b154752431b2379988dbfdff394577', 1, 'tds.h']]], │ │ │ │ │ + ['tdscursor_326', ['TDSCURSOR', ['../a00443.html#afe061eb245f3006d93940a20415692a7', 1, 'tds.h']]], │ │ │ │ │ ['tdsdaterec_327', ['tdsdaterec', ['../a01098.html', 1, 'tdsdaterec'], │ │ │ │ │ - ['../a00440.html#a3b40b4faf314267146c2005e56eebe7b', 1, 'TDSDATEREC: tds.h'] │ │ │ │ │ + ['../a00443.html#a3b40b4faf314267146c2005e56eebe7b', 1, 'TDSDATEREC: tds.h'] │ │ │ │ │ ]], │ │ │ │ │ ['tdsdatetime_328', ['tdsdatetime', ['../a01034.html', 1, '']]], │ │ │ │ │ ['tdsdatetime4_329', ['tdsdatetime4', ['../a01038.html', 1, '']]], │ │ │ │ │ ['tdsdbopen_330', ['tdsdbopen', ['../a00533.html#gae6da75d7b9e7b567890fc83c9459d824', 1, 'tdsdbopen(LOGINREC *login, const char *server, int msdblib): dblib.c'], │ │ │ │ │ ['../a00533.html#gae6da75d7b9e7b567890fc83c9459d824', 1, 'tdsdbopen(LOGINREC *login, const char *server, int msdblib): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tdsdump_5fclose_331', ['tdsdump_close', ['../a00440.html#a2f00fc0907d3bb04ce0eeb9738e08d0c', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fcol_332', ['tdsdump_col', ['../a00440.html#aaee3fe5c514ce5570c9548de9b16e0d9', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fdump_5fbuf_333', ['tdsdump_dump_buf', ['../a00440.html#a79449d2f35a8acc8ed0585044f75524d', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5flog_334', ['tdsdump_log', ['../a00440.html#ab45c291105027e69836002e1dd586141', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5foff_335', ['tdsdump_off', ['../a00440.html#ae3e5e04822595c54f86db66d9e40b93a', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fclose_331', ['tdsdump_close', ['../a00443.html#a2f00fc0907d3bb04ce0eeb9738e08d0c', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fcol_332', ['tdsdump_col', ['../a00443.html#aaee3fe5c514ce5570c9548de9b16e0d9', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fdump_5fbuf_333', ['tdsdump_dump_buf', ['../a00443.html#a79449d2f35a8acc8ed0585044f75524d', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5flog_334', ['tdsdump_log', ['../a00443.html#ab45c291105027e69836002e1dd586141', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5foff_335', ['tdsdump_off', ['../a00443.html#ae3e5e04822595c54f86db66d9e40b93a', 1, 'log.c']]], │ │ │ │ │ ['tdsdump_5foff_5fitem_336', ['tdsdump_off_item', ['../a01214.html', 1, '']]], │ │ │ │ │ - ['tdsdump_5fon_337', ['tdsdump_on', ['../a00440.html#ae5f50062ebebe46b951e5308cb2f5d7e', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fopen_338', ['tdsdump_open', ['../a00440.html#a24471508ddfde7cc0f8577801e70c42f', 1, 'log.c']]], │ │ │ │ │ - ['tdsdynamic_339', ['TDSDYNAMIC', ['../a00440.html#a856d78b7438fef3d6e6c0a8e4566d978', 1, 'tds.h']]], │ │ │ │ │ - ['tdsenv_340', ['TDSENV', ['../a00440.html#a42c559939ed16a39c0318a6f543c576e', 1, 'tds.h']]], │ │ │ │ │ - ['tdserror_341', ['tdserror', ['../a00440.html#abf18b98efef6ce2dc0b97d658a3a1918', 1, 'util.c']]], │ │ │ │ │ - ['tdsfilestream_342', ['TDSFILESTREAM', ['../a00059.html#ac2b7f7b7bb486f90e1053bfb829ca2ba', 1, 'bulk.c']]], │ │ │ │ │ + ['tdsdump_5fon_337', ['tdsdump_on', ['../a00443.html#ae5f50062ebebe46b951e5308cb2f5d7e', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fopen_338', ['tdsdump_open', ['../a00443.html#a24471508ddfde7cc0f8577801e70c42f', 1, 'log.c']]], │ │ │ │ │ + ['tdsdynamic_339', ['TDSDYNAMIC', ['../a00443.html#a856d78b7438fef3d6e6c0a8e4566d978', 1, 'tds.h']]], │ │ │ │ │ + ['tdsenv_340', ['TDSENV', ['../a00443.html#a42c559939ed16a39c0318a6f543c576e', 1, 'tds.h']]], │ │ │ │ │ + ['tdserror_341', ['tdserror', ['../a00443.html#abf18b98efef6ce2dc0b97d658a3a1918', 1, 'util.c']]], │ │ │ │ │ + ['tdsfilestream_342', ['TDSFILESTREAM', ['../a00266.html#ac2b7f7b7bb486f90e1053bfb829ca2ba', 1, 'bulk.c']]], │ │ │ │ │ ['tdsiconvdir_343', ['tdsiconvdir', ['../a00954.html', 1, '']]], │ │ │ │ │ ['tdsiconvinfo_344', ['tdsiconvinfo', ['../a00958.html', 1, '']]], │ │ │ │ │ ['tdsmoney_345', ['tdsmoney', ['../a01026.html', 1, '']]], │ │ │ │ │ ['tdsmoney4_346', ['tdsmoney4', ['../a01030.html', 1, '']]], │ │ │ │ │ ['tdsnumeric_347', ['tdsnumeric', ['../a01018.html', 1, '']]], │ │ │ │ │ ['tdsoldmoney_348', ['tdsoldmoney', ['../a01022.html', 1, '']]], │ │ │ │ │ - ['tdspbcb_349', ['TDSPBCB', ['../a00059.html#af31a5af3c7480dc3a16576dfc84f3b06', 1, 'bulk.c']]], │ │ │ │ │ - ['tdsresultinfo_350', ['TDSRESULTINFO', ['../a00440.html#a1efbb2f3844cb2ea89af03721ac67277', 1, 'tds.h']]], │ │ │ │ │ + ['tdspbcb_349', ['TDSPBCB', ['../a00266.html#af31a5af3c7480dc3a16576dfc84f3b06', 1, 'bulk.c']]], │ │ │ │ │ + ['tdsresultinfo_350', ['TDSRESULTINFO', ['../a00443.html#a1efbb2f3844cb2ea89af03721ac67277', 1, 'tds.h']]], │ │ │ │ │ ['tdsunique_351', ['tdsunique', ['../a01042.html', 1, '']]], │ │ │ │ │ - ['tdsvariant_352', ['TDSVARIANT', ['../a00440.html#a25488abe3449d4cdaaa97587d34f9174', 1, 'tds.h']]], │ │ │ │ │ + ['tdsvariant_352', ['TDSVARIANT', ['../a00443.html#a25488abe3449d4cdaaa97587d34f9174', 1, 'tds.h']]], │ │ │ │ │ ['tdsvername_5ft_353', ['tdsvername_t', ['../a00714.html', 1, '']]], │ │ │ │ │ ['term_5flen_354', ['term_len', ['../a00694.html#aae893302d33ee1e9d83c3d85d7390dca', 1, 'tds_file_stream']]], │ │ │ │ │ ['terminator_355', ['terminator', ['../a00694.html#a463c28a7d862c0a6d7bf3170dd614dc0', 1, 'tds_file_stream']]], │ │ │ │ │ ['the_20db_20lib_20api_356', ['The db-lib API', ['../a00526.html', 1, '']]], │ │ │ │ │ ['time_357', ['time', ['../a01094.html#afd6a58ec251f2c08a040917ba5a8cd3f', 1, 'TDS_DATETIMEALL::time'], │ │ │ │ │ ['../a01298.html#a6bb5dcd5b47813b71934546e0c60e035', 1, 'DBDATETIMEALL::time'] │ │ │ │ │ ]], │ │ │ │ │ @@ -590,12 +590,12 @@ │ │ │ │ │ ['tm_5fmin_361', ['tm_min', ['../a00718.html#ab50f30e05dc6b493d347918ab7ded1e9', 1, 'tds_time']]], │ │ │ │ │ ['tm_5fmon_362', ['tm_mon', ['../a00718.html#adce28126e9bbd4ef005e3bf181d59745', 1, 'tds_time']]], │ │ │ │ │ ['tm_5fns_363', ['tm_ns', ['../a00718.html#a386f1cfcabbe3ed86afe72bed75778cf', 1, 'tds_time']]], │ │ │ │ │ ['tm_5fsec_364', ['tm_sec', ['../a00718.html#adeb5e3f535662c0341d28f8d669cb59b', 1, 'tds_time']]], │ │ │ │ │ ['tm_5fyear_365', ['tm_year', ['../a00718.html#a3e27d50ebb5196356a6a8a9b495c8758', 1, 'tds_time']]], │ │ │ │ │ ['to_20add_20a_20new_20type_366', ['How to add a new type', ['../a01331.html', 1, '']]], │ │ │ │ │ ['todo_20list_367', ['Todo List', ['../a00524.html', 1, '']]], │ │ │ │ │ - ['token_2ec_368', ['token.c', ['../a00065.html', 1, '']]], │ │ │ │ │ + ['token_2ec_368', ['token.c', ['../a00272.html', 1, '']]], │ │ │ │ │ ['type_369', ['type', ['../a01331.html', 1, 'How to add a new type'], │ │ │ │ │ ['../a01174.html#a889aafdde1d57c9be0585326022831f0', 1, 'tds_cursor::type'] │ │ │ │ │ ]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_2.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['bcp_20functions_0', ['Internal bcp functions', ['../a00530.html', 1, '']]], │ │ │ │ │ - ['bcp_2ec_1', ['bcp.c', ['../a01353.html', 1, '']]], │ │ │ │ │ + ['bcp_2ec_1', ['bcp.c', ['../a01344.html', 1, '']]], │ │ │ │ │ ['bcp_5fbatch_2', ['bcp_batch', ['../a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01', 1, 'bcp_batch(DBPROCESS *dbproc): bcp.c'], │ │ │ │ │ ['../a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01', 1, 'bcp_batch(DBPROCESS *dbproc): bcp.c'] │ │ │ │ │ ]], │ │ │ │ │ ['bcp_5fbind_3', ['bcp_bind', ['../a00529.html#ga6cf03708baaf02eb016b9ee77160d879', 1, 'bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int type, int table_column): bcp.c'], │ │ │ │ │ ['../a00529.html#ga6cf03708baaf02eb016b9ee77160d879', 1, 'bcp_bind(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int db_vartype, int table_column): bcp.c'] │ │ │ │ │ ]], │ │ │ │ │ ['bcp_5fcolfmt_4', ['bcp_colfmt', ['../a00529.html#ga0ed03c69e698336d015bb315ad755fd5', 1, 'bcp_colfmt(DBPROCESS *dbproc, int host_column, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int colnum): bcp.c'], │ │ │ │ │ @@ -51,11 +51,11 @@ │ │ │ │ │ ]], │ │ │ │ │ ['binary_5fto_5fresult_20', ['binary_to_result', ['../a00539.html#gab09f8279ad6da8a0a6a935e5810d753a', 1, 'convert.c']]], │ │ │ │ │ ['block_5fsize_21', ['block_size', ['../a01178.html#aaad54522a6e04122eba4c37a200d3f20', 1, 'tds_env']]], │ │ │ │ │ ['buf_22', ['buf', ['../a01086.html#a1b4967f395da537910ded1b392dd5d9b', 1, 'tds_dynamic_stream']]], │ │ │ │ │ ['buffer_23', ['buffer', ['../a01066.html#a5ba4ad38fdcb68e7d0c7252be65a4ecc', 1, 'tds_output_stream']]], │ │ │ │ │ ['bug_20list_24', ['Bug List', ['../a00525.html', 1, '']]], │ │ │ │ │ ['bulk_20copy_20functions_25', ['Bulk copy functions', ['../a00529.html', 1, '']]], │ │ │ │ │ - ['bulk_2ec_26', ['bulk.c', ['../a00059.html', 1, '']]], │ │ │ │ │ + ['bulk_2ec_26', ['bulk.c', ['../a00266.html', 1, '']]], │ │ │ │ │ ['bulk_5fcopy_27', ['bulk_copy', ['../a01118.html#ad0d5f6fc4c5a5d64f11efd2e11ecaaa4', 1, 'tds_login']]], │ │ │ │ │ ['bulk_5fquery_28', ['bulk_query', ['../a01210.html#ac6ed7b8d3a4bd98a03f8ddb43b2e66c2', 1, 'tds_socket']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_4.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,10 +1,10 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['data_0', ['DATA', ['../a00554.html', 1, '']]], │ │ │ │ │ - ['data_2ec_1', ['data.c', ['../a00050.html', 1, '']]], │ │ │ │ │ + ['data_2ec_1', ['data.c', ['../a00323.html', 1, '']]], │ │ │ │ │ ['data_5flen_2', ['data_len', ['../a01198.html#aa9a66245e3c629a07111067cd1fdd0d4', 1, 'tds_packet']]], │ │ │ │ │ ['database_3', ['database', ['../a01178.html#ad05b5a83816aee8ff9858ddb1eb172b8', 1, 'tds_env']]], │ │ │ │ │ ['date_4', ['date', ['../a01094.html#a4697c11cf7da815856eb96bae4d57bac', 1, 'TDS_DATETIMEALL::date'], │ │ │ │ │ ['../a01298.html#afa93266cde7ab536615bca3d904aabed', 1, 'DBDATETIMEALL::date'] │ │ │ │ │ ]], │ │ │ │ │ ['datetime_20functions_5', ['Datetime functions', ['../a00532.html', 1, '']]], │ │ │ │ │ ['day_6', ['day', ['../a01098.html#a82d0cf263d8d4a3abcf84b9a146ddf83', 1, 'tdsdaterec']]], │ │ │ │ │ @@ -73,15 +73,15 @@ │ │ │ │ │ ['../a00527.html#ga87b39d9863316b4ba85654b0885d53a0', 1, 'dbcmd(DBPROCESS *dbproc, const char cmdstring[]): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcmdrow_31', ['dbcmdrow', ['../a00533.html#ga196f6d67de47f34a32fcc2103ab0f416', 1, 'dbcmdrow(DBPROCESS *dbproc): dblib.c'], │ │ │ │ │ ['../a00533.html#ga196f6d67de47f34a32fcc2103ab0f416', 1, 'dbcmdrow(DBPROCESS *dbproc): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcol_32', ['DBCOL', ['../a01310.html', 1, '']]], │ │ │ │ │ ['dbcol2_33', ['DBCOL2', ['../a01314.html', 1, '']]], │ │ │ │ │ - ['dbcolinfo_34', ['dbcolinfo', ['../a00167.html#a9b73fd1afa2c3ccfca481635212d2e43', 1, 'dbcolinfo(DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol): dblib.c'], │ │ │ │ │ + ['dbcolinfo_34', ['dbcolinfo', ['../a00155.html#a9b73fd1afa2c3ccfca481635212d2e43', 1, 'dbcolinfo(DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol): dblib.c'], │ │ │ │ │ ['../a00479.html#a9b73fd1afa2c3ccfca481635212d2e43', 1, 'dbcolinfo(DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcollen_35', ['dbcollen', ['../a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433', 1, 'dbcollen(DBPROCESS *dbproc, int column): dblib.c'], │ │ │ │ │ ['../a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433', 1, 'dbcollen(DBPROCESS *dbproc, int column): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcolname_36', ['dbcolname', ['../a00527.html#ga3bcdc8f584537b8278483f2cee59f130', 1, 'dbcolname(DBPROCESS *dbproc, int column): dblib.c'], │ │ │ │ │ ['../a00527.html#ga3bcdc8f584537b8278483f2cee59f130', 1, 'dbcolname(DBPROCESS *dbproc, int column): dblib.c'] │ │ │ │ │ @@ -149,15 +149,15 @@ │ │ │ │ │ ]], │ │ │ │ │ ['dbgetchar_60', ['dbgetchar', ['../a00527.html#ga8e3b1a5305a222b3c8ea7662e7685caf', 1, 'dbgetchar(DBPROCESS *dbprocess, int n): dblib.c'], │ │ │ │ │ ['../a00527.html#ga8e3b1a5305a222b3c8ea7662e7685caf', 1, 'dbgetchar(DBPROCESS *dbproc, int pos): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbgetmaxprocs_61', ['dbgetmaxprocs', ['../a00527.html#gadb34c5c2aae50ac9f2a26d8984136997', 1, 'dbgetmaxprocs(void): dblib.c'], │ │ │ │ │ ['../a00527.html#gadb34c5c2aae50ac9f2a26d8984136997', 1, 'dbgetmaxprocs(void): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['dbgetnull_62', ['dbgetnull', ['../a00167.html#aea6a865806d454280126de940478c214', 1, 'dblib.c']]], │ │ │ │ │ + ['dbgetnull_62', ['dbgetnull', ['../a00155.html#aea6a865806d454280126de940478c214', 1, 'dblib.c']]], │ │ │ │ │ ['dbgetpacket_63', ['dbgetpacket', ['../a00527.html#gabaf9aa756f7cb8bbec80d1c7201c6238', 1, 'dbgetpacket(DBPROCESS *dbproc): dblib.c'], │ │ │ │ │ ['../a00527.html#gabaf9aa756f7cb8bbec80d1c7201c6238', 1, 'dbgetpacket(DBPROCESS *dbproc): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbgetrow_64', ['dbgetrow', ['../a00527.html#ga60fe544491c760f8bc6c37bc7f777d70', 1, 'dbgetrow(DBPROCESS *dbproc, DBINT row): dblib.c'], │ │ │ │ │ ['../a00527.html#ga60fe544491c760f8bc6c37bc7f777d70', 1, 'dbgetrow(DBPROCESS *dbproc, DBINT row): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbgettime_65', ['dbgettime', ['../a00527.html#ga6ccffbb3f0cfb10883ad349f1e47c50e', 1, 'dbgettime(void): dblib.c'], │ │ │ │ │ @@ -183,19 +183,19 @@ │ │ │ │ │ ]], │ │ │ │ │ ['dbisopt_72', ['dbisopt', ['../a00527.html#gac3eb8cb53f50998403ea9aebc6263df9', 1, 'dbisopt(DBPROCESS *dbproc, int option, const char param[]): dblib.c'], │ │ │ │ │ ['../a00527.html#gac3eb8cb53f50998403ea9aebc6263df9', 1, 'dbisopt(DBPROCESS *dbproc, int option, const char param[]): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dblastrow_73', ['dblastrow', ['../a00533.html#ga13ead146339b43b3a4d9049eb124ef4b', 1, 'dblastrow(DBPROCESS *dbproc): dblib.c'], │ │ │ │ │ ['../a00533.html#ga13ead146339b43b3a4d9049eb124ef4b', 1, 'dblastrow(DBPROCESS *dbproc): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['dblib_2ec_74', ['dblib.c', ['../a00167.html', 1, '']]], │ │ │ │ │ + ['dblib_2ec_74', ['dblib.c', ['../a00155.html', 1, '']]], │ │ │ │ │ ['dblib_5fbuffer_5frow_75', ['dblib_buffer_row', ['../a00590.html', 1, '']]], │ │ │ │ │ ['dblib_5fcontext_76', ['dblib_context', ['../a00594.html', 1, '']]], │ │ │ │ │ ['dblib_5ferror_5fmessage_77', ['DBLIB_ERROR_MESSAGE', ['../a00533.html#ga8f2b5c6bcfed3eb54e97b42a6f8930f8', 1, 'dblib.c']]], │ │ │ │ │ - ['dblibcontext_78', ['DBLIBCONTEXT', ['../a00167.html#a8ff1bdcccb992dd688bc35d178c4bf3b', 1, 'dblib.c']]], │ │ │ │ │ + ['dblibcontext_78', ['DBLIBCONTEXT', ['../a00155.html#a8ff1bdcccb992dd688bc35d178c4bf3b', 1, 'dblib.c']]], │ │ │ │ │ ['dblogin_79', ['dblogin', ['../a00527.html#ga0c66b475d359cb3e69cdf4b163a07eeb', 1, 'dblogin(void): dblib.c'], │ │ │ │ │ ['../a00527.html#ga0c66b475d359cb3e69cdf4b163a07eeb', 1, 'dblogin(void): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbloginfree_80', ['dbloginfree', ['../a00527.html#gac1bdb1766b791153f37dceae8ff64ad6', 1, 'dbloginfree(LOGINREC *login): dblib.c'], │ │ │ │ │ ['../a00527.html#gac1bdb1766b791153f37dceae8ff64ad6', 1, 'dbloginfree(LOGINREC *login): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbmny4add_81', ['dbmny4add', ['../a00531.html#ga0a384938a6586b7411fc42420ffad6ed', 1, 'dbmny4add(DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum): dblib.c'], │ │ │ ├── ./usr/share/doc/freetds-doc/reference/all_8.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,17 +1,17 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['iconv_2ec_0', ['iconv.c', ['../a01365.html', 1, '(Global Namespace)'], │ │ │ │ │ - ['../a01368.html', 1, '(Global Namespace)'] │ │ │ │ │ + ['iconv_2ec_0', ['iconv.c', ['../a01371.html', 1, '(Global Namespace)'], │ │ │ │ │ + ['../a01374.html', 1, '(Global Namespace)'] │ │ │ │ │ ]], │ │ │ │ │ ['id_1', ['id', ['../a01182.html#a72332750aee80a0a94c92b35d7263d76', 1, 'tds_dynamic']]], │ │ │ │ │ ['in_5fbuf_2', ['in_buf', ['../a01210.html#a24c1995f6e8d0f9a5990998524b00b6b', 1, 'tds_socket']]], │ │ │ │ │ ['in_5fcancel_3', ['in_cancel', ['../a01210.html#ae67d850cfbedf6b1e6b02111d4388d42', 1, 'tds_socket']]], │ │ │ │ │ ['in_5fflag_4', ['in_flag', ['../a01210.html#a765e007b69a2e188c989f05a689f6a11', 1, 'tds_socket']]], │ │ │ │ │ ['in_5flen_5', ['in_len', ['../a01210.html#a0b6e65b9d00b3a4efbf78b2d866cca20', 1, 'tds_socket']]], │ │ │ │ │ ['in_5fpos_6', ['in_pos', ['../a01210.html#a9d1b4fc8e1e801fdc703ee7bb68d9838', 1, 'tds_socket']]], │ │ │ │ │ ['in_5frow_7', ['in_row', ['../a01210.html#ab6a91be7f3b9966216e621c60e8151f2', 1, 'tds_socket']]], │ │ │ │ │ ['internal_20bcp_20functions_8', ['Internal bcp functions', ['../a00530.html', 1, '']]], │ │ │ │ │ ['internals_9', ['Internals', ['../a00533.html', 1, '']]], │ │ │ │ │ ['introduction_10', ['Introduction', ['../a01331.html#intro', 1, '']]], │ │ │ │ │ ['ip_5faddrs_11', ['ip_addrs', ['../a01118.html#a6e04f60eb1fae0e632ab6cddbb804a55', 1, 'tds_login']]], │ │ │ │ │ - ['is_5fdatetime_5ftype_12', ['is_datetime_type', ['../a00440.html#a4a70a4d36139165f8be99ea6fffb57ce', 1, 'tds.h']]] │ │ │ │ │ + ['is_5fdatetime_5ftype_12', ['is_datetime_type', ['../a00443.html#a4a70a4d36139165f8be99ea6fffb57ce', 1, 'tds.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/defines_1.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,3 +1,3 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['is_5fdatetime_5ftype_0', ['is_datetime_type', ['../a00440.html#a4a70a4d36139165f8be99ea6fffb57ce', 1, 'tds.h']]] │ │ │ │ │ + ['is_5fdatetime_5ftype_0', ['is_datetime_type', ['../a00443.html#a4a70a4d36139165f8be99ea6fffb57ce', 1, 'tds.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/defines_2.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,7 +1,7 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['tds_5fis_5fmssql_0', ['TDS_IS_MSSQL', ['../a00440.html#a07e9371c3e72b9e319f4c14e6fc2c20f', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fis_5fsybase_1', ['TDS_IS_SYBASE', ['../a00440.html#a4840433488d0c66601ff4002a54b41d7', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fms_5fver_2', ['TDS_MS_VER', ['../a00440.html#a1f5fb9d2184949ed566c8ce308a4e91e', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fput_5ftinyint_3', ['tds_put_tinyint', ['../a00440.html#adfc186758f4c1856c01746b5436aff74', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fsyb_5fver_4', ['TDS_SYB_VER', ['../a00440.html#aca53a637849948c4b7a07f69e40c685c', 1, 'tds.h']]] │ │ │ │ │ + ['tds_5fis_5fmssql_0', ['TDS_IS_MSSQL', ['../a00443.html#a07e9371c3e72b9e319f4c14e6fc2c20f', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fis_5fsybase_1', ['TDS_IS_SYBASE', ['../a00443.html#a4840433488d0c66601ff4002a54b41d7', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fms_5fver_2', ['TDS_MS_VER', ['../a00443.html#a1f5fb9d2184949ed566c8ce308a4e91e', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fput_5ftinyint_3', ['tds_put_tinyint', ['../a00443.html#adfc186758f4c1856c01746b5436aff74', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fsyb_5fver_4', ['TDS_SYB_VER', ['../a00443.html#aca53a637849948c4b7a07f69e40c685c', 1, 'tds.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000000_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    apps → include Relation

    File in src/appsIncludes file in include
    bsqldb.csybdb.h
    datacopy.csybdb.h
    defncopy.csybdb.h
    freebcp.csybdb.h
    freebcp.cfreetds / tds.h
    tsql.cfreetds / tds.h
    fisql / edit.csybdb.h
    fisql / fisql.csybdb.h
    fisql / handlers.csybdb.h
    fisql / interrupt.csybdb.h
    │ │ │ │ +

    apps → include Relation

    File in src/appsIncludes file in include
    bsqldb.csybdb.h
    datacopy.csybdb.h
    defncopy.csybdb.h
    freebcp.csybdb.h
    freebcp.cfreetds / tds.h
    tsql.cfreetds / tds.h
    fisql / edit.csybdb.h
    fisql / fisql.csybdb.h
    fisql / handlers.csybdb.h
    fisql / interrupt.csybdb.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000001_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    ctlib → include Relation

    File in src/ctlibIncludes file in include
    ctutil.cfreetds / tds.h
    │ │ │ │ +

    ctlib → include Relation

    File in src/ctlibIncludes file in include
    ctutil.cfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000002_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    dblib → include Relation

    File in src/dblibIncludes file in include
    bcp.csybdb.h
    bcp.cfreetds / tds.h
    dblib.csybdb.h
    dblib.cfreetds / tds.h
    dbopen.csybdb.h
    dbopen.cfreetds / tds.h
    dbpivot.csybdb.h
    dbpivot.cfreetds / tds.h
    dbutil.csybdb.h
    dbutil.cfreetds / tds.h
    rpc.csybdb.h
    rpc.cfreetds / tds.h
    xact.csybdb.h
    xact.cfreetds / tds.h
    │ │ │ │ +

    dblib → include Relation

    File in src/dblibIncludes file in include
    bcp.csybdb.h
    bcp.cfreetds / tds.h
    dblib.csybdb.h
    dblib.cfreetds / tds.h
    dbopen.csybdb.h
    dbopen.cfreetds / tds.h
    dbpivot.csybdb.h
    dbpivot.cfreetds / tds.h
    dbutil.csybdb.h
    dbutil.cfreetds / tds.h
    rpc.csybdb.h
    rpc.cfreetds / tds.h
    xact.csybdb.h
    xact.cfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000006_000004.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    include → freetds Relation

    File in includeIncludes file in include/freetds
    ctlib.htds.h
    freetds / replacements.hreplacements / poll.h
    │ │ │ │ +

    include → freetds Relation

    File in includeIncludes file in include/freetds
    ctlib.htds.h
    freetds / replacements.hreplacements / poll.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000007_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    odbc → include Relation

    File in src/odbcIncludes file in include
    bcp.cfreetds / tds.h
    winlogin.cfreetds / tds.h
    winsetup.cfreetds / tds.h
    │ │ │ │ +

    odbc → include Relation

    File in src/odbcIncludes file in include
    bcp.cfreetds / tds.h
    winlogin.cfreetds / tds.h
    winsetup.cfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000008_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    pool → include Relation

    File in src/poolIncludes file in include
    pool.hfreetds / tds.h
    │ │ │ │ +

    pool → include Relation

    File in src/poolIncludes file in include
    pool.hfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000010_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    replacements → include Relation

    File in src/replacementsIncludes file in include
    iconv.cfreetds / tds.h
    │ │ │ │ +

    replacements → include Relation

    File in src/replacementsIncludes file in include
    iconv.cfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000011_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    server → include Relation

    File in src/serverIncludes file in include
    login.cfreetds / tds.h
    query.cfreetds / tds.h
    server.cfreetds / tds.h
    unittest.cfreetds / tds.h
    │ │ │ │ +

    server → include Relation

    File in src/serverIncludes file in include
    login.cfreetds / tds.h
    query.cfreetds / tds.h
    server.cfreetds / tds.h
    unittest.cfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_000013_000006.html │ │ │ │ @@ -69,14 +69,14 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    tds → include Relation

    File in src/tdsIncludes file in include
    bulk.cfreetds / tds.h
    challenge.cfreetds / tds.h
    config.cfreetds / tds.h
    convert.cfreetds / tds.h
    data.cfreetds / tds.h
    getmac.cfreetds / tds.h
    iconv.cfreetds / tds.h
    locale.cfreetds / tds.h
    log.cfreetds / tds.h
    login.cfreetds / tds.h
    mem.cfreetds / tds.h
    net.cfreetds / tds.h
    numeric.cfreetds / tds.h
    packet.cfreetds / tds.h
    query.cfreetds / tds.h
    random.cfreetds / tds.h
    read.cfreetds / tds.h
    sec_negotiate.cfreetds / tds.h
    stream.cfreetds / tds.h
    tds_checks.cfreetds / tds.h
    tls.cfreetds / tds.h
    token.cfreetds / tds.h
    util.cfreetds / tds.h
    vstrbuild.cfreetds / tds.h
    write.cfreetds / tds.h
    │ │ │ │ +

    tds → include Relation

    File in src/tdsIncludes file in include
    bulk.cfreetds / tds.h
    challenge.cfreetds / tds.h
    config.cfreetds / tds.h
    convert.cfreetds / tds.h
    data.cfreetds / tds.h
    getmac.cfreetds / tds.h
    iconv.cfreetds / tds.h
    locale.cfreetds / tds.h
    log.cfreetds / tds.h
    login.cfreetds / tds.h
    mem.cfreetds / tds.h
    net.cfreetds / tds.h
    numeric.cfreetds / tds.h
    packet.cfreetds / tds.h
    query.cfreetds / tds.h
    random.cfreetds / tds.h
    read.cfreetds / tds.h
    sec_negotiate.cfreetds / tds.h
    stream.cfreetds / tds.h
    tds_checks.cfreetds / tds.h
    tls.cfreetds / tds.h
    token.cfreetds / tds.h
    util.cfreetds / tds.h
    vstrbuild.cfreetds / tds.h
    write.cfreetds / tds.h
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_0da4150d9fb2a5fe66d7630d7a98e2a8.html │ │ │ │ @@ -80,29 +80,29 @@ │ │ │ │ Directory dependency graph for utils: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     bjoern-utf8.h
     bjoern-utf8.h
     
     des.h
     des.h
     
     dlist.h
     dlist.h
     
     dlist.tmpl.h
     dlist.tmpl.h
     
     hmac_md5.h
     hmac_md5.h
     
     md4.h
     md4.h
     
     md5.h
     md5.h
     
     string.h
     string.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_53adf0b982dc8545998aae3f283a5a58.html │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │

    │ │ │ │ Directories

    │ │ │ │  fisql │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     freebcp.h
     freebcp.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_807893467092ee3c78fdb68ff7be3fa1.html │ │ │ │ @@ -80,21 +80,21 @@ │ │ │ │ Directory dependency graph for odbc: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     error_export.h
     error_export.h
     
     odbc_export.h
     odbc_export.h
     
     resource.h
     resource.h
     
     sqlwparams.h
     sqlwparams.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_88c98ec7a422f3972a0293d4e4a2e62e.html │ │ │ │ @@ -75,17 +75,17 @@ │ │ │ │
    │ │ │ │
    vms Directory Reference
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     stdint.h
     stdint.h
     
     vargdefs.h
     vargdefs.h
     
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_a40d3d1dfafadc5a5d3063931c3db36e.html │ │ │ │ @@ -80,21 +80,21 @@ │ │ │ │ Directory dependency graph for dblib: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     bcp.c
     Implementation of db-lib bulk copy functions.
     bcp.c
     Implementation of db-lib bulk copy functions.
     
     buffering.h
     buffering.h
     
     dblib.c
     Main implementation file for db-lib.
     dblib.c
     Main implementation file for db-lib.
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_b663d705931e630ae54c555929c6aaad.html │ │ │ │ @@ -83,15 +83,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     poll.h
     Provide poll call where missing.
     
     readpassphrase.h
     readpassphrase.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_bee58700ce781bb55a015c4ff9b057cf.html │ │ │ │ @@ -80,18 +80,18 @@ │ │ │ │ Directory dependency graph for replacements: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     iconv.c
     This file implements a very simple iconv.
     iconv.c
     This file implements a very simple iconv.
     
     iconv_charsets.h
     iconv_charsets.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_cbfc6763032c97ce96998fb3f3059024.html │ │ │ │ @@ -80,21 +80,21 @@ │ │ │ │ Directory dependency graph for fisql: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     edit.h
     edit.h
     
     handlers.h
     handlers.h
     
     interrupt.h
     interrupt.h
     
     terminal.h
     terminal.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_d44c64559bbebec7f509842c48db8b23.html │ │ │ │ @@ -85,42 +85,42 @@ │ │ │ │

    │ │ │ │ Directories

    │ │ │ │  freetds │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     bkpublic.h
     bkpublic.h
     
     config.h
     config.h
     
     cspublic.h
     cspublic.h
     
     cstypes.h
     cstypes.h
     
     ctlib.h
     ctlib.h
     
     ctpublic.h
     ctpublic.h
     
     dblib.h
     dblib.h
     
     odbcss.h
     odbcss.h
     
     sqldb.h
     sqldb.h
     
     sqlfront.h
     sqlfront.h
     
     sybdb.h
     Primary include file for db-lib applications.
     
     syberror.h
     syberror.h
     
     sybfront.h
     
     tds_sysdep_public.h
     tds_sysdep_public.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_e2de76ba30642a92752881ffd21fbc7e.html │ │ │ │ @@ -80,15 +80,15 @@ │ │ │ │ Directory dependency graph for pool: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     pool.h
     pool.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_f46f2c05841018b6ef8dbd3316ddb41a.html │ │ │ │ @@ -87,70 +87,70 @@ │ │ │ │  replacements │ │ │ │   │ │ │ │  utils │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     alloca.h
     alloca.h
     
     bool.h
     bool.h
     
     bytes.h
     bytes.h
     
     charset_lookup.h
     charset_lookup.h
     
     checks.h
     checks.h
     
     configs.h
     configs.h
     
     convert.h
     convert.h
     
     data.h
     data.h
     
     encodings.h
     encodings.h
     
     enum_cap.h
     enum_cap.h
     
     iconv.h
     iconv.h
     
     macros.h
     macros.h
     
     odbc.h
     odbc.h
     
     popvis.h
     popvis.h
     
     proto.h
     proto.h
     
     pushvis.h
     pushvis.h
     
     replacements.h
     replacements.h
     
     server.h
     server.h
     
     stream.h
     stream.h
     
     sysconfdir.h
     
     sysdep_private.h
     sysdep_private.h
     
     tds.h
     Main include file for libtds.
     tds.h
     Main include file for libtds.
     
     thread.h
     thread.h
     
     time.h
     time.h
     
     tls.h
     tls.h
     
     utils.h
     utils.h
     
     version.h
     version.h
     
     windows.h
     windows.h
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/dir_f7308370ebb9c2ff76f3bdfe0748aabf.html │ │ │ │ @@ -80,41 +80,41 @@ │ │ │ │ Directory dependency graph for tds: │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Files

     bulk.c
     Handle bulk copy.
     bulk.c
     Handle bulk copy.
     
     data.c
     Handle different data handling from network.
     data.c
     Handle different data handling from network.
     
     iconv.c
     Handle character conversions to/from server.
     iconv.c
     Handle character conversions to/from server.
     
     num_limits.h
     num_limits.h
     
     read.c
     Grab data from TDS packets.
     read.c
     Grab data from TDS packets.
     
     sec_negotiate_gnutls.h
     sec_negotiate_gnutls.h
     
     sec_negotiate_openssl.h
     sec_negotiate_openssl.h
     
     stream.c
     Handle stream of data.
     stream.c
     Handle stream of data.
     
     tds_types.h
     tds_types.h
     
     tds_willconvert.h
     tds_willconvert.h
     
     token.c
     Contains all routines to get replies from server.
     token.c
     Contains all routines to get replies from server.
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/enums_0.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,5 +1,5 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['tds_5fbcp_5fdirections_0', ['tds_bcp_directions', ['../a00440.html#ad5c5c8cb776334af4b0ebf7a0d740cb2', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fend_1', ['tds_end', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519c', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fstates_2', ['tds_states', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33', 1, 'tds.h']]] │ │ │ │ │ + ['tds_5fbcp_5fdirections_0', ['tds_bcp_directions', ['../a00443.html#ad5c5c8cb776334af4b0ebf7a0d740cb2', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fend_1', ['tds_end', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519c', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fstates_2', ['tds_states', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33', 1, 'tds.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/enumvalues_0.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,16 +1,16 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['tds_5fdead_0', ['TDS_DEAD', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33af087b64970a1fb35bbcf1bc6ea7a643d', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fcancelled_1', ['TDS_DONE_CANCELLED', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca202254cfd6784404cf1aa22bc7147c86', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fcount_2', ['TDS_DONE_COUNT', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519caf17d0c6591e318014c806a10c2f0270b', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5ferror_3', ['TDS_DONE_ERROR', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519caa9d79a3b62e3321332223ac3d1a5b18d', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5ffinal_4', ['TDS_DONE_FINAL', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca7ed9046db24ad78bb94c2b12d6e11f46', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5finxact_5', ['TDS_DONE_INXACT', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519cac79a30d1a0bac125e77d87f5d87bc2b2', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fmore_5fresults_6', ['TDS_DONE_MORE_RESULTS', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca688b8bf555ce6ae72f3e047177bfc966', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fproc_7', ['TDS_DONE_PROC', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519cae170f368306f421d507c6f08e4d48d9a', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fdone_5fsrverror_8', ['TDS_DONE_SRVERROR', ['../a00440.html#aa8d8044be84bcde003f28ec25a77519ca7bfe89d6f8fc309eae412ad0a503e34c', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fidle_9', ['TDS_IDLE', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33ad1586abc1f75b7f3d640b994afe310e9', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fpending_10', ['TDS_PENDING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a00f6d5ac5560f2f44661e599241849a8', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5freading_11', ['TDS_READING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a36ddbc8f326d6b297009a8fafd958529', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fsending_12', ['TDS_SENDING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a2bad5be30bd85edc9495dae3d199d2c1', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fwriting_13', ['TDS_WRITING', ['../a00440.html#a87cdae58f91ebe9229206bf0628f8e33a4a4fcc1840bee1e09521f08a0184d025', 1, 'tds.h']]] │ │ │ │ │ + ['tds_5fdead_0', ['TDS_DEAD', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33af087b64970a1fb35bbcf1bc6ea7a643d', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fcancelled_1', ['TDS_DONE_CANCELLED', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca202254cfd6784404cf1aa22bc7147c86', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fcount_2', ['TDS_DONE_COUNT', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519caf17d0c6591e318014c806a10c2f0270b', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5ferror_3', ['TDS_DONE_ERROR', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519caa9d79a3b62e3321332223ac3d1a5b18d', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5ffinal_4', ['TDS_DONE_FINAL', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca7ed9046db24ad78bb94c2b12d6e11f46', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5finxact_5', ['TDS_DONE_INXACT', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519cac79a30d1a0bac125e77d87f5d87bc2b2', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fmore_5fresults_6', ['TDS_DONE_MORE_RESULTS', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca688b8bf555ce6ae72f3e047177bfc966', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fproc_7', ['TDS_DONE_PROC', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519cae170f368306f421d507c6f08e4d48d9a', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fdone_5fsrverror_8', ['TDS_DONE_SRVERROR', ['../a00443.html#aa8d8044be84bcde003f28ec25a77519ca7bfe89d6f8fc309eae412ad0a503e34c', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fidle_9', ['TDS_IDLE', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33ad1586abc1f75b7f3d640b994afe310e9', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fpending_10', ['TDS_PENDING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a00f6d5ac5560f2f44661e599241849a8', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5freading_11', ['TDS_READING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a36ddbc8f326d6b297009a8fafd958529', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fsending_12', ['TDS_SENDING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a2bad5be30bd85edc9495dae3d199d2c1', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fwriting_13', ['TDS_WRITING', ['../a00443.html#a87cdae58f91ebe9229206bf0628f8e33a4a4fcc1840bee1e09521f08a0184d025', 1, 'tds.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files.html │ │ │ │ @@ -74,103 +74,103 @@ │ │ │ │
    │ │ │ │
    Here is a list of all documented files with brief descriptions:
    │ │ │ │
    [detail level 1234]
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
      include
      freetds
      replacements
     poll.hProvide poll call where missing
     readpassphrase.h
     readpassphrase.h
      utils
     bjoern-utf8.h
     des.h
     dlist.h
     dlist.tmpl.h
     hmac_md5.h
     md4.h
     md5.h
     string.h
     alloca.h
     bool.h
     bytes.h
     charset_lookup.h
     checks.h
     configs.h
     convert.h
     data.h
     encodings.h
     enum_cap.h
     iconv.h
     macros.h
     odbc.h
     popvis.h
     proto.h
     pushvis.h
     replacements.h
     server.h
     stream.h
     bjoern-utf8.h
     des.h
     dlist.h
     dlist.tmpl.h
     hmac_md5.h
     md4.h
     md5.h
     string.h
     alloca.h
     bool.h
     bytes.h
     charset_lookup.h
     checks.h
     configs.h
     convert.h
     data.h
     encodings.h
     enum_cap.h
     iconv.h
     macros.h
     odbc.h
     popvis.h
     proto.h
     pushvis.h
     replacements.h
     server.h
     stream.h
     sysconfdir.h
     sysdep_private.h
     tds.hMain include file for libtds
     thread.h
     time.h
     tls.h
     utils.h
     version.h
     windows.h
     bkpublic.h
     config.h
     cspublic.h
     cstypes.h
     ctlib.h
     ctpublic.h
     dblib.h
     odbcss.h
     sqldb.h
     sqlfront.h
     sysdep_private.h
     tds.hMain include file for libtds
     thread.h
     time.h
     tls.h
     utils.h
     version.h
     windows.h
     bkpublic.h
     config.h
     cspublic.h
     cstypes.h
     ctlib.h
     ctpublic.h
     dblib.h
     odbcss.h
     sqldb.h
     sqlfront.h
     sybdb.hPrimary include file for db-lib applications
     syberror.h
     syberror.h
     sybfront.h
     tds_sysdep_public.h
     tds_sysdep_public.h
      src
      apps
      fisql
     edit.h
     handlers.h
     interrupt.h
     terminal.h
     freebcp.h
     edit.h
     handlers.h
     interrupt.h
     terminal.h
     freebcp.h
      dblib
     bcp.cImplementation of db-lib bulk copy functions
     buffering.h
     dblib.cMain implementation file for db-lib
     bcp.cImplementation of db-lib bulk copy functions
     buffering.h
     dblib.cMain implementation file for db-lib
      odbc
     error_export.h
     odbc_export.h
     resource.h
     sqlwparams.h
     error_export.h
     odbc_export.h
     resource.h
     sqlwparams.h
      pool
     pool.h
     pool.h
      replacements
     iconv.cThis file implements a very simple iconv
     iconv_charsets.h
     iconv.cThis file implements a very simple iconv
     iconv_charsets.h
      tds
     bulk.cHandle bulk copy
     data.cHandle different data handling from network
     iconv.cHandle character conversions to/from server
     num_limits.h
     read.cGrab data from TDS packets
     sec_negotiate_gnutls.h
     sec_negotiate_openssl.h
     stream.cHandle stream of data
     tds_types.h
     tds_willconvert.h
     token.cContains all routines to get replies from server
     bulk.cHandle bulk copy
     data.cHandle different data handling from network
     iconv.cHandle character conversions to/from server
     num_limits.h
     read.cGrab data from TDS packets
     sec_negotiate_gnutls.h
     sec_negotiate_openssl.h
     stream.cHandle stream of data
     tds_types.h
     tds_willconvert.h
     token.cContains all routines to get replies from server
      vms
     stdint.h
     vargdefs.h
     stdint.h
     vargdefs.h
      win32
      freetds
     sysconfdir.h
     initnet.c
    │ │ │ │
    │ │ │ │
    │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files_0.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['bcp_2ec_0', ['bcp.c', ['../a01353.html', 1, '']]], │ │ │ │ │ - ['bulk_2ec_1', ['bulk.c', ['../a00059.html', 1, '']]] │ │ │ │ │ + ['bcp_2ec_0', ['bcp.c', ['../a01344.html', 1, '']]], │ │ │ │ │ + ['bulk_2ec_1', ['bulk.c', ['../a00266.html', 1, '']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files_1.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['data_2ec_0', ['data.c', ['../a00050.html', 1, '']]], │ │ │ │ │ - ['dblib_2ec_1', ['dblib.c', ['../a00167.html', 1, '']]] │ │ │ │ │ + ['data_2ec_0', ['data.c', ['../a00323.html', 1, '']]], │ │ │ │ │ + ['dblib_2ec_1', ['dblib.c', ['../a00155.html', 1, '']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files_2.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,5 +1,5 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['iconv_2ec_0', ['iconv.c', ['../a01365.html', 1, '(Global Namespace)'], │ │ │ │ │ - ['../a01368.html', 1, '(Global Namespace)'] │ │ │ │ │ + ['iconv_2ec_0', ['iconv.c', ['../a01371.html', 1, '(Global Namespace)'], │ │ │ │ │ + ['../a01374.html', 1, '(Global Namespace)'] │ │ │ │ │ ]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files_4.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,3 +1,3 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['read_2ec_0', ['read.c', ['../a00035.html', 1, '']]] │ │ │ │ │ + ['read_2ec_0', ['read.c', ['../a00287.html', 1, '']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files_5.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['stream_2ec_0', ['stream.c', ['../a00077.html', 1, '']]], │ │ │ │ │ + ['stream_2ec_0', ['stream.c', ['../a00275.html', 1, '']]], │ │ │ │ │ ['sybdb_2eh_1', ['sybdb.h', ['../a00479.html', 1, '']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/files_6.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,4 +1,4 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['tds_2eh_0', ['tds.h', ['../a00440.html', 1, '']]], │ │ │ │ │ - ['token_2ec_1', ['token.c', ['../a00065.html', 1, '']]] │ │ │ │ │ + ['tds_2eh_0', ['tds.h', ['../a00443.html', 1, '']]], │ │ │ │ │ + ['token_2ec_1', ['token.c', ['../a00272.html', 1, '']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/functions_0.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,18 +1,18 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['_5fbcp_5fconvert_5fin_0', ['_bcp_convert_in', ['../a01353.html#a4e7740b6f755d7d3f2502a47b7d71a85', 1, 'bcp.c']]], │ │ │ │ │ - ['_5fbcp_5fconvert_5fout_1', ['_bcp_convert_out', ['../a01353.html#a230fa5b56ae4e3509a69bd266495732b', 1, 'bcp.c']]], │ │ │ │ │ + ['_5fbcp_5fconvert_5fin_0', ['_bcp_convert_in', ['../a01344.html#a4e7740b6f755d7d3f2502a47b7d71a85', 1, 'bcp.c']]], │ │ │ │ │ + ['_5fbcp_5fconvert_5fout_1', ['_bcp_convert_out', ['../a01344.html#a230fa5b56ae4e3509a69bd266495732b', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fexec_5fin_2', ['_bcp_exec_in', ['../a00530.html#ga7370f1223f13510d6b33e98f2de09fb5', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fexec_5fout_3', ['_bcp_exec_out', ['../a00530.html#gae67546338cb9542a4902aa914f57f314', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5ffgets_4', ['_bcp_fgets', ['../a00530.html#gab672799007e720bf918caa1b33c989ea', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5ffree_5fcolumns_5', ['_bcp_free_columns', ['../a00530.html#gacf69ac4cbe8e3c3e6ea665e31e5e85b8', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5ffree_5fstorage_6', ['_bcp_free_storage', ['../a00530.html#gaa134c1c3ccc4326e693adb8357272f1d', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fget_5fcol_5fdata_7', ['_bcp_get_col_data', ['../a00530.html#ga0f8def4cad04c5c1e27c2b653d482dd8', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fget_5fterm_5fvar_8', ['_bcp_get_term_var', ['../a00530.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7', 1, 'bcp.c']]], │ │ │ │ │ - ['_5fbcp_5fno_5fget_5fcol_5fdata_9', ['_bcp_no_get_col_data', ['../a01353.html#ad53f508d8f2177a898f8022736834afd', 1, 'bcp.c']]], │ │ │ │ │ + ['_5fbcp_5fno_5fget_5fcol_5fdata_9', ['_bcp_no_get_col_data', ['../a01344.html#ad53f508d8f2177a898f8022736834afd', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5fread_5fhostfile_10', ['_bcp_read_hostfile', ['../a00530.html#ga1b57d952a9d72f375c3296124affa908', 1, 'bcp.c']]], │ │ │ │ │ ['_5fbcp_5freadfmt_5fcolinfo_11', ['_bcp_readfmt_colinfo', ['../a00530.html#gafc23d62bc86b38fb757e3ac4aadca0a4', 1, 'bcp.c']]], │ │ │ │ │ ['_5fdbcoldata_12', ['_dbcoldata', ['../a00533.html#ga3c6f474c0662158f3100fe464bf077d9', 1, 'dblib.c']]], │ │ │ │ │ ['_5fdblib_5fcheck_5fand_5fhandle_5finterrupt_13', ['_dblib_check_and_handle_interrupt', ['../a00533.html#gadf15185b0d417edc0bb8a6a4f0bae727', 1, '_dblib_check_and_handle_interrupt(void *vdbproc): dbutil.c'], │ │ │ │ │ ['../a00533.html#gadf15185b0d417edc0bb8a6a4f0bae727', 1, '_dblib_check_and_handle_interrupt(void *vdbproc): dbutil.c'] │ │ │ │ │ ]], │ │ │ │ │ ['_5fdbresults_14', ['_dbresults', ['../a00527.html#gaf1879b85e8238c015b9648d077665285', 1, 'dblib.c']]] │ │ │ ├── ./usr/share/doc/freetds-doc/reference/functions_3.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -58,15 +58,15 @@ │ │ │ │ │ ]], │ │ │ │ │ ['dbcmd_19', ['dbcmd', ['../a00527.html#ga87b39d9863316b4ba85654b0885d53a0', 1, 'dbcmd(DBPROCESS *dbproc, const char cmdstring[]): dblib.c'], │ │ │ │ │ ['../a00527.html#ga87b39d9863316b4ba85654b0885d53a0', 1, 'dbcmd(DBPROCESS *dbproc, const char cmdstring[]): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcmdrow_20', ['dbcmdrow', ['../a00533.html#ga196f6d67de47f34a32fcc2103ab0f416', 1, 'dbcmdrow(DBPROCESS *dbproc): dblib.c'], │ │ │ │ │ ['../a00533.html#ga196f6d67de47f34a32fcc2103ab0f416', 1, 'dbcmdrow(DBPROCESS *dbproc): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['dbcolinfo_21', ['dbcolinfo', ['../a00167.html#a9b73fd1afa2c3ccfca481635212d2e43', 1, 'dbcolinfo(DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol): dblib.c'], │ │ │ │ │ + ['dbcolinfo_21', ['dbcolinfo', ['../a00155.html#a9b73fd1afa2c3ccfca481635212d2e43', 1, 'dbcolinfo(DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol): dblib.c'], │ │ │ │ │ ['../a00479.html#a9b73fd1afa2c3ccfca481635212d2e43', 1, 'dbcolinfo(DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcollen_22', ['dbcollen', ['../a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433', 1, 'dbcollen(DBPROCESS *dbproc, int column): dblib.c'], │ │ │ │ │ ['../a00527.html#ga89fc5589b4bf41932324d2cfc6ad6433', 1, 'dbcollen(DBPROCESS *dbproc, int column): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbcolname_23', ['dbcolname', ['../a00527.html#ga3bcdc8f584537b8278483f2cee59f130', 1, 'dbcolname(DBPROCESS *dbproc, int column): dblib.c'], │ │ │ │ │ ['../a00527.html#ga3bcdc8f584537b8278483f2cee59f130', 1, 'dbcolname(DBPROCESS *dbproc, int column): dblib.c'] │ │ │ │ │ @@ -131,15 +131,15 @@ │ │ │ │ │ ]], │ │ │ │ │ ['dbgetchar_44', ['dbgetchar', ['../a00527.html#ga8e3b1a5305a222b3c8ea7662e7685caf', 1, 'dbgetchar(DBPROCESS *dbproc, int pos): dblib.c'], │ │ │ │ │ ['../a00527.html#ga8e3b1a5305a222b3c8ea7662e7685caf', 1, 'dbgetchar(DBPROCESS *dbprocess, int n): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbgetmaxprocs_45', ['dbgetmaxprocs', ['../a00527.html#gadb34c5c2aae50ac9f2a26d8984136997', 1, 'dbgetmaxprocs(void): dblib.c'], │ │ │ │ │ ['../a00527.html#gadb34c5c2aae50ac9f2a26d8984136997', 1, 'dbgetmaxprocs(void): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['dbgetnull_46', ['dbgetnull', ['../a00167.html#aea6a865806d454280126de940478c214', 1, 'dblib.c']]], │ │ │ │ │ + ['dbgetnull_46', ['dbgetnull', ['../a00155.html#aea6a865806d454280126de940478c214', 1, 'dblib.c']]], │ │ │ │ │ ['dbgetpacket_47', ['dbgetpacket', ['../a00527.html#gabaf9aa756f7cb8bbec80d1c7201c6238', 1, 'dbgetpacket(DBPROCESS *dbproc): dblib.c'], │ │ │ │ │ ['../a00527.html#gabaf9aa756f7cb8bbec80d1c7201c6238', 1, 'dbgetpacket(DBPROCESS *dbproc): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbgetrow_48', ['dbgetrow', ['../a00527.html#ga60fe544491c760f8bc6c37bc7f777d70', 1, 'dbgetrow(DBPROCESS *dbproc, DBINT row): dblib.c'], │ │ │ │ │ ['../a00527.html#ga60fe544491c760f8bc6c37bc7f777d70', 1, 'dbgetrow(DBPROCESS *dbproc, DBINT row): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ ['dbgettime_49', ['dbgettime', ['../a00527.html#ga6ccffbb3f0cfb10883ad349f1e47c50e', 1, 'dbgettime(void): dblib.c'], │ │ │ ├── ./usr/share/doc/freetds-doc/reference/functions_8.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,23 +1,23 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['tds4_5fsend_5femulated_5frpc_0', ['tds4_send_emulated_rpc', ['../a00542.html#ga2d0a06c1a30dd2470dc7a788de21b080', 1, 'query.c']]], │ │ │ │ │ - ['tds5_5fbcp_5fadd_5ffixed_5fcolumns_1', ['tds5_bcp_add_fixed_columns', ['../a00059.html#a91cf6a009e823417d6c8849256cb211c', 1, 'bulk.c']]], │ │ │ │ │ - ['tds5_5fbcp_5fadd_5fvariable_5fcolumns_2', ['tds5_bcp_add_variable_columns', ['../a00059.html#a5c906a8b65694148ad530a22ce019f06', 1, 'bulk.c']]], │ │ │ │ │ + ['tds5_5fbcp_5fadd_5ffixed_5fcolumns_1', ['tds5_bcp_add_fixed_columns', ['../a00266.html#a91cf6a009e823417d6c8849256cb211c', 1, 'bulk.c']]], │ │ │ │ │ + ['tds5_5fbcp_5fadd_5fvariable_5fcolumns_2', ['tds5_bcp_add_variable_columns', ['../a00266.html#a5c906a8b65694148ad530a22ce019f06', 1, 'bulk.c']]], │ │ │ │ │ ['tds5_5ffix_5fdot_5fquery_3', ['tds5_fix_dot_query', ['../a00542.html#ga8853354723094c8efcd87fabf675c64f', 1, 'query.c']]], │ │ │ │ │ ['tds5_5fprocess_5fdyn_5fresult2_4', ['tds5_process_dyn_result2', ['../a00544.html#gae688b515631141acfbc41bbb91c8b921', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fprocess_5foptioncmd_5', ['tds5_process_optioncmd', ['../a00544.html#gaa6a7e5aeb10a1322911c47be9c43e2d2', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fprocess_5fresult_6', ['tds5_process_result', ['../a00544.html#ga547b2f48659f77a69aa802d861ac827d', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fprocess_5fresult2_7', ['tds5_process_result2', ['../a00544.html#gabe2bdd5a41ce067cb31aef18ff81cb1c', 1, 'token.c']]], │ │ │ │ │ ['tds5_5fput_5fparams_8', ['tds5_put_params', ['../a00542.html#ga4f1f0a4f77bc4ea1440dfdebc19a157c', 1, 'query.c']]], │ │ │ │ │ ['tds71_5fread_5ftable_5fnames_9', ['tds71_read_table_names', ['../a00544.html#ga7482b5730d880fcedbe9fcd609a550ce', 1, 'token.c']]], │ │ │ │ │ ['tds71_5fsubmit_5fprepexec_10', ['tds71_submit_prepexec', ['../a00542.html#ga08877c101704bebe4fa57e0849dc272d', 1, 'tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params): query.c'], │ │ │ │ │ ['../a00542.html#ga08877c101704bebe4fa57e0849dc272d', 1, 'tds71_submit_prepexec(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds7_5fbcp_5fsend_5fcolmetadata_11', ['tds7_bcp_send_colmetadata', ['../a00059.html#a4daaa551e54dbd978650e2eef89e09ff', 1, 'bulk.c']]], │ │ │ │ │ - ['tds7_5fbuild_5fbulk_5finsert_5fstmt_12', ['tds7_build_bulk_insert_stmt', ['../a00059.html#a3118c7232bc9c3e47f8ba872bb39e967', 1, 'bulk.c']]], │ │ │ │ │ + ['tds7_5fbcp_5fsend_5fcolmetadata_11', ['tds7_bcp_send_colmetadata', ['../a00266.html#a4daaa551e54dbd978650e2eef89e09ff', 1, 'bulk.c']]], │ │ │ │ │ + ['tds7_5fbuild_5fbulk_5finsert_5fstmt_12', ['tds7_build_bulk_insert_stmt', ['../a00266.html#a3118c7232bc9c3e47f8ba872bb39e967', 1, 'bulk.c']]], │ │ │ │ │ ['tds7_5fget_5fdata_5finfo_13', ['tds7_get_data_info', ['../a00544.html#ga07cee55fd522cca16fb59b7a8f0b1376', 1, 'token.c']]], │ │ │ │ │ ['tds7_5fget_5finstance_5fport_14', ['tds7_get_instance_port', ['../a00543.html#gac23c12ccb3e8599f10f305e993e216f6', 1, 'tds7_get_instance_port(struct addrinfo *addr, const char *instance): net.c'], │ │ │ │ │ ['../a00543.html#gac23c12ccb3e8599f10f305e993e216f6', 1, 'tds7_get_instance_port(struct addrinfo *addr, const char *instance): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds7_5fget_5finstance_5fports_15', ['tds7_get_instance_ports', ['../a00543.html#ga954dcc3b0332fa9448d9edf59c0fe439', 1, 'tds7_get_instance_ports(FILE *output, struct addrinfo *addr): net.c'], │ │ │ │ │ ['../a00543.html#ga954dcc3b0332fa9448d9edf59c0fe439', 1, 'tds7_get_instance_ports(FILE *output, struct addrinfo *addr): net.c'] │ │ │ │ │ ]], │ │ │ │ │ @@ -39,34 +39,34 @@ │ │ │ │ │ ['../a00541.html#ga314c65c067570dc1ef3e58bbfc4eb763', 1, 'tds_alloc_param_result(TDSPARAMINFO *old_param): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5falloc_5frow_27', ['tds_alloc_row', ['../a00541.html#ga1224fb9277112dc2ce12531d2b73b145', 1, 'tds_alloc_row(TDSRESULTINFO *res_info): mem.c'], │ │ │ │ │ ['../a00541.html#ga1224fb9277112dc2ce12531d2b73b145', 1, 'tds_alloc_row(TDSRESULTINFO *res_info): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fanswer_5fchallenge_28', ['tds_answer_challenge', ['../a00537.html#ga8adf4e719762fef6fdb091d15d4d5d7f', 1, 'challenge.c']]], │ │ │ │ │ ['tds_5fascii_5fto_5fucs2_29', ['tds_ascii_to_ucs2', ['../a00542.html#gad05fc65e1d505c68d14c82b99a00e4eb', 1, 'query.c']]], │ │ │ │ │ - ['tds_5fbcp_5fdone_30', ['tds_bcp_done', ['../a00059.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'], │ │ │ │ │ - ['../a00440.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5fdone_30', ['tds_bcp_done', ['../a00266.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'], │ │ │ │ │ + ['../a00443.html#ade7df2db455b61edc83819ad60edb339', 1, 'tds_bcp_done(TDSSOCKET *tds, int *rows_copied): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5ffread_31', ['tds_bcp_fread', ['../a00059.html#a86ac92bd8a3c61a413d27150ec9bc202', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *char_conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'], │ │ │ │ │ - ['../a00440.html#a8184311543c685f2ee0bcccfb725ca02', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5ffread_31', ['tds_bcp_fread', ['../a00266.html#a86ac92bd8a3c61a413d27150ec9bc202', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *char_conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'], │ │ │ │ │ + ['../a00443.html#a8184311543c685f2ee0bcccfb725ca02', 1, 'tds_bcp_fread(TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5finit_32', ['tds_bcp_init', ['../a00059.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ - ['../a00440.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5finit_32', ['tds_bcp_init', ['../a00266.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ + ['../a00443.html#ac6610c72bd31bad5378f760fa9b12d66', 1, 'tds_bcp_init(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5frow_5ffree_33', ['tds_bcp_row_free', ['../a00059.html#a7c4f2b050cd1a747604aa305d6877de7', 1, 'bulk.c']]], │ │ │ │ │ - ['tds_5fbcp_5fsend_5frecord_34', ['tds_bcp_send_record', ['../a00440.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'], │ │ │ │ │ - ['../a00059.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5frow_5ffree_33', ['tds_bcp_row_free', ['../a00266.html#a7c4f2b050cd1a747604aa305d6877de7', 1, 'bulk.c']]], │ │ │ │ │ + ['tds_5fbcp_5fsend_5frecord_34', ['tds_bcp_send_record', ['../a00443.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'], │ │ │ │ │ + ['../a00266.html#ad9e44450025cbcee1ad81d7e5a2cc099', 1, 'tds_bcp_send_record(TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5fstart_35', ['tds_bcp_start', ['../a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ - ['../a00440.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5fstart_35', ['tds_bcp_start', ['../a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ + ['../a00443.html#a8208eef2a3974ae1f0cf3c8c8ab011ce', 1, 'tds_bcp_start(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5fstart_5fcopy_5fin_36', ['tds_bcp_start_copy_in', ['../a00059.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ - ['../a00440.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ + ['tds_5fbcp_5fstart_5fcopy_5fin_36', ['tds_bcp_start_copy_in', ['../a00266.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'], │ │ │ │ │ + ['../a00443.html#a5eec23828b0610c58de248c4edb53879', 1, 'tds_bcp_start_copy_in(TDSSOCKET *tds, TDSBCPINFO *bcpinfo): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fbcp_5fstart_5finsert_5fstmt_37', ['tds_bcp_start_insert_stmt', ['../a00059.html#ab4d7e5309152f54613d52c8469a07fd8', 1, 'bulk.c']]], │ │ │ │ │ + ['tds_5fbcp_5fstart_5finsert_5fstmt_37', ['tds_bcp_start_insert_stmt', ['../a00266.html#ab4d7e5309152f54613d52c8469a07fd8', 1, 'bulk.c']]], │ │ │ │ │ ['tds_5fcanonical_5fcharset_38', ['tds_canonical_charset', ['../a00540.html#gac01180352db7052e786463e3b07a8a9e', 1, 'tds_canonical_charset(const char *charset_name): iconv.c'], │ │ │ │ │ ['../a00540.html#gac01180352db7052e786463e3b07a8a9e', 1, 'tds_canonical_charset(const char *charset_name): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcanonical_5fcharset_5fname_39', ['tds_canonical_charset_name', ['../a00540.html#ga22c61ca41f64c7fe368659ed1eebdb56', 1, 'tds_canonical_charset_name(const char *charset_name): iconv.c'], │ │ │ │ │ ['../a00540.html#ga22c61ca41f64c7fe368659ed1eebdb56', 1, 'tds_canonical_charset_name(const char *charset_name): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fclose_5fsocket_40', ['tds_close_socket', ['../a00543.html#ga3e3f76009fce5ceedb2f42bb2c9aed2e', 1, 'tds_close_socket(TDSSOCKET *tds): net.c'], │ │ │ │ │ @@ -74,31 +74,31 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fconfig_5fverstr_41', ['tds_config_verstr', ['../a00538.html#ga05c73c963f4d8904869c739c556c58a2', 1, 'tds_config_verstr(const char *tdsver, TDSLOGIN *login): config.c'], │ │ │ │ │ ['../a00538.html#ga05c73c963f4d8904869c739c556c58a2', 1, 'tds_config_verstr(const char *tdsver, TDSLOGIN *login): config.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fconvert_42', ['tds_convert', ['../a00539.html#gad83c146aa5ba3f1515557d6b5248494a', 1, 'tds_convert(const TDSCONTEXT *tds_ctx, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr): convert.c'], │ │ │ │ │ ['../a00539.html#gad83c146aa5ba3f1515557d6b5248494a', 1, 'tds_convert(const TDSCONTEXT *context, int srctype, const void *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fconvert_5fstream_43', ['tds_convert_stream', ['../a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fconvert_5fstream_43', ['tds_convert_stream', ['../a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fconvert_5fstring_44', ['tds_convert_string', ['../a00542.html#gad5b76c688898b86984d09628f030d01c', 1, 'tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len): query.c'], │ │ │ │ │ ['../a00542.html#gad5b76c688898b86984d09628f030d01c', 1, 'tds_convert_string(TDSSOCKET *tds, TDSICONV *char_conv, const char *s, int len, size_t *out_len): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fcopy_5fstream_45', ['tds_copy_stream', ['../a00077.html#a50bc3749988d1c3c441044fc07ab44e4', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fcopy_5fstream_45', ['tds_copy_stream', ['../a00275.html#a50bc3749988d1c3c441044fc07ab44e4', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fcount_5fplaceholders_46', ['tds_count_placeholders', ['../a00542.html#gaaa7b4d37bf796019e72f25c6e7fe7bea', 1, 'tds_count_placeholders(const char *query): query.c'], │ │ │ │ │ ['../a00542.html#gaaa7b4d37bf796019e72f25c6e7fe7bea', 1, 'tds_count_placeholders(const char *query): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fcount_5fplaceholders_5fucs2le_47', ['tds_count_placeholders_ucs2le', ['../a00542.html#ga0cd19215e9169ea299a6c9cbf5b2fb60', 1, 'query.c']]], │ │ │ │ │ ['tds_5fcursor_5fcheck_5fallocated_48', ['tds_cursor_check_allocated', ['../a00542.html#ga2a64baaf4aa50ef601a49b801dfdaaf6', 1, 'query.c']]], │ │ │ │ │ ['tds_5fcursor_5fdealloc_49', ['tds_cursor_dealloc', ['../a00542.html#gab25de0567ac096e8f8e88490eeddf562', 1, 'tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor): query.c'], │ │ │ │ │ ['../a00542.html#gab25de0567ac096e8f8e88490eeddf562', 1, 'tds_cursor_dealloc(TDSSOCKET *tds, TDSCURSOR *cursor): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fdatain_5fstream_5finit_50', ['tds_datain_stream_init', ['../a00077.html#abc3a77c8aa28842e7f28583cbabc1415', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdatain_5fstream_5fread_51', ['tds_datain_stream_read', ['../a00077.html#a04b537d889f7d4c9b9701eb81baf7efd', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdataout_5fstream_5finit_52', ['tds_dataout_stream_init', ['../a00077.html#aa038a9125979f8f0915dbd53cbf27e5a', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdataout_5fstream_5fwrite_53', ['tds_dataout_stream_write', ['../a00077.html#ae38a590ee08cf398e7adef536ac94538', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdatain_5fstream_5finit_50', ['tds_datain_stream_init', ['../a00275.html#abc3a77c8aa28842e7f28583cbabc1415', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdatain_5fstream_5fread_51', ['tds_datain_stream_read', ['../a00275.html#a04b537d889f7d4c9b9701eb81baf7efd', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdataout_5fstream_5finit_52', ['tds_dataout_stream_init', ['../a00275.html#aa038a9125979f8f0915dbd53cbf27e5a', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdataout_5fstream_5fwrite_53', ['tds_dataout_stream_write', ['../a00275.html#ae38a590ee08cf398e7adef536ac94538', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fdatecrack_54', ['tds_datecrack', ['../a00539.html#ga883855e6e3793de6684b21db39c756c4', 1, 'tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr): convert.c'], │ │ │ │ │ ['../a00539.html#ga883855e6e3793de6684b21db39c756c4', 1, 'tds_datecrack(TDS_INT datetype, const void *di, TDSDATEREC *dr): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fdeferred_5fcursor_5fdealloc_55', ['tds_deferred_cursor_dealloc', ['../a00542.html#ga57bd0fabe5bcdeb3ef091259b3a7c1fc', 1, 'tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor): query.c'], │ │ │ │ │ ['../a00542.html#ga57bd0fabe5bcdeb3ef091259b3a7c1fc', 1, 'tds_deferred_cursor_dealloc(TDSCONNECTION *conn, TDSCURSOR *cursor): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fdeferred_5funprepare_56', ['tds_deferred_unprepare', ['../a00542.html#ga9f80fdf732b084aef7de7a323261aa61', 1, 'tds_deferred_unprepare(TDSCONNECTION *conn, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ @@ -119,17 +119,17 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fdstr_5finit_66', ['tds_dstr_init', ['../a00545.html#ga6c0aba5c6da921898768e7f6cf177ca7', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5fisempty_67', ['tds_dstr_isempty', ['../a00545.html#ga197c6af67f2e7469d06c2aa055917b1e', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5flen_68', ['tds_dstr_len', ['../a00545.html#ga396f139e4f886ac1b224a735138e73dd', 1, 'string.h']]], │ │ │ │ │ ['tds_5fdstr_5fset_69', ['tds_dstr_set', ['../a00545.html#gab78cc59b110df2817b00f9bed74c6ff1', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fsetlen_70', ['tds_dstr_setlen', ['../a00545.html#ga0cd7863ba7c2d2da4a193234472a3d14', 1, 'tdsstring.c']]], │ │ │ │ │ ['tds_5fdstr_5fzero_71', ['tds_dstr_zero', ['../a00545.html#ga339ba30216e2bd5bd076aa9dcd26f3c4', 1, 'tdsstring.c']]], │ │ │ │ │ - ['tds_5fdynamic_5fstream_5finit_72', ['tds_dynamic_stream_init', ['../a00077.html#a4f9e40da6941cb9407d0da5bc3030517', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fdynamic_5fstream_5fwrite_73', ['tds_dynamic_stream_write', ['../a00077.html#abaf688c85ea04a2392103d519a55d04e', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5ffile_5fstream_5fread_74', ['tds_file_stream_read', ['../a00059.html#a1b83c9db016b481aa1fa0352f976d50d', 1, 'bulk.c']]], │ │ │ │ │ + ['tds_5fdynamic_5fstream_5finit_72', ['tds_dynamic_stream_init', ['../a00275.html#a4f9e40da6941cb9407d0da5bc3030517', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fdynamic_5fstream_5fwrite_73', ['tds_dynamic_stream_write', ['../a00275.html#abaf688c85ea04a2392103d519a55d04e', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5ffile_5fstream_5fread_74', ['tds_file_stream_read', ['../a00266.html#a1b83c9db016b481aa1fa0352f976d50d', 1, 'bulk.c']]], │ │ │ │ │ ['tds_5ffix_5fcolumn_5fsize_75', ['tds_fix_column_size', ['../a00542.html#ga440f0f469afad1eac4c008979873ccdd', 1, 'tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol): query.c'], │ │ │ │ │ ['../a00542.html#ga440f0f469afad1eac4c008979873ccdd', 1, 'tds_fix_column_size(TDSSOCKET *tds, TDSCOLUMN *curcol): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ffix_5flogin_76', ['tds_fix_login', ['../a00538.html#gacee4f06ba749b10ee9f2e5bb1c4a8910', 1, 'tds_fix_login(TDSLOGIN *login): config.c'], │ │ │ │ │ ['../a00538.html#gacee4f06ba749b10ee9f2e5bb1c4a8910', 1, 'tds_fix_login(TDSLOGIN *login): config.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fflush_5fpacket_77', ['tds_flush_packet', ['../a00543.html#ga5feb53554e8917a81bbbc332163a61fb', 1, 'tds_flush_packet(TDSSOCKET *tds): write.c'], │ │ │ │ │ @@ -153,43 +153,43 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ffreeze_5fclose_5flen_84', ['tds_freeze_close_len', ['../a00543.html#ga2660b893ae2bf36fe1b63b354e748bad', 1, 'tds_freeze_close_len(TDSFREEZE *freeze, int32_t size): packet.c'], │ │ │ │ │ ['../a00543.html#ga2660b893ae2bf36fe1b63b354e748bad', 1, 'tds_freeze_close_len(TDSFREEZE *freeze, int32_t size): packet.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ffreeze_5fwritten_85', ['tds_freeze_written', ['../a00543.html#ga528cc96da09c11bc2930daae64e33e83', 1, 'tds_freeze_written(TDSFREEZE *freeze): packet.c'], │ │ │ │ │ ['../a00543.html#ga528cc96da09c11bc2930daae64e33e83', 1, 'tds_freeze_written(TDSFREEZE *freeze): packet.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fgeneric_5fget_86', ['tds_generic_get', ['../a00050.html#abac4d689e0e31e80587f89247c6395a4', 1, 'data.c']]], │ │ │ │ │ - ['tds_5fgeneric_5fput_87', ['tds_generic_put', ['../a00050.html#a84e17808683ba2dd956e811a42e23176', 1, 'data.c']]], │ │ │ │ │ - ['tds_5fgeneric_5fput_5finfo_88', ['tds_generic_put_info', ['../a00050.html#aabd0e5f15615b5c141c525b76e746520', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fgeneric_5fget_86', ['tds_generic_get', ['../a00323.html#abac4d689e0e31e80587f89247c6395a4', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fgeneric_5fput_87', ['tds_generic_put', ['../a00323.html#a84e17808683ba2dd956e811a42e23176', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fgeneric_5fput_5finfo_88', ['tds_generic_put_info', ['../a00323.html#aabd0e5f15615b5c141c525b76e746520', 1, 'data.c']]], │ │ │ │ │ ['tds_5fget_5fbyte_89', ['tds_get_byte', ['../a00543.html#ga0cb72d3f6943795c39db1fa692be0a58', 1, 'tds_get_byte(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#ga0cb72d3f6943795c39db1fa692be0a58', 1, 'tds_get_byte(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fchar_5fdata_90', ['tds_get_char_data', ['../a00543.html#ga8d214089b6e97fc0da5e0be09f216d73', 1, 'tds_get_char_data(TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol): read.c'], │ │ │ │ │ ['../a00543.html#ga8d214089b6e97fc0da5e0be09f216d73', 1, 'tds_get_char_data(TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fcolumn_5fdeclaration_91', ['tds_get_column_declaration', ['../a00542.html#ga50d62edeb2a432e2dc668263f3f958ff', 1, 'tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out): query.c'], │ │ │ │ │ ['../a00542.html#ga50d62edeb2a432e2dc668263f3f958ff', 1, 'tds_get_column_declaration(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fcompiletime_5fsettings_92', ['tds_get_compiletime_settings', ['../a00538.html#ga0c00a50e074cec7fbb0a1de826a4a46b', 1, 'tds_get_compiletime_settings(void): config.c'], │ │ │ │ │ ['../a00538.html#ga0c00a50e074cec7fbb0a1de826a4a46b', 1, 'tds_get_compiletime_settings(void): config.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5fconversion_5ftype_93', ['tds_get_conversion_type', ['../a00440.html#a0383d5dcb629582266a442f0f0dbd13a', 1, 'tds_types.h']]], │ │ │ │ │ + ['tds_5fget_5fconversion_5ftype_93', ['tds_get_conversion_type', ['../a00443.html#a0383d5dcb629582266a442f0f0dbd13a', 1, 'tds_types.h']]], │ │ │ │ │ ['tds_5fget_5fdata_5finfo_94', ['tds_get_data_info', ['../a00544.html#gad9b6b86f48be077fb44ac603845a0c27', 1, 'token.c']]], │ │ │ │ │ ['tds_5fget_5fdynid_95', ['tds_get_dynid', ['../a00541.html#ga93503e64091b51add0801abebe22abf4', 1, 'mem.c']]], │ │ │ │ │ ['tds_5fget_5fhome_5ffile_96', ['tds_get_home_file', ['../a00538.html#ga69275bf4fa96a7bf23fd445638a6e9aa', 1, 'tds_get_home_file(const char *file): config.c'], │ │ │ │ │ ['../a00538.html#ga69275bf4fa96a7bf23fd445638a6e9aa', 1, 'tds_get_home_file(const char *file): config.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5flocale_97', ['tds_get_locale', ['../a00440.html#a41390fa6e1083ba84fb523797e6b5275', 1, 'locale.c']]], │ │ │ │ │ + ['tds_5fget_5flocale_97', ['tds_get_locale', ['../a00443.html#a41390fa6e1083ba84fb523797e6b5275', 1, 'locale.c']]], │ │ │ │ │ ['tds_5fget_5fn_98', ['tds_get_n', ['../a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf', 1, 'tds_get_n(TDSSOCKET *tds, void *dest, size_t need): read.c'], │ │ │ │ │ ['../a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf', 1, 'tds_get_n(TDSSOCKET *tds, void *dest, size_t n): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fnull_5ftype_99', ['tds_get_null_type', ['../a00539.html#ga68e3a76fd7b0a77614765826a8ab5be8', 1, 'tds_get_null_type(TDS_SERVER_TYPE srctype): convert.c'], │ │ │ │ │ ['../a00539.html#ga68e3a76fd7b0a77614765826a8ab5be8', 1, 'tds_get_null_type(TDS_SERVER_TYPE srctype): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5fsize_5fby_5ftype_100', ['tds_get_size_by_type', ['../a00440.html#a4c070147d189dede5e08a2dc66852678', 1, 'tds_types.h']]], │ │ │ │ │ + ['tds_5fget_5fsize_5fby_5ftype_100', ['tds_get_size_by_type', ['../a00443.html#a4c070147d189dede5e08a2dc66852678', 1, 'tds_types.h']]], │ │ │ │ │ ['tds_5fget_5fsocket_5ferror_101', ['tds_get_socket_error', ['../a00543.html#ga4a2418e0a4533d616ef3da526236f2b8', 1, 'net.c']]], │ │ │ │ │ ['tds_5fget_5fstring_102', ['tds_get_string', ['../a00543.html#ga90f080e6e9448feac15dee1370d66802', 1, 'tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size): read.c'], │ │ │ │ │ ['../a00543.html#ga90f080e6e9448feac15dee1370d66802', 1, 'tds_get_string(TDSSOCKET *tds, size_t string_len, char *dest, size_t dest_size): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5ftoken_5fsize_103', ['tds_get_token_size', ['../a00544.html#ga995b82e53aeac5bede01ef16e9aeaa65', 1, 'tds_get_token_size(int marker): token.c'], │ │ │ │ │ ['../a00544.html#ga995b82e53aeac5bede01ef16e9aeaa65', 1, 'tds_get_token_size(int marker): token.c'] │ │ │ │ │ ]], │ │ │ │ │ @@ -198,35 +198,35 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fuint8_105', ['tds_get_uint8', ['../a00543.html#ga8ab6c87318eaf15ea17a9575763f7809', 1, 'tds_get_uint8(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#ga8ab6c87318eaf15ea17a9575763f7809', 1, 'tds_get_uint8(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fget_5fusmallint_106', ['tds_get_usmallint', ['../a00543.html#gad38aa5b9547817854ccba1fcc7855861', 1, 'tds_get_usmallint(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#gad38aa5b9547817854ccba1fcc7855861', 1, 'tds_get_usmallint(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fget_5fvarint_5fsize_107', ['tds_get_varint_size', ['../a00440.html#a68855f1251759a6b7338635306ab0041', 1, 'tds_types.h']]], │ │ │ │ │ + ['tds_5fget_5fvarint_5fsize_107', ['tds_get_varint_size', ['../a00443.html#a68855f1251759a6b7338635306ab0041', 1, 'tds_types.h']]], │ │ │ │ │ ['tds_5fgoodread_108', ['tds_goodread', ['../a00543.html#ga6f2ae00407f59fb1ab280fa44a56295e', 1, 'tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen): net.c'], │ │ │ │ │ ['../a00543.html#ga6f2ae00407f59fb1ab280fa44a56295e', 1, 'tds_goodread(TDSSOCKET *tds, unsigned char *buf, int buflen): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fgoodwrite_109', ['tds_goodwrite', ['../a00543.html#ga2734407109c834c5dda7ff8a45c71230', 1, 'tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen): net.c'], │ │ │ │ │ ['../a00543.html#ga2734407109c834c5dda7ff8a45c71230', 1, 'tds_goodwrite(TDSSOCKET *tds, const unsigned char *buffer, size_t buflen): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_110', ['tds_iconv', ['../a00540.html#ga87db49044919f1bc84c0ff5e9ab00304', 1, 'tds_iconv(TDSSOCKET *tds, TDSICONV *conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft): iconv.c'], │ │ │ │ │ ['../a00540.html#ga87db49044919f1bc84c0ff5e9ab00304', 1, 'tds_iconv(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5ficonv_5falloc_111', ['tds_iconv_alloc', ['../a01368.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'], │ │ │ │ │ - ['../a00440.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'] │ │ │ │ │ + ['tds_5ficonv_5falloc_111', ['tds_iconv_alloc', ['../a01374.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'], │ │ │ │ │ + ['../a00443.html#a026957dbbd994b48b571a63405f427cd', 1, 'tds_iconv_alloc(TDSCONNECTION *conn): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_5ffrom_5fcollate_112', ['tds_iconv_from_collate', ['../a00540.html#ga9d433c15ab3738aa2a477a416330f49f', 1, 'tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5]): iconv.c'], │ │ │ │ │ ['../a00540.html#ga9d433c15ab3738aa2a477a416330f49f', 1, 'tds_iconv_from_collate(TDSCONNECTION *conn, TDS_UCHAR collate[5]): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_5fget_5finfo_113', ['tds_iconv_get_info', ['../a00540.html#ga1639ccaa7e17c07457bcb37f313bc52f', 1, 'tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int canonic_server): iconv.c'], │ │ │ │ │ ['../a00540.html#ga1639ccaa7e17c07457bcb37f313bc52f', 1, 'tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int canonic_server): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ficonv_5finfo_5finit_114', ['tds_iconv_info_init', ['../a00540.html#ga3a7a7b4d6ed344127e164dd0b443d790', 1, 'iconv.c']]], │ │ │ │ │ - ['tds_5ficonv_5finit_115', ['tds_iconv_init', ['../a01368.html#a89de4d12be43b135ad355236717e9cbb', 1, 'iconv.c']]], │ │ │ │ │ + ['tds_5ficonv_5finit_115', ['tds_iconv_init', ['../a01374.html#a89de4d12be43b135ad355236717e9cbb', 1, 'iconv.c']]], │ │ │ │ │ ['tds_5finit_5flogin_116', ['tds_init_login', ['../a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39', 1, 'tds_init_login(TDSLOGIN *login, TDSLOCALE *locale): mem.c'], │ │ │ │ │ ['../a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39', 1, 'tds_init_login(TDSLOGIN *login, TDSLOCALE *locale): mem.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5flookup_5fdynamic_117', ['tds_lookup_dynamic', ['../a00544.html#ga4a45cadd06ae1b886459dcc1f8e482c6', 1, 'tds_lookup_dynamic(TDSCONNECTION *conn, const char *id): token.c'], │ │ │ │ │ ['../a00544.html#ga4a45cadd06ae1b886459dcc1f8e482c6', 1, 'tds_lookup_dynamic(TDSCONNECTION *conn, const char *id): token.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5flookup_5fhost_118', ['tds_lookup_host', ['../a00538.html#ga3945f760ceb97e8854e18589d6f0d241', 1, 'tds_lookup_host(const char *servername): config.c'], │ │ │ │ │ @@ -239,20 +239,20 @@ │ │ │ │ │ ['tds_5fnext_5fplaceholder_121', ['tds_next_placeholder', ['../a00542.html#ga8f3b00c34af2484eccb169e60a37dc36', 1, 'tds_next_placeholder(const char *start): query.c'], │ │ │ │ │ ['../a00542.html#ga8f3b00c34af2484eccb169e60a37dc36', 1, 'tds_next_placeholder(const char *start): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fnext_5fplaceholder_5fucs2le_122', ['tds_next_placeholder_ucs2le', ['../a00542.html#gaaa97f8535a2babe642024a0744d271d5', 1, 'query.c']]], │ │ │ │ │ ['tds_5fntlm_5fget_5fauth_123', ['tds_ntlm_get_auth', ['../a00537.html#gac0f33825721aa985805d21540a254b87', 1, 'tds_ntlm_get_auth(TDSSOCKET *tds): challenge.c'], │ │ │ │ │ ['../a00537.html#gac0f33825721aa985805d21540a254b87', 1, 'tds_ntlm_get_auth(TDSSOCKET *tds): challenge.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fnumeric_5fto_5fstring_124', ['tds_numeric_to_string', ['../a00440.html#a622da936832b0337742da956be123719', 1, 'numeric.c']]], │ │ │ │ │ + ['tds_5fnumeric_5fto_5fstring_124', ['tds_numeric_to_string', ['../a00443.html#a622da936832b0337742da956be123719', 1, 'numeric.c']]], │ │ │ │ │ ['tds_5fpeek_125', ['tds_peek', ['../a00543.html#ga221e98a9c8be96ec6c8547891e1b53af', 1, 'tds_peek(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#ga221e98a9c8be96ec6c8547891e1b53af', 1, 'tds_peek(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fpr_5fop_126', ['tds_pr_op', ['../a00544.html#ga62dc14d21453e88e24880ee0acaca73a', 1, 'token.c']]], │ │ │ │ │ - ['tds_5fprdatatype_127', ['tds_prdatatype', ['../a00167.html#ac7a199aaeb82935f6d1dda2be551a089', 1, 'dblib.c']]], │ │ │ │ │ + ['tds_5fprdatatype_127', ['tds_prdatatype', ['../a00155.html#ac7a199aaeb82935f6d1dda2be551a089', 1, 'dblib.c']]], │ │ │ │ │ ['tds_5fprocess_5fauth_128', ['tds_process_auth', ['../a00544.html#ga4e1e52e09b0c27a9b9f53eb6b539afce', 1, 'token.c']]], │ │ │ │ │ ['tds_5fprocess_5fcancel_129', ['tds_process_cancel', ['../a00544.html#gaf233e79967f82f4e0dd4d11524917a34', 1, 'tds_process_cancel(TDSSOCKET *tds): token.c'], │ │ │ │ │ ['../a00544.html#gaf233e79967f82f4e0dd4d11524917a34', 1, 'tds_process_cancel(TDSSOCKET *tds): token.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fprocess_5fcol_5ffmt_130', ['tds_process_col_fmt', ['../a00544.html#ga4e3dd9d3614f5f0433b78b761dd68741', 1, 'token.c']]], │ │ │ │ │ ['tds_5fprocess_5fcol_5fname_131', ['tds_process_col_name', ['../a00544.html#ga905d2fa5e1b602817bd16bb0fcf9eadb', 1, 'token.c']]], │ │ │ │ │ ['tds_5fprocess_5fcolinfo_132', ['tds_process_colinfo', ['../a00544.html#ga22c7f413d43fc0d511e122a3de389166', 1, 'token.c']]], │ │ │ │ │ @@ -326,30 +326,30 @@ │ │ │ │ │ ['tds_5fselect_172', ['tds_select', ['../a00543.html#gad7aae89e32444ab30852fee056231403', 1, 'tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds): net.c'], │ │ │ │ │ ['../a00543.html#gad7aae89e32444ab30852fee056231403', 1, 'tds_select(TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsend_5fcancel_173', ['tds_send_cancel', ['../a00542.html#ga11338742dc30fd0c2711f58eb830316f', 1, 'tds_send_cancel(TDSSOCKET *tds): query.c'], │ │ │ │ │ ['../a00542.html#ga11338742dc30fd0c2711f58eb830316f', 1, 'tds_send_cancel(TDSSOCKET *tds): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsend_5femulated_5fexecute_174', ['tds_send_emulated_execute', ['../a00542.html#ga02c6ce3ff96369603a6ee4efee64caae', 1, 'query.c']]], │ │ │ │ │ - ['tds_5fset_5fcolumn_5ftype_175', ['tds_set_column_type', ['../a00440.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ - ['../a00050.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ + ['tds_5fset_5fcolumn_5ftype_175', ['tds_set_column_type', ['../a00443.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ + ['../a00323.html#a31604382d8b77257aad203f409155a29', 1, 'tds_set_column_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fset_5fcur_5fcursor_176', ['tds_set_cur_cursor', ['../a00542.html#ga34fb1084682cc31fe02a4a7946955a5a', 1, 'query.c']]], │ │ │ │ │ ['tds_5fset_5fcur_5fdyn_177', ['tds_set_cur_dyn', ['../a00542.html#gae8b7db85af16701fc0604eb117cbd4e4', 1, 'tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ ['../a00542.html#gae8b7db85af16701fc0604eb117cbd4e4', 1, 'tds_set_cur_dyn(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fset_5ficonv_5fname_178', ['tds_set_iconv_name', ['../a01368.html#a585ebac61354ce540d28f6da2d771b5b', 1, 'iconv.c']]], │ │ │ │ │ + ['tds_5fset_5ficonv_5fname_178', ['tds_set_iconv_name', ['../a01374.html#a585ebac61354ce540d28f6da2d771b5b', 1, 'iconv.c']]], │ │ │ │ │ ['tds_5fset_5finterfaces_5ffile_5floc_179', ['tds_set_interfaces_file_loc', ['../a00538.html#ga57cea6e376d7c2d28b811a5b0053210c', 1, 'tds_set_interfaces_file_loc(const char *interf): config.c'], │ │ │ │ │ ['../a00538.html#ga57cea6e376d7c2d28b811a5b0053210c', 1, 'tds_set_interfaces_file_loc(const char *interfloc): config.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fset_5fparam_5ftype_180', ['tds_set_param_type', ['../a00050.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ - ['../a00440.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ + ['tds_5fset_5fparam_5ftype_180', ['tds_set_param_type', ['../a00323.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'], │ │ │ │ │ + ['../a00443.html#a86768d86059c5addf9a3f89edb1ef44e', 1, 'tds_set_param_type(TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type): data.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fset_5fserver_181', ['tds_set_server', ['../a00440.html#a3ab8874994a0776acdaff797afdb710a', 1, 'login.c']]], │ │ │ │ │ - ['tds_5fset_5fstate_182', ['tds_set_state', ['../a00440.html#a16db200d2281f76fe46fc1cbe37ca9df', 1, 'util.c']]], │ │ │ │ │ + ['tds_5fset_5fserver_181', ['tds_set_server', ['../a00443.html#a3ab8874994a0776acdaff797afdb710a', 1, 'login.c']]], │ │ │ │ │ + ['tds_5fset_5fstate_182', ['tds_set_state', ['../a00443.html#a16db200d2281f76fe46fc1cbe37ca9df', 1, 'util.c']]], │ │ │ │ │ ['tds_5fsetup_5fsocket_183', ['tds_setup_socket', ['../a00543.html#gab604dd1d75afa8f852d1a6ee0b681974', 1, 'net.c']]], │ │ │ │ │ ['tds_5fskip_5fcomment_184', ['tds_skip_comment', ['../a00542.html#gacf0a4f2a1c2166588f4d232eda737cf5', 1, 'tds_skip_comment(const char *s): query.c'], │ │ │ │ │ ['../a00542.html#gacf0a4f2a1c2166588f4d232eda737cf5', 1, 'tds_skip_comment(const char *s): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fskip_5fcomment_5fucs2le_185', ['tds_skip_comment_ucs2le', ['../a00542.html#gac3124fe439d9c96236fc33af7793ffcf', 1, 'query.c']]], │ │ │ │ │ ['tds_5fskip_5fquoted_186', ['tds_skip_quoted', ['../a00542.html#ga0856776b63a475de7cd3fb62b1af2411', 1, 'tds_skip_quoted(const char *s): query.c'], │ │ │ │ │ ['../a00542.html#ga0856776b63a475de7cd3fb62b1af2411', 1, 'tds_skip_quoted(const char *s): query.c'] │ │ │ │ │ @@ -363,22 +363,22 @@ │ │ │ │ │ ['../a00543.html#gae36a2665a4183b4cb211d03e907112ee', 1, 'tds_socket_set_nosigpipe(TDS_SYS_SOCKET sock, int on): net.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsocket_5fwrite_191', ['tds_socket_write', ['../a00543.html#gad6f81b48fbcfc18ce0b213dbbea47e30', 1, 'net.c']]], │ │ │ │ │ ['tds_5fstart_5fquery_192', ['tds_start_query', ['../a00542.html#ga0da385231bfa3dc49377e1fb2bea2c07', 1, 'tds_start_query(TDSSOCKET *tds, unsigned char packet_type): query.c'], │ │ │ │ │ ['../a00542.html#ga0da385231bfa3dc49377e1fb2bea2c07', 1, 'tds_start_query(TDSSOCKET *tds, unsigned char packet_type): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fstart_5fquery_5fhead_193', ['tds_start_query_head', ['../a00542.html#ga9ad2e6defce530a8778791cce0166ccd', 1, 'query.c']]], │ │ │ │ │ - ['tds_5fstaticin_5fstream_5finit_194', ['tds_staticin_stream_init', ['../a00077.html#aa9e1e45f0305622dd6aed9f8fe158581', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fstaticin_5fstream_5fread_195', ['tds_staticin_stream_read', ['../a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fstaticout_5fstream_5finit_196', ['tds_staticout_stream_init', ['../a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d', 1, 'stream.c']]], │ │ │ │ │ - ['tds_5fstaticout_5fstream_5fwrite_197', ['tds_staticout_stream_write', ['../a00077.html#a1d92ebe06f18378ac17ccfd20db05126', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticin_5fstream_5finit_194', ['tds_staticin_stream_init', ['../a00275.html#aa9e1e45f0305622dd6aed9f8fe158581', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticin_5fstream_5fread_195', ['tds_staticin_stream_read', ['../a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticout_5fstream_5finit_196', ['tds_staticout_stream_init', ['../a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d', 1, 'stream.c']]], │ │ │ │ │ + ['tds_5fstaticout_5fstream_5fwrite_197', ['tds_staticout_stream_write', ['../a00275.html#a1d92ebe06f18378ac17ccfd20db05126', 1, 'stream.c']]], │ │ │ │ │ ['tds_5fstrftime_198', ['tds_strftime', ['../a00539.html#ga8c9652e8b1f3e56a3289fd71b12cee1d', 1, 'tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *dr, int prec): convert.c'], │ │ │ │ │ ['../a00539.html#ga8c9652e8b1f3e56a3289fd71b12cee1d', 1, 'tds_strftime(char *buf, size_t maxsize, const char *format, const TDSDATEREC *timeptr, int prec): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fstrndup_199', ['tds_strndup', ['../a00440.html#a0e1370e1c1f7ae1b2e0c304960c39161', 1, 'util.c']]], │ │ │ │ │ + ['tds_5fstrndup_199', ['tds_strndup', ['../a00443.html#a0e1370e1c1f7ae1b2e0c304960c39161', 1, 'util.c']]], │ │ │ │ │ ['tds_5fsubmit_5fbegin_5ftran_200', ['tds_submit_begin_tran', ['../a00542.html#ga7bf3670d3d6dabed469b9eb117298079', 1, 'tds_submit_begin_tran(TDSSOCKET *tds): query.c'], │ │ │ │ │ ['../a00542.html#ga7bf3670d3d6dabed469b9eb117298079', 1, 'tds_submit_begin_tran(TDSSOCKET *tds): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5fcommit_201', ['tds_submit_commit', ['../a00542.html#ga530538c4c975524cf0b771a550fc94a3', 1, 'tds_submit_commit(TDSSOCKET *tds, int cont): query.c'], │ │ │ │ │ ['../a00542.html#ga530538c4c975524cf0b771a550fc94a3', 1, 'tds_submit_commit(TDSSOCKET *tds, int cont): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5fexecdirect_202', ['tds_submit_execdirect', ['../a00542.html#gae603aed795a4c5bb26ab159a11256996', 1, 'tds_submit_execdirect(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head): query.c'], │ │ │ │ │ @@ -407,39 +407,39 @@ │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5frpc_210', ['tds_submit_rpc', ['../a00542.html#ga5f071b94ad7889690762dc85646c74ab', 1, 'tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head): query.c'], │ │ │ │ │ ['../a00542.html#ga5f071b94ad7889690762dc85646c74ab', 1, 'tds_submit_rpc(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head): query.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fsubmit_5funprepare_211', ['tds_submit_unprepare', ['../a00542.html#gaf573d8d4d2660c8c27770573fca05ff5', 1, 'tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'], │ │ │ │ │ ['../a00542.html#gaf573d8d4d2660c8c27770573fca05ff5', 1, 'tds_submit_unprepare(TDSSOCKET *tds, TDSDYNAMIC *dyn): query.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fswap_5fnumeric_212', ['tds_swap_numeric', ['../a00050.html#aa818c1cbf4d16e609b7e4895cc7ed74f', 1, 'data.c']]], │ │ │ │ │ + ['tds_5fswap_5fnumeric_212', ['tds_swap_numeric', ['../a00323.html#aa818c1cbf4d16e609b7e4895cc7ed74f', 1, 'data.c']]], │ │ │ │ │ ['tds_5fsys_5ficonv_5fopen_213', ['tds_sys_iconv_open', ['../a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516', 1, 'tds_sys_iconv_open(const char *tocode, const char *fromcode): iconv.c'], │ │ │ │ │ ['../a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516', 1, 'tds_sys_iconv_open(const char *tocode, const char *fromcode): iconv.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5ftoken_5fname_214', ['tds_token_name', ['../a00544.html#ga7f24a7af985cd320788122e98072b7af', 1, 'token.c']]], │ │ │ │ │ ['tds_5funget_5fbyte_215', ['tds_unget_byte', ['../a00543.html#gad70d59fb317d098b0c9fd29dd77131a8', 1, 'tds_unget_byte(TDSSOCKET *tds): read.c'], │ │ │ │ │ ['../a00543.html#gad70d59fb317d098b0c9fd29dd77131a8', 1, 'tds_unget_byte(TDSSOCKET *tds): read.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fwillconvert_216', ['tds_willconvert', ['../a00539.html#ga80487b313213f60d8be71a50a002bb2c', 1, 'tds_willconvert(int srctype, int desttype): convert.c'], │ │ │ │ │ ['../a00539.html#ga80487b313213f60d8be71a50a002bb2c', 1, 'tds_willconvert(int srctype, int desttype): convert.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fwritetext_5fcontinue_217', ['tds_writetext_continue', ['../a00059.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'], │ │ │ │ │ - ['../a00440.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'] │ │ │ │ │ + ['tds_5fwritetext_5fcontinue_217', ['tds_writetext_continue', ['../a00266.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'], │ │ │ │ │ + ['../a00443.html#ab68dead99a2ebec55895a10cd3db5202', 1, 'tds_writetext_continue(TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fwritetext_5fend_218', ['tds_writetext_end', ['../a00059.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'], │ │ │ │ │ - ['../a00440.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'] │ │ │ │ │ + ['tds_5fwritetext_5fend_218', ['tds_writetext_end', ['../a00266.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'], │ │ │ │ │ + ['../a00443.html#ac1e460551f1188620ea478238864ac4b', 1, 'tds_writetext_end(TDSSOCKET *tds): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tds_5fwritetext_5fstart_219', ['tds_writetext_start', ['../a00059.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'], │ │ │ │ │ - ['../a00440.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'] │ │ │ │ │ + ['tds_5fwritetext_5fstart_219', ['tds_writetext_start', ['../a00266.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'], │ │ │ │ │ + ['../a00443.html#a7711612cc544a7da2c7aa212b870acb2', 1, 'tds_writetext_start(TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size): bulk.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tdsdbopen_220', ['tdsdbopen', ['../a00533.html#gae6da75d7b9e7b567890fc83c9459d824', 1, 'tdsdbopen(LOGINREC *login, const char *server, int msdblib): dblib.c'], │ │ │ │ │ ['../a00533.html#gae6da75d7b9e7b567890fc83c9459d824', 1, 'tdsdbopen(LOGINREC *login, const char *server, int msdblib): dblib.c'] │ │ │ │ │ ]], │ │ │ │ │ - ['tdsdump_5fclose_221', ['tdsdump_close', ['../a00440.html#a2f00fc0907d3bb04ce0eeb9738e08d0c', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fcol_222', ['tdsdump_col', ['../a00440.html#aaee3fe5c514ce5570c9548de9b16e0d9', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fdump_5fbuf_223', ['tdsdump_dump_buf', ['../a00440.html#a79449d2f35a8acc8ed0585044f75524d', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5flog_224', ['tdsdump_log', ['../a00440.html#ab45c291105027e69836002e1dd586141', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5foff_225', ['tdsdump_off', ['../a00440.html#ae3e5e04822595c54f86db66d9e40b93a', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fon_226', ['tdsdump_on', ['../a00440.html#ae5f50062ebebe46b951e5308cb2f5d7e', 1, 'log.c']]], │ │ │ │ │ - ['tdsdump_5fopen_227', ['tdsdump_open', ['../a00440.html#a24471508ddfde7cc0f8577801e70c42f', 1, 'log.c']]], │ │ │ │ │ - ['tdserror_228', ['tdserror', ['../a00440.html#abf18b98efef6ce2dc0b97d658a3a1918', 1, 'util.c']]] │ │ │ │ │ + ['tdsdump_5fclose_221', ['tdsdump_close', ['../a00443.html#a2f00fc0907d3bb04ce0eeb9738e08d0c', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fcol_222', ['tdsdump_col', ['../a00443.html#aaee3fe5c514ce5570c9548de9b16e0d9', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fdump_5fbuf_223', ['tdsdump_dump_buf', ['../a00443.html#a79449d2f35a8acc8ed0585044f75524d', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5flog_224', ['tdsdump_log', ['../a00443.html#ab45c291105027e69836002e1dd586141', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5foff_225', ['tdsdump_off', ['../a00443.html#ae3e5e04822595c54f86db66d9e40b93a', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fon_226', ['tdsdump_on', ['../a00443.html#ae5f50062ebebe46b951e5308cb2f5d7e', 1, 'log.c']]], │ │ │ │ │ + ['tdsdump_5fopen_227', ['tdsdump_open', ['../a00443.html#a24471508ddfde7cc0f8577801e70c42f', 1, 'log.c']]], │ │ │ │ │ + ['tdserror_228', ['tdserror', ['../a00443.html#abf18b98efef6ce2dc0b97d658a3a1918', 1, 'util.c']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals.html │ │ │ │ @@ -68,24 +68,24 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented file members with links to the documentation:
    │ │ │ │ │ │ │ │

    - _ -

      │ │ │ │ -
    • _bcp_convert_in() : bcp.c
    • │ │ │ │ -
    • _bcp_convert_out() : bcp.c
    • │ │ │ │ +
    • _bcp_convert_in() : bcp.c
    • │ │ │ │ +
    • _bcp_convert_out() : bcp.c
    • │ │ │ │
    • _bcp_exec_in() : bcp.c
    • │ │ │ │
    • _bcp_exec_out() : bcp.c
    • │ │ │ │
    • _bcp_fgets() : bcp.c
    • │ │ │ │
    • _bcp_free_columns() : bcp.c
    • │ │ │ │
    • _bcp_free_storage() : bcp.c
    • │ │ │ │
    • _bcp_get_col_data() : bcp.c
    • │ │ │ │
    • _bcp_get_term_var() : bcp.c
    • │ │ │ │ -
    • _bcp_no_get_col_data() : bcp.c
    • │ │ │ │ +
    • _bcp_no_get_col_data() : bcp.c
    • │ │ │ │
    • _bcp_read_hostfile() : bcp.c
    • │ │ │ │
    • _bcp_readfmt_colinfo() : bcp.c
    • │ │ │ │
    • _dbcoldata() : dblib.c
    • │ │ │ │
    • _dbresults() : dblib.c
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_d.html │ │ │ │ @@ -89,15 +89,15 @@ │ │ │ │
  • dbcanquery() : dblib.c, sybdb.h
  • │ │ │ │
  • dbchange() : dblib.c, sybdb.h
  • │ │ │ │
  • dbclose() : dblib.c, sybdb.h
  • │ │ │ │
  • dbclrbuf() : dblib.c, sybdb.h
  • │ │ │ │
  • dbclropt() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcmd() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcmdrow() : dblib.c, sybdb.h
  • │ │ │ │ -
  • dbcolinfo() : dblib.c, sybdb.h
  • │ │ │ │ +
  • dbcolinfo() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcollen() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcolname() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcolptr() : dblib.c
  • │ │ │ │
  • dbcolsource() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcoltype() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcoltypeinfo() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcolutype() : dblib.c, sybdb.h
  • │ │ │ │ @@ -114,28 +114,28 @@ │ │ │ │
  • dberrhandle() : dblib.c, sybdb.h
  • │ │ │ │
  • dbexit() : dblib.c, sybdb.h
  • │ │ │ │
  • dbfcmd() : dblib.c, sybdb.h
  • │ │ │ │
  • dbfirstrow() : dblib.c, sybdb.h
  • │ │ │ │
  • dbfreebuf() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetchar() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetmaxprocs() : sybdb.h, dblib.c
  • │ │ │ │ -
  • dbgetnull() : dblib.c
  • │ │ │ │ +
  • dbgetnull() : dblib.c
  • │ │ │ │
  • dbgetpacket() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetrow() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgettime() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetuserdata() : dblib.c, sybdb.h
  • │ │ │ │
  • dbhasretstat() : dblib.c, sybdb.h
  • │ │ │ │
  • dbinit() : dblib.c, sybdb.h
  • │ │ │ │
  • dbiordesc() : dblib.c, sybdb.h
  • │ │ │ │
  • dbiowdesc() : dblib.c, sybdb.h
  • │ │ │ │
  • dbiscount() : dblib.c, sybdb.h
  • │ │ │ │
  • dbisopt() : dblib.c, sybdb.h
  • │ │ │ │
  • dblastrow() : dblib.c, sybdb.h
  • │ │ │ │
  • DBLIB_ERROR_MESSAGE : dblib.c
  • │ │ │ │ -
  • DBLIBCONTEXT : dblib.c
  • │ │ │ │ +
  • DBLIBCONTEXT : dblib.c
  • │ │ │ │
  • dblogin() : dblib.c, sybdb.h
  • │ │ │ │
  • dbloginfree() : dblib.c, sybdb.h
  • │ │ │ │
  • dbmny4add() : dblib.c, sybdb.h
  • │ │ │ │
  • dbmny4cmp() : dblib.c, sybdb.h
  • │ │ │ │
  • dbmny4copy() : dblib.c, sybdb.h
  • │ │ │ │
  • dbmny4minus() : dblib.c, sybdb.h
  • │ │ │ │
  • dbmny4sub() : dblib.c, sybdb.h
  • │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_defs.html │ │ │ │ @@ -68,20 +68,20 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented macros with links to the documentation:
      │ │ │ │
    • DBTDS_UNKNOWN : sybdb.h
    • │ │ │ │
    • DBVERSION_UNKNOWN : sybdb.h
    • │ │ │ │ -
    • is_datetime_type : tds.h
    • │ │ │ │ -
    • TDS_IS_MSSQL : tds.h
    • │ │ │ │ -
    • TDS_IS_SYBASE : tds.h
    • │ │ │ │ -
    • TDS_MS_VER : tds.h
    • │ │ │ │ -
    • tds_put_tinyint : tds.h
    • │ │ │ │ -
    • TDS_SYB_VER : tds.h
    • │ │ │ │ +
    • is_datetime_type : tds.h
    • │ │ │ │ +
    • TDS_IS_MSSQL : tds.h
    • │ │ │ │ +
    • TDS_IS_SYBASE : tds.h
    • │ │ │ │ +
    • TDS_MS_VER : tds.h
    • │ │ │ │ +
    • tds_put_tinyint : tds.h
    • │ │ │ │ +
    • TDS_SYB_VER : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_enum.html │ │ │ │ @@ -66,17 +66,17 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented enums with links to the documentation:
      │ │ │ │ -
    • tds_bcp_directions : tds.h
    • │ │ │ │ -
    • tds_end : tds.h
    • │ │ │ │ -
    • tds_states : tds.h
    • │ │ │ │ +
    • tds_bcp_directions : tds.h
    • │ │ │ │ +
    • tds_end : tds.h
    • │ │ │ │ +
    • tds_states : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_eval.html │ │ │ │ @@ -66,28 +66,28 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented enum values with links to the documentation:
      │ │ │ │ -
    • TDS_DEAD : tds.h
    • │ │ │ │ -
    • TDS_DONE_CANCELLED : tds.h
    • │ │ │ │ -
    • TDS_DONE_COUNT : tds.h
    • │ │ │ │ -
    • TDS_DONE_ERROR : tds.h
    • │ │ │ │ -
    • TDS_DONE_FINAL : tds.h
    • │ │ │ │ -
    • TDS_DONE_INXACT : tds.h
    • │ │ │ │ -
    • TDS_DONE_MORE_RESULTS : tds.h
    • │ │ │ │ -
    • TDS_DONE_PROC : tds.h
    • │ │ │ │ -
    • TDS_DONE_SRVERROR : tds.h
    • │ │ │ │ -
    • TDS_IDLE : tds.h
    • │ │ │ │ -
    • TDS_PENDING : tds.h
    • │ │ │ │ -
    • TDS_READING : tds.h
    • │ │ │ │ -
    • TDS_SENDING : tds.h
    • │ │ │ │ -
    • TDS_WRITING : tds.h
    • │ │ │ │ +
    • TDS_DEAD : tds.h
    • │ │ │ │ +
    • TDS_DONE_CANCELLED : tds.h
    • │ │ │ │ +
    • TDS_DONE_COUNT : tds.h
    • │ │ │ │ +
    • TDS_DONE_ERROR : tds.h
    • │ │ │ │ +
    • TDS_DONE_FINAL : tds.h
    • │ │ │ │ +
    • TDS_DONE_INXACT : tds.h
    • │ │ │ │ +
    • TDS_DONE_MORE_RESULTS : tds.h
    • │ │ │ │ +
    • TDS_DONE_PROC : tds.h
    • │ │ │ │ +
    • TDS_DONE_SRVERROR : tds.h
    • │ │ │ │ +
    • TDS_IDLE : tds.h
    • │ │ │ │ +
    • TDS_PENDING : tds.h
    • │ │ │ │ +
    • TDS_READING : tds.h
    • │ │ │ │ +
    • TDS_SENDING : tds.h
    • │ │ │ │ +
    • TDS_WRITING : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_func.html │ │ │ │ @@ -68,24 +68,24 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented functions with links to the documentation:
    │ │ │ │ │ │ │ │

    - _ -

      │ │ │ │ -
    • _bcp_convert_in() : bcp.c
    • │ │ │ │ -
    • _bcp_convert_out() : bcp.c
    • │ │ │ │ +
    • _bcp_convert_in() : bcp.c
    • │ │ │ │ +
    • _bcp_convert_out() : bcp.c
    • │ │ │ │
    • _bcp_exec_in() : bcp.c
    • │ │ │ │
    • _bcp_exec_out() : bcp.c
    • │ │ │ │
    • _bcp_fgets() : bcp.c
    • │ │ │ │
    • _bcp_free_columns() : bcp.c
    • │ │ │ │
    • _bcp_free_storage() : bcp.c
    • │ │ │ │
    • _bcp_get_col_data() : bcp.c
    • │ │ │ │
    • _bcp_get_term_var() : bcp.c
    • │ │ │ │ -
    • _bcp_no_get_col_data() : bcp.c
    • │ │ │ │ +
    • _bcp_no_get_col_data() : bcp.c
    • │ │ │ │
    • _bcp_read_hostfile() : bcp.c
    • │ │ │ │
    • _bcp_readfmt_colinfo() : bcp.c
    • │ │ │ │
    • _dbcoldata() : dblib.c
    • │ │ │ │
    • _dbresults() : dblib.c
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_func_d.html │ │ │ │ @@ -89,15 +89,15 @@ │ │ │ │
  • dbcanquery() : dblib.c, sybdb.h
  • │ │ │ │
  • dbchange() : dblib.c, sybdb.h
  • │ │ │ │
  • dbclose() : dblib.c, sybdb.h
  • │ │ │ │
  • dbclrbuf() : dblib.c, sybdb.h
  • │ │ │ │
  • dbclropt() : sybdb.h, dblib.c
  • │ │ │ │
  • dbcmd() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcmdrow() : dblib.c, sybdb.h
  • │ │ │ │ -
  • dbcolinfo() : dblib.c, sybdb.h
  • │ │ │ │ +
  • dbcolinfo() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcollen() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcolname() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcolptr() : dblib.c
  • │ │ │ │
  • dbcolsource() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcoltype() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcoltypeinfo() : dblib.c, sybdb.h
  • │ │ │ │
  • dbcolutype() : dblib.c, sybdb.h
  • │ │ │ │ @@ -114,15 +114,15 @@ │ │ │ │
  • dberrhandle() : dblib.c, sybdb.h
  • │ │ │ │
  • dbexit() : dblib.c, sybdb.h
  • │ │ │ │
  • dbfcmd() : dblib.c, sybdb.h
  • │ │ │ │
  • dbfirstrow() : dblib.c, sybdb.h
  • │ │ │ │
  • dbfreebuf() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetchar() : sybdb.h, dblib.c
  • │ │ │ │
  • dbgetmaxprocs() : dblib.c, sybdb.h
  • │ │ │ │ -
  • dbgetnull() : dblib.c
  • │ │ │ │ +
  • dbgetnull() : dblib.c
  • │ │ │ │
  • dbgetpacket() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetrow() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgettime() : dblib.c, sybdb.h
  • │ │ │ │
  • dbgetuserdata() : dblib.c, sybdb.h
  • │ │ │ │
  • dbhasretstat() : dblib.c, sybdb.h
  • │ │ │ │
  • dbinit() : dblib.c, sybdb.h
  • │ │ │ │
  • dbiordesc() : dblib.c, sybdb.h
  • │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_func_t.html │ │ │ │ @@ -68,111 +68,111 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented functions with links to the documentation:
    │ │ │ │ │ │ │ │

    - t -

      │ │ │ │ -
    • tds5_bcp_add_fixed_columns() : bulk.c
    • │ │ │ │ -
    • tds5_bcp_add_variable_columns() : bulk.c
    • │ │ │ │ +
    • tds5_bcp_add_fixed_columns() : bulk.c
    • │ │ │ │ +
    • tds5_bcp_add_variable_columns() : bulk.c
    • │ │ │ │
    • tds5_process_dyn_result2() : token.c
    • │ │ │ │
    • tds5_process_optioncmd() : token.c
    • │ │ │ │
    • tds5_process_result() : token.c
    • │ │ │ │
    • tds5_process_result2() : token.c
    • │ │ │ │
    • tds71_read_table_names() : token.c
    • │ │ │ │
    • tds71_submit_prepexec() : tds.h
    • │ │ │ │ -
    • tds7_bcp_send_colmetadata() : bulk.c
    • │ │ │ │ -
    • tds7_build_bulk_insert_stmt() : bulk.c
    • │ │ │ │ +
    • tds7_bcp_send_colmetadata() : bulk.c
    • │ │ │ │ +
    • tds7_build_bulk_insert_stmt() : bulk.c
    • │ │ │ │
    • tds7_get_data_info() : token.c
    • │ │ │ │
    • tds7_get_instance_port() : tds.h
    • │ │ │ │
    • tds7_get_instance_ports() : tds.h
    • │ │ │ │
    • tds7_process_compute_result() : token.c
    • │ │ │ │
    • tds7_process_result() : token.c
    • │ │ │ │
    • tds_alloc_dynamic() : tds.h
    • │ │ │ │
    • tds_alloc_get_string() : token.c
    • │ │ │ │
    • tds_alloc_param_data() : tds.h
    • │ │ │ │
    • tds_alloc_param_result() : tds.h
    • │ │ │ │
    • tds_alloc_row() : tds.h
    • │ │ │ │ -
    • tds_bcp_done() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_fread() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_init() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_row_free() : bulk.c
    • │ │ │ │ -
    • tds_bcp_send_record() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_start() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_start_copy_in() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_start_insert_stmt() : bulk.c
    • │ │ │ │ +
    • tds_bcp_done() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_fread() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_init() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_row_free() : bulk.c
    • │ │ │ │ +
    • tds_bcp_send_record() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_start() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_start_copy_in() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_start_insert_stmt() : bulk.c
    • │ │ │ │
    • tds_canonical_charset() : iconv.c
    • │ │ │ │
    • tds_canonical_charset_name() : iconv.c
    • │ │ │ │
    • tds_close_socket() : tds.h
    • │ │ │ │
    • tds_config_verstr() : tds.h
    • │ │ │ │ -
    • tds_convert_stream() : stream.c
    • │ │ │ │ +
    • tds_convert_stream() : stream.c
    • │ │ │ │
    • tds_convert_string() : tds.h
    • │ │ │ │ -
    • tds_copy_stream() : stream.c
    • │ │ │ │ +
    • tds_copy_stream() : stream.c
    • │ │ │ │
    • tds_count_placeholders() : tds.h
    • │ │ │ │
    • tds_cursor_dealloc() : tds.h
    • │ │ │ │ -
    • tds_datain_stream_init() : stream.c
    • │ │ │ │ -
    • tds_datain_stream_read() : stream.c
    • │ │ │ │ -
    • tds_dataout_stream_init() : stream.c
    • │ │ │ │ -
    • tds_dataout_stream_write() : stream.c
    • │ │ │ │ +
    • tds_datain_stream_init() : stream.c
    • │ │ │ │ +
    • tds_datain_stream_read() : stream.c
    • │ │ │ │ +
    • tds_dataout_stream_init() : stream.c
    • │ │ │ │ +
    • tds_dataout_stream_write() : stream.c
    • │ │ │ │
    • tds_datecrack() : tds.h
    • │ │ │ │
    • tds_deferred_cursor_dealloc() : tds.h
    • │ │ │ │
    • tds_deferred_unprepare() : tds.h
    • │ │ │ │
    • tds_detach_results() : tds.h
    • │ │ │ │
    • tds_dstr_get() : read.c, tds.h
    • │ │ │ │ -
    • tds_dynamic_stream_init() : stream.c
    • │ │ │ │ -
    • tds_dynamic_stream_write() : stream.c
    • │ │ │ │ -
    • tds_file_stream_read() : bulk.c
    • │ │ │ │ +
    • tds_dynamic_stream_init() : stream.c
    • │ │ │ │ +
    • tds_dynamic_stream_write() : stream.c
    • │ │ │ │ +
    • tds_file_stream_read() : bulk.c
    • │ │ │ │
    • tds_fix_column_size() : tds.h
    • │ │ │ │
    • tds_fix_login() : tds.h
    • │ │ │ │
    • tds_flush_packet() : tds.h
    • │ │ │ │
    • tds_free_input_params() : tds.h
    • │ │ │ │
    • tds_free_namelist() : token.c
    • │ │ │ │
    • tds_free_param_result() : tds.h
    • │ │ │ │
    • tds_freeze() : tds.h
    • │ │ │ │
    • tds_freeze_abort() : tds.h
    • │ │ │ │
    • tds_freeze_close() : tds.h
    • │ │ │ │
    • tds_freeze_close_len() : tds.h
    • │ │ │ │
    • tds_freeze_written() : tds.h
    • │ │ │ │ -
    • tds_generic_get() : data.c
    • │ │ │ │ -
    • tds_generic_put() : data.c
    • │ │ │ │ -
    • tds_generic_put_info() : data.c
    • │ │ │ │ +
    • tds_generic_get() : data.c
    • │ │ │ │ +
    • tds_generic_put() : data.c
    • │ │ │ │ +
    • tds_generic_put_info() : data.c
    • │ │ │ │
    • tds_get_byte() : read.c, tds.h
    • │ │ │ │
    • tds_get_char_data() : read.c, tds.h
    • │ │ │ │
    • tds_get_column_declaration() : tds.h
    • │ │ │ │
    • tds_get_compiletime_settings() : tds.h
    • │ │ │ │ -
    • tds_get_conversion_type() : tds.h
    • │ │ │ │ +
    • tds_get_conversion_type() : tds.h
    • │ │ │ │
    • tds_get_data_info() : token.c
    • │ │ │ │
    • tds_get_home_file() : tds.h
    • │ │ │ │ -
    • tds_get_locale() : tds.h
    • │ │ │ │ +
    • tds_get_locale() : tds.h
    • │ │ │ │
    • tds_get_n() : read.c, tds.h
    • │ │ │ │ -
    • tds_get_size_by_type() : tds.h
    • │ │ │ │ +
    • tds_get_size_by_type() : tds.h
    • │ │ │ │
    • tds_get_string() : read.c, tds.h
    • │ │ │ │
    • tds_get_token_size() : token.c, tds.h
    • │ │ │ │
    • tds_get_uint() : read.c, tds.h
    • │ │ │ │
    • tds_get_uint8() : read.c, tds.h
    • │ │ │ │
    • tds_get_usmallint() : read.c, tds.h
    • │ │ │ │ -
    • tds_get_varint_size() : tds.h
    • │ │ │ │ +
    • tds_get_varint_size() : tds.h
    • │ │ │ │
    • tds_goodread() : tds.h
    • │ │ │ │
    • tds_goodwrite() : tds.h
    • │ │ │ │
    • tds_iconv() : iconv.c
    • │ │ │ │ -
    • tds_iconv_alloc() : iconv.c, tds.h
    • │ │ │ │ +
    • tds_iconv_alloc() : iconv.c, tds.h
    • │ │ │ │
    • tds_iconv_from_collate() : iconv.c, tds.h
    • │ │ │ │
    • tds_iconv_get_info() : iconv.c
    • │ │ │ │
    • tds_iconv_info_init() : iconv.c
    • │ │ │ │ -
    • tds_iconv_init() : iconv.c
    • │ │ │ │ +
    • tds_iconv_init() : iconv.c
    • │ │ │ │
    • tds_init_login() : tds.h
    • │ │ │ │
    • tds_lookup_dynamic() : token.c, tds.h
    • │ │ │ │
    • tds_lookup_host() : tds.h
    • │ │ │ │
    • tds_needs_unprepare() : tds.h
    • │ │ │ │
    • tds_next_placeholder() : tds.h
    • │ │ │ │
    • tds_ntlm_get_auth() : tds.h
    • │ │ │ │ -
    • tds_numeric_to_string() : tds.h
    • │ │ │ │ +
    • tds_numeric_to_string() : tds.h
    • │ │ │ │
    • tds_peek() : read.c, tds.h
    • │ │ │ │
    • tds_pr_op() : token.c
    • │ │ │ │ -
    • tds_prdatatype() : dblib.c
    • │ │ │ │ +
    • tds_prdatatype() : dblib.c
    • │ │ │ │
    • tds_process_auth() : token.c
    • │ │ │ │
    • tds_process_cancel() : token.c, tds.h
    • │ │ │ │
    • tds_process_col_fmt() : token.c
    • │ │ │ │
    • tds_process_col_name() : token.c
    • │ │ │ │
    • tds_process_colinfo() : token.c
    • │ │ │ │
    • tds_process_compute() : token.c
    • │ │ │ │
    • tds_process_compute_names() : token.c
    • │ │ │ │ @@ -204,58 +204,58 @@ │ │ │ │
    • tds_read_config_info() : tds.h
    • │ │ │ │
    • tds_read_namelist() : token.c
    • │ │ │ │
    • tds_read_packet() : tds.h
    • │ │ │ │
    • tds_realloc() : tds.h
    • │ │ │ │
    • tds_release_dynamic() : tds.h
    • │ │ │ │
    • tds_select() : tds.h
    • │ │ │ │
    • tds_send_cancel() : tds.h
    • │ │ │ │ -
    • tds_set_column_type() : data.c, tds.h
    • │ │ │ │ +
    • tds_set_column_type() : data.c, tds.h
    • │ │ │ │
    • tds_set_cur_dyn() : tds.h
    • │ │ │ │ -
    • tds_set_iconv_name() : iconv.c
    • │ │ │ │ +
    • tds_set_iconv_name() : iconv.c
    • │ │ │ │
    • tds_set_interfaces_file_loc() : tds.h
    • │ │ │ │ -
    • tds_set_param_type() : data.c, tds.h
    • │ │ │ │ -
    • tds_set_server() : tds.h
    • │ │ │ │ -
    • tds_set_state() : tds.h
    • │ │ │ │ +
    • tds_set_param_type() : data.c, tds.h
    • │ │ │ │ +
    • tds_set_server() : tds.h
    • │ │ │ │ +
    • tds_set_state() : tds.h
    • │ │ │ │
    • tds_skip_comment() : tds.h
    • │ │ │ │
    • tds_skip_quoted() : tds.h
    • │ │ │ │
    • tds_socket_set_nonblocking() : tds.h
    • │ │ │ │
    • tds_start_query() : tds.h
    • │ │ │ │ -
    • tds_staticin_stream_init() : stream.c
    • │ │ │ │ -
    • tds_staticin_stream_read() : stream.c
    • │ │ │ │ -
    • tds_staticout_stream_init() : stream.c
    • │ │ │ │ -
    • tds_staticout_stream_write() : stream.c
    • │ │ │ │ -
    • tds_strndup() : tds.h
    • │ │ │ │ +
    • tds_staticin_stream_init() : stream.c
    • │ │ │ │ +
    • tds_staticin_stream_read() : stream.c
    • │ │ │ │ +
    • tds_staticout_stream_init() : stream.c
    • │ │ │ │ +
    • tds_staticout_stream_write() : stream.c
    • │ │ │ │ +
    • tds_strndup() : tds.h
    • │ │ │ │
    • tds_submit_begin_tran() : tds.h
    • │ │ │ │
    • tds_submit_commit() : tds.h
    • │ │ │ │
    • tds_submit_execdirect() : tds.h
    • │ │ │ │
    • tds_submit_execute() : tds.h
    • │ │ │ │
    • tds_submit_optioncmd() : tds.h
    • │ │ │ │
    • tds_submit_prepare() : tds.h
    • │ │ │ │
    • tds_submit_query() : tds.h
    • │ │ │ │
    • tds_submit_query_params() : tds.h
    • │ │ │ │
    • tds_submit_queryf() : tds.h
    • │ │ │ │
    • tds_submit_rollback() : tds.h
    • │ │ │ │
    • tds_submit_rpc() : tds.h
    • │ │ │ │
    • tds_submit_unprepare() : tds.h
    • │ │ │ │ -
    • tds_swap_numeric() : data.c
    • │ │ │ │ +
    • tds_swap_numeric() : data.c
    • │ │ │ │
    • tds_sys_iconv_open() : iconv.c
    • │ │ │ │
    • tds_token_name() : token.c
    • │ │ │ │
    • tds_unget_byte() : read.c, tds.h
    • │ │ │ │ -
    • tds_writetext_continue() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_writetext_end() : tds.h, bulk.c
    • │ │ │ │ -
    • tds_writetext_start() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_writetext_continue() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_writetext_end() : tds.h, bulk.c
    • │ │ │ │ +
    • tds_writetext_start() : bulk.c, tds.h
    • │ │ │ │
    • tdsdbopen() : dblib.c, sybdb.h
    • │ │ │ │ -
    • tdsdump_close() : tds.h
    • │ │ │ │ -
    • tdsdump_col() : tds.h
    • │ │ │ │ -
    • tdsdump_dump_buf() : tds.h
    • │ │ │ │ -
    • tdsdump_log() : tds.h
    • │ │ │ │ -
    • tdsdump_off() : tds.h
    • │ │ │ │ -
    • tdsdump_on() : tds.h
    • │ │ │ │ -
    • tdsdump_open() : tds.h
    • │ │ │ │ -
    • tdserror() : tds.h
    • │ │ │ │ +
    • tdsdump_close() : tds.h
    • │ │ │ │ +
    • tdsdump_col() : tds.h
    • │ │ │ │ +
    • tdsdump_dump_buf() : tds.h
    • │ │ │ │ +
    • tdsdump_log() : tds.h
    • │ │ │ │ +
    • tdsdump_off() : tds.h
    • │ │ │ │ +
    • tdsdump_on() : tds.h
    • │ │ │ │ +
    • tdsdump_open() : tds.h
    • │ │ │ │ +
    • tdserror() : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_i.html │ │ │ │ @@ -68,15 +68,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented file members with links to the documentation:
    │ │ │ │ │ │ │ │

    - i -

      │ │ │ │ -
    • is_datetime_type : tds.h
    • │ │ │ │ +
    • is_datetime_type : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_t.html │ │ │ │ @@ -68,130 +68,130 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented file members with links to the documentation:
    │ │ │ │ │ │ │ │

    - t -

      │ │ │ │ -
    • tds5_bcp_add_fixed_columns() : bulk.c
    • │ │ │ │ -
    • tds5_bcp_add_variable_columns() : bulk.c
    • │ │ │ │ +
    • tds5_bcp_add_fixed_columns() : bulk.c
    • │ │ │ │ +
    • tds5_bcp_add_variable_columns() : bulk.c
    • │ │ │ │
    • tds5_process_dyn_result2() : token.c
    • │ │ │ │
    • tds5_process_optioncmd() : token.c
    • │ │ │ │
    • tds5_process_result() : token.c
    • │ │ │ │
    • tds5_process_result2() : token.c
    • │ │ │ │
    • tds71_read_table_names() : token.c
    • │ │ │ │
    • tds71_submit_prepexec() : tds.h
    • │ │ │ │ -
    • tds7_bcp_send_colmetadata() : bulk.c
    • │ │ │ │ -
    • tds7_build_bulk_insert_stmt() : bulk.c
    • │ │ │ │ +
    • tds7_bcp_send_colmetadata() : bulk.c
    • │ │ │ │ +
    • tds7_build_bulk_insert_stmt() : bulk.c
    • │ │ │ │
    • tds7_get_data_info() : token.c
    • │ │ │ │
    • tds7_get_instance_port() : tds.h
    • │ │ │ │
    • tds7_get_instance_ports() : tds.h
    • │ │ │ │
    • tds7_process_compute_result() : token.c
    • │ │ │ │
    • tds7_process_result() : token.c
    • │ │ │ │
    • tds_alloc_dynamic() : tds.h
    • │ │ │ │
    • tds_alloc_get_string() : token.c
    • │ │ │ │
    • tds_alloc_param_data() : tds.h
    • │ │ │ │
    • tds_alloc_param_result() : tds.h
    • │ │ │ │
    • tds_alloc_row() : tds.h
    • │ │ │ │ -
    • tds_bcp_directions : tds.h
    • │ │ │ │ -
    • tds_bcp_done() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_fread() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_init() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_row_free() : bulk.c
    • │ │ │ │ -
    • tds_bcp_send_record() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_start() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_bcp_start_copy_in() : tds.h, bulk.c
    • │ │ │ │ -
    • tds_bcp_start_insert_stmt() : bulk.c
    • │ │ │ │ +
    • tds_bcp_directions : tds.h
    • │ │ │ │ +
    • tds_bcp_done() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_fread() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_init() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_row_free() : bulk.c
    • │ │ │ │ +
    • tds_bcp_send_record() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_start() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_bcp_start_copy_in() : tds.h, bulk.c
    • │ │ │ │ +
    • tds_bcp_start_insert_stmt() : bulk.c
    • │ │ │ │
    • tds_canonical_charset() : iconv.c
    • │ │ │ │
    • tds_canonical_charset_name() : iconv.c
    • │ │ │ │
    • tds_close_socket() : tds.h
    • │ │ │ │ -
    • TDS_COMPILETIME_SETTINGS : tds.h
    • │ │ │ │ +
    • TDS_COMPILETIME_SETTINGS : tds.h
    • │ │ │ │
    • tds_config_verstr() : tds.h
    • │ │ │ │ -
    • tds_convert_stream() : stream.c
    • │ │ │ │ +
    • tds_convert_stream() : stream.c
    • │ │ │ │
    • tds_convert_string() : tds.h
    • │ │ │ │ -
    • tds_copy_stream() : stream.c
    • │ │ │ │ +
    • tds_copy_stream() : stream.c
    • │ │ │ │
    • tds_count_placeholders() : tds.h
    • │ │ │ │
    • tds_cursor_dealloc() : tds.h
    • │ │ │ │ -
    • tds_datain_stream_init() : stream.c
    • │ │ │ │ -
    • tds_datain_stream_read() : stream.c
    • │ │ │ │ -
    • tds_dataout_stream_init() : stream.c
    • │ │ │ │ -
    • tds_dataout_stream_write() : stream.c
    • │ │ │ │ +
    • tds_datain_stream_init() : stream.c
    • │ │ │ │ +
    • tds_datain_stream_read() : stream.c
    • │ │ │ │ +
    • tds_dataout_stream_init() : stream.c
    • │ │ │ │ +
    • tds_dataout_stream_write() : stream.c
    • │ │ │ │
    • tds_datecrack() : tds.h
    • │ │ │ │ -
    • TDS_DEAD : tds.h
    • │ │ │ │ +
    • TDS_DEAD : tds.h
    • │ │ │ │
    • tds_deferred_cursor_dealloc() : tds.h
    • │ │ │ │
    • tds_deferred_unprepare() : tds.h
    • │ │ │ │
    • tds_detach_results() : tds.h
    • │ │ │ │ -
    • TDS_DONE_CANCELLED : tds.h
    • │ │ │ │ -
    • TDS_DONE_COUNT : tds.h
    • │ │ │ │ -
    • TDS_DONE_ERROR : tds.h
    • │ │ │ │ -
    • TDS_DONE_FINAL : tds.h
    • │ │ │ │ -
    • TDS_DONE_INXACT : tds.h
    • │ │ │ │ -
    • TDS_DONE_MORE_RESULTS : tds.h
    • │ │ │ │ -
    • TDS_DONE_PROC : tds.h
    • │ │ │ │ -
    • TDS_DONE_SRVERROR : tds.h
    • │ │ │ │ +
    • TDS_DONE_CANCELLED : tds.h
    • │ │ │ │ +
    • TDS_DONE_COUNT : tds.h
    • │ │ │ │ +
    • TDS_DONE_ERROR : tds.h
    • │ │ │ │ +
    • TDS_DONE_FINAL : tds.h
    • │ │ │ │ +
    • TDS_DONE_INXACT : tds.h
    • │ │ │ │ +
    • TDS_DONE_MORE_RESULTS : tds.h
    • │ │ │ │ +
    • TDS_DONE_PROC : tds.h
    • │ │ │ │ +
    • TDS_DONE_SRVERROR : tds.h
    • │ │ │ │
    • tds_dstr_get() : tds.h, read.c
    • │ │ │ │ -
    • tds_dynamic_stream_init() : stream.c
    • │ │ │ │ -
    • tds_dynamic_stream_write() : stream.c
    • │ │ │ │ -
    • TDS_ENCODING : tds.h
    • │ │ │ │ -
    • tds_end : tds.h
    • │ │ │ │ -
    • tds_file_stream_read() : bulk.c
    • │ │ │ │ +
    • tds_dynamic_stream_init() : stream.c
    • │ │ │ │ +
    • tds_dynamic_stream_write() : stream.c
    • │ │ │ │ +
    • TDS_ENCODING : tds.h
    • │ │ │ │ +
    • tds_end : tds.h
    • │ │ │ │ +
    • tds_file_stream_read() : bulk.c
    • │ │ │ │
    • tds_fix_column_size() : tds.h
    • │ │ │ │
    • tds_fix_login() : tds.h
    • │ │ │ │
    • tds_flush_packet() : tds.h
    • │ │ │ │
    • tds_free_input_params() : tds.h
    • │ │ │ │
    • tds_free_namelist() : token.c
    • │ │ │ │
    • tds_free_param_result() : tds.h
    • │ │ │ │
    • tds_freeze() : tds.h
    • │ │ │ │
    • tds_freeze_abort() : tds.h
    • │ │ │ │
    • tds_freeze_close() : tds.h
    • │ │ │ │
    • tds_freeze_close_len() : tds.h
    • │ │ │ │
    • tds_freeze_written() : tds.h
    • │ │ │ │ -
    • tds_generic_get() : data.c
    • │ │ │ │ -
    • tds_generic_put() : data.c
    • │ │ │ │ -
    • tds_generic_put_info() : data.c
    • │ │ │ │ +
    • tds_generic_get() : data.c
    • │ │ │ │ +
    • tds_generic_put() : data.c
    • │ │ │ │ +
    • tds_generic_put_info() : data.c
    • │ │ │ │
    • tds_get_byte() : read.c, tds.h
    • │ │ │ │
    • tds_get_char_data() : read.c, tds.h
    • │ │ │ │
    • tds_get_column_declaration() : tds.h
    • │ │ │ │
    • tds_get_compiletime_settings() : tds.h
    • │ │ │ │ -
    • tds_get_conversion_type() : tds.h
    • │ │ │ │ +
    • tds_get_conversion_type() : tds.h
    • │ │ │ │
    • tds_get_data_info() : token.c
    • │ │ │ │
    • tds_get_home_file() : tds.h
    • │ │ │ │ -
    • tds_get_locale() : tds.h
    • │ │ │ │ +
    • tds_get_locale() : tds.h
    • │ │ │ │
    • tds_get_n() : read.c, tds.h
    • │ │ │ │ -
    • tds_get_size_by_type() : tds.h
    • │ │ │ │ +
    • tds_get_size_by_type() : tds.h
    • │ │ │ │
    • tds_get_string() : read.c, tds.h
    • │ │ │ │
    • tds_get_token_size() : token.c, tds.h
    • │ │ │ │
    • tds_get_uint() : read.c, tds.h
    • │ │ │ │
    • tds_get_uint8() : read.c, tds.h
    • │ │ │ │
    • tds_get_usmallint() : read.c, tds.h
    • │ │ │ │ -
    • tds_get_varint_size() : tds.h
    • │ │ │ │ +
    • tds_get_varint_size() : tds.h
    • │ │ │ │
    • tds_goodread() : tds.h
    • │ │ │ │
    • tds_goodwrite() : tds.h
    • │ │ │ │
    • tds_iconv() : iconv.c
    • │ │ │ │ -
    • tds_iconv_alloc() : iconv.c, tds.h
    • │ │ │ │ +
    • tds_iconv_alloc() : iconv.c, tds.h
    • │ │ │ │
    • tds_iconv_from_collate() : iconv.c, tds.h
    • │ │ │ │
    • tds_iconv_get_info() : iconv.c
    • │ │ │ │
    • tds_iconv_info_init() : iconv.c
    • │ │ │ │ -
    • tds_iconv_init() : iconv.c
    • │ │ │ │ -
    • TDS_IDLE : tds.h
    • │ │ │ │ +
    • tds_iconv_init() : iconv.c
    • │ │ │ │ +
    • TDS_IDLE : tds.h
    • │ │ │ │
    • tds_init_login() : tds.h
    • │ │ │ │ -
    • TDS_IS_MSSQL : tds.h
    • │ │ │ │ -
    • TDS_IS_SYBASE : tds.h
    • │ │ │ │ +
    • TDS_IS_MSSQL : tds.h
    • │ │ │ │ +
    • TDS_IS_SYBASE : tds.h
    • │ │ │ │
    • tds_lookup_dynamic() : token.c, tds.h
    • │ │ │ │
    • tds_lookup_host() : tds.h
    • │ │ │ │ -
    • TDS_MS_VER : tds.h
    • │ │ │ │ +
    • TDS_MS_VER : tds.h
    • │ │ │ │
    • tds_needs_unprepare() : tds.h
    • │ │ │ │
    • tds_next_placeholder() : tds.h
    • │ │ │ │
    • tds_ntlm_get_auth() : tds.h
    • │ │ │ │ -
    • tds_numeric_bytes_per_prec : tds.h
    • │ │ │ │ -
    • tds_numeric_to_string() : tds.h
    • │ │ │ │ +
    • tds_numeric_bytes_per_prec : tds.h
    • │ │ │ │ +
    • tds_numeric_to_string() : tds.h
    • │ │ │ │
    • tds_peek() : read.c, tds.h
    • │ │ │ │ -
    • TDS_PENDING : tds.h
    • │ │ │ │ +
    • TDS_PENDING : tds.h
    • │ │ │ │
    • tds_pr_op() : token.c
    • │ │ │ │ -
    • tds_prdatatype() : dblib.c
    • │ │ │ │ +
    • tds_prdatatype() : dblib.c
    • │ │ │ │
    • tds_process_auth() : token.c
    • │ │ │ │
    • tds_process_cancel() : token.c, tds.h
    • │ │ │ │
    • tds_process_col_fmt() : token.c
    • │ │ │ │
    • tds_process_col_name() : token.c
    • │ │ │ │
    • tds_process_colinfo() : token.c
    • │ │ │ │
    • tds_process_compute() : token.c
    • │ │ │ │
    • tds_process_compute_names() : token.c
    • │ │ │ │ @@ -211,87 +211,87 @@ │ │ │ │
    • tds_process_pending_closes() : token.c
    • │ │ │ │
    • tds_process_row() : token.c
    • │ │ │ │
    • tds_process_simple_query() : token.c, tds.h
    • │ │ │ │
    • tds_process_tabname() : token.c
    • │ │ │ │
    • tds_process_tokens() : token.c, tds.h
    • │ │ │ │
    • tds_prtype() : token.c, tds.h
    • │ │ │ │
    • tds_put_string() : tds.h
    • │ │ │ │ -
    • tds_put_tinyint : tds.h
    • │ │ │ │ +
    • tds_put_tinyint : tds.h
    • │ │ │ │
    • tds_quote_id() : tds.h
    • │ │ │ │
    • tds_quote_id_rpc() : tds.h
    • │ │ │ │
    • tds_quote_string() : tds.h
    • │ │ │ │
    • tds_read_conf_file() : tds.h
    • │ │ │ │
    • tds_read_conf_section() : tds.h
    • │ │ │ │
    • tds_read_config_info() : tds.h
    • │ │ │ │
    • tds_read_namelist() : token.c
    • │ │ │ │
    • tds_read_packet() : tds.h
    • │ │ │ │ -
    • TDS_READING : tds.h
    • │ │ │ │ +
    • TDS_READING : tds.h
    • │ │ │ │
    • tds_realloc() : tds.h
    • │ │ │ │
    • tds_release_dynamic() : tds.h
    • │ │ │ │
    • tds_select() : tds.h
    • │ │ │ │
    • tds_send_cancel() : tds.h
    • │ │ │ │ -
    • TDS_SENDING : tds.h
    • │ │ │ │ -
    • tds_set_column_type() : data.c, tds.h
    • │ │ │ │ +
    • TDS_SENDING : tds.h
    • │ │ │ │ +
    • tds_set_column_type() : data.c, tds.h
    • │ │ │ │
    • tds_set_cur_dyn() : tds.h
    • │ │ │ │ -
    • tds_set_iconv_name() : iconv.c
    • │ │ │ │ +
    • tds_set_iconv_name() : iconv.c
    • │ │ │ │
    • tds_set_interfaces_file_loc() : tds.h
    • │ │ │ │ -
    • tds_set_param_type() : data.c, tds.h
    • │ │ │ │ -
    • tds_set_server() : tds.h
    • │ │ │ │ -
    • tds_set_state() : tds.h
    • │ │ │ │ +
    • tds_set_param_type() : data.c, tds.h
    • │ │ │ │ +
    • tds_set_server() : tds.h
    • │ │ │ │ +
    • tds_set_state() : tds.h
    • │ │ │ │
    • tds_skip_comment() : tds.h
    • │ │ │ │
    • tds_skip_quoted() : tds.h
    • │ │ │ │
    • tds_socket_set_nonblocking() : tds.h
    • │ │ │ │
    • tds_start_query() : tds.h
    • │ │ │ │ -
    • TDS_STATE : tds.h
    • │ │ │ │ -
    • tds_states : tds.h
    • │ │ │ │ -
    • tds_staticin_stream_init() : stream.c
    • │ │ │ │ -
    • tds_staticin_stream_read() : stream.c
    • │ │ │ │ -
    • tds_staticout_stream_init() : stream.c
    • │ │ │ │ -
    • tds_staticout_stream_write() : stream.c
    • │ │ │ │ -
    • tds_strndup() : tds.h
    • │ │ │ │ +
    • TDS_STATE : tds.h
    • │ │ │ │ +
    • tds_states : tds.h
    • │ │ │ │ +
    • tds_staticin_stream_init() : stream.c
    • │ │ │ │ +
    • tds_staticin_stream_read() : stream.c
    • │ │ │ │ +
    • tds_staticout_stream_init() : stream.c
    • │ │ │ │ +
    • tds_staticout_stream_write() : stream.c
    • │ │ │ │ +
    • tds_strndup() : tds.h
    • │ │ │ │
    • tds_submit_begin_tran() : tds.h
    • │ │ │ │
    • tds_submit_commit() : tds.h
    • │ │ │ │
    • tds_submit_execdirect() : tds.h
    • │ │ │ │
    • tds_submit_execute() : tds.h
    • │ │ │ │
    • tds_submit_optioncmd() : tds.h
    • │ │ │ │
    • tds_submit_prepare() : tds.h
    • │ │ │ │
    • tds_submit_query() : tds.h
    • │ │ │ │
    • tds_submit_query_params() : tds.h
    • │ │ │ │
    • tds_submit_queryf() : tds.h
    • │ │ │ │
    • tds_submit_rollback() : tds.h
    • │ │ │ │
    • tds_submit_rpc() : tds.h
    • │ │ │ │
    • tds_submit_unprepare() : tds.h
    • │ │ │ │ -
    • tds_swap_numeric() : data.c
    • │ │ │ │ -
    • TDS_SYB_VER : tds.h
    • │ │ │ │ +
    • tds_swap_numeric() : data.c
    • │ │ │ │ +
    • TDS_SYB_VER : tds.h
    • │ │ │ │
    • tds_sys_iconv_open() : iconv.c
    • │ │ │ │
    • tds_token_name() : token.c
    • │ │ │ │
    • tds_unget_byte() : read.c, tds.h
    • │ │ │ │ -
    • tds_write_dump : tds.h
    • │ │ │ │ -
    • tds_writetext_continue() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_writetext_end() : bulk.c, tds.h
    • │ │ │ │ -
    • tds_writetext_start() : bulk.c, tds.h
    • │ │ │ │ -
    • TDS_WRITING : tds.h
    • │ │ │ │ -
    • TDSBLOB : tds.h
    • │ │ │ │ -
    • TDSCURSOR : tds.h
    • │ │ │ │ -
    • TDSDATEREC : tds.h
    • │ │ │ │ +
    • tds_write_dump : tds.h
    • │ │ │ │ +
    • tds_writetext_continue() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_writetext_end() : bulk.c, tds.h
    • │ │ │ │ +
    • tds_writetext_start() : bulk.c, tds.h
    • │ │ │ │ +
    • TDS_WRITING : tds.h
    • │ │ │ │ +
    • TDSBLOB : tds.h
    • │ │ │ │ +
    • TDSCURSOR : tds.h
    • │ │ │ │ +
    • TDSDATEREC : tds.h
    • │ │ │ │
    • tdsdbopen() : sybdb.h, dblib.c
    • │ │ │ │ -
    • tdsdump_close() : tds.h
    • │ │ │ │ -
    • tdsdump_col() : tds.h
    • │ │ │ │ -
    • tdsdump_dump_buf() : tds.h
    • │ │ │ │ -
    • tdsdump_log() : tds.h
    • │ │ │ │ -
    • tdsdump_off() : tds.h
    • │ │ │ │ -
    • tdsdump_on() : tds.h
    • │ │ │ │ -
    • tdsdump_open() : tds.h
    • │ │ │ │ -
    • TDSDYNAMIC : tds.h
    • │ │ │ │ -
    • TDSENV : tds.h
    • │ │ │ │ -
    • tdserror() : tds.h
    • │ │ │ │ -
    • TDSFILESTREAM : bulk.c
    • │ │ │ │ -
    • TDSPBCB : bulk.c
    • │ │ │ │ -
    • TDSRESULTINFO : tds.h
    • │ │ │ │ -
    • TDSVARIANT : tds.h
    • │ │ │ │ +
    • tdsdump_close() : tds.h
    • │ │ │ │ +
    • tdsdump_col() : tds.h
    • │ │ │ │ +
    • tdsdump_dump_buf() : tds.h
    • │ │ │ │ +
    • tdsdump_log() : tds.h
    • │ │ │ │ +
    • tdsdump_off() : tds.h
    • │ │ │ │ +
    • tdsdump_on() : tds.h
    • │ │ │ │ +
    • tdsdump_open() : tds.h
    • │ │ │ │ +
    • TDSDYNAMIC : tds.h
    • │ │ │ │ +
    • TDSENV : tds.h
    • │ │ │ │ +
    • tdserror() : tds.h
    • │ │ │ │ +
    • TDSFILESTREAM : bulk.c
    • │ │ │ │ +
    • TDSPBCB : bulk.c
    • │ │ │ │ +
    • TDSRESULTINFO : tds.h
    • │ │ │ │ +
    • TDSVARIANT : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_type.html │ │ │ │ @@ -67,27 +67,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented typedefs with links to the documentation:
      │ │ │ │
    • DBLIB_ERROR_MESSAGE : dblib.c
    • │ │ │ │ -
    • DBLIBCONTEXT : dblib.c
    • │ │ │ │ -
    • TDS_COMPILETIME_SETTINGS : tds.h
    • │ │ │ │ -
    • TDS_ENCODING : tds.h
    • │ │ │ │ -
    • TDS_STATE : tds.h
    • │ │ │ │ -
    • TDSBLOB : tds.h
    • │ │ │ │ -
    • TDSCURSOR : tds.h
    • │ │ │ │ -
    • TDSDATEREC : tds.h
    • │ │ │ │ -
    • TDSDYNAMIC : tds.h
    • │ │ │ │ -
    • TDSENV : tds.h
    • │ │ │ │ -
    • TDSFILESTREAM : bulk.c
    • │ │ │ │ -
    • TDSPBCB : bulk.c
    • │ │ │ │ -
    • TDSRESULTINFO : tds.h
    • │ │ │ │ -
    • TDSVARIANT : tds.h
    • │ │ │ │ +
    • DBLIBCONTEXT : dblib.c
    • │ │ │ │ +
    • TDS_COMPILETIME_SETTINGS : tds.h
    • │ │ │ │ +
    • TDS_ENCODING : tds.h
    • │ │ │ │ +
    • TDS_STATE : tds.h
    • │ │ │ │ +
    • TDSBLOB : tds.h
    • │ │ │ │ +
    • TDSCURSOR : tds.h
    • │ │ │ │ +
    • TDSDATEREC : tds.h
    • │ │ │ │ +
    • TDSDYNAMIC : tds.h
    • │ │ │ │ +
    • TDSENV : tds.h
    • │ │ │ │ +
    • TDSFILESTREAM : bulk.c
    • │ │ │ │ +
    • TDSPBCB : bulk.c
    • │ │ │ │ +
    • TDSRESULTINFO : tds.h
    • │ │ │ │ +
    • TDSVARIANT : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/globals_vars.html │ │ │ │ @@ -66,16 +66,16 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    Here is a list of all documented variables with links to the documentation:
      │ │ │ │ -
    • tds_numeric_bytes_per_prec : tds.h
    • │ │ │ │ -
    • tds_write_dump : tds.h
    • │ │ │ │ +
    • tds_numeric_bytes_per_prec : tds.h
    • │ │ │ │ +
    • tds_write_dump : tds.h
    • │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/freetds-doc/reference/typedefs_0.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,5 +1,5 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['dblib_5ferror_5fmessage_0', ['DBLIB_ERROR_MESSAGE', ['../a00533.html#ga8f2b5c6bcfed3eb54e97b42a6f8930f8', 1, 'dblib.c']]], │ │ │ │ │ - ['dblibcontext_1', ['DBLIBCONTEXT', ['../a00167.html#a8ff1bdcccb992dd688bc35d178c4bf3b', 1, 'dblib.c']]], │ │ │ │ │ + ['dblibcontext_1', ['DBLIBCONTEXT', ['../a00155.html#a8ff1bdcccb992dd688bc35d178c4bf3b', 1, 'dblib.c']]], │ │ │ │ │ ['dstr_2', ['DSTR', ['../a00545.html#gafddddf5bd7ad223cadee3d3bdc899954', 1, 'string.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/typedefs_1.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,14 +1,14 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ - ['tds_5fcompiletime_5fsettings_0', ['TDS_COMPILETIME_SETTINGS', ['../a00440.html#a1de034b895312fc0cfae0e28f8921a47', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fencoding_1', ['TDS_ENCODING', ['../a00440.html#ae21e9f12e8ee5219228ee6b6a41dec66', 1, 'tds.h']]], │ │ │ │ │ - ['tds_5fstate_2', ['TDS_STATE', ['../a00440.html#ac0d502ab90609c39fe7713fe0dfbefad', 1, 'tds.h']]], │ │ │ │ │ - ['tdsblob_3', ['TDSBLOB', ['../a00440.html#a47b154752431b2379988dbfdff394577', 1, 'tds.h']]], │ │ │ │ │ - ['tdscursor_4', ['TDSCURSOR', ['../a00440.html#afe061eb245f3006d93940a20415692a7', 1, 'tds.h']]], │ │ │ │ │ - ['tdsdaterec_5', ['TDSDATEREC', ['../a00440.html#a3b40b4faf314267146c2005e56eebe7b', 1, 'tds.h']]], │ │ │ │ │ - ['tdsdynamic_6', ['TDSDYNAMIC', ['../a00440.html#a856d78b7438fef3d6e6c0a8e4566d978', 1, 'tds.h']]], │ │ │ │ │ - ['tdsenv_7', ['TDSENV', ['../a00440.html#a42c559939ed16a39c0318a6f543c576e', 1, 'tds.h']]], │ │ │ │ │ - ['tdsfilestream_8', ['TDSFILESTREAM', ['../a00059.html#ac2b7f7b7bb486f90e1053bfb829ca2ba', 1, 'bulk.c']]], │ │ │ │ │ - ['tdspbcb_9', ['TDSPBCB', ['../a00059.html#af31a5af3c7480dc3a16576dfc84f3b06', 1, 'bulk.c']]], │ │ │ │ │ - ['tdsresultinfo_10', ['TDSRESULTINFO', ['../a00440.html#a1efbb2f3844cb2ea89af03721ac67277', 1, 'tds.h']]], │ │ │ │ │ - ['tdsvariant_11', ['TDSVARIANT', ['../a00440.html#a25488abe3449d4cdaaa97587d34f9174', 1, 'tds.h']]] │ │ │ │ │ + ['tds_5fcompiletime_5fsettings_0', ['TDS_COMPILETIME_SETTINGS', ['../a00443.html#a1de034b895312fc0cfae0e28f8921a47', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fencoding_1', ['TDS_ENCODING', ['../a00443.html#ae21e9f12e8ee5219228ee6b6a41dec66', 1, 'tds.h']]], │ │ │ │ │ + ['tds_5fstate_2', ['TDS_STATE', ['../a00443.html#ac0d502ab90609c39fe7713fe0dfbefad', 1, 'tds.h']]], │ │ │ │ │ + ['tdsblob_3', ['TDSBLOB', ['../a00443.html#a47b154752431b2379988dbfdff394577', 1, 'tds.h']]], │ │ │ │ │ + ['tdscursor_4', ['TDSCURSOR', ['../a00443.html#afe061eb245f3006d93940a20415692a7', 1, 'tds.h']]], │ │ │ │ │ + ['tdsdaterec_5', ['TDSDATEREC', ['../a00443.html#a3b40b4faf314267146c2005e56eebe7b', 1, 'tds.h']]], │ │ │ │ │ + ['tdsdynamic_6', ['TDSDYNAMIC', ['../a00443.html#a856d78b7438fef3d6e6c0a8e4566d978', 1, 'tds.h']]], │ │ │ │ │ + ['tdsenv_7', ['TDSENV', ['../a00443.html#a42c559939ed16a39c0318a6f543c576e', 1, 'tds.h']]], │ │ │ │ │ + ['tdsfilestream_8', ['TDSFILESTREAM', ['../a00266.html#ac2b7f7b7bb486f90e1053bfb829ca2ba', 1, 'bulk.c']]], │ │ │ │ │ + ['tdspbcb_9', ['TDSPBCB', ['../a00266.html#af31a5af3c7480dc3a16576dfc84f3b06', 1, 'bulk.c']]], │ │ │ │ │ + ['tdsresultinfo_10', ['TDSRESULTINFO', ['../a00443.html#a1efbb2f3844cb2ea89af03721ac67277', 1, 'tds.h']]], │ │ │ │ │ + ['tdsvariant_11', ['TDSVARIANT', ['../a00443.html#a25488abe3449d4cdaaa97587d34f9174', 1, 'tds.h']]] │ │ │ │ │ ]; │ │ │ ├── ./usr/share/doc/freetds-doc/reference/variables_10.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1,19 +1,19 @@ │ │ │ │ │ var searchData = [ │ │ │ │ │ ['tds_0', ['tds', ['../a01218.html#a182ed346382edef2962aca11c7cabc22', 1, 'tds_freeze::tds'], │ │ │ │ │ ['../a01006.html#ad357e33164f46fce2bc70267d71a1959', 1, '_hstmt::tds'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fctx_1', ['tds_ctx', ['../a00594.html#afb3fb2d591c0f75b9412f8ca77e2629d', 1, 'dblib_context']]], │ │ │ │ │ ['tds_5fctx_5fref_5fcount_2', ['tds_ctx_ref_count', ['../a00594.html#ad01d901acbc92e8c369e6a6c784d7446', 1, 'dblib_context']]], │ │ │ │ │ - ['tds_5fnumeric_5fbytes_5fper_5fprec_3', ['tds_numeric_bytes_per_prec', ['../a00440.html#a4da9eedb6322f7dfca89d5d89be7b374', 1, 'numeric.c']]], │ │ │ │ │ + ['tds_5fnumeric_5fbytes_5fper_5fprec_3', ['tds_numeric_bytes_per_prec', ['../a00443.html#a4da9eedb6322f7dfca89d5d89be7b374', 1, 'numeric.c']]], │ │ │ │ │ ['tds_5fstr_5fempty_4', ['tds_str_empty', ['../a00545.html#ga676fd3c5c489584d09c89d66c7a0af2d', 1, 'tds_str_empty: tdsstring.c'], │ │ │ │ │ ['../a00545.html#ga676fd3c5c489584d09c89d66c7a0af2d', 1, 'tds_str_empty: tdsstring.c'] │ │ │ │ │ ]], │ │ │ │ │ ['tds_5fversion_5', ['tds_version', ['../a01118.html#a8f9f756b25fd18916a6080f9c22f835d', 1, 'tds_login']]], │ │ │ │ │ - ['tds_5fwrite_5fdump_6', ['tds_write_dump', ['../a00440.html#a4766b1a553077cb3257d36b9ac28f5b5', 1, 'log.c']]], │ │ │ │ │ + ['tds_5fwrite_5fdump_6', ['tds_write_dump', ['../a00443.html#a4766b1a553077cb3257d36b9ac28f5b5', 1, 'log.c']]], │ │ │ │ │ ['term_5flen_7', ['term_len', ['../a00694.html#aae893302d33ee1e9d83c3d85d7390dca', 1, 'tds_file_stream']]], │ │ │ │ │ ['terminator_8', ['terminator', ['../a00694.html#a463c28a7d862c0a6d7bf3170dd614dc0', 1, 'tds_file_stream']]], │ │ │ │ │ ['time_9', ['time', ['../a01298.html#a6bb5dcd5b47813b71934546e0c60e035', 1, 'DBDATETIMEALL::time'], │ │ │ │ │ ['../a01094.html#afd6a58ec251f2c08a040917ba5a8cd3f', 1, 'TDS_DATETIMEALL::time'] │ │ │ │ │ ]], │ │ │ │ │ ['timezone_10', ['timezone', ['../a01098.html#a624e21e65d0ae89797b3a7eadc48829f', 1, 'tdsdaterec']]], │ │ │ │ │ ['tm_5fhour_11', ['tm_hour', ['../a00718.html#a6ece03e77f69035da83d5739e16ef905', 1, 'tds_time']]], │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00020_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00290_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00023_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00284_source.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -83,15 +83,15 @@ │ │ │ │
    │ │ │ │
    1/*
    │ │ │ │
    2 * This file produced from ./types.pl
    │ │ │ │
    3 */
    │ │ │ │
    4
    │ │ │ │
    8int
    │ │ │ │
    │ │ │ │ -
    9tds_get_size_by_type(TDS_SERVER_TYPE servertype)
    │ │ │ │ +
    9tds_get_size_by_type(TDS_SERVER_TYPE servertype)
    │ │ │ │
    10{
    │ │ │ │
    11 switch (servertype) {
    │ │ │ │
    12 case SYBVOID:
    │ │ │ │
    13 return 0;
    │ │ │ │
    14 case SYBBIT:
    │ │ │ │
    15 case SYBBITN:
    │ │ │ │
    16 case SYBINT1:
    │ │ │ │ @@ -129,15 +129,15 @@ │ │ │ │
    48 return 0;
    │ │ │ │
    49 }
    │ │ │ │
    50}
    │ │ │ │
    │ │ │ │
    51
    │ │ │ │
    56int
    │ │ │ │
    │ │ │ │ -
    57tds_get_varint_size(TDSCONNECTION * conn, int datatype)
    │ │ │ │ +
    57tds_get_varint_size(TDSCONNECTION * conn, int datatype)
    │ │ │ │
    58{
    │ │ │ │
    59 switch (datatype) {
    │ │ │ │
    60 case SYBBIT:
    │ │ │ │
    61 case SYBDATETIME:
    │ │ │ │
    62 case SYBDATETIME4:
    │ │ │ │
    63 case SYBFLT8:
    │ │ │ │
    64 case SYBINT1:
    │ │ │ │ @@ -193,15 +193,15 @@ │ │ │ │
    114 }
    │ │ │ │
    115 return 1;
    │ │ │ │
    116}
    │ │ │ │
    │ │ │ │
    117
    │ │ │ │
    124TDS_SERVER_TYPE
    │ │ │ │
    │ │ │ │ -
    125tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
    │ │ │ │ +
    125tds_get_conversion_type(TDS_SERVER_TYPE srctype, int colsize)
    │ │ │ │
    126{
    │ │ │ │
    127 switch (srctype) {
    │ │ │ │
    128 case SYBBITN:
    │ │ │ │
    129 return SYBBIT;
    │ │ │ │
    130 case SYBDATEN:
    │ │ │ │
    131 return SYBDATE;
    │ │ │ │
    132 case SYBDATETIMN:
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00029_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00293_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00035.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00287.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -79,15 +79,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    Grab data from TDS packets. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/stream.h>
    │ │ │ │ #include <freetds/utils/string.h>
    │ │ │ │ #include <freetds/checks.h>
    │ │ │ │
    │ │ │ │ Include dependency graph for read.c:
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00050.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00323.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │

    Handle different data handling from network. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <stdarg.h>
    │ │ │ │ #include <stdio.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ #include <freetds/utils.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/checks.h>
    │ │ │ │ #include <freetds/stream.h>
    │ │ │ │ #include <freetds/data.h>
    │ │ │ │ #include <freetds/pushvis.h>
    │ │ │ │ #include <freetds/popvis.h>
    │ │ │ │ @@ -144,21 +144,21 @@ │ │ │ │ │ │ │ │ TDSRET tds_clrudt_put_info (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │   │ │ │ │ │ │ │ │ TDS_INT tds_clrudt_row_len (TDSCOLUMN *col) │ │ │ │   │ │ │ │ │ │ │ │ - TDS_COMPILE_CHECK (tds_variant_offset, TDS_OFFSET(TDSVARIANT, data)==TDS_OFFSET(TDSBLOB, textvalue)) │ │ │ │ + TDS_COMPILE_CHECK (tds_variant_offset, TDS_OFFSET(TDSVARIANT, data)==TDS_OFFSET(TDSBLOB, textvalue)) │ │ │ │   │ │ │ │ │ │ │ │ - TDS_COMPILE_CHECK (tds_variant_size, sizeof(((TDSVARIANT *) 0) ->data)==sizeof(((TDSBLOB *) 0) ->textvalue)) │ │ │ │ + TDS_COMPILE_CHECK (tds_variant_size, sizeof(((TDSVARIANT *) 0) ->data)==sizeof(((TDSBLOB *) 0) ->textvalue)) │ │ │ │   │ │ │ │ │ │ │ │ - TDS_COMPILE_CHECK (variant_size, sizeof(TDSBLOB) >=sizeof(TDSVARIANT)) │ │ │ │ + TDS_COMPILE_CHECK (variant_size, sizeof(TDSBLOB) >=sizeof(TDSVARIANT)) │ │ │ │   │ │ │ │ │ │ │ │  TDS_DECLARE_FUNCS (clrudt) │ │ │ │   │ │ │ │ │ │ │ │  TDS_DECLARE_FUNCS (generic) │ │ │ │   │ │ │ │ @@ -173,24 +173,24 @@ │ │ │ │   │ │ │ │ │ │ │ │  TDS_DECLARE_FUNCS (sybbigtime) │ │ │ │   │ │ │ │ │ │ │ │  TDS_DECLARE_FUNCS (variant) │ │ │ │   │ │ │ │ -TDSRET tds_generic_get (TDSSOCKET *tds, TDSCOLUMN *curcol) │ │ │ │ +TDSRET tds_generic_get (TDSSOCKET *tds, TDSCOLUMN *curcol) │ │ │ │  Read a data from wire.
    │ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_generic_get_info (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │   │ │ │ │ -TDSRET tds_generic_put (TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7) │ │ │ │ +TDSRET tds_generic_put (TDSSOCKET *tds, TDSCOLUMN *curcol, int bcp7) │ │ │ │  Write data to wire.
    │ │ │ │   │ │ │ │ -TDSRET tds_generic_put_info (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │ +TDSRET tds_generic_put_info (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │  Put data information to wire.
    │ │ │ │   │ │ │ │ │ │ │ │ TDS_INT tds_generic_row_len (TDSCOLUMN *col) │ │ │ │   │ │ │ │ │ │ │ │ TDS_SERVER_TYPE tds_get_cardinal_type (TDS_SERVER_TYPE datatype, int usertype) │ │ │ │ @@ -242,21 +242,21 @@ │ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_numeric_put_info (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │   │ │ │ │ │ │ │ │ TDS_INT tds_numeric_row_len (TDSCOLUMN *col) │ │ │ │   │ │ │ │ -void tds_set_column_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type) │ │ │ │ +void tds_set_column_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type) │ │ │ │  Set type of column initializing all dependency.
    │ │ │ │   │ │ │ │ -void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type) │ │ │ │ +void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type) │ │ │ │  Set type of column initializing all dependency.
    │ │ │ │   │ │ │ │ -static void tds_swap_numeric (TDS_NUMERIC *num) │ │ │ │ +static void tds_swap_numeric (TDS_NUMERIC *num) │ │ │ │  Converts numeric from Microsoft representation to internal one (Sybase).
    │ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_sybbigtime_get (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │   │ │ │ │ │ │ │ │ TDSRET tds_sybbigtime_get_info (TDSSOCKET *tds, TDSCOLUMN *col) │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00050_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00323_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_set_column_type",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Set type of column initializing all dependency."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_set_param_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a86768d86059c5addf9a3f89edb1ef44e",tooltip="Set type of column initializing all dependency."]; │ │ │ │ + Node2 [id="Node000002",label="tds_set_param_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a86768d86059c5addf9a3f89edb1ef44e",tooltip="Set type of column initializing all dependency."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00050_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ │┄ Files 94% similar despite different names │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ -digraph "tds_set_param_type" │ │ │ │ +digraph "tds_set_column_type" │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ - rankdir="LR"; │ │ │ │ - Node1 [id="Node000001",label="tds_set_param_type",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Set type of column initializing all dependency."]; │ │ │ │ - Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_set_column_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a31604382d8b77257aad203f409155a29",tooltip="Set type of column initializing all dependency."]; │ │ │ │ + rankdir="RL"; │ │ │ │ + Node1 [id="Node000001",label="tds_set_column_type",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Set type of column initializing all dependency."]; │ │ │ │ + Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="tds_set_param_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a86768d86059c5addf9a3f89edb1ef44e",tooltip="Set type of column initializing all dependency."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00050_aa818c1cbf4d16e609b7e4895cc7ed74f_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00323_aa818c1cbf4d16e609b7e4895cc7ed74f_icgraph.dot │ │ │ │┄ Files 88% similar despite different names │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_swap_numeric",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Converts numeric from Microsoft representation to internal one (Sybase)."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ + Node2 [id="Node000002",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00050_aabd0e5f15615b5c141c525b76e746520_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00323_aabd0e5f15615b5c141c525b76e746520_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00050_abac4d689e0e31e80587f89247c6395a4_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00323_abac4d689e0e31e80587f89247c6395a4_cgraph.dot │ │ │ │┄ Files 96% similar despite different names │ │ │ │ @@ -3,29 +3,29 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_generic_get",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Read a data from wire."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ + Node2 [id="Node000002",label="tds_datain_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abc3a77c8aa28842e7f28583cbabc1415",tooltip="Initialize a data input stream."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ + Node3 [id="Node000003",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_get_n",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_read_packet",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga410619783bdf2bb60b0f27a5578e0e07",tooltip="Read in one 'packet' from the server."]; │ │ │ │ Node1 -> Node7 [id="edge5_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="tds_get_byte",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga0cb72d3f6943795c39db1fa692be0a58",tooltip="Return a single byte from the input buffer."]; │ │ │ │ Node7 -> Node5 [id="edge6_Node000007_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node8 [id="edge7_Node000001_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node8 [id="Node000008",label="tds_get_char_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ Node8 -> Node9 [id="edge8_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 [id="Node000009",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node10 [id="Node000010",label="tds_convert_stream",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node9 -> Node2 [id="edge10_Node000009_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 -> Node14 [id="edge11_Node000009_Node000014",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node14 [id="Node000014",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00077.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ + Node14 [id="Node000014",label="tds_staticout_stream_init",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00275.html#a9fe0d3799d2e3bde49b614c9d0c3785d",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node8 -> Node4 [id="edge12_Node000008_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node4 [id="edge13_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00056_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00299_source.html │ │ │ │┄ Files 80% similar despite different names │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: src/tds/tds_willconvert.h Source File │ │ │ │ +FreeTDS API: src/tds/num_limits.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,292 +74,394 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -
    tds_willconvert.h
    │ │ │ │ +
    num_limits.h
    │ │ │ │
    │ │ │ │
    │ │ │ │ -
    1/*** Please do not edit this file! ***/
    │ │ │ │ -
    2/*** It was generated with 'perl tds_willconvert.pl > tds_willconvert.h' ***/
    │ │ │ │ -
    3/*** It is much easier to edit the __DATA__ table than this file. ***/
    │ │ │ │ -
    4/*** ***/
    │ │ │ │ -
    5/*** Thank you. ***/
    │ │ │ │ -
    6
    │ │ │ │ -
    7static const uint8_t type2category[256] = {
    │ │ │ │ -
    8 0, /* 0 */
    │ │ │ │ -
    9 0, /* 1 */
    │ │ │ │ -
    10 0, /* 2 */
    │ │ │ │ -
    11 0, /* 3 */
    │ │ │ │ -
    12 0, /* 4 */
    │ │ │ │ -
    13 0, /* 5 */
    │ │ │ │ -
    14 0, /* 6 */
    │ │ │ │ -
    15 0, /* 7 */
    │ │ │ │ -
    16 0, /* 8 */
    │ │ │ │ -
    17 0, /* 9 */
    │ │ │ │ -
    18 0, /* 10 */
    │ │ │ │ -
    19 0, /* 11 */
    │ │ │ │ -
    20 0, /* 12 */
    │ │ │ │ -
    21 0, /* 13 */
    │ │ │ │ -
    22 0, /* 14 */
    │ │ │ │ -
    23 0, /* 15 */
    │ │ │ │ -
    24 0, /* 16 */
    │ │ │ │ -
    25 0, /* 17 */
    │ │ │ │ -
    26 0, /* 18 */
    │ │ │ │ -
    27 0, /* 19 */
    │ │ │ │ -
    28 0, /* 20 */
    │ │ │ │ -
    29 0, /* 21 */
    │ │ │ │ -
    30 0, /* 22 */
    │ │ │ │ -
    31 0, /* 23 */
    │ │ │ │ -
    32 0, /* 24 */
    │ │ │ │ -
    33 0, /* 25 */
    │ │ │ │ -
    34 0, /* 26 */
    │ │ │ │ -
    35 0, /* 27 */
    │ │ │ │ -
    36 0, /* 28 */
    │ │ │ │ -
    37 0, /* 29 */
    │ │ │ │ -
    38 0, /* 30 */
    │ │ │ │ -
    39 0, /* SYBVOID */
    │ │ │ │ -
    40 0, /* 32 */
    │ │ │ │ -
    41 0, /* 33 */
    │ │ │ │ -
    42 2, /* SYBIMAGE */
    │ │ │ │ -
    43 6, /* SYBTEXT */
    │ │ │ │ -
    44 7, /* SYBBLOB */
    │ │ │ │ -
    45 2, /* SYBVARBINARY */
    │ │ │ │ -
    46 0, /* SYBINTN */
    │ │ │ │ -
    47 6, /* SYBVARCHAR */
    │ │ │ │ -
    48 4, /* SYBMSDATE */
    │ │ │ │ -
    49 4, /* SYBMSTIME */
    │ │ │ │ -
    50 4, /* SYBMSDATETIME2 */
    │ │ │ │ -
    51 4, /* SYBMSDATETIMEOFFSET */
    │ │ │ │ -
    52 0, /* 44 */
    │ │ │ │ -
    53 2, /* SYBBINARY */
    │ │ │ │ -
    54 0, /* SYBINTERVAL */
    │ │ │ │ -
    55 6, /* SYBCHAR */
    │ │ │ │ -
    56 3, /* SYBINT1 */
    │ │ │ │ -
    57 4, /* SYBDATE */
    │ │ │ │ -
    58 1, /* SYBBIT */
    │ │ │ │ -
    59 4, /* SYBTIME */
    │ │ │ │ -
    60 3, /* SYBINT2 */
    │ │ │ │ -
    61 0, /* 53 */
    │ │ │ │ -
    62 0, /* 54 */
    │ │ │ │ -
    63 0, /* 55 */
    │ │ │ │ -
    64 3, /* SYBINT4 */
    │ │ │ │ -
    65 0, /* 57 */
    │ │ │ │ -
    66 4, /* SYBDATETIME4 */
    │ │ │ │ -
    67 3, /* SYBREAL */
    │ │ │ │ -
    68 3, /* SYBMONEY */
    │ │ │ │ -
    69 4, /* SYBDATETIME */
    │ │ │ │ -
    70 3, /* SYBFLT8 */
    │ │ │ │ -
    71 0, /* 63 */
    │ │ │ │ -
    72 3, /* SYBUINT1 */
    │ │ │ │ -
    73 3, /* SYBUINT2 */
    │ │ │ │ -
    74 3, /* SYBUINT4 */
    │ │ │ │ -
    75 3, /* SYBUINT8 */
    │ │ │ │ -
    76 0, /* SYBUINTN */
    │ │ │ │ -
    77 0, /* 69 */
    │ │ │ │ -
    78 0, /* 70 */
    │ │ │ │ -
    79 0, /* 71 */
    │ │ │ │ -
    80 0, /* 72 */
    │ │ │ │ -
    81 0, /* 73 */
    │ │ │ │ -
    82 0, /* 74 */
    │ │ │ │ -
    83 0, /* 75 */
    │ │ │ │ -
    84 0, /* 76 */
    │ │ │ │ -
    85 0, /* 77 */
    │ │ │ │ -
    86 0, /* 78 */
    │ │ │ │ -
    87 0, /* 79 */
    │ │ │ │ -
    88 0, /* 80 */
    │ │ │ │ -
    89 0, /* 81 */
    │ │ │ │ -
    90 0, /* 82 */
    │ │ │ │ -
    91 0, /* 83 */
    │ │ │ │ -
    92 0, /* 84 */
    │ │ │ │ -
    93 0, /* 85 */
    │ │ │ │ -
    94 0, /* 86 */
    │ │ │ │ -
    95 0, /* 87 */
    │ │ │ │ -
    96 0, /* 88 */
    │ │ │ │ -
    97 0, /* 89 */
    │ │ │ │ -
    98 0, /* 90 */
    │ │ │ │ -
    99 0, /* 91 */
    │ │ │ │ -
    100 0, /* 92 */
    │ │ │ │ -
    101 0, /* 93 */
    │ │ │ │ -
    102 0, /* 94 */
    │ │ │ │ -
    103 0, /* 95 */
    │ │ │ │ -
    104 0, /* 96 */
    │ │ │ │ -
    105 0, /* 97 */
    │ │ │ │ -
    106 0, /* SYBVARIANT */
    │ │ │ │ -
    107 0, /* SYBNTEXT */
    │ │ │ │ -
    108 0, /* 100 */
    │ │ │ │ -
    109 0, /* 101 */
    │ │ │ │ -
    110 0, /* 102 */
    │ │ │ │ -
    111 5, /* SYBSENSITIVITY */
    │ │ │ │ -
    112 1, /* SYBBOUNDARY */
    │ │ │ │ -
    113 0, /* 105 */
    │ │ │ │ -
    114 1, /* SYBDECIMAL */
    │ │ │ │ -
    115 0, /* 107 */
    │ │ │ │ -
    116 1, /* SYBNUMERIC */
    │ │ │ │ -
    117 0, /* SYBFLTN */
    │ │ │ │ -
    118 0, /* SYBMONEYN */
    │ │ │ │ -
    119 0, /* SYBDATETIMN */
    │ │ │ │ -
    120 0, /* 112 */
    │ │ │ │ -
    121 0, /* 113 */
    │ │ │ │ -
    122 0, /* 114 */
    │ │ │ │ -
    123 0, /* 115 */
    │ │ │ │ -
    124 0, /* 116 */
    │ │ │ │ -
    125 0, /* 117 */
    │ │ │ │ -
    126 0, /* 118 */
    │ │ │ │ -
    127 0, /* 119 */
    │ │ │ │ -
    128 0, /* 120 */
    │ │ │ │ -
    129 0, /* 121 */
    │ │ │ │ -
    130 3, /* SYBMONEY4 */
    │ │ │ │ -
    131 0, /* SYBDATEN */
    │ │ │ │ -
    132 0, /* 124 */
    │ │ │ │ -
    133 0, /* 125 */
    │ │ │ │ -
    134 0, /* 126 */
    │ │ │ │ -
    135 3, /* SYBINT8 */
    │ │ │ │ -
    136 0, /* 128 */
    │ │ │ │ -
    137 0, /* 129 */
    │ │ │ │ -
    138 0, /* 130 */
    │ │ │ │ -
    139 0, /* 131 */
    │ │ │ │ -
    140 0, /* 132 */
    │ │ │ │ -
    141 0, /* 133 */
    │ │ │ │ -
    142 0, /* 134 */
    │ │ │ │ -
    143 0, /* 135 */
    │ │ │ │ -
    144 0, /* 136 */
    │ │ │ │ -
    145 0, /* 137 */
    │ │ │ │ -
    146 0, /* 138 */
    │ │ │ │ -
    147 0, /* 139 */
    │ │ │ │ -
    148 0, /* 140 */
    │ │ │ │ -
    149 0, /* 141 */
    │ │ │ │ -
    150 0, /* 142 */
    │ │ │ │ -
    151 0, /* 143 */
    │ │ │ │ -
    152 0, /* 144 */
    │ │ │ │ -
    153 0, /* 145 */
    │ │ │ │ -
    154 0, /* 146 */
    │ │ │ │ -
    155 0, /* SYBTIMEN */
    │ │ │ │ -
    156 0, /* 148 */
    │ │ │ │ -
    157 0, /* 149 */
    │ │ │ │ -
    158 0, /* 150 */
    │ │ │ │ -
    159 0, /* 151 */
    │ │ │ │ -
    160 0, /* 152 */
    │ │ │ │ -
    161 0, /* 153 */
    │ │ │ │ -
    162 0, /* 154 */
    │ │ │ │ -
    163 0, /* 155 */
    │ │ │ │ -
    164 0, /* 156 */
    │ │ │ │ -
    165 0, /* 157 */
    │ │ │ │ -
    166 0, /* 158 */
    │ │ │ │ -
    167 0, /* 159 */
    │ │ │ │ -
    168 0, /* 160 */
    │ │ │ │ -
    169 0, /* 161 */
    │ │ │ │ -
    170 0, /* 162 */
    │ │ │ │ -
    171 0, /* SYBXML */
    │ │ │ │ -
    172 0, /* 164 */
    │ │ │ │ -
    173 2, /* XSYBVARBINARY */
    │ │ │ │ -
    174 0, /* 166 */
    │ │ │ │ -
    175 6, /* XSYBVARCHAR */
    │ │ │ │ -
    176 0, /* 168 */
    │ │ │ │ -
    177 0, /* 169 */
    │ │ │ │ -
    178 0, /* 170 */
    │ │ │ │ -
    179 0, /* 171 */
    │ │ │ │ -
    180 0, /* 172 */
    │ │ │ │ -
    181 2, /* XSYBBINARY */
    │ │ │ │ -
    182 0, /* SYBUNITEXT */
    │ │ │ │ -
    183 6, /* SYBLONGCHAR */
    │ │ │ │ -
    184 0, /* SYBSINT1 */
    │ │ │ │ -
    185 0, /* 177 */
    │ │ │ │ -
    186 0, /* 178 */
    │ │ │ │ -
    187 0, /* 179 */
    │ │ │ │ -
    188 0, /* 180 */
    │ │ │ │ -
    189 0, /* 181 */
    │ │ │ │ -
    190 0, /* 182 */
    │ │ │ │ -
    191 0, /* 183 */
    │ │ │ │ -
    192 0, /* 184 */
    │ │ │ │ -
    193 0, /* 185 */
    │ │ │ │ -
    194 0, /* 186 */
    │ │ │ │ -
    195 4, /* SYB5BIGDATETIME */
    │ │ │ │ -
    196 4, /* SYB5BIGTIME */
    │ │ │ │ -
    197 0, /* 189 */
    │ │ │ │ -
    198 0, /* 190 */
    │ │ │ │ -
    199 0, /* SYB5INT8 */
    │ │ │ │ -
    200 0, /* 192 */
    │ │ │ │ -
    201 0, /* 193 */
    │ │ │ │ -
    202 0, /* 194 */
    │ │ │ │ -
    203 0, /* 195 */
    │ │ │ │ -
    204 0, /* 196 */
    │ │ │ │ -
    205 0, /* 197 */
    │ │ │ │ -
    206 0, /* 198 */
    │ │ │ │ -
    207 0, /* 199 */
    │ │ │ │ -
    208 0, /* 200 */
    │ │ │ │ -
    209 0, /* 201 */
    │ │ │ │ -
    210 0, /* 202 */
    │ │ │ │ -
    211 0, /* 203 */
    │ │ │ │ -
    212 0, /* 204 */
    │ │ │ │ -
    213 0, /* 205 */
    │ │ │ │ -
    214 0, /* 206 */
    │ │ │ │ -
    215 0, /* 207 */
    │ │ │ │ -
    216 0, /* 208 */
    │ │ │ │ -
    217 0, /* 209 */
    │ │ │ │ -
    218 0, /* 210 */
    │ │ │ │ -
    219 0, /* 211 */
    │ │ │ │ -
    220 0, /* 212 */
    │ │ │ │ -
    221 0, /* 213 */
    │ │ │ │ -
    222 0, /* 214 */
    │ │ │ │ -
    223 0, /* 215 */
    │ │ │ │ -
    224 0, /* 216 */
    │ │ │ │ -
    225 0, /* 217 */
    │ │ │ │ -
    226 0, /* 218 */
    │ │ │ │ -
    227 0, /* 219 */
    │ │ │ │ -
    228 0, /* 220 */
    │ │ │ │ -
    229 0, /* 221 */
    │ │ │ │ -
    230 0, /* 222 */
    │ │ │ │ -
    231 0, /* 223 */
    │ │ │ │ -
    232 0, /* 224 */
    │ │ │ │ -
    233 2, /* SYBLONGBINARY */
    │ │ │ │ -
    234 0, /* 226 */
    │ │ │ │ -
    235 0, /* 227 */
    │ │ │ │ -
    236 0, /* 228 */
    │ │ │ │ -
    237 0, /* 229 */
    │ │ │ │ -
    238 0, /* 230 */
    │ │ │ │ -
    239 0, /* XSYBNVARCHAR */
    │ │ │ │ -
    240 0, /* 232 */
    │ │ │ │ -
    241 0, /* 233 */
    │ │ │ │ -
    242 0, /* 234 */
    │ │ │ │ -
    243 0, /* 235 */
    │ │ │ │ -
    244 0, /* 236 */
    │ │ │ │ -
    245 0, /* 237 */
    │ │ │ │ -
    246 0, /* 238 */
    │ │ │ │ -
    247 0, /* XSYBNCHAR */
    │ │ │ │ -
    248 0, /* SYBMSUDT */
    │ │ │ │ -
    249 0, /* SYBMSXML */
    │ │ │ │ -
    250 0, /* 242 */
    │ │ │ │ -
    251 0, /* 243 */
    │ │ │ │ -
    252 0, /* 244 */
    │ │ │ │ -
    253 0, /* 245 */
    │ │ │ │ -
    254 0, /* 246 */
    │ │ │ │ -
    255 0, /* 247 */
    │ │ │ │ -
    256 0, /* 248 */
    │ │ │ │ -
    257 0, /* 249 */
    │ │ │ │ -
    258 0, /* 250 */
    │ │ │ │ -
    259 0, /* 251 */
    │ │ │ │ -
    260 0, /* 252 */
    │ │ │ │ -
    261 0, /* 253 */
    │ │ │ │ -
    262 0, /* 254 */
    │ │ │ │ -
    263 0, /* 255 */
    │ │ │ │ -
    264};
    │ │ │ │ -
    265
    │ │ │ │ -
    266static const uint32_t category_conversion[] = {
    │ │ │ │ -
    267 0,
    │ │ │ │ -
    268 78, /* SYBBIT */
    │ │ │ │ -
    269 76, /* SYBIMAGE */
    │ │ │ │ -
    270 78, /* SYBINT1 */
    │ │ │ │ -
    271 84, /* SYBMSDATE */
    │ │ │ │ -
    272 0, /* SYBSENSITIVITY */
    │ │ │ │ -
    273 222, /* SYBTEXT */
    │ │ │ │ -
    274 196, /* SYBUNIQUE */
    │ │ │ │ -
    275};
    │ │ │ │ +
    1#define LIMIT_INDEXES_ADJUST 4
    │ │ │ │ +
    2
    │ │ │ │ +
    3static const signed char limit_indexes[79]= {
    │ │ │ │ +
    4 0, /* 0 */
    │ │ │ │ +
    5 -3, /* 1 */
    │ │ │ │ +
    6 -6, /* 2 */
    │ │ │ │ +
    7 -9, /* 3 */
    │ │ │ │ +
    8 -12, /* 4 */
    │ │ │ │ +
    9 -15, /* 5 */
    │ │ │ │ +
    10 -18, /* 6 */
    │ │ │ │ +
    11 -21, /* 7 */
    │ │ │ │ +
    12 -24, /* 8 */
    │ │ │ │ +
    13 -27, /* 9 */
    │ │ │ │ +
    14 -30, /* 10 */
    │ │ │ │ +
    15 -32, /* 11 */
    │ │ │ │ +
    16 -34, /* 12 */
    │ │ │ │ +
    17 -36, /* 13 */
    │ │ │ │ +
    18 -38, /* 14 */
    │ │ │ │ +
    19 -40, /* 15 */
    │ │ │ │ +
    20 -42, /* 16 */
    │ │ │ │ +
    21 -44, /* 17 */
    │ │ │ │ +
    22 -46, /* 18 */
    │ │ │ │ +
    23 -48, /* 19 */
    │ │ │ │ +
    24 -50, /* 20 */
    │ │ │ │ +
    25 -51, /* 21 */
    │ │ │ │ +
    26 -52, /* 22 */
    │ │ │ │ +
    27 -53, /* 23 */
    │ │ │ │ +
    28 -54, /* 24 */
    │ │ │ │ +
    29 -55, /* 25 */
    │ │ │ │ +
    30 -56, /* 26 */
    │ │ │ │ +
    31 -57, /* 27 */
    │ │ │ │ +
    32 -58, /* 28 */
    │ │ │ │ +
    33 -59, /* 29 */
    │ │ │ │ +
    34 -59, /* 30 */
    │ │ │ │ +
    35 -59, /* 31 */
    │ │ │ │ +
    36 -59, /* 32 */
    │ │ │ │ +
    37 -60, /* 33 */
    │ │ │ │ +
    38 -61, /* 34 */
    │ │ │ │ +
    39 -62, /* 35 */
    │ │ │ │ +
    40 -63, /* 36 */
    │ │ │ │ +
    41 -64, /* 37 */
    │ │ │ │ +
    42 -65, /* 38 */
    │ │ │ │ +
    43 -66, /* 39 */
    │ │ │ │ +
    44 -66, /* 40 */
    │ │ │ │ +
    45 -66, /* 41 */
    │ │ │ │ +
    46 -66, /* 42 */
    │ │ │ │ +
    47 -66, /* 43 */
    │ │ │ │ +
    48 -66, /* 44 */
    │ │ │ │ +
    49 -66, /* 45 */
    │ │ │ │ +
    50 -66, /* 46 */
    │ │ │ │ +
    51 -66, /* 47 */
    │ │ │ │ +
    52 -66, /* 48 */
    │ │ │ │ +
    53 -66, /* 49 */
    │ │ │ │ +
    54 -65, /* 50 */
    │ │ │ │ +
    55 -64, /* 51 */
    │ │ │ │ +
    56 -63, /* 52 */
    │ │ │ │ +
    57 -62, /* 53 */
    │ │ │ │ +
    58 -61, /* 54 */
    │ │ │ │ +
    59 -60, /* 55 */
    │ │ │ │ +
    60 -59, /* 56 */
    │ │ │ │ +
    61 -58, /* 57 */
    │ │ │ │ +
    62 -57, /* 58 */
    │ │ │ │ +
    63 -55, /* 59 */
    │ │ │ │ +
    64 -53, /* 60 */
    │ │ │ │ +
    65 -51, /* 61 */
    │ │ │ │ +
    66 -49, /* 62 */
    │ │ │ │ +
    67 -47, /* 63 */
    │ │ │ │ +
    68 -45, /* 64 */
    │ │ │ │ +
    69 -44, /* 65 */
    │ │ │ │ +
    70 -43, /* 66 */
    │ │ │ │ +
    71 -42, /* 67 */
    │ │ │ │ +
    72 -41, /* 68 */
    │ │ │ │ +
    73 -39, /* 69 */
    │ │ │ │ +
    74 -37, /* 70 */
    │ │ │ │ +
    75 -35, /* 71 */
    │ │ │ │ +
    76 -33, /* 72 */
    │ │ │ │ +
    77 -31, /* 73 */
    │ │ │ │ +
    78 -29, /* 74 */
    │ │ │ │ +
    79 -27, /* 75 */
    │ │ │ │ +
    80 -25, /* 76 */
    │ │ │ │ +
    81 -23, /* 77 */
    │ │ │ │ +
    82 -21, /* 78 */
    │ │ │ │ +
    83};
    │ │ │ │ +
    84
    │ │ │ │ +
    85static const TDS_WORD limits[]= {
    │ │ │ │ +
    86 0x00000001u, /* 0 */
    │ │ │ │ +
    87 0x0000000au, /* 1 */
    │ │ │ │ +
    88 0x00000064u, /* 2 */
    │ │ │ │ +
    89 0x000003e8u, /* 3 */
    │ │ │ │ +
    90 0x00002710u, /* 4 */
    │ │ │ │ +
    91 0x000186a0u, /* 5 */
    │ │ │ │ +
    92 0x000f4240u, /* 6 */
    │ │ │ │ +
    93 0x00989680u, /* 7 */
    │ │ │ │ +
    94 0x05f5e100u, /* 8 */
    │ │ │ │ +
    95 0x3b9aca00u, /* 9 */
    │ │ │ │ +
    96 0x00000002u, /* 10 */
    │ │ │ │ +
    97 0x540be400u, /* 11 */
    │ │ │ │ +
    98 0x00000017u, /* 12 */
    │ │ │ │ +
    99 0x4876e800u, /* 13 */
    │ │ │ │ +
    100 0x000000e8u, /* 14 */
    │ │ │ │ +
    101 0xd4a51000u, /* 15 */
    │ │ │ │ +
    102 0x00000918u, /* 16 */
    │ │ │ │ +
    103 0x4e72a000u, /* 17 */
    │ │ │ │ +
    104 0x00005af3u, /* 18 */
    │ │ │ │ +
    105 0x107a4000u, /* 19 */
    │ │ │ │ +
    106 0x00038d7eu, /* 20 */
    │ │ │ │ +
    107 0xa4c68000u, /* 21 */
    │ │ │ │ +
    108 0x002386f2u, /* 22 */
    │ │ │ │ +
    109 0x6fc10000u, /* 23 */
    │ │ │ │ +
    110 0x01634578u, /* 24 */
    │ │ │ │ +
    111 0x5d8a0000u, /* 25 */
    │ │ │ │ +
    112 0x0de0b6b3u, /* 26 */
    │ │ │ │ +
    113 0xa7640000u, /* 27 */
    │ │ │ │ +
    114 0x8ac72304u, /* 28 */
    │ │ │ │ +
    115 0x89e80000u, /* 29 */
    │ │ │ │ +
    116 0x00000005u, /* 30 */
    │ │ │ │ +
    117 0x6bc75e2du, /* 31 */
    │ │ │ │ +
    118 0x63100000u, /* 32 */
    │ │ │ │ +
    119 0x00000036u, /* 33 */
    │ │ │ │ +
    120 0x35c9adc5u, /* 34 */
    │ │ │ │ +
    121 0xdea00000u, /* 35 */
    │ │ │ │ +
    122 0x0000021eu, /* 36 */
    │ │ │ │ +
    123 0x19e0c9bau, /* 37 */
    │ │ │ │ +
    124 0xb2400000u, /* 38 */
    │ │ │ │ +
    125 0x0000152du, /* 39 */
    │ │ │ │ +
    126 0x02c7e14au, /* 40 */
    │ │ │ │ +
    127 0xf6800000u, /* 41 */
    │ │ │ │ +
    128 0x0000d3c2u, /* 42 */
    │ │ │ │ +
    129 0x1bceccedu, /* 43 */
    │ │ │ │ +
    130 0xa1000000u, /* 44 */
    │ │ │ │ +
    131 0x00084595u, /* 45 */
    │ │ │ │ +
    132 0x16140148u, /* 46 */
    │ │ │ │ +
    133 0x4a000000u, /* 47 */
    │ │ │ │ +
    134 0x0052b7d2u, /* 48 */
    │ │ │ │ +
    135 0xdcc80cd2u, /* 49 */
    │ │ │ │ +
    136 0xe4000000u, /* 50 */
    │ │ │ │ +
    137 0x033b2e3cu, /* 51 */
    │ │ │ │ +
    138 0x9fd0803cu, /* 52 */
    │ │ │ │ +
    139 0xe8000000u, /* 53 */
    │ │ │ │ +
    140 0x204fce5eu, /* 54 */
    │ │ │ │ +
    141 0x3e250261u, /* 55 */
    │ │ │ │ +
    142 0x10000000u, /* 56 */
    │ │ │ │ +
    143 0x00000001u, /* 57 */
    │ │ │ │ +
    144 0x431e0faeu, /* 58 */
    │ │ │ │ +
    145 0x6d7217cau, /* 59 */
    │ │ │ │ +
    146 0xa0000000u, /* 60 */
    │ │ │ │ +
    147 0x0000000cu, /* 61 */
    │ │ │ │ +
    148 0x9f2c9cd0u, /* 62 */
    │ │ │ │ +
    149 0x4674edeau, /* 63 */
    │ │ │ │ +
    150 0x40000000u, /* 64 */
    │ │ │ │ +
    151 0x0000007eu, /* 65 */
    │ │ │ │ +
    152 0x37be2022u, /* 66 */
    │ │ │ │ +
    153 0xc0914b26u, /* 67 */
    │ │ │ │ +
    154 0x80000000u, /* 68 */
    │ │ │ │ +
    155 0x000004eeu, /* 69 */
    │ │ │ │ +
    156 0x2d6d415bu, /* 70 */
    │ │ │ │ +
    157 0x85acef81u, /* 71 */
    │ │ │ │ +
    158 0x0000314du, /* 72 */
    │ │ │ │ +
    159 0xc6448d93u, /* 73 */
    │ │ │ │ +
    160 0x38c15b0au, /* 74 */
    │ │ │ │ +
    161 0x0001ed09u, /* 75 */
    │ │ │ │ +
    162 0xbead87c0u, /* 76 */
    │ │ │ │ +
    163 0x378d8e64u, /* 77 */
    │ │ │ │ +
    164 0x00134261u, /* 78 */
    │ │ │ │ +
    165 0x72c74d82u, /* 79 */
    │ │ │ │ +
    166 0x2b878fe8u, /* 80 */
    │ │ │ │ +
    167 0x00c097ceu, /* 81 */
    │ │ │ │ +
    168 0x7bc90715u, /* 82 */
    │ │ │ │ +
    169 0xb34b9f10u, /* 83 */
    │ │ │ │ +
    170 0x0785ee10u, /* 84 */
    │ │ │ │ +
    171 0xd5da46d9u, /* 85 */
    │ │ │ │ +
    172 0x00f436a0u, /* 86 */
    │ │ │ │ +
    173 0x4b3b4ca8u, /* 87 */
    │ │ │ │ +
    174 0x5a86c47au, /* 88 */
    │ │ │ │ +
    175 0x098a2240u, /* 89 */
    │ │ │ │ +
    176 0x00000002u, /* 90 */
    │ │ │ │ +
    177 0xf050fe93u, /* 91 */
    │ │ │ │ +
    178 0x8943acc4u, /* 92 */
    │ │ │ │ +
    179 0x5f655680u, /* 93 */
    │ │ │ │ +
    180 0x0000001du, /* 94 */
    │ │ │ │ +
    181 0x6329f1c3u, /* 95 */
    │ │ │ │ +
    182 0x5ca4bfabu, /* 96 */
    │ │ │ │ +
    183 0xb9f56100u, /* 97 */
    │ │ │ │ +
    184 0x00000125u, /* 98 */
    │ │ │ │ +
    185 0xdfa371a1u, /* 99 */
    │ │ │ │ +
    186 0x9e6f7cb5u, /* 100 */
    │ │ │ │ +
    187 0x4395ca00u, /* 101 */
    │ │ │ │ +
    188 0x00000b7au, /* 102 */
    │ │ │ │ +
    189 0xbc627050u, /* 103 */
    │ │ │ │ +
    190 0x305adf14u, /* 104 */
    │ │ │ │ +
    191 0xa3d9e400u, /* 105 */
    │ │ │ │ +
    192 0x000072cbu, /* 106 */
    │ │ │ │ +
    193 0x5bd86321u, /* 107 */
    │ │ │ │ +
    194 0xe38cb6ceu, /* 108 */
    │ │ │ │ +
    195 0x6682e800u, /* 109 */
    │ │ │ │ +
    196 0x00047bf1u, /* 110 */
    │ │ │ │ +
    197 0x9673df52u, /* 111 */
    │ │ │ │ +
    198 0xe37f2410u, /* 112 */
    │ │ │ │ +
    199 0x011d1000u, /* 113 */
    │ │ │ │ +
    200 0x002cd76fu, /* 114 */
    │ │ │ │ +
    201 0xe086b93cu, /* 115 */
    │ │ │ │ +
    202 0xe2f768a0u, /* 116 */
    │ │ │ │ +
    203 0x0b22a000u, /* 117 */
    │ │ │ │ +
    204 0x01c06a5eu, /* 118 */
    │ │ │ │ +
    205 0xc5433c60u, /* 119 */
    │ │ │ │ +
    206 0xddaa1640u, /* 120 */
    │ │ │ │ +
    207 0x6f5a4000u, /* 121 */
    │ │ │ │ +
    208 0x118427b3u, /* 122 */
    │ │ │ │ +
    209 0xb4a05bc8u, /* 123 */
    │ │ │ │ +
    210 0xa8a4de84u, /* 124 */
    │ │ │ │ +
    211 0x59868000u, /* 125 */
    │ │ │ │ +
    212 0xaf298d05u, /* 126 */
    │ │ │ │ +
    213 0x0e4395d6u, /* 127 */
    │ │ │ │ +
    214 0x9670b12bu, /* 128 */
    │ │ │ │ +
    215 0x7f410000u, /* 129 */
    │ │ │ │ +
    216 0x00000006u, /* 130 */
    │ │ │ │ +
    217 0xd79f8232u, /* 131 */
    │ │ │ │ +
    218 0x8ea3da61u, /* 132 */
    │ │ │ │ +
    219 0xe066ebb2u, /* 133 */
    │ │ │ │ +
    220 0xf88a0000u, /* 134 */
    │ │ │ │ +
    221 0x00000044u, /* 135 */
    │ │ │ │ +
    222 0x6c3b15f9u, /* 136 */
    │ │ │ │ +
    223 0x926687d2u, /* 137 */
    │ │ │ │ +
    224 0xc40534fdu, /* 138 */
    │ │ │ │ +
    225 0xb5640000u, /* 139 */
    │ │ │ │ +
    226 0x000002acu, /* 140 */
    │ │ │ │ +
    227 0x3a4edbbfu, /* 141 */
    │ │ │ │ +
    228 0xb8014e3bu, /* 142 */
    │ │ │ │ +
    229 0xa83411e9u, /* 143 */
    │ │ │ │ +
    230 0x15e80000u, /* 144 */
    │ │ │ │ +
    231 0x00001abau, /* 145 */
    │ │ │ │ +
    232 0x4714957du, /* 146 */
    │ │ │ │ +
    233 0x300d0e54u, /* 147 */
    │ │ │ │ +
    234 0x9208b31au, /* 148 */
    │ │ │ │ +
    235 0xdb100000u, /* 149 */
    │ │ │ │ +
    236 0x00010b46u, /* 150 */
    │ │ │ │ +
    237 0xc6cdd6e3u, /* 151 */
    │ │ │ │ +
    238 0xe0828f4du, /* 152 */
    │ │ │ │ +
    239 0xb456ff0cu, /* 153 */
    │ │ │ │ +
    240 0x8ea00000u, /* 154 */
    │ │ │ │ +
    241 0x000a70c3u, /* 155 */
    │ │ │ │ +
    242 0xc40a64e6u, /* 156 */
    │ │ │ │ +
    243 0xc5199909u, /* 157 */
    │ │ │ │ +
    244 0x0b65f67du, /* 158 */
    │ │ │ │ +
    245 0x92400000u, /* 159 */
    │ │ │ │ +
    246 0x006867a5u, /* 160 */
    │ │ │ │ +
    247 0xa867f103u, /* 161 */
    │ │ │ │ +
    248 0xb2fffa5au, /* 162 */
    │ │ │ │ +
    249 0x71fba0e7u, /* 163 */
    │ │ │ │ +
    250 0xb6800000u, /* 164 */
    │ │ │ │ +
    251 0x04140c78u, /* 165 */
    │ │ │ │ +
    252 0x940f6a24u, /* 166 */
    │ │ │ │ +
    253 0xfdffc788u, /* 167 */
    │ │ │ │ +
    254 0x73d4490du, /* 168 */
    │ │ │ │ +
    255 0x21000000u, /* 169 */
    │ │ │ │ +
    256 0x28c87cb5u, /* 170 */
    │ │ │ │ +
    257 0xc89a2571u, /* 171 */
    │ │ │ │ +
    258 0xebfdcb54u, /* 172 */
    │ │ │ │ +
    259 0x864ada83u, /* 173 */
    │ │ │ │ +
    260 0x4a000000u, /* 174 */
    │ │ │ │ +
    261 0x00000001u, /* 175 */
    │ │ │ │ +
    262 0x97d4df19u, /* 176 */
    │ │ │ │ +
    263 0xd6057673u, /* 177 */
    │ │ │ │ +
    264 0x37e9f14du, /* 178 */
    │ │ │ │ +
    265 0x3eec8920u, /* 179 */
    │ │ │ │ +
    266 0xe4000000u, /* 180 */
    │ │ │ │ +
    267 0x0000000fu, /* 181 */
    │ │ │ │ +
    268 0xee50b702u, /* 182 */
    │ │ │ │ +
    269 0x5c36a080u, /* 183 */
    │ │ │ │ +
    270 0x2f236d04u, /* 184 */
    │ │ │ │ +
    271 0x753d5b48u, /* 185 */
    │ │ │ │ +
    272 0xe8000000u, /* 186 */
    │ │ │ │ +
    273 0x0000009fu, /* 187 */
    │ │ │ │ +
    274 0x4f272617u, /* 188 */
    │ │ │ │ +
    275 0x9a224501u, /* 189 */
    │ │ │ │ +
    276 0xd762422cu, /* 190 */
    │ │ │ │ +
    277 0x946590d9u, /* 191 */
    │ │ │ │ +
    278 0x10000000u, /* 192 */
    │ │ │ │ +
    279 0x00000639u, /* 193 */
    │ │ │ │ +
    280 0x17877cecu, /* 194 */
    │ │ │ │ +
    281 0x0556b212u, /* 195 */
    │ │ │ │ +
    282 0x69d695bdu, /* 196 */
    │ │ │ │ +
    283 0xcbf7a87au, /* 197 */
    │ │ │ │ +
    284 0xa0000000u, /* 198 */
    │ │ │ │ +
    285 0x00003e3au, /* 199 */
    │ │ │ │ +
    286 0xeb4ae138u, /* 200 */
    │ │ │ │ +
    287 0x3562f4b8u, /* 201 */
    │ │ │ │ +
    288 0x2261d969u, /* 202 */
    │ │ │ │ +
    289 0xf7ac94cau, /* 203 */
    │ │ │ │ +
    290 0x40000000u, /* 204 */
    │ │ │ │ +
    291 0x00026e4du, /* 205 */
    │ │ │ │ +
    292 0x30eccc32u, /* 206 */
    │ │ │ │ +
    293 0x15dd8f31u, /* 207 */
    │ │ │ │ +
    294 0x57d27e23u, /* 208 */
    │ │ │ │ +
    295 0xacbdcfe6u, /* 209 */
    │ │ │ │ +
    296 0x80000000u, /* 210 */
    │ │ │ │ +
    297 0x00184f03u, /* 211 */
    │ │ │ │ +
    298 0xe93ff9f4u, /* 212 */
    │ │ │ │ +
    299 0xdaa797edu, /* 213 */
    │ │ │ │ +
    300 0x6e38ed64u, /* 214 */
    │ │ │ │ +
    301 0xbf6a1f01u, /* 215 */
    │ │ │ │ +
    302 0x00f31627u, /* 216 */
    │ │ │ │ +
    303 0x1c7fc390u, /* 217 */
    │ │ │ │ +
    304 0x8a8bef46u, /* 218 */
    │ │ │ │ +
    305 0x4e3945efu, /* 219 */
    │ │ │ │ +
    306 0x7a25360au, /* 220 */
    │ │ │ │ +
    307 0x097edd87u, /* 221 */
    │ │ │ │ +
    308 0x1cfda3a5u, /* 222 */
    │ │ │ │ +
    309 0x697758bfu, /* 223 */
    │ │ │ │ +
    310 0x0e3cbb5au, /* 224 */
    │ │ │ │ +
    311 0xc5741c64u, /* 225 */
    │ │ │ │ +
    312 0x5ef4a747u, /* 226 */
    │ │ │ │ +
    313 0x21e86476u, /* 227 */
    │ │ │ │ +
    314 0x1ea97776u, /* 228 */
    │ │ │ │ +
    315 0x8e5f518bu, /* 229 */
    │ │ │ │ +
    316 0xb6891be8u, /* 230 */
    │ │ │ │ +
    317 0x00000003u, /* 231 */
    │ │ │ │ +
    318 0xb58e88c7u, /* 232 */
    │ │ │ │ +
    319 0x5313ec9du, /* 233 */
    │ │ │ │ +
    320 0x329eaaa1u, /* 234 */
    │ │ │ │ +
    321 0x8fb92f75u, /* 235 */
    │ │ │ │ +
    322 0x215b1710u, /* 236 */
    │ │ │ │ +
    323 0x00000025u, /* 237 */
    │ │ │ │ +
    324 0x179157c9u, /* 238 */
    │ │ │ │ +
    325 0x3ec73e23u, /* 239 */
    │ │ │ │ +
    326 0xfa32aa4fu, /* 240 */
    │ │ │ │ +
    327 0x9d3bda93u, /* 241 */
    │ │ │ │ +
    328 0x4d8ee6a0u, /* 242 */
    │ │ │ │ +
    329 0x00000172u, /* 243 */
    │ │ │ │ +
    330 0xebad6ddcu, /* 244 */
    │ │ │ │ +
    331 0x73c86d67u, /* 245 */
    │ │ │ │ +
    332 0xc5faa71cu, /* 246 */
    │ │ │ │ +
    333 0x245689c1u, /* 247 */
    │ │ │ │ +
    334 0x07950240u, /* 248 */
    │ │ │ │ +
    335 0x00000e7du, /* 249 */
    │ │ │ │ +
    336 0x34c64a9cu, /* 250 */
    │ │ │ │ +
    337 0x85d4460du, /* 251 */
    │ │ │ │ +
    338 0xbbca8719u, /* 252 */
    │ │ │ │ +
    339 0x6b61618au, /* 253 */
    │ │ │ │ +
    340 0x4bd21680u, /* 254 */
    │ │ │ │ +
    341 0x000090e4u, /* 255 */
    │ │ │ │ +
    342 0x0fbeea1du, /* 256 */
    │ │ │ │ +
    343 0x3a4abc89u, /* 257 */
    │ │ │ │ +
    344 0x55e946feu, /* 258 */
    │ │ │ │ +
    345 0x31cdcf66u, /* 259 */
    │ │ │ │ +
    346 0xf634e100u, /* 260 */
    │ │ │ │ +
    347 0x0005a8e8u, /* 261 */
    │ │ │ │ +
    348 0x9d752524u, /* 262 */
    │ │ │ │ +
    349 0x46eb5d5du, /* 263 */
    │ │ │ │ +
    350 0x5b1cc5edu, /* 264 */
    │ │ │ │ +
    351 0xf20a1a05u, /* 265 */
    │ │ │ │ +
    352 0x9e10ca00u, /* 266 */
    │ │ │ │ +
    353 0x00389916u, /* 267 */
    │ │ │ │ +
    354 0x2693736au, /* 268 */
    │ │ │ │ +
    355 0xc531a5a5u, /* 269 */
    │ │ │ │ +
    356 0x8f1fbb4bu, /* 270 */
    │ │ │ │ +
    357 0x74650438u, /* 271 */
    │ │ │ │ +
    358 0x2ca7e400u, /* 272 */
    │ │ │ │ +
    359 0x0235faddu, /* 273 */
    │ │ │ │ +
    360 0x81c2822bu, /* 274 */
    │ │ │ │ +
    361 0xb3f07877u, /* 275 */
    │ │ │ │ +
    362 0x973d50f2u, /* 276 */
    │ │ │ │ +
    363 0x8bf22a31u, /* 277 */
    │ │ │ │ +
    364 0xbe8ee800u, /* 278 */
    │ │ │ │ +
    365 0x161bcca7u, /* 279 */
    │ │ │ │ +
    366 0x119915b5u, /* 280 */
    │ │ │ │ +
    367 0x0764b4abu, /* 281 */
    │ │ │ │ +
    368 0xe8652979u, /* 282 */
    │ │ │ │ +
    369 0x7775a5f1u, /* 283 */
    │ │ │ │ +
    370 0x71951000u, /* 284 */
    │ │ │ │ +
    371 0xdd15fe86u, /* 285 */
    │ │ │ │ +
    372 0xaffad912u, /* 286 */
    │ │ │ │ +
    373 0x49ef0eb7u, /* 287 */
    │ │ │ │ +
    374 0x13f39ebeu, /* 288 */
    │ │ │ │ +
    375 0xaa987b6eu, /* 289 */
    │ │ │ │ +
    376 0x6fd2a000u, /* 290 */
    │ │ │ │ +
    377};
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,284 +1,386 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _s_r_c │ │ │ │ │ * _t_d_s │ │ │ │ │ -tds_willconvert.h │ │ │ │ │ -1/*** Please do not edit this file! ***/ │ │ │ │ │ -2/*** It was generated with 'perl tds_willconvert.pl > tds_willconvert.h' ***/ │ │ │ │ │ -3/*** It is much easier to edit the __DATA__ table than this file. ***/ │ │ │ │ │ -4/*** ***/ │ │ │ │ │ -5/*** Thank you. ***/ │ │ │ │ │ -6 │ │ │ │ │ -7static const uint8_t type2category[256] = { │ │ │ │ │ -8 0, /* 0 */ │ │ │ │ │ -9 0, /* 1 */ │ │ │ │ │ -10 0, /* 2 */ │ │ │ │ │ -11 0, /* 3 */ │ │ │ │ │ -12 0, /* 4 */ │ │ │ │ │ -13 0, /* 5 */ │ │ │ │ │ -14 0, /* 6 */ │ │ │ │ │ -15 0, /* 7 */ │ │ │ │ │ -16 0, /* 8 */ │ │ │ │ │ -17 0, /* 9 */ │ │ │ │ │ -18 0, /* 10 */ │ │ │ │ │ -19 0, /* 11 */ │ │ │ │ │ -20 0, /* 12 */ │ │ │ │ │ -21 0, /* 13 */ │ │ │ │ │ -22 0, /* 14 */ │ │ │ │ │ -23 0, /* 15 */ │ │ │ │ │ -24 0, /* 16 */ │ │ │ │ │ -25 0, /* 17 */ │ │ │ │ │ -26 0, /* 18 */ │ │ │ │ │ -27 0, /* 19 */ │ │ │ │ │ -28 0, /* 20 */ │ │ │ │ │ -29 0, /* 21 */ │ │ │ │ │ -30 0, /* 22 */ │ │ │ │ │ -31 0, /* 23 */ │ │ │ │ │ -32 0, /* 24 */ │ │ │ │ │ -33 0, /* 25 */ │ │ │ │ │ -34 0, /* 26 */ │ │ │ │ │ -35 0, /* 27 */ │ │ │ │ │ -36 0, /* 28 */ │ │ │ │ │ -37 0, /* 29 */ │ │ │ │ │ -38 0, /* 30 */ │ │ │ │ │ -39 0, /* SYBVOID */ │ │ │ │ │ -40 0, /* 32 */ │ │ │ │ │ -41 0, /* 33 */ │ │ │ │ │ -42 2, /* SYBIMAGE */ │ │ │ │ │ -43 6, /* SYBTEXT */ │ │ │ │ │ -44 7, /* SYBBLOB */ │ │ │ │ │ -45 2, /* SYBVARBINARY */ │ │ │ │ │ -46 0, /* SYBINTN */ │ │ │ │ │ -47 6, /* SYBVARCHAR */ │ │ │ │ │ -48 4, /* SYBMSDATE */ │ │ │ │ │ -49 4, /* SYBMSTIME */ │ │ │ │ │ -50 4, /* SYBMSDATETIME2 */ │ │ │ │ │ -51 4, /* SYBMSDATETIMEOFFSET */ │ │ │ │ │ -52 0, /* 44 */ │ │ │ │ │ -53 2, /* SYBBINARY */ │ │ │ │ │ -54 0, /* SYBINTERVAL */ │ │ │ │ │ -55 6, /* SYBCHAR */ │ │ │ │ │ -56 3, /* SYBINT1 */ │ │ │ │ │ -57 4, /* SYBDATE */ │ │ │ │ │ -58 1, /* SYBBIT */ │ │ │ │ │ -59 4, /* SYBTIME */ │ │ │ │ │ -60 3, /* SYBINT2 */ │ │ │ │ │ -61 0, /* 53 */ │ │ │ │ │ -62 0, /* 54 */ │ │ │ │ │ -63 0, /* 55 */ │ │ │ │ │ -64 3, /* SYBINT4 */ │ │ │ │ │ -65 0, /* 57 */ │ │ │ │ │ -66 4, /* SYBDATETIME4 */ │ │ │ │ │ -67 3, /* SYBREAL */ │ │ │ │ │ -68 3, /* SYBMONEY */ │ │ │ │ │ -69 4, /* SYBDATETIME */ │ │ │ │ │ -70 3, /* SYBFLT8 */ │ │ │ │ │ -71 0, /* 63 */ │ │ │ │ │ -72 3, /* SYBUINT1 */ │ │ │ │ │ -73 3, /* SYBUINT2 */ │ │ │ │ │ -74 3, /* SYBUINT4 */ │ │ │ │ │ -75 3, /* SYBUINT8 */ │ │ │ │ │ -76 0, /* SYBUINTN */ │ │ │ │ │ -77 0, /* 69 */ │ │ │ │ │ -78 0, /* 70 */ │ │ │ │ │ -79 0, /* 71 */ │ │ │ │ │ -80 0, /* 72 */ │ │ │ │ │ -81 0, /* 73 */ │ │ │ │ │ -82 0, /* 74 */ │ │ │ │ │ -83 0, /* 75 */ │ │ │ │ │ -84 0, /* 76 */ │ │ │ │ │ -85 0, /* 77 */ │ │ │ │ │ -86 0, /* 78 */ │ │ │ │ │ -87 0, /* 79 */ │ │ │ │ │ -88 0, /* 80 */ │ │ │ │ │ -89 0, /* 81 */ │ │ │ │ │ -90 0, /* 82 */ │ │ │ │ │ -91 0, /* 83 */ │ │ │ │ │ -92 0, /* 84 */ │ │ │ │ │ -93 0, /* 85 */ │ │ │ │ │ -94 0, /* 86 */ │ │ │ │ │ -95 0, /* 87 */ │ │ │ │ │ -96 0, /* 88 */ │ │ │ │ │ -97 0, /* 89 */ │ │ │ │ │ -98 0, /* 90 */ │ │ │ │ │ -99 0, /* 91 */ │ │ │ │ │ -100 0, /* 92 */ │ │ │ │ │ -101 0, /* 93 */ │ │ │ │ │ -102 0, /* 94 */ │ │ │ │ │ -103 0, /* 95 */ │ │ │ │ │ -104 0, /* 96 */ │ │ │ │ │ -105 0, /* 97 */ │ │ │ │ │ -106 0, /* SYBVARIANT */ │ │ │ │ │ -107 0, /* SYBNTEXT */ │ │ │ │ │ -108 0, /* 100 */ │ │ │ │ │ -109 0, /* 101 */ │ │ │ │ │ -110 0, /* 102 */ │ │ │ │ │ -111 5, /* SYBSENSITIVITY */ │ │ │ │ │ -112 1, /* SYBBOUNDARY */ │ │ │ │ │ -113 0, /* 105 */ │ │ │ │ │ -114 1, /* SYBDECIMAL */ │ │ │ │ │ -115 0, /* 107 */ │ │ │ │ │ -116 1, /* SYBNUMERIC */ │ │ │ │ │ -117 0, /* SYBFLTN */ │ │ │ │ │ -118 0, /* SYBMONEYN */ │ │ │ │ │ -119 0, /* SYBDATETIMN */ │ │ │ │ │ -120 0, /* 112 */ │ │ │ │ │ -121 0, /* 113 */ │ │ │ │ │ -122 0, /* 114 */ │ │ │ │ │ -123 0, /* 115 */ │ │ │ │ │ -124 0, /* 116 */ │ │ │ │ │ -125 0, /* 117 */ │ │ │ │ │ -126 0, /* 118 */ │ │ │ │ │ -127 0, /* 119 */ │ │ │ │ │ -128 0, /* 120 */ │ │ │ │ │ -129 0, /* 121 */ │ │ │ │ │ -130 3, /* SYBMONEY4 */ │ │ │ │ │ -131 0, /* SYBDATEN */ │ │ │ │ │ -132 0, /* 124 */ │ │ │ │ │ -133 0, /* 125 */ │ │ │ │ │ -134 0, /* 126 */ │ │ │ │ │ -135 3, /* SYBINT8 */ │ │ │ │ │ -136 0, /* 128 */ │ │ │ │ │ -137 0, /* 129 */ │ │ │ │ │ -138 0, /* 130 */ │ │ │ │ │ -139 0, /* 131 */ │ │ │ │ │ -140 0, /* 132 */ │ │ │ │ │ -141 0, /* 133 */ │ │ │ │ │ -142 0, /* 134 */ │ │ │ │ │ -143 0, /* 135 */ │ │ │ │ │ -144 0, /* 136 */ │ │ │ │ │ -145 0, /* 137 */ │ │ │ │ │ -146 0, /* 138 */ │ │ │ │ │ -147 0, /* 139 */ │ │ │ │ │ -148 0, /* 140 */ │ │ │ │ │ -149 0, /* 141 */ │ │ │ │ │ -150 0, /* 142 */ │ │ │ │ │ -151 0, /* 143 */ │ │ │ │ │ -152 0, /* 144 */ │ │ │ │ │ -153 0, /* 145 */ │ │ │ │ │ -154 0, /* 146 */ │ │ │ │ │ -155 0, /* SYBTIMEN */ │ │ │ │ │ -156 0, /* 148 */ │ │ │ │ │ -157 0, /* 149 */ │ │ │ │ │ -158 0, /* 150 */ │ │ │ │ │ -159 0, /* 151 */ │ │ │ │ │ -160 0, /* 152 */ │ │ │ │ │ -161 0, /* 153 */ │ │ │ │ │ -162 0, /* 154 */ │ │ │ │ │ -163 0, /* 155 */ │ │ │ │ │ -164 0, /* 156 */ │ │ │ │ │ -165 0, /* 157 */ │ │ │ │ │ -166 0, /* 158 */ │ │ │ │ │ -167 0, /* 159 */ │ │ │ │ │ -168 0, /* 160 */ │ │ │ │ │ -169 0, /* 161 */ │ │ │ │ │ -170 0, /* 162 */ │ │ │ │ │ -171 0, /* SYBXML */ │ │ │ │ │ -172 0, /* 164 */ │ │ │ │ │ -173 2, /* XSYBVARBINARY */ │ │ │ │ │ -174 0, /* 166 */ │ │ │ │ │ -175 6, /* XSYBVARCHAR */ │ │ │ │ │ -176 0, /* 168 */ │ │ │ │ │ -177 0, /* 169 */ │ │ │ │ │ -178 0, /* 170 */ │ │ │ │ │ -179 0, /* 171 */ │ │ │ │ │ -180 0, /* 172 */ │ │ │ │ │ -181 2, /* XSYBBINARY */ │ │ │ │ │ -182 0, /* SYBUNITEXT */ │ │ │ │ │ -183 6, /* SYBLONGCHAR */ │ │ │ │ │ -184 0, /* SYBSINT1 */ │ │ │ │ │ -185 0, /* 177 */ │ │ │ │ │ -186 0, /* 178 */ │ │ │ │ │ -187 0, /* 179 */ │ │ │ │ │ -188 0, /* 180 */ │ │ │ │ │ -189 0, /* 181 */ │ │ │ │ │ -190 0, /* 182 */ │ │ │ │ │ -191 0, /* 183 */ │ │ │ │ │ -192 0, /* 184 */ │ │ │ │ │ -193 0, /* 185 */ │ │ │ │ │ -194 0, /* 186 */ │ │ │ │ │ -195 4, /* SYB5BIGDATETIME */ │ │ │ │ │ -196 4, /* SYB5BIGTIME */ │ │ │ │ │ -197 0, /* 189 */ │ │ │ │ │ -198 0, /* 190 */ │ │ │ │ │ -199 0, /* SYB5INT8 */ │ │ │ │ │ -200 0, /* 192 */ │ │ │ │ │ -201 0, /* 193 */ │ │ │ │ │ -202 0, /* 194 */ │ │ │ │ │ -203 0, /* 195 */ │ │ │ │ │ -204 0, /* 196 */ │ │ │ │ │ -205 0, /* 197 */ │ │ │ │ │ -206 0, /* 198 */ │ │ │ │ │ -207 0, /* 199 */ │ │ │ │ │ -208 0, /* 200 */ │ │ │ │ │ -209 0, /* 201 */ │ │ │ │ │ -210 0, /* 202 */ │ │ │ │ │ -211 0, /* 203 */ │ │ │ │ │ -212 0, /* 204 */ │ │ │ │ │ -213 0, /* 205 */ │ │ │ │ │ -214 0, /* 206 */ │ │ │ │ │ -215 0, /* 207 */ │ │ │ │ │ -216 0, /* 208 */ │ │ │ │ │ -217 0, /* 209 */ │ │ │ │ │ -218 0, /* 210 */ │ │ │ │ │ -219 0, /* 211 */ │ │ │ │ │ -220 0, /* 212 */ │ │ │ │ │ -221 0, /* 213 */ │ │ │ │ │ -222 0, /* 214 */ │ │ │ │ │ -223 0, /* 215 */ │ │ │ │ │ -224 0, /* 216 */ │ │ │ │ │ -225 0, /* 217 */ │ │ │ │ │ -226 0, /* 218 */ │ │ │ │ │ -227 0, /* 219 */ │ │ │ │ │ -228 0, /* 220 */ │ │ │ │ │ -229 0, /* 221 */ │ │ │ │ │ -230 0, /* 222 */ │ │ │ │ │ -231 0, /* 223 */ │ │ │ │ │ -232 0, /* 224 */ │ │ │ │ │ -233 2, /* SYBLONGBINARY */ │ │ │ │ │ -234 0, /* 226 */ │ │ │ │ │ -235 0, /* 227 */ │ │ │ │ │ -236 0, /* 228 */ │ │ │ │ │ -237 0, /* 229 */ │ │ │ │ │ -238 0, /* 230 */ │ │ │ │ │ -239 0, /* XSYBNVARCHAR */ │ │ │ │ │ -240 0, /* 232 */ │ │ │ │ │ -241 0, /* 233 */ │ │ │ │ │ -242 0, /* 234 */ │ │ │ │ │ -243 0, /* 235 */ │ │ │ │ │ -244 0, /* 236 */ │ │ │ │ │ -245 0, /* 237 */ │ │ │ │ │ -246 0, /* 238 */ │ │ │ │ │ -247 0, /* XSYBNCHAR */ │ │ │ │ │ -248 0, /* SYBMSUDT */ │ │ │ │ │ -249 0, /* SYBMSXML */ │ │ │ │ │ -250 0, /* 242 */ │ │ │ │ │ -251 0, /* 243 */ │ │ │ │ │ -252 0, /* 244 */ │ │ │ │ │ -253 0, /* 245 */ │ │ │ │ │ -254 0, /* 246 */ │ │ │ │ │ -255 0, /* 247 */ │ │ │ │ │ -256 0, /* 248 */ │ │ │ │ │ -257 0, /* 249 */ │ │ │ │ │ -258 0, /* 250 */ │ │ │ │ │ -259 0, /* 251 */ │ │ │ │ │ -260 0, /* 252 */ │ │ │ │ │ -261 0, /* 253 */ │ │ │ │ │ -262 0, /* 254 */ │ │ │ │ │ -263 0, /* 255 */ │ │ │ │ │ -264}; │ │ │ │ │ -265 │ │ │ │ │ -266static const uint32_t category_conversion[] = { │ │ │ │ │ -267 0, │ │ │ │ │ -268 78, /* SYBBIT */ │ │ │ │ │ -269 76, /* SYBIMAGE */ │ │ │ │ │ -270 78, /* SYBINT1 */ │ │ │ │ │ -271 84, /* SYBMSDATE */ │ │ │ │ │ -272 0, /* SYBSENSITIVITY */ │ │ │ │ │ -273 222, /* SYBTEXT */ │ │ │ │ │ -274 196, /* SYBUNIQUE */ │ │ │ │ │ -275}; │ │ │ │ │ +num_limits.h │ │ │ │ │ +1#define LIMIT_INDEXES_ADJUST 4 │ │ │ │ │ +2 │ │ │ │ │ +3static const signed char limit_indexes[79]= { │ │ │ │ │ +4 0, /* 0 */ │ │ │ │ │ +5 -3, /* 1 */ │ │ │ │ │ +6 -6, /* 2 */ │ │ │ │ │ +7 -9, /* 3 */ │ │ │ │ │ +8 -12, /* 4 */ │ │ │ │ │ +9 -15, /* 5 */ │ │ │ │ │ +10 -18, /* 6 */ │ │ │ │ │ +11 -21, /* 7 */ │ │ │ │ │ +12 -24, /* 8 */ │ │ │ │ │ +13 -27, /* 9 */ │ │ │ │ │ +14 -30, /* 10 */ │ │ │ │ │ +15 -32, /* 11 */ │ │ │ │ │ +16 -34, /* 12 */ │ │ │ │ │ +17 -36, /* 13 */ │ │ │ │ │ +18 -38, /* 14 */ │ │ │ │ │ +19 -40, /* 15 */ │ │ │ │ │ +20 -42, /* 16 */ │ │ │ │ │ +21 -44, /* 17 */ │ │ │ │ │ +22 -46, /* 18 */ │ │ │ │ │ +23 -48, /* 19 */ │ │ │ │ │ +24 -50, /* 20 */ │ │ │ │ │ +25 -51, /* 21 */ │ │ │ │ │ +26 -52, /* 22 */ │ │ │ │ │ +27 -53, /* 23 */ │ │ │ │ │ +28 -54, /* 24 */ │ │ │ │ │ +29 -55, /* 25 */ │ │ │ │ │ +30 -56, /* 26 */ │ │ │ │ │ +31 -57, /* 27 */ │ │ │ │ │ +32 -58, /* 28 */ │ │ │ │ │ +33 -59, /* 29 */ │ │ │ │ │ +34 -59, /* 30 */ │ │ │ │ │ +35 -59, /* 31 */ │ │ │ │ │ +36 -59, /* 32 */ │ │ │ │ │ +37 -60, /* 33 */ │ │ │ │ │ +38 -61, /* 34 */ │ │ │ │ │ +39 -62, /* 35 */ │ │ │ │ │ +40 -63, /* 36 */ │ │ │ │ │ +41 -64, /* 37 */ │ │ │ │ │ +42 -65, /* 38 */ │ │ │ │ │ +43 -66, /* 39 */ │ │ │ │ │ +44 -66, /* 40 */ │ │ │ │ │ +45 -66, /* 41 */ │ │ │ │ │ +46 -66, /* 42 */ │ │ │ │ │ +47 -66, /* 43 */ │ │ │ │ │ +48 -66, /* 44 */ │ │ │ │ │ +49 -66, /* 45 */ │ │ │ │ │ +50 -66, /* 46 */ │ │ │ │ │ +51 -66, /* 47 */ │ │ │ │ │ +52 -66, /* 48 */ │ │ │ │ │ +53 -66, /* 49 */ │ │ │ │ │ +54 -65, /* 50 */ │ │ │ │ │ +55 -64, /* 51 */ │ │ │ │ │ +56 -63, /* 52 */ │ │ │ │ │ +57 -62, /* 53 */ │ │ │ │ │ +58 -61, /* 54 */ │ │ │ │ │ +59 -60, /* 55 */ │ │ │ │ │ +60 -59, /* 56 */ │ │ │ │ │ +61 -58, /* 57 */ │ │ │ │ │ +62 -57, /* 58 */ │ │ │ │ │ +63 -55, /* 59 */ │ │ │ │ │ +64 -53, /* 60 */ │ │ │ │ │ +65 -51, /* 61 */ │ │ │ │ │ +66 -49, /* 62 */ │ │ │ │ │ +67 -47, /* 63 */ │ │ │ │ │ +68 -45, /* 64 */ │ │ │ │ │ +69 -44, /* 65 */ │ │ │ │ │ +70 -43, /* 66 */ │ │ │ │ │ +71 -42, /* 67 */ │ │ │ │ │ +72 -41, /* 68 */ │ │ │ │ │ +73 -39, /* 69 */ │ │ │ │ │ +74 -37, /* 70 */ │ │ │ │ │ +75 -35, /* 71 */ │ │ │ │ │ +76 -33, /* 72 */ │ │ │ │ │ +77 -31, /* 73 */ │ │ │ │ │ +78 -29, /* 74 */ │ │ │ │ │ +79 -27, /* 75 */ │ │ │ │ │ +80 -25, /* 76 */ │ │ │ │ │ +81 -23, /* 77 */ │ │ │ │ │ +82 -21, /* 78 */ │ │ │ │ │ +83}; │ │ │ │ │ +84 │ │ │ │ │ +85static const TDS_WORD limits[]= { │ │ │ │ │ +86 0x00000001u, /* 0 */ │ │ │ │ │ +87 0x0000000au, /* 1 */ │ │ │ │ │ +88 0x00000064u, /* 2 */ │ │ │ │ │ +89 0x000003e8u, /* 3 */ │ │ │ │ │ +90 0x00002710u, /* 4 */ │ │ │ │ │ +91 0x000186a0u, /* 5 */ │ │ │ │ │ +92 0x000f4240u, /* 6 */ │ │ │ │ │ +93 0x00989680u, /* 7 */ │ │ │ │ │ +94 0x05f5e100u, /* 8 */ │ │ │ │ │ +95 0x3b9aca00u, /* 9 */ │ │ │ │ │ +96 0x00000002u, /* 10 */ │ │ │ │ │ +97 0x540be400u, /* 11 */ │ │ │ │ │ +98 0x00000017u, /* 12 */ │ │ │ │ │ +99 0x4876e800u, /* 13 */ │ │ │ │ │ +100 0x000000e8u, /* 14 */ │ │ │ │ │ +101 0xd4a51000u, /* 15 */ │ │ │ │ │ +102 0x00000918u, /* 16 */ │ │ │ │ │ +103 0x4e72a000u, /* 17 */ │ │ │ │ │ +104 0x00005af3u, /* 18 */ │ │ │ │ │ +105 0x107a4000u, /* 19 */ │ │ │ │ │ +106 0x00038d7eu, /* 20 */ │ │ │ │ │ +107 0xa4c68000u, /* 21 */ │ │ │ │ │ +108 0x002386f2u, /* 22 */ │ │ │ │ │ +109 0x6fc10000u, /* 23 */ │ │ │ │ │ +110 0x01634578u, /* 24 */ │ │ │ │ │ +111 0x5d8a0000u, /* 25 */ │ │ │ │ │ +112 0x0de0b6b3u, /* 26 */ │ │ │ │ │ +113 0xa7640000u, /* 27 */ │ │ │ │ │ +114 0x8ac72304u, /* 28 */ │ │ │ │ │ +115 0x89e80000u, /* 29 */ │ │ │ │ │ +116 0x00000005u, /* 30 */ │ │ │ │ │ +117 0x6bc75e2du, /* 31 */ │ │ │ │ │ +118 0x63100000u, /* 32 */ │ │ │ │ │ +119 0x00000036u, /* 33 */ │ │ │ │ │ +120 0x35c9adc5u, /* 34 */ │ │ │ │ │ +121 0xdea00000u, /* 35 */ │ │ │ │ │ +122 0x0000021eu, /* 36 */ │ │ │ │ │ +123 0x19e0c9bau, /* 37 */ │ │ │ │ │ +124 0xb2400000u, /* 38 */ │ │ │ │ │ +125 0x0000152du, /* 39 */ │ │ │ │ │ +126 0x02c7e14au, /* 40 */ │ │ │ │ │ +127 0xf6800000u, /* 41 */ │ │ │ │ │ +128 0x0000d3c2u, /* 42 */ │ │ │ │ │ +129 0x1bceccedu, /* 43 */ │ │ │ │ │ +130 0xa1000000u, /* 44 */ │ │ │ │ │ +131 0x00084595u, /* 45 */ │ │ │ │ │ +132 0x16140148u, /* 46 */ │ │ │ │ │ +133 0x4a000000u, /* 47 */ │ │ │ │ │ +134 0x0052b7d2u, /* 48 */ │ │ │ │ │ +135 0xdcc80cd2u, /* 49 */ │ │ │ │ │ +136 0xe4000000u, /* 50 */ │ │ │ │ │ +137 0x033b2e3cu, /* 51 */ │ │ │ │ │ +138 0x9fd0803cu, /* 52 */ │ │ │ │ │ +139 0xe8000000u, /* 53 */ │ │ │ │ │ +140 0x204fce5eu, /* 54 */ │ │ │ │ │ +141 0x3e250261u, /* 55 */ │ │ │ │ │ +142 0x10000000u, /* 56 */ │ │ │ │ │ +143 0x00000001u, /* 57 */ │ │ │ │ │ +144 0x431e0faeu, /* 58 */ │ │ │ │ │ +145 0x6d7217cau, /* 59 */ │ │ │ │ │ +146 0xa0000000u, /* 60 */ │ │ │ │ │ +147 0x0000000cu, /* 61 */ │ │ │ │ │ +148 0x9f2c9cd0u, /* 62 */ │ │ │ │ │ +149 0x4674edeau, /* 63 */ │ │ │ │ │ +150 0x40000000u, /* 64 */ │ │ │ │ │ +151 0x0000007eu, /* 65 */ │ │ │ │ │ +152 0x37be2022u, /* 66 */ │ │ │ │ │ +153 0xc0914b26u, /* 67 */ │ │ │ │ │ +154 0x80000000u, /* 68 */ │ │ │ │ │ +155 0x000004eeu, /* 69 */ │ │ │ │ │ +156 0x2d6d415bu, /* 70 */ │ │ │ │ │ +157 0x85acef81u, /* 71 */ │ │ │ │ │ +158 0x0000314du, /* 72 */ │ │ │ │ │ +159 0xc6448d93u, /* 73 */ │ │ │ │ │ +160 0x38c15b0au, /* 74 */ │ │ │ │ │ +161 0x0001ed09u, /* 75 */ │ │ │ │ │ +162 0xbead87c0u, /* 76 */ │ │ │ │ │ +163 0x378d8e64u, /* 77 */ │ │ │ │ │ +164 0x00134261u, /* 78 */ │ │ │ │ │ +165 0x72c74d82u, /* 79 */ │ │ │ │ │ +166 0x2b878fe8u, /* 80 */ │ │ │ │ │ +167 0x00c097ceu, /* 81 */ │ │ │ │ │ +168 0x7bc90715u, /* 82 */ │ │ │ │ │ +169 0xb34b9f10u, /* 83 */ │ │ │ │ │ +170 0x0785ee10u, /* 84 */ │ │ │ │ │ +171 0xd5da46d9u, /* 85 */ │ │ │ │ │ +172 0x00f436a0u, /* 86 */ │ │ │ │ │ +173 0x4b3b4ca8u, /* 87 */ │ │ │ │ │ +174 0x5a86c47au, /* 88 */ │ │ │ │ │ +175 0x098a2240u, /* 89 */ │ │ │ │ │ +176 0x00000002u, /* 90 */ │ │ │ │ │ +177 0xf050fe93u, /* 91 */ │ │ │ │ │ +178 0x8943acc4u, /* 92 */ │ │ │ │ │ +179 0x5f655680u, /* 93 */ │ │ │ │ │ +180 0x0000001du, /* 94 */ │ │ │ │ │ +181 0x6329f1c3u, /* 95 */ │ │ │ │ │ +182 0x5ca4bfabu, /* 96 */ │ │ │ │ │ +183 0xb9f56100u, /* 97 */ │ │ │ │ │ +184 0x00000125u, /* 98 */ │ │ │ │ │ +185 0xdfa371a1u, /* 99 */ │ │ │ │ │ +186 0x9e6f7cb5u, /* 100 */ │ │ │ │ │ +187 0x4395ca00u, /* 101 */ │ │ │ │ │ +188 0x00000b7au, /* 102 */ │ │ │ │ │ +189 0xbc627050u, /* 103 */ │ │ │ │ │ +190 0x305adf14u, /* 104 */ │ │ │ │ │ +191 0xa3d9e400u, /* 105 */ │ │ │ │ │ +192 0x000072cbu, /* 106 */ │ │ │ │ │ +193 0x5bd86321u, /* 107 */ │ │ │ │ │ +194 0xe38cb6ceu, /* 108 */ │ │ │ │ │ +195 0x6682e800u, /* 109 */ │ │ │ │ │ +196 0x00047bf1u, /* 110 */ │ │ │ │ │ +197 0x9673df52u, /* 111 */ │ │ │ │ │ +198 0xe37f2410u, /* 112 */ │ │ │ │ │ +199 0x011d1000u, /* 113 */ │ │ │ │ │ +200 0x002cd76fu, /* 114 */ │ │ │ │ │ +201 0xe086b93cu, /* 115 */ │ │ │ │ │ +202 0xe2f768a0u, /* 116 */ │ │ │ │ │ +203 0x0b22a000u, /* 117 */ │ │ │ │ │ +204 0x01c06a5eu, /* 118 */ │ │ │ │ │ +205 0xc5433c60u, /* 119 */ │ │ │ │ │ +206 0xddaa1640u, /* 120 */ │ │ │ │ │ +207 0x6f5a4000u, /* 121 */ │ │ │ │ │ +208 0x118427b3u, /* 122 */ │ │ │ │ │ +209 0xb4a05bc8u, /* 123 */ │ │ │ │ │ +210 0xa8a4de84u, /* 124 */ │ │ │ │ │ +211 0x59868000u, /* 125 */ │ │ │ │ │ +212 0xaf298d05u, /* 126 */ │ │ │ │ │ +213 0x0e4395d6u, /* 127 */ │ │ │ │ │ +214 0x9670b12bu, /* 128 */ │ │ │ │ │ +215 0x7f410000u, /* 129 */ │ │ │ │ │ +216 0x00000006u, /* 130 */ │ │ │ │ │ +217 0xd79f8232u, /* 131 */ │ │ │ │ │ +218 0x8ea3da61u, /* 132 */ │ │ │ │ │ +219 0xe066ebb2u, /* 133 */ │ │ │ │ │ +220 0xf88a0000u, /* 134 */ │ │ │ │ │ +221 0x00000044u, /* 135 */ │ │ │ │ │ +222 0x6c3b15f9u, /* 136 */ │ │ │ │ │ +223 0x926687d2u, /* 137 */ │ │ │ │ │ +224 0xc40534fdu, /* 138 */ │ │ │ │ │ +225 0xb5640000u, /* 139 */ │ │ │ │ │ +226 0x000002acu, /* 140 */ │ │ │ │ │ +227 0x3a4edbbfu, /* 141 */ │ │ │ │ │ +228 0xb8014e3bu, /* 142 */ │ │ │ │ │ +229 0xa83411e9u, /* 143 */ │ │ │ │ │ +230 0x15e80000u, /* 144 */ │ │ │ │ │ +231 0x00001abau, /* 145 */ │ │ │ │ │ +232 0x4714957du, /* 146 */ │ │ │ │ │ +233 0x300d0e54u, /* 147 */ │ │ │ │ │ +234 0x9208b31au, /* 148 */ │ │ │ │ │ +235 0xdb100000u, /* 149 */ │ │ │ │ │ +236 0x00010b46u, /* 150 */ │ │ │ │ │ +237 0xc6cdd6e3u, /* 151 */ │ │ │ │ │ +238 0xe0828f4du, /* 152 */ │ │ │ │ │ +239 0xb456ff0cu, /* 153 */ │ │ │ │ │ +240 0x8ea00000u, /* 154 */ │ │ │ │ │ +241 0x000a70c3u, /* 155 */ │ │ │ │ │ +242 0xc40a64e6u, /* 156 */ │ │ │ │ │ +243 0xc5199909u, /* 157 */ │ │ │ │ │ +244 0x0b65f67du, /* 158 */ │ │ │ │ │ +245 0x92400000u, /* 159 */ │ │ │ │ │ +246 0x006867a5u, /* 160 */ │ │ │ │ │ +247 0xa867f103u, /* 161 */ │ │ │ │ │ +248 0xb2fffa5au, /* 162 */ │ │ │ │ │ +249 0x71fba0e7u, /* 163 */ │ │ │ │ │ +250 0xb6800000u, /* 164 */ │ │ │ │ │ +251 0x04140c78u, /* 165 */ │ │ │ │ │ +252 0x940f6a24u, /* 166 */ │ │ │ │ │ +253 0xfdffc788u, /* 167 */ │ │ │ │ │ +254 0x73d4490du, /* 168 */ │ │ │ │ │ +255 0x21000000u, /* 169 */ │ │ │ │ │ +256 0x28c87cb5u, /* 170 */ │ │ │ │ │ +257 0xc89a2571u, /* 171 */ │ │ │ │ │ +258 0xebfdcb54u, /* 172 */ │ │ │ │ │ +259 0x864ada83u, /* 173 */ │ │ │ │ │ +260 0x4a000000u, /* 174 */ │ │ │ │ │ +261 0x00000001u, /* 175 */ │ │ │ │ │ +262 0x97d4df19u, /* 176 */ │ │ │ │ │ +263 0xd6057673u, /* 177 */ │ │ │ │ │ +264 0x37e9f14du, /* 178 */ │ │ │ │ │ +265 0x3eec8920u, /* 179 */ │ │ │ │ │ +266 0xe4000000u, /* 180 */ │ │ │ │ │ +267 0x0000000fu, /* 181 */ │ │ │ │ │ +268 0xee50b702u, /* 182 */ │ │ │ │ │ +269 0x5c36a080u, /* 183 */ │ │ │ │ │ +270 0x2f236d04u, /* 184 */ │ │ │ │ │ +271 0x753d5b48u, /* 185 */ │ │ │ │ │ +272 0xe8000000u, /* 186 */ │ │ │ │ │ +273 0x0000009fu, /* 187 */ │ │ │ │ │ +274 0x4f272617u, /* 188 */ │ │ │ │ │ +275 0x9a224501u, /* 189 */ │ │ │ │ │ +276 0xd762422cu, /* 190 */ │ │ │ │ │ +277 0x946590d9u, /* 191 */ │ │ │ │ │ +278 0x10000000u, /* 192 */ │ │ │ │ │ +279 0x00000639u, /* 193 */ │ │ │ │ │ +280 0x17877cecu, /* 194 */ │ │ │ │ │ +281 0x0556b212u, /* 195 */ │ │ │ │ │ +282 0x69d695bdu, /* 196 */ │ │ │ │ │ +283 0xcbf7a87au, /* 197 */ │ │ │ │ │ +284 0xa0000000u, /* 198 */ │ │ │ │ │ +285 0x00003e3au, /* 199 */ │ │ │ │ │ +286 0xeb4ae138u, /* 200 */ │ │ │ │ │ +287 0x3562f4b8u, /* 201 */ │ │ │ │ │ +288 0x2261d969u, /* 202 */ │ │ │ │ │ +289 0xf7ac94cau, /* 203 */ │ │ │ │ │ +290 0x40000000u, /* 204 */ │ │ │ │ │ +291 0x00026e4du, /* 205 */ │ │ │ │ │ +292 0x30eccc32u, /* 206 */ │ │ │ │ │ +293 0x15dd8f31u, /* 207 */ │ │ │ │ │ +294 0x57d27e23u, /* 208 */ │ │ │ │ │ +295 0xacbdcfe6u, /* 209 */ │ │ │ │ │ +296 0x80000000u, /* 210 */ │ │ │ │ │ +297 0x00184f03u, /* 211 */ │ │ │ │ │ +298 0xe93ff9f4u, /* 212 */ │ │ │ │ │ +299 0xdaa797edu, /* 213 */ │ │ │ │ │ +300 0x6e38ed64u, /* 214 */ │ │ │ │ │ +301 0xbf6a1f01u, /* 215 */ │ │ │ │ │ +302 0x00f31627u, /* 216 */ │ │ │ │ │ +303 0x1c7fc390u, /* 217 */ │ │ │ │ │ +304 0x8a8bef46u, /* 218 */ │ │ │ │ │ +305 0x4e3945efu, /* 219 */ │ │ │ │ │ +306 0x7a25360au, /* 220 */ │ │ │ │ │ +307 0x097edd87u, /* 221 */ │ │ │ │ │ +308 0x1cfda3a5u, /* 222 */ │ │ │ │ │ +309 0x697758bfu, /* 223 */ │ │ │ │ │ +310 0x0e3cbb5au, /* 224 */ │ │ │ │ │ +311 0xc5741c64u, /* 225 */ │ │ │ │ │ +312 0x5ef4a747u, /* 226 */ │ │ │ │ │ +313 0x21e86476u, /* 227 */ │ │ │ │ │ +314 0x1ea97776u, /* 228 */ │ │ │ │ │ +315 0x8e5f518bu, /* 229 */ │ │ │ │ │ +316 0xb6891be8u, /* 230 */ │ │ │ │ │ +317 0x00000003u, /* 231 */ │ │ │ │ │ +318 0xb58e88c7u, /* 232 */ │ │ │ │ │ +319 0x5313ec9du, /* 233 */ │ │ │ │ │ +320 0x329eaaa1u, /* 234 */ │ │ │ │ │ +321 0x8fb92f75u, /* 235 */ │ │ │ │ │ +322 0x215b1710u, /* 236 */ │ │ │ │ │ +323 0x00000025u, /* 237 */ │ │ │ │ │ +324 0x179157c9u, /* 238 */ │ │ │ │ │ +325 0x3ec73e23u, /* 239 */ │ │ │ │ │ +326 0xfa32aa4fu, /* 240 */ │ │ │ │ │ +327 0x9d3bda93u, /* 241 */ │ │ │ │ │ +328 0x4d8ee6a0u, /* 242 */ │ │ │ │ │ +329 0x00000172u, /* 243 */ │ │ │ │ │ +330 0xebad6ddcu, /* 244 */ │ │ │ │ │ +331 0x73c86d67u, /* 245 */ │ │ │ │ │ +332 0xc5faa71cu, /* 246 */ │ │ │ │ │ +333 0x245689c1u, /* 247 */ │ │ │ │ │ +334 0x07950240u, /* 248 */ │ │ │ │ │ +335 0x00000e7du, /* 249 */ │ │ │ │ │ +336 0x34c64a9cu, /* 250 */ │ │ │ │ │ +337 0x85d4460du, /* 251 */ │ │ │ │ │ +338 0xbbca8719u, /* 252 */ │ │ │ │ │ +339 0x6b61618au, /* 253 */ │ │ │ │ │ +340 0x4bd21680u, /* 254 */ │ │ │ │ │ +341 0x000090e4u, /* 255 */ │ │ │ │ │ +342 0x0fbeea1du, /* 256 */ │ │ │ │ │ +343 0x3a4abc89u, /* 257 */ │ │ │ │ │ +344 0x55e946feu, /* 258 */ │ │ │ │ │ +345 0x31cdcf66u, /* 259 */ │ │ │ │ │ +346 0xf634e100u, /* 260 */ │ │ │ │ │ +347 0x0005a8e8u, /* 261 */ │ │ │ │ │ +348 0x9d752524u, /* 262 */ │ │ │ │ │ +349 0x46eb5d5du, /* 263 */ │ │ │ │ │ +350 0x5b1cc5edu, /* 264 */ │ │ │ │ │ +351 0xf20a1a05u, /* 265 */ │ │ │ │ │ +352 0x9e10ca00u, /* 266 */ │ │ │ │ │ +353 0x00389916u, /* 267 */ │ │ │ │ │ +354 0x2693736au, /* 268 */ │ │ │ │ │ +355 0xc531a5a5u, /* 269 */ │ │ │ │ │ +356 0x8f1fbb4bu, /* 270 */ │ │ │ │ │ +357 0x74650438u, /* 271 */ │ │ │ │ │ +358 0x2ca7e400u, /* 272 */ │ │ │ │ │ +359 0x0235faddu, /* 273 */ │ │ │ │ │ +360 0x81c2822bu, /* 274 */ │ │ │ │ │ +361 0xb3f07877u, /* 275 */ │ │ │ │ │ +362 0x973d50f2u, /* 276 */ │ │ │ │ │ +363 0x8bf22a31u, /* 277 */ │ │ │ │ │ +364 0xbe8ee800u, /* 278 */ │ │ │ │ │ +365 0x161bcca7u, /* 279 */ │ │ │ │ │ +366 0x119915b5u, /* 280 */ │ │ │ │ │ +367 0x0764b4abu, /* 281 */ │ │ │ │ │ +368 0xe8652979u, /* 282 */ │ │ │ │ │ +369 0x7775a5f1u, /* 283 */ │ │ │ │ │ +370 0x71951000u, /* 284 */ │ │ │ │ │ +371 0xdd15fe86u, /* 285 */ │ │ │ │ │ +372 0xaffad912u, /* 286 */ │ │ │ │ │ +373 0x49ef0eb7u, /* 287 */ │ │ │ │ │ +374 0x13f39ebeu, /* 288 */ │ │ │ │ │ +375 0xaa987b6eu, /* 289 */ │ │ │ │ │ +376 0x6fd2a000u, /* 290 */ │ │ │ │ │ +377}; │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -81,15 +81,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    Handle bulk copy. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/checks.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/stream.h>
    │ │ │ │ #include <freetds/utils/string.h>
    │ │ │ │ #include <freetds/replacements.h>
    │ │ │ │
    │ │ │ │ @@ -116,70 +116,70 @@ │ │ │ │ │ │ │ │ typedef struct tds_pbcb TDSPBCB │ │ │ │  Holds clause buffer.
    │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +static void  │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Functions

    static int tds5_bcp_add_fixed_columns (TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset, unsigned char *rowbuffer, int start)
    static int tds5_bcp_add_fixed_columns (TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset, unsigned char *rowbuffer, int start)
     Add fixed size columns to the row.
     
    static int tds5_bcp_add_variable_columns (TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset, TDS_UCHAR *rowbuffer, int start, int *pncols)
    static int tds5_bcp_add_variable_columns (TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset, TDS_UCHAR *rowbuffer, int start, int *pncols)
     Add variable size columns to the row.
     
    │ │ │ │ static TDSRET tds5_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
     
    │ │ │ │ static void tds5_swap_data (const TDSCOLUMN *col, void *p)
     
    static TDSRET tds7_bcp_send_colmetadata (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    static TDSRET tds7_bcp_send_colmetadata (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Send BCP metadata to server.
     
    static TDSRET tds7_build_bulk_insert_stmt (TDSSOCKET *tds, TDSPBCB *clause, TDSCOLUMN *bcpcol, int first)
    static TDSRET tds7_build_bulk_insert_stmt (TDSSOCKET *tds, TDSPBCB *clause, TDSCOLUMN *bcpcol, int first)
     Help to build query to be sent to server.
     
    │ │ │ │ static TDSRET tds7_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, int offset)
     
    TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
    TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
     Tell we finished sending BCP data to server.
     
    TDSRET tds_bcp_fread (TDSSOCKET *tds, TDSICONV *char_conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
    TDSRET tds_bcp_fread (TDSSOCKET *tds, TDSICONV *char_conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
     Read a data file, passing the data through iconv().
     
    TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Initialize BCP information.
     
    │ │ │ │ -static void tds_bcp_row_free (TDSRESULTINFO *result, unsigned char *row)
    tds_bcp_row_free (TDSRESULTINFO *result, unsigned char *row)
     Free row data allocated in the result set.
     
    TDSRET tds_bcp_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
    TDSRET tds_bcp_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
     Send one row of data to server.
     
    TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Start sending BCP data to server.
     
    TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Start bulk copy to server.
     
    static TDSRET tds_bcp_start_insert_stmt (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    static TDSRET tds_bcp_start_insert_stmt (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Prepare the query to be sent to server to request BCP information.
     
    static int tds_file_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
    static int tds_file_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
     Reads a chunk of data from file stream checking for terminator.
     
    TDSRET tds_writetext_continue (TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
    TDSRET tds_writetext_continue (TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
     Send some data in the writetext request started by tds_writetext_start.
     
    TDSRET tds_writetext_end (TDSSOCKET *tds)
    TDSRET tds_writetext_end (TDSSOCKET *tds)
     Finish sending writetext data.
     
    TDSRET tds_writetext_start (TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
    TDSRET tds_writetext_start (TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
     Start writing writetext request.
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    Handle bulk copy.

    │ │ │ │

    Function Documentation

    │ │ │ │ │ │ │ │ @@ -408,15 +408,15 @@ │ │ │ │ ( │ │ │ │ TDSSOCKET *  │ │ │ │ tds, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - TDSPBCB *  │ │ │ │ + TDSPBCB *  │ │ │ │ clause, │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ TDSCOLUMN *  │ │ │ │ bcpcol, │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a1b83c9db016b481aa1fa0352f976d50d_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a1b83c9db016b481aa1fa0352f976d50d_icgraph.dot │ │ │ │┄ Files 96% similar despite different names │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_file_stream_read",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="_bcp_exec_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a3118c7232bc9c3e47f8ba872bb39e967_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a3118c7232bc9c3e47f8ba872bb39e967_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a3118c7232bc9c3e47f8ba872bb39e967_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Help to build query to be sent to server."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#ab4d7e5309152f54613d52c8469a07fd8",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ + Node3 [id="Node000003",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="_bcp_exec_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ Node3 -> Node6 [id="edge4_Node000003_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a4daaa551e54dbd978650e2eef89e09ff_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a4daaa551e54dbd978650e2eef89e09ff_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a4daaa551e54dbd978650e2eef89e09ff_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a4daaa551e54dbd978650e2eef89e09ff_icgraph.dot │ │ │ │┄ Files 97% similar despite different names │ │ │ │ @@ -3,20 +3,20 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Send BCP metadata to server."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_start",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a8208eef2a3974ae1f0cf3c8c8ab011ce",tooltip="Start sending BCP data to server."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ Node2 -> Node6 [id="edge5_Node000002_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ + Node6 [id="Node000006",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ Node6 -> Node3 [id="edge6_Node000006_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 -> Node7 [id="edge7_Node000006_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │┄ Files 99% similar despite different names │ │ │ │ │ --- a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot │ │ │ │ ├── +++ a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot │ │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="tds_bcp_start",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node2 [id="Node000002",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_convert_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node2 -> Node7 [id="edge4_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node2 -> Node8 [id="edge5_Node000002_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -9,12 +9,12 @@ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ + Node5 [id="Node000005",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ Node5 -> Node2 [id="edge5_Node000005_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 -> Node6 [id="edge6_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a86ac92bd8a3c61a413d27150ec9bc202_cgraph.dot │ │ │ │┄ Files 98% similar despite different names │ │ │ │ @@ -3,26 +3,26 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_bcp_fread",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_iconv",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="skip_one_input_sequence",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3380140fc6eb9f2090c430f40e846876",tooltip="Move the input sequence pointer to the next valid position."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_sys_iconv_open",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516",tooltip="Inputs are FreeTDS canonical names, no other."]; │ │ │ │ Node3 -> Node5 [id="edge5_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ + Node6 [id="Node000006",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ Node1 -> Node7 [id="edge7_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ Node7 -> Node8 [id="edge8_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ + Node8 [id="Node000008",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ Node8 -> Node9 [id="edge9_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 [id="Node000009",label="tds_realloc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c",tooltip="Reallocate a pointer and update it if success."]; │ │ │ │ Node1 -> Node10 [id="edge10_Node000001_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ + Node10 [id="Node000010",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_a86ac92bd8a3c61a413d27150ec9bc202_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_a86ac92bd8a3c61a413d27150ec9bc202_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ab4d7e5309152f54613d52c8469a07fd8_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ab4d7e5309152f54613d52c8469a07fd8_cgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ + Node2 [id="Node000002",label="tds7_build_bulk_insert_stmt",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a3118c7232bc9c3e47f8ba872bb39e967",tooltip="Help to build query to be sent to server."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ Node2 -> Node4 [id="edge3_Node000002_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_dstr_len",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga396f139e4f886ac1b224a735138e73dd",tooltip="Returns the length of the string in bytes."]; │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_get_column_declaration",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#ga50d62edeb2a432e2dc668263f3f958ff",tooltip="Return declaration for column (like \"varchar(20)\")."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ab4d7e5309152f54613d52c8469a07fd8_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ab4d7e5309152f54613d52c8469a07fd8_icgraph.dot │ │ │ │┄ Files 97% similar despite different names │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_bcp_start_insert_stmt",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Prepare the query to be sent to server to request BCP information."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │┄ Files 98% similar despite different names │ │ │ │ │ --- a00059_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot │ │ │ │ ├── +++ a00266_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot │ │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="tds_bcp_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize BCP information."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_dstr_dup",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6",tooltip="Duplicate a string from another dynamic string."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_dstr_copyn",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga656718f240d7403f986ae887d84a6ca1",tooltip="Set string to a given buffer of characters."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00059_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00266_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00065.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00272.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -81,15 +81,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    Contains all routines to get replies from server. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/utils/string.h>
    │ │ │ │ #include <freetds/convert.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/checks.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/alloca.h>
    │ │ │ │ #include <freetds/encodings.h>
    │ │ │ │ @@ -105,15 +105,15 @@ │ │ │ │ Classes │ │ │ │ struct  namelist │ │ │ │  Holds list of names. More...
    │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Macros

    #define GET_STRING(dest, len_type)
    #define GET_STRING(dest, len_type)
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -152,15 +152,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -190,15 +190,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -79,60 +79,60 @@ │ │ │ │ │ │ │ │
    │ │ │ │ │ │ │ │

    Handle stream of data. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/stream.h>
    │ │ │ │
    │ │ │ │ Include dependency graph for stream.c:
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │

    │ │ │ │ Functions

    static void adjust_character_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Adjust column size according to client's encoding.
     
     
    static TDSRET tds_get_data_info (TDSSOCKET *tds, TDSCOLUMN *curcol, int is_param)
     Reads data metadata from wire.
     
    int tds_get_token_size (int marker)
     tds_get_token_size() returns the size of a fixed length token used by tds_process_cancel() to determine how to read past a token
     
    TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
    TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
     Finds a dynamic given string id.
     
    static const char * tds_pr_op (int op)
     Returns string representation for a given operation.
     
    static TDSRET tds_process_auth (TDSSOCKET *tds)
     Process authentication token.
     
    static TDSRET tds_process_default_tokens (TDSSOCKET *tds, int marker)
     tds_process_default_tokens() is a catch all function that is called to process tokens not known to other tds_process_* routines
     
    static TDSRET tds_process_dyn_result (TDSSOCKET *tds)
     Process results from dynamic.
     
    static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
    static TDSDYNAMICtds_process_dynamic (TDSSOCKET *tds)
     tds_process_dynamic() finds the element of the dyns array for the id
     
    static TDSRET tds_process_end (TDSSOCKET *tds, int marker, int *flags_parm)
     tds_process_end() processes any of the DONE, DONEPROC, or DONEINPROC tokens.
     
    static TDSRET tds_process_env_chg (TDSSOCKET *tds)
     tds_process_env_chg() when ever certain things change on the server, such as database, character set, language, or block size.
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Functions

    TDSRET tds_convert_stream (TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
    TDSRET tds_convert_stream (TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION direction, TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
     Reads and writes from a stream converting characters.
     
    TDSRET tds_copy_stream (TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
    TDSRET tds_copy_stream (TDSINSTREAM *istream, TDSOUTSTREAM *ostream)
     Reads and writes from a stream to another.
     
    void tds_datain_stream_init (TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
    void tds_datain_stream_init (TDSDATAINSTREAM *stream, TDSSOCKET *tds, size_t wire_size)
     Initialize a data input stream.
     
    │ │ │ │ static int tds_datain_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
     Reads data from network for input stream.
     
    void tds_dataout_stream_init (TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
    void tds_dataout_stream_init (TDSDATAOUTSTREAM *stream, TDSSOCKET *tds)
     Initialize a data output stream.
     
    │ │ │ │ static int tds_dataout_stream_write (TDSOUTSTREAM *stream, size_t len)
     Writes data to network for output stream.
     
    TDSRET tds_dynamic_stream_init (TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
    TDSRET tds_dynamic_stream_init (TDSDYNAMICSTREAM *stream, void **ptr, size_t allocated)
     Initialize a dynamic output stream.
     
    │ │ │ │ static int tds_dynamic_stream_write (TDSOUTSTREAM *stream, size_t len)
     Writes data to a dynamic allocated buffer.
     
    void tds_staticin_stream_init (TDSSTATICINSTREAM *stream, const void *ptr, size_t len)
    void tds_staticin_stream_init (TDSSTATICINSTREAM *stream, const void *ptr, size_t len)
     Initialize an input stream for read from a static allocated buffer.
     
    │ │ │ │ static int tds_staticin_stream_read (TDSINSTREAM *stream, void *ptr, size_t len)
     Reads data from a static allocated buffer.
     
    void tds_staticout_stream_init (TDSSTATICOUTSTREAM *stream, void *ptr, size_t len)
    void tds_staticout_stream_init (TDSSTATICOUTSTREAM *stream, void *ptr, size_t len)
     Initialize an output stream for write into a static allocated buffer.
     
    │ │ │ │ static int tds_staticout_stream_write (TDSOUTSTREAM *stream, size_t len)
     Writes data to a static allocated buffer.
     
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a4f9e40da6941cb9407d0da5bc3030517_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a4f9e40da6941cb9407d0da5bc3030517_cgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,11 +3,11 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize a dynamic output stream."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ + Node2 [id="Node000002",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_realloc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c",tooltip="Reallocate a pointer and update it if success."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a4f9e40da6941cb9407d0da5bc3030517_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a4f9e40da6941cb9407d0da5bc3030517_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize a dynamic output stream."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="_bcp_exec_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a50bc3749988d1c3c441044fc07ab44e4_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a50bc3749988d1c3c441044fc07ab44e4_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_copy_stream",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Reads and writes from a stream to another."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="_bcp_exec_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a9d8eb43a81ff58ab423dce0ce95b9564_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a9d8eb43a81ff58ab423dce0ce95b9564_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot.gz │ │ │ │┄ Files 86% similar despite different names │ │ │ │ │ --- a00077_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot │ │ │ │ ├── +++ a00275_a9d8eb43a81ff58ab423dce0ce95b9564_icgraph.dot │ │ │ │ │ @@ -7,27 +7,27 @@ │ │ │ │ │ rankdir="RL"; │ │ │ │ │ Node1 [id="Node000001",label="tds_convert_stream",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node2 [id="Node000002",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_get_char_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node4 [id="Node000004",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ + Node4 [id="Node000004",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node6 [id="Node000006",label="tds_alloc_get_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gafb26aba5d935e40b87b95e21a5185848",tooltip="Reads a string from wire in a new allocated buffer."]; │ │ │ │ │ Node5 -> Node48 [id="edge6_Node000005_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node48 [id="Node000048",label="tds_dstr_get",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ │ Node5 -> Node60 [id="edge7_Node000005_Node000060",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node60 [id="Node000060",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ + Node60 [id="Node000060",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ │ Node5 -> Node61 [id="edge8_Node000005_Node000061",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node61 [id="Node000061",label="tds_process_dynamic",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"]; │ │ │ │ │ Node1 -> Node62 [id="edge9_Node000001_Node000062",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node62 [id="Node000062",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ + Node62 [id="Node000062",label="tds_bcp_fread",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a86ac92bd8a3c61a413d27150ec9bc202",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ │ Node62 -> Node63 [id="edge10_Node000062_Node000063",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node63 [id="Node000063",label="_bcp_read_hostfile",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga1b57d952a9d72f375c3296124affa908",tooltip=" "]; │ │ │ │ │ Node63 -> Node33 [id="edge11_Node000063_Node000033",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node33 [id="Node000033",label="_bcp_exec_in",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ │ Node1 -> Node64 [id="edge12_Node000001_Node000064",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node64 [id="Node000064",label="tds_put_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga1fcaf8d488cc1390f106ce3ad0bf37b4",tooltip="Output a string to wire automatic translate string to unicode if needed."]; │ │ │ │ │ Node64 -> Node65 [id="edge13_Node000064_Node000065",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a9fe0d3799d2e3bde49b614c9d0c3785d_cgraph.dot │ │ │ │┄ Files 98% similar despite different names │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_staticout_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ + Node2 [id="Node000002",label="tds_staticout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a1d92ebe06f18378ac17ccfd20db05126",tooltip="Writes data to a static allocated buffer."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_a9fe0d3799d2e3bde49b614c9d0c3785d_icgraph.dot │ │ │ │┄ Files 98% similar despite different names │ │ │ │ @@ -7,19 +7,19 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_staticout_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize an output stream for write into a static allocated buffer."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_get_char_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ + Node4 [id="Node000004",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_alloc_get_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gafb26aba5d935e40b87b95e21a5185848",tooltip="Reads a string from wire in a new allocated buffer."]; │ │ │ │ Node5 -> Node48 [id="edge6_Node000005_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node48 [id="Node000048",label="tds_dstr_get",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ Node5 -> Node60 [id="edge7_Node000005_Node000060",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node60 [id="Node000060",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ + Node60 [id="Node000060",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ Node5 -> Node61 [id="edge8_Node000005_Node000061",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node61 [id="Node000061",label="tds_process_dynamic",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_aa038a9125979f8f0915dbd53cbf27e5a_cgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_dataout_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize a data output stream."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ + Node2 [id="Node000002",label="tds_dataout_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#ae38a590ee08cf398e7adef536ac94538",tooltip="Writes data to network for output stream."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_aa038a9125979f8f0915dbd53cbf27e5a_icgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_aa038a9125979f8f0915dbd53cbf27e5a_icgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_aa9e1e45f0305622dd6aed9f8fe158581_cgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_staticin_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize an input stream for read from a static allocated buffer."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ + Node2 [id="Node000002",label="tds_staticin_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a76b02f1fa5b79dc7e1ef2651a9afe3f7",tooltip="Reads data from a static allocated buffer."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_aa9e1e45f0305622dd6aed9f8fe158581_icgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_aa9e1e45f0305622dd6aed9f8fe158581_icgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_abc3a77c8aa28842e7f28583cbabc1415_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_abc3a77c8aa28842e7f28583cbabc1415_cgraph.dot │ │ │ │┄ Files 96% similar despite different names │ │ │ │ @@ -3,13 +3,13 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_datain_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize a data input stream."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ + Node2 [id="Node000002",label="tds_datain_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a04b537d889f7d4c9b9701eb81baf7efd",tooltip="Reads data from network for input stream."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_get_n",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#gae777dd57e8d1bb40349d7d7d8434fddf",tooltip="Get N bytes from the buffer and return them in the already allocated space given to us."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="tds_read_packet",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga410619783bdf2bb60b0f27a5578e0e07",tooltip="Read in one 'packet' from the server."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00077_abc3a77c8aa28842e7f28583cbabc1415_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00275_abc3a77c8aa28842e7f28583cbabc1415_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -7,20 +7,20 @@ │ │ │ │ rankdir="RL"; │ │ │ │ Node1 [id="Node000001",label="tds_datain_stream_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize a data input stream."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="read_and_convert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga676c4dee6522815b16fdc8e448e43590",tooltip="For UTF-8 and similar, tds_iconv() may encounter a partial sequence when the chunk boundary is not al..."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_get_char_data",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga8d214089b6e97fc0da5e0be09f216d73",tooltip="Fetch character data the wire."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ + Node4 [id="Node000004",label="tds_generic_get",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#abac4d689e0e31e80587f89247c6395a4",tooltip="Read a data from wire."]; │ │ │ │ Node2 -> Node5 [id="edge4_Node000002_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_get_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00543.html#ga90f080e6e9448feac15dee1370d66802",tooltip="Fetch a string from the wire."]; │ │ │ │ Node5 -> Node6 [id="edge5_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="tds_alloc_get_string",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#gafb26aba5d935e40b87b95e21a5185848",tooltip="Reads a string from wire in a new allocated buffer."]; │ │ │ │ Node5 -> Node48 [id="edge6_Node000005_Node000048",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node48 [id="Node000048",label="tds_dstr_get",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00543.html#ga017c427e9599c031be5c555cb32abe2c",tooltip="Reads a string from wire and put in a DSTR."]; │ │ │ │ Node5 -> Node60 [id="edge7_Node000005_Node000060",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node60 [id="Node000060",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ + Node60 [id="Node000060",label="tds_generic_put",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a84e17808683ba2dd956e811a42e23176",tooltip="Write data to wire."]; │ │ │ │ Node5 -> Node61 [id="edge8_Node000005_Node000061",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node61 [id="Node000061",label="tds_process_dynamic",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00544.html#ga5cfc0340d8d717e67f60037e029b2142",tooltip="tds_process_dynamic() finds the element of the dyns array for the id"]; │ │ │ │ Node1 -> Node4 [id="edge9_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00113_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00194_source.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -116,15 +116,15 @@ │ │ │ │
    33/*
    │ │ │ │
    34 * POSIX says fd_set type may be defined in either sys/select.h or sys/time.h.
    │ │ │ │
    35 */
    │ │ │ │
    36#if HAVE_SYS_TIME_H
    │ │ │ │
    37#include <sys/time.h>
    │ │ │ │
    38#endif
    │ │ │ │
    39
    │ │ │ │ -
    40#include <freetds/tds.h>
    │ │ │ │ +
    40#include <freetds/tds.h>
    │ │ │ │
    41#include <freetds/utils/dlist.h>
    │ │ │ │
    42
    │ │ │ │
    43/* defines */
    │ │ │ │
    44#define PGSIZ 2048
    │ │ │ │
    45#define BLOCKSIZ 512
    │ │ │ │
    46#define MAX_POOL_USERS 1024
    │ │ │ │
    47
    │ │ │ │ @@ -256,15 +256,15 @@ │ │ │ │
    164bool pool_write_data(TDS_POOL_SOCKET *from, TDS_POOL_SOCKET *to);
    │ │ │ │
    165
    │ │ │ │
    166/* config.c */
    │ │ │ │
    167bool pool_read_conf_files(const char *path, const char *poolname, TDS_POOL * pool, char **err);
    │ │ │ │
    168
    │ │ │ │
    169
    │ │ │ │
    170#endif
    │ │ │ │ -
    Main include file for libtds.
    │ │ │ │ +
    Main include file for libtds.
    │ │ │ │
    Definition pool.h:64
    │ │ │ │
    Definition pool.h:70
    │ │ │ │
    Definition pool.h:77
    │ │ │ │
    Definition pool.h:86
    │ │ │ │
    Definition pool.h:105
    │ │ │ │
    dlist_users waiters
    users in wait state
    Definition pool.h:128
    │ │ │ │
    Definition tds.h:517
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00167.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00155.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -85,15 +85,15 @@ │ │ │ │

    Main implementation file for db-lib. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <stdarg.h>
    │ │ │ │ #include <freetds/time.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ #include <stdio.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/thread.h>
    │ │ │ │ #include <freetds/convert.h>
    │ │ │ │ #include <freetds/utils/string.h>
    │ │ │ │ #include <freetds/data.h>
    │ │ │ │ #include <freetds/replacements.h>
    │ │ │ │ #include <sybfront.h>
    │ │ │ │ #include <sybdb.h>
    │ │ │ │ @@ -113,15 +113,15 @@ │ │ │ │ struct  dblib_context │ │ │ │   │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │

    │ │ │ │ Typedefs

    typedef struct _dblib_error_message DBLIB_ERROR_MESSAGE
     
    typedef struct dblib_context DBLIBCONTEXT
    typedef struct dblib_context DBLIBCONTEXT
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -210,15 +210,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -287,15 +287,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -326,27 +326,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +static int  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +static void  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -625,15 +625,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Functions

    static BYTE * _dbcoldata (TDSCOLUMN *colinfo)
     Return data from a column.
     
     
    RETCODE dbcmd (DBPROCESS *dbproc, const char cmdstring[])
     Append SQL to the command buffer.
     
    RETCODE dbcmdrow (DBPROCESS *dbproc)
     See if the current command can return rows.
     
    RETCODE dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol)
    RETCODE dbcolinfo (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol)
     Get a bunch of column attributes with a single call (Microsoft-compatibility feature).
     
    DBINT dbcollen (DBPROCESS *dbproc, int column)
     Get size of a regular result column.
     
    char * dbcolname (DBPROCESS *dbproc, int column)
     Return name of a regular result column.
     
    char * dbgetchar (DBPROCESS *dbproc, int pos)
     Get address of a position in the command buffer.
     
    int dbgetmaxprocs (void)
     get maximum simultaneous connections db-lib will open to the server.
     
    RETCODE dbgetnull (DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
    RETCODE dbgetnull (DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
     
    int dbgetpacket (DBPROCESS *dbproc)
     Get TDS packet size for the connection.
     
    RETCODE dbgetrow (DBPROCESS *dbproc, DBINT row)
     Read a row from the row buffer.
     
    DBBOOL dbisopt (DBPROCESS *dbproc, int option, const char param[])
     Get value of an option.
     
    DBINT dblastrow (DBPROCESS *dbproc)
     Get number of the last row in the row buffer.
     
    │ │ │ │ -static int dblib_add_connection (DBLIBCONTEXT *ctx, TDSSOCKET *tds)
    dblib_add_connection (DBLIBCONTEXT *ctx, TDSSOCKET *tds)
     
    │ │ │ │ static TDS_SERVER_TYPE dblib_bound_type (int bindtype)
     
    │ │ │ │ static int dblib_coltype (TDSCOLUMN *colinfo)
     
    │ │ │ │ static RETCODE dblib_datecrack (DBPROCESS *dbproc, BOOL nano_precision, DBDATEREC *output, int type, const void *data)
     
    │ │ │ │ -static void dblib_del_connection (DBLIBCONTEXT *ctx, TDSSOCKET *tds)
    dblib_del_connection (DBLIBCONTEXT *ctx, TDSSOCKET *tds)
     
    │ │ │ │ static TDSCONTEXTdblib_get_tds_ctx (void)
     
    │ │ │ │ static void dblib_release_tds_ctx (int count)
     
     
    │ │ │ │ static const char * prresult_type (int result_type)
     
    │ │ │ │ static const char * prretcode (int retcode)
     
    static const char * tds_prdatatype (int datatype_token)
    static const char * tds_prdatatype (int datatype_token)
     Returns type in string.
     
    DBPROCESStdsdbopen (LOGINREC *login, const char *server, int msdblib)
     Form a connection with the server.
     
    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +static DBLIBCONTEXT  │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -713,15 +713,15 @@ │ │ │ │ │ │ │ │

    ◆ DBLIBCONTEXT

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │

    │ │ │ │ @@ -650,17 +650,17 @@ │ │ │ │

    │ │ │ │ static tds_mutex dblib_mutex = TDS_MUTEX_INITIALIZER
     
    │ │ │ │ static NULLREP default_null_representations [MAXBINDTYPES]
     
    │ │ │ │ -static DBLIBCONTEXT g_dblib_ctx
    g_dblib_ctx
     
    static int g_dblib_version
    static int g_dblib_version
     
    │ │ │ │ static const DBBIGINT null_BIGINT = 0
     
    │ │ │ │ static const DBBIT null_BIT = 0
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    typedef struct dblib_context DBLIBCONTEXTtypedef struct dblib_context DBLIBCONTEXT
    │ │ │ │
    │ │ │ │

    \dblib_internal

    Remarks
    A db-lib connection has an implicit TDS context.
    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ @@ -828,15 +828,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ ) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │ -

    dbbind() says: "Note that if varlen is 0, no padding takes place" dbgetnull() will not pad varaddr unless varlen is positive.
    │ │ │ │ +

    dbbind() says: "Note that if varlen is 0, no padding takes place" dbgetnull() will not pad varaddr unless varlen is positive.
    │ │ │ │ Vartype Program Type Padding Terminator


    │ │ │ │

    CHARBIND DBCHAR blanks none STRINGBIND DBCHAR blanks \0 NTBSTRINGBIND DBCHAR none \0 VARYCHARBIND DBVARYCHAR none none BOUNDARYBIND DBCHAR none \0 SENSITIVITYBIND DBCHAR none \0

    │ │ │ │
    │ │ │ │ Here is the call graph for this function:
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00167_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00155_a9b73fd1afa2c3ccfca481635212d2e43_cgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00167_ac7a199aaeb82935f6d1dda2be551a089_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00155_ac7a199aaeb82935f6d1dda2be551a089_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -19,9 +19,9 @@ │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node7 [id="Node000007",label="dbwillconvert",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gaaf8349999c16b3c36caf5947747a2915",tooltip="Test whether or not a datatype can be converted to another datatype."]; │ │ │ │ Node7 -> Node8 [id="edge7_Node000007_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node8 [id="Node000008",label="dbaltbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#gafefd17e15b22adda84366c817178dd7d",tooltip="Bind a compute column to a program variable."]; │ │ │ │ Node7 -> Node9 [id="edge8_Node000007_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 [id="Node000009",label="dbbind",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga873bc0f4663165e711655ade1dfae795",tooltip="Tie a host variable to a resultset column."]; │ │ │ │ Node9 -> Node10 [id="edge9_Node000009_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00173.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ + Node10 [id="Node000010",label="dbpivot",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00152.html#af8ada101cd189eff87b3533cbeaaa23b",tooltip="Pivot the rows, creating a new resultset."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00167_aea6a865806d454280126de940478c214_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00155_aea6a865806d454280126de940478c214_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00167_aea6a865806d454280126de940478c214_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00155_aea6a865806d454280126de940478c214_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00170_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00161_source.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -367,15 +367,15 @@ │ │ │ │
    335 }
    │ │ │ │
    336 }
    │ │ │ │
    337 if (!curcol->column_varaddr)
    │ │ │ │
    338 continue;
    │ │ │ │
    339
    │ │ │ │
    340 if (srclen <= 0) {
    │ │ │ │
    341 if (srclen == 0 || !curcol->column_nullbind)
    │ │ │ │ -
    342 dbgetnull(dbproc, curcol->column_bindtype, curcol->column_bindlen,
    │ │ │ │ +
    342 dbgetnull(dbproc, curcol->column_bindtype, curcol->column_bindlen,
    │ │ │ │
    343 (BYTE *) curcol->column_varaddr);
    │ │ │ │
    344 continue;
    │ │ │ │
    345 }
    │ │ │ │
    346
    │ │ │ │
    347 srctype = tds_get_conversion_type(curcol->column_type, curcol->column_size);
    │ │ │ │
    348
    │ │ │ │
    349 if (row->row_data)
    │ │ │ │ @@ -558,15 +558,15 @@ │ │ │ │ │ │ │ │
    550 }
    │ │ │ │
    551 }
    │ │ │ │
    552
    │ │ │ │
    553 return SUCCEED;
    │ │ │ │
    554}
    │ │ │ │
    555
    │ │ │ │ -
    RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
    Definition dblib.c:529
    │ │ │ │ +
    RETCODE dbgetnull(DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)
    Definition dblib.c:529
    │ │ │ │
    TDSRET tds_alloc_row(TDSRESULTINFO *res_info)
    Allocate space for row store return NULL on out of memory.
    Definition mem.c:524
    │ │ │ │
    Definition buffering.h:1
    │ │ │ │
    DBINT row
    row number
    Definition buffering.h:7
    │ │ │ │
    unsigned char * row_data
    row data, NULL for resinfo->current_row
    Definition buffering.h:5
    │ │ │ │
    TDS_INT * sizes
    save old sizes
    Definition buffering.h:9
    │ │ │ │
    TDSRESULTINFO * resinfo
    pointer to result informations
    Definition buffering.h:3
    │ │ │ │
    Definition dblib.h:52
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00200_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00077_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00209_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00095_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00212_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00083_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00215_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00071_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00224_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00068_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00248_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00242_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00326_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00014_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00329_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00050_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00374_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00353_source.html │ │ │ │┄ Files 80% similar despite different names │ │ │ │ @@ -1,15 +1,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -FreeTDS API: include/freetds/iconv.h Source File │ │ │ │ +FreeTDS API: include/freetds/tls.h Source File │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -74,19 +74,19 @@ │ │ │ │ │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ -
    iconv.h
    │ │ │ │ +
    tls.h
    │ │ │ │
    │ │ │ │
    │ │ │ │
    1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
    │ │ │ │ -
    2 * Copyright (C) 2002, 2003, 2004 Brian Bruns
    │ │ │ │ +
    2 * Copyright (C) 2015 Frediano Ziglio
    │ │ │ │
    3 *
    │ │ │ │
    4 * This library is free software; you can redistribute it and/or
    │ │ │ │
    5 * modify it under the terms of the GNU Library General Public
    │ │ │ │
    6 * License as published by the Free Software Foundation; either
    │ │ │ │
    7 * version 2 of the License, or (at your option) any later version.
    │ │ │ │
    8 *
    │ │ │ │
    9 * This library is distributed in the hope that it will be useful,
    │ │ │ │ @@ -96,141 +96,120 @@ │ │ │ │
    13 *
    │ │ │ │
    14 * You should have received a copy of the GNU Library General Public
    │ │ │ │
    15 * License along with this library; if not, write to the
    │ │ │ │
    16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    │ │ │ │
    17 * Boston, MA 02111-1307, USA.
    │ │ │ │
    18 */
    │ │ │ │
    19
    │ │ │ │ -
    20#ifndef _tds_iconv_h_
    │ │ │ │ -
    21#define _tds_iconv_h_
    │ │ │ │ +
    20#ifndef _freetds_tls_h_
    │ │ │ │ +
    21#define _freetds_tls_h_
    │ │ │ │
    22
    │ │ │ │ -
    23#if HAVE_ICONV
    │ │ │ │ -
    24#include <iconv.h>
    │ │ │ │ -
    25#else
    │ │ │ │ -
    26/* Define iconv_t for src/replacements/iconv.c. */
    │ │ │ │ -
    27#undef iconv_t
    │ │ │ │ -
    28typedef void *iconv_t;
    │ │ │ │ -
    29#endif /* HAVE_ICONV */
    │ │ │ │ -
    30
    │ │ │ │ -
    31#if HAVE_ERRNO_H
    │ │ │ │ -
    32#include <errno.h>
    │ │ │ │ -
    33#endif
    │ │ │ │ -
    34
    │ │ │ │ -
    35#if HAVE_WCHAR_H
    │ │ │ │ -
    36#include <wchar.h>
    │ │ │ │ -
    37#endif
    │ │ │ │ -
    38
    │ │ │ │ -
    39/* The following EILSEQ advice is borrowed verbatim from GNU iconv. */
    │ │ │ │ -
    40/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS,
    │ │ │ │ -
    41 have EILSEQ in a different header. On these systems, define EILSEQ
    │ │ │ │ -
    42 ourselves. */
    │ │ │ │ -
    43#ifndef EILSEQ
    │ │ │ │ -
    44# define EILSEQ ENOENT
    │ │ │ │ -
    45#endif
    │ │ │ │ -
    46
    │ │ │ │ -
    47#if HAVE_STDLIB_H
    │ │ │ │ -
    48#include <stdlib.h>
    │ │ │ │ -
    49#endif /* HAVE_STDLIB_H */
    │ │ │ │ -
    50
    │ │ │ │ -
    51#include <freetds/pushvis.h>
    │ │ │ │ -
    52
    │ │ │ │ -
    53#ifdef __cplusplus
    │ │ │ │ -
    54extern "C"
    │ │ │ │ -
    55{
    │ │ │ │ -
    56#endif
    │ │ │ │ -
    57
    │ │ │ │ -
    58#if ! HAVE_ICONV
    │ │ │ │ -
    59iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode);
    │ │ │ │ -
    60size_t tds_sys_iconv(iconv_t cd, const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
    │ │ │ │ -
    61int tds_sys_iconv_close(iconv_t cd);
    │ │ │ │ -
    62#else
    │ │ │ │ -
    63#define tds_sys_iconv_open iconv_open
    │ │ │ │ -
    64#define tds_sys_iconv iconv
    │ │ │ │ -
    65#define tds_sys_iconv_close iconv_close
    │ │ │ │ -
    66#endif /* !HAVE_ICONV */
    │ │ │ │ -
    67
    │ │ │ │ +
    23#ifndef _tds_h_
    │ │ │ │ +
    24#error tds.h must be included before tls.h
    │ │ │ │ +
    25#endif
    │ │ │ │ +
    26
    │ │ │ │ +
    27#ifdef HAVE_GNUTLS
    │ │ │ │ +
    28# if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX)
    │ │ │ │ +
    29# include <freetds/thread.h>
    │ │ │ │ +
    30# ifndef GNUTLS_USE_NETTLE
    │ │ │ │ +
    31# include <gcrypt.h>
    │ │ │ │ +
    32# endif
    │ │ │ │ +
    33# endif
    │ │ │ │ +
    34# include <gnutls/gnutls.h>
    │ │ │ │ +
    35# include <gnutls/x509.h>
    │ │ │ │ +
    36#elif defined(HAVE_OPENSSL)
    │ │ │ │ +
    37# include <openssl/ssl.h>
    │ │ │ │ +
    38# include <openssl/x509v3.h>
    │ │ │ │ +
    39# include <openssl/err.h>
    │ │ │ │ +
    40#endif
    │ │ │ │ +
    41
    │ │ │ │ +
    42#include <freetds/pushvis.h>
    │ │ │ │ +
    43
    │ │ │ │ +
    44#if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL)
    │ │ │ │ +
    45TDSRET tds_ssl_init(TDSSOCKET *tds);
    │ │ │ │ +
    46void tds_ssl_deinit(TDSCONNECTION *conn);
    │ │ │ │ +
    47
    │ │ │ │ +
    48# ifdef HAVE_GNUTLS
    │ │ │ │ +
    49
    │ │ │ │ +
    50static inline int
    │ │ │ │ +
    51tds_ssl_pending(TDSCONNECTION *conn)
    │ │ │ │ +
    52{
    │ │ │ │ +
    53 return gnutls_record_check_pending((gnutls_session_t) conn->tls_session);
    │ │ │ │ +
    54}
    │ │ │ │ +
    55
    │ │ │ │ +
    56static inline int
    │ │ │ │ +
    57tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
    │ │ │ │ +
    58{
    │ │ │ │ +
    59 return gnutls_record_recv((gnutls_session_t) conn->tls_session, buf, buflen);
    │ │ │ │ +
    60}
    │ │ │ │ +
    61
    │ │ │ │ +
    62static inline int
    │ │ │ │ +
    63tds_ssl_write(TDSCONNECTION *conn, const unsigned char *buf, int buflen)
    │ │ │ │ +
    64{
    │ │ │ │ +
    65 return gnutls_record_send((gnutls_session_t) conn->tls_session, buf, buflen);
    │ │ │ │ +
    66}
    │ │ │ │ +
    67# else
    │ │ │ │
    68
    │ │ │ │ -
    69typedef enum
    │ │ │ │ -
    70{ to_server, to_client } TDS_ICONV_DIRECTION;
    │ │ │ │ -
    71
    │ │ │ │ -
    │ │ │ │ - │ │ │ │ -
    73{
    │ │ │ │ -
    74 const char *alias;
    │ │ │ │ -
    75 int canonic;
    │ │ │ │ - │ │ │ │ -
    │ │ │ │ -
    77
    │ │ │ │ -
    │ │ │ │ - │ │ │ │ -
    79 unsigned int e2big:1;
    │ │ │ │ -
    80 unsigned int eilseq:1;
    │ │ │ │ -
    81 unsigned int einval:1;
    │ │ │ │ - │ │ │ │ -
    │ │ │ │ -
    83
    │ │ │ │ -
    │ │ │ │ -
    84typedef struct tdsiconvdir
    │ │ │ │ -
    85{
    │ │ │ │ -
    86 TDS_ENCODING charset;
    │ │ │ │ -
    87
    │ │ │ │ -
    88 iconv_t cd;
    │ │ │ │ - │ │ │ │ -
    │ │ │ │ -
    90
    │ │ │ │ -
    │ │ │ │ - │ │ │ │ -
    92{
    │ │ │ │ -
    93 struct tdsiconvdir to, from;
    │ │ │ │ -
    94
    │ │ │ │ -
    95#define TDS_ENCODING_MEMCPY 1
    │ │ │ │ -
    96 unsigned int flags;
    │ │ │ │ -
    97
    │ │ │ │ -
    98 /*
    │ │ │ │ -
    99 * Suppress error messages that would otherwise be emitted by tds_iconv().
    │ │ │ │ -
    100 * Functions that process large buffers ask tds_iconv to convert it in "chunks".
    │ │ │ │ -
    101 * We don't want to emit spurious EILSEQ errors or multiple errors for one
    │ │ │ │ -
    102 * buffer. tds_iconv() checks this structure before emiting a message, and
    │ │ │ │ -
    103 * adds to it whenever it emits one. Callers that handle a particular situation themselves
    │ │ │ │ -
    104 * can prepopulate it.
    │ │ │ │ -
    105 */
    │ │ │ │ - │ │ │ │ -
    107
    │ │ │ │ -
    108};
    │ │ │ │ -
    │ │ │ │ +
    69/* compatibility for LibreSSL 2.7 */
    │ │ │ │ +
    70#ifdef LIBRESSL_VERSION_NUMBER
    │ │ │ │ +
    71#define TLS_ST_OK SSL_ST_OK
    │ │ │ │ +
    72#endif
    │ │ │ │ +
    73
    │ │ │ │ +
    74static inline int
    │ │ │ │ +
    75tds_ssl_pending(TDSCONNECTION *conn)
    │ │ │ │ +
    76{
    │ │ │ │ +
    77 return SSL_pending((SSL *) conn->tls_session);
    │ │ │ │ +
    78}
    │ │ │ │ +
    79
    │ │ │ │ +
    80static inline int
    │ │ │ │ +
    81tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
    │ │ │ │ +
    82{
    │ │ │ │ +
    83 return SSL_read((SSL *) conn->tls_session, buf, buflen);
    │ │ │ │ +
    84}
    │ │ │ │ +
    85
    │ │ │ │ +
    86static inline int
    │ │ │ │ +
    87tds_ssl_write(TDSCONNECTION *conn, const unsigned char *buf, int buflen)
    │ │ │ │ +
    88{
    │ │ │ │ +
    89 return SSL_write((SSL *) conn->tls_session, buf, buflen);
    │ │ │ │ +
    90}
    │ │ │ │ +
    91# endif
    │ │ │ │ +
    92#else
    │ │ │ │ +
    93static inline TDSRET
    │ │ │ │ +
    94tds_ssl_init(TDSSOCKET *tds)
    │ │ │ │ +
    95{
    │ │ │ │ +
    96 return TDS_FAIL;
    │ │ │ │ +
    97}
    │ │ │ │ +
    98
    │ │ │ │ +
    99static inline void
    │ │ │ │ +
    100tds_ssl_deinit(TDSCONNECTION *conn)
    │ │ │ │ +
    101{
    │ │ │ │ +
    102}
    │ │ │ │ +
    103
    │ │ │ │ +
    104static inline int
    │ │ │ │ +
    105tds_ssl_pending(TDSCONNECTION *conn)
    │ │ │ │ +
    106{
    │ │ │ │ +
    107 return 0;
    │ │ │ │ +
    108}
    │ │ │ │
    109
    │ │ │ │ -
    110/* We use ICONV_CONST for tds_iconv(), even if we don't have iconv() */
    │ │ │ │ -
    111#ifndef ICONV_CONST
    │ │ │ │ -
    112# define ICONV_CONST const
    │ │ │ │ -
    113#endif
    │ │ │ │ -
    114
    │ │ │ │ -
    115size_t tds_iconv(TDSSOCKET * tds, TDSICONV * char_conv, TDS_ICONV_DIRECTION io,
    │ │ │ │ -
    116 const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * outbytesleft);
    │ │ │ │ -
    117int tds_canonical_charset(const char *charset_name);
    │ │ │ │ -
    118const char *tds_canonical_charset_name(const char *charset_name);
    │ │ │ │ -
    119TDSICONV *tds_iconv_get(TDSCONNECTION * conn, const char *client_charset, const char *server_charset);
    │ │ │ │ -
    120TDSICONV *tds_iconv_get_info(TDSCONNECTION * conn, int canonic_client, int canonic_server);
    │ │ │ │ -
    121
    │ │ │ │ -
    122#ifdef __cplusplus
    │ │ │ │ -
    123}
    │ │ │ │ -
    124#endif
    │ │ │ │ -
    125
    │ │ │ │ -
    126#include <freetds/popvis.h>
    │ │ │ │ -
    127
    │ │ │ │ -
    128#endif /* _tds_iconv_h_ */
    │ │ │ │ -
    TDSICONV * tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int canonic_server)
    Get a iconv info structure, allocate and initialize if needed.
    Definition iconv.c:758
    │ │ │ │ -
    const char * tds_canonical_charset_name(const char *charset_name)
    Determine canonical iconv character set name.
    Definition iconv.c:982
    │ │ │ │ -
    size_t tds_iconv(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
    Wrapper around iconv(3).
    Definition iconv.c:592
    │ │ │ │ -
    iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode)
    Inputs are FreeTDS canonical names, no other.
    Definition iconv.c:344
    │ │ │ │ -
    int tds_canonical_charset(const char *charset_name)
    Determine canonical iconv character set.
    Definition iconv.c:970
    │ │ │ │ -
    Definition iconv.h:73
    │ │ │ │ -
    Definition iconv.h:78
    │ │ │ │ -
    Definition iconv.h:85
    │ │ │ │ -
    Definition iconv.h:92
    │ │ │ │ -
    Information relevant to libiconv.
    Definition tds.h:618
    │ │ │ │ +
    110static inline int
    │ │ │ │ +
    111tds_ssl_read(TDSCONNECTION *conn, unsigned char *buf, int buflen)
    │ │ │ │ +
    112{
    │ │ │ │ +
    113 return -1;
    │ │ │ │ +
    114}
    │ │ │ │ +
    115
    │ │ │ │ +
    116static inline int
    │ │ │ │ +
    117tds_ssl_write(TDSCONNECTION *conn, const unsigned char *buf, int buflen)
    │ │ │ │ +
    118{
    │ │ │ │ +
    119 return -1;
    │ │ │ │ +
    120}
    │ │ │ │ +
    121#endif
    │ │ │ │ +
    122
    │ │ │ │ +
    123#include <freetds/popvis.h>
    │ │ │ │ +
    124
    │ │ │ │ +
    125#endif /* _freetds_tls_h_ */
    │ │ │ │
    Definition tds.h:1091
    │ │ │ │
    Information for a server connection.
    Definition tds.h:1163
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1,16 +1,16 @@ │ │ │ │ │ FreeTDS API │ │ │ │ │ Loading... │ │ │ │ │ Searching... │ │ │ │ │ No Matches │ │ │ │ │ * _i_n_c_l_u_d_e │ │ │ │ │ * _f_r_e_e_t_d_s │ │ │ │ │ -iconv.h │ │ │ │ │ +tls.h │ │ │ │ │ 1/* FreeTDS - Library of routines accessing Sybase and Microsoft databases │ │ │ │ │ -2 * Copyright (C) 2002, 2003, 2004 Brian Bruns │ │ │ │ │ +2 * Copyright (C) 2015 Frediano Ziglio │ │ │ │ │ 3 * │ │ │ │ │ 4 * This library is free software; you can redistribute it and/or │ │ │ │ │ 5 * modify it under the terms of the GNU Library General Public │ │ │ │ │ 6 * License as published by the Free Software Foundation; either │ │ │ │ │ 7 * version 2 of the License, or (at your option) any later version. │ │ │ │ │ 8 * │ │ │ │ │ 9 * This library is distributed in the hope that it will be useful, │ │ │ │ │ @@ -20,163 +20,122 @@ │ │ │ │ │ 13 * │ │ │ │ │ 14 * You should have received a copy of the GNU Library General Public │ │ │ │ │ 15 * License along with this library; if not, write to the │ │ │ │ │ 16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, │ │ │ │ │ 17 * Boston, MA 02111-1307, USA. │ │ │ │ │ 18 */ │ │ │ │ │ 19 │ │ │ │ │ -20#ifndef _tds_iconv_h_ │ │ │ │ │ -21#define _tds_iconv_h_ │ │ │ │ │ +20#ifndef _freetds_tls_h_ │ │ │ │ │ +21#define _freetds_tls_h_ │ │ │ │ │ 22 │ │ │ │ │ -23#if HAVE_ICONV │ │ │ │ │ -24#include │ │ │ │ │ -25#else │ │ │ │ │ -26/* Define iconv_t for src/replacements/iconv.c. */ │ │ │ │ │ -27#undef iconv_t │ │ │ │ │ -28typedef void *iconv_t; │ │ │ │ │ -29#endif /* HAVE_ICONV */ │ │ │ │ │ -30 │ │ │ │ │ -31#if HAVE_ERRNO_H │ │ │ │ │ -32#include │ │ │ │ │ -33#endif │ │ │ │ │ -34 │ │ │ │ │ -35#if HAVE_WCHAR_H │ │ │ │ │ -36#include │ │ │ │ │ -37#endif │ │ │ │ │ -38 │ │ │ │ │ -39/* The following EILSEQ advice is borrowed verbatim from GNU iconv. */ │ │ │ │ │ -40/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS, │ │ │ │ │ -41 have EILSEQ in a different header. On these systems, define EILSEQ │ │ │ │ │ -42 ourselves. */ │ │ │ │ │ -43#ifndef EILSEQ │ │ │ │ │ -44# define EILSEQ ENOENT │ │ │ │ │ -45#endif │ │ │ │ │ -46 │ │ │ │ │ -47#if HAVE_STDLIB_H │ │ │ │ │ -48#include │ │ │ │ │ -49#endif /* HAVE_STDLIB_H */ │ │ │ │ │ -50 │ │ │ │ │ -51#include │ │ │ │ │ -52 │ │ │ │ │ -53#ifdef __cplusplus │ │ │ │ │ -54extern "C" │ │ │ │ │ -55{ │ │ │ │ │ -56#endif │ │ │ │ │ -57 │ │ │ │ │ -58#if ! HAVE_ICONV │ │ │ │ │ -59iconv_t _t_d_s___s_y_s___i_c_o_n_v___o_p_e_n(const char *tocode, const char *fromcode); │ │ │ │ │ -60size_t tds_sys_iconv(iconv_t cd, const char **inbuf, size_t * inbytesleft, │ │ │ │ │ -char **outbuf, size_t * outbytesleft); │ │ │ │ │ -61int tds_sys_iconv_close(iconv_t cd); │ │ │ │ │ -62#else │ │ │ │ │ -63#define tds_sys_iconv_open iconv_open │ │ │ │ │ -64#define tds_sys_iconv iconv │ │ │ │ │ -65#define tds_sys_iconv_close iconv_close │ │ │ │ │ -66#endif /* !HAVE_ICONV */ │ │ │ │ │ -67 │ │ │ │ │ +23#ifndef _tds_h_ │ │ │ │ │ +24#error tds.h must be included before tls.h │ │ │ │ │ +25#endif │ │ │ │ │ +26 │ │ │ │ │ +27#ifdef HAVE_GNUTLS │ │ │ │ │ +28# if defined(_THREAD_SAFE) && defined(TDS_HAVE_PTHREAD_MUTEX) │ │ │ │ │ +29# include │ │ │ │ │ +30# ifndef GNUTLS_USE_NETTLE │ │ │ │ │ +31# include │ │ │ │ │ +32# endif │ │ │ │ │ +33# endif │ │ │ │ │ +34# include │ │ │ │ │ +35# include │ │ │ │ │ +36#elif defined(HAVE_OPENSSL) │ │ │ │ │ +37# include │ │ │ │ │ +38# include │ │ │ │ │ +39# include │ │ │ │ │ +40#endif │ │ │ │ │ +41 │ │ │ │ │ +42#include │ │ │ │ │ +43 │ │ │ │ │ +44#if defined(HAVE_GNUTLS) || defined(HAVE_OPENSSL) │ │ │ │ │ +45TDSRET tds_ssl_init(_T_D_S_S_O_C_K_E_T *tds); │ │ │ │ │ +46void tds_ssl_deinit(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn); │ │ │ │ │ +47 │ │ │ │ │ +48# ifdef HAVE_GNUTLS │ │ │ │ │ +49 │ │ │ │ │ +50static inline int │ │ │ │ │ +51tds_ssl_pending(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ +52{ │ │ │ │ │ +53 return gnutls_record_check_pending((gnutls_session_t) conn->tls_session); │ │ │ │ │ +54} │ │ │ │ │ +55 │ │ │ │ │ +56static inline int │ │ │ │ │ +57tds_ssl_read(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, unsigned char *buf, int buflen) │ │ │ │ │ +58{ │ │ │ │ │ +59 return gnutls_record_recv((gnutls_session_t) conn->tls_session, buf, │ │ │ │ │ +buflen); │ │ │ │ │ +60} │ │ │ │ │ +61 │ │ │ │ │ +62static inline int │ │ │ │ │ +63tds_ssl_write(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, const unsigned char *buf, int buflen) │ │ │ │ │ +64{ │ │ │ │ │ +65 return gnutls_record_send((gnutls_session_t) conn->tls_session, buf, │ │ │ │ │ +buflen); │ │ │ │ │ +66} │ │ │ │ │ +67# else │ │ │ │ │ 68 │ │ │ │ │ -69typedef enum │ │ │ │ │ -70{ to_server, to_client } TDS_ICONV_DIRECTION; │ │ │ │ │ -71 │ │ │ │ │ -_7_2typedef struct ___c_h_a_r_a_c_t_e_r___s_e_t___a_l_i_a_s │ │ │ │ │ -73{ │ │ │ │ │ -74 const char *alias; │ │ │ │ │ -75 int canonic; │ │ │ │ │ -76} _C_H_A_R_A_C_T_E_R___S_E_T___A_L_I_A_S; │ │ │ │ │ -77 │ │ │ │ │ -_7_8typedef struct _t_d_s___e_r_r_n_o___m_e_s_s_a_g_e___f_l_a_g_s { │ │ │ │ │ -79 unsigned int e2big:1; │ │ │ │ │ -80 unsigned int eilseq:1; │ │ │ │ │ -81 unsigned int einval:1; │ │ │ │ │ -82} _T_D_S___E_R_R_N_O___M_E_S_S_A_G_E___F_L_A_G_S; │ │ │ │ │ -83 │ │ │ │ │ -_8_4typedef struct _t_d_s_i_c_o_n_v_d_i_r │ │ │ │ │ -85{ │ │ │ │ │ -86 _T_D_S___E_N_C_O_D_I_N_G charset; │ │ │ │ │ -87 │ │ │ │ │ -88 iconv_t cd; │ │ │ │ │ -89} _T_D_S_I_C_O_N_V_D_I_R; │ │ │ │ │ -90 │ │ │ │ │ -_9_1struct _t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ -92{ │ │ │ │ │ -93 struct _t_d_s_i_c_o_n_v_d_i_r to, from; │ │ │ │ │ -94 │ │ │ │ │ -95#define TDS_ENCODING_MEMCPY 1 │ │ │ │ │ -96 unsigned int flags; │ │ │ │ │ -97 │ │ │ │ │ -98 /* │ │ │ │ │ -99 * Suppress error messages that would otherwise be emitted by tds_iconv(). │ │ │ │ │ -100 * Functions that process large buffers ask tds_iconv to convert it in │ │ │ │ │ -"chunks". │ │ │ │ │ -101 * We don't want to emit spurious EILSEQ errors or multiple errors for one │ │ │ │ │ -102 * buffer. tds_iconv() checks this structure before emiting a message, and │ │ │ │ │ -103 * adds to it whenever it emits one. Callers that handle a particular │ │ │ │ │ -situation themselves │ │ │ │ │ -104 * can prepopulate it. │ │ │ │ │ -105 */ │ │ │ │ │ -106 _T_D_S___E_R_R_N_O___M_E_S_S_A_G_E___F_L_A_G_S suppress; │ │ │ │ │ -107 │ │ │ │ │ -108}; │ │ │ │ │ +69/* compatibility for LibreSSL 2.7 */ │ │ │ │ │ +70#ifdef LIBRESSL_VERSION_NUMBER │ │ │ │ │ +71#define TLS_ST_OK SSL_ST_OK │ │ │ │ │ +72#endif │ │ │ │ │ +73 │ │ │ │ │ +74static inline int │ │ │ │ │ +75tds_ssl_pending(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ +76{ │ │ │ │ │ +77 return SSL_pending((SSL *) conn->tls_session); │ │ │ │ │ +78} │ │ │ │ │ +79 │ │ │ │ │ +80static inline int │ │ │ │ │ +81tds_ssl_read(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, unsigned char *buf, int buflen) │ │ │ │ │ +82{ │ │ │ │ │ +83 return SSL_read((SSL *) conn->tls_session, buf, buflen); │ │ │ │ │ +84} │ │ │ │ │ +85 │ │ │ │ │ +86static inline int │ │ │ │ │ +87tds_ssl_write(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, const unsigned char *buf, int buflen) │ │ │ │ │ +88{ │ │ │ │ │ +89 return SSL_write((SSL *) conn->tls_session, buf, buflen); │ │ │ │ │ +90} │ │ │ │ │ +91# endif │ │ │ │ │ +92#else │ │ │ │ │ +93static inline TDSRET │ │ │ │ │ +94tds_ssl_init(_T_D_S_S_O_C_K_E_T *tds) │ │ │ │ │ +95{ │ │ │ │ │ +96 return TDS_FAIL; │ │ │ │ │ +97} │ │ │ │ │ +98 │ │ │ │ │ +99static inline void │ │ │ │ │ +100tds_ssl_deinit(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ +101{ │ │ │ │ │ +102} │ │ │ │ │ +103 │ │ │ │ │ +104static inline int │ │ │ │ │ +105tds_ssl_pending(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn) │ │ │ │ │ +106{ │ │ │ │ │ +107 return 0; │ │ │ │ │ +108} │ │ │ │ │ 109 │ │ │ │ │ -110/* We use ICONV_CONST for tds_iconv(), even if we don't have iconv() */ │ │ │ │ │ -111#ifndef ICONV_CONST │ │ │ │ │ -112# define ICONV_CONST const │ │ │ │ │ -113#endif │ │ │ │ │ -114 │ │ │ │ │ -115size_t _t_d_s___i_c_o_n_v(_T_D_S_S_O_C_K_E_T * tds, _T_D_S_I_C_O_N_V * char_conv, TDS_ICONV_DIRECTION │ │ │ │ │ -io, │ │ │ │ │ -116 const char **inbuf, size_t * inbytesleft, char **outbuf, size_t * │ │ │ │ │ -outbytesleft); │ │ │ │ │ -117int _t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t(const char *charset_name); │ │ │ │ │ -118const char *_t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t___n_a_m_e(const char *charset_name); │ │ │ │ │ -119_T_D_S_I_C_O_N_V *tds_iconv_get(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, const char *client_charset, │ │ │ │ │ -const char *server_charset); │ │ │ │ │ -120_T_D_S_I_C_O_N_V *_t_d_s___i_c_o_n_v___g_e_t___i_n_f_o(_T_D_S_C_O_N_N_E_C_T_I_O_N * conn, int canonic_client, int │ │ │ │ │ -canonic_server); │ │ │ │ │ -121 │ │ │ │ │ -122#ifdef __cplusplus │ │ │ │ │ -123} │ │ │ │ │ -124#endif │ │ │ │ │ -125 │ │ │ │ │ -126#include │ │ │ │ │ -127 │ │ │ │ │ -128#endif /* _tds_iconv_h_ */ │ │ │ │ │ -_t_d_s___i_c_o_n_v___g_e_t___i_n_f_o │ │ │ │ │ -TDSICONV * tds_iconv_get_info(TDSCONNECTION *conn, int canonic_client, int │ │ │ │ │ -canonic_server) │ │ │ │ │ -Get a iconv info structure, allocate and initialize if needed. │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:758 │ │ │ │ │ -_t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t___n_a_m_e │ │ │ │ │ -const char * tds_canonical_charset_name(const char *charset_name) │ │ │ │ │ -Determine canonical iconv character set name. │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:982 │ │ │ │ │ -_t_d_s___i_c_o_n_v │ │ │ │ │ -size_t tds_iconv(TDSSOCKET *tds, TDSICONV *char_conv, TDS_ICONV_DIRECTION io, │ │ │ │ │ -const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) │ │ │ │ │ -Wrapper around iconv(3). │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:592 │ │ │ │ │ -_t_d_s___s_y_s___i_c_o_n_v___o_p_e_n │ │ │ │ │ -iconv_t tds_sys_iconv_open(const char *tocode, const char *fromcode) │ │ │ │ │ -Inputs are FreeTDS canonical names, no other. │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:344 │ │ │ │ │ -_t_d_s___c_a_n_o_n_i_c_a_l___c_h_a_r_s_e_t │ │ │ │ │ -int tds_canonical_charset(const char *charset_name) │ │ │ │ │ -Determine canonical iconv character set. │ │ │ │ │ -DDeeffiinniittiioonn iconv.c:970 │ │ │ │ │ -___c_h_a_r_a_c_t_e_r___s_e_t___a_l_i_a_s │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:73 │ │ │ │ │ -_t_d_s___e_r_r_n_o___m_e_s_s_a_g_e___f_l_a_g_s │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:78 │ │ │ │ │ -_t_d_s_i_c_o_n_v_d_i_r │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:85 │ │ │ │ │ -_t_d_s_i_c_o_n_v_i_n_f_o │ │ │ │ │ -DDeeffiinniittiioonn iconv.h:92 │ │ │ │ │ -_t_d_s___e_n_c_o_d_i_n_g │ │ │ │ │ -Information relevant to libiconv. │ │ │ │ │ -DDeeffiinniittiioonn tds.h:618 │ │ │ │ │ +110static inline int │ │ │ │ │ +111tds_ssl_read(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, unsigned char *buf, int buflen) │ │ │ │ │ +112{ │ │ │ │ │ +113 return -1; │ │ │ │ │ +114} │ │ │ │ │ +115 │ │ │ │ │ +116static inline int │ │ │ │ │ +117tds_ssl_write(_T_D_S_C_O_N_N_E_C_T_I_O_N *conn, const unsigned char *buf, int buflen) │ │ │ │ │ +118{ │ │ │ │ │ +119 return -1; │ │ │ │ │ +120} │ │ │ │ │ +121#endif │ │ │ │ │ +122 │ │ │ │ │ +123#include │ │ │ │ │ +124 │ │ │ │ │ +125#endif /* _freetds_tls_h_ */ │ │ │ │ │ _t_d_s___c_o_n_n_e_c_t_i_o_n │ │ │ │ │ DDeeffiinniittiioonn tds.h:1091 │ │ │ │ │ _t_d_s___s_o_c_k_e_t │ │ │ │ │ Information for a server connection. │ │ │ │ │ DDeeffiinniittiioonn tds.h:1163 │ │ │ │ │ =============================================================================== │ │ │ │ │ Generated by _[_d_o_x_y_g_e_n_] 1.9.8 │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443.html │ │ │ │┄ Files 98% similar despite different names │ │ │ │ @@ -106,15 +106,15 @@ │ │ │ │
    │ │ │ │
    │ │ │ │ This graph shows which files directly or indirectly include this file:
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │ -

    Go to the source code of this file.

    │ │ │ │ +

    Go to the source code of this file.

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -268,15 +268,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +#define  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -285,17 +285,17 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -457,18 +457,18 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -481,15 +481,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -548,15 +548,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -734,27 +734,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -795,15 +795,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +typedef enum tds_states  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -822,15 +822,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -887,15 +887,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +typedef TDSRESULTINFO  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -942,15 +942,15 @@ │ │ │ │ ,
    │ │ │ │   TDS_TYPEFLAG_DATETIME = 128 │ │ │ │ , TDS_TYPEFLAG_NUMERIC = 256 │ │ │ │ , TDS_TYPEFLAG_VARIANT = 512 │ │ │ │
    │ │ │ │ } │ │ │ │ │ │ │ │ - │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1184,17 +1184,17 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSCURSOR *  │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1208,39 +1208,39 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRESULTINFO *  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1269,68 +1269,68 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1346,15 +1346,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1369,18 +1369,18 @@ │ │ │ │ void  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1404,24 +1404,24 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1481,15 +1481,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1497,35 +1497,35 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +TDSRET  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1612,17 +1612,17 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1632,22 +1632,22 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +void  │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1659,27 +1659,27 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1698,33 +1698,33 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1734,15 +1734,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1761,49 +1761,49 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Classes

    union  tds_align_struct
     
    struct  tds_authentication
     
    │ │ │ │ #define IS_TDS74_PLUS(x)   ((x)->tds_version>=0x704)
     
    │ │ │ │ #define IS_TDS7_PLUS(x)   ((x)->tds_version>=0x700)
     
    │ │ │ │ -#define IS_TDSDEAD(x)   (((x) == NULL) || (x)->state == TDS_DEAD)
    IS_TDSDEAD(x)   (((x) == NULL) || (x)->state == TDS_DEAD)
     
    │ │ │ │ #define is_unicode_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_UNICODE) != 0)
     
    │ │ │ │ #define is_variable_type(x)   ((tds_type_flags_ms[x] & TDS_TYPEFLAG_VARIABLE) != 0)
     
     
    │ │ │ │ #define MAXPRECISION   77
     
    │ │ │ │ #define TDS_ALIGN_SIZE   sizeof(tds_align_struct)
     
    #define TDS_BYTE_SWAP16(value)
    #define TDS_BYTE_SWAP16(value)
     
    #define TDS_BYTE_SWAP32(value)
    #define TDS_BYTE_SWAP32(value)
     
    │ │ │ │ #define TDS_CANCELLED   ((TDSRET)-2)
     
    │ │ │ │ #define tds_capability_has_req(conn, cap)    tds_capability_enabled(&conn->capabilities.types[0], cap)
     
     
    │ │ │ │ #define TDS_INT_TIMEOUT   3
     
    │ │ │ │ #define TDS_INVALID_TYPE   ((TDS_SERVER_TYPE) 0)
     
    #define TDS_IS_MSSQL(x)   (((x)->conn->product_version & 0x80000000u)!=0)
    #define TDS_IS_MSSQL(x)   (((x)->conn->product_version & 0x80000000u)!=0)
     Check if product is Microsft SQL Server.
     
    #define TDS_IS_SYBASE(x)   (!((x)->conn->product_version & 0x80000000u))
    #define TDS_IS_SYBASE(x)   (!((x)->conn->product_version & 0x80000000u))
     Check if product is Sybase (such as Adaptive Server Enterrprice).
     
    │ │ │ │ #define TDS_MAJOR(x)   ((x)->tds_version >> 8)
     
    │ │ │ │ #define TDS_MAX_CAPABILITY   32
     
    │ │ │ │ #define TDS_MAX_LOGIN_STR_SZ   128
     
    │ │ │ │ #define TDS_MINOR(x)   ((x)->tds_version & 0xff)
     
    #define TDS_MS_VER(maj, min, x)   (0x80000000u|((maj)<<24)|((min)<<16)|(x))
    #define TDS_MS_VER(maj, min, x)   (0x80000000u|((maj)<<24)|((min)<<16)|(x))
     Calc a version number for mssql.
     
    │ │ │ │ #define TDS_MSG_RESULT   4044
     
    │ │ │ │ #define tds_new(type, n)   ((type *) malloc(sizeof(type) * (n)))
     
    │ │ │ │ #define tds_set_parent(tds, val)   do { ((tds)->parent) = (val); } while(0)
     
    │ │ │ │ #define tds_set_s(tds, val)   do { ((tds)->conn->s) = (val); } while(0)
     
    #define TDS_START_LEN_GENERIC(tds_socket, len)
    #define TDS_START_LEN_GENERIC(tds_socket, len)
     
    │ │ │ │ #define TDS_START_LEN_TINYINT(tds_socket)   TDS_START_LEN_GENERIC(tds_socket, 1)
     
    │ │ │ │ #define TDS_START_LEN_UINT(tds_socket)   TDS_START_LEN_GENERIC(tds_socket, 4)
     
     
    │ │ │ │ typedef struct tds_capability_type TDS_CAPABILITY_TYPE
     
    │ │ │ │ typedef char TDS_CHAR
     
    typedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
    typedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
     A structure to hold all the compile-time settings.
     
    │ │ │ │ typedef enum tds_cursor_fetch TDS_CURSOR_FETCH
     
    │ │ │ │ typedef enum tds_cursor_operation TDS_CURSOR_OPERATION
     
    │ │ │ │ typedef struct tds_cursor_status TDS_CURSOR_STATUS
     
    typedef struct tds_encoding TDS_ENCODING
    typedef struct tds_encoding TDS_ENCODING
     Information relevant to libiconv.
     
    │ │ │ │ typedef enum tds_encryption_level TDS_ENCRYPTION_LEVEL
     
    │ │ │ │ typedef tds_sysdep_real64_type TDS_FLOAT
    │ │ │ │ typedef tds_sysdep_real32_type TDS_REAL
     
    │ │ │ │ typedef int16_t TDS_SMALLINT
     
    │ │ │ │ -typedef enum tds_states TDS_STATE
    TDS_STATE
     values for tds->state
     
    │ │ │ │ typedef uint8_t TDS_TINYINT
     
    │ │ │ │ typedef uint8_t TDS_UCHAR
     
    │ │ │ │ typedef struct tds_authentication TDSAUTHENTICATION
     
    │ │ │ │ typedef struct tds_bcpinfo TDSBCPINFO
     
    typedef struct tds_blob TDSBLOB
    typedef struct tds_blob TDSBLOB
     Information about blobs (e.g.
     
    │ │ │ │ typedef struct tds_column TDSCOLUMN
     
    │ │ │ │ typedef struct tds_column_funcs TDSCOLUMNFUNCS
    │ │ │ │ typedef struct tds_multiple TDSMULTIPLE
     
    │ │ │ │ typedef struct tds_packet TDSPACKET
     
    │ │ │ │ -typedef TDSRESULTINFO TDSPARAMINFO
    TDSPARAMINFO
     
    │ │ │ │ typedef struct tds_poll_wakeup TDSPOLLWAKEUP
     
    │ │ │ │ typedef struct tds_result_info TDSRESULTINFO
     Hold information for any results.
     
    enum  tds_bcp_directions { TDS_BCP_IN = 1 │ │ │ │ +
    enum  tds_bcp_directions { TDS_BCP_IN = 1 │ │ │ │ , TDS_BCP_OUT = 2 │ │ │ │ , TDS_BCP_QUERYOUT = 3 │ │ │ │ }
     bcp direction
     
    enum  tds_cursor_fetch {
    │ │ │ │   TDS_CURSOR_FETCH_NEXT = 1 │ │ │ │ @@ -977,35 +977,35 @@ │ │ │ │
     
    enum  tds_encryption_level { TDS_ENCRYPTION_DEFAULT │ │ │ │ , TDS_ENCRYPTION_OFF │ │ │ │ , TDS_ENCRYPTION_REQUEST │ │ │ │ , TDS_ENCRYPTION_REQUIRE │ │ │ │ }
     
    enum  tds_end {
    │ │ │ │ -  TDS_DONE_FINAL = 0x00 │ │ │ │ -, TDS_DONE_MORE_RESULTS = 0x01 │ │ │ │ -, TDS_DONE_ERROR = 0x02 │ │ │ │ -, TDS_DONE_INXACT = 0x04 │ │ │ │ -,
    │ │ │ │ -  TDS_DONE_PROC = 0x08 │ │ │ │ -, TDS_DONE_COUNT = 0x10 │ │ │ │ -, TDS_DONE_CANCELLED = 0x20 │ │ │ │ +
    enum  tds_end {
    │ │ │ │ +  TDS_DONE_FINAL = 0x00 │ │ │ │ +, TDS_DONE_MORE_RESULTS = 0x01 │ │ │ │ +, TDS_DONE_ERROR = 0x02 │ │ │ │ +, TDS_DONE_INXACT = 0x04 │ │ │ │ +,
    │ │ │ │ +  TDS_DONE_PROC = 0x08 │ │ │ │ +, TDS_DONE_COUNT = 0x10 │ │ │ │ +, TDS_DONE_CANCELLED = 0x20 │ │ │ │ , TDS_DONE_EVENT = 0x40 │ │ │ │ ,
    │ │ │ │ -  TDS_DONE_SRVERROR = 0x100 │ │ │ │ +  TDS_DONE_SRVERROR = 0x100 │ │ │ │ , TDS_DONE_NO_TRAN = 0 │ │ │ │ , TDS_DONE_TRAN_SUCCEED = 1 │ │ │ │ , TDS_DONE_TRAN_PROGRESS = 2 │ │ │ │ ,
    │ │ │ │   TDS_DONE_STMT_ABORT = 3 │ │ │ │ , TDS_DONE_TRAN_ABORT = 4 │ │ │ │
    │ │ │ │ }
     Flags returned in TDS_DONE token. More...
     Flags returned in TDS_DONE token. More...
     
    enum  TDS_ICONV_ENTRY { client2ucs2 │ │ │ │ , client2server_chardata │ │ │ │ , initial_char_conv_count │ │ │ │ }
     
    enum  TDS_MULTIPLE_TYPE { TDS_MULTIPLE_QUERY │ │ │ │ @@ -1034,25 +1034,25 @@ │ │ │ │ , TDS_OP_PREPEXECRPC = TDS_SP_PREPEXECRPC │ │ │ │ , TDS_OP_UNPREPARE = TDS_SP_UNPREPARE │ │ │ │ ,
    │ │ │ │   TDS_OP_DYN_DEALLOC = 100 │ │ │ │
    │ │ │ │ }
     
    enum  tds_states {
    │ │ │ │ -  TDS_IDLE │ │ │ │ -, TDS_WRITING │ │ │ │ -, TDS_SENDING │ │ │ │ -, TDS_PENDING │ │ │ │ +
    enum  tds_states {
    │ │ │ │ +  TDS_IDLE │ │ │ │ +, TDS_WRITING │ │ │ │ +, TDS_SENDING │ │ │ │ +, TDS_PENDING │ │ │ │ ,
    │ │ │ │ -  TDS_READING │ │ │ │ -, TDS_DEAD │ │ │ │ +  TDS_READING │ │ │ │ +, TDS_DEAD │ │ │ │
    │ │ │ │ }
     values for tds->state More...
     values for tds->state More...
     
    enum  tds_token_flags {
    │ │ │ │   TDS_HANDLE_ALL = 0 │ │ │ │ , TDS_TOKEN_FLAG =(OTHERS) │ │ │ │ , TDS_TOKEN_FLAG =(OTHERS) │ │ │ │ , TDS_TOKEN_FLAG =(OTHERS) │ │ │ │ ,
    │ │ │ │ @@ -1147,15 +1147,15 @@ │ │ │ │
     
    │ │ │ │ static void tds5_negotiate_set_msg_type (TDSAUTHENTICATION *tds_auth, unsigned msg_type)
     
    │ │ │ │ int tds5_send_optioncmd (TDSSOCKET *tds, TDS_OPTION_CMD tds_command, TDS_OPTION tds_option, TDS_OPTION_ARG *tds_argument, TDS_INT *tds_argsize)
     
    TDSRET tds71_submit_prepexec (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
    TDSRET tds71_submit_prepexec (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
     Creates a temporary stored procedure in the server and execute it.
     
    int tds7_get_instance_port (struct addrinfo *addr, const char *instance)
     Get port of given instance.
     
    int tds7_get_instance_ports (FILE *output, struct addrinfo *addr)
     Get port of all instances.
    │ │ │ │ TDSRET tds_alloc_compute_row (TDSCOMPUTEINFO *res_info)
     
    │ │ │ │ TDSCONTEXTtds_alloc_context (void *parent)
     
    │ │ │ │ -TDSCURSORtds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen)
    tds_alloc_cursor (TDSSOCKET *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen)
     
    TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
    TDSDYNAMICtds_alloc_dynamic (TDSCONNECTION *conn, const char *id)
     Allocate a dynamic statement.
     
    │ │ │ │ TDSLOCALEtds_alloc_locale (void)
     
    │ │ │ │ TDSLOGINtds_alloc_login (int use_environment)
    void * tds_alloc_param_data (TDSCOLUMN *curparam)
     Allocate data for a parameter.
     
    TDSPARAMINFOtds_alloc_param_result (TDSPARAMINFO *old_param)
     Adds a output parameter to TDSPARAMINFO.
     
    │ │ │ │ -TDSRESULTINFOtds_alloc_results (TDS_USMALLINT num_cols)
    tds_alloc_results (TDS_USMALLINT num_cols)
     
    │ │ │ │ -TDSRET tds_alloc_row (TDSRESULTINFO *res_info)
    tds_alloc_row (TDSRESULTINFO *res_info)
     Allocate space for row store return NULL on out of memory.
     
    │ │ │ │ TDSSOCKETtds_alloc_socket (TDSCONTEXT *context, unsigned int bufsize)
     
    TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
    TDSRET tds_bcp_done (TDSSOCKET *tds, int *rows_copied)
     Tell we finished sending BCP data to server.
     
    TDSRET tds_bcp_fread (TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
    TDSRET tds_bcp_fread (TDSSOCKET *tds, TDSICONV *conv, FILE *stream, const char *terminator, size_t term_len, char **outbuf, size_t *outbytes)
     Read a data file, passing the data through iconv().
     
    TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    TDSRET tds_bcp_init (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Initialize BCP information.
     
    TDSRET tds_bcp_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
    TDSRET tds_bcp_send_record (TDSSOCKET *tds, TDSBCPINFO *bcpinfo, tds_bcp_get_col_data get_col_data, tds_bcp_null_error null_error, int offset)
     Send one row of data to server.
     
    TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    TDSRET tds_bcp_start (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Start sending BCP data to server.
     
    TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
    TDSRET tds_bcp_start_copy_in (TDSSOCKET *tds, TDSBCPINFO *bcpinfo)
     Start bulk copy to server.
     
    │ │ │ │ static bool tds_capability_enabled (const TDS_CAPABILITY_TYPE *cap, unsigned cap_num)
     
    void tds_close_socket (TDSSOCKET *tds)
     Close current socket.
    │ │ │ │ void tds_convert_string_free (const char *original, const char *converted)
     
    int tds_count_placeholders (const char *query)
     Count the number of placeholders ('?') in a query.
     
    │ │ │ │ -TDSRET tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor)
    tds_cursor_close (TDSSOCKET *tds, TDSCURSOR *cursor)
     
    │ │ │ │ -TDSRET tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor)
    tds_cursor_dealloc (TDSSOCKET *tds, TDSCURSOR *cursor)
     Send a deallocation request to server.
     
    │ │ │ │ -void tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
    tds_cursor_deallocated (TDSCONNECTION *conn, TDSCURSOR *cursor)
     
    │ │ │ │ -TDSRET tds_cursor_declare (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send)
    tds_cursor_declare (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send)
     
    │ │ │ │ -TDSRET tds_cursor_fetch (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)
    tds_cursor_fetch (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)
     
    │ │ │ │ -TDSRET tds_cursor_get_cursor_info (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_UINT *row_number, TDS_UINT *row_count)
    tds_cursor_get_cursor_info (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_UINT *row_number, TDS_UINT *row_count)
     
    │ │ │ │ -TDSRET tds_cursor_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send)
    tds_cursor_open (TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *send)
     
    │ │ │ │ -TDSRET tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
    tds_cursor_setname (TDSSOCKET *tds, TDSCURSOR *cursor)
     
    │ │ │ │ -TDSRET tds_cursor_setrows (TDSSOCKET *tds, TDSCURSOR *cursor, int *send)
    tds_cursor_setrows (TDSSOCKET *tds, TDSCURSOR *cursor, int *send)
     
    │ │ │ │ -TDSRET tds_cursor_update (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params)
    tds_cursor_update (TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params)
     
    TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr)
    TDSRET tds_datecrack (TDS_INT datetype, const void *di, TDSDATEREC *dr)
     Convert from db date format to a structured date format.
     
    TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
    TDSRET tds_deferred_cursor_dealloc (TDSCONNECTION *conn, TDSCURSOR *cursor)
     Deallocate cursor on idle.
     
    TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
    TDSRET tds_deferred_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     Unprepare dynamic on idle.
     
    │ │ │ │ void tds_deinit_bcpinfo (TDSBCPINFO *bcpinfo)
     
    │ │ │ │ -void tds_detach_results (TDSRESULTINFO *info)
    tds_detach_results (TDSRESULTINFO *info)
     Detach result info from it current socket.
     
    │ │ │ │ TDSRET tds_disconnect (TDSSOCKET *tds)
     
    DSTRtds_dstr_get (TDSSOCKET *tds, DSTR *s, size_t len)
     Reads a string from wire and put in a DSTR.
     
    │ │ │ │ -void tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
    tds_dynamic_deallocated (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     
    │ │ │ │ size_t tds_fix_column_size (TDSSOCKET *tds, TDSCOLUMN *curcol)
     Get column size for wire.
     
    void tds_fix_login (TDSLOGIN *login)
     Fix configuration after reading it.
     
    │ │ │ │ void tds_free_bcpinfo (TDSBCPINFO *bcpinfo)
     
    │ │ │ │ void tds_free_context (TDSCONTEXT *locale)
     
    void tds_free_input_params (TDSDYNAMIC *dyn)
    void tds_free_input_params (TDSDYNAMIC *dyn)
     Frees all allocated input parameters of a dynamic statement.
     
    │ │ │ │ void tds_free_locale (TDSLOCALE *locale)
     
    │ │ │ │ void tds_free_login (TDSLOGIN *login)
    tds_free_param_result (TDSPARAMINFO *param_info)
     Delete latest parameter.
     
    │ │ │ │ void tds_free_param_results (TDSPARAMINFO *param_info)
     
    │ │ │ │ -void tds_free_results (TDSRESULTINFO *res_info)
    tds_free_results (TDSRESULTINFO *res_info)
     
    │ │ │ │ -void tds_free_row (TDSRESULTINFO *res_info, unsigned char *row)
    tds_free_row (TDSRESULTINFO *res_info, unsigned char *row)
     
    │ │ │ │ void tds_free_socket (TDSSOCKET *tds)
     
    void tds_freeze (TDSSOCKET *tds, TDSFREEZE *freeze, unsigned size_len)
     Stop writing to server and cache every packet not sending them to server.
     
     
    TDSRET tds_get_char_data (TDSSOCKET *tds, char *dest, size_t wire_size, TDSCOLUMN *curcol)
     Fetch character data the wire.
     
    TDSRET tds_get_column_declaration (TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)
     Return declaration for column (like "varchar(20)").
     
    const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void)
    const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void)
     Return a structure capturing the compile-time settings provided to the configure script.
     
    TDS_SERVER_TYPE tds_get_conversion_type (TDS_SERVER_TYPE srctype, int colsize)
    TDS_SERVER_TYPE tds_get_conversion_type (TDS_SERVER_TYPE srctype, int colsize)
     Return type suitable for conversions (convert all nullable types to fixed type)
     
    char * tds_get_home_file (const char *file)
     Return filename from HOME directory.
     
    TDSLOCALEtds_get_locale (void)
    TDSLOCALEtds_get_locale (void)
     Get locale information.
     
    bool tds_get_n (TDSSOCKET *tds, void *dest, size_t n)
     Get N bytes from the buffer and return them in the already allocated space
    │ │ │ │ given to us.
     
    │ │ │ │ @@ -1459,15 +1459,15 @@ │ │ │ │
     Loops until we have received some characters return -1 on failure.
     
    int tds_goodwrite (TDSSOCKET *tds, const unsigned char *buffer, size_t buflen)
     
    │ │ │ │ TDSAUTHENTICATIONtds_gss_get_auth (TDSSOCKET *tds)
     
    int tds_iconv_alloc (TDSCONNECTION *conn)
    int tds_iconv_alloc (TDSCONNECTION *conn)
     Allocate iconv stuff.
     
    │ │ │ │ void tds_iconv_close (TDSCONNECTION *conn)
     
    │ │ │ │ void tds_iconv_free (TDSCONNECTION *conn)
     
    TDSLOGINtds_init_login (TDSLOGIN *login, TDSLOCALE *locale)
     Initialize login structure with locale information and other stuff for connection.
     
    │ │ │ │ int tds_init_write_buf (TDSSOCKET *tds)
     
    TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
    TDSDYNAMICtds_lookup_dynamic (TDSCONNECTION *conn, const char *id)
     Finds a dynamic given string id.
     
    struct addrinfo * tds_lookup_host (const char *servername)
     Get the IP address for a hostname.
     
    │ │ │ │ TDSRET tds_lookup_host_set (const char *servername, struct addrinfo **addr)
    │ │ │ │ char * tds_money_to_string (const TDS_MONEY *money, char *s, bool use_2_digits)
     
    │ │ │ │ TDSRET tds_multiple_done (TDSSOCKET *tds, TDSMULTIPLE *multiple)
     
    │ │ │ │ -TDSRET tds_multiple_execute (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn)
    tds_multiple_execute (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn)
     
    │ │ │ │ TDSRET tds_multiple_init (TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type, TDSHEADERS *head)
     
    │ │ │ │ TDSRET tds_multiple_query (TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO *params)
     
    int tds_needs_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
    int tds_needs_unprepare (TDSCONNECTION *conn, TDSDYNAMIC *dyn)
     Check if dynamic request must be unprepared.
     
    const char * tds_next_placeholder (const char *start)
     Get position of next placeholder.
     
    TDSAUTHENTICATIONtds_ntlm_get_auth (TDSSOCKET *tds)
     Build a NTLMSPP packet to send to server.
     
    │ │ │ │ TDS_INT tds_numeric_change_prec_scale (TDS_NUMERIC *numeric, unsigned char new_prec, unsigned char new_scale)
     
    TDS_INT tds_numeric_to_string (const TDS_NUMERIC *numeric, char *s)
    TDS_INT tds_numeric_to_string (const TDS_NUMERIC *numeric, char *s)
     
    │ │ │ │ TDSERRNO tds_open_socket (TDSSOCKET *tds, struct addrinfo *ipaddr, unsigned int port, int timeout, int *p_oserr)
     
    │ │ │ │ int tds_parse_boolean (const char *value, int default_value)
     
    │ │ │ │ TDSSOCKETtds_realloc_socket (TDSSOCKET *tds, size_t bufsize)
     
    │ │ │ │ static void tds_release_cur_dyn (TDSSOCKET *tds)
     
    │ │ │ │ -void tds_release_cursor (TDSCURSOR **pcursor)
    tds_release_cursor (TDSCURSOR **pcursor)
     
    void tds_release_dynamic (TDSDYNAMIC **dyn)
    void tds_release_dynamic (TDSDYNAMIC **dyn)
     Frees dynamic statement.
     
    int tds_select (TDSSOCKET *tds, unsigned tds_sel, int timeout_seconds)
     Select on a socket until it's available or the timeout expires.
     
    TDSRET tds_send_cancel (TDSSOCKET *tds)
     tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.
     
    │ │ │ │ void tds_set_bulk (TDSLOGIN *tds_login, bool enabled)
     
    │ │ │ │ bool tds_set_client_charset (TDSLOGIN *tds_login, const char *charset) TDS_WUR
     
    void tds_set_column_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
    void tds_set_column_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
     Set type of column initializing all dependency.
     
    void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
    void tds_set_cur_dyn (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Set current dynamic.
     
    │ │ │ │ -void tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info)
    tds_set_current_results (TDSSOCKET *tds, TDSRESULTINFO *info)
     
    │ │ │ │ static void tds_set_current_send_packet (TDSSOCKET *tds, TDSPACKET *pkt)
     
    │ │ │ │ bool tds_set_host (TDSLOGIN *tds_login, const char *hostname) TDS_WUR
     
     
    │ │ │ │ bool tds_set_library (TDSLOGIN *tds_login, const char *library) TDS_WUR
     
    │ │ │ │ void tds_set_packet (TDSLOGIN *tds_login, int packet_size)
     
    void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
    void tds_set_param_type (TDSCONNECTION *conn, TDSCOLUMN *curcol, TDS_SERVER_TYPE type)
     Set type of column initializing all dependency.
     
    │ │ │ │ bool tds_set_passwd (TDSLOGIN *tds_login, const char *password) TDS_WUR
     
    │ │ │ │ void tds_set_port (TDSLOGIN *tds_login, int port)
     
    bool tds_set_server (TDSLOGIN *tds_login, const char *server) TDS_WUR
    bool tds_set_server (TDSLOGIN *tds_login, const char *server) TDS_WUR
     Set the servername in a TDSLOGIN structure.
     
    TDS_STATE tds_set_state (TDSSOCKET *tds, TDS_STATE state)
    TDS_STATE tds_set_state (TDSSOCKET *tds, TDS_STATE state)
     Set state of TDS connection, with logging and checking.
     
    │ │ │ │ bool tds_set_user (TDSLOGIN *tds_login, const char *username) TDS_WUR
     
    │ │ │ │ void tds_set_version (TDSLOGIN *tds_login, TDS_TINYINT major_ver, TDS_TINYINT minor_ver)
     
    │ │ │ │ void tds_srv_charset_changed (TDSCONNECTION *conn, const char *charset)
     
    void tds_start_query (TDSSOCKET *tds, unsigned char packet_type)
     Start query packet of a given type.
     
    char * tds_strndup (const void *s, TDS_INTPTR len)
    char * tds_strndup (const void *s, TDS_INTPTR len)
     Copy a string of length len to a new allocated buffer This function does not read more than len bytes Please note that some system implementation of strndup do not assure they don't read past len bytes as they use still strlen to check length to copy limiting after strlen to size passed String returned is NUL terminated.
     
    TDSRET tds_submit_begin_tran (TDSSOCKET *tds)
     Send a rollback request.
     
    TDSRET tds_submit_commit (TDSSOCKET *tds, int cont)
     Send a commit request.
     
    TDSRET tds_submit_execdirect (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
     Submit a prepared query with parameters.
     
    TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
    TDSRET tds_submit_execute (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Sends a previously prepared dynamic statement to the server.
     
    TDSRET tds_submit_optioncmd (TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size)
     Send option commands to server.
     
    TDSRET tds_submit_prepare (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
    TDSRET tds_submit_prepare (TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)
     Creates a temporary stored procedure in the server.
     
    TDSRET tds_submit_query (TDSSOCKET *tds, const char *query)
     Sends a language string to the database server for processing.
     
    TDSRET tds_submit_query_params (TDSSOCKET *tds, const char *query, TDSPARAMINFO *params, TDSHEADERS *head)
     Sends a language string to the database server for processing.
     
    TDSRET tds_submit_rollback (TDSSOCKET *tds, int cont)
     Send a rollback request.
     
    TDSRET tds_submit_rpc (TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params, TDSHEADERS *head)
     Calls a RPC from server.
     
    TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
    TDSRET tds_submit_unprepare (TDSSOCKET *tds, TDSDYNAMIC *dyn)
     Send a unprepare request for a prepared query.
     
    │ │ │ │ void tds_swap_bytes (void *buf, int bytes)
     
    void tds_unget_byte (TDSSOCKET *tds)
     Unget will always work as long as you don't call it twice in a row.
     
    │ │ │ │ void tds_wakeup_send (TDSPOLLWAKEUP *wakeup, char cancel)
     
    │ │ │ │ TDSRET tds_write_packet (TDSSOCKET *tds, unsigned char final)
     
    TDSRET tds_writetext_continue (TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
    TDSRET tds_writetext_continue (TDSSOCKET *tds, const TDS_UCHAR *text, TDS_UINT size)
     Send some data in the writetext request started by tds_writetext_start.
     
    TDSRET tds_writetext_end (TDSSOCKET *tds)
    TDSRET tds_writetext_end (TDSSOCKET *tds)
     Finish sending writetext data.
     
    TDSRET tds_writetext_start (TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
    TDSRET tds_writetext_start (TDSSOCKET *tds, const char *objname, const char *textptr, const char *timestamp, int with_log, TDS_UINT size)
     Start writing writetext request.
     
    │ │ │ │ void tdsdump_close (void)
     Close the TDS dump log file.
     
    void tdsdump_col (const TDSCOLUMN *col)
    void tdsdump_col (const TDSCOLUMN *col)
     Write a column value to the debug log.
     
    void tdsdump_dump_buf (const char *file, unsigned int level_line, const char *msg, const void *buf, size_t length)
    void tdsdump_dump_buf (const char *file, unsigned int level_line, const char *msg, const void *buf, size_t length)
     Dump the contents of data into the log file in a human readable format.
     
    │ │ │ │ int tdsdump_isopen (void)
     
    void tdsdump_log (const char *file, unsigned int level_line, const char *fmt,...)
    void tdsdump_log (const char *file, unsigned int level_line, const char *fmt,...)
     Write a message to the debug log.
     
    void tdsdump_off (TDSDUMP_OFF_ITEM *off_item)
    void tdsdump_off (TDSDUMP_OFF_ITEM *off_item)
     Temporarily turn off logging for current thread.
     
    void tdsdump_on (TDSDUMP_OFF_ITEM *off_item)
    void tdsdump_on (TDSDUMP_OFF_ITEM *off_item)
     Turn logging back on for current thread.
     
    int tdsdump_open (const char *filename)
    int tdsdump_open (const char *filename)
     Create and truncate a human readable dump file for the TDS traffic.
     
    int tdserror (const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
    int tdserror (const TDSCONTEXT *tds_ctx, TDSSOCKET *tds, int msgno, int errnum)
     Call the client library's error handler (for library-generated errors only)
     
    │ │ │ │ │ │ │ │ │ │ │ │ @@ -1813,15 +1813,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -1944,15 +1944,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Variables

    │ │ │ │ const char STD_DATETIME_FMT []
     
    │ │ │ │ int tds_g_append_mode
     
    │ │ │ │ const char tds_hex_digits []
     
    const int tds_numeric_bytes_per_prec []
    const int tds_numeric_bytes_per_prec []
     The following little table is indexed by precision and will tell us the number of bytes required to store the specified precision.
     
    │ │ │ │ const uint16_t tds_type_flags_ms [256]
     
    │ │ │ │ int tds_write_dump
    )   (0x80000000u|((maj)<<24)|((min)<<16)|(x))
    │ │ │ │
    │ │ │ │ │ │ │ │

    Calc a version number for mssql.

    │ │ │ │ -

    Use with TDS_MS_VER(7,0,842). For test for a range of version you can use check like if (tds->product_version >= TDS_MS_VER(7,0,0) && tds->product_version < TDS_MS_VER(8,0,0))

    │ │ │ │ +

    Use with TDS_MS_VER(7,0,842). For test for a range of version you can use check like if (tds->product_version >= TDS_MS_VER(7,0,0) && tds->product_version < TDS_MS_VER(8,0,0))

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │

    ◆ TDS_START_LEN_GENERIC

    │ │ │ │ │ │ │ │
    │ │ │ │ @@ -1989,15 +1989,15 @@ │ │ │ │ │ │ │ │

    ◆ TDS_COMPILETIME_SETTINGS

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    typedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGStypedef struct tds_compiletime_settings TDS_COMPILETIME_SETTINGS
    │ │ │ │
    │ │ │ │ │ │ │ │

    A structure to hold all the compile-time settings.

    │ │ │ │

    This structure is returned by tds_get_compiletime_settings

    │ │ │ │ │ │ │ │ @@ -2006,15 +2006,15 @@ │ │ │ │ │ │ │ │

    ◆ TDS_ENCODING

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    typedef struct tds_encoding TDS_ENCODINGtypedef struct tds_encoding TDS_ENCODING
    │ │ │ │
    │ │ │ │ │ │ │ │

    Information relevant to libiconv.

    │ │ │ │

    The name is an iconv name, not the same as found in master..syslanguages.

    │ │ │ │ │ │ │ │ @@ -2023,15 +2023,15 @@ │ │ │ │ │ │ │ │

    ◆ TDSBLOB

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    typedef struct tds_blob TDSBLOBtypedef struct tds_blob TDSBLOB
    │ │ │ │
    │ │ │ │ │ │ │ │

    Information about blobs (e.g.

    │ │ │ │

    text or image). current_row contains this structure.

    │ │ │ │ │ │ │ │ @@ -2041,15 +2041,15 @@ │ │ │ │ │ │ │ │

    ◆ tds_end

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    enum tds_endenum tds_end
    │ │ │ │
    │ │ │ │ │ │ │ │

    Flags returned in TDS_DONE token.

    │ │ │ │ │ │ │ │
    Enumerator
    TDS_DONE_FINAL 

    final result set, command completed successfully.

    │ │ │ │ @@ -2075,15 +2075,15 @@ │ │ │ │ │ │ │ │

    ◆ tds_states

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    enum tds_statesenum tds_states
    │ │ │ │
    │ │ │ │ │ │ │ │

    values for tds->state

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -153,15 +153,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a01353_a230fa5b56ae4e3509a69bd266495732b_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a01344_a230fa5b56ae4e3509a69bd266495732b_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a01353_a230fa5b56ae4e3509a69bd266495732b_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a01344_ad53f508d8f2177a898f8022736834afd_icgraph.dot │ │ │ │┄ Files 88% similar despite different names │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ -digraph "_bcp_convert_out" │ │ │ │ +digraph "_bcp_no_get_col_data" │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ - Node1 [id="Node000001",label="_bcp_convert_out",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ + Node1 [id="Node000001",label="_bcp_no_get_col_data",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Function to read data from file."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a01365.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a01371.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -84,15 +84,15 @@ │ │ │ │
    │ │ │ │ │ │ │ │

    This file implements a very simple iconv. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ #include <ctype.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/utils/bjoern-utf8.h>
    │ │ │ │ #include "iconv_charsets.h"
    │ │ │ │
    │ │ │ │ Include dependency graph for iconv.c:
    │ │ │ │
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a01368.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a01374.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -84,29 +84,29 @@ │ │ │ │ │ │ │ │

    Handle character conversions to/from server. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <stdarg.h>
    │ │ │ │ #include <stdio.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/bool.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/encodings.h>
    │ │ │ │ #include <freetds/charset_lookup.h>
    │ │ │ │
    │ │ │ │ Include dependency graph for iconv.c:
    │ │ │ │
    │ │ │ │
    │ │ │ │
    │ │ │ │
    Enumerator
    TDS_IDLE 

    no data expected

    │ │ │ │ @@ -2693,23 +2693,23 @@ │ │ │ │ │ │ │ │

    ◆ tds_set_state()

    │ │ │ │ │ │ │ │
    │ │ │ │
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -3191,15 +3191,15 @@ │ │ │ │

    │ │ │ │

    It is the client library's duty to call the error handler installed by the application, if any, and to interpret the installed handler's return code. It may return to this function one of the above codes only. This function will not check the return code because there's nothing that can be done here except abort. It is merely passed to the calling function, which will (we hope) DTRT.
    │ │ │ │

    │ │ │ │
    Parameters
    │ │ │ │
    TDS_STATE tds_set_state TDS_STATE tds_set_state (TDSSOCKETtds,
    TDS_STATE TDS_STATE state 
    )
    │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │
    tds_ctxpoints to a TDSCONTEXT structure
    tdsthe connection structure, may be NULL if not connected
    msgnoan enumerated libtds msgno, cf. tds.h
    msgnoan enumerated libtds msgno, cf. tds.h
    errnumthe OS errno, if it matters, else zero
    │ │ │ │ │ │ │ │ │ │ │ │
    Returns
    client library function's return code
    │ │ │ │
    │ │ │ │ Here is the call graph for this function:
    │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a16db200d2281f76fe46fc1cbe37ca9df_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a31604382d8b77257aad203f409155a29_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ │┄ Files 85% similar despite different names │ │ │ │ @@ -1,11 +1,11 @@ │ │ │ │ -digraph "tds_set_column_type" │ │ │ │ +digraph "tds_writetext_start" │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ - Node1 [id="Node000001",label="tds_set_column_type",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Set type of column initializing all dependency."]; │ │ │ │ + Node1 [id="Node000001",label="tds_writetext_start",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Start writing writetext request."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_set_param_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a86768d86059c5addf9a3f89edb1ef44e",tooltip="Set type of column initializing all dependency."]; │ │ │ │ + Node2 [id="Node000002",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a3ab8874994a0776acdaff797afdb710a_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a3ab8874994a0776acdaff797afdb710a_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a41390fa6e1083ba84fb523797e6b5275_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a41390fa6e1083ba84fb523797e6b5275_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a5eec23828b0610c58de248c4edb53879_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a7711612cc544a7da2c7aa212b870acb2_cgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a7711612cc544a7da2c7aa212b870acb2_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a01344_a230fa5b56ae4e3509a69bd266495732b_icgraph.dot │ │ │ │┄ Files 87% similar despite different names │ │ │ │ @@ -1,11 +1,13 @@ │ │ │ │ -digraph "tds_writetext_start" │ │ │ │ +digraph "_bcp_convert_out" │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="RL"; │ │ │ │ - Node1 [id="Node000001",label="tds_writetext_start",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Start writing writetext request."]; │ │ │ │ + Node1 [id="Node000001",label="_bcp_convert_out",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Convert column for output (usually to a file) Conversion is slightly different from input as:"]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="dbwritetext",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00527.html#ga548153eb2eae76c48aa9d4b72258dc1c",tooltip="Send text or image data to the server."]; │ │ │ │ + Node2 [id="Node000002",label="_bcp_exec_out",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#gae67546338cb9542a4902aa914f57f314",tooltip=" "]; │ │ │ │ + Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ + Node3 [id="Node000003",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a8184311543c685f2ee0bcccfb725ca02_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a8184311543c685f2ee0bcccfb725ca02_cgraph.dot │ │ │ │┄ Files 98% similar despite different names │ │ │ │ @@ -3,26 +3,26 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_bcp_fread",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Read a data file, passing the data through iconv()."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ + Node2 [id="Node000002",label="tds_convert_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a9d8eb43a81ff58ab423dce0ce95b9564",tooltip="Reads and writes from a stream converting characters."]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="tds_iconv",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="skip_one_input_sequence",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga3380140fc6eb9f2090c430f40e846876",tooltip="Move the input sequence pointer to the next valid position."]; │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 [id="Node000005",label="tds_sys_iconv_open",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00540.html#ga900b0bce08c6bfc2e7c988f4b5970516",tooltip="Inputs are FreeTDS canonical names, no other."]; │ │ │ │ Node3 -> Node5 [id="edge5_Node000003_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node1 -> Node6 [id="edge6_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ + Node6 [id="Node000006",label="tds_copy_stream",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a50bc3749988d1c3c441044fc07ab44e4",tooltip="Reads and writes from a stream to another."]; │ │ │ │ Node1 -> Node7 [id="edge7_Node000001_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ + Node7 [id="Node000007",label="tds_dynamic_stream_init",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#a4f9e40da6941cb9407d0da5bc3030517",tooltip="Initialize a dynamic output stream."]; │ │ │ │ Node7 -> Node8 [id="edge8_Node000007_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ + Node8 [id="Node000008",label="tds_dynamic_stream\l_write",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html#abaf688c85ea04a2392103d519a55d04e",tooltip="Writes data to a dynamic allocated buffer."]; │ │ │ │ Node8 -> Node9 [id="edge9_Node000008_Node000009",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node9 [id="Node000009",label="tds_realloc",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c",tooltip="Reallocate a pointer and update it if success."]; │ │ │ │ Node1 -> Node10 [id="edge10_Node000001_Node000010",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ + Node10 [id="Node000010",label="tds_file_stream_read",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a1b83c9db016b481aa1fa0352f976d50d",tooltip="Reads a chunk of data from file stream checking for terminator."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a8184311543c685f2ee0bcccfb725ca02_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a8184311543c685f2ee0bcccfb725ca02_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot.gz │ │ │ │┄ Files 99% similar despite different names │ │ │ │ │ --- a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot │ │ │ │ ├── +++ a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_cgraph.dot │ │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="tds_bcp_start",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Start sending BCP data to server."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ + Node2 [id="Node000002",label="tds7_bcp_send_colmetadata",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a4daaa551e54dbd978650e2eef89e09ff",tooltip="Send BCP metadata to server."]; │ │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_convert_string",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00542.html#gad5b76c688898b86984d09628f030d01c",tooltip="Convert a string in an allocated buffer."]; │ │ │ │ │ Node3 -> Node4 [id="edge3_Node000003_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_iconv",height=0.2,width=0.4,color="red", fillcolor="#FFF0F0", style="filled",URL="$a00540.html#ga87db49044919f1bc84c0ff5e9ab00304",tooltip="Wrapper around iconv(3)."]; │ │ │ │ │ Node2 -> Node7 [id="edge4_Node000002_Node000007",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node7 [id="Node000007",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node2 -> Node8 [id="edge5_Node000002_Node000008",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_a8208eef2a3974ae1f0cf3c8c8ab011ce_icgraph.dot │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -9,12 +9,12 @@ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node2 [id="Node000002",label="_bcp_exec_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00530.html#ga7370f1223f13510d6b33e98f2de09fb5",tooltip=" "]; │ │ │ │ Node2 -> Node3 [id="edge2_Node000002_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node3 [id="Node000003",label="bcp_exec",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#ga7a184158b27a50f713e9cfae3b746209",tooltip="Write a datafile to a table."]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node4 [id="Node000004",label="bcp_batch",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01",tooltip="Commit a set of rows to the table."]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ + Node5 [id="Node000005",label="tds_bcp_start_copy_in",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a5eec23828b0610c58de248c4edb53879",tooltip="Start bulk copy to server."]; │ │ │ │ Node5 -> Node2 [id="edge5_Node000005_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node5 -> Node6 [id="edge6_Node000005_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ Node6 [id="Node000006",label="bcp_sendrow",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40",tooltip="Write data in host variables to the table."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00323_a86768d86059c5addf9a3f89edb1ef44e_cgraph.dot │ │ │ │┄ Files 90% similar despite different names │ │ │ │ @@ -3,9 +3,9 @@ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ rankdir="LR"; │ │ │ │ Node1 [id="Node000001",label="tds_set_param_type",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Set type of column initializing all dependency."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="tds_set_column_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html#a31604382d8b77257aad203f409155a29",tooltip="Set type of column initializing all dependency."]; │ │ │ │ + Node2 [id="Node000002",label="tds_set_column_type",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html#a31604382d8b77257aad203f409155a29",tooltip="Set type of column initializing all dependency."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_aaee3fe5c514ce5570c9548de9b16e0d9_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ab68dead99a2ebec55895a10cd3db5202_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_abf18b98efef6ce2dc0b97d658a3a1918_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_abf18b98efef6ce2dc0b97d658a3a1918_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ac1e460551f1188620ea478238864ac4b_cgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ac1e460551f1188620ea478238864ac4b_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot.gz │ │ │ │┄ Files 98% similar despite different names │ │ │ │ │ --- a00440_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot │ │ │ │ ├── +++ a00443_ac6610c72bd31bad5378f760fa9b12d66_cgraph.dot │ │ │ │ │ @@ -3,15 +3,15 @@ │ │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ │ bgcolor="transparent"; │ │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ │ rankdir="LR"; │ │ │ │ │ Node1 [id="Node000001",label="tds_bcp_init",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Initialize BCP information."]; │ │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ - Node2 [id="Node000002",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ + Node2 [id="Node000002",label="tds_bcp_row_free",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html#a7c4f2b050cd1a747604aa305d6877de7",tooltip="Free row data allocated in the result set."]; │ │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node3 [id="Node000003",label="tds_dstr_cstr",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#gac536f0e4d77d3cff5702719362ec1766",tooltip="Returns a C version (NUL terminated string) of dstr."]; │ │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node4 [id="Node000004",label="tds_dstr_dup",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga4e6d9fa6f9b9551a5a3390e10a5322e6",tooltip="Duplicate a string from another dynamic string."]; │ │ │ │ │ Node4 -> Node5 [id="edge4_Node000004_Node000005",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ │ Node5 [id="Node000005",label="tds_dstr_copyn",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00545.html#ga656718f240d7403f986ae887d84a6ca1",tooltip="Set string to a given buffer of characters."]; │ │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ac6610c72bd31bad5378f760fa9b12d66_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ad9e44450025cbcee1ad81d7e5a2cc099_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ade7df2db455b61edc83819ad60edb339_cgraph.dot.gz │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00440_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00443_ade7df2db455b61edc83819ad60edb339_icgraph.dot │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00442.dot │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00445.dot │ │ │ │┄ Files 98% similar despite different names │ │ │ │ @@ -2,31 +2,31 @@ │ │ │ │ { │ │ │ │ // LATEX_PDF_SIZE │ │ │ │ bgcolor="transparent"; │ │ │ │ edge [fontname=Helvetica,fontsize=10,labelfontname=Helvetica,labelfontsize=10]; │ │ │ │ node [fontname=Helvetica,fontsize=10,shape=box,height=0.2,width=0.4]; │ │ │ │ Node1 [id="Node000001",label="include/freetds/tds.h",height=0.2,width=0.4,color="gray40", fillcolor="grey60", style="filled", fontcolor="black",tooltip="Main include file for libtds."]; │ │ │ │ Node1 -> Node2 [id="edge1_Node000001_Node000002",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node2 [id="Node000002",label="include/ctlib.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00473_source.html",tooltip=" "]; │ │ │ │ + Node2 [id="Node000002",label="include/ctlib.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00494_source.html",tooltip=" "]; │ │ │ │ Node1 -> Node3 [id="edge2_Node000001_Node000003",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node3 [id="Node000003",label="include/freetds/odbc.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00434_source.html",tooltip=" "]; │ │ │ │ + Node3 [id="Node000003",label="include/freetds/odbc.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00413_source.html",tooltip=" "]; │ │ │ │ Node1 -> Node4 [id="edge3_Node000001_Node000004",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node4 [id="Node000004",label="src/dblib/bcp.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01353.html",tooltip="Implementation of db-lib bulk copy functions."]; │ │ │ │ + Node4 [id="Node000004",label="src/dblib/bcp.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01344.html",tooltip="Implementation of db-lib bulk copy functions."]; │ │ │ │ Node1 -> Node5 [id="edge4_Node000001_Node000005",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node5 [id="Node000005",label="src/dblib/dblib.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00167.html",tooltip="Main implementation file for db-lib."]; │ │ │ │ + Node5 [id="Node000005",label="src/dblib/dblib.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00155.html",tooltip="Main implementation file for db-lib."]; │ │ │ │ Node1 -> Node6 [id="edge5_Node000001_Node000006",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node6 [id="Node000006",label="src/pool/pool.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00113_source.html",tooltip=" "]; │ │ │ │ + Node6 [id="Node000006",label="src/pool/pool.h",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00194_source.html",tooltip=" "]; │ │ │ │ Node1 -> Node7 [id="edge6_Node000001_Node000007",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node7 [id="Node000007",label="src/replacements/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01365.html",tooltip="This file implements a very simple iconv."]; │ │ │ │ + Node7 [id="Node000007",label="src/replacements/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01371.html",tooltip="This file implements a very simple iconv."]; │ │ │ │ Node1 -> Node8 [id="edge7_Node000001_Node000008",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node8 [id="Node000008",label="src/tds/bulk.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00059.html",tooltip="Handle bulk copy."]; │ │ │ │ + Node8 [id="Node000008",label="src/tds/bulk.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00266.html",tooltip="Handle bulk copy."]; │ │ │ │ Node1 -> Node9 [id="edge8_Node000001_Node000009",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node9 [id="Node000009",label="src/tds/data.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00050.html",tooltip="Handle different data handling from network."]; │ │ │ │ + Node9 [id="Node000009",label="src/tds/data.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00323.html",tooltip="Handle different data handling from network."]; │ │ │ │ Node1 -> Node10 [id="edge9_Node000001_Node000010",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node10 [id="Node000010",label="src/tds/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01368.html",tooltip="Handle character conversions to/from server."]; │ │ │ │ + Node10 [id="Node000010",label="src/tds/iconv.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a01374.html",tooltip="Handle character conversions to/from server."]; │ │ │ │ Node1 -> Node11 [id="edge10_Node000001_Node000011",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node11 [id="Node000011",label="src/tds/read.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00035.html",tooltip="Grab data from TDS packets."]; │ │ │ │ + Node11 [id="Node000011",label="src/tds/read.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00287.html",tooltip="Grab data from TDS packets."]; │ │ │ │ Node1 -> Node12 [id="edge11_Node000001_Node000012",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node12 [id="Node000012",label="src/tds/stream.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00077.html",tooltip="Handle stream of data."]; │ │ │ │ + Node12 [id="Node000012",label="src/tds/stream.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00275.html",tooltip="Handle stream of data."]; │ │ │ │ Node1 -> Node13 [id="edge12_Node000001_Node000013",dir="back",color="steelblue1",style="solid",tooltip=" "]; │ │ │ │ - Node13 [id="Node000013",label="src/tds/token.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00065.html",tooltip="Contains all routines to get replies from server."]; │ │ │ │ + Node13 [id="Node000013",label="src/tds/token.c",height=0.2,width=0.4,color="grey40", fillcolor="white", style="filled",URL="$a00272.html",tooltip="Contains all routines to get replies from server."]; │ │ │ │ } │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00503_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00512_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a00515_source.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a00506_source.html │ │ │ │┄ Files identical despite different names │ │ │ │ --- ./usr/share/doc/freetds-doc/reference/a01353.html │ │ │ ├── +++ ./usr/share/doc/freetds-doc/reference/a01344.html │ │ │ │┄ Files 99% similar despite different names │ │ │ │ @@ -83,15 +83,15 @@ │ │ │ │ │ │ │ │

    Implementation of db-lib bulk copy functions. │ │ │ │ More...

    │ │ │ │
    #include <config.h>
    │ │ │ │ #include <stdarg.h>
    │ │ │ │ #include <stdio.h>
    │ │ │ │ #include <assert.h>
    │ │ │ │ -#include <freetds/tds.h>
    │ │ │ │ +#include <freetds/tds.h>
    │ │ │ │ #include <freetds/iconv.h>
    │ │ │ │ #include <freetds/convert.h>
    │ │ │ │ #include <freetds/bytes.h>
    │ │ │ │ #include <freetds/utils/string.h>
    │ │ │ │ #include <freetds/encodings.h>
    │ │ │ │ #include <freetds/replacements.h>
    │ │ │ │ #include <sybfront.h>
    │ │ │ │ @@ -133,15 +133,15 @@ │ │ │ │
    │ │ │ │ static STATUS _bcp_check_eof (DBPROCESS *dbproc, FILE *file, int icol)
     
    │ │ │ │ static TDSRET _bcp_convert_in (DBPROCESS *dbproc, TDS_SERVER_TYPE srctype, const TDS_CHAR *src, TDS_UINT srclen, TDS_SERVER_TYPE desttype, BCPCOLDATA *coldata)
     Convert column for input to a table.
     
    static int _bcp_convert_out (DBPROCESS *dbproc, TDSCOLUMN *curcol, BCP_HOSTCOLINFO *hostcol, TDS_UCHAR **p_data, const char *bcpdatefmt)
    static int _bcp_convert_out (DBPROCESS *dbproc, TDSCOLUMN *curcol, BCP_HOSTCOLINFO *hostcol, TDS_UCHAR **p_data, const char *bcpdatefmt)
     Convert column for output (usually to a file) Conversion is slightly different from input as:
     
    static RETCODE _bcp_exec_in (DBPROCESS *dbproc, DBINT *rows_copied)
     
    static RETCODE _bcp_exec_out (DBPROCESS *dbproc, DBINT *rows_copied)
     
    static char * _bcp_fgets (char *buffer, int size, FILE *f)
    static TDSRET _bcp_get_col_data (TDSBCPINFO *bcpinfo, TDSCOLUMN *bindcol, int offset)
     For a bcp in from program variables, get the data from the host variable.
     
    static int _bcp_get_term_var (const BYTE *pdata, const BYTE *term, int term_len)
     Get the data for bcp-in from program variables, where the program data have been identified as character terminated,
    │ │ │ │ This is a low-level, internal function.
     
    static TDSRET _bcp_no_get_col_data (TDSBCPINFO *bcpinfo, TDSCOLUMN *bindcol, int offset)
    static TDSRET _bcp_no_get_col_data (TDSBCPINFO *bcpinfo, TDSCOLUMN *bindcol, int offset)
     Function to read data from file.
     
    │ │ │ │ static void _bcp_null_error (TDSBCPINFO *bcpinfo, int index, int offset)
     
    static STATUS _bcp_read_hostfile (DBPROCESS *dbproc, FILE *hostfile, int *row_error, bool skip)
     
    │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -124,30 +124,30 @@ │ │ │ │ Functions │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -205,15 +205,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

    │ │ │ │ Macros

    #define CHARSIZE(charset)
    #define CHARSIZE(charset)
     
    │ │ │ │ #define CHUNK_ALLOC   4
     
    │ │ │ │ #define TDS_ICONV_ENCODING_TABLES
     
    │ │ │ │ static void _iconv_close (iconv_t *cd)
     
    │ │ │ │ static int collate2charset (TDSCONNECTION *conn, TDS_UCHAR collate[5])
     
    static size_t skip_one_input_sequence (iconv_t cd, const TDS_ENCODING *charset, const char **input, size_t *input_size)
    static size_t skip_one_input_sequence (iconv_t cd, const TDS_ENCODING *charset, const char **input, size_t *input_size)
     Move the input sequence pointer to the next valid position.
     
    │ │ │ │ void tds7_srv_charset_changed (TDSCONNECTION *conn, TDS_UCHAR collation[5])
     
    int tds_canonical_charset (const char *charset_name)
     Determine canonical iconv character set.
     
    const char * tds_canonical_charset_name (const char *charset_name)
     Determine canonical iconv character set name.
     
    size_t tds_iconv (TDSSOCKET *tds, TDSICONV *conv, TDS_ICONV_DIRECTION io, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
     Wrapper around iconv(3).
     
    int tds_iconv_alloc (TDSCONNECTION *conn)
    int tds_iconv_alloc (TDSCONNECTION *conn)
     Allocate iconv stuff.
     
    │ │ │ │ void tds_iconv_close (TDSCONNECTION *conn)
     
    │ │ │ │ static void tds_iconv_err (TDSSOCKET *tds, int err)
     
    │ │ │ │    char   data [12] 
     
    │ │ │ │    uint32_t   len 
     
    test_strings [4] 
    test_strings [4] 
     
    │ │ │ │ static const char * ucs2name
     
    │ │ │ │

    Detailed Description

    │ │ │ │

    Handle character conversions to/from server.